2. AVEVA与PLC建立Modbus TCP数据连接

AVEVA与PLC建立Modbus TCP数据连接 学习卡片

Modbus TCP 通信链路与寄存器映射

AVEVA 监控项目通过 Modbus TCP 驱动与 PLC 模拟器建立连接,核心是确定IP 地址、端口、从站号、寄存器地址四个参数,并将读取到的保持寄存器值映射到画面标签。Modbus TCP 默认端口为 502,保持寄存器使用功能码 03(读保持寄存器),地址从 0 开始编号。

AVEVA 监控项目 Modbus TCP 驱动 IP: 127.0.0.1 : 502 标签 Tag_HR0 地址: 40001 / 从站: 1 画面显示控件 绑定 Tag_HR0 请求 (功能码 03) 响应 (寄存器值) PLC 模拟器 Modbus TCP Server 监听 0.0.0.0:502 保持寄存器区 HR0 = 1234 (示例值) 从站地址: 1 支持功能码: 03/06/16 通信参数核对 • IP: 127.0.0.1 • 端口: 502 • 从站号: 1 • 寄存器: 40001 • 数据类型: UINT16 • 扫描周期: 1000ms Modbus TCP 请求/响应模型:客户端发起功能码 03 请求,服务器返回寄存器数据

配置 Modbus TCP 驱动与标签

在 AVEVA 开发环境中,驱动配置与标签定义是建立通信的关键。以下为具体操作路径与参数设置。

1. 添加 Modbus TCP 驱动

  • 在项目树中右键 通信 → 添加驱动,选择 Modbus TCP。
  • 驱动名称设为 ModbusTCP_1,启用状态保持默认。

2. 配置设备连接参数

参数值说明
IP 地址127.0.0.1本机回环地址,指向 PLC 模拟器
端口502Modbus TCP 标准端口
从站号1模拟器默认从站地址
超时3000 ms单次请求等待时间
重试次数2超时后重试次数

3. 定义标签

在驱动下新建标签,关键属性如下:

  • 标签名:Tag_HR0
  • 寄存器类型:保持寄存器 (Holding Register)
  • 地址:40001(对应 Modbus 地址 0)
  • 数据类型:UINT16
  • 扫描周期:1000 ms
地址换算提示:Modbus 协议地址从 0 开始,而传统 PLC 地址从 1 开始。40001 对应协议地址 0,40002 对应地址 1,以此类推。AVEVA 驱动通常支持直接填写 40001 格式,也可填写 0 格式,需与驱动文档一致。

PLC 模拟器准备与通信验证

使用 Modbus 从站模拟器(如 Modbus Slave、ModbusPal 或 Python 脚本)在本机 502 端口启动服务,并设置保持寄存器 HR0 的值为 1234(示例值)。

模拟器关键设置:

  • 连接方式:Modbus TCP
  • 监听端口:502
  • 从站地址:1
  • 寄存器区:Holding Register,地址 0 写入 1234

验证步骤:

  1. 启动模拟器,确认监听状态正常。
  2. 在 AVEVA 中激活项目运行,观察驱动状态是否为 已连接。
  3. 打开画面,查看绑定 Tag_HR0 的显示控件是否显示 1234。
  4. 在模拟器中修改 HR0 的值为 5678,观察画面是否在 1 秒内更新为 5678。
常见问题:若驱动显示“连接失败”,优先检查模拟器是否已启动、端口 502 是否被占用、防火墙是否拦截。若显示“通信超时”,检查从站号和寄存器地址是否正确。若画面值不更新,检查标签扫描周期是否过短或过长,以及控件绑定是否正确。

通信状态判读与结果确认

通过以下三个层面确认通信正常:

  • 驱动层:驱动状态显示“已连接”,无错误计数增长。
  • 标签层:标签质量戳为“良好”,时间戳持续刷新。
  • 画面层:显示控件数值与模拟器寄存器值一致,修改后能实时跟随。

若以上三层均满足,则 Modbus TCP 数据连接建立成功,可进入后续趋势曲线与历史记录配置。