恭喜,你发布的帖子
发布于 2021-08-09 15:58:50
13楼
同时使用两款串口服务器设备,一款是N510另一款是HF5122.
实际应用需求是:
1、现场串口设备连接到串口服务器的485端口;
2、200Smart通过网口经交换机连接到串口服务器的网口;
3、实现200Smart和现场串口设备之间的数据交换。
--为何不用本体串口?这是另一个问题。
测试条件:
1、PC和交换机各一台,N510串口服务器一台(支持Modbus TCP网关);
2、200Smart SR30 PLC一台,编程软件;
1、厂家提供的配置软件、Modbus Slave和Poll等测试软件。
测试过程:
1、Slave模拟了实物串口设备,Poll模拟需要读取串口设备数据的另一台设备;测试结果:Poll读取Slave数据正常;
2、200Smart通过串口服务器读写Slave模拟对象,不成功;运行Poll并连接,可正常读取Slave的数据;这时发现:200Smart与Slave之间数据交换正常;反复测试,结果一样,一定要先运行Poll并连接后,200Smart才能与Slave建立正常的通信;
3、程序中调用MBUS_CLIENT指令后需要分配一个库存储区,然后系统会自动形成一个“Modbus TCP Client”的符号表,我没有查到有关这个符号表中各种符号功能的资料,无法指导进行程序调试,但其中有个“mModbusUnitID”的符号实际上有着重要的作用,它的默认值=255,而Slave中可以设置“Slave ID”号,把这两个ID的数值保持一样即可正常通信;
4、那么问题来了:我添加了两个MBUS_CLIENT指令,准备模拟三台现场串口设备,但是添加指令后系统分配的库存储区大小没有变化,还是一样的(662),而且在“Modbus TCP Client”符号表中也没有第二个“mModbusUnitID”符号,要如何分别不同的对象进行读写呢?
请填写推广理由:
分享
只看
楼主