MODBUS transmission limits???

  • Modbus transmissions must be contiguous which limits the types of remote communications devices to those that can buffer data to avoid gaps in the transmission.
  • Can someone explain this a little further for me? If I have a mesh network and want to transmit over RF, if I have poor reception and transmission gets cut off mid package, will modbus manager get ack or wait until full message is delivered to send over ack message?
 
You're correct, for Modbus RTU, the specification states the following:
The entire message frame must be transmitted as a continuous stream of characters.
If a silent interval of more than 1.5 character times occurs between two characters, the message frame is declared incomplete and
should be discarded by the receiver.


Therefore, if you have poor reception and transmission gets cut off, the incomplete frame will be discarded by the receiver (no response or ack will be sent). If, later, the other part of the packet gets sent, this will also be discarded by the receiver as an invalid packet (again, no response or ack will be sent).

The other important timing detail in Modbus RTU framing is the following:
In RTU mode, message frames are separated by a silent interval of at least 3.5 character times.

Therefore, Modbus RTU devices detect the reception of a packet when at least 3.5 character times have elapsed, after one or more characters have been received.

It is not uncommon to use radios for Modbus RTU communication and it can work well when implemented correctly. There are also commercial products available that are specifically designed for this purpose, such as the ModHopper from Obvius
http://www.obvius.com/Products/R9120-5
 
Modbus is a "protocol" that can be implemented on RS232 or RS485 or EtherNet. A quick search results:

  • Modbus is an application layer data protocol present at Level 7 of the Open System Interconnection (OSI) model of communication. It provides a connection between servers and clients located on different devices and networks.
  • The data link (layer 2) is occupied by the Modbus Serial Line Protocol. Finally, the physical layer (layer 1) allows for either the EIA-232C or EIA-485 implementation. With only three layers, Modbus over Serial Line is easier to understand than other industrial protocols.
  • Modbus occupies the Application, Presentation and Session layers 7, 6 and 5 of the O.S.I. stack interconnect; With T.C.P. occupying the Transport layer 4; I.P., A.R.P. and R.A.R.P. occupying the Networking layer 3; *(Ethernet, C.S.M.A. / C.D. and M.A.C. occupying the Data Link layer 2 and Ethernet Physical Layer occupying the Physical layer 1.)
 
If a message cannot be completely received by a slave, the slave will not do anything and so not reply. After a while, the master will timeout and (depending on its implementation and settings) do a reply, in the hope that this will work, and if not, a new retry etc. If the maximum number of retries is exceeded, the master will give an error to the application, which must then do something clever.
If the RF environment is noisy, it is better to use shorter messages as they have a bigger chance to arrive undisturbed. You can still r/w larger groups of data by using multiple messages (i.e. read register 10-15, then register 16-20, then 21-25 etc. depending on how you program it. There can be gaps in the registers, Modbus doesn't care (it doesn't know these messages belong together, only you know).
 
Thread starter Similar threads Forum Replies Date
A Modbus 1
B Modbus 9
A Modbus 8
S Modbus 1
M Modbus 0
Top