巨控NET400协议网关可以采集各种协议的串口和网口设备,并在不同设备之间交换数据,这样就可以实现不同协议之间的设备、PLC之间的协议转换,无需写通讯程序代码。 采用打包读写的方式,并具备定时和阀值判断,可最大限度优化通讯速度,充分利用带宽。
比如需要从 A 设备读取数据,然后写入到 B 设备,方法如下: 1:定义配置好 A 设备协议类型,需要读取的数据类型,寄存器地址,并确保 A 设备通讯正常。 2:定义配置好 B 设备协议类型,需要写入的数据类型,寄存器地址,并确保 B 设备通讯正常。 3: 在 GRMDEV 定义数据交换,即可完成数据交换 注意: 为利于调试查找问题, 在添加数据交换之前,先确保交换双方的通讯变量均是通讯正常的,我们可以在实时查看窗口里面,先查看设备的讯变量,或者手工修改需要被写入的变量,如果通讯正常,再加入数据交换。 如果实时查看窗口变量显示--,说明设备通讯没有成功,请先配置好设备通讯参数。 应用举例: 一个串口 C0M2 接西门子 200 PLC,另外一个串口 COM1 接 MODBUS 仪表。需要将 MODBUS 仪表的数据发送到西门子 200PLC。
1. 首先配置一个西门子 200 PLC 的变量, MODBUS 的数据将发送到该变量的寄存器地址。
2. 配置 MODBUS 仪表的变量
3. 使用数据交换即可完成
数据交换介绍:数据交换用于将模块中数据词典的数据单向写入到模块关联的 IO 设备对应的变量中。数据交换编辑器如下图:
1: 交换间隔: 按照交换间隔,定时执行数据写入,请根据实际需要设定间隔。 如果被写入设备为串口设备,波特率请设置为尽可能高的值,交换间隔建议值为 0.5 秒。 只有数据交换个数很少,或者被写入对象是网口设备,才可以设定比较小的交换间隔(最小值是 0.1 秒)。 如果被写入设备通讯速度慢,加入太多周期很小的数据交换,会卡住整个通讯,导致系统变慢! 2: 交换统计次数: 用于调试或者观察交换实时性,默认可以留空。 3: 数据交换内容: PLC 温度 = 仪表温度 # 1 每隔 0.5 秒钟,如果仪表温度和 PLC 温度变量两者差值超过 1 的话,会将仪表的温度变量值单向写入给PLC 温度。 开关量不需要写变化阀值,如果读取变量和写入变量不一致,就会写入。 同一数据交换内被写入的设备必须为同一个,如果有多个设备需要写入,请建立多个数据交换。 注意:对于模拟量数据,可以根据实际需要最好加上合适的变化阀值,这样只有超过变化阀值,赋值才会进行。可以大大节约不必要的写, 明显提高设备响应速度。 比如市电电压 220V,变化几伏,对系统几乎没有影响,没必要数据交换。可以把变化阀值设置为 10V,都能满足正常使用要求。 数据交换速度优化: 1:对于串口设备, 请尽量使用高的波特率。 对于被写入的 MODBUS 设备, 通讯端口参数“通讯延时” 是 NET400向设备发出下一次通讯之前特地加入的延迟时间, 默认值是 255, 主要是因为某些仪表反应比较慢。默认值会明显降低写入速度, 正常仪表可以尝试调低这个参数。
2:一个串口下多个设备,可以改成分别接到多个串口上。 3:一个网口下多个设备,可以尽量使用不同链接(最多支持 5 个并行链接)。 如下图, 左边配置 2 个网口设备是二个并行链接,速度更快右边配置 2 个网口设备使用同一个链接,速度慢一些
4:如果某一设备有多个寄存器写入,尽量让寄存器属于同一类型和连续地址,并设置到同一个数据交换上。 5:对于变化慢,灵敏度要求不高的整数或者浮点变量,务必使用变化阀值,减少不必要的写入。 6:同一个设备如果有比较多数据要写入,可以分成多个数据交换,要求响应及时的交换间隔设置可以小一些,变化比较慢或者不需要及时写入的可以加上阀值,交换间隔加大。
|