Applies To:
  • CitectSCADA 1.x, 2.x, 3.x, 4.x, 5.x

Summary:
We are using the COMX driver with a half-duplex RS485 connection (two wires, one for "+" and the second for "-"). On this kind of connection we have to use a converter (converts from the computer RS232 to RS485 two wires). We also use the "-t" COMX switch which means transmit when RTS is high and receive when RTS is low (when RTS = 0). When we set it to transmit on RTS and receive on not RTS, it seems like the controller doesn't receive the full message sent (the Rx led on the controller is light but no Tx led indication for a reply). When we set the converter to always transmit and receive (which is the case in RS422, a full duplex - 4 wires connection), we see that the controller receives the request (Rx indication) and immediately replies (Tx indication on the controller), of course we do not get this reply (we use RS485 connection with converter configured for RS422, so we get only echo on everything we transmit...).  

Solution:
The COMX driver uses a Windows API for standard COM ports. This API has an internal buffer for outgoing characters. Due to the Windows handling of this buffer, the RTS signal may be raised or lowered out of synchronisation with the actual characters being sent. The way to avoid these Windows problems is to use a Digiboard. The processing of the RTS signals is done by the board rather than Windows. 

Keywords:
 

Attachments