I looked at the 5-minute averages of ldiag for the CSAT at station 17 back to Oct 25, 18:00 MDT. (Recall that ldiag = 1 if any of the bits in the CSAT diagnostic word is non-zero.) It appears to be independent of wind speed and to occur for winds from NW to N and occurs more frequently with increasing temperatures (above 7 degC). (Note that temperature and wind direction are themselves uncorrelated). However non-zero ldiag is very occasional and is never greater than a five-minute average of 0.003, so this does not appear to be a serious issue requiring replacement of the sonic.
Here is the Splus output of hist(dat("ldiag")) for that period. $breaks are the boundaries of each 'bar' or 'class' of the histogram and $counts are the number of occurrences in each class. For example, there are 16 occurrences of the 5-minute average of ldiag falling between 0.0002 and 0.0004. Note that one occurrence in a 5-minute average is 1/(300 sec*20 samples/sec) = 0.0001666..., so the first histogram class between 0 and 0.0002 includes both zero and 1 occurrence in 5 minutes.
$breaks:
[1] 0.0000 0.0002 0.0004 0.0006 0.0008 0.0010 0.0012 0.0014 0.0016 0.0018
[11] 0.0020 0.0022 0.0024 0.0026 0.0028 0.0030
$counts:
[1] 1875 16 2 10 7 2 1 1 1 1 1 0 1 0 1
The frequency of occurrence of non-zero diagbits is 0.002% of the data, calculated as
sum(counts*breaks[-length(breaks)])/sum(counts)
after increasing the number of classes in the histogram from 15 to 100 to improve the accuracy.