2. Anybus Communicator串口参数配置与PLC数据映射
任务对象与数据路径
本例使用 Anybus Configuration Manager(ACM)配置一台 Anybus Communicator,将 RS-232 温控仪表的温度测量值映射到 EtherNet/IP 输入区,供 PLC 读取。核心对象包括:温控仪表(从站设备)、Communicator 的串口侧(RS-232 子网)、内部数据缓冲区、EtherNet/IP 侧输入区(Input Assembly)。
温控仪表通常以 ASCII 或 Modbus RTU 方式输出温度值。本例以 Modbus RTU 从站为例:仪表地址 1,功能码 03,读取保持寄存器 0x0000(温度值,单位 0.1°C,有符号 16 位整数)。Communicator 作为 Modbus RTU 主站轮询该寄存器,将结果写入内部输入缓冲区,再映射到 EtherNet/IP 输入区。
串口参数配置
在 ACM 中新建项目后,首先配置 Communicator 的串口物理参数,必须与温控仪表完全一致,否则通信无法建立。本例仪表手册给出的串口参数为:波特率 9600、数据位 8、停止位 1、校验方式 None(无校验)。
在 ACM 的“Subnet”或“Serial”设置页中,逐项设置以下参数:
- Baud rate:9600
- Data bits:8
- Parity:None
- Stop bits:1
- Protocol:Modbus RTU Master
- Response timeout:500 ms(示例值,可根据现场调整)
- Retries:2(示例值)
若仪表实际为 9600-8-E-1(偶校验),则 Parity 必须改为 Even,否则 ACM 发出的帧格式与仪表不匹配,表现为无响应或校验错误。配置完成后,ACM 会生成对应的串口子网描述,后续命令均基于该物理层参数发送。
Modbus 命令与数据映射
串口参数配置完成后,需要在 ACM 中定义与温控仪表交互的 Modbus 命令。本例添加一条“Read Holding Registers”命令:
- Slave address:1
- Function code:03(Read Holding Registers)
- Start register:0x0000
- Quantity:1(读取 1 个寄存器,2 字节)
- Poll interval:100 ms(示例值)
该命令的响应数据需要映射到 Communicator 的内部输入缓冲区。在 ACM 的“Input”或“Data mapping”区域,将命令响应中的第 1 个寄存器(2 字节)分配到内部输入缓冲偏移 0x0000,数据类型为 INT16(有符号 16 位整数)。
随后配置 EtherNet/IP 侧输入区:在“EtherNet/IP”设置中,将 Input Assembly 实例设为 100(示例值,实际以 ACM 默认或项目要求为准),输入数据长度至少 2 字节,并将内部输入缓冲偏移 0x0000 映射到 Input Assembly 的字节 0-1。这样 PLC 读取 Input 实例 100 的前两个字节即可获得温度原始值。
PLC 侧读取与验证
将 Communicator 的 EDS 文件导入 PLC 组态软件(如 Studio 5000 或 RSLogix 5000),添加设备并设置输入实例 100、输入长度 2 字节。PLC 程序中读取输入数据的前两个字节,按 INT16 解析,再除以 10 得到实际温度值(单位 °C)。
验证步骤如下:
- 给温控仪表通电,确认其显示当前温度,例如 25.0 °C。
- 在 ACM 中进入在线监视或诊断视图,查看 Modbus 命令的响应状态。若显示“OK”且响应数据为 0x00FA(250),说明串口通信正常。
- 在 PLC 在线监视中查看 Input 实例 100 的字节 0-1。若读到 0x00FA,则映射正确。
- 在 PLC 程序中计算 250 / 10 = 25.0,与仪表显示一致。
- 改变仪表温度设定或用手握传感器使温度上升,观察 PLC 读取值随之变化,确认数据实时更新。
关键参数与检查表
| 项目 | 示例值 | 检查要点 |
|---|---|---|
| 波特率 | 9600 | 与仪表手册一致 |
| 数据位 / 停止位 / 校验 | 8 / 1 / None | 三项必须同时匹配 |
| Modbus 从站地址 | 1 | 与仪表地址一致 |
| 功能码 / 寄存器 | 03 / 0x0000 | 读取保持寄存器 |
| 内部缓冲偏移 | 0x0000 | ACM 数据映射目标 |
| Input Assembly 实例 | 100 | 与 PLC 组态一致 |
| 输入字节偏移 | 0-1 | 对应温度原始值 |
| 温度换算 | 原始值 / 10 | 单位 0.1 °C |
常见问题与处理
- ACM 在线监视显示超时:检查 RS-232 接线(TX/RX/GND),确认仪表通信参数与 ACM 设置一致,适当增大 Response timeout。
- PLC 读到数据但数值异常:确认 INT16 解析方式,检查仪表寄存器是否为有符号数;若仪表使用补码表示负温度,PLC 侧需按有符号整数处理。
- 数据不更新:检查 ACM 中命令的 Poll interval 是否设置过小导致总线拥塞,或 EtherNet/IP 连接是否处于运行状态。
- EDS 导入后设备识别异常:确认 EDS 文件版本与 Communicator 固件匹配,必要时在 ACM 中重新生成 EDS。