Hello,
I'm using an SDM-SIO1 module to communicate with an RS-422 wind sensor. The wind sensor has a fixed-field output ASCII string therefore I expect to receive the same number of bytes at all times.
When I read the buffer, there have been certain cases in which a random (and variable) number of extra bytes are found in the buffer right before my expected wind data. Sometimes they are nulls, and sometimes other characters. Sometimes it's one extra byte and sometimes seven extra bytes. I flush the buffer every time after it has been read. It's a 1 second scan rate. CR1000 OS is 20.
The cable connecting the wind sensor to the SDM is a twisted shielded pair with an overall foil and braided shield, maximum length is about 25 ft.
Any thoughts? Have you heard of something similar? Could these bytes being picked up by the SDM or the datalogger buffer?
Thanks
I would guess the problem will either be:
a) pickup of noise in the SDM cable - 25 ft is about the maximum length we recommend. Make sure there is no possibility of power induced noise coming from the sonic getting onto the SDM power cables, i.e. do not source the power from the sonic from the same 25ft wires as supplying power to the SDM-SIO1.
b) pickup in the RS-422 cable. We have seen it with sonics before. This is the more likely cause as the SDM-SI01 has lower power biasing of its inputs and no internal termination resistors (so it operates in the lowest power state). However, this means it can quite easily detect noise on the RS-422 cable, which can for instance be picked up from power leads. A simple solution to this is add 120R termination resistors at one or both ends of the cable. (Many sonics have an option/switch to enable termination within the sensor). Although termination resistors are only normally needed on long cable runs they are also quite effective at reducing noise. Using them will increase the current consumption of the sonic a little, but probably not significantly.
Hi Andrew,
a) By the SDM cable, I assume you mean the wires connecting the SDM to the datalogger and those are about 6 inches long. The SDM is being powered by the datalogger 12 V source and the anemometer has a separate power source.
b) The RS-422 cable, which would be the one connecting the sensor to the SDM, is the one that is 25 ft which is a lot less than the maximum recommended by the standard so I would not consider that to be a long run. We have an RS-422 SPD between the sensor and the SDM but that is it. We can try the termination resistors. Do we need to match them at both ends?
What is interesting is that when this happens, the data sent by the sensor does not get corrupted. The extra bytes are always at the beginning of the transmission followed by the data.
Thanks
a) yes I meant the SDM cable. 6 inches is fine and so is the power supply arrangement.
b) 25 ft on RS422 is fine but that is still long enough to pick up noise (BTW make sure the two RS422 lines are in the same pair) As the bad values are in advance of the output the noise could even be caused by power surges when the sensor makes its measurements. Although standard practice is to have a resistor at both ends of the cable, for a short cable where you are trying to supress noise putting at resistor at one end, or simply enabling the termination in the sensor will often do.
The sensor already comes with the cable and it has the TX(+) and TX(-) in one pair and the RX(+) and RX(-) in another pair, and the digital ground in a separate pair. U
Unfortunately, the sensor does not have the capability of enabling a termination.
Thanks.