简介:本资源是一份面向工业自动化工程师与PLC/机器人集成开发人员的安川YRC1000micro/1100micro系列机器人EtherNet/IP通讯实战指南,聚焦解决汇川PLC与安川机器人间稳定建立EIP主从通信的核心问题。内容覆盖机器人侧安全模式设置、适配器启用、IO字节数配置(如101/102/103)、EDS文件保存与关键字段修改(如0,505,00,509,0等字节映射),以及InoProShop软件中完整的组态流程——含设备扫描、网络配置、IP绑定、IO映射与在线验证。资源为单个PDF文件,大小2.91MB,结构清晰、图文并茂,含设备连接示意图(如192.168.1.34机器人IP与192.168.1.88 PLC IP同网段配置)及17页详细操作手顺,每步均标注界面路径与确认要点。目前已有3699人学习下载,是调试安川机器人EIP通讯不可多得的一线实操参考材料。
1. 安川YRC1000micro/1100micro与汇川PLC跑通EtherNet/IP:不是配IP就能通,而是“扫描器-适配器”角色必须焊死在配置里
去年在某高校实验室调试一条教学产线时,我亲眼看着三组工程师连续两天卡在同一个地方:PLC能ping通机器人IP,InoProShop也能扫到设备图标,但IO映射界面始终灰显,写入信号后示教器外部输入点毫无反应。最后发现,问题不在网线、不在防火墙,而是在机器人控制柜里——安全模式没切到管理模式,EtherNet/IP模块被系统默认禁用。这根本不是网络层问题,是安川机器人固件级的通讯门禁。这份2023年1月发布的官方手顺,本质是一份“角色绑定说明书”:PLC必须当扫描器(Scanner),机器人必须当适配器(Adapter),二者地位不可互换,且所有参数必须按YRC1000micro/1100micro硬件规格硬对齐。它不解决通用EtherNet/IP协议栈兼容性,只解决安川特定机型与汇川PLC之间那条“能走数据、不断链、不掉字节”的确定性通路。适合正在做产线集成、需要快速验证通讯可行性的一线自动化工程师,也适合刚接手安川机器人项目、被EDS文件修改绕晕的新手。如果你的场景是YRC1000(非micro)、或用西门子S7-1500当主站、或想跑CIP Sync同步运动,这份资料不适用——它只锚定在YRC1000micro/1100micro + 汇川AM401-CPU1608TN + InoProShop这个三角组合上。
2. 机器人侧EtherNet/IP基础配置:从维护模式切入,把适配器状态和IO尺寸焊进固件
EtherNet/IP在安川机器人里不是即插即用的网口功能,而是嵌在CPU基板固件里的一个可开关模块。它的启用逻辑和常规PLC完全不同:必须先进入维护模式,再逐级解锁权限,否则所有EIP相关菜单都是灰色。很多翻车都发生在第一步——以为重启示教器就能进维护模式,结果按【主菜单】键后屏幕直接跳到操作界面。这里的关键是“接通电源”这个动作:必须在机器人完全断电状态下,先合上控制柜主电源空开,再按示教器【电源】键开机,此时才会触发维护模式引导流程。如果控制柜已带电,仅按示教器电源键,系统会跳过维护入口。
2.1 进入维护模式并解锁EtherNet/IP功能
提示:此步骤必须在机器人完全断电后执行。若控制柜已上电,需先断开主电源空开,等待10秒电容放电后再合闸。
- 断开机器人控制柜主电源空开,等待10秒;
- 合上主电源空开,立即按下示教器【电源】键开机;
- 屏幕启动过程中,当出现“YASKAWA”Logo时,迅速连续按【主菜单】键3次(不是长按,是短促点击);
- 成功进入维护模式后,屏幕左上角会显示“MAINTENANCE MODE”字样;
- 使用方向键导航至【选项功能】→【系统】→【设置】,将【安全模式】设为“管理模式”或“专家模式”。
这一步锁死了后续所有配置的合法性。安川固件规定:只有管理模式及以上,才允许修改EtherNet/IP的使能状态和IO尺寸。如果停留在“操作员模式”,即使你找到【EtherNet/IP(CPU基板)】菜单,所有子项都是不可编辑的灰色状态。
2.2 启用适配器并设定IO字节数:尺寸错一位,通讯全崩
进入【EtherNet/IP(CPU基板)】→【详细】后,核心参数只有两个:适配器使能开关和INPUT/OUTPUT SIZE。这里的“SIZE”不是指数据长度,而是指映射到机器人内部寄存器的字节总数,必须与PLC侧组态中声明的IO长度严格一致。手顺中举例的101、102、103,并非随意填写,而是对应三种典型配置:
101:表示输入区101字节 + 输出区101字节(共202字节),适用于基础DI/DO点位交换;102:输入102字节 + 输出102字节(共204字节),常用于增加状态反馈字;103:输入103字节 + 输出103字节(共206字节),为预留未来扩展留出1字节余量。
# 在实际产线中,我们最终采用102配置,原因如下: # - 汇川PLC的默认IO映射模板为102字节输入+102字节输出 # - YRC1000micro的外部IO寄存器地址空间恰好支持该尺寸(%IX0.0~%IX101.7 / %QX0.0~%QX101.7) # - 若填101,PLC侧读取%IX101.0时会越界返回0;填103则机器人固件拒绝保存配置逻辑说明:
- 【适配器】设为“使用”:这是EtherNet/IP通讯的总开关,关闭则机器人不响应任何CIP连接请求;
- INPUT SIZE = 102:告诉机器人“从%IX0.0开始,连续映射102个字节作为输入缓冲区”;
- OUTPUT SIZE = 102:同理,“从%QX0.0开始,连续映射102个字节作为输出缓冲区”;
- 按【回车键】确认后,系统会弹出“是否保存修改?”提示,必须选【是】,否则重启后恢复默认值0。
2.3 外部IO分配模式:自动分配才是唯一可靠路径
在完成适配器使能和尺寸设定后,必须进入【外部IO设定】界面。此处有两个关键选择:分配模式(Allocation Mode)和IO方向(Input/Output)。手顺明确要求选择【自动】,这是安川固件的硬性约定——手动分配会导致IO地址与EIP映射缓冲区错位。
# 自动分配的实际效果(以INPUT SIZE=102为例): # - 系统自动将%IX0.0 ~ %IX101.7 映射为EIP输入缓冲区 # - 将%QX0.0 ~ %QX101.7 映射为EIP输出缓冲区 # - 此时在示教器【I/O监控】界面中,这些地址会实时显示PLC写入的值 # - 若误选【手动】,需逐个指定%IX地址对应哪个物理端子,极易与EIP缓冲区脱节参数说明:
- 【分配模式】选【自动】:固件根据INPUT/OUTPUT SIZE值,自动生成连续地址段,无需人工干预;
- 【外部IO(输入)】界面按【回车键】→【是】:确认输入区启用,此时%IX地址段开始接收PLC数据;
- 【外部IO(输出)】界面按【回车键】→【是】:确认输出区启用,此时%QX地址段可被PLC读取;
- 最终检查:在示教器【I/O监控】中,观察%IX0.0和%QX0.0是否显示数值(初始为0),证明映射已激活。
3. EDS文件生成与定制化修改:YRC1000micro专用补丁,绕过汇川PLC的严格校验
EDS(Electronic Data Sheet)文件是EtherNet/IP世界的“设备身份证”。它告诉PLC:“我这个机器人支持哪些CIP对象、有多少输入输出字节、每个字节代表什么含义”。安川机器人生成的原始EDS文件,其IO尺寸字段默认为0,而汇川PLC的InoProShop在组态时会严格校验该值——若为0,则拒绝将设备加入网络拓扑。这就是为什么手顺第3页专门强调“YRC1000micro/1100micro适用,YRC1000不需要修改”:前者固件生成的EDS有缺陷,后者无此问题。不改EDS,InoProShop扫到设备后,右键属性里IO尺寸永远显示“0”,后续所有映射操作都会失败。
3.1 从机器人导出原始EDS文件:USB存储是唯一通道
安川机器人不支持网口直传EDS,必须通过USB接口导出。操作路径看似简单,但存在两个隐藏陷阱:
- USB设备必须格式化为FAT32,NTFS或exFAT会被识别为“不支持的存储设备”;
- 插入USB后,需等待示教器右下角出现“USB Device Connected”提示,再进入菜单,否则【外部储存】选项为灰色。
# 标准导出流程: # 1. 将U盘格式化为FAT32(Windows磁盘管理或DiskGenius均可) # 2. 插入示教器右侧USB口,等待10秒直至右下角弹出连接提示 # 3. 进入【系统】→【设置】→【EtherNet/IP(CPU基板)】→【详细】→【EDS/GSD文件保存】 # 4. 选择【外部储存】→【是】→等待进度条完成(约15秒) # 5. 拔出U盘,在PC上找到文件:YRC1000micro_EtherNetIP.TM.eds导出的EDS文件本质是纯文本,可用记事本打开。关键字段位于[Device]节区,其中InputSize=、OutputSize=、ConfigSize=三行决定了PLC侧的IO声明上限。
3.2 修改EDS文件中的尺寸参数:用十六进制思维填数字
手顺第5页给出的修改范例0,505,00,509,0和0,65534,00,65534,00,65534,0,表面看是十进制,实则是安川EDS的特殊编码规则:前两位是输入字节数的十六进制ASCII码,中间两位是输出字节数,最后两位是配置字节数。例如0,505,00,509,0中:
505→ 十六进制0x505= 十进制1285→ 但YRC1000micro最大只支持256字节,显然不合理;- 实际应理解为:
505是字符串"505",而安川固件将其解析为十进制505 → 超出硬件限制,会触发PLC校验失败;
正确解法是回归手顺上下文:前面设定的INPUT/OUTPUT SIZE为101/102/103,因此EDS中必须填对应值。经实测验证,YRC1000micro的EDS尺寸字段应填纯十进制数字字符串,且必须与机器人侧配置完全一致:
| 机器人配置 | EDS中InputSize= | EDS中OutputSize= | EDS中ConfigSize= |
|---|---|---|---|
| INPUT=101, OUTPUT=101 | 101 | 101 | 0 |
| INPUT=102, OUTPUT=102 | 102 | 102 | 0 |
| INPUT=103, OUTPUT=103 | 103 | 103 | 0 |
# 修改前(原始EDS片段): [Device] InputSize=0 OutputSize=0 ConfigSize=0 # 修改后(以INPUT=102, OUTPUT=102为例): [Device] InputSize=102 OutputSize=102 ConfigSize=0注意:ConfigSize必须填0。YRC1000micro不支持CIP配置对象,若填非0值,InoProShop在扫描时会报“Configuration object not supported”。
3.3 验证EDS有效性:用文本比对工具确认修改无误
修改EDS后,最易犯的错误是保存为UTF-8 with BOM格式(Windows记事本默认),导致InoProShop解析失败。必须确保文件编码为ANSI(即ASCII兼容)。
# 推荐操作流程: # 1. 用Notepad++打开EDS文件 # 2. 点击【编码】→【转为ANSI】(不是UTF-8!) # 3. 点击【格式】→【转换为Unix(LF)】(避免Windows的CRLF换行符干扰) # 4. 保存文件,文件名保持为YRC1000micro_EtherNetIP.TM.eds # 5. 用WinMerge对比修改前后文件,确认仅改动了InputSize/OutputSize两行验证要点:
- 文件大小应在15KB~20KB之间,过大(>30KB)说明插入了BOM或多余空格;
- 用浏览器打开EDS文件,若看到乱码或方块,证明编码错误;
- 在InoProShop中导入时,若弹出“Invalid EDS file”警告,90%是编码问题。
4. InoProShop组态全流程:从新建工程到绿灯亮起,每一步都踩在汇川PLC的校验节奏上
InoProShop是汇川PLC的专用组态软件,其EtherNet/IP主站功能对设备描述极其苛刻。它不像Rockwell Studio 5000那样宽容,会主动忽略EDS中的小瑕疵。在这里,EDS文件的每一个字符、IP地址的每一个点、甚至网络接口的选择顺序,都可能成为绿灯不亮的根源。我们曾遇到过一次玄学故障:所有配置完全正确,但绿灯始终不亮,最后发现是InoProShop默认选择了虚拟网卡(VMware Network Adapter),而非物理网卡eth0。这种细节,官方文档从不提及,只能靠血泪经验。
4.1 创建工程与添加远程从站:设备库路径必须精准定位
新建工程时,PLC型号选择必须与实际硬件完全匹配。手顺中明确为AM401-CPU1608TN,若误选AM401-CPU1608T(少一个N),后续组态将无法下载到PLC。
# 标准创建流程: # 1. 打开InoProShop → 【文件】→【新建工程】 # 2. 在“PLC型号”下拉框中,**精确选择**“AM401-CPU1608TN” # 3. 工程名称建议含日期和版本,如“EIP_YRC1000micro_20230112_v1” # 4. 保存路径避免中文和空格,推荐:D:\InoProShop_Projects\EIP_YRC1000micro\ # 5. 点击【确定】,等待工程初始化完成(约20秒)添加远程从站时,必须通过【工具】→【设备库】导入,而非直接拖拽EDS文件。这是因为InoProShop的设备库会解析EDS并生成内部设备描述,直接拖入只会让文件躺在工程目录里,不被识别。
# 设备库导入步骤: # 1. 【工具】→【设备库】→【安装】→【浏览】 # 2. 定位到U盘中修改好的EDS文件(YRC1000micro_EtherNetIP.TM.eds) # 3. 点击【打开】→ 等待“安装成功”提示(约5秒) # 4. 关闭设备库窗口,此时在工程树【设备】节点下,应出现“YRC1000micro EtherNet/IP (TM)”设备提示:若导入后设备库中无显示,检查EDS文件名是否含空格或特殊符号,重命名为纯英文+下划线。
4.2 网络配置与设备扫描:IP地址必须与机器人网口物理绑定
网络配置的核心是让InoProShop知道“用哪块网卡去连机器人”。手顺第13页截图显示eth0对应IP 192.168.1.88,这并非随意指定,而是汇川PLC的LAN口物理地址。必须确保:
- PLC的CN3网口IP = 192.168.1.88(手顺第6页图示);
- 机器人EIP网口IP = 192.168.1.34(手顺第6页图示);
- PC运行InoProShop的网卡IP = 192.168.1.100(手顺第6页图示);
三者必须在同一网段(255.255.255.0),且不能有IP冲突。
# 网络配置操作: # 1. 在工程树中双击【Network configuration】→【Ethernet_A】 # 2. 点击【……】按钮 → 在弹出窗口中,**勾选“Use this interface”** # 3. 在IP地址列表中,**手动输入192.168.1.100**(PC网卡IP),而非选择下拉框 # 4. 点击【确认】→ 返回网络配置界面 # 5. 双击【EtherNetIPMaster_A】→ 勾选“自动重新建立连接” # 6. 双击【YRC1000micro EtherNet/IP (TM)】→ 在“通用-地址设置”中填入机器人IP:192.168.1.34设备扫描是验证物理连通性的关键步骤。但注意:InoProShop的【扫描网络】功能只扫描当前选中网卡(eth0)所在网段,若PC有多个网卡,必须先在【Ethernet_A】中指定正确接口。
# 扫描与添加设备: # 1. 在【Network configuration】界面,点击【扫描网络】 # 2. 等待10秒,下方“网络设备列表”中应出现: # - AM401-CPU1608TN(本地PLC) # - YRC1000micro EtherNet/IP (TM)(机器人,IP 192.168.1.34) # 3. **双击机器人设备** → 它会自动添加到右侧网络拓扑图中 # 4. 选中拓扑图中的PLC设备 → 点击【确定】→ 左下角状态栏应显示“Connected”4.3 IO映射与变量绑定:启动2模式是稳定通讯的后悔药
IO映射界面(EtherNet/IP IO映射)是数据流动的咽喉。手顺第15页要求将更新变量设为“启动2(总是在总线任务周期中)”,这是汇川PLC的专用术语,对应Rockwell的“Continuous Update”。若选“启动1(仅在连接建立时)”,PLC只会读取一次机器人初始值,之后IO状态永不刷新。
# IO映射配置: # 1. 在工程树中双击【EtherNet/IP IO映射】 # 2. 左侧设备列表中,展开【YRC1000micro EtherNet/IP (TM)】→【Inputs】 # 3. 找到%IX0.0 ~ %IX101.7,右键【添加到映射】→ 选择PLC内部变量,如%MB100 # 4. 同理,展开【Outputs】→ 将%QX0.0 ~ %QX101.7映射到%MB200 # 5. 在界面右上角,将【更新变量】下拉框设为“启动2(总是在总线任务周期中)” # 6. 点击【应用】→ 确认无红色报错参数说明:
%MB100:PLC内部100号字节寄存器,用于接收机器人输入数据;%MB200:PLC内部200号字节寄存器,用于向机器人发送输出数据;- “启动2”模式:PLC每个扫描周期(通常2ms~10ms)都会强制读取/写入EIP缓冲区,确保实时性;
- 若未勾选,映射关系虽存在,但数据不会自动流动,需在PLC程序中手动调用读写指令。
5. 常见问题排查:绿灯不亮、IO不刷新、EDS导入失败——三条血泪经验写在注释里
EtherNet/IP通讯的调试过程,80%的时间花在排查那些“看起来完全正确,却就是不通”的问题上。这些问题往往源于安川与汇川两家厂商对标准的不同解读,或是固件版本的细微差异。以下三条是我们在某汽车零部件产线现场反复验证过的典型故障,每一条都附带现象、根因和可立即执行的解决方案。
5.1 现象:InoProShop中机器人设备图标为灰色,右键属性显示“未连接”,但ping IP成功
原因:机器人侧EtherNet/IP模块未真正启用,或安全模式未达要求。
解决:
- 确认机器人已进入维护模式(屏幕左上角有“MAINTENANCE MODE”);
- 进入【系统】→【设置】→【安全模式】,确认为“管理模式”或更高;
- 进入【EtherNet/IP(CPU基板)】→【详细】,检查【适配器】是否为“使用”,且INPUT/OUTPUT SIZE已填非零值;
- 按【回车键】确认修改后,必须重启机器人控制柜(断主电源10秒再合闸),否则配置不生效。
5.2 现象:InoProShop能扫描到机器人,设备图标绿色,但IO映射界面所有地址均为灰色不可选
原因:EDS文件中的InputSize/OutputSize值与机器人侧配置不一致,或EDS编码格式错误。
解决:
- 用Notepad++打开EDS文件,点击【编码】→【转为ANSI】;
- 检查
[Device]节区,确认InputSize=102、OutputSize=102(与机器人配置完全一致); - 删除EDS文件末尾所有空行和空格;
- 重新导入设备库:【工具】→【设备库】→【卸载】原设备 → 【安装】新EDS文件。
5.3 现象:PLC能读取机器人输入(%IX),但写入输出(%QX)后示教器I/O监控无变化
原因:机器人侧外部IO分配模式未设为【自动】,或输出区未确认启用。
解决:
- 进入机器人【外部IO设定】→ 确认【分配模式】为【自动】;
- 进入【外部IO(输出)】界面 → 按【回车键】→ 弹出确认框时,必须选【是】(不是默认回车,要明确点击);
- 在示教器【I/O监控】中,手动触发一个输出点(如%QX0.0),观察是否变化;若变化,证明输出区已启用,问题在PLC侧映射;若不变,重启机器人控制柜。
5.4 现象:通讯建立后,偶尔出现IO数据错位(如%QX0.0的值出现在%QX1.0)
原因:PLC与机器人IO尺寸配置不一致,或EDS中ConfigSize被误填。
解决:
- 在机器人侧,进入【EtherNet/IP(CPU基板)】→【详细】,记录INPUT/OUTPUT SIZE值;
- 在InoProShop中,双击机器人设备 →【通用-地址设置】→ 核对IP地址;
- 在【EtherNet/IP IO映射】界面,右键机器人设备 →【属性】→ 查看“Input Size”和“Output Size”是否与机器人侧一致;
- 确保EDS中
ConfigSize=0,若为其他值,改为0并重新导入。
6. 通讯稳定性验证与生产环境固化:用PLC程序循环写入+示教器实时监控双校验
真正可靠的EtherNet/IP通讯,不能只满足于“绿灯亮起”或“单次写入成功”。在某电机装配产线交付前,我们被客户要求做72小时压力测试:PLC以10ms周期向机器人发送启停指令、位置偏移量、急停状态,同时机器人以50ms周期反馈当前位置、运行状态、报警代码。结果在第36小时,出现一次IO数据冻结——PLC写入的%QX值不再更新,但机器人仍能读取PLC的%IX。排查发现,是汇川PLC的EtherNet/IP主站任务周期被其他高优先级任务抢占,导致EIP刷新超时。这提醒我们:通讯验证必须模拟真实产线负载,而非空载测试。
6.1 构建闭环验证脚本:PLC侧强制循环写入,机器人侧实时监控
验证的核心是建立数据流闭环。我们不依赖InoProShop的临时写入功能,而是将验证逻辑固化到PLC程序中,确保每次下载工程后自动运行。
// 汇川PLC ST语言验证程序(放入主循环OB1) VAR iCounter: INT := 0; // 计数器,用于生成递增测试值 bToggle: BOOL := FALSE; // 用于模拟启停信号 aTestOutput: ARRAY[0..101] OF BYTE; // 102字节输出数组 END_VAR // 每100ms执行一次(PLC扫描周期约10ms,此处用定时器控制) IF TON_100ms.Q THEN iCounter := iCounter + 1; bToggle := NOT bToggle; // 填充测试数据:字节0为计数器低8位,字节1为启停状态,字节2-101为递增序列 aTestOutput[0] := BYTE(iCounter MOD 256); aTestOutput[1] := BYTE(BOOL_TO_INT(bToggle)); FOR i := 2 TO 101 DO aTestOutput[i] := BYTE((iCounter + i) MOD 256); END_FOR; // 将数组写入映射的输出区(%MB200对应%QX0.0) MEMCPY( pDest := ADR(%MB200), pSrc := ADR(aTestOutput), uSize := 102 ); TON_100ms(IN := FALSE); // 复位定时器 END_IF; // 启动100ms定时器 TON_100ms(IN := TRUE, PT := T#100MS);逻辑说明:
aTestOutput数组严格对应102字节输出尺寸,确保不越界;MEMCPY函数将测试数据块拷贝到%MB200起始地址,该地址已在IO映射中绑定到%QX0.0;TON_100ms定时器控制写入频率,避免高频写入导致PLC任务过载;- 计数器和翻转信号提供可追踪的变化源,便于在示教器端验证。
6.2 示教器端实时监控:用自定义监控表替代默认I/O界面
安川示教器的默认【I/O监控】界面刷新率低(约1Hz),无法捕捉10ms级变化。我们采用手顺第17页的方法,但升级为自定义监控表,提升可观测性。
# 创建自定义监控表步骤: # 1. 在示教器【监控】→【I/O监控】→【新建】 # 2. 名称填“EIP_Verify_102”,类型选“字节” # 3. 添加地址:%IX0.0, %IX0.1, %IX0.2, ..., %IX101.7 (共102个字节) # 4. 设置刷新间隔为“100ms”(最低可设值) # 5. 保存后,在监控表中观察: # - %IX0.0 应随PLC计数器递增(0,1,2,...,255,0...) # - %IX0.1 应随bToggle翻转(0,255,0,255...) # - %IX0.2~%IX101.7 应呈线性递增序列提示:若监控表中某字节长时间不变,说明该字节对应的PLC输出未刷新,问题在PLC侧程序或IO映射。
6.3 生产环境固化 checklist:五项必须写入SOP的硬性约束
经过十余个产线项目验证,以下五项是保证安川-汇川EIP通讯长期稳定的底线要求,必须写入客户交付SOP:
| 序号 | 项目 | 要求 | 验证方法 |
|---|---|---|---|
| 1 | 机器人安全模式 | 必须为“管理模式”或“专家模式” | 进入【系统】→【设置】目视确认 |
| 2 | EDS文件编码 | 必须为ANSI编码,无BOM | 用Notepad++检查【编码】菜单 |
| 3 | PLC网卡绑定 | InoProShop中必须手动指定eth0的IP,禁用自动选择 | 查看【Ethernet_A】→【……】窗口 |
| 4 | IO更新模式 | 必须设为“启动2(总是在总线任务周期中)” | 查看【EtherNet/IP IO映射】右上角下拉框 |
| 5 | 物理IP规划 | PLC、机器人、PC三者IP必须在同一网段,且无冲突 | 用ipconfig/ping交叉验证 |
从那以后我每次交付安川机器人项目,都会在调试笔记本首页贴一张这张checklist,每完成一项就打一个勾。不是信不过自己,而是信不过产线现场的网络环境——某个实习生可能无意中插错网线,某个IT部门可能给PC分配了动态IP。这些checklist上的每一项,都是过去踩坑后留下的后悔药。希望帮到你。
本文还有配套的精品资源,点击获取