爱普生 EPSON 机器人 + 西门子 S7-1200/1500 Modbus TCP 完整配置步骤
整体架构说明
角色:爱普生机器人 = Modbus TCP Server(服务器 / 从站),内置 Modbus TCP 服务,端口固定 502
西门子 PLC = Modbus TCP Client(客户端 / 主站),用
MB_CLIENT主动读写机器人寄存器适用控制器:RC700 / RC90 / RC90-B;软件:EPSON RC+ 7.x
网段规划示例(必须同网段)机器人 IP:
192.168.1.30掩码255.255.255.0西门子 PLC IP:192.168.1.10调试电脑:192.168.1.100硬件:普通工业交换机、屏蔽网线直连,无需额外通讯板卡
一、硬件接线
爱普生控制器网口 → 交换机
西门子 PLC PROFINET 网口 → 同一交换机
电脑网口接入交换机;网线远离伺服、变频器动力线缆
二、爱普生机器人 RC + 软件完整配置(核心分 4 步)
步骤 1:电脑连接机器人,修改控制器 IP
电脑与控制器通信
新增以太网连接
控制器IP设置
打开 RC+ → 【工具】→【电脑与控制器通信】
点【增加】→ 选择通过以太网连接到控制器,输入机器人默认 IP(RC90 出厂 192.168.0.1)
连接成功后:【工具】→【系统配置】→【配置】
修改参数:
IP 地址:
192.168.1.30子网掩码:
255.255.255.0网关:
0.0.0.0控制设备:远程 I/O(必须选,否则无 Modbus 总线选项)
点击【应用】保存
步骤 2:启用 Modbus TCP 现场总线服务
Fieldbus I/O从站设置
Modbus TCP参数
左侧菜单找到【现场总线 I/O 从站】
现场总线类型下拉选择:Modbus TCP
固定参数:
端口:502(Modbus 标准端口,不可修改)
输入字节:256(最多 2048DI)
输出字节:256(最多 2048DO)
点击【应用】,弹出提示重启控制器,确认重启机器人控制柜
步骤 3:Modbus 地址映射规则(重中之重,避免通讯错位)
爱普生 Modbus 地址固定分区,线圈从 512 起始,寄存器从 40001 起始
0x 线圈(可读写 Bit,PLC 下发指令给机器人)
Start 启动信号 = 线圈 512
Stop 停止信号 = 线圈 513
机器人远程输入信号(PLC→机器人):线圈地址
512 ~ 2559示例:
1x 输入线圈(只读 Bit,机器人反馈给 PLC)
Ready 就绪 = 输入线圈 512
Alarm 报警 = 输入线圈 513
机器人远程输出信号(机器人→PLC):输入线圈
512 ~ 2559示例:
4x 保持寄存器(16 位 Word,读写数值 / 坐标)
寄存器 40001 ~ 42048,对应机器人内部变量、位置数据
40001 = 偏移地址 0,PLC 指令
MB_DATA_ADDR=40001
远程控制输入信号线圈分配
步骤 4:自定义交互信号(启停 / 报警)
左侧【远程控制输入】:修改 Start、Stop 线圈号为 512、513
左侧【远程控制输出】:修改 Ready、Fault 线圈号为 512、513
保存配置,再次重启控制器生效
步骤 5:机器人 SPEL + 交互程序示例
spel
' 读取PLC下发启动信号(Modbus线圈512) IF SwIn(512) THEN SwOut(512)=ON ' 反馈就绪给PLC Go P_Home V=50 ELSE SwOut(512)=OFF ENDIF ' 故障信号回传 If Alarm Then SwOut(513)=ON Else SwOut(513)=OFF EndIf
三、西门子 TIA Portal S7-1200/1500 PLC 配置
前置要求
PLC 固件≥V4.0,TIA Portal V13 及以上
设备组态中 PLC 以太网 IP 设为
192.168.1.10,子网掩码 255.255.255.0新建 DB 数据块,取消勾选【优化的块访问】(Modbus 强制要求)
步骤 1:调用 Modbus 客户端指令 MB_CLIENT (FB90)
OB1 主循环块 → 指令库【通信】→【Modbus TCP】→拖拽
MB_CLIENT自动生成背景 DB(DB10,每个机器人独立 DB 块)
步骤 2:MB_CLIENT 关键参数填写
表格
| 参数 | 填写值 | 说明 |
|---|---|---|
| REQ | M0.0(上升沿触发) | 脉冲触发读写,不要常 ON |
| CONNECT_ID | 1 | 唯一连接 ID,多机器人依次 2、3... |
| IP_ADDR | "192.168.1.30" | 爱普生机器人 IP |
| IP_PORT | 502 | Modbus TCP 标准端口 |
| MB_MODE | 0 = 读 / 1 = 写 | 0 读取机器人状态;1 下发指令 |
| MB_DATA_ADDR | 40001 | 机器人寄存器起始地址 |
| MB_DATA_LEN | 4 | 读写寄存器数量(Word) |
| DATA_PTR | P#DB11.DBX0 WORD 4 | 读写缓存 DB 指针 |
| DONE | M0.1 | 通讯完成标志位 |
| ERROR | M0.2 | 通讯故障位 |
| STATUS | MW2 | 故障代码 |
步骤 3:读写线圈(启停开关量)程序示例
写线圈(PLC 启动机器人,功能码 05)MB_MODE=1,MB_DATA_ADDR=512,DATA_LEN=1M0.5 置 1 → 机器人 SwIn (512)=ON,启动运行
读线圈(读取机器人就绪,功能码 02)MB_MODE=0,MB_DATA_ADDR=512,DATA_LEN=1DB11.DBW0=1 → M1.0 置 1,机器人就绪
步骤 4:寄存器读写(坐标 / 数值)
读取机器人 X 轴坐标:MB_DATA_ADDR=40010,长度 2(浮点数占 2 个 Word)
PLC 内用
DWORD_TO_REAL转换 DB 缓存为浮点数坐标
四、通讯连通性测试三步验证
网络层 Ping 测试电脑 CMD 输入
ping 192.168.1.30,无丢包代表网络正常PLC 通讯诊断TIA 在线监控 MB_CLIENT.DONE=1、ERROR=0,无报错代码
双向信号实测
PLC 强制 M0.5=1 → RC + 监视 SwIn (512)=ON,机器人启动
机器人程序 SwOut (512)=ON → PLC DB11.DBW0=1,M1.0 置 1双向同步 = 通讯完全正常
五、常见故障排查
PLC MB_CLIENT 持续 ERROR、STATUS=16#80C4
机器人 Modbus TCP 未启用、未重启控制器;IP 网段不一致;网线断开
能连接但信号无变化
机器人线圈地址设置错误(必须从 512 起始,不能用 0~511)
输入 / 输出字节设置过小,点位超出映射范围
浮点数坐标错乱
西门子与爱普生字节序不一致,PLC 内增加
SWAP高低字节交换指令通讯频繁断开
网线非屏蔽,与动力线并行;增加轮询间隔 50ms;交换机接地
RC + 找不到【现场总线 I/O 从站】菜单
控制器【控制设备】未选择「远程 I/O」,改完重启机器人
六、补充对比方案
本方案(机器人 Server,PLC Client):现场主流,PLC 主动控制机器人启停、读取状态,推荐新项目
机器人做 Client 读写 PLC(备选):机器人 SPEL + 用 Socket 指令实现 Modbus Master,适合机器人主动读取传感器 / 流水线数据,程序复杂度更高。

