下面截图的程序,要表达的控制思想是,只有当VW0的大小状态发生改变时,才会写操作一次。控制的结果是,我用Modsim查看,确实是这样的,当我30001由原来的16#8C,变为16#00时,才会写一次,如果30001一直为16#8C的话,将只写一次,还有都是读操作。这是我想要的结果,只有在有需要时才写
但是我发现QB0的Q0.1和Q0.2会输出,说明错误位有错误啊,但是说明错误,我也看不出来啊
图片说明:
最佳答案
1、QB0的Q0.1和Q0.2会输出:
Q0.1和Q0.2都有输出,即为6(二进制0000 0110),6号错误表示 modbus正在忙于其它请求 。
2、常见的错误:如果多个 MBUS_MSG 指令同时使能(激活)会造成 6 号错误 。一次只能激活一条MBUS_MSG指令 。即,如果有多个 MBUS_MSG 指令不要同时都被使能,要一个一个地轮询。
3、Error 错误代码: 只有在 Done 位为1时,错误代码才有效 :
0 = 无错误
1 = 响应校验错误
2 = 未用
3 = 接收超时(从站无响应)
4 = 请求参数错误(slave address, modbus address, count, RW)
5 = modbus/自由口未使能
6 = modbus正在忙于其它请求
7 = 响应错误(响应不是请求的操作)
8 = 响应CRC校验和错误
101 = 从站不支持请求的功能
102 = 从站不支持数据地址
103 = 从站不支持此种数据类型
104 = 从站设备故障
105 = 从站接受了信息,但是响应被延迟
106 = 从站忙,拒绝了该信息
107 = 从站拒绝了信息
108 = 从站存储器奇偶错误
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc221305.html