汇川PLC与EtherCAT总线调试实战:从InoProShop配置到伺服控制 📅 发布时间:2026/9/7 6:37:20 👁 浏览次数: 1. 先搞清楚软硬件版本InoProShop的坑从下载安装就开始了我第一次接触汇川的 EtherCAT 方案是在一个现场改造项目上。客户原有的一套脉冲伺服方案要换成总线控制理由很实在柜子里线太多机台一抖就担心脉冲线受干扰而且点位一多接线时间成本完全压不住。当时我拿到手的是一台 H5U 和一批 SV660F 伺服软件装的还是 Autoshop折腾了两天才发现版本选型这一步就埋了个大坑。首先要明确一点汇川目前有两套主流的 PLC 编程软件——Autoshop 和 InoProShop。很多人会搞混以为它们只是名字不同、功能一样实际上根本不是一回事。Autoshop 主要面向早期的 H1U、H2U、H3U 系列以及部分以脉冲控制为主的机型这类 PLC 要用 EtherCAT 总线比较别扭要么得靠扩展模块要么得换平台。而InoProShop 是汇川基于 CoDeSys 内核打造的编程环境适配 H5U、AM 600、AM 400、Easy 系列如 Easy521/Easy522这些中大型 PLC。由于内核就是 CoDeSys它在数据结构、任务配置、总线组态、程序组织方式上跟西门子 Step7 或者倍福 TwinCAT 的套路更接近。想用它的 EtherCAT 总线就必须先在项目里选对控制器型号再确认软件版本。具体到版本InoProShop 我建议直接从 1.6 以上开始用我最早踩坑的时候用的是 1.5EtherCAT 从站扫描功能非常难用有时明明网线插着、从站也带电就是扫描不出来。后来升到 1.7问题基本消失站点的 XML 描述文件加载、从站组态、PDO 映射这些操作也顺手多了。提示如果你手头是 AM 系列要注意 AM 600 与 AM 400 系列在 InoProShop 里的工程模板不完全一样选择 CPU 型号时不要只图方便选默认项。选错型号可能导致“目标设备不支持该功能”这类莫名其妙的报错。软件安装本身没什么特殊的按向导一路 Next 就行但这里有一个容易忽略的细节安装路径不要带中文和空格。我曾经在一台服务器上把软件装到了 D 盘的“程序文件”目录下结果 EtherCAT 配置界面打开时偶尔白屏重装后才恢复正常。虽然不一定是路径直接导致但工业软件在这些细节上比较挑尽量按它的脾气来。2. EtherCAT 基础概念新手最容易糊掉的那几个名词很多人上来就急着组站、写程序结果从站站点都扫描不到就开始怀疑硬件坏了。其实大多数情况不是硬件问题而是概念没理顺。EtherCAT 和 Modbus、Profinet 这类协议最大的区别在于它的数据交换方式。EtherCAT 的通信链路是这样的主站发送一帧数据数据会经过每一个从站每个从站在数据经过时直接读写属于自己的那一段报文数据然后传给下一个从站最后一个从站把数据再传回主站。这种“飞报式”的传输机制让它在同步性上有天然优势多轴控制时各轴的数据处于同一次报文周期内不会出现老夫子说的“各个轴各说各话”的问题。对新手来说下面这几个概念必须在配置前搞清楚3. 主站与从站主站就是 PLC 本体H5U 或 AM 系列它负责发送通信报文、管理整个总线循环周期。从站就是挂在 EtherCAT 总线上的设备比如 SV660F 伺服驱动器、第三方 EtherCAT I/O 模块、步进驱动器等。每个从站都有一个站地址主站依靠这个地址识别设备。4. 从站描述文件XML/ESI 文件这是新手最常忽略的。EtherCAT 的每个从站设备本质上都需要一个 XML 描述文件里面写明了这个设备拥有哪些对象字典、哪些 PDO 参数、支持哪些同步模式。没有这个文件InoProShop 里就不知道这个从站长什么样子自然也就没办法组态。SV660F 的 XML 文件一般可以从汇川官网下载或者在伺服驱动器的资料包里找到。Easy521 控制关节模组时关节模组厂商必须提供对应的 ESI 文件否则只能通过通用从站入口去手工映射效率极低。5. PDO 与 SDOPDO 是过程数据对象就是每个通信周期里主站和从站之间实时交换的数据比如速度给定、当前位置、报警状态。SDO 是服务数据对象用于通讯建立时或者运行中读取、修改从站的参数比如伺服刚性参数、电子齿轮比。学习中常见的误区是把所有想要的参数都塞进 PDO结果一个周期时间被拉长影响同步性能。应当把实时性要求高的数据放进 PDO偶发性的设置参数用 SDO 或直接通过伺服调试软件来改。6. DC 同步模式DCDistributed Clock是 EtherCAT 的分布式时钟功能用于让各个从站的采样和输出时刻严格同步。如果你只是接几个 I/O 模块DC 的意义不太大但如果你在做多轴同步插补或电子凸轮DC 几乎是必须启用的。SV660F 驱动器支持 DC配置时要把从站的同步模式设为 DC 模式并在主站侧打开同步时钟设置。弄懂了这些名词再看 InoProShop 的 EtherCAT 配置界面就不会觉得它是一堆乱糟糟的表格了。每一个参数对应到实际硬件行为上其实都有清晰的因果逻辑。7. 从站扫描到跑通完整配置步骤及每一步的原理下面进入正题我把从零到跑通的步骤完整写一遍过程中会说明每一步为什么要这么做。7.1 新建工程并启用 EtherCAT 主站打开 InoProShop新建工程时要先选择正确的 PLC 型号。以 H5U 为例新建工程之后左侧项目树里会看到“总线配置”或“EtherCAT”相关节点。不同版本的软件叫法稍有差异1.7 版本通常是在设备树里右键主站设备选择“添加 EtherCAT 主站”。添加主站后还要设置主站参数核心是通信周期。默认情况下可能是 1ms 或 2ms这个要根据你的工艺需求来定。一般情况下普通 I/O 控制和简单速度控制用 1ms 够用多轴插补建议 500us~1ms如果要求更高比如几个轴要做高精度同步可能需要 250us但这时候对 CPU 的处理能力和 EtherCAT 网络的稳定性要求会明显提高。提示通信周期越短总线的负载越大排查问题的难度也越高。新手不要一上来就追求极致的 250us先把功能跑通再去缩周期。7.2 扫描从站与加载 XML 描述文件这一步是整个配置中新手最容易卡住的地方。在 InoProShop 的 EtherCAT 主站节点下通常有一个“扫描从站”或者“网络扫描”的按钮。点击后软件会通过网线自动识别当前总线上挂着的从站设备。扫描成功的话会列出每一个从站的类型和当前地址。但这里有个关键前提电脑或 PLC和从站设备必须在同一物理网段内而且网线要经过主站网口而不是随意插到别的网口上。H5U 的 EtherCAT 接口有时是专用网口不要和以太网口混用。我第一次调试时就把 EtherCAT 网线插到了 CPU 的以太网口上折腾了半天扫描不到设备后来看硬件手册才发现插错口了。扫描到从站后软件可能会提示“缺少设备描述文件”这就要手动加载 XML 文件。以 SV660F 为例在从站节点上右键选择“更新设备描述”然后定位到你下载的 XML 文件即可。加载成功后从站节点会显示正确的设备型号和名称。如果扫描不到设备按这个顺序排查网线是否插在主站的 EtherCAT 口上从站设备是否正常上电部分伺服驱动器在未使能的情况下通信模块也会工作但指示灯要确认是否正常闪烁如果网络状态指示灯不亮大概率是接线或供电问题从站地址是否冲突多个从站地址重复会导致扫描异常总线末端是否接了终端电阻EtherCAT 理论上是支持任意拓扑的但实际现场末端建议加上终端电阻可以大大降低信号反射导致的偶发故障。7.3 分配站地址扫描完毕后InoProShop 通常会自动给每个从站分配一个地址但建议你手动按设备实际安装顺序重新分配。这个地址决定了主站如何寻址每个从站也直接影响报文顺序。地址分配在软件里一般有两种方式一是通过“站地址配置”直接修改二是通过从站设备上的拨码开关设置。SV660F 这类驱动器一般同时支持拨码和软件配置Easy521 控制关节模组时通常是通过 XML 和站号组态来分配。经验之谈站地址最好跟设备编号对应起来比如驱动器 1 号地址为 12 号地址为 2。这样一旦通讯出问题直接看站号就能定位是哪台设备不用每次都对着拓扑图去猜。7.4 PDO 映射决定每个周期通讯的数据内容这是 EtherCAT 配置中最有意思、也最关键的部分。PDO 映射的本质就是把从站设备对象字典中的某些数据映射到主站的过程数据区。映射到 PDO 的数据每个周期都会在主站和从站之间自动交换不需要程序读写。而那些没有映射的数据就只能通过 SDO 方式来读写周期长、实时性差、还占用通讯资源。SV660F 的 PDO 映射我通常这样配置RPDO主站发送到从站控制字、目标速度或目标位置、模式字TPDO从站发送到主站状态字、当前位置、当前速度、报警代码。如果你需要监视驱动器的扭矩可以把“扭矩实际值”也加进 TPDO。热搜词里正好有一条“汇川SV660F驱动器查看扭矩”这其实有两种办法其一是在 PDO 里把这个值映射出来写进程序里实时监控其二是通过伺服调试软件连接驱动器看但那只能离线测试时用生产运行中看不到。配置 PDO 时要注意数据长度和数据类型。InoProShop 里一般会显示索引和数据类型比如 16 位整数、32 位整数、无符号数等映射错误会导致数据错乱。比如把 32 位的位置值当 16 位去读结果就是位置数据跳变、乱飞非常危险。7.5 激活配置与下载运行PDO 映射完成后还需要“激活”配置。激活操作的意义在于主站将把当前的配置写入到从站设备中并启动 EtherCAT 通信。这一步通常会提示“是否将配置写入从站”之类的信息。下载到 PLC 后如果一切正常主站节点的状态会变成 OPOperational各从站状态也会跟着变成 OP。此时总线的数据交换就是真正在跑了。如果只是 PRERP 或者 SAFEOP说明通信没有完全建立此时程序里也读不到有效的过程数据。有个小技巧在 InoProShop 的总线状态窗口里可以实时查看每个从站的当前状态。如果某个从站一直卡在 PREOP 转不到 OP通常是因为 PDO 配置不匹配或 XML 文件版本不对优先检查这两项。8. 99% 新手通讯故障的排查链路与解决办法这部分我按照现场实战中最高频的问题排序给你一套可以照搬的排查思路。不能保证覆盖 100% 的情况但处理掉 99% 的新手问题绰绰有余。8.1 扫描不到从站先硬件后软件扫描不到设备是新手遇到的第一个大坎。我的排查链路是看灯。从站设备上通常有 EtherCAT 通信指示灯比如 LINK 和 RUN 灯。RUN 灯如果常灭或闪烁不正常说明从站没有收到有效通信帧。看网线。不要迷信新的网线就没问题。工业现场网线被拖拽、压折导致线芯接触不良非常常见。换根短线试试是最快的验证方法。看拓扑。如果中间有分支器或接线盒最好先绕过它们直连主站再测排查分支器故障。看供电。EtherCAT 从站的通讯模块和驱动模块常常是独立供电的驱动器主回路没电但通讯模块有电这种情况要区分开。尤其是 SV660F 这类伺服控制电和主回路电是分开的控制电没接好通讯可能正常但电机不动作。看站号。如果总线上有多个从站且其中一个拨码开关的地址设重了会导致扫描到的设备数量不稳定有时识别到、有时识别不到。只要你按照“灯-线-拓扑-供电-地址”这个顺序走一遍90% 的扫描问题都能找到原因。8.2 从站状态卡在 PREOP 或 SAFEOP扫描成功但激活时状态上不去这也是高频问题。PREOP 卡住通常是邮箱通信CoE初始化失败。通俗讲主站还在和从站进行参数级的握手通信没进入周期数据交换阶段。原因常见于XML 文件不匹配、从站固件版本过旧、主站的周期设置超过了从站能力范围。SAFEOP 卡住通常是 PDO 映射或同步模式不匹配。主站已经把周期数据配置下发给了从站但从站无法接受或处理不了。解决方法是把 PDO 映射恢复到出厂默认值再重新映射或者检查从站的同步模式是不是设成了 DC而主站侧没有开启 DC 功能。还有一个非常隐蔽的原因从站中有多个设备其中一个不支持你配置的同步模式。比如 I/O 模块只支持 SM2/SM3 模式你却把它设成了 DC它就会卡在 SAFEOP。这种问题要逐个从站去对照手册确认。8.3 通讯偶尔断站时好时坏这类问题最让人头疼因为它没有固定规律可能一天出现一两次或者一开机就报某个从站丢失错误。我的经验是优先怀疑以下三个点第一接地问题。工业现场复杂电磁环境下EtherCAT 线缆的屏蔽层必须可靠接地。很多断站是屏蔽层没有接到 PE 端子导致的。检查方法是用示波器看链路信号或者简单地用一根额外的地线从驱动器机壳接到柜内的接地铜排上然后再观察故障是否消失。第二线缆质量问题。EtherCAT 对网线质量有要求至少是 CAT5e 以上的工业以太网线。使用普通民用网线在短距离上可能没问题但线一长比如超过 50 米或者现场变频器干扰大故障率就会飙升。这也是为什么我不推荐在现场随意接长网线的原因。第三终端电阻。EtherCAT 链路末端如果没有终端电阻信号反射会引起偶发的位错误表现出来就是“偶尔断一下然后又恢复”。这个现象在电机运行中尤其明显因为变频器的开关动作会产生大量干扰。8.4 伺服能通讯上但电机不动或者乱动有一次现场服务客户说“总线状态都是 OP 了程序也下载了但伺服就是不动。” 我到现场一看发现他把目标速度写进去了控制字也写了但驱动器一直显示“未使能”。这里要理解 EtherCAT 控制伺服的基本流程主站必须先通过控制字Controlword改变伺服的状态机。标准 CiA402 状态机里伺服从“未使能”到“运行使能”要依次经历“准备使能-使能-运行”每一步都有对应的控制字位。如果只写了速度值没有按顺序发送控制字伺服是不会转的。如果你用的是汇川的 InoProShop其实是有功能块可以直接调用的比如 MC_Power、MC_MoveVelocity、MC_MoveAbsolute 这些标准运动控制功能块它会帮你封装好控制字和状态字的交互逻辑。新手直接用功能块比自己手动去操作控制字要安全得多。如果功能块调用正确但电机还是不动就要检查驱动器的刚性参数是否设置过低导致实际扭矩不够伺服电机的使能信号是不是被硬接线信号锁死了驱动器有没有报警SV660F 上的报警代码比如 E660 编码器异常、E731 过载等需要先排除是否选错了控制模式如果你用的是速度模式却给了位置指令那肯定不动。8.5 Windows 下用 Wireshark 抓 EtherCAT 报文的注意事项总线和其它 IP 协议不同交换机等地抓包的时候普通电脑网口抓到的数据可能看起来乱七八糟。热搜词里有条“Windows下Wireshark怎么抓包EtherCAT”这个确实有讲究电脑会过滤掉非 IP 协议吗Wireshark 默认会显示所有协议族但需要你装好 WinPcap 或 Npcap 驱动否则网卡根本收不到 EtherCAT 报文。网卡要能设置为混杂模式。大部分普通网卡可以但 USB 转网卡在抓包时性能不稳定丢失报文严重建议使用主机自带网口。抓包时如果主站和从站之间是直连使用一个 Hub 分流器把电脑串进去就可以如果在交换机上抓包交换机可能过滤非 IP 报文所以最好采用 Hub 或 Tap。抓到报文后先用 Wireshark 的过滤条件ecat过滤出 EtherCAT 报文。重点看帧头里的通信状态如果全是 PREOP 的报文说明主站和从站之间的初始化没有完成。用 Wireshark 抓包是高级排障手段不建议新手一上来就搞。先把前面的常规步骤走完至少能解决 90% 的问题。9. 从基础通讯到进阶应用几个实战场景拆解如果你已经能把伺服转起来、I/O 点读到数据了恭喜你EtherCAT 的基础已经过关。但实际项目里你还会遇到比“转起来”复杂得多的需求。我挑三个常见的场景聊一聊每个都可以单独展开一片文章但这里先给你梳理清楚整体思路。9.1 追剪电子凸轮规划热搜词里有“汇川PLC追剪电子凸轮规划”这个场景在包装、印刷、线缆行业非常常见。追剪的核心是主轴的相位变化要通过电子凸轮耦合到从轴的位置上。主轴可能是编码器输入外部信号也可能是一个虚拟主轴取主轴的位置作为凸轮的输入然后计算出从轴的同步位置指令。在 InoProShop 中做电子凸轮你需要用到 MC_CamIn 这个功能块。前期的工作包括规划凸轮曲线。通常用 Excel 或专用凸轮设计软件生成 CAM 数据再导入到 InoProShop 的 CAM 表里。凸轮的形状直接决定切刀的加速和减速特性这需要熟悉工艺才能调好。配置主轴编码器。如果主轴是一个物理编码器你需要确认它的分辨率、倍频方式还要注意编码器信号接入的是高速计数口还是 EtherCAT 从站模块。设置从站轴的控制模式。追剪的从轴通常工作在位置模式且需要启用跟随功能。如果从轴的位置环同步不够好切出来的产品就会长短不一。这里要特别提醒电子凸轮的同步效果极其依赖总线周期的稳定性。如果把总线周期设为 1ms而主站 CPU 还有大量其它任务就可能出现抖动最终反映到切割精度上。所以做追剪工艺时建议把 EtherCAT 主站的任务优先级设到最高且把周期缩到 500us 左右。9.2 MD800 变频器消除报警与 EtherCAT 联动热搜词里有一条“汇川MD800变频器怎么消除报警”这确实也是大家问得很多的问题。MD800 系列是汇川的一款通用变频器也支持 EtherCAT 通讯。报警消除首先要看面板上的报警代码不同代码背后的原因完全不同。以最常见的过流报警为例处理流程是确认电机参数是否正确特别是电机额定电流和变频器额定电流是否匹配检查加减速时间如果加得太快转动惯量大会直接过流检查负载有没有卡死或者冲击负载消除后可以通过复位指令通常是一个控制字位来清除报警状态。在 EtherCAT 控制 MD800 时也遵循 CiA402 状态机报警状态下控制字无效必须先执行故障复位。我见过不少人在程序里只给速度、不给复位指令报警灯永远消不掉。提示MD800 做为从站设备同样需要加载它的 XML 描述文件并映射好控制字、状态字、速度给定这些 PDO。有些变频器 EtherCAT 通讯默认是关闭的需要通过面板参数或者调试软件先打开通讯功能否则扫描都扫不到。9.3 Easy521 控制关节模组与 MCGS 触摸屏标签通讯Easy521 是汇川 Easy 系列里的一个很有性价比的选择它同样支持 EtherCAT 主站可以带一些小型关节模组。关节模组一般内置伺服驱动器和电机用户只要给它位置指令和使能指令即可。这类应用的难点有两个一是关节模组厂商的 XML 文件是否规范二是在 InoProShop 中做轴控制功能块时变量的类型和名称要对得上。热搜词里还有一条“inoproshop 与触摸屏标签通讯”这其实是很多做单机设备的工程师都会遇到的需求。具体路径是在 InoProShop 中启用“标签导出的功能”把 PLC 工程中的全局变量导出为标签文件然后在 MCGS昆仑通态的组态软件里导入这些标签触摸屏就可以直接读写这些变量了。不需要写复杂的 Modbus 报文映射表但要注意中文变量名的标签在一些旧版本触摸屏软件里不支持或显示乱码最好用英文或拼音命名变量。如果你发现触摸屏上显示中文字符乱码先检查编码设置再检查变量名。9.4 STM32 和 EtherCAT 从站开发到底要不要碰热搜词里出现“EtherCAT 和 STM32”、“ethercat slave stack code (ssc)”、“ethercat master移植”这类话题更适合做产品开发的工程师而不是设备维护的工程师。如果你是想在自制设备上把 STM32 变成一个 EtherCAT 从站那么可以走两条路使用厂商提供的 EtherCAT 从站协议栈代码SSC 生成的代码配合对应的 ESC 芯片如 LAN9252自己画板、写固件使用市面上已有的 EtherCAT 从站模块比如汇川或第三方 IO 从站然后把 STM32 当作一个普通的 MCU 去读写这些模块。对于大多数自用设备的工程师我建议选择第 2 条路线把精力放在应用逻辑上。自己从零开始写从站协议栈是一个“技术成就感大于实际收益”的事情除非你是做产品、有量产需求否则时间成本不划算。曾经有个客户坚持要用 STM32 做从站控制伺服理由是“想彻底掌握 EtherCAT”。我问他你是做产品还是修设备他说修设备。那就没必要掌握主站侧的配置和排障逻辑已经能覆盖 95% 的现场问题。如果你对从站协议栈本身感兴趣先去倍福官网把 EtherCAT 技术介绍资料读完再下载一个 ETG 官方的 SSC 工具生成代码跟着文档把 LAN9252 的例程跑通比盲目搜资料高效得多。10. 现场多年积累的几条琐碎经验最后分享几条我这些年跑现场攒下的琐碎经验不按重要程度排你当参考。网线标签一定要贴。一个机柜几十根网线不加标签调试时分清哪根接到哪个轴能头大半小时。贴标签的成本极低收益极高。配置修改前务必导出备份。InoProShop 支持导出工程配置调试阶段每次改动都导出一次命名为“日期-版本-说明”。常有工程师调了一下午没调通晚上发现改乱了一个参数没有备份只能凭记忆往回改非常痛苦。复位报警的控制字要单独做按钮或触发条件。不要每次一报警就把整个控制字置零再重新使能可以做一个单次触发的复位功能块只在上升沿时发送复位命令。这样既能正常恢复也能避免重复上电给驱动器带来的冲击。编码器插头要拧紧并做防松处理。伺服电机的编码器线在运动过程中会不断受到弯折、振动插头松动会导致位置走飞、报警 E660 等编码器异常。装完后用扎带固定好线缆特别是电机端。从站数量较多时合理分组上电。某些从站上电瞬间的浪涌电流比较大如果同一路电源带十几个从站可能导致电压跌落出现部分从站通讯异常。分开供电后问题会迎刃而解。EtherCAT 这套系统常常是“失之毫厘谬以千里”。一个从站地址重复、一个 PDO 长度配错、一根线没压好都会引发表面看起来毫无规律的现象。但只要按步骤走、按协议原理去推所有问题都有迹可循。希望这些经验能帮你少走几个弯路。