Communicating Using Modbus ASCII RS232C to PLC


Thread Starter


I am attempting to read data from a Sigma 980 flow meter via its RS232C connection. The meter supports Modbus ASCII and I am using a Prosoft ILX34-MBS232 module to connect to it. I am unable to receive a response from the meter and I believe it has something to do with the meters DTR/DSR terminals. The prosoft module only has Tx and Rx terminals and the meter requires the DTR to be held high during transmission. How would I communicate between a Modbus device with two terminals (Rx & Tx) and one having seven? (Shield, common, DSR, RXD, DTR, TXD, 12V+)?
> Connect the +12V to DTR.

I have tried that as well as jumping the DTR to the DSR, without the +12V.

Also swapped the Tx and Rx lines. No dice.

I was at first getting checksum errors and now getting Modbus timeout. Still have not received anything from the slave. I will say that the distance between master and slave is marginal, around 35 feet. I do have the appropriate resistor for my cable as well.

Curt Wuollet

RS232 is point to point. and and doesn't use a terminating resistor. It sounds like you are using RS485 wiring. Try using a commercial "serial cable" and/or a "null modem" cable. If that works, you can figure out what you have to do.

1) The manual is clear that DTE must be held high:

"For the meter to identify an RS232 connection from an outside source, and to keep the RS232 hardware active once communicating, the Data Terminal Equipment (DTE) must assert and hold high the DTR line of the DB9 connector (DSR of meter)."

If DSR goes high and and stays high as long as the the meter is powered and needs to be accessed, then connecting DSR to DTR will meet the need. You might have to check it with a voltmeter to see what its output really is.

2) Checksum error?
Checksum error means you got a response, which is different than a no-response time-out.

It's Modbus ASCII, so are you sure the Prosoft is configured for 7 bit data word?

Parity matches on both ends?

3) Is the Prosoft time-out set to 13 seconds?

These notes in the Sigma manual are revealing (pp 125-126):
"Note that DTE must be capable of handling a 12-second maximum response lag."

"For example, in a Wonderware® application running a Modbus ASCII DDE server, the com port reply time-out must be set to 12 seconds. This is the amount of time that the meter will be given to reply to Modbus queries via this serial port."
Data bits is set to seven, even parity, and 1 stop bit. I have a null modem cable I can try and I was unsure of the terminating resistor so I installed one anyway. I had seen some marginal information about using them with rs232 and was not familiar enough with it. Thank you for clearing that up for me.

I did check voltage on the DTR while it was jumped to the DSR and got +8V.

I just don't understand why it won't respond to any requests.

I will try the null modem cable and if that does not work then I suppose the cable length will be to blame. Because of the 35ft run, I used some Belden 8770 cable we had. I don't suppose cabling must be serial cable?

Curt Wuollet

RS232 has a lot of fiddly bits compared to RS485. A full implementation can use a lot of signals. The minimum is 3 wires. Most are in between and need some massaging for handshake and all. And an interface will steadfastly refuse to work until it see the signals it has active. But, there is a lot of help on the net with some really good systematic approaches to getting data to flow. It's easier with stuff you've written because you can turn a lot of the unnecessary stuff off. But for critical applications, they may want hardware handshaking for reliability. Some of the old printers would have you tearing your hair out before you got data to flow and handshaking to work and all the features (non-standardized) to work. It's one of the reasons for the big push to get rid of serial ports, support is a nightmare with a non-technical person on the other end. But the old serial stuff can be made to work over long distances and on simple wiring and it's very versatile. I don't have my old UNIX docs handy, but the better guides were on the net last time I checked. It was a big deal when terminals were the rule, almost a specialty in itself. Once you have the jumpers right, it should work forever.

I tried the null modem configuration less the resistor and swapped the Tx and Rx lines and I am now communicating.

Thank you everyone for helping me with this problem, I greatly appreciate it!