1、Modbus-RTU通讯模式
Modbus协议是典型的主-从通讯结构,总线中只能有一台主设备,可以有多台从设备。主设备向从设备发送请求指令,从设备对该指令进行响应。从设备不能主动向主设备发送指令,并且从设备之间也不能进行通信。
2、Modbus数据帧格式
Modbus RTU数据帧由四部分组成,设备地址,功能码,数据和校验。
从站地址
从站地址占1个字节,范围是0~255之间。0是广播地址,1~247是从站设备地址,248~255保留不用。
功能码
注:寄存器的PLC地址≠报文寄存器地址。
如报文:01 03 00 01 00 01 D5 CA
报文中的第一组00 01为寄存器地址,对应PLC地址为40002。
数据
数据部分的长度和内容由功能码决定,功能码不同,数据部分也不同。
校验
校验2字节,由报文的发送设备计算,将校验码之前的数据按CRC16算法进行计算,生成2字节的数据,低字节在前,放于报文尾部。报文的接收设备,再重新计算接收到的报文的校验码并进行比较,如果不相符,则表明数据在传输过程中出错。
3、数据传输模式
Modbus RTU协议数据帧没有起始符和结束符,所以两个数据帧之间需要靠时间间隔来区分。协议中规定数据帧之间至少要有3.5个字符时间的停顿间隔。即:
在一个数据帧的最后一个字符传输完成之后,需要至少3.5个字符时间的停顿,来表明数据帧的结束,一个新的数据帧才可在此停顿之后开始。如果一个新的数据帧在小于3.5个字符时间内接着前一个消息开始发送,接受设备则认为它是前一数据帧的延续,这将导致CRC校验出错。同时整个数据帧必须作为一连续的流传输,如果在数据帧完成之前有超过1.5字符时间的停顿,接受设备将刷新不完整的数据帧从而解析到错误的数据。
字
由1个bit起始位,8个bit数据位,1个bit校验位,1个bit停止位组成,在发送时从起始位开始,低位在前高位在后。
奇偶校验位:根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。
举例
波特率9600bps,1起始位、8数据位、偶校验、1停止位。
3.5字时间=1000/9600*11*3.5≈4.01ms。
4、接线方式
建议采用手牵手的布线方式,不建议星形,建议使用双绞屏蔽电缆线。
5、输出距离
不同的通讯波特率下,传输距离如下:
注:基于24AWG双绞屏蔽线,0.085Ω/米,导线之间41pF/米,导线到屏蔽层72pF/米。
6、PLC与编码器通信例程
西门子PLC:
注:因使用的PLC和编码器不同,此例程仅供参考。
汇川:
19010394-SC_A14《H3U系列可编程逻辑控制器指令及编程手册》202306
参考第9部分