说实话,我第一次在车间把汇川H5U PLC和EtherCAT伺服电机接起来的时候,心里其实挺没底的。连续折腾到深夜,最终电机稳稳转起来那一刻,前面踩过的坑全都变成了经验。汇川H5U配合EtherCAT总线伺服,已经是中小型自动化设备里非常常见的组合:一台PLC带十几个轴做同步、飞剪、贴合、夹取,性价比高,调试流程也相对清晰,但你得先把路走对了才行。
这篇东西,就是把我从软件安装、硬件接线、驱动器参数、总线组态到PLC程序下发的整个流程完整还原一遍,遇到过的坑全部标出来,并给出排查思路。适合第一次碰H5U和汇川EtherCAT伺服的新人,也适合想快速搭一套测试平台的老手做参考。文章很长,但每一步都是实际操作得出的结论,按顺序走,比你在现场瞎试一晚上有效率得多。
1. 整体方案设计与选型逻辑
1.1 为什么选择H5U + EtherCAT + 汇川伺服
汇川H5U是一台内置EtherCAT主站的小型PLC,编程环境是基于Codesys V3二次开发的,运动控制功能大概是这么个层次:既支持最基本的单轴点动、相对定位、绝对定位,也支持电子齿轮、电子凸轮、插补这些进阶功能。对一台紧凑型PLC来说,这个运动控制能力已经覆盖了绝大多数中小型设备的应用场景。
选EtherCAT而不是脉冲方案,核心原因有三个。第一,接线省。脉冲方式控制伺服要接脉冲、方向、使能、编码器反馈、原点、限位,单单一个轴的IO线就一大堆;EtherCAT把所有控制信号和状态反馈统一走一根网线,从站之间手拉手串联,现场布线非常干净。第二,同步精度高。多轴设备要同时加速、同时到位,脉冲方案受扫描周期影响,同步性很难做到理想;EtherCAT的分布式时钟机制能把各轴的同步时间差控制在微秒级,做滚轮同步、飞剪这类应用时非常关键。第三,诊断信息丰富。伺服报警、电流、位置、速度其实都在总线上,PLC可以直接读到,不需要额外接一堆DI信号去判断驱动器状态。
那为什么伺服也选汇川?说白了,同品牌搭配省心。H5U和汇川SV660N伺服之间的EtherCAT从站描述文件、PDO映射、报警码定义都是现成的,组态时直接调库,不用自己折腾第三方从站文件。如果你拿H5U去带第三方EtherCAT伺服,也不是不行,但要自己处理厂家XML文件、映射不同厂家的PDO,新手很容易卡在“主轴使能但电机不动”的局面上。
1.2 这套方案能做什么,适合哪些场景
从应用看,H5U带EtherCAT伺服可以覆盖这几类典型场景:
- 单轴位置控制:走停定位、定长裁切、点胶、螺丝锁付。这类需求最简单,用MC_Power加MC_MoveAbsolute就能完成。
- 多轴电子齿轮:两个或多个轴以固定比例跟随,比如送料轴和切刀轴同步,比例关系通过齿轮同步功能块实现。
- 电子凸轮:做非线性的跟随关系,比如转盘加凸轮机械特性的替代。H5U运动库里有凸轮表工具,可以生成和编辑曲线。
- 飞剪、追剪:在连续运动中对物料执行裁切或标记,对同步精度要求更高,EtherCAT硬实时能力在这里才能发挥出来。
对新手来说,最务实的目标是先把“轴使能、电机点动、绝对定位”这几步走通,等于把自动化设备最底层的运动逻辑跑顺了。这篇文章正是按照这条线来展开的,后面所有进阶玩法都是在这套基础上叠加的。
2. 软件安装与运行环境准备
2.1 需要哪些软件
做H5U + EtherCAT伺服调试,至少需要两个软件:
- PLC编程软件:汇川InoProShop,主要用来写PLC程序、组态EtherCAT从站、下载调试程序。
- 伺服调试软件:汇川InoDriverShop,用于伺服驱动的参数读写、试运行、状态监控,当然大多数参数也能在驱动器面板上设置,但用软件会直观很多。
InoProShop的版本很多,我建议按你手上H5U的固件版本来选,原则是“固件版本和软件版本尽量匹配”。你可以在H5U的硬件标签或者系统信息里看到固件版本。如果软件版本太旧,可能识别不了新款伺服;版本太新,老固件的PLC也可能出现组态不兼容的情况。现场最稳妥的办法是,去汇川官网的下载中心找到对应的软件安装包,同时把H5U的固件、伺服驱动器固件版本确认好。厂家一般不主动要求刷固件,但遇到“从站扫描正常但轴无法使能”这种疑难杂症时,升级固件经常是最后那根救命稻草。
2.2 安装步骤与踩坑记录
安装InoProShop的整个过程中,最容易出问题的是下面几点:
第一,安装路径不能带中文。有些朋友习惯把软件装到“D:\汇川软件\”这种目录下,结果打开工程时各种报错,比如找不到库文件、编译失败。InoProShop从底层上对中文路径支持不好,建议默认路径安装,或者改成纯英文路径,例如 D:\InoProShop。
第二,必须关闭杀毒软件再安装。InoProShop会安装一个本地的Codesys网关服务和一些ODBC组件,杀毒软件很容易把这些当成未知程序拦截掉。拦掉之后通常没有明显提示,但后面你打开PLC仿真器、下载程序时会莫名其妙失败。安装完之后再用杀毒软件全盘扫描一次,别省这一步。
第三,用管理员身份运行安装包。这个是因为软件要在C盘写入系统服务,普通权限跑起来经常写到一半弹权限不足,然后又得卸载重装,浪费时间。
装完之后,第一次启动InoProShop,建议先检查右侧设备树的“工具-选项”里,是否已经配置好本地网关地址,一般是127.0.0.1。如果你发现设备树里找不到“本地”,或者下载窗口里扫描不到目标设备,十有八九是网关服务没起来。解决方法是打开Windows服务管理器,找到Codesys Control Win Service V3 或者类似命名的服务,手动启动并设置为自动启动。
2.3 离线仿真确认软件环境
不要急着连真机,先建一个空工程确认软件环境没问题。具体做法:新建工程,选择H5U对应的CPU型号,在“应用程序”下新建任务,默认用主任务就行。然后编译一下空工程,再用软件自带的仿真器运行。如果能在仿真状态下看到任务运行、变量刷新,说明软件本身是好的。
熟悉软件操作,主要看这几个位置:
- 设备树:左边一栏,PLC变量、程序组织单元(POU)、任务配置、EtherCAT主站都在这里。
- 运动控制库:在“库管理器”里,需要引用H5U运动控制库,里面有MC_Power、MC_MoveAbsolute这些功能块。新建工程后一般会自动带基础库,但最好确认一下运动控制库是勾选状态,否则后面写程序时MC功能块是灰色的。
- IO映射:组态硬件后,输入输出变量会出现在设备树对应模块的IO映射表里,可以手动映射到PLC变量。
仿真这一步很多人跳过,但真机调试时如果软件环境有问题,排查起来更痛苦。宁可多花十分钟,把第一步走稳。
3. 硬件接线与现场准备
3.1 主回路与控制回路的接线要点
硬件接线是最后是否能被电机反咬一口的分水岭。先说主回路。
伺服驱动器的电源分为主电路电源和控制电源。主电路是三相或单相220V进线,接到驱动器R、S、T电源端;控制电源一般也是220V,接到控制电端子,有些型号叫L1、L2,有些叫L1C、L2C,具体看端盖上的丝印。主电路和控制电源要分开走线,很多现场报警“欠压”,其实不是电网缺相,而是控制电源没送到位。
电机动力线接U、V、W三个端子,顺序错了电机会反转,而且增益调试时容易因方向改变产生误判。编码器线一定要用屏蔽线,屏蔽层在驱动器侧单端接地,别把编码器线和动力线绑扎在一起,否则高频干扰直接串进来,电机低速抖动、定位偏差、温度报警都会出现。
抱闸线要格外注意。带抱闸电机需要单独接抱闸电源和控制继电器,千万别把抱闸电源直接并联到编码器电源上。抱闸线圈是感性负载,断电瞬间会产生反向电动势,不接续流二极管或压敏电阻,很容易把驱动器的抱闸输出口打坏。
H5U这边主要接电源、输入输出信号。大部分场合,PLC和驱动器之间不需要额外的硬接线,因为使能、报警、限位这些信号都走EtherCAT总线,省掉了一堆IO线。但急停回路建议保留硬件接线,因为急停必须做到物理断开,不能依赖总线通讯,否则总线一断,急停指令根本送不到驱动器,这是安全上必须考虑的底线。
3.2 EtherCAT组网顺序与线缆要求
EtherCAT的接线很像一串手拉手的灯笼:第一个灯笼挂在PLC上,第二个挂在第一个上,第三个挂在第二个上。从H5U的EtherCAT主站口OUT出来,接第一台伺服驱动器的IN口,然后从这个驱动器的OUT口,接第二台驱动器的IN口,依次串联下去。
要注意,EtherCAT没有传统意义上的终端电阻。很多习惯Modbus或者CAN的朋友,第一次接触EtherCAT总喜欢找拨码开关或者短接片去设置终端电阻,实际上EtherCAT协议本身不需要,链路末尾就是从站,主站会自动处理。当然这里有个前提:每条网线的长度不要太长,距离超过50米就要考虑工业级网线、隔离器或者光纤转换器,普通车间环境建议控制在20米以内最稳。
网线必须使用超五类或以上的屏蔽双绞线,水晶头要做得牢靠,最好用金属屏蔽头。现场最坑的情况是:用普通电脑网线短距离测试一切正常,一挂到长距离布线就偶发掉站,换一根屏蔽网线后问题消失。另外,EtherCAT不支持交换机,更不建议把主站口插到办公室交换机上,拓扑结构必须是链式或者环形冗余,而且环形冗余需要主站硬件仅支持才可用,一般现场先按链式设计。
每一台驱动器的站号必须唯一。站号既可以通过面板设置,也可以通过软件设置。通常建议从1开始编号,编号尽量和轴编号对应,比如轴1站号1、轴2站号2,这样排查问题时能直接对应物理位置。
3.3 上电前必做的检查清单
上电之前,把下面这几项当作固定习惯:
- 用万用表测量驱动器主电路输入电压是否在铭牌允许范围内。
- 检查动力线U、V、W是否和驱动器输出的相序一致,万一相序搞错,电机正转方向会反。
- 确认抱闸线、编码器线、动力线各自分离走线,不要绞在一起。
- 检查站号拨码或参数设置,不允许重复。
- 确认PLC电源、驱动器电源都已可靠接地,现场最常见的地线问题就是接地不良导致总线通讯偶发中断。
这些检查只需要十分钟,但能避免后面至少一小时的困惑。
4. 伺服驱动器参数设置与调试
4.1 控制模式切换与总线状态确认
汇川伺服驱动器(比如SV660N系列)出厂默认一般可能是脉冲模式或调试模式,用于EtherCAT总线控制前,需要把驱动器的控制模式切换为通讯模式。
在InoDriverShop里,连上驱动器后,首先要确认“运行控制模式”那一项是否已经设置到总线控制或EtherCAT通讯模式。不同固件版本菜单名称略有差异,有的叫“控制模式”,有的叫“运行指令来源”,但核心意思都一样:让驱动器的指令源不再来自脉冲端子或者面板,而是通过总线接收主站下发的控制字。
切换模式之后,驱动器面板一般会显示“OP”或者“运行xxxx”之类的状态字。如果显示通讯未连接或者总线状态异常,先排查网线是不是接对了,站号是不是设了,主站是不是已经启动了总线通信。SV660N面板上有一个专门的状态显示区,不同代码表达不同的总线状态,查驱动手册比盲试快得多。
这里有一个常见的认知误区:有人认为接好EtherCAT网线,驱动器面板就会亮“OP”状态。其实驱动器必须先被主站扫描到、使能通讯,并且主站把控制字写到从站,总线才会真正进入运行状态。所以第一步目标不是让OP亮起来,而是让主站通过扫描检测到驱动器在线即可。
4.2 电子齿轮比与方向设定
总线上用的伺服和脉冲伺服,在“电子齿轮比”这个问题上有本质区别。
脉冲模式下的电子齿轮比是个固定比值,因为控制器发的每一个脉冲对应一个固定位置增量,伺服侧要根据机械结构去换算脉冲数和实际移动距离的比例。而EtherCAT总线模式下,指令单位通常都在主站侧定义,从站内部虽然也有编码器分辨率的参数,但主站通过映射的PDO数据直接下发目标位置和速度,换算关系由组态时设定轴参数完成。
所以,在初次调试时,不建议先去折腾驱动器侧的电子齿轮比。默认参数先跑起来,等你能控制电机平滑转动了,再根据实际移动距离去校准轴参数和单位换算。
方向设定是个容易让人困惑的点。总线上有两种方向需要区分清楚:
- 电机旋转方向:取决于动力线相序和编码器方向,一般驱动器参数里有电机旋转方向设置项,改变它可以让电机朝相反方向转。
- 轴位置方向:由PLC运动控制里的轴方向参数决定,即使电机物理转向不变,你也可以通过设置一个“位置取反”参数让PLC里的目标位置和实际移动方向一致。
初调时不要两个地方一起改,先固定驱动器侧电机方向,再用PLC侧的轴方向去匹配你实际要求的坐标方向,否则很容易改了参数后电机直奔限位。
4.3 电机参数辨识与试运行
伺服电机的控制参数高度依赖电机本身。第一次接一台陌生的电机,或者驱动器换过、电机换过、编码器线重新接过,建议在InoDriverShop里做一次电机参数辨识,也叫编码器零位辨识或者角度自学习。这个流程让驱动器自动测量电机电角度和编码器的对应关系,不做的后果可能是:电机正常使能,但一给指令就猛烈振动或者滋滋响,严重的会报编码器故障。
具体操作用面板或软件都行。以SV660N为例,通常需要先把电机使能断开,在离线状态下选择“编码器自学习”,然后驱动器会自动给电机注入测试信号,几秒钟完成。测试时电机轴可能会轻微转动,这是正常现象,但千万要保证电机没带载,最好把联轴器松开,防止机械结构受力。
自学习结束后,再做一次空载点动测试:通过InoDriverShop面板让电机以很慢的速度转动,确认电机转向、编码器反馈都正常。这一步相当于把伺服驱动器本身的问题先隔离掉了,后面PLC侧再出问题,就不需要怀疑是伺服端的硬件故障了。
5. EtherCAT总线配置与轴组态
5.1 在InoProShop中添加EtherCAT主站和从站
H5U的硬件组态在InoProShop的设备树里完成。新建工程选定PLC型号后,设备树里会有一个“EtherCAT主站”节点。双击进入主站配置界面,可以设置主站周期,也就是总线扫描周期。关于周期这里多讲一句:总线周期不是越短越好。周期越短,主站和从站的CPU负载越高。单轴或者两三轴做点对点定位,常见1ms周期足够;如果是多轴插补、电子凸轮这类要求高同步的应用,可以设置到500us甚至250us,前提是程序任务调度和轴数都扛得住。初期调试建议先用1ms,后面根据实际运行再降低。
接下来扫描从站。在EtherCAT配置界面里,点击“扫描站点”,软件会自动检测链路上所有在线从站并弹出列表。扫描到的从站会显示站号和设备信息。如果扫不到任何设备,先回到第3节检查硬件和站点地址。
扫描成功后,从站设备会出现在主站节点下。因为使用的是汇川伺服,设备库一般已经预置了SV660N或IS620N的从站描述文件,正确识别后,设备名称后面会带出固件版本和可能的PDO映射选项。
5.2 PDO映射与轴变量的自动建立
PDO就是主站和从站之间周期传输的数据结构。对伺服来说,重点看两块:
- 发送PDO(从站到主站):里面通常包含实际位置、实际速度、实际扭矩、驱动器报警码、回零状态等状态信息。
- 接收PDO(主站到从站):里面通常包含目标位置、目标速度、控制字、模式字、加减速时间或电子齿轮相关指令等。
在InoProShop中添加汇川SV660N从站时,软件会自动把常用的PDO映射加载出来。你不要嫌多,尤其“控制字”、“模式字”、“目标位置”、“实际位置”、“实际速度”这几项必须映射。如果你想要更精简的映射,也可以手动修改PDO,去掉不需要的对象,但这会增加配置难度,建议新人在默认PDO基础上做。
映射完成后,还需要在轴参数里建立“轴”变量。InoProShop的运动控制是基于PLCopen标准的,你在“设备树 -> 轴池”里新建轴,然后选择“分配从站设备”,指向刚才组态好的伺服从站。这样,轴变量就和驱动器的PDO映射自动关联起来了,后续编程用轴变量名而不是直接操作PDO地址,逻辑清晰,别人看程序也容易懂。
5.3 轴参数:单位、限位、方向、加减速
轴建立后,进入轴配置,有几个地方必须认真设置:
- 单位换算。默认情况下总线轴的单位可能是脉冲,但你真正关心的是mm或者度。为了换算简单,建议把编码器分辨率、丝杆导程、减速比都填到轴参数里。例如伺服编码器每圈2500线,驱动器内部4倍频后是10000脉冲/圈,配着丝杆导程10mm,那单位设置为1mm时,软件会自动算出1mm对应多少编码器脉冲。这个参数如果一开始没有填对,后面做绝对定位就会发现目标位置和实际位置对不上。
- 正负限位。限位可以走硬限位(外部传感器信号)也可以走软限位(软件设定最大正负行程)。总线方案下,硬限位信号可以接到PLC的DI点,在PLC程序里映射到轴参数中。安全起见,正负软限位建议一定要设,否则程序写错一个正方向运动,设备可能直接撞机械。
- 方向。轴方向参数控制“PLC指令方向”和“电机实际转向”的关系。建议在空载状态下用慢速点动测试确定正方向,如果发现轴的正方向错了,直接在轴参数里取反,不要在现场累死累活倒换电机动力线。
- 加加速度和加速度。加减速时间决定了设备运动时的冲击程度。初期测试把加速度设小一点,比如100mm/s²,可以让异常情况更容易观察。等机械确认没问题了再提高响应速度。
做完这些,你还没有写一行PLC逻辑,但硬件、总线、轴参数的世界已经搭好了。
6. PLC程序编写与电机转动实操
6.1 最小程序框架:轴使能 + 点动 + 绝对定位
写程序前,先在库管理器确认已经引用运动控制库,常见的功能块有这些:
- MC_Power:轴使能。准确说是控制驱动器使能状态,并把伺服置为准备运行状态。
- MC_MoveVelocity:速度模式运动,常用于点动或者连续进给。速度方向由目标值正负决定。
- MC_MoveAbsolute:绝对位置运动,以绝对坐标为目标位置运动。
- MC_Stop:停止运动,可以带紧急停止标志。
- MC_Reset:复位故障,复位轴的错误状态。
一个最精简的调试程序,我习惯这样组织:
使用ST语言给一个简单的顺序结构,方便检查和单步执行。先用一个BOOL变量“bEnable”触发MC_Power,使能成功后,MC_Power的Busy或者Valid状态变成TRUE,然后再触发点动或者绝对定位。
梯形图版本也很直观,功能块输入管脚接变量,输出管脚接状态指示。H5U的编程软件支持梯形图和ST混合编程,调试时建议用梯形图看运行状态,更直观一些。
下面是ST语言的示例,虽然我没有把完整工程放上来,但这段逻辑完全可以在InoProShop里直接建立:
// 轴使能 MC_Power_0( Enable := bAxisEnable, bRegulatorOn := TRUE, bDriveStart := TRUE, Axis := Axis1, Status => bAxisEnabled, Error => bPowerError, ErrorID => wPowerErrorID );使能之后,点动可以这样写:
// 点动:速度模式,目标速度100mm/s,方向为正 IF bJogPositive THEN MC_MoveVelocity_0( Execute := TRUE, Velocity := 100.0, Axis := Axis1, InVelocity => bInVelocity, Error => bJogError, ErrorID => wJogErrorID ); END_IF;点动测试时值班的人一定要把手放在急停上,我第一次点动时速度设了200mm/s,电机一下冲出去,差点顶到机械限位。测试速度永远从低速开始,稳稳走上一圈再加速不丢人。
完成点动后,做绝对定位:
// 绝对定位:目标位置100mm MC_MoveAbsolute_0( Execute := bMoveAbs, Position := 100.0, Velocity := 50.0, Acceleration := 100.0, Deceleration := 100.0, Jerk := 200.0, Axis := Axis1, Done => bMoveDone, Error => bMoveError, ErrorID => wMoveErrorID );上电执行顺序很重要:先给伺服使能,等驱动器进入运行状态,再发运动指令。如果使能和运动指令同时触发,可能出现运动指令已经执行,但驱动器还没真正使能上的情况,表现为轴命令位置在变,但电机纹丝不动,或者干脆报错。稳妥的做法是加一个延时,或者在程序中等待MC_Power的Status为TRUE后再允许运动指令置位。
6.2 程序下载与在线调试的方法
程序写好后,先在本机编译。编译没有错误后再连接真机,点击“登录”或者“下载”。下载前InoProShop会提示是否进行在线修改或复位,调试阶段一般直接选“下载并复位”,程序会重新装载,轴也会回到未使能状态,这是正常现象,不用担心轴的位置丢失,因为PLC内部的轴参数还在。
下载完成后,让PLC进入运行模式。这时打开EtherCAT主站监控和轴监控页面,观察总线上各从站的实际状态。正常情况下,你应该能看到:
- 从站已进入OP状态。
- 轴电源使能后,驱动器面板或总线状态里能看到使能反馈。
- 点动命令触发时,实际速度从0开始跟随目标速度。
如果程序已经触发使能,但驱动器没有运行,优先检查EtherCAT配置里从站的控制字PDO是否映射正确。这是最常见的一个坑:映射了目标位置,但控制字没有映射到驱动器的控制字地址,导致驱动器收到了位置指令但不知道主站想让它使能。
6.3 调试台上的操作顺序参考
为避免在设备上反复试错,我这里给一个标准的调试操作顺序,新项目直接按这个来:
- 先空载测试驱动器,确保驱动器和电机本身能转。
- 然后在InoProShop里面做EtherCAT从站扫描,确认所有伺服都在线。
- 建立轴并做单位换算、方向验证。
- 编一段定时点动程序,用低速正反转验证PLC到轴的控制链路。
- 再做绝对定位测试,确认位置精度和回零逻辑。
每次改动硬件或通信参数后,重新上电时都按这个顺序检查一遍,可以大幅减少“不知道哪一步出问题”的焦虑。
7. 常见问题与排查技巧实录
7.1 伺服报警:如何快速读取和复位
伺服报警是调试中最常见的“拦路虎”。SV660N这类驱动器的报警信息会通过EtherCAT总线上传到PLC,InoProShop轴状态里可以直接看到报警代码。如果程序能读到报警码,优先查汇川伺服手册的报警表,比如过压、过流、编码器异常、过载、通讯超时等。
常见报警原因和排查方向:
- 过压报警:多半是电机在减速或下坠时能量回馈导致母线电压抬升。检查加减速时间是否太短,有没有外接制动电阻,制动电阻和驱动器匹配是否正常。
- 过流报警:驱动器和电机是否匹配,电机电缆是否短路,编码器零位是否丢失。电机参数未辨识直接跑,也很容易触发过流。
- 编码器报警:编码器线接触不良或者屏蔽层没接好。注意编码器线绝对不能从电机出线口到驱动器之间做过度弯曲,很多现场故障都是压线导致的。
- 通讯超时报警:EtherCAT链路断过或者报文没按时返回。排查网线、水晶头、从站供电,是否有多站号重复。
报警复位有两种方式:一是驱动器面板按键复位,二是PLC程序里用MC_Reset功能块复位。但要注意,不是所有报警都能直接复位,比如过热、过压这类硬件保护,必须等故障源消除才能复位。盲目复位很可能导致电机带着隐患继续跑,这是我特别想强调的一点。
7.2 EtherCAT从站扫描不到或者偶发掉站
遇到扫描不到,先看物理层,再看协议层。物理层用网线测试仪或者把网线插到电脑上看看链路是否通,协议层在InoProShop的EtherCAT状态页面看主站有没有报错。
排查顺序我列一下:
- 检查从站供电是否正常,站号是否设置正确,重复站号是最常见的扫描失败原因。
- 确认网线连接的是驱动器的IN口,而不是OUT口。虽然EtherCAT会自动寻址,但方向反了确实会导致主站无法识别。
- 换一根短网线测试,排除长网线或者水晶头问题。很多“偶发掉站”的最终原因就是网线不合格,水晶头压接不标准。
- 从站是最后一个时,后面不要再接其他设备。末端设备的状态灯正常,不代表总线报文一定已经闭环,主站如果迟迟不进入OP,查看主站日志会显示“未确认从站”“超时”之类的信息。
- 确认主站周期和从站负载是否过高。如果从站数量多,总线周期设在125us,从站经常出现看门狗超时,就试着把周期放宽。
7.3 电机啸叫、振动或者“转不动”的处理
电机啸叫或振动,多数是增益不匹配。H5U侧或伺服侧的刚性参数调得过高,相当于你用力过猛,系统就会震荡。先把增益调到较低水平,能转起来,再逐步加大增益和带宽。如果只在运动过程中发生啸叫,检查加速度和减速度是否够平滑。
电机完全不转,但驱动器显示使能,重点检查:
- 速度给定为零,或者给定值被程序清零了。点动指令没有触发,或者目标速度设成0,电机当然不会转。
- 是否触发了限位或者急停。总线方案下,PLC轴状态如果在“StandStill”或“Disabled”,驱动器虽然打开但轴不允许运动。
- PDO映射的是否正确。目标位置映射了,但控制字中使能位一直为0,驱动器处于伺服使能但未运行状态,电机不会响应位置指令。
- 编码器反馈是否正常。如果编码器头的线虚接,驱动器检测不到实际位置,可能报“制动”或者“定位差过大”报警,电机也不会正常运转。
7.4 上电时序、抱闸和安全回路的注意事项
最后专门说安全,这段是调试多年不能只有技术角度才能体会的。
- 上电时先给PLC供电,再给驱动器和电机供电。如果驱动器和PLC同时上电,总线状态可能在下电时丢失,导致H5U扫描不到从站。
- 抱闸必须在电机使能后才能解除,不能在电机掉电自由状态下靠抱闸硬撑负载。程序中务必在伺服使能后,再输出抱闸松开指令;停止或报警时先抱闸再断开使能。
- 急停回路要硬件互锁,不要只依赖PLC程序。程序下载、在线修改、CPU死机时,PLC程序可能根本执行不到急停指令,硬件回路的可靠性是最后的保护。
- 正负限位信号建议做成常闭信号,线路断了按照限位触发的故障来处理,不要用常开信号,否则线缆一旦松动,设备会在无保护状态下运动。
结尾
调试完这台H5U带动EtherCAT伺服的设备后,我反复想了一个问题:为什么同样这套硬件,有的人半小时能转起来,有人却要折腾一天?差别往往在顺序和细节上。先把软件环境确认干净,再接线,再单测驱动器,最后才组态和写程序,每一步都留好验证节点,整个链条就顺了。
我自己的体会是,第一次接触EtherCAT时,最容易忽视的就是站号和使能信号,而且这两样东西在屏幕上看又不直观,遇到问题容易怀疑东怀疑西。后来我把这套检查顺序固定下来,每次新项目都照着跑一遍,故障率直线下降。这个方案后续还能继续扩展,比如加回原点、做电子凸轮、接视觉飞拍,底层的运动控制框架都是一样的。等你的第一个轴能稳稳转起来了,后面的事情其实都是举一反三。