ARTICLE DETAIL

资讯详情

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

TwinCAT3配合汇川SV660N EtherCAT伺服配置全流程实战指南

TwinCAT3配合汇川SV660N EtherCAT伺服配置全流程实战指南 前阵子做一个小型包装线的点位运动控制主站用的倍福TwinCAT3伺服驱动器选了汇川SV660N。这套搭配这几年在中小型设备里很常见TwinCAT3的EtherCAT主站能力不用多说SV660N支持EtherCAT、价格又比进口驱动便宜不少性能也够用。但说实话刚拿到驱动器和电机时我以为扫描一下装上就能使能结果从驱动器参数、XML描述文件到NC轴映射零零碎碎踩了不少坑。尤其是第一次在TwinCAT3里给SV660N下发使能电机纹丝不动最后发现居然是一个DI端子默认被分配给了SON外部又没有接信号导致总线控制字里怎么使能都不生效。这篇文章就把我这次配置SV660N的全流程包括驱动器侧参数、TwinCAT3工程搭建、NC轴配置、点动和绝对运动以及排查问题的思路完整写出来刚入门的同行可以照着一路做下来老手也能看看有没有漏过某些细节。1. 项目背景与硬件准备1.1 为什么选SV660N配TwinCAT3倍福TwinCAT3在运动控制领域非常能打不管是软PLC、NC轴还是CNC功能都集成在同一个环境里。但倍福自家伺服驱动器价格不便宜很多项目为了控制成本会选择第三方EtherCAT从站设备。汇川SV660N就是这类“平替”里非常有代表性的一款支持EtherCAT、Modbus RTU、脉冲等多种控制方式带绝对值编码器调试上位机软件也免费国内供货周期和现场技术支持都有优势。不过第三方设备接入TwinCAT3有个前提就是它的EtherCAT从站协议栈要可靠设备描述文件XML也要和固件版本匹配。SV660N在这一点上做得还不错只要版本对应扫描识别、DC同步、NC轴映射基本都能顺利跑通。这个组合尤其适合包装机械、锂电设备、3C自动化这类对点位精度和同步性要求中等偏上的场景成本比全套进口方案低不少调试效率也不差。1.2 硬件清单与接线注意点我这次调试用的硬件如下部件型号/说明主站倍福CX5140也可以使用普通工控机加Intel网卡跑TwinCAT3从站驱动器汇川SV660N具体型号要看功率和供电我这边是单相220V的1.5kW版本伺服电机汇川MS1H1系列23位绝对值编码器带抱闸通信线EtherCAT屏蔽网线超五类或以上电机动力线/编码器线汇川原厂线缆尤其是编码器线不建议自己压接接线时有几个点需要特别注意。动力线和编码器线绝对不能走同一个线槽否则电机启停瞬间的干扰会把编码器信号冲乱位置跳变之类的问题特别难查。EtherCAT网线要选屏蔽层质量好的成品线线径不能太细工业现场不是家里组网网线质量差会导致从站频繁掉线。另外SV660N上有STO端子如果你不用安全功能必须按手册要求把STO回路接好否则驱动器可能无法正常使能或会报故障。1.3 软件版本和安装环境软件方面需要准备三样东西TwinCAT3、汇川SV660N的XML设备描述文件、汇川的调试软件InoDriverShop。TwinCAT3版本我建议用3.1.4024.12以上太老的版本对某些EtherCAT从站对象的处理方式不一样。SV660N的XML文件从汇川官网下载注意要和驱动器固件版本匹配下载完先解压到本地后面在TwinCAT里安装。InoDriverShop主要用于驱动器参数备份、自学习、报警查看比在驱动器面板上一个一个按功能码方便得多。如果是用普通电脑装TwinCAT3还需要确认网卡是否兼容。我自己的经验是Intel网卡最省心比如82574L、I210系列TwinCAT的实时网卡驱动支持得比较好。Realtek网卡虽然也能扫描到但实时性差调试时容易出一些莫名其妙的同步问题。2. 驱动器侧参数配置2.1 先恢复出厂设置和参数备份拿到新驱动器我习惯先把参数备份一份再恢复出厂设置。这么做的好处是排除了前任调试员留下的奇怪设置同时也让自己对驱动器的初始状态心里有数。备份参数直接在InoDriverShop里操作连接方式用USB转调试口。备份完成后点恢复出厂设置恢复完一定要断电重启。有些型号恢复出厂后电机参数会变成默认值如果你用的是汇川自家电机重新上电后大多能自动识别如果是第三方电机后面就得手动灌参数。另外如果驱动器是旧设备上拆下来的或者换过电机建议在InoDriverShop里做一次在线自学习。SV660N支持负载惯量辨识和编码器初始角辨识尤其更换非原厂线缆或第三方电机时编码器相位不对会导致上电就报警或者低速运行正常、高速一加就过流。2.2 通信模式必须切成EtherCATSV660N面板上可以通过功能码修改通信方式通信参数基本都在H07组。不同固件版本的具体功能码编号略有差异我这边把“通信协议”设成了EtherCAT保存后重启驱动器才生效。这一步容易忽略的原因在于很多SV660N拿到手默认是脉冲模式或者Modbus模式如果你直接往EtherCAT上接TwinCAT扫描时能扫到设备但可能一直卡在Init状态或者进不了OP。所以上电前一定要确认已经是EtherCAT模式。如果条件允许可以顺便给从站设置一个站别名Station Alias。站别名不是必设项但设置之后有一个好处以后即使网线插错口或者换了一个驱动器只要站别名一致TwinCAT里的配置就不会乱掉。这个习惯在设备维护阶段特别有用。2.3 电机参数和绝对值编码器处理SV660N配汇川MS1H1系列电机时电机参数一般不用手动录驱动器会读取电机上的电子铭牌信息。但如果是第三方电机就需要手动把额定电流、额定转速、极对数、编码器类型等填进去再按手册做编码器相位学习。这里单独说一下绝对值编码器。SV660N的绝对值编码器在第一次使用、电池断电、或者更换驱动器之后需要做一次多圈数据清零。如果不做驱动器可能报编码器故障或者位置数据异常。在InoDriverShop里有“绝对值编码器清零”功能操作前先把机械位置停在真正的原点处清完以后当前点就是零位。如果你用的是增量编码器版本就不需要处理这些相对简单一点但断电后原点必须靠外部回零开关来找。2.4 伺服使能输入和STO是最大的坑这是我这次调试踩得最狠的一个坑。SV660N的DI1端子默认功能是SON也就是伺服使能输入。在端子控制模式下外部必须给这个端子一个有效信号电机才能被使能。但我们现在是用EtherCAT总线控制按常规理解只要主站通过0x6040控制字把电机切到Operation Enabled状态就可以了。实际情况是如果你不处理DI1的SON功能SV660N还是会把“硬件使能”和“总线使能”两个条件同时判断外部没有给信号总线怎么下发都没用电机就是不动。解决办法是把DI1的功能改成“未使用”或者改成“总线控制使能”。具体改哪个功能码不同固件会有一点区别但基本都在H06组输入输出参数里。我用InoDriverShop改完之后总线下发使能电机立刻锁轴问题消失。另外STO也要检查。SV660N如果带STO功能STO1和STO2没有按要求短接驱动器也可能报故障或者不让使能。这个在接线时就要确认好不要等到软件里调了半天才发现是硬件端子的问题。3. TwinCAT3侧从站接入与调试3.1 安装SV660N的XML设备描述文件TwinCAT3要识别SV660N默认自带设备库里是没有的需要手动安装汇川提供的XML描述文件。打开TwinCAT3后先不要急着扫描。在I/O节点下右键添加一个EtherCAT主站设备添加完成后双击这个设备在属性页里找到“Advanced”选项卡里面有一个“Catalog”功能选择安装设备描述文件然后选中你从汇川官网下载的SV660N XML文件。装完以后工具箱或设备列表里就能看到SV660N对应的设备型号。XML版本和固件版本不匹配时常见表现是扫描出来显示Unknown Device或者能识别但某些CoE对象读不到。所以下载XML时最好对应驱动器固件版本下载最稳妥的方式是下载汇川最新的固件包里面一般会带匹配的XML文件。3.2 添加EtherCAT主站并扫描从站我用的是倍福CX5140自带EtherCAT口比较省事。如果你用的是普通工控机先要在TwinCAT的环境里把物理网卡驱动切换成实时网卡驱动。操作路径是在TwinCAT系统托盘图标上右键选“Router”或者“System Manager”进入“EtherCAT兼容设备”列表找到你的Intel网卡安装驱动。装完以后网卡后面会带上“TwinCAT”标志这时才能作为EtherCAT主站使用。然后在TwinCAT项目里添加EtherCAT Master设备选中对应的网卡。接着右键EtherCAT Master选择“Scan Devices”系统会扫描总线上所有从站。如果看到“Box 1 (SV660N)”那就是识别成功了。如果显示Unknown按第一小节的办法检查XML。扫描完成后TwinCAT会自动把SV660N放到I/O配置里。此时从站可能还在PreOp状态需要点击“激活配置”把整个项目运行起来从站才会进入SafeOp再到Op状态。3.3 检查PDO映射和状态机EtherCAT从站有四个状态Init、PreOp、SafeOp、Op。TwinCAT会按照配置自动让从站状态流转但如果PDO映射有问题从站会卡在SafeOp或者直接报错。在SV660N从站设备上双击可以看到“Process Data”页面里面会显示当前PDO映射。我这次用的是NC轴控制所以最关键的是把下面这些对象映射进PDO里0x6040 控制字 Controlword0x6041 状态字 Statusword0x6060 运行模式 Mode of operation0x6064 实际位置 Position actual value0x607A 目标位置 Target position0x606C 实际速度 Velocity actual value0x60FF 目标速度 Target velocity如果做速度控制需要SV660N不同固件版本的默认PDO内容会不一样有的默认没有0x6060运行模式对象这样会导致后面NC轴无法把工作模式切到CSP运行时会报错。所以建议手动检查一遍PDO列表缺什么就补什么。3.4 修改PDO映射的注意事项如果发现默认PDO缺对象可以在从站设备上修改SM配置和PDO配置。操作并不复杂但有几个坑必须提醒。第一修改PDO映射后一定要重新激活配置或者重新扫描设备否则主站和从站实际使用的映射表不一致会导致数据错乱。第二PDO里不是对象越多越好每个对象都会占用总线带宽映射太多东西会影响刷新率。第三修改前先截图保存原配置如果改错了还能快速恢复。我这次最后只映射了七个对象够用就行。对于普通的点位运动控制没必要把所有电机参数都塞进PDO需要时通过CoE在线读写就行。4. NC轴配置与点动运行4.1 创建NC轴并关联物理通道从站识别好以后接下来要把SV660N和TwinCAT的NC轴关联起来。在TwinCAT项目树的Motion节点下右键添加New Item选择“NC Axis”命名一个轴比如Axis1。双击Axis1打开属性页面在“Settings”选项卡里有一个“Linked To”按钮点击后选择SV660N从站对应的通道。如果SV660N在I/O配置里已经识别出位置通道和速度通道这里会列出来选主通道就行。关联完成后TwinCAT的NC轴就掌握了SV660N的实际位置反馈和控制输出。此时需要在轴属性里勾选“Create PLC Axis Reference”生成一个可以在PLC程序里调用的轴引用。这样后面用MC_Power、MC_MoveAbsolute这些功能块时直接对Axis1操作就可以了。4.2 单位换算和编码器分辨率NC轴创建后则必须把用户单位设置好。这一步直接关系到后续你写程序时给的位置值到底是毫米还是脉冲数。我这次项目里电机通过联轴器直连丝杠丝杠导程10mm电机编码器是23位也就是说电机每转一圈编码器反馈是2的23次方也就是8388608个计数。由于没有减速机电机转一圈丝杠走10mm。TwinCAT轴属性里有“Scaling”页面把编码器分辨率设为8388608把位置分辨率设为10mm。TwinCAT会自动算出一个换算因子这样你在PLC里写Position100.0时实际含义就是让轴走到100mm。如果你的项目里有减速机那就还需要把减速比填进去。比如电机和丝杠之间有5:1减速器电机转5圈丝杠才转1圈这时候位置分辨率还是10mm但编码器计数每转不变TwinCAT会自动根据减速比折算。单位体系一定要在调试前统一。要是项目里既有毫米又有角度角度轴一般用度速度单位用度/秒这些都可以在Scaling页面里配置。我习惯先把单位设好再写运动控制程序否则后期改单位会连带着改一堆PLC程序非常难受。4.3 使能轴与点动测试激活配置后项目进入Run模式。此时在TwinCAT的“NC Axis”Online页面可以看到轴的实际状态。先执行“Set Position”把当前位置清零然后勾选“Enable”让轴使能。如果前面DI和STO已经处理好了使能后SV660N面板会显示Run状态电机会锁轴。这时可以用Online页面里的点动箭头让电机以非常低的速度转动我习惯先把速度调到5mm/s到10mm/s确认电机方向是对的再逐步提速。如果发现电机方向反了不要在驱动器里随便换相序也不要在PLC里把目标值取反正确做法是在TwinCAT轴属性里勾选“Direction Reversed”或者在驱动器端通过电子齿轮方向参数把方向取反。改完方向后重新点动验证确认反馈位置和实际位置方向一致。4.4 用PLC程序实现绝对运动点动没问题后就可以写一个简单PLC程序用MC功能块做绝对定位。在PLC工程中添加Tc2_MC2或者Tc3_Motion库然后编写如下代码PROGRAM MAIN VAR bAxisEnable : BOOL : TRUE; bMoveAbs : BOOL : FALSE; fTargetPos : LREAL : 100.0; // 目标位置单位mm fSpeed : LREAL : 50.0; // 运行速度单位mm/s fbPower : MC_Power; fbMove : MC_MoveAbsolute; Axis : AXIS_REF : Axis1; END_VAR程序部分// 轴使能保持Enable持续为TRUE fbPower.Enable : bAxisEnable; fbPower.Axis : Axis; fbPower.Execute : TRUE; fbPower(); // 触发绝对定位 IF bMoveAbs THEN fbMove.Axis : Axis; fbMove.Position : fTargetPos; fbMove.Velocity : fSpeed; fbMove.Acceleration : 500.0; // mm/s2 fbMove.Deceleration : 500.0; // mm/s2 fbMove.Jerk : 0; fbMove.Execute : TRUE; bMoveAbs : FALSE; END_IF fbMove();这里要说明一下使用NC轴时伺服使能不建议直接去写0x6040控制字。MC_Power功能块会帮你做完整的驱动状态机切换从Switch On Disabled到Operation Enabled中间还包含急停、复位等逻辑。直接操作控制字容易漏状态出现问题也不好查。执行绝对定位之前必须确保轴已经建立好原点坐标。第一次调试时我通常用“Define Position”手动把当前位置设成机械原点但正式设备上必须有明确回零逻辑否则换电重启后位置就乱了。5. 常见报警与排查实录5.1 扫描不到设备或设备显示UnknownTwinCAT扫描EtherCAT总线时扫不到SV660N第一步先查物理层网线有没有插好、驱动器有没有上电、EtherCAT状态灯是否正常。如果物理层没问题再查驱动器的通信模式是否切到了EtherCAT。我遇到过客户发来的设备驱动器一直停在脉冲模式扫描时设备名会出现但状态异常切换到EtherCAT模式后一切正常。如果扫描出来显示Unknown Device那几乎可以确定是XML设备描述文件没有安装或者版本与固件不匹配。这时需要重新安装对应版本的XML文件然后重新扫描。5.2 从站进不了OP或频繁报通讯超时从站能识别但一直进不了Op我遇到最多的情况有两种。第一种是PDO映射有误导致从站拒绝进入SafeOp或Op这时看EtherCAT状态码再回去核对PDO配置。第二种是DC分布式时钟同步问题出现这种情况时可以尝试把从站同步模式改为SM同步或者在从站属性里取消“DC”相关选项看是否恢复正常。另外一个容易被忽略的原因是主站任务周期太快。SV660N支持的同步最小周期和主站设的周期不匹配时容易报通讯超时。我通常把NC任务周期设为1ms或2ms如果从站在1ms下不稳可以先降到2ms看看现象。通讯超时还和网线质量直接相关那种用手一捏就变形的网线在工业现场迟早出问题。5.3 使能报错或电机不转使能时SV660N面板报故障代码先查故障代码表。最常碰到的几类编码器故障、过流、过载、通讯超时。如果没有任何报警但电机还是不动就要按我前面说的排查顺序来先看SON端子是否被占再看STO是否正常然后查急停回路。还有一个低级但常见的错误就是驱动器使能了但扭矩限制参数被设成了0电机等于一直处在零扭矩状态你从NC轴下发位置指令PDO里的目标位置和实际位置都在变但电机就是不出力。把扭矩限制参数恢复默认后问题就消失了。5.4 运行过程中位置跳变运行中位置偶尔跳变一下往往和编码器干扰有关。检查编码器线是否用了原厂屏蔽线屏蔽层有没有单端接地。同时确认动力线和编码器线没有走同一个线槽如果空间受限必须交叉也要采用垂直交叉的方式不要平行贴着走。还有一个容易忽略的是驱动器接地。SV660N的PE端子一定要接到电柜的接地排上如果接地不良高频干扰会通过编码器线进入位置反馈导致实际位置偶尔跳几个脉动。位置跳变这种问题不好复现排查时要有耐心最好用示波器在驱动器脉冲输入端或EtherCAT诊断计数器里抓异常信号。5.5 参数保存与断电保持在InoDriverShop或者驱动器面板里改完参数后一定要记得保存到EEPROM。我一开始只改了RAM里的参数断电重启后全部打回原形白忙活了半天。保存操作在InoDriverShop里很简单点参数保存就行。但要注意有些EtherCAT专用的对象比如PDO映射、站别名可能不是通过驱动器上电保存来生效的而是需要主站运行时下发进去。所以为了保险我会把关键参数全部整理成表格存档换驱动器时按照表格重新灌一遍。这样即使TwinCAT项目重装也能在最短时间内恢复到可用状态。6. 最后再分享几个习惯调试这种第三方EtherCAT伺服我一般不会一次性把所有配置都调完。每做一步就截图留底因为现场改来改去很容易忘了某个参数是什么时候改的。驱动器的参数文件更是必存改之前备份一次调完之后再导出一次等哪天真遇到驱动器故障新设备装上参数一灌XML一装十几分钟就能恢复生产。SV660N这款驱动器整体用下来EtherCAT通信和定位精度在中小型设备上完全够用。只要把DI端子里的SON、STO回路、PDO映射这三件事提前处理好后面的调试会比较顺。希望这篇全流程记录能帮准备用TwinCAT3配汇川伺服的朋友少走一些弯路。
返回列表