H5U ↔ Factory IO 通信实战——Modbus TCP 地址映射与避坑
H5U ↔ Factory IO 通信实战——Modbus TCP 地址映射与避坑

H5U ↔ Factory IO 通信实战——Modbus TCP 地址映射与避坑

H5U ↔ Factory IO 通信实战——Modbus TCP 地址映射与避坑 | 联合散客 UNSK

H5U ↔ Factory IO 通信实战——Modbus TCP 地址映射与避坑

作者:散客(UNSK) | 系列:汇川 H5U + Factory IO 仿真入门实战 | 2026-07-09
Modbus TCPH5U地址映射调试

前三篇讲了程序逻辑、按钮、Tags,但一直有个问题没解决:Factory IO 和 H5U 到底怎么连起来?答案就是 Modbus TCP。这篇是系列收官,把通信架构、地址映射、调试避坑讲透,再给一个完整的纸箱分拣案例程序架构。看完这篇,你能从零搭起一个跑得通的 H5U + Factory IO 仿真系统。

一、通信架构:谁主谁从

Factory IO 不支持与 H5U 直接通信,得通过 Modbus TCP 桥接。角色分配很关键:

Factory IO Modbus TCP Client 3D 仿真环境 虚拟传感器 / 执行器 汇川 H5U Modbus TCP Server AutoShop 离线仿真 IP 127.0.0.1 · 端口 502 Modbus TCP / 以太网 Client 主动读写 Server 寄存器 H5U 输入区 X(传感器) 偏移 = 63488 (0xF800),计数 14 对应 X0 ~ X13 FactoryIO 虚拟传感器 → 写入 H5U 输出区 Y(执行器) 偏移 = 64512 (0xFC00),计数 10 对应 Y0 ~ Y9 FactoryIO 读取 → 驱动执行器
图1 · Modbus TCP 通信架构与地址映射
  • Factory IO = Client(主站),主动发起读写
  • H5U = Server(从站),被动响应

为什么这样分?H5U 作从站配置简单,AutoShop 里设好 IP + 端口 502 + 寄存器映射就行;Factory IO 的 Drivers 里直接填 H5U 的 IP 做 IO 映射。这种架构 H5U 程序不用写通讯代码,只管读写自己的 M/D 寄存器,通讯完全透明,调试最省心。

二、两个魔法数字的来历

配置时有两个看起来很怪的数字:6348864512。它们不是随便填的,是 H5U 说明书里出厂固定的 Modbus 映射地址

参数十六进制含义计数对应点
输入偏移634880xF800H5U X 区(数字量输入)起始地址14X0~X13
输出偏移645120xFC00H5U Y 区(数字量输出)起始地址10Y0~Y9

这两个地址是 H5U 固件出厂固定的 Modbus 映射,不能随便改,必须查 H5U 说明书。不同 PLC 映射规则不同,换 PLC 就得重查。

三、数据流向(输入/输出视角陷阱)

这里是最容易绕晕的地方,盯紧数据流方向:

  • FactoryIO 的虚拟传感器状态 → 写入 H5U 的 X 区 → PLC 程序”读 X 点”读到的就是仿真传感器状态
  • PLC 程序运算后写 Y 点 → FactoryIO 读取 H5U 的 Y 区 → 驱动虚拟执行器
⚠️ “输入/输出”视角陷阱:文章里”输入偏移 63488″的”输入”是相对 H5U/PLC 说的(X 是 PLC 的输入);但在 FactoryIO 的 Driver 配置界面里,这个对应的是”Outputs”(FactoryIO 写出去)。两个软件对”输入/输出”的定义都相对自身——这就是新手配置时方向搞反的根源。配置时盯紧数据流向,别被”输入/输出”字眼带偏。

四、AutoShop 离线仿真配置

没有真实 H5U 硬件也能练,AutoShop 自带仿真器:

  1. 打开 AutoShop → 新建工程 → PLC 类型选 H5U → 选对应 CPU 型号
  2. 以太网口配置:设 H5U 的 IP(如 192.168.1.10
  3. 启用 Modbus TCP Server,监听端口 502
  4. 编写 PLC 程序后,点击离线仿真。注意:AutoShop 离线仿真默认 IP 是 127.0.0.1,所以 Factory IO 连本机 127.0.0.1:502 就行

五、Factory IO 侧配置步骤

  1. 搭好场景(供料气缸 → 传送带 → 升降台 → 货架等)
  2. 菜单 File → Drivers → 选择 Modbus TCP/IP Client
  3. 配置:Host = 127.0.0.1(或 H5U 实际 IP),Port = 502,Slave ID = 1
  4. 填输入偏移 63488 计数 14(对应 X0-X13);填输出偏移 64512 计数 10(对应 Y0-Y9)
  5. 在 Driver 的 I/O 连接面板里,把每个元件的 I/O 端口拖到对应 Modbus 地址
  6. Connect,状态变绿色对勾 = 通信成功

六、调试避坑清单

现象可能原因排查方法
FactoryIO 连不上 H5UIP/端口/站号错先用 Modbus Poll 连同一 IP:502,能连上说明 H5U 从站 OK
能连上但读不到数据寄存器地址映射错H5U 的 %IX/%QX 和 Modbus 1x/0x 偏移要对齐,差 1 个偏移是最常见的坑
数据乱跳/错位字节序问题模拟量注意 Big/Little Endian,用 %MW 单独写固定值测试
通讯时断时续轮询太快Polling Interval 调到 50~100ms,别用默认最小值
执行器不动作但变量有值输出方向映射反了传感器是 PLC 输入,执行器是 PLC 输出,方向别填反
仿真跑一会儿卡死程序死锁检查步进标志的复位逻辑,每个状态都要有明确退出条件

调试三步法(强烈建议按顺序走)

  1. 单点通讯测试:H5U 里写固定值到 %MW0,用 Modbus Poll 读 40001,确认通 + 地址对齐
  2. 单元件功能测试:只接一个气缸 + 一个传感器,手动置位 %QX0.0 看 FactoryIO 气缸动不动
  3. 整线联调:前两步通了再接全部 IO,跑自动流程

七、纸箱分拣案例:标准化的 6 段式程序架构

通信通了,程序怎么组织?工业 PLC 有个标准范式——6 段式架构,别把逻辑全堆一块,要分层。这是从一个纸箱分拣案例里学到的:

① 输入信号映射 ② 设备控制模式 ③ 报警程序 预留 D21.0~D22.15 共 32 个报警位 ④ 手动初始化 切手动时信号复位 ⑤ 自动程序 进料 → 装载 → 产品判断 → 送料 (核心工艺逻辑) ⑥ 输出程序 输入规整 → 模式调度 → (报警+手动/自动) → 输出汇总
图2 · 6 段式程序架构:分层解耦,工业标准范式

每一段的设计思想:

  • ① 输入映射:把外部常开/常闭信号统一规整成内部标准信号,后面程序就不用关心物理触点类型(呼应第 1 篇讲的按钮常开常闭)。
  • ② 设备模式:状态机管理手动/自动/停止/报警,整个设备的”大脑”。
  • ③ 报警程序:预留 D21.0~D22.15 共 32 个报警位,方便扩展(呼应第 3 篇的失效注入练排故)。
  • ④ 手动初始化:切手动时复位信号,防止残留状态。
  • ⑤ 自动程序:核心工艺逻辑,分进料、装载、产品判断、产品送料(每一步的”到位保持”本质都是第 1 篇讲的自保变体)。
  • ⑥ 输出程序:汇总手动和自动两种模式的输出,集中驱动 Y 点,避免两套逻辑抢同一输出。

这种分层架构的好处:工艺逻辑(自动)和模式管理、报警、IO 都解耦,改一处不影响别的。

小结

  1. 角色:Factory IO 作 Client,H5U 作 Server(离线仿真 IP 127.0.0.1:502)。
  2. 地址:输入偏移 63488(0xF800) → X0-X13;输出偏移 64512(0xFC00) → Y0-Y9。来自 H5U 说明书固定映射。
  3. 方向:传感器写 X 区,PLC 写 Y 区被 FactoryIO 读。盯紧数据流,别被”输入/输出”字眼绕晕。
  4. 调试:单点通讯 → 单元件功能 → 整线联调,三步走最省心。
  5. 程序:用 6 段式架构分层,别堆一块。
✦ 系列完结 ✦
从启保停到通信实战,H5U + Factory IO 仿真入门就到这里。
善始善终,迭代极致 · 让科技感知未来
📖 系列导航:本文是「汇川 H5U + Factory IO 仿真入门实战」系列第 4 篇(完结)。
① 启保停电路 → ② Factory IO 按钮颜色密码 → ③ Factory IO Tags 标签全解 → ④ H5U ↔ Factory IO 通信实战(本文)