
基恩士plcEtherCAT三十一轴控制案例程序包含plc程序/人机界面/BOM表凌晨三点半的自动化车间里三十一台伺服电机正以0.01mm的精度同步运行。这可不是科幻电影场景是基恩士KV-8000PLC配合EtherCAT总线干出来的真活儿。今天就带大家扒开这个三十一轴控制项目的裤衩看看里面的程序到底怎么玩转的。先看PLC程序里的硬核操作// EtherCAT主站初始化 EtherCAT_Master_Init( CycleTime : 2, // 2ms通讯周期 RetryCount : 3, // 自动重试3次 Timeout : 1000 // 超时1秒报警 ); // 轴参数配置简写版 FOR i:1 TO 31 DO AxisConfig[i].MaxVelocity : 3000; // 最大转速3000rpm AxisConfig[i].HomeOffset : 0.5; // 原点偏移补偿 AxisConfig[i].JerkLimit : 100000; // 加加速度限制 END_FOR这段代码里藏着两个魔鬼细节2ms通讯周期不是拍脑袋定的实测超过3ms后第27号轴开始出现位置抖动JerkLimit参数设置成10万可不是我手抖多敲了零基恩士的动力学算法需要这个量级才能抑制机械振动。运动控制部分有个骚操作// 多轴同步启动 SYNC_MOVE( AxisGroup : 1, TargetPos : PositionsArray, Velocity : 2500, Acceleration : 5000, Blending : 0.2 // 拐角过渡20%重叠 );这个Blending参数才是灵魂所在做过贴标机的老哥都懂——不设重叠过渡的话三十一轴同时拐弯能给你扭出机械舞的效果。实测0.2的数值能让转角处的速度损失控制在3%以内。基恩士plcEtherCAT三十一轴控制案例程序包含plc程序/人机界面/BOM表人机界面搞了个三维虚拟映射关键代码长这样// HMI动态显示 IF Axis[1].ActualPosition SafetyZone THEN HMI_Object.Color : RGB(255,0,0); // 超限变红 HMI_Object.Blink : TRUE; // 开启闪烁 ELSE HMI_Object.Alpha : MapRange(Axis[1].Torque, 0, 100, 0.3, 1.0); // 透明度映射扭矩 END_IF这里用透明度表示扭矩大小算是个小创新调试时发现比传统进度条更直观。不过要注意Alpha值别低于0.3否则车间老师傅要骂街说看不清。BOM表里最容易被忽视的是这个部件型号数量备注终端电阻ECAT-TERM-120Ω2必须安装在总线两端屏蔽夹SHIELD-CLAMP-G245每30cm线缆配一个别笑三十一轴EtherCAT总线跑起来终端电阻没装好分分钟给你整出信号反射。上个月有个项目组省了两个屏蔽夹结果每逢阴雨天就丢轴后来在配电柜里发现老鼠把线缆当磨牙棒了...最后说个血泪教训调试时务必先开EnableAll禁用输出有次半夜改完参数直接运行三十一台电机同时暴走的声音让我体验了什么叫工业朋克版《釜山行》。现在工控服口袋里还装着被扯掉的第三颗纽扣当作护身符供着。