汇川H5U通过串口服务器做以太网通信,本质上是把原本走RS485/232的从站设备“翻译”成网口数据,你只需要完成三件事:给串口服务器配IP和串口参数、在H5U里建立Socket或Modbus TCP客户端、把报文格式对齐。这套方案在产线改造和远距离采集场景中非常实用,尤其解决了PLC自带串口不够用或布线距离超限的老大难问题。
H5U串口服务器配置步骤:先搞懂数据流向
很多工程师第一次上手会晕,是因为没想明白数据的路径,H5U本体上有以太网口,但没有物理串口(除非加扩展模块),串口服务器在这里扮演的角色是一个“协议翻译官”它一边接网线连到H5U的网口,另一边用RS485线挂载你的仪表、变频器或扫码枪,整个链路的真实走向是:
- H5U发送Modbus TCP报文 → 网线 → 串口服务器
- 串口服务器把TCP报文解析成Modbus RTU → RS485总线 → 从站设备
- 从站设备应答后原路返回
这套机制决定了你配置的核心就两点:IP和端口必须和H5U的Socket参数一一对应,串口参数必须和从站设备完全一致,任何一个环节对不上,结果就是通信超时或数据乱码。
硬件接线与串口服务器选型要点
选型建议直接看两样东西:电源规格和串口数,现场柜内一般有24V DC,所以选宽压输入(9-36V)的型号最省事,串口数量要估好如果只是连一台设备,单串口就够;如果要挂多台Modbus RTU从站,选双串口或四串口版本,但要注意每路串口都是独立的总线,不能混接不同波特率的设备。
接线方面有个高频坑:RS485的A/B线极性接反是新手最常见的问题,汇川H5U的COM口定义和市面主流串口服务器(比如有人物联网USR-TCP232系列)略有差异,接完线先别急着通电配置,用万用表量一下从站设备端的A/B电压,确认在1.5V以上再上电,还有一点屏蔽层单端接地,不要在PLC侧和串口服务器侧同时接大地,否则会产生地环路电流烧通讯芯片。
串口服务器内置参数逐项核对
串口服务器固件里需要设置的项目,业内共识是五类:工作模式(TCP Server/Client)、本地端口号、目标IP和端口、串口波特率、数据位校验位停止位,这里重点说H5U对应的推荐配置:
- 工作模式选TCP Server还是Client?建议选Server,因为H5U作主站主动连接,Server模式下串口服务器是被动等待,逻辑更清晰,也不容易因为PLC重启导致重连异常。
- 波特率选多少?9600和19200是绝大多数仪表的出厂默认值,如果从站设备支持38400以上,尽量用高的,但必须保证总线上所有设备统一,包括中继器等旁路设备。
- 校验方式固定为E,8,1(偶校验),除非设备手册明确写了N,8,1或O,8,1,做项目时建议把校验方式写在图纸备注里,后续维护的人就会少骂你几句。
H5U端编程实现链路打通
汇川H5U的编程软件是InoProShop,新建工程后你是在“以太网配置”里添加一个设备,类型选择“标准TCP客户端”,这里强调一个关键点:H5U的Socket功能不是填了IP就自动通的,你还得在程序里用FB块去建立连接,用到的指令块是内置的“TCP_CONNECT”和“TCP_SEND_RECV”,具体踩坑经验如下:
- 在任务配置中,把建立连接的FB块放在初始化程序段,用SM0.0常ON触发,或者用首次扫描标志位执行一次即可。
- 发送数据的长度必须和串口服务器透传的“打包方式”匹配,如果串口服务器配置了“自定义帧间隔拆包”,你发送的报文长度建议固定,不要时短时长,否则很容易出现粘包和半包。
- 注意H5U的寄存器地址映射:Modbus TCP里的保持寄存器地址40001对应H5U里的离散数组地址,你在H5U里读到的是一个字节数组,需要手动拼字(高字节在前)。
H5U通过串口服务器连接第三方设备实战场景
以最常见的“H5U读电表数据”为例,这个场景能串起所有核心步骤,假设现场用的是一台支持Modbus RTU的智能电表,串口参数9600, E, 8, 1,站地址3,你要读电压和电流。
先给串口服务器分配一个固定IP,比如192.168.1.20,端口号设为1000,串口参数按电表设置好,然后在H5U的InoProShop里,以太网配置中添加TCP客户端,指向192.168.1.20:1000,程序里用TCP_SEND_RECV块,发送的数据是十六进制报文:03 03 00 00 00 02 C5 B7,其中03是站号,03是功能码读保持寄存器,00 00是起始地址,00 02是读2个寄存器,后面是CRC校验,收到响应的字节数组里,第4和第5字节就是电压的高低位。
这个过程中最值得留意的是时序配合,串口服务器的响应时间通常在10-50毫秒,而H5U的扫描周期默认是1毫秒,如果你的程序里每个周期都去调用发送FB,对方根本反应不过来,行业里的常规做法是用一个50ms的定时器产生脉冲,每次脉冲上升沿触发一次发送,发送完成后等接收完成标志位再处理数据,而不是用轮询死等。
多台设备并联时的轮询策略
当RS485总线上挂了5台设备时,H5U作为主站需要逐一访问,有经验的工程师不会用一个TCP连接循环发报文,因为串口服务器的串口是半双工的,只能等一台设备回应完再问下一台,推荐的策略是做一个轮询队列:
- 用一个整型变量做站号指针,从1递增到5,到顶后归零重新开始。
- 状态机用三态:空闲态+等待应答态+发送态,发送态置位发送标志并记录当前时间,等待应答态里如果超过200ms没收到数据就跳过当前站号。
- 这种设计能保证总线上不会出现报文碰撞,就算某台设备掉线,它顶多占一个200ms超时,不影响其他设备刷新。
H5U和串口服务器之间还有哪些不要踩的坑
调试过程中有几种现象特别容易让人挠头,第一种是:能Ping通串口服务器,但H5U就是连接不稳定,这多数是网线的问题,现场用了劣质网线或者水晶头压接不良,千兆线和百兆线的线序互换导致握手异常,第二种是:指示灯全正常但收不到数据,这时候用串口服务器的调试助手软件,在电脑上先做一次“串口服务器虚拟串口+Modbus Poll”测试,如果电脑能通,那问题一定出在H5U端的报文构造上最常见的是CRC校验位没算对,或者功能码和从站不一致。
第三种现象比较隐蔽:变频器或者伺服驱动器挂在RS485总线上导致干扰,串口服务器的外壳上有个DY和GND端子,好多工程师当作没用给悬空了,实际上这个端子是用来接屏蔽层和泄放共模干扰的,行业共识是,如果在同一柜子里有变频器,用一根2.5平方的导线把GND端子接到柜内的接地排,通信误码率能下降一个数量级。
汇川H5U串口服务器方案和其他通信方式对比
很多用户会纠结,既然H5U能走以太网,为什么不直接用Modbus TCP的仪表,非要再加一层串口服务器?看看这个对比表就明白决策逻辑了:
| 对比维度 | H5U+串口服务器 | H5U直连Modbus TCP设备 |
|---|---|---|
| 设备成本 | 较低,旧设备利用 | 高,仪表需换新 |
| 接线复杂度 | 一根网线+手拉手RS485 | 每台设备一根网线 |
| 抗干扰能力 | 取决于总线布线 | 强,以太网物理隔离 |
| 通信速率 | 通常9600/19200 | 10/100M自适应 |
| 最大节点数 | 32台(RS485标准) | 理论上无限制 |
从表里能看出,串口服务器的价值主要在存量设备改造场景,你不需要把车间里几十台老款温控器全部换成以太网款,只需在PLC柜里加一个四串口服务器,就能把这批老设备统一纳管,而且从调试难度上看,H5U侧的程序几乎不用改读Modbus RTU和读Modbus TCP在应用层上的数据格式是一样的,差别只在传输层的封装方式不同。
汇川H5U串口服务器常见问题快查
问:H5U用网线直连串口服务器始终连不上,如何排查?
答:先检查两个链路:第一,电脑分别Ping这两个设备的IP,确认物理层通;第二,把串口服务器设为TCP Server模式,用电脑上的TCP工具模拟连接,如果电脑能连上并发送数据,说明串口服务器没问题,问题大概率出在H5U的TCP客户端功能块没有处于使能状态,检查一下FB块是不是被调用了,还有目标端口和IP有没有输反。
问:串口服务器选的波特率必须要和H5U一致吗?
答:不需要,H5U通过以太网发送的是Modbus TCP报文,报文本身不携带波特率信息,波特率只在串口服务器和从站设备之间起作用,所以串口服务器串口侧的波特率必须和从站设备一致,而H5U侧不需要也无法设置这个参数。
问:用串口服务器带8台扫码枪,为什么经常丢帧?
答:大概率是RS485总线的节点带载能力不够,标准RS485收发器的驱动能力只支持32个节点,但实际布线长度超过100米或者线缆阻抗不匹配时,节点数要打对折,建议加一个485中继器把总线分成两段,同时把终端电阻拨码开关拨到ON位置,另外扫码枪的通讯协议如果是自由协议而非标准的Modbus,那处理逻辑就完全不同了,需要在H5U里用自由格式的Socket收发,不能套用Modbus地址映射。
用了这套方案,设备维保时只要打开H5U的在线监控,就能直接看到每一台串口服务器的连接状态和数据包计数,比去现场拿手持器插仪表方便太多。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/602596.html




