组态王和单片机通信出现如下的问题可能是什么原因呢?
1个回答
展开全部
考虑一下这个问题:
读取模拟量输入的03功能码(用于兼容组态王)
需要新增一个03功能码应答。
组态王的Modbus RTU驱动会发送一个查询报文。使用功能码03,EIO-S需要应答此报文,如果不应答,组态王会等到超时之后才会执行下一条指令,从而严重影响拖慢执行时间。
01 03 00 00 00 02
组态王发送查询报文:[01] [03] [0000] [0002] [C40B]
[01]:设备地址
[03]:03功能码读取模拟量
[0000]:开始地址
[0002]:要读取的寄存器数量,1个寄存器2个字节,2个寄存器就是需要返回4个字节。
[C40B]:CRC校验
EIO-S应答:[01] [03] [04] [00 00 00 00] [FA 33]
[01]:地址码
[03]:功能码
[04]:返回的数据字节数,发送报文要读取2个寄存器,所以返回4个字节。
[00 00 00 00]:4个数据字节,目前只返回00,以后可以放入温湿度、模数值等。
[FA 33]:CRC校验。
01 03 04 00 00 00 00
读取模拟量输入的03功能码(用于兼容组态王)
需要新增一个03功能码应答。
组态王的Modbus RTU驱动会发送一个查询报文。使用功能码03,EIO-S需要应答此报文,如果不应答,组态王会等到超时之后才会执行下一条指令,从而严重影响拖慢执行时间。
01 03 00 00 00 02
组态王发送查询报文:[01] [03] [0000] [0002] [C40B]
[01]:设备地址
[03]:03功能码读取模拟量
[0000]:开始地址
[0002]:要读取的寄存器数量,1个寄存器2个字节,2个寄存器就是需要返回4个字节。
[C40B]:CRC校验
EIO-S应答:[01] [03] [04] [00 00 00 00] [FA 33]
[01]:地址码
[03]:功能码
[04]:返回的数据字节数,发送报文要读取2个寄存器,所以返回4个字节。
[00 00 00 00]:4个数据字节,目前只返回00,以后可以放入温湿度、模数值等。
[FA 33]:CRC校验。
01 03 04 00 00 00 00
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询