『7x24小时有问必答』
西门子S7-1200与三菱PLC(如 Q 系列、L 系列、FX5U 等)之间的Modbus TCP通信,是跨品牌设备集成的典型场景。由于两者均支持标准 Modbus TCP 协议,可通过“一主一从”架构实现数据交换。
  核心原则

一台作为 Modbus TCP 客户端(Master/Client),另一台作为服务器(Slave/Server)

通常建议  S7-1200 作为客户端主动读写三菱 PLC(服务器),因其编程更灵活、诊断更完善。

---

一、通信架构选择

推荐方案:S7-1200(Client) ↔ 三菱 PLC(Server)

优点:
西门子  MB_CLIENT  指令功能强大,支持错误重试、连接管理
三菱 PLC 配置 Modbus Server 更简单(尤其 FX5U/QnUD)
符合“上位控制下位”的逻辑(S7-1200 主控,三菱执行)

备选方案:S7-1200(Server) ← 三菱 PLC(Client)

适用于三菱为主站的系统,但三菱的 Modbus Client 编程较复杂(需 GX Works3 + Socket 编程)
本文以推荐方案为准

---

二、三菱 PLC 端配置(作为 Modbus TCP Server)

1. 确认型号与固件支持

1.png
本文以  FX5U  为例(最常见)。

2. GX Works3 配置步骤

步骤 1:设置 IP 地址

在GX Works3→参数→以太网端口→设置IP(如  192.168.3.10

步骤 2:启用 Modbus TCP Server

路径:参数 → 以太网端口 → 应用设置 → Modbus/TCP 设置
勾选:
  启用 Modbus/TCP 服务器功能

  允许远程访问软元件

步骤 3:映射软元件到 Modbus 地址

在  “Modbus/TCP 设置”  中配置地址映射表:
2.png
  关键规则
D0 = Modbus 40001M0 = Modbus 00001
写入 D 寄存器用  FC06/FC16,读取用  FC03

步骤 4:下载参数并重启

下载整个参数到 PLC
断电重启(部分 FX5U 需重启生效)

---

三、西门子 S7-1200 端配置(作为 Modbus TCP Client)

1. TIA Portal 编程(调用 MB_CLIENT)

步骤 1:创建数据块(用于存储读写数据)

新建DB块(如  DB_Mitsubishi),无需关闭优化访问(因是客户端)
定义变量:
ReadData : Array[0..9] of INT;   // 读取三菱 D0~D9

WriteData : INT;                   // 写入三菱 D100

步骤 2:在 OB1 中调用 MB_CLIENT 指令

指令路径:通信 > MODBUS TCP > MB_CLIENT
配置参数:
3.png
  地址转换规则
要读  D0~D9  → Modbus 地址 =  40001~40010
协议地址 = 40001 - 1 = 0
所以  MB_DATA_ADDR = 0

步骤 3:编写读写逻辑(示例)

4.png

---

四、地址映射对照表(核心!)

5.png
公式:

MB_CLIENT 地址 = Modbus 地址 - 1

---

五、网络与硬件要求

6.png

六、常见问题排查

1. 连接失败(STATUS ≠ 0)

检查项:
三菱是否启用了 Modbus Server?(GX Works3 参数)
IP 是否能 ping 通?
三菱是否断电重启过?

2. 读到全 0 或错误值

原因:地址偏移错误解决:确认  MB_DATA_ADDR = Modbus地址 - 1

3. 写入无效

原因:
三菱 D 寄存器被程序覆盖
写操作未使用  上升沿  触发(REQ 必须为脉冲)
解决:在三菱程序中保护目标 D 寄存器(如 D100~D199 专用于通信)

4. 通信时断时续

原因:REQ 信号持续为 TRUE解决:务必用  定时器 + 上升沿  触发,例如:
T1S(Timer);

REQ := Timer.Q AND NOT Last_Q;

Last_Q := Timer.Q;

---

七、高级技巧

1. 错误重试机制

IF MB_CLIENT.STATUS <> 0 THEN

      ErrorCount := ErrorCount + 1;

      IF ErrorCount > 3 THEN

            // 触发报警或切换备用链路

      END_IF;

END_IF;

2. 批量读写提升效率

一次读取 D0~D99(100 个字),比 100 次单读快 10 倍

3. 与 HMI 联动

将  DB_Mitsubishi.ReadData  绑定到 WinCC 画面,实时显示三菱数据

---

总结:成功要点清单

  三菱端
GX Works3 启用  Modbus/TCP Server
明确  D/M 寄存器与 Modbus 地址映射
断电重启 生效
  西门子端
使用  MB_CLIENT  指令
REQ 用上升沿触发
地址 =  Modbus地址 - 1
  一句话口诀

“三菱开服务,西门子当主;地址减一算,脉冲来触发。”

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码