Modbus协议的官方介绍
Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在 Modbus网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。 Modbus通信标准协议可以通过各种传输方式传播,如 RS232C、RS485、光纤、无线电等。
Modbus具有两种串行传输模式,ASCII 和 RTU。它们定义了数据如何打包、解码的不同方式。支持 Modbus 协议的设备一般都支持 RTU 格式。通信双方必须同时支持上述模式中的一种。
通讯格式
通讯格式就是:波特率,检验方式,数据位和停止位。信息的发送方和接受方如果存在以上几个量不一致,会导致接受或发送不完整、校验失败、截断读取等异常问题。
波特率
波特率指的是一秒钟传送的位数,也就是通讯速率。假设波特率位9600,指的就是一秒钟可以传送9600个位数。
校验方式
校验方式分为奇校验、偶校验或是无校验。。用于判断单个字符在传输过程中是否出现了错误。但是它只能用于单个位错误,比如偶校验时,有两个‘0’位变成了‘1’,那么校验结果也为真。
数据位
传输一个字符由几个位组成。
停止位
用于判断某个字符是否传输完成。
两种通讯方式
ASCII方式
格式如下:起始符+设备地址+功能代码+数据+校验+结束符
1.起始符:确定字符串的起点,如果接收方遇到起始符,那么之前缓存区内的数据就会被丢弃。
2.设备地址:Modbus采用的是单主机的主/从通信模式,一个主站下面可以有几十个基站。由于连接是总线型的,因此指定设备地址可以使得确定对象接受信息,而其他设备丢弃该信息。(其中广播地址是00)
3.功能代码:指示要求从站的具体工作。如03代表读取命令。
4.数据:高四位数据,告诉从站具体元件的通讯地址,要求是四个字符,若不足四位则前面补0,如“0032”。低四位数据可能告诉设备要读取的字节数/要写入设备的具体值。
5.校验和
通讯格式里的校验方式并不能保证每个字符都正确,所以这里就把所有字符的值加在一起,其和(检验值)传给接收方,接收再把接收到的字符的值加在一起,与发送方传送过来的检验值比较,如果相等,就算接收正确了。1+2+3=6 3+2+1=6 这两个字符串的作用肯定是不一样的!但是其校验和是一样的。**参加校验计算的字符是起始符与校验符之间的字符串(不含起始符与校验符)
6.结束符:Modbus的ASCII格式的结束符是 Chr(13)+Chr(10)。chr(10)代表换行,chr(13)代表回车。
RTU格式
与ASCII格式的区别在于,起始符和结束符改成了3.5个字符的停顿间隔。这个实际大概是4毫秒。
我们平时常说的“232”和“485”,指的是Modbus协议的线路传输方式而已。232传输抗干扰性能差,485传输抗干扰性能好。
Modbus协议采用单主站/多从站通信模式,支持RS232C、RS485等多种传输方式。协议包括ASCII和RTU两种串行传输模式,其中RTU更常见。通讯格式涉及波特率、校验方式、数据位和停止位。ASCII方式包含起始符、设备地址、功能代码、数据、校验和结束符,而RTU模式以3.5个字符停顿间隔作为标识。

2159

被折叠的 条评论
为什么被折叠?



