ARTICLE DETAIL

资讯详情

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

汇川H5U PLC EtherCAT总线轴组态与伺服位置速度控制实战

汇川H5U PLC EtherCAT总线轴组态与伺服位置速度控制实战 1. 汇川H5U与EtherCAT总线的组合到底解决了什么问题第一次接触汇川H5U这台PLC的人多半是被它那个支持EtherCAT总线的标签吸引过来的。我当初也是。传统脉冲控制伺服电机的方式接线多、响应慢、扩展麻烦一台设备上挂七八个轴光是脉冲线和方向线的接线就能让人崩溃更别提调试时还要一个个对脉冲当量、算电子齿轮比。而H5U通过EtherCAT总线挂伺服一根网线串起所有从站接线量直接砍掉一大半轴与轴之间的同步精度也从毫秒级提升到了微秒级。但问题也随之而来很多人拿到H5U和汇川伺服之后打开AutoShop软件面对总线轴组态这个功能完全不知道从哪里下手。手册上写的都是功能说明真正实操时该先配什么、后配什么、哪些参数必须改、哪些坑必须避没人告诉你。我自己第一次配的时候因为ESI文件版本不对折腾了整整一个下午才让伺服使能上。这篇内容就是把我自己在汇川H5U上用AutoShop组态EtherCAT总线轴、实现伺服电机位置控制和速度控制的完整过程拆开来讲。从硬件接线、ESI文件导入、PDO映射配置到功能块调用、参数设置、实际调试中遇到的报错和处理方法全部覆盖。不管你是刚接触EtherCAT的新手还是从脉冲控制转过来的老手都能从中找到可以直接用的操作步骤和避坑经验。核心关键词EtherCAT、汇川H5U PLC、AutoShop、伺服电机、位置与速度控制。这几个词贯穿全文每一个都会落到具体的操作和参数上不讲空话。2. 动手之前的硬件与软件环境确认2.1 H5U的EtherCAT口和伺服从站的物理连接汇川H5U本体上有一个RJ45的EtherCAT通信口通常标着ECAT或者EtherCAT字样别跟以太网口搞混了。H5U系列有些型号只有一个网口那个就是EtherCAT口既做编程通信又做总线通信有些型号有两个口一个是Ethernet用于编程和Modbus TCP另一个是EtherCAT专用于总线。拿到手第一件事就是确认你的型号到底有几个口哪个口是干什么的。接线逻辑很简单H5U的EtherCAT口出来网线接到第一个伺服驱动器的EtherCAT IN口再从第一个驱动器的EtherCAT OUT口接到第二个驱动器的IN口依次串联。最后一个驱动器的OUT口空着就行不需要接回PLCEtherCAT不要求环形拓扑线形拓扑完全够用。注意网线必须用标准RJ45以太网线但建议用带屏蔽层的工业级网线尤其是伺服电机功率较大的场合电磁干扰会直接影响总线通信的稳定性。我遇到过因为用了普通办公网线导致总线偶发丢帧的情况换了屏蔽线之后问题消失。伺服驱动器这边以汇川SV660N系列为例它原生支持EtherCAT协议驱动器上电后EtherCAT IN口旁边的RUN灯会闪烁表示从站已经准备好等待主站连接。如果灯不亮先检查供电再检查网线是否插紧。2.2 AutoShop软件版本与ESI文件的重要性AutoShop是汇川自家的PLC编程软件支持H5U、H3U等系列。EtherCAT组态功能在AutoShop的总线配置或者EtherCAT配置模块里。这里有一个非常关键的细节AutoShop的版本必须和H5U的固件版本匹配否则可能出现组态界面打不开或者配置下载后不生效的问题。我建议直接用AutoShop V3.5以上的版本对EtherCAT的支持比较完善。安装好AutoShop之后还需要导入伺服驱动器的ESI文件EtherCAT Slave Information。ESI文件是XML格式的描述了从站设备支持的所有对象字典、PDO映射、同步管理器配置等信息。没有正确的ESI文件AutoShop就识别不了伺服驱动器总线配置里根本看不到从站设备。汇川伺服的ESI文件可以从汇川官网下载也可以从AutoShop的安装目录里找。通常路径在AutoShop安装目录\EtherCAT\ESI下面会有一个汇川伺服对应的XML文件。如果你用的是SV660N就找SV660N对应的ESI如果是IS620N就找IS620N的。版本号也要对不同固件版本的伺服ESI文件可能有差异。提示ESI文件导入后如果AutoShop里还是看不到设备试试重启AutoShop。有时候软件缓存了旧的设备列表重启之后才会刷新。另外ESI文件的存放路径不要有中文否则AutoShop可能读取失败。2.3 伺服驱动器的站号与基本参数设置在EtherCAT网络中从站的寻址不依赖拨码开关的站号而是靠拓扑位置自动分配。但伺服驱动器本身有一些参数需要在面板上或者通过调试软件提前设好否则总线配置对了电机也不转。以SV660N为例需要确认的参数包括电机代码跟实际接的伺服电机型号匹配、编码器类型、控制模式。控制模式这个参数很关键EtherCAT通信下伺服的控制模式由主站通过PDO配置决定但驱动器本地参数里有一个默认控制模式如果跟主站下发的模式冲突可能会报错。我一般把本地控制模式设为EtherCAT控制模式或者总线控制模式具体参数号参考对应型号的手册。另外驱动器的过载保护、限流值这些安全参数也要提前设好尤其是第一次调试的时候限流值设小一点防止参数配错导致电机飞车或者堵转烧毁。3. AutoShop中EtherCAT总线轴的组态流程3.1 新建工程与EtherCAT主站配置打开AutoShop新建一个H5U的工程选择正确的PLC型号。工程建好之后在左侧的项目树里找到EtherCAT配置或者总线配置这一项双击打开组态界面。首先配置主站参数。H5U作为EtherCAT主站需要设置扫描周期、分布式时钟模式等。扫描周期一般默认就行H5U的EtherCAT任务周期通常是1ms或者2ms对于大多数伺服控制场景够用了。分布式时钟DC模式建议开启这样各个从站的时钟能跟主站同步多轴联动的时候同步精度更高。主站配置里还有一个自动扫描功能点击之后AutoShop会通过EtherCAT总线扫描当前连接的所有从站设备。如果ESI文件正确、硬件连接没问题扫描结果里就能看到伺服驱动器的型号和站地址。扫描不到的话回头检查网线、供电和ESI文件。3.2 添加伺服从站与PDO映射配置扫描到从站之后把它添加到组态列表里。接下来是最核心的一步PDO映射配置。PDOProcess Data Object是EtherCAT通信中周期性传输的数据单元主站和从站之间交换的控制字、状态字、目标位置、实际位置、目标速度、实际速度这些数据都是通过PDO来传输的。AutoShop里一般会提供默认的PDO映射但默认映射不一定满足你的需求。比如默认可能只映射了控制字和状态字没有映射目标位置和实际位置那你就没法做位置控制。所以需要手动编辑PDO映射把需要的对象添加进去。以位置控制为例通常需要映射的PDO对象包括PDO方向对象名称索引说明RxPDO主站到从站Controlword0x6040控制字控制伺服使能、启动、停止RxPDOTarget Position0x607A目标位置单位由对象0x6091决定RxPDOTarget Velocity0x60FF目标速度用于速度模式RxPDOModes of Operation0x6060运行模式选择TxPDO从站到主站Statusword0x6041状态字反馈伺服当前状态TxPDOActual Position0x6064实际位置反馈TxPDOActual Velocity0x606C实际速度反馈TxPDOModes of Operation Display0x6061当前运行模式反馈配置PDO映射的时候要注意RxPDO和TxPDO的长度不能超过从站支持的最大PDO长度否则组态会报错。汇川伺服一般支持较大的PDO长度但也没必要把所有对象都映射进去只映射你用得到的就行减少总线负载。注意PDO映射修改之后一定要重新下载组态到PLC并且断电重启一次让新的映射生效。我遇到过改了PDO但没重启结果数据对不上的情况排查了半天才发现是没重启。3.3 轴参数配置与电子齿轮比计算PDO映射配好之后还需要在AutoShop里配置轴参数。H5U的EtherCAT轴在软件里表现为一个轴对象需要设置脉冲当量、软限位、最大速度等参数。电子齿轮比是这里最容易搞混的地方。EtherCAT位置控制模式下主站下发的目标位置单位是用户单位需要通过电子齿轮比换算成电机编码器单位。汇川伺服的电子齿轮比由对象0x6091齿轮比和0x6092进给常数决定。简单来说如果你希望目标位置直接以脉冲为单位那电子齿轮比设为1:1目标位置写多少电机就走多少个编码器单位。如果你希望目标位置以毫米或者度为单位就需要根据机械结构算出减速比、丝杠导程等再设置对应的齿轮比。举个例子丝杠导程10mm电机编码器分辨率23位8388608个脉冲/转你希望目标位置以0.001mm为单位。那么电机转一圈机械移动10mm对应10000个用户单位。电子齿轮比 编码器分辨率 / 用户单位每转 8388608 / 10000 ≈ 838.8608。这个值需要设置为分数形式分子和分母都是整数取近似值即可。这个计算过程在AutoShop的轴配置界面里通常有辅助工具输入丝杠导程、减速比、编码器分辨率软件会自动算出齿轮比。但你要理解背后的逻辑不然出了问题不知道怎么排查。4. 位置控制与速度控制的程序实现4.1 用功能块实现伺服使能与位置定位AutoShop支持IEC 61131-3标准的功能块编程对于EtherCAT轴控制汇川提供了专门的轴控制功能块库。常用的功能块包括MC_Power伺服使能/断使能MC_MoveAbsolute绝对位置定位MC_MoveRelative相对位置定位MC_MoveVelocity速度控制MC_Stop停止MC_Reset故障复位MC_ReadActualPosition读取实际位置MC_ReadActualVelocity读取实际速度这些功能块的用法跟其他品牌的PLC类似但参数细节上有汇川自己的特点。以MC_Power为例它的输入包括Axis轴对象引用、Enable使能信号、EnablePositive和EnableNegative正负方向使能。输出有Status使能状态、Error错误、ErrorID错误码。程序里先调用MC_Power把Enable置TRUE等Status变为TRUE之后伺服就使能了。然后调用MC_MoveAbsolute输入目标位置、速度、加减速等参数触发Execute上升沿轴就开始运动。运动完成后Done输出变为TRUE。提示Execute信号必须是上升沿触发如果一直保持TRUE功能块只会执行一次不会重复触发。这个跟三菱或者西门子的功能块逻辑类似但新手容易在这里卡住。4.2 速度模式下的参数设置与切换逻辑速度控制和位置控制的核心区别在于运行模式的选择。通过对象0x6060Modes of Operation来切换值设为8周期同步位置模式CSP用于位置控制值设为9周期同步速度模式CSV用于速度控制值设为10周期同步转矩模式CST用于转矩控制在AutoShop里可以通过写SDO或者通过PDO映射的Modes of Operation对象来切换模式。建议把Modes of Operation映射到RxPDO里这样每个通信周期都能动态切换模式灵活性更高。速度控制用MC_MoveVelocity功能块输入目标速度、加减速、方向等参数。速度单位是用户单位/秒同样受电子齿轮比影响。速度模式下电机持续旋转直到收到停止命令或者切换到其他模式。实际项目中位置和速度模式经常需要切换。比如设备快进的时候用速度模式到位的时候切换到位置模式做精确定位。切换的时候要注意先让轴停止再切换模式否则可能报错。切换完成后需要重新使能或者复位一下功能块状态。4.3 状态字与错误码的实时监控调试阶段监控伺服的状态字和错误码非常重要。状态字0x6041的每一位都有含义比如bit0表示准备好使能bit1表示使能成功bit2表示运行中bit3表示故障等。通过监控状态字可以判断伺服当前处于什么状态为什么不动。AutoShop的在线监控功能可以实时查看PDO数据把状态字、实际位置、实际速度这些变量添加到监控表里调试的时候一目了然。如果伺服报错错误码会出现在状态字的高字节或者通过SDO读取0x603FError Code对象获取。常见的错误码和处理方法错误码含义处理方法0x2310过流检查电机接线、降低加减速0x3210过压检查母线电压、加制动电阻0x8611位置超差检查电子齿轮比、降低速度0x6320参数错误检查PDO映射和轴参数这些错误码在汇川伺服手册里都有详细说明调试的时候手边备一份手册遇到报错先查手册再动手。5. 调试过程中最容易踩的五个坑5.1 ESI文件版本不匹配导致从站识别失败这个坑我踩过不止一次。AutoShop里导入的ESI文件版本跟伺服驱动器的固件版本不一致时扫描从站可能会失败或者扫描到了但PDO映射配置报错。表现是总线配置界面里从站显示为未知设备或者PDO列表是空的。解决办法确认伺服驱动器的固件版本号在驱动器面板上可以查看然后去汇川官网下载对应版本的ESI文件。如果找不到完全匹配的试试相近版本但要做好可能有些对象不支持的心理准备。5.2 PDO映射长度超限导致组态下载失败AutoShop在下载组态到PLC的时候会校验PDO映射的总长度是否超过从站支持的最大值。如果超了下载会失败报PDO配置错误之类的提示。汇川伺服一般支持最大32字节的PDO但如果你映射了太多对象很容易超。解决办法只映射必要的对象。位置控制只需要控制字、目标位置、模式、状态字、实际位置这几个速度控制再加一个目标速度和实际速度。不需要的对象全部删掉。5.3 电子齿轮比算错导致定位偏差电子齿轮比算错的表现是电机走的位置跟目标位置对不上要么走多了要么走少了而且偏差是成比例的。比如目标走100mm实际走了50mm那说明齿轮比差了一倍。排查方法先让电机走一个已知距离比如目标位置设为10000个用户单位看电机实际转了多少圈反推齿轮比是否正确。AutoShop的轴配置界面里有齿轮比计算工具输入机械参数后自动算比自己手算靠谱。5.4 分布式时钟未开启导致多轴同步偏差单轴控制的时候分布式时钟开不开差别不大。但多轴联动的时候如果DC没开各轴的时钟不同步插补运动会出现明显的轨迹偏差。表现是两轴走直线插补实际轨迹是弯的。解决办法在主站配置里开启分布式时钟并且确保所有从站都支持DC。汇川SV660N是支持DC的开启之后同步精度能到纳秒级。5.5 功能块Execute信号未复位导致重复触发这个坑属于编程习惯问题。MC_MoveAbsolute的Execute信号如果一直保持TRUE功能块只会在第一次上升沿执行后续不会重复触发。但如果你在程序里用了一个自锁电路让Execute一直为TRUE然后改了目标位置想让它再走一次它不会动。解决办法每次触发运动之前先把Execute置FALSE等一个扫描周期再置TRUE。或者用上升沿检测指令如R_TRIG来触发Execute确保每次都是干净的上升沿。6. 从单轴到多轴EtherCAT总线的扩展思路单轴跑通之后扩展多轴其实很简单。EtherCAT总线本身就是为多轴同步设计的线形拓扑下每增加一个从站只需要在组态里多添加一个设备多配置一套PDO映射和轴参数就行。H5U支持的最大从站数量取决于具体型号一般H5U可以挂16到32个EtherCAT从站对于大多数中小型设备够用了。多轴配置的时候有几点需要注意第一总线负载。每个从站的PDO数据都会占用总线带宽从站越多每个通信周期需要传输的数据量越大。如果扫描周期是1ms挂了16个轴每个轴映射了16字节的PDO那总数据量就是16×16×2512字节/ms对于100Mbps的EtherCAT来说完全没问题但如果你把扫描周期设到250μs就要算一下带宽够不够了。第二同步性。多轴联动的时候所有轴的DC必须开启并且主站的分布式时钟要作为参考时钟。AutoShop里可以设置主站为DC参考时钟从站自动同步。第三轴间逻辑。多轴设备通常需要轴间协调比如一个轴到位之后另一个轴才能动。这种逻辑用功能块的Done信号做连锁就行但要注意扫描周期的影响Done信号在每个通信周期更新连锁逻辑的响应时间跟扫描周期相关。第四故障处理。任何一个轴报错整个设备可能需要停机。程序里要做故障汇总把所有轴的错误信号OR起来触发全局停止。同时每个轴单独做故障复位避免一个轴的问题影响其他轴。从实际项目经验来看H5U加EtherCAT伺服的方案在包装机械、电子组装设备、小型数控机床这些领域用得很多。相比传统的脉冲控制接线简单、调试方便、扩展灵活尤其是多轴同步的场合优势非常明显。但前提是你要把组态和参数配置这一关过了不然再好的硬件也发挥不出效果。我在实际使用中的体会是第一次配置的时候一定要耐心按照硬件接线→ESI导入→主站配置→从站添加→PDO映射→轴参数→功能块编程→在线调试这个顺序一步步来每一步确认无误再往下走。遇到报错先看错误码再查手册最后上网搜。大部分问题都是配置细节上的疏忽硬件本身很少出问题。
返回列表