ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

信捷XDH EtherCAT总线回原点:A_ZRN指令详解与实战避坑

信捷XDH EtherCAT总线回原点:A_ZRN指令详解与实战避坑 1. 信捷XDH EtherCAT总线回原点到底在解决什么问题1.1 从一台伺服找不准零点说起做过运动控制的朋友大概率都遇到过这种场景设备断电重启之后机械臂或者滑台的位置跟断电前对不上要么撞限位要么加工出来的第一个件直接报废。根子就在于伺服系统是增量式的驱动器自己不知道机械当前在哪它只知道“从当前位置往某个方向走多少脉冲”。所以每次上电必须有一个动作把机械拉到一个物理上确定的位置这个动作就是回原点。信捷XDH系列PLC走的是EtherCAT总线带的是信捷自家的DS5系列或者兼容CiA402协议的第三方伺服。回原点这件事在脉冲型控制里靠PLC发高速脉冲找原点开关加Z相信号就行但在EtherCAT总线控制里回原点的逻辑被下放到了伺服驱动器内部PLC通过总线发一条指令告诉驱动器“你去做回原点”驱动器自己完成找原点开关、找Z相、偏移定位这一整套动作完成后把状态位回传给PLC。A_ZRN就是信捷在XDH系列PLC里封装好的这条回原点指令。1.2 A_ZRN指令的定位和适用边界A_ZRN是信捷XDH系列PLC运动控制指令集中的一条专门用于EtherCAT总线轴的回原点控制。它跟脉冲轴用的ZRN指令在功能上是对标的但底层走的是EtherCAT的PDO/SDO通信不是高速脉冲输出口。这意味着你用A_ZRN的时候轴配置必须是EtherCAT总线轴不能是本地脉冲轴。这条指令能做的事包括触发指定轴执行回原点、指定回原点模式、设置回原点速度和加减速、监控回原点完成状态。它不能做的事也很明确不能替代轴使能不能替代伺服参数配置不能在没有配置好EtherCAT从站的情况下凭空工作。很多新手拿到指令就往梯形图里一放发现轴不动八成是前面轴使能没做、从站没连上、或者回原点模式选错了。1.3 谁需要认真搞懂这条指令如果你在做信捷XDH系列PLC加EtherCAT伺服的项目尤其是涉及多轴联动、断电重启后需要自动找零的设备A_ZRN是你绕不过去的一条指令。适合阅读的人群包括刚接触信捷EtherCAT总线的PLC编程人员、从脉冲控制转总线控制的工程师、做设备改造需要替换原有回原点方案的从业者以及自动化专业做毕业设计需要跑通总线轴控制的学生。前提是你对信捷PLC的基础编程、EtherCAT从站配置、伺服驱动器的基本参数有一定了解完全零基础的话建议先把XDH的EtherCAT配置流程走一遍再来看这条指令。2. 回原点模式选型与底层逻辑拆解2.1 CiA402协议下的回原点模式分类A_ZRN指令的回原点模式参数本质上对应的是CiA402协议里Homing Method的定义。CiA402把回原点方式分成了三十多种常用的就那么几种。信捷XDH的A_ZRN指令支持的模式跟DS5伺服驱动器的Homing Method是对应的你在指令里填的模式号最终会通过SDO下载到驱动器的0x6098对象字典里。常见的模式号含义如下模式号含义找原点开关方向找Z相方向适用场景1负向找原点开关再负向找Z相负向负向原点开关在负限位附近2正向找原点开关再正向找Z相正向正向原点开关在正限位附近3正向找原点开关再负向找Z相正向负向原点开关在正方向Z相在开关左侧4负向找原点开关再正向找Z相负向正向原点开关在负方向Z相在开关右侧17负向找原点开关不找Z相负向无对Z相精度要求不高18正向找原点开关不找Z相正向无同上35当前位置直接设为原点无无绝对式编码器或已知位置选哪个模式取决于你的机械结构。原点开关装在哪一侧、Z相在开关的哪一边、回原点时机械允许往哪个方向走这三个因素决定了模式号。选错了轻则回原点位置偏一个Z相周期重则直接往限位方向冲。2.2 为什么总线回原点比脉冲回原点更依赖参数配置脉冲控制的时候回原点的逻辑全在PLC里跑PLC发脉冲、读原点开关输入、读编码器Z相信号所有时序都是PLC在控制。总线控制就不一样了回原点的执行主体是伺服驱动器PLC只是发令方。驱动器要完成回原点它需要知道原点开关信号从哪个EtherCAT从站的哪个DI点进来、Z相信号怎么获取、回原点的高速和低速分别是多少、加减速时间是多少、找到原点后要不要偏移、偏移量是多少。这些信息全部要通过参数配置和SDO通信提前告诉驱动器。所以总线回原点的调试工作量很大一部分不在写梯形图而在配置参数。我见过不少人梯形图写得没问题但回原点就是完不成最后发现是原点开关的DI映射没配到驱动器的回原点功能上驱动器根本看不到原点开关信号。2.3 回原点速度参数的计算逻辑A_ZRN指令里要设两个速度高速搜索速度和低速搜索速度。高速用于快速接近原点开关低速用于找到开关后精确找Z相。这两个速度怎么定有个经验公式可以参考。高速搜索速度一般取电机额定转速的百分之六十到八十换算成指令里的单位。假设你的伺服电机额定转速是3000转每分钟丝杆导程是10毫米那么高速搜索速度对应的机械速度大约是3000乘以0.7除以60再乘以10等于350毫米每秒。低速搜索速度一般取高速的十分之一到五分之一也就是35到70毫米每秒。低速不能太快太快了Z相捕捉容易丢也不能太慢太慢了回原点时间太长影响节拍。加减速时间也要设。高速搜索的加减速时间可以短一点比如100到200毫秒低速搜索的加减速时间要长一点比如200到500毫秒避免低速时速度波动导致Z相捕捉不稳定。3. A_ZRN指令实操流程与关键环节3.1 前置条件检查清单在梯形图里放A_ZRN指令之前先把下面这些事确认一遍少一样回原点都跑不起来。EtherCAT从站配置完成伺服驱动器在信捷PLC的EtherCAT主站配置里已经扫描到并且状态是OP轴配置完成在PLC的轴参数里把对应的EtherCAT从站绑定为轴轴号跟A_ZRN指令里填的轴号一致伺服驱动器使能完成可以通过总线使能也可以用DI端子使能但必须确保驱动器处于使能状态原点开关信号已经接入伺服驱动器的DI点并且在驱动器参数里把该DI点功能配置为原点开关伺服驱动器的Homing Method参数已经设好或者确认A_ZRN指令会通过SDO覆盖这个参数回原点速度、加减速、偏移量等参数已经确定并且单位换算正确注意信捷XDH的EtherCAT主站配置里从站状态必须是OP才能进行PDO通信。如果从站一直停在PREOP检查ESI文件版本是否匹配、PDO映射是否正确。3.2 梯形图里的A_ZRN指令编写A_ZRN指令在信捷XDH的编程软件里是一条功能块指令需要填的参数包括轴号、回原点模式、高速、低速、加减速、偏移量、完成标志等。下面是一个典型的调用示例用梯形图的方式描述。假设轴号是1回原点模式选3高速设为50000低速设为5000加减速时间设为200毫秒偏移量设为0。指令的触发条件用上升沿避免一直触发。完成标志用一个M寄存器来接收回原点进行中用一个M寄存器来指示出错用一个M寄存器来报警。// 梯形图逻辑描述 // M100为回原点启动按钮上升沿触发 // M101为回原点完成标志 // M102为回原点进行中标志 // M103为回原点出错标志 |--[ M100上升沿 ]--[ A_ZRN 轴1 模式3 高速50000 低速5000 加减速200 偏移0 ]--| | | |--[ A_ZRN完成输出 ]----------------------------------------------------( M101 )--| |--[ A_ZRN进行中输出 ]--------------------------------------------------( M102 )--| |--[ A_ZRN出错输出 ]----------------------------------------------------( M103 )--|实际编程的时候A_ZRN指令的参数填写界面会要求你选择轴号、输入模式号、输入速度值、输入加减速值。速度值的单位取决于轴配置里的单位设置可能是脉冲每秒也可能是毫米每秒这个一定要跟轴参数里的电子齿轮比和单位换算对应上。3.3 回原点过程的时序与状态监控A_ZRN指令触发之后整个回原点过程分几个阶段。第一阶段是驱动器按照高速搜索速度往指定方向运动直到碰到原点开关。第二阶段是碰到原点开关后减速到低速然后反向或者继续同向找Z相信号。第三阶段是找到Z相后按照偏移量走到最终原点位置然后输出完成信号。PLC这边要监控的状态位包括回原点完成、回原点进行中、回原点出错。出错的原因可能是超时、碰到限位、驱动器报警、模式号不支持等。建议在程序里加一个超时定时器比如回原点启动后30秒还没完成就报警停机避免机械一直往一个方向冲。实操心得回原点过程中如果碰到限位开关驱动器一般会报错停止。但有些情况下驱动器会忽略限位继续走这跟驱动器的限位配置有关。调试阶段一定要把硬限位接好软件限位也要设双保险。3.4 偏移量的设置与机械原点对齐偏移量这个参数很容易被忽略但它决定了回原点完成后机械停在哪个位置。偏移量的单位跟轴的单位一致正值表示往正方向偏负值表示往负方向偏。举个例子你希望回原点完成后机械上的某个标记跟机架上的刻度线对齐但Z相位置跟这个标记差了2毫米那偏移量就设2毫米或者负2毫米取决于方向。偏移量的设置要在回原点调试阶段反复试。先设0回一次原点看机械停在哪量一下跟目标位置的偏差把这个偏差填到偏移量里再回一次原点验证。如果每次回原点的偏差都一致说明Z相捕捉稳定偏移量设一次就行。如果每次偏差都不一样那要检查Z相信号是否受到干扰、低速是否太快、加减速是否太猛。4. 常见问题排查与避坑经验实录4.1 回原点指令触发后轴不动这是最常见的问题原因排查看下面这个表。现象可能原因排查方法轴不动无报警轴未使能检查伺服使能状态确认PLC轴使能指令已执行轴不动无报警回原点模式号不支持查DS5手册确认该模式号是否支持轴不动有报警驱动器报警读驱动器错误码查手册轴不动有报警EtherCAT通信断开检查从站状态是否OP网线是否松动轴不动完成标志直接置位模式35当前位置设原点确认模式号是否误设为35轴往错误方向冲模式号方向选反更换模式号比如1换23换4轴不动但完成标志直接置位的情况多半是模式号设成了35这个模式不执行任何运动直接把当前位置设为原点。如果你要的是找原点开关再找Z相模式号不能设35。4.2 回原点位置每次都不一样回原点重复精度差问题一般出在Z相捕捉环节。可能的原因有低速搜索速度太快Z相脉冲宽度太窄驱动器来不及捕捉加减速太猛低速阶段速度波动大Z相信号受干扰比如编码器线屏蔽没做好原点开关信号抖动导致驱动器误判。解决办法先把低速搜索速度降下来降到高速的十分之一试试。如果还不行把加减速时间加长。再不行就检查编码器线和原点开关线的屏蔽和接地。信捷DS5伺服的Z相捕捉对低速有要求具体最低速度查手册不要低于手册推荐值。4.3 EtherCAT从站状态异常导致回原点失败EtherCAT从站如果不在OP状态PDO通信不工作A_ZRN指令发下去驱动器也收不到。从站状态异常的原因可能是ESI文件不匹配、PDO映射配置错误、从站地址冲突、网线质量差。信捷XDH的EtherCAT主站配置界面里可以看从站状态正常应该是OP如果是PREOP或者SAFEOP就要查配置。避坑经验信捷XDH的EtherCAT配置里从站的PDO映射如果改了一定要重新下载配置并且断电重启。有些参数改了不重启不生效这个坑我踩过好几次。4.4 回原点完成后机械位置有固定偏差如果每次回原点完成后机械位置都差同一个值那说明Z相捕捉是稳定的只是偏移量没设对。把偏差值填到偏移量参数里就行。如果偏差方向反了偏移量取反。如果偏差值超过了丝杆导程或者一个Z相周期那要检查电子齿轮比和单位换算是否正确。4.5 多轴回原点的顺序和互锁多轴设备回原点不能所有轴同时回尤其是轴之间有机械耦合或者共用同一个原点开关的时候。建议按顺序回原点或者至少保证回原点时各轴的运动范围不重叠。程序里加互锁一个轴回原点进行中其他轴不允许启动回原点。如果轴之间有同步要求回原点完成后还要做一次位置同步或者相位对齐。5. 从单轴到多轴A_ZRN在整机项目中的扩展应用5.1 多轴回原点的程序架构一台设备如果有五个EtherCAT轴回原点的程序不能简单复制五份A_ZRN指令。合理的做法是做一个回原点状态机每个轴一个状态按顺序或者按分组触发。状态机的好处是逻辑清晰哪个轴完成了、哪个轴出错了、当前在回哪个轴一目了然。状态机的大致流程上电后先做EtherCAT从站初始化然后轴使能然后进入回原点状态。回原点状态里按预设顺序依次触发各轴的A_ZRN指令每个轴完成后进入下一个轴所有轴完成后置回原点完成标志设备进入就绪状态。任何一个轴回原点出错整个状态机停在出错状态等待人工处理。5.2 回原点与绝对定位的衔接回原点完成后轴的当前位置就是机械原点之后的绝对定位指令都是基于这个原点来算的。所以回原点完成标志置位后才能允许绝对定位指令执行。程序里要做互锁回原点未完成时绝对定位指令不响应。另外回原点完成后建议把轴的当前位置清零或者设为原点坐标值这样后续的绝对定位坐标系统一。5.3 断电重启后的自动回原点策略设备断电重启后伺服是增量式的机械位置丢失必须重新回原点。自动回原点的策略要考虑安全上电后先检查各轴是否在安全位置如果不在先手动或者低速移动到安全区域再回原点。回原点方向要避开机械干涉区。如果设备有绝对式编码器可以不用每次回原点但首次调试还是要回一次把绝对式编码器的零点和机械原点对齐。实操心得我做的项目里回原点程序一定会加一个手动回原点按钮和一个自动回原点按钮。手动回原点用于调试和异常恢复自动回原点用于正常开机流程。手动回原点的时候允许单轴操作自动回原点的时候按顺序走。这样调试方便操作工也不会误操作。5.4 回原点参数的配方管理不同产品的机械原点位置可能不一样比如换了个夹具原点偏移量要改。这时候可以把回原点参数做成配方不同产品对应不同的偏移量和速度参数。信捷XDH的PLC支持配方功能把回原点相关参数放在配方寄存器里切换产品的时候调用对应配方就行不用改程序。6. 调试工具与监控手段6.1 信捷编程软件的轴监控功能信捷XDH的编程软件里有轴监控界面可以实时看轴的位置、速度、状态字、错误码。回原点调试的时候打开轴监控看状态字的变化能判断回原点进行到哪一步了。状态字的每一位对应CiA402的状态机状态比如“Operation Enabled”“Homing Attained”等。看不懂状态字的话查DS5手册的状态字定义。6.2 用示波器抓Z相和原点开关信号回原点重复精度差的时候光看软件监控不够要用示波器抓波形。把原点开关信号和Z相信号同时接到示波器上看回原点过程中这两个信号的时序关系。正常情况是碰到原点开关后驱动器减速到低速然后在低速状态下等Z相脉冲捕捉到第一个Z相后停止。如果Z相脉冲在低速下仍然很窄或者有毛刺就要查编码器信号质量。6.3 驱动器参数监控与SDO读取信捷DS5伺服驱动器的一些关键参数比如Homing Method、回原点速度、加减速、偏移量可以通过EtherCAT的SDO读取。在信捷PLC的程序里可以用SDO读取指令把这些参数读上来跟PLC里设的值对比确认参数是否真正下到了驱动器。有时候PLC里设了但驱动器没收到回原点行为就跟预期不一样。7. 几个容易忽略的细节和最后的小技巧A_ZRN指令的回原点模式号信捷DS5手册里列的支持模式跟CiA402标准模式号有细微差别以DS5手册为准不要直接套用标准CiA402的模式号表。我遇到过标准里模式号17是负向找开关不找Z相但DS5里模式号17的定义不一样的情况查手册确认最稳妥。回原点速度的单位跟轴配置里的单位设置有关。信捷XDH的轴配置里可以设脉冲、毫米、度等单位A_ZRN指令里的速度值单位跟着轴单位走。如果你轴单位设的是毫米速度值填的是50000那驱动器会以为你要跑50000毫米每秒直接飞车。这个单位换算一定要在调试前确认清楚先填一个很小的值试确认方向对了再加大。回原点完成后建议在程序里做一个“回原点完成锁存”即使后面回原点完成信号断了锁存标志仍然保持直到下一次回原点启动才复位。这样避免因为信号抖动导致后续定位指令误判。最后分享一个调试顺序先手动把机械摇到原点开关附近确认原点开关信号能正常通断然后手动触发一次回原点用很低的速度看机械运动方向对不对方向对了再逐步提高速度到正常值最后调偏移量把机械原点对齐到目标位置。这个顺序能最大程度避免撞机和飞车。
返回列表