NMODBUS4 组件操作MODBUS SLAVE 报错(不允许对非连接的套接字执行此操作。)

今天在开发PLC与上位机通信中发现这个报错,莫名其妙找了很长时间都没有发现问题,特此记录下。

简单的一个保持寄存器的写入代码,就出现了报错【不允许对非连接的套接字执行此操作】

但是读取PLC的线圈或者寄存器是正常读取的。

首先检查了网络通讯,全部oK

再次检查了代码也是OK的

最后重装了SLAVE 软件依然无效

但是通过HslComm 组件来写入确是可以正常写入的

我就觉得很纳闷,接下来开始对比报文

发现两次的报文不一致

第一行是NMOUBUS4 组件的报文 只有RX 没有TX 所以报错

第二和第三行是用HslComm组件返回的报文正常

经对比发现

第一种连接 PLC的 设备ID 是0

第二种连接的 PLC的 设备ID 是1

而slave 虚拟主站上设定就是1,所以第一种没有反馈通讯了,终于发现问题了

最后,只要在代码中追加slaveAddress 对应上设备的id即可(一开始就是由于我没有填写,系统默认为0了,所以一直没有通讯反馈)。

测试,全部OK

自己解决的,很开心~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值