埃斯顿 ER/RCS2 + 欧姆龙 NJ/NX EtherNet/IP 完整数据映射全流程
一、核心映射逻辑
1. 通讯角色与 Assembly 装配体(固定不可改)
欧姆龙 NJ/NX:EtherNet/IP Scanner 主站(主动收发)
埃斯顿机器人:EtherNet/IP Adapter 从站
Output Assembly(PLC 下发→机器人):实例号 150(机器人输入区)
Input Assembly(机器人上传→PLC):实例号 100(机器人输出区)
数据流方向:欧姆龙全局输出变量 → EIP Output (150) → 机器人远程输入 RI机器人远程输出 RO → EIP Input (100) → 欧姆龙全局输入变量
2. 字节 / 点位换算规则
1Byte=8Bit;示例配置:双向各 256Byte(2048 点开关量)
PLC 下发 256Byte → 机器人
RI0 ~ RI2047机器人上传 256Byte → PLC
RO0 ~ RO2047如需传输坐标、数值(浮点数 / 16 位字),扩展字节至 512/1024Byte,用字数组映射。
二、第一部分:埃斯顿机器人侧数据映射配置(示教器 / RCS2)
步骤 1:开启 EtherNet/IP 适配器、设定 IO 字节长度
管理员登录(默认密码
ESTUN)→【系统设置】→【现场总线】→EtherNet/IP模式:Adapter 从站;RPI 周期 20ms;
输出装配 (PLC→机器人) 字节:256 Byte(实例 150)
输入装配 (机器人→PLC) 字节:256 Byte(实例 100)
保存,重启控制柜。
步骤 2:机器人总线 IO 地址分配(映射底层 RI/RO 区间)
菜单:【IO 配置】→【远程总线 IO 分配】
远程输入 RI(PLC 发指令给机器人)总线输入起始地址:
RI0,占用 2048 点(256Byte)点位:RI0~RI2047用途:PLC 下发启动、复位、夹具夹紧、工位选择等指令远程输出 RO(机器人反馈状态给 PLC)总线输出起始地址:
RO0,占用 2048 点(256Byte)点位:RO0~RO2047用途:机器人就绪、运行中、报警、到位、抓手状态反馈
步骤 3:自定义工艺信号绑定(实操映射示例)
表格
| 工艺信号 | 机器人总线点位 | 含义 |
|---|---|---|
| PLC 机器人启动 | RI0 | PLC 置 1,机器人启动程序 |
| PLC 急停复位 | RI1 | PLC 清除机器人报警 |
| 机器人就绪反馈 | RO0 | 机器人伺服上电、待机完成 |
| 机器人故障报警 | RO1 | 机器人存在报警 |
| 取料到位信号 | RO2 | 抓手抓取完成 |
步骤 4:数值寄存器映射(坐标 / 参数,扩展字节后使用)
若设置 512Byte 双向,后半段字节映射为16 位 WORD 寄存器:
PLC 下发数值:
RW_IN[0]~RW_IN[127](PLC 字→机器人读取)机器人上传坐标:
RW_OUT[0]~RW_OUT[127](机器人数值→PLC 读取)浮点数占用连续 2 个 WORD(X 轴 = RW_OUT [0],RW_OUT [1])
步骤 5:导出 EDS 文件(欧姆龙 PLC 识别设备、自动匹配映射长度)
示教器插 U 盘 →【外部存储】→【总线文件导出】→导出 EtherNet/IP EDS 文件,拷贝至电脑。
机器人程序调用映射点位示例(ESTUN BASIC)
basic
'读取PLC启动信号 RI0IF RI(0)=ON THEN RO(0)=ON '反馈就绪RO0给PLC CALL SUB_HOME '回零子程序ELSE RO(0)=OFFENDIF '故障信号回传IF ALARM_NUM<>0 THEN RO(1)=onELSE RO(1)=OFFENDIF '读取PLC下发数值RW_IN[0],移动到对应点位 MOV P_POS[RW_IN(0)],V=60
三、第二部分:欧姆龙 Sysmac Studio PLC 侧数据映射(核心分 3 步)
前置:PLC 硬件 IP、导入埃斯顿 EDS
PLC 内置 EtherNet/IP 端口 IP:
192.168.1.10,机器人 IP:192.168.1.50,同网段;【工具】→【EtherNet/IP 连接设置】→【EDS 库】→安装埃斯顿导出的 EDS 文件。
步骤 1:添加埃斯顿从站,匹配 Assembly 字节与实例号
EIP连接设置界面
EIP 设备列表右键【添加设备】,选中 ESTUN ER 系列机器人;
双击设备填入机器人 IP
192.168.1.50;连接参数严格和机器人一致:
Output (PLC→机器人):实例 150,长度 256Byte
Input (机器人→PLC):实例 100,长度 256Byte
RPI 周期 20ms;
弹出【全局变量分配窗口】,系统自动生成两组通讯结构体(Tag Data link 标签映射)。
步骤 2:创建并配置全局映射变量(网络公开 Tag)
打开【编程】→【数据】→【全局变量】,新建两组数组变量,勾选【发布到 EtherNet/IP】:
① PLC 输出区(下发给机器人,对应 Assembly150 → 机器人 RI)
变量名:Robot_Cmd_OUT数据类型:ARRAY[0..2047] OF BOOL (2048Bit=256Byte)
Robot_Cmd_OUT[0]→ 机器人RI0(启动)Robot_Cmd_OUT[1]→ 机器人RI1(复位)
② PLC 输入区(读取机器人,对应 Assembly100 → 机器人 RO)
变量名:Robot_Status_IN数据类型:ARRAY[0..2047] OF BOOL
Robot_Status_IN[0]→ 机器人RO0(就绪)Robot_Status_IN[1]→ 机器人RO1(故障)
数值映射(扩展 512Byte 场景)
新增 WORD 数组传递坐标、参数:
st
VAR_GLOBAL Robot_Cmd_WORD_OUT : ARRAY[0..127] OF UINT; // PLC下发数值→RW_IN Robot_Status_WORD_IN : ARRAY[0..127] OF UINT; // 机器人数值→RW_OUT END_VAR
步骤 3:绑定 Tag Set 标签集(建立 PLC 变量 ↔ 机器人 Assembly 映射)
EIP 连接设置 →【Tag Sets】标签页
Output 标签集(PLC→机器人,实例 150)
新建 Tag Set:
Tag_Robot_Cmd添加标签:
Robot_Cmd_OUT、Robot_Cmd_WORD_OUT目标实例号:150
Input 标签集(机器人→PLC,实例 100)
新建 Tag Set:
Tag_Robot_Status添加标签:
Robot_Status_IN、Robot_Status_WORD_IN目标实例号:100
将 Tag Set 拖拽至右侧机器人设备【Target Device】列表,完成双向映射绑定。
四、完整点位一一对应映射总表(直接套用)
1. 开关量 Bit 映射(256Byte 标准配置)
表格
| 数据流向 | 欧姆龙 PLC 全局变量 | 埃斯顿机器人总线点位 | 功能说明 |
|---|---|---|---|
| PLC 下发→机器人 | Robot_Cmd_OUT[0] | RI0 | 机器人启动 |
| PLC 下发→机器人 | Robot_Cmd_OUT[1] | RI1 | 故障复位 |
| 机器人上传→PLC | Robot_Status_IN[0] | RO0 | 机器人就绪 |
| 机器人上传→PLC | Robot_Status_IN[1] | RO1 | 机器人报警 |
2. 16 位 WORD 数值映射(扩展 512Byte)
表格
| 数据流向 | PLC 变量 | 机器人寄存器 | 用途 |
|---|---|---|---|
| PLC→机器人 | Robot_Cmd_WORD_OUT[0] | RW_IN[0] | 目标工位号 |
| 机器人→PLC | Robot_Status_WORD_IN[0] | RW_OUT[0] | X 轴坐标高字 |
| 机器人→PLC | Robot_Status_WORD_IN[1] | RW_OUT[1] | X 轴坐标低字 |
五、映射校验与双向测试
网络诊断:EIP 设备列表机器人显示绿色在线,无红色报错;
PLC 强制下发测试PLC 在线强制
Robot_Cmd_OUT[0]:=TRUE→ 机器人示教器监视RI0=ON;机器人反馈测试机器人程序
RO(0)=ON→ PLC 监控Robot_Status_IN[0]=TRUE;数值传输校验PLC 赋值
Robot_Cmd_WORD_OUT[0]:=10→ 机器人读取RW_IN[0]=10;机器人赋值RW_OUT[0]:=5000→ PLC 读取Robot_Status_WORD_IN[0]=5000。双向数据同步 = 映射配置完全正确。
六、常见映射故障排查
机器人离线、灰色不可选
Assembly 实例号 100/150 填反、两边字节长度不一致、EDS 文件未更新;
只有单向通讯,点位无变化
Tag Set 未绑定对应实例、全局变量未勾选【发布到 EtherNet/IP】;
只能前 32 点通讯,后面点位无效
机器人总线 IO 分配字节设置过小,需扩展至 256Byte 并重启;
数值坐标乱码
浮点数高低字节未交换,PLC 内增加 SWAP 指令转换 WORD 顺序;
找不到 RI/RO 远程总线地址
机器人未启用 EtherNet/IP,总线 IO 分配未保存、未重启控制柜。

