Modbus via Radio

D

Thread Starter

Donnel Brown

I am using 2.4GHz RS232 Radios to transmit modbus to my substations. My configuration is:
Host to Repeater
Repeater to Substations (7)
It is a Point to MultiPoint communication.

The question is, can modbus be transmitted via radio? If so, Why do I get all these CRC errors? Should I use a radio that converts modbus to some other protocol (like MDLC, TCP/IP and others) and then changes it back to modbus at the Host and Substations? Could someone out there help me with this problem? I am desperate. Thanks in advance for your assistance. Lenz
 
If this is a radio for industrial automation protocols like modbus, you might need to see if there is a buffer function that can be turned on if you're using ModbusRTU. An IA radio (like MDS or Freewave) often uses a proprietary protocol to transmit the IA protocol and will split the message into parts to be sent separately. If this is your garden variety fm fsk radio, make sure your CTS and SCTO times are long enough to allow radios to key up and quiet the channel before sending the message, and then stay keyed until well past end of message to prevent corruption. If there is noise in the radio channel (not full quieting) reliable comms will not be possible. I've used ModbusRTU with the MDS radios on serial and ethernet with good success on 900MHz, and Motorola radios at 450MHz. It will work.
 
M
Modbus has two flavors, RTU and ASCII. You're probably using Modbus RTU, which does not work well over smart radio and modem links. The problem with RTU is that a received message is considered complete when there is no data for 3.5 character times. If your radio breaks a message in the middle, the receiving end looks at the partial message and finds a bad checksum. Some radios have an option to keep data packets together, and this ususally helps if you have to use Modbus RTU.

The other option is to switch your communications to Modbus ASCII. In this mode, the data is sent as hexadecimal characters instead of binary, and messages begin with a colon and end with a line feed and a carriage return. There is no time-out problem. It's actually possible to type a message using a terminal program and get a reply, using Ctrl-M Ctrl-J instead of the return key as the message terminator.

Depending on your hardware and software, the RTU/ASCII selection may appear as an 8-bit/7-bit data selection. That's how the Modicon 984 XMIT block works, offering only 8-bit RTU or 7-bit ASCII. Some devices separate the 7/8-bit and RTU/ASCII options, and at least one device offered only 8-bit ASCII mode.

Mike
 
Hi
Of course you can transmit Modbus over radio.
Try change RS baudrate to lower speed.
Try change the modbus frame length?
Does your radio have buffer for the RS transmision? If yes try change it too.

Regards
Andrzej
www.modbus.pl
 
Look at the products from Moore Industries WLM
wireless link Module , would probably serve the
purpose
 
You might want to get a hex dump of the data coming out of the radio to see what is really happening. Perhaps it is not a CRC problem. For example, if the radio receives data in packets, you may get the first 32 bytes from the radio, and then a pause before the next set of bytes. This pause may cause the receiver to think the Modbus packet has finished arriving and will then calculate a CRC and find that it fails.

Take a look at the ModHopper product from Obvius

http://www.obvius.com/documentation/Obvius/R9120-1overview.html

We've used this with good success. The radios verify the checksum of the Modbus packets arriving on the serial port before sending over the air, and will resend the packets between the radios if the checksum fails at the receiver end. The receiving radio only sends data out the serial port when the entire Modbus packet is in the buffer and ready to go.

Dick
 
Top