功能码05是写单个线圈
功能码15是写多个线圈
手册里有句话:输出点不是被强制,用户程序可以重写由modbus的请求而写入的值
PLC做从站,计算机发送01 0F 00 00 00 08 01 FF BE D5
这时发现输出点,凡是用到的都没点亮,没用到的都点亮了
比如我程序里就用了Q0.0,其余都没没用,就发现Q0.0是灭灯的,其余都亮灯了
怎么去重写modbus请求呢?比如怎么选择性去输出Q0.0?
问题补充:
是试验程序,就用I0.0去点Q0.0,I0.0不闭合,Q0.0输出条件不满足,计算机发送01 0F 00 00 00 08 01 01 CRC码,依旧点不亮Q0.0,PLC返回代码正常
最佳答案
程序问题,见另帖
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=100500&cid=1028
提问者对于答案的评价:
谢谢 醋工,如果想区分出上位和程序的要求,地址如I0.1或其他任何地址作为程序赋值和上位赋值的切换开关。当该开关为0时,程序赋值,当开关为1时,上位赋值。我用的是MODBUS指令库,库程序上锁啊,我不知道上位赋值在哪,该怎么处理?能详细指点下吗?谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc252336.html