"); //-->
原文地址:http://www.zlmcu.com/document/Modbus TCP MCGS course.html
1.概述
ZLAN5143D 是一款专门为工业环境设计的RS485设备数据采集器/物联网网关,兼具串口服务器、Modbus网关、MQTT网关、RS485转JSON等多种功能于一体。如图 1所示
图 1 ZLAN5143D
MODBUS TCP转MODBUS RTU原理:
MODBUS TCP和MODBUS RTU之间协议转换转换原理以一个实际例子来说明:比如一个RTU的写寄存器命令由用户RTU设备发出,其命令内容为:01 06 00 01 00 01 19 CA,该命令并被联网模块的485线接收后,转换为Modbus TCP格式的命令,其内容变为:00 00 00 00 00 06 01 06 00 01 00 01,并发送给与它建立TCP连接的Modbus TCP设备。其中第一个06表示后续的字节数为06个,并且少了最后的CRC校验19 CA,因为TCP不需要CRC校验。剩余的部分01 06 00 01 00 01都是直接拷贝的。这就是说Modbus的地址、功能码、寄存器都可以透明地在RTU和TCP之间传输。。
2.设备端
2.1进入ZLVIRCOM配置设备参数
图 2 配置设备参数图
1.IP地址配置成上位机同一个网段,例如安装上位机软件的上位机ip地址为192.168.1.222,那可以将我们设备配置成192.168.1.188。
2.设备在作为modbus tcp从站的时候,端口号默认为502。
3.设备在作为modbus tcp从站的时候,设备选择为tcp服务器模式。
4.转换协议一般为两种,当作为透传模式使用的时候,直接选择无,当需要使用modbus tcp转modbus rtu功能的时候,请选择MODBUS TCP协议
5.串口参数需要和下位机设备保持一致,例如电表为115200,8,无,1,我们设备也要设置的一样。。
2.2更多高级选项页面
图3 更多高级选项图
1.存储型MODBUS网关:默认,一般选择这个即可,设备将具有存储型功能,记录上位机软件下发的指令,提前下发指令缓存在设备内部,加快读取数据。
2.非存储型MODBUS网关:设备将不具有存储型功能,但是支持多主机和总线冲突检测。
3.设备为客户端做从站:当采集的是modbus tcp的从站,而主机为modbus rtu的上位机软件时,选择这个选项。
4.简单modbus tcp转rtu:简单的modbus tcp转modbus rtu,不支持多主机和存储型功能。
5.可配置modbus 网关:无需选择,指的是ZLMB网关功能。
3.MCGS端
MCGS是北京昆仑通态自动化软件科技有限公司研发的一套基于Windows平台的,用于快速构造和生成上位机监控系统的组态软件系统,主要完成现场数据的采集与监测、前端数据的处理与控制,可运行于Microsoft Windows 95/98/Me/NT/2000/xp等操作系统。
3.1设备组态:设备窗口
图4 :设备窗口
在设备窗口页面新建通用TCP/IP父设备----------标准MODBUS TCP子设备。
双击通用TCP/IP父设备,进入下图配置页面。
图5 :设备窗口
网络类型:选择1-TCP
服务器/客户设备:选择客户端模式
本机IP地址:就是MCGS所在上位机的ip地址
远程IP地址和远程端口号:就是我们设备的IP地址和端口
3.2设备属性设置
图6 :设备窗口
设备地址:就是需要被采集的modbus rtu设备的站地址,这边默认改成1,其他的可以不修改
4.通讯测试
4.1modbus slave模拟从站
图7 :connection setup
打开modbus slave从站模拟软件,点击connection 配置setup,选择连接设备的串口号,串口参数和我们设备一致,然后再点击setup-slave definition,设置从站地址为1,功能码为3,寄存器地址从0-5。修改寄存器地址0-10的值分别为1,2.....5。点击保存确认.
图8 :setup-slave definition
4.2mcgs测试
进入设备属性配置,点击内部属性,设置设备内部属性,增加通道,如图所示
图9 :setup-slave definition
最后点击设备调试,可以看到如下现象,代表目前通讯是正常的:
1.通讯状态:通道值为0,代表通讯是正常状态;
2.通道类型读写4WU:代表为03功能码,4000X寄存器,数据位1,2,3,45.和modbusslave的数据一直,代表读数据正常。
3.通讯时间:当数值极大时,代表返回超时,modbus rtu设备没有响应
图10 :结果展示
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。