功能码05是写单个线圈
功能码15是写多个线圈
手册里有句话:输出点不是被强制,用户程序可以重写由Modbus的请求而写入的值
PLC做从站,计算机发送01 0F 00 00 00 08 01 FF BE D5
程序是试验程序 就用I0.0去点Q0.0,I0.0不闭合,Q0.0不输出
这时发现输出点,Q0.0灭,Q0.1~Q0.7亮。按理说应该全都亮吧
计算机发送01 0F 00 00 00 08 01 01 CRC码,依旧点不亮Q0.0,PLC返回代码正常
怎么去重写MODBUS请求呢?比如怎么选择性去输出Q0.0?
谢谢,确实是双线圈输出了,想用一个开关来区分是满足程序要求还是满足上位要求,因为是用的MODBUS指令库,不知道上位赋值在哪,请问怎么处理?
追答modbus去写寄存器地址,然后把该地址作为控制输出的条件之一。
追问库存储区是从VB2000开始,请问Q点的上位赋值地址在哪?
追答不是这个功能码,是04