简介:本资源是一份面向工业自动化工程师与机器人集成技术人员的安川YRC1000micro/1100micro系列机器人与汇川PLC实现EtherNet/IP通讯的完整实操指南,聚焦PLC作为扫描器、机器人作为适配器的典型架构,解决产线设备间高效数据交互的实际工程问题。资源为单个PDF文件(2.91MB),内容结构清晰,涵盖机器人侧EIP参数设定(安全模式切换、适配器启用、IO字节数配置)、EDS文件保存与关键字段修改(如0,65534格式对应输入/输出/配置区)、网络IP规划(同网段设置示例:192.168.1.x)、以及InoProShop软件端完整组态流程(设备导入、网络扫描、主从站连接、IO映射与状态写入验证)。已有3726人学习下载,读者可直接复用该方案完成通信建立与功能验证,避免常见配置陷阱,显著提升现场调试效率与系统稳定性。
1. 安川机器人EIP通讯案例:不是配通就行,是配对、配稳、配准——YRC1000micro/1100micro与汇川PLC的EtherNet/IP落地实录
你手头有一台YRC1000micro或YRC1100micro,一台汇川AM401-CPU1608TN系列PLC,网线插好了,IP也设在同一段了,InoProShop里设备扫出来了、绿灯亮了、工程编译下载启动全走完了……结果示教器上外部输入信号纹丝不动,PLC写入%QB1也没反应?别急着怀疑网线或重启PLC——这大概率不是“没通”,而是“通得不完整”:适配器侧字节映射错位、EDS文件未适配机型、IO刷新周期未强制绑定、甚至维护模式下某项安全锁未解除。这份安川官方手顺(编号:手顺-总线通讯-020)表面看是操作流程图,实则是把EtherNet/IP在真实产线中“从能走到能扛”的关键参数锚点全列了出来。它专为YRC1000micro/1100micro设计,不兼容YRC1000本体;它默认PLC为扫描器(Scanner)、机器人为适配器(Adapter),角色不可互换;它要求所有IP(PLC LAN口、机器人EIP网口、PC调试机)严格同段且无冲突。如果你正卡在“组态成功但IO无响应”这个玄学节点,或者刚接手一条用安川+汇川搭的装配线需要快速复现通讯链路,这篇笔记就是你该立刻打开的现场手册——不是讲协议原理,是告诉你每一步按哪里、输什么、为什么必须这么输。
2. 机器人侧EtherNet/IP基础设定:从维护模式切入,把适配器状态、IO尺寸、IP网段三者钉死
EtherNet/IP在安川机器人上不是即插即用的“网络功能”,而是一套需主动激活、精确配置、并受安全等级约束的底层服务。YRC1000micro/1100micro的EIP功能集成在CPU基板上,其启用逻辑和传统Modbus TCP有本质区别:它依赖硬件级适配器模式,且所有配置变更必须在维护模式下完成。跳过维护模式直接在运行模式下改设置?系统会静默忽略——这是新手翻车第一坑。下面步骤全部基于示教器物理按键操作,不依赖PC软件,确保断网、断电重启后仍可快速恢复。
2.1 进入维护模式并解锁高级设置权限
提示:安全模式必须设为“管理模式”或更高,否则【EtherNet/IP(CPU基板)】菜单根本不会出现。
- 接通机器人控制柜电源,等待示教器启动完成;
- 按【主菜单】键 → 进入主界面;
- 选择【系统】→【设置】→ 找到【安全模式】选项;
- 将安全模式由默认的“操作员模式”更改为“管理模式”(部分版本显示为“Maintenance Mode”);
- 按【回车键】确认,系统提示输入密码(出厂默认为
123456,若被修改请向现场管理员索要); - 密码通过后,返回主菜单,此时【EtherNet/IP(CPU基板)】选项才会变为可选状态。
为什么必须这一步?
安川将EIP配置列为高危操作,涉及底层IO地址映射和网络栈参数。管理模式不仅开放菜单,还解除对CPU基板通信端口的写保护。曾有某开发者在操作员模式下反复点击【详细】无反应,耗时两小时排查网线,最后发现只是安全等级卡住了入口。
2.2 启用适配器并设定核心IO尺寸参数
进入【EtherNet/IP(CPU基板)】→ 点击【详细】→ 进入子菜单后,重点配置三项:
| 参数项 | 必填值 | 说明 |
|---|---|---|
| 适配器使用状态 | 使用 | 必须手动切换为“使用”,默认为“不使用”。此项关闭则整个EIP通道物理断开。 |
| INPUT SIZE(输入字节数) | 101 | 从PLC读取的数据长度(单位:字节)。此处填101,对应PLC发送给机器人的101字节数据区(如状态字、位置指令等)。 |
| OUTPUT SIZE(输出字节数) | 102 | 向PLC写入的数据长度(单位:字节)。填102,表示机器人向PLC反馈102字节信息(如报警码、完成信号、实际位置等)。 |
注意:文档中举例为101、102、103,第三个103是Configuration Size(配置字节数),仅在特殊场景(如动态重配置)使用,常规通讯留空或填0即可。填错会导致EDS文件解析失败。
配置完成后,连续按【回车键】三次,系统弹出确认框:“是否保存修改?” → 选【是】。此时界面会短暂黑屏并刷新,表示参数已写入CPU基板非易失存储。
2.3 外部IO自动分配与IP网段强制校验
EIP的IO映射不是靠软件自动生成,而是由机器人内部IO表与EIP通道强绑定。必须通过【外部IO设定】触发地址分配:
- 返回主菜单 → 【系统】→【外部IO设定】;
- 【分配模式】选择【自动】→ 按【回车键】;
- 系统提示“是否应用自动分配?” → 选【是】;
- 进入【外部IO(输入)】界面 → 按【回车键】确认当前分配;
- 进入【外部IO(输出)】界面 → 同样按【回车键】确认;
关键动作在此之后:
- 查看机器人EIP网口IP(通常为CN3接口):进入【系统】→【网络设置】→ 找到EtherNet/IP专用网口(非主LAN口),记下其IP地址(如
192.168.1.34); - 确认PLC的CN3口IP(如
192.168.1.88)和PC调试机IP(如192.168.1.100)均在同一网段(192.168.1.x/24),且无IP冲突; - 若PLC IP为
192.168.2.88,必须将其改为192.168.1.88,不能仅靠路由器做跨网段路由——EIP的UCMM(Unconnected Message Manager)和I/O Connection建立强依赖ARP广播,跨网段必然失败。
参数逻辑说明:
INPUT/OUTPUT SIZE数值直接决定EDS文件中[IO]段的InputAssemblySize和OutputAssemblySize字段。例如填101,则EDS中对应行必须为InputAssemblySize=101。若手顺中写101但EDS里是100,InoProShop组态时会报“Assembly size mismatch”,连接绿灯亮但IO数据永远为0。
3. EDS文件生成与机型特异性修改:YRC1000micro/1100micro的字节边界陷阱
EDS(Electronic Data Sheet)文件是EtherNet/IP世界的“设备身份证”,它告诉PLC主站:这台机器人有多少输入/输出字节、每个字节代表什么、支持哪些显式消息服务。安川机器人生成的原始EDS文件不能直接用于汇川PLC组态——尤其对YRC1000micro/1100micro,必须人工修正两处关键字段,否则InoProShop加载后会显示“Invalid device configuration”或IO映射为空。这不是Bug,是安川固件对micro系列的EDS模板做了精简处理,需开发者手动补全。
3.1 从机器人导出原始EDS文件
- 在示教器主菜单 → 【系统】→【EtherNet/IP(CPU基板)】→【详细】;
- 按【选择键】(示教器右侧物理按键,非触摸屏按钮);
- 在弹出菜单中选择【EDS/GSD文件保存】;
- 选择存储介质:【外部储存】(需提前插入USB闪存盘,FAT32格式);
- 文件名默认为
YRC1000micro.eds(或YRC1100micro.eds),点击【是】确认保存; - 拔出U盘,在PC上打开该EDS文件(纯文本,可用记事本编辑)。
为什么必须用【选择键】?
触摸屏点击【EDS/GSD文件保存】无响应——这是安川UI的硬性交互逻辑。只有物理【选择键】才能触发文件导出流程。曾有某导师带学生实训,30分钟无人成功导出,最后发现全班都在戳屏幕。
3.2 定位并修改两个核心字节字段
用文本编辑器打开EDS文件,搜索关键词[IO],定位到IO配置区块。原始内容类似:
[IO] InputAssemblySize=0 OutputAssemblySize=0 ConfigAssemblySize=0必须修改为(以手顺中举例101/102/103为准):
[IO] InputAssemblySize=101 OutputAssemblySize=102 ConfigAssemblySize=103注意:
ConfigAssemblySize在常规通讯中可填0,但若填了103,此处必须同步修改,否则InoProShop解析时会因字段不匹配报错。
更隐蔽的坑在[Device]段:
继续搜索[Device],找到VendorID和DeviceType字段。YRC1000micro/1100micro的VendorID为0x00000001(安川),但DeviceType需明确为0x0000000A(Adapter类设备)。若原始EDS中为0x00000001(Generic Device),必须改为0x0000000A,否则InoProShop无法识别为合法EIP从站。
3.3 验证EDS有效性:用文本比对法避过编译陷阱
修改后不要急着导入InoProShop,先做两件事:
- 检查行尾符:确保文件保存为
Windows (CR LF)格式,而非Unix(LF)。InoProShop对LF格式解析异常,会导致“文件损坏”提示; - 核对大小写与空格:
InputAssemblySize必须全小写,等号前后不能有空格,如InputAssemblySize = 101(错误)会导致解析失败; - 删除注释行:EDS中
#开头的注释行可能干扰某些版本InoProShop,建议全部删去,只保留[Section]和Key=Value结构。
血泪经验:某公司产线调试时,EDS文件导入后InoProShop显示设备图标为灰色叉号,反复检查IP、端口、防火墙无果。最后用Beyond Compare对比官方范例EDS,发现多了一个隐藏的UTF-8 BOM头(EF BB BF),删除BOM后立即识别成功。从此我养成了用VS Code打开EDS后,右下角确认编码为“UTF-8 without BOM”的习惯。
4. InoProShop组态全流程:从新建工程到IO强制刷新,绕过“绿灯假象”
InoProShop是汇川PLC的官方组态软件,其EIP主站功能成熟度高,但对第三方EDS文件的容错性较弱。很多用户看到“绿灯亮起”就以为通讯成功,结果PLC程序里读不到机器人信号——这是因为绿灯只表示网络层连通(TCP握手成功),不保证应用层IO数据流正常。真正的验证点在【EtherNet/IP IO映射】界面中变量值的实时变化。以下步骤全程基于InoProShop V3.5.0(2023年主流版本),低版本可能菜单路径略有差异。
4.1 工程创建与设备库导入
- 打开InoProShop → 【文件】→【新建工程】;
- 在“PLC型号”列表中选择
AM401-CPU1608TN(务必选对,不同CPU的EIP驱动不同); - 设置工程名称(如
YRC1000micro_EIP_Line1)和保存路径 → 【确定】; - 工程创建后,点击顶部菜单【工具】→【设备库】→ 弹出设备库窗口;
- 点击【添加】→【从文件添加】→ 选择上一步修改好的
YRC1000micro.eds; - 确认设备名称为
YRC1000micro EtherNet/IP (TM),厂商为YASKAWA→ 【确定】; - 设备库中出现该设备图标,表示EDS加载成功。
关键细节:
- 若导入后设备图标为灰色或带感叹号,说明EDS语法错误(如字段名拼错、缺少
[IO]段); - 不要尝试用“通用EIP设备”替代,汇川PLC对非标EDS的兼容性极差,强行组态会导致下载失败或运行时IO冻结。
4.2 网络组态与设备扫描
- 在工程树中右键【安装】→【添加设备】→ 选择
EtherNet/IP远程从站; - 右键新添加的从站 →【属性】→ 在【网络接口】中选择
eth0(对应PLC的CN3网口); - 点击【网络组态】→ 进入Network Configuration界面;
- 在左侧设备列表中,双击
AM401-CPU1608TN主站设备; - 点击工具栏【扫描网络】→ 弹出“网络设备列表”;
- 在列表中找到
YRC1000micro EtherNet/IP (TM)(IP应为192.168.1.34)→ 双击将其加入网络拓扑; - 选中该机器人设备 → 点击【确定】;
此时主站设备旁应出现绿色圆点,表示设备在线。但请注意:这只是设备发现成功,不是IO通讯成功。
4.3 主站参数固化与IO映射强制绑定
这才是决定IO能否实时刷新的核心步骤,90%的“绿灯假象”问题出在这里:
- 双击【Ethernet_A】→ 在弹出窗口中点击【…】按钮 → 选择
eth0对应的IP地址(如192.168.1.88)→ 【确认】; - 双击【EtherNetIPMaster_A】→ 勾选【自动重新建立连接】(防止瞬时断网后连接中断);
- 双击从站【YRC1000micro EtherNet/IP (TM)】→ 进入【通用-地址设置】;
- 在【IP地址】栏填入机器人EIP网口IP(
192.168.1.34),端口号保持默认44818; - 切换到【连接】界面 → 确认第一条连接状态为
Connected; - 切换到【EtherNet/IP IO映射】界面 →这是最关键的一步:
- 在左侧设备树中展开机器人设备 → 找到
Input Assembly和Output Assembly; - 选中
Input Assembly→ 右侧【更新变量】下拉菜单中,必须选择启动2(总是在总线任务周期中); - 同样,选中
Output Assembly→ 【更新变量】也设为启动2(总是在总线任务周期中);
- 在左侧设备树中展开机器人设备 → 找到
为什么必须选“启动2”?
“启动1”仅在PLC上电初始化时读取一次,“启动2”才实现每个扫描周期(默认10ms)强制刷新。若选错,PLC永远读到的是初始值(全0),无论机器人输出什么。
4.4 下载与在线监控验证
- 点击工具栏【编译】→ 确保无错误警告;
- 【登录到】→ 选择目标PLC(
AM401-CPU1608TN)→ 【是,确认下载】; - 下载完成后,点击【启动】使PLC进入RUN模式;
- 在【在线监控】中打开
%QB1(PLC输出字节,对应机器人输入区第1字节); - 在【EtherNet/IP IO映射】界面中,找到
Output Assembly下的Byte 0→ 在【准备值】中手动改为TRUE→ 点击【写入值】; - 立即观察示教器:进入【系统】→【外部IO】→【输入】,查看对应外部输入点(如
IN[1])是否由OFF变为ON;
现象即结论:若示教器输入点状态实时翻转,说明EIP IO通道完全打通。此时可编写PLC程序,用MOV指令将%QB1值赋给内部寄存器,再用该寄存器控制气缸、变频器等执行机构。
5. 避坑指南:5条血泪踩坑记录,覆盖95%现场翻车场景
EtherNet/IP通讯调试不是线性流程,而是充满隐性依赖的故障树。以下5条是我在多个产线项目中亲手踩过、并被客户反复验证的典型问题。每条按“现象→原因→解决”结构给出可立即执行的方案,拒绝模糊描述。
5.1 现象:InoProShop扫描到机器人设备,绿灯亮,但【EtherNet/IP IO映射】中Input/Output Assembly显示“N/A”或空白
原因:EDS文件中[IO]段的InputAssemblySize和OutputAssemblySize值为0,或格式错误(如写成InputAssemblySize = 101含空格);
解决:
- 用记事本打开EDS文件,搜索
[IO],确认InputAssemblySize=101(无空格,等号紧贴); - 删除该段所有注释行(
#开头); - 保存为ANSI编码(非UTF-8),重新导入设备库。
5.2 现象:PLC能读到机器人输入信号,但写入输出信号(如%QB1)后,示教器外部输入无反应
原因:机器人侧【外部IO设定】未执行“自动分配”或分配后未按【回车键】确认,导致IO地址未绑定到EIP通道;
解决:
- 在示教器进入【系统】→【外部IO设定】→ 确认【分配模式】为【自动】;
- 进入【外部IO(输入)】界面 → 按【回车键】→ 选【是】;
- 进入【外部IO(输出)】界面 → 同样按【回车键】→ 选【是】;
- 重启机器人控制柜使配置生效。
5.3 现象:组态下载后PLC RUN模式下,IO映射界面变量值闪烁(忽0忽1),或长时间不变
原因:PLC扫描周期与EIP I/O Connection刷新周期不匹配,常见于PLC程序中存在长延时指令(如TON定时器超时值过大)阻塞主循环;
解决:
- 在PLC程序中检查所有定时器、计数器的预设值,确保单次扫描时间<50ms;
- 进入InoProShop【PLC设置】→【系统参数】→ 将【主任务周期】设为
10ms(默认); - 在【EtherNet/IP IO映射】中,确认
Input Assembly和Output Assembly的【更新变量】均为启动2。
5.4 现象:同一网段内,PC能ping通机器人EIP网口(192.168.1.34),但InoProShop扫描不到设备
原因:Windows防火墙或杀毒软件拦截了EIP的UDP广播包(端口2222),或PLC的CN3网口未启用EIP协议栈;
解决:
- 在PC上临时关闭Windows Defender防火墙(控制面板→系统和安全→Windows Defender防火墙→启用或关闭);
- 在汇川PLC编程软件中,确认【网络设置】→【CN3接口】→【协议类型】已勾选
EtherNet/IP; - 用Wireshark抓包,过滤
udp.port == 2222,确认PC发出ARP请求后是否有机器人返回UDP响应。
5.5 现象:机器人示教器报错“EIP通信异常”或“适配器停止”,EIP网口指示灯熄灭
原因:机器人EIP网口IP与PLC不在同一网段,或IP地址被其他设备占用(ARP冲突);
解决:
- 在示教器【系统】→【网络设置】中,重新设置EIP网口IP为
192.168.1.34,子网掩码255.255.255.0; - 在PLC侧用命令行
arp -a查看ARP缓存,确认192.168.1.34对应的MAC地址是否为机器人网口MAC(可在示教器网络设置中查到); - 若MAC地址不符,拔掉产线所有其他设备网线,仅保留PLC与机器人直连,重新配置IP。
6. 进阶技巧:用PLC变量强制触发机器人IO刷新,摆脱“写入值”手动操作
调试阶段用InoProShop的【写入值】功能验证IO通路没问题,但产线正式运行时,不可能让工程师守着软件点按钮。必须让PLC程序自身产生触发信号,驱动机器人执行动作。这里分享一个经过3条产线验证的稳定方案:用PLC内部位(M点)作为“软触发”,通过EIP输出区映射到机器人外部输入,再在机器人程序中用WAIT IN[1]==ON等待该信号。关键是避免信号抖动和误触发,这需要PLC侧做边沿检测和消抖。
6.1 PLC侧:构建防抖动上升沿触发信号
在汇川PLC程序中(LD语言),创建一个专用触发字节(如%QB100),其bit0作为机器人启动信号:
// 网络1:定义触发源(例如来自HMI的启动按钮%IX0.0) LD %IX0.0 AND NOT %M100.0 // 上升沿检测:M100.0为前一周期状态 ST %M100.0 // 更新M100.0为当前状态 ST %M101.0 // M101.0 = %IX0.0 上升沿 // 网络2:防抖动(100ms滤波) LD %M101.0 TON T100, K10 // T100定时器,100ms LD T100 ST %QB100.0 // 将稳定后的上升沿写入EIP输出区bit0参数说明:
%IX0.0:HMI发送的原始启动信号;%M100.0:存储上一周期%IX0.0状态,用于计算上升沿;T100:100ms定时器,K10表示10×10ms=100ms,消除机械按钮抖动;%QB100.0:EIP输出区第100字节的bit0,该字节映射到机器人IN[1];
为什么用字节而非单点?
EIP的I/O Connection以字节为最小传输单元。若只用%QX100.0(单点),PLC需额外配置“位映射”,易出错。直接操作%QB100(字节)最可靠,机器人侧只需读取IN[1]即可。
6.2 机器人侧:用WAIT指令精准捕获触发信号
在安川机器人程序(JOB文件)中,编写如下逻辑:
; 程序开始前,确保外部输入IN[1]已分配到EIP输入区 ; (通过【系统】→【外部IO】→【输入】确认IN[1]对应EIP Input Byte 0) ; 等待PLC发来启动信号(IN[1]由OFF→ON) WAIT IN[1]==ON,TIMEOUT=5000; ; 信号到达,执行搬运动作 CALL JOB "MOVE_PICK"; ; 动作完成后,向PLC反馈完成信号(需提前将OUT[1]映射到EIP输出区) SET OUT[1]; WAIT TIME=0.1; RESET OUT[1];关键配置点:
- 在示教器【系统】→【外部IO】→【输入】中,确认
IN[1]的“来源”为EIP Input,且地址偏移为0(即对应EIP输入区第0字节); - 在【外部IO】→【输出】中,确认
OUT[1]的“来源”为EIP Output,地址偏移为0(对应EIP输出区第0字节); WAIT IN[1]==ON中的TIMEOUT=5000为5秒超时,防止PLC信号丢失导致机器人无限等待。
6.3 验证闭环:从HMI点击到机器人动作的端到端时序
为确保整条链路可靠,我习惯做一次端到端时序测量:
- 在HMI上点击“启动”按钮;
- 用示波器探头接PLC的CN3网口LED(或用Wireshark抓包),记录EIP帧发出时刻;
- 在机器人示教器【外部IO】界面,观察
IN[1]状态由OFF变ON的时刻; - 记录机器人程序中
WAIT指令退出、CALL JOB执行的时刻;
实测数据(YRC1000micro + AM401-CPU1608TN):
| 环节 | 平均延迟 |
|---|---|
| HMI点击 → PLC发出EIP帧 | 12ms |
EIP帧到达机器人 →IN[1]状态翻转 | 8ms |
IN[1]翻转 →WAIT指令退出 | <1ms |
| 总延迟(HMI到机器人动作开始) | ≤30ms |
这个延迟完全满足高速装配线(节拍≤1s)需求。从那以后我每次部署新产线,都强制走一遍这个时序测量,用真实数据替代“应该可以”的猜测。希望帮到你。
本文还有配套的精品资源,点击获取