一、Modbus是什么?
Modbus是一种应用层消息协议,可用于控制器与设备之间的数据交换。RS-485、RS-232是电气接口,Modbus RTU、ASCII和TCP则涉及相应的报文与传输方式。设备具有RS-485接口,并不意味着它一定支持Modbus。
在流体控制系统中,可用它读取状态或传递控制参数,但具体设备是否支持、支持哪些功能与寄存器,需要以该型号控制器的通信手册为准。本文不构成对全部FOREACH产品接口能力的承诺。
二、RTU、ASCII和TCP如何区分?
三者不能仅按接口插头判断。串行通信需要匹配模式、波特率及帧格式;TCP通信需要匹配网络连接与设备端服务设置。
| 方式 | 报文特点 | 核对重点 |
|---|---|---|
| Modbus RTU | 地址 + 功能码 + 数据 + CRC | 串口参数、设备地址、帧间隔 |
| Modbus ASCII | ASCII编码,使用LRC校验及相应起止符 | 串口参数、编码方式、LRC |
| Modbus TCP | MBAP头 + 功能码 + 数据,不附加RTU的CRC | IP、端口、事务标识、Unit Identifier |
三、串行地址与请求应答
Modbus串行单播从站地址为1—247;0用于广播,248—255保留。单播通常由主站发起请求、对应从站应答;广播写请求不返回应答。地址字段有8位,并不代表0—255都可配置为普通从站地址。
上述规则用于串行链路。Modbus TCP的MBAP头含Unit Identifier,涉及网关转发时还需按设备实现解释,不能直接把串行地址规则套到所有TCP配置。
四、功能码与寄存器表需要一起看
功能码说明读取或写入哪类数据,数据区包含地址、数量或值。即使两台设备都支持Modbus,也不代表它们使用相同的寄存器定义。
联调前应核对手册中的寄存器编号与报文起始地址是否存在偏移,确认数据宽度、有符号或无符号、比例系数、单位以及多寄存器数据的字序。速度值、位置值和液量值不能互相代用。

当寄存器涉及速度、步数或细分时,可用《精密柱塞泵步进电机计算与选型》核对单位换算。
五、流体控制设备联调步骤
先确认接线与供电,再按手册统一通信设置。开始时读取一个已知状态,核对响应中的设备地址、功能码与数据含义,然后再测试允许的参数写入和运动指令。
把通信成功、指令被接受、运动完成和液量达标分别验证。收到写入应答不等于泵已经完成动作;超时后也不能直接重复执行加液命令,应先查询状态,避免重复加液。
记录请求与响应、异常码和超时条件,结合限位、复位、阀门状态与运行时序定位问题。具体命令、地址和计数单位以对应设备通信手册为准。
运动启停参数的设置方法见《柱塞泵驱动之加减速曲线》。
吸液与排液切换时的补偿时序见《精密柱塞泵应用指南:间隙补偿》。