您好,欢迎访问飞畅科技官网!
服务热线:+086 0571-87007055/56/57 EN
串口服务器Modbus测试示例

光通信与工业互联网方案专家

EXPERT IN OPTICAL COMMUNICATION & INDUSTRIAL INTERNET SOLUTIONS

联系我们CONTACT US

全国咨询热线

0571-87007055/56/57/75

传真:0571-87007140

手机:15306818230(微信)

QQ :2355416925

定制设计:18072828031(微信)

或给我们留言

在线留言

串口服务器Modbus怎样测试:RTU与TCP转换、事务匹配和读数验收

浏览次数: 飞畅科技原创 作者:飞畅科技

测试串口服务器的Modbus功能,先确认测试的是透明搬运RTU字节,还是把Modbus TCP请求转换为串行报文。两者都可能使用TCP连接,却要求不同的软件和报文格式。一次连接成功、两个界面数字同时变化,都不能代替协议和读数验收。本文采用隔离试验中的只读场景说明方法,菜单与具体能力按型号核对。

一、先固定一条可解释的业务

假设电脑需要读取一台RS485仪表的一个已知保持寄存器。先取得仪表说明书,确认站号、字符格式、功能码、寄存器地址和返回值含义。保持寄存器只是协议定义的一类数据区,不代表里面一定是温度;单位、倍率和字节顺序都由终端说明。教学示例不作为生产写入指令或实际客户案例。

在本地短链路先证明仪表能回应,再加入网关和网络。让TCP客户端发送请求,支持转换的设备作为TCP服务端接收,同时在串口侧扮演发起查询的一方;仪表响应后,转换设备整理成TCP回应。网络客户端/服务端与串口主站/从站是两组角色,不应因为设备名字叫服务器,就认定串口侧只能被动接收。

二、两种封装分别在检查什么

RTU串行报文包含从站地址、功能数据及CRC等信息,并有相应的帧时序要求。CRC是一种用于检测传输差错的校验,不能证明发送者身份,也不用于加密。Modbus TCP则在功能数据之前使用MBAP头,提供事务标识等字段;两种外层组织不同,直接把RTU帧塞进TCP不会自动完成转换。

真正的网关需要识别网络请求,选择串口目标,按串行规则发送,再把串口回应关联到原网络事务。实现还涉及排队、超时与异常回应。验收时既看两侧报文,也看关联是否正确;“支持多TCP连接”不证明能正确调度多个请求,更不意味着串口上的多个发送者可以同时抢线。

图1:TCP请求经支持转换的网关形成RTU请求,回应返回原事务;外围封装不同。
图1:TCP请求经支持转换的网关形成RTU请求,回应返回原事务;外围封装不同。 原理示意图为通用原理示意,非实测或具体型号内部照片。

三、软件和接线怎样准备

采用适配的USB串口转换器或已知正常终端,确认RS232、RS422或RS485制式与端子定义,避免把TTL直接接入。RS485差分对、参考连接与终端配置按实际接口说明处理,不能只凭A/B字母推断极性。模拟器只适合先验证软件路径,不能替代正式电缆、现场设备和负载试验。

电脑与转换设备在规划好的隔离网段中,用唯一IP和明确业务端口。一侧程序设为Modbus TCP客户端,另一侧设为RTU终端或相应模拟器,串口参数一致。设置“串口透传”还是“RTU/TCP转换”,应看该型号定义;没有转换能力的透明设备,不能靠把端口改为某个常用数字变成Modbus网关。

四、读一个寄存器,也要核对地址

软件显示的“40001”可能是人为编号,而线上请求常使用另一种地址表示。不同工具还可能允许从零或从一填写,不核对就容易读到邻近寄存器。先把说明书中的业务点、工具输入值和实际请求地址并列记录,再核对返回长度与内容,不凭界面上有一个非零数就宣布成功。

在模拟器中设置一个可辨认的已知值,确认一次读取返回同一值;改变该值后,再确认下一次请求得到新结果。真实仪表可选允许的只读量与独立显示对照。多寄存器值还要检查字序、符号和倍率,不能把原始整数直接当工程量。测试中不要向未知地址写值或发送广播控制。

图2:单总线请求与回应顺序对应,超时、迟到回应及恢复应有明确处理。
图2:单总线请求与回应顺序对应,超时、迟到回应及恢复应有明确处理。 原理示意图为通用原理示意,非实测或具体型号内部照片。

五、事务匹配怎样验证

TCP连接中可能有多个请求;事务标识用于把回应与请求关联。网关串口侧需要按协议和资源限制安排事务,并保留必要对应关系。一个TCP回应的事务标识正确,不代表从站地址、功能码和数据也都正确,这些字段与实际业务应一并核对。

先做单请求基线,再测试计划中的多个客户端与不同从站。让各站返回可区分值,观察回应是否归属正确、有无串口冲突和不合理等待。并发测试应符合产品公布的上限,不在生产控制总线上任意压测。两路读数不互相串台,是验证结果;不能仅因可以建立两条TCP连接就推定具备事务仲裁。

六、区分异常回应和没有回应

收到协议异常码,通常说明某个协议参与者已经处理请求并返回了异常;需要看地址、功能或网关处理错误。完全超时则可能是请求没到、串口参数错误、从站掉电或等待过短。二者应分别记录,不全部归为网络断线。网关生成的异常与从站直接返回的异常,也要按设备日志及报文分辨。

在受控条件下分别让目标从站不回应、使用已知不支持的只读地址,观察程序是否显示不同结果。等待期限应包括请求发送、处理、回应、网关排队及网络时间。把超时一味调短会误判正常慢设备,调得过长又会拖慢其余轮询。用测得的时间分布和业务要求确定参数,而不是照抄固定毫秒数。

七、反向转换与恢复需单独测试

某些产品允许串口主站访问网络从站,但这不是所有RTU/TCP网关的默认能力。反向场景中,谁监听TCP、谁发起串口事务及目标映射可能改变,必须建立另一套明确测试。正向通过,不能证明反向模式、任意协议或所有功能码均通过。

还要测试网络断开、中心程序重启及恢复后重新读取。清楚区分TCP重连与业务恢复,检查旧回应是否误配到新请求。写操作尤其需要确认执行结果和重复风险,本文的只读测试不能证明远程控制安全。正式上线需按整个控制系统要求验证,不能把实验工具的结果当成全系统认证。

八、飞畅资料与交付结果

飞畅FCT-1500-G4S8公开详情列有Modbus TCP及多种串口联网模式,可作为核对候选产品的依据;具体RTU/TCP方向、站号映射、异常码处理与并发排队,应查对应固件手册并测试,不由名称推导。不同订货接口与不同模式也应分别记录。

交付保存原始请求回应、协议设置、已知值、字节解释、超时与错误结果,再注明测试使用模拟器还是真实仪表、线路长度和负载。能连接、能收到报文、能正确解释读数、异常可分辨,是逐层成立的证据。完整记录这些条件,才能让下一位维护人员复现“为什么这条Modbus链路通过”。

核验资料:飞畅FCT-1500-G4S8产品详情;Modbus官方规范与实施指南;TCP规范RFC 9293。产品功能来自官网公开说明;通用图解、测试步骤及假设不作为认证或性能保证。

现场常见问题

透明串口服务器监听端口改成502,就具备Modbus TCP与RTU转换了吗?

不会因端口号改变而增加协议解析。透明承载和转换模式要求不同的报文外层,需查设备是否识别MBAP并安排串口事务。先确认真实功能与模式,再按两侧请求回应验收,不用常用端口号代替能力证明。

工具填40001读到非零值,就能证明寄存器与工程量都选对了吗?

不能。工具与设备可能采用不同起始编号,实际请求地址、长度、符号、倍率和字序应分别核对。先使用可辨认的已知只读值,并观察变化后得到新结果,不向未知地址写值来试探读数。

两个客户端连接都成功,怎样进一步检验网关没有把回应配错?

先建立单请求基线,再在允许并发范围内让不同站点返回可区分值,记录请求、事务标识及原始回应。还应验证迟到、超时和重连;连接数量不等于串口调度能力,测试不能在生产总线上任意制造并发。

继续阅读:Modbus通讯网关怎样工作:RTU与TCP转换、地址映射及超时排查;多串口服务器怎样接线:通道映射、RS232与RS485;