注:Modbus设备一般都有两种协议,modbus RTU和 modbus ASCII,由于后一种效率比RTU低,所以我们的产品是专门针对modbusRTU协议的从站设备(PLC)或仪表
一)应用范围:
A.带有 modbus RTU 接口的 PLC 转成以太网通讯( modbus TCP协议)
B.各种带有 modbus RTU 协议的现场仪表、设备转换成以太网通讯(modbus TCP协议)
例如:电脑(组态王、力控、WinCC、KepwareOPC...)、触摸屏通过以太网,即modbus TCP协议通过我们的该协议转换器,与现场仪表、PLC、DCS等带有modbus RTU协议(RS485))的设备进行通讯
图1:
二)安装:
35mm导轨安装,DC 24V供电(3W)
产品正面有一个网口,用于连接电脑、触摸屏、以太网交换机;
产品侧面上部,有一两孔可插拔式端子,用于连接直流24V电源;
产品侧面下部,有一三孔可插拔式端子,用于连接modbus RTU双绞线D+、D-,以及通信地(注:一般该端子不接,只有modbus 设备也有通信地时,才将它们连接在一起,以提高抗干扰能力)
图2:
三)工作原理:
电脑中的监控软件,如组态王、力控、WinCC、KepwareOPC、ModbusMaster等,驱动选择 modbus TCP协议,先定义tag(数据项),然后使监控软件进入运行方式,此时监控软件会自动形成
modbus TCP命令,将其通过以太网线发送给我公司的(ModbusTCP转modbusRTU)协议转换器,我们的转换器再将该命令转化成modbusRTU命令,通过RS485总线,将其发给总线上的现场仪表、PLC等modbus从站设备,
这些设备收到命令后,再将应答信息通过RS485总线回送给我公司的(ModbusTCP转modbusRTU)协议转换器,我们的转换器再将回送信息转化成modbusTCP格式信息,通过网线回送给电脑中的
监控软件。
这里各位心里可能会有疑问,modbusTCP是高速通讯(100M),而modbusRTU是低速通讯(19200);这就会出现modbusTCP命令不会被立即响应的问题,那我们公司的(ModbusTCP转modbusRTU)协议转换器是
如何解决这一棘手的通讯速率不匹配的问题呢,我们对于读数据使用了命令循环池的技术策略,很完美的解决了这个难题,而对于modbusTCP的写命令,我们则采用了中断优先方式,保证数据立即写入modbusRTU从站设备中
因此,用户使用我们公司的(ModbusTCP转modbusRTU)协议转换器,会感觉通讯速度是真的很快,没有一丝顿挫感!
四)连接从站的个数:
我们公司的(ModbusTCP转modbusRTU)协议转换器,内部有一个IP地址(出厂预设为192.168.1.10;它还预留了一个后门地址192.168.1.222-注:并不是转换器的真实地址,用于当用户忘记实际的IP地址后,通过在IE浏览器中键入192.168.1.222来进入内部设置页面-网页,来查看或设置转换器的内部实际设置值)
这里就有一个问题了,上位机(电脑)如何通过一个IP地址(我们的转换器)与多个modbusRTU 从站设备通讯呢?我们的转换器有三种从站地址对应方式(可选),最多可连接66个modbus 从站仪表或设备以及PLC等
第一种方式:从站只有一个,站号为1
第二种方式:从站共有七个,站号为1-7
modbus TCP起始地址与 modbus从站的对应关系
00000-09999对应 1号从站0-9999
10000-19999对应 2号从站0-9999
20000-29999对应 3号从站0-9999
......
50000-59999对应 6号从站0-9999
60000-65535对应 7号从站0-5535
第三种方式:从站共有66个,站号为1-66
modbus TCP起始地址与 modbus从站的对应关系
00000-00999对应 1号从站0-999
01000-01999对应 2号从站0-999
02000-02999对应 3号从站0-999
......
64000-64999对应 65号从站0-999
65000-65535对应 66号从站0-535
五)设置简单
只要将从站个数、设备的波特率、数据位、校验方式填入就完成了转换器的设置工作。
具体过程如下:
用网线把转换器和电脑连接,在电脑的IE浏览器地址栏中直接键入192.168.10 ,然后回车键,如下图3:
六)调试及诊断
A.如果从站没有响应、校验出错或返回格式有误可以在转换器的《调试及诊断》页面中,显示前10个有故障的modbus命令,用于通讯分析。
B.有些modbusTCP命令在五分钟内仅发送了一次,只后就不再出现,针对这种几乎不再使用的命令,也会显示在转换器的《调试及诊断》页面中,用户可以通过【清空命令循环池】,来阻止这些
命令不断地循环读取从站,提高有用数据的刷新频率,当然如果之后该命令又从新出现,那它还是会被加入命令循环池中,不断地循环读取从站数据。
图4: