在MBUSMSG指令里有一个错误位,我看了手册上说1-8的低位,其中0是无错误,那Q0.0有输出到底是对还是不对,还有Q0.2是不用的意思,它是一直为1的吗?我现在程序测试过程中,发现Q0.1和Q0.2都有输出,不知道是什么错误啊
图片说明:
fb5697ecfe5547c6e8CE295a1414859f
最佳答案
1、有关MBUS_MSG指令错误代码:
Error错误代码:只有在Done位为1时,错误代码才有效
0=无错误
1=响应校验错误
2=未用
3=接收超时(从站无响应)
4=请求参数错误(slaveaddrESs,MODBUSaddress,count,RW)
5=modbus/自由口未使能
6=modbus正在忙于其它请求
7=响应错误(响应不是请求的操作)
8=响应CRC校验和错误
101=从站不支持请求的功能
102=从站不支持数据地址
103=从站不支持此种数据类型
104=从站设备故障
105=从站接受了信息,但是响应被延迟
106=从站忙,拒绝了该信息
107=从站拒绝了信息
108=从站存储器奇偶错误
2、程序中的QB0输出的就是上述Error错误代码:
、其中0是无错误,那Q0.0与其他位都没有输出,即QB0为0(二进制00000000)。
、Q0.2是一直为1,其他位为0,即为4(二进制00000100),表示请求参数错误。
、Q0.1和Q0.2都有输出,即为6(二进制00000110),表示modbus正在忙于其它请求。
3、常见的错误:
如果多个MBUS_MSG指令同时使能(激活)会造成6号错误,一次只能激活一条MBUS_MSG指令;
从站delay参数设的时间过长会造成主站3号错误;
从站掉电或不运行,网络故障都会造成主站3号错误。
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。