安川机器人 + 西门子 S7‑1200 Modbus TCP 通讯步骤
(YRC1000、DX200 通用,S7‑1200 做服务器,机器人做客户端)
一、先确认条件
安川机器人必须已开通:Modbus TCP 选项
机器人与 PLC 用网线接在同一交换机
网段必须一致:如
PLC:192.168.2.1
机器人:192.168.2.10
二、安川机器人端配置(关键)
1. 进入维护模式
关机 → 按住 主菜单 → 开机 → 滴一声后松开
2. 设置机器人 IP
路径:系统 → 设置 → 选项功能 → LAN 接口设定
IP:192.168.2.10
子网:255.255.255.0
网关:192.168.2.1
应用 → 重启
3. 开启 Modbus TCP
路径:系统 → 设置 → 选项功能 → Modbus TCP
设置:
Modbus TCP:有效
模式:客户端(Client)
服务器 IP:192.168.2.1(就是 PLC 的 IP)
端口:502
通信周期:10ms
重试:3
4. 设置 I/O 映射(最关键)
按下面直接抄:
1)PLC → 机器人(输出区 → 机器人 DI)
服务器起始地址:0
机器人输入地址:0
点数:32(对应 DI1~DI32)
2)机器人 → PLC(机器人 DO → PLC 输入区)
服务器起始地址:100
机器人输出地址:0
点数:32(对应 DO1~DO32)
保存 → 重启控制器
三、西门子 S7‑1200 配置(TIA Portal)
1. 设置 PLC IP
IP:192.168.2.1
子网:255.255.255.0
2. 调用 Modbus TCP 指令
在 OB1 里拖入:MB_SERVER
3. MB_SERVER 填写
EN:M0.0(常 ON)
PORT:502
背景 DB:自己新建一个(如 DB10)
4. 建立通讯数据区
新建 DB,比如 DB100 Modbus_Data
禁止优化块访问!!!(必须取消)
定义:
plaintext
// PLC→机器人(32点) PLC_Send_TO_Robot AT %MB0: ARRAY[0..3] OF BYTE; // 机器人→PLC(32点) Robot_Receive_TO_PLC AT %MB100: ARRAY[0..3] OF BYTE;
5. 连接 MB_SERVER
MB_SERVER 的 HoldReg 指向 DB100.DBW0
机器人读到的就是这里
四、通讯对应关系(直接用)
PLC 的 DB100.DBB0~DBB3→ 机器人 DI1~DI32
机器人 DO1~DO32→ PLC 的 DB100.DBB100~DBB103
五、测试方法
把 PLC 的 DB100.DBX0.0 置 1→ 机器人 DI1 亮
机器人把 DO1 置 1→ PLC DB100.DBX100.0 为 1
通讯成功!
六、最容易踩的坑
机器人没开 Modbus TCP 选项 → 连不上
DB 块没取消 优化块访问 → 数据乱
IP 不在同一网段
端口不是 502
机器人必须是 Client,PLC 是 Server。


