modbus协议有RTU和ASCIi两种类型
ASCII使用文本传输,整个数据包都是可打印字符
举例说明
0x01,0x03,0x00,0x00,0x00,0x01,0xFB
0x01是设备地址,0x03是功能码,0x0000是寄存器地址,0x0001是寄存器数量,0xFB是校验
则转成ascii,字符串如下
:010300000001FB\r\n
再举个例子
设备地址为0x10,我要用06功能码写0x0001寄存器,值为0xABCD。
0x10,0x06,0x00,0x01,0xAB,0xCD
然后转成字符串格式
10060001ABCD71
加上帧头帧尾巴
:10060001ABCD71\r\n
但是RTU数据帧是没有帧头帧尾的概念的,为了标识不同的数据帧,在报文帧之间插入空闲时间间隔,最小可以设置t3.5,就是3.5个字符的时间.
为了确保字符流的连续发送,就需要用t1.5的字符时间,同一帧数据的两个字符之间的时间间隔大于1.5字符,就被丢弃.
3540

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



