ARTICLE DETAIL

资讯详情

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

欧姆龙电子凸轮实战:从轮廓表建立到MC_CamIn调试与相位偏差排查

欧姆龙电子凸轮实战:从轮廓表建立到MC_CamIn调试与相位偏差排查 简介这份欧姆龙电子凸轮培训资料面向自动化工程师、PLC编程人员及设备调试技术人员聚焦NJ系列控制器中电子凸轮的应用与实战。内容围绕基本概念、指令讲解、飞切凸轮计算方法、切刀纠偏方法及高端应用展开帮助读者理解如何用编程替代传统机械凸轮实现无间隙、高精度的运动控制并掌握飞切追剪中的速度同步、动态补偿与预判计算思路。资源包为1个docx文档大小约3.92MB结构紧凑便于按章节查阅与整理笔记。目前已有322人学习适合需要提升包装、印刷、切削等设备控制精度与灵活性的技术人员参考也可作为飞切追剪与切刀纠偏环节的排错与设计辅助材料。1. 电子凸轮不是“高级指令”而是一套位置映射关系很多人第一次接触欧姆龙电子凸轮是在设备已经跑起来、机械凸轮却要改曲线的时候。拆机械凸轮、重新加工、装回去对相位一套流程下来停机半天。电子凸轮要解决的就是这件事把主轴位置和从轴位置之间的对应关系从一块金属曲线变成一张可以随时改的数据表。欧姆龙把这张表叫凸轮轮廓Cam Profile在 NJ/NX 系列里由 MC 功能块驱动在 CP1H/CP1E 这类小型机上则靠 PLS2、INI 和脉冲输出指令拼出来。它适合两类人一类是做包装、飞剪、旋切、灌装这类需要从轴跟随主轴做非匀速运动的设备工程师另一类是已经会用欧姆龙 PLC 发脉冲但搞不清“凸轮表怎么填、相位怎么对、为什么从轴会抖”的调试人员。标题里的“培训资料”如果只讲概念看完还是不会填表真正要落地得把主轴相位、从轴位移、插值方式、启动条件这四件事串起来。下面按“先建关系、再写程序、再调参数、最后排错”的顺序讲。2. 欧姆龙电子凸轮的相位映射与轮廓表建立2.1 主轴相位与从轴位移的对应关系电子凸轮的核心是一张二维表横轴是主轴相位0360° 或 0主轴一圈脉冲数纵轴是从轴位移脉冲数或工程单位。机械凸轮用轮廓曲线描述升程和回程电子凸轮用离散点加插值逼近同一条曲线。欧姆龙 NJ/NX 的 Cam 数据结构里CamProfile数组每个元素包含MasterPosition和SlavePosition中间靠MC_CamIn建立耦合。关键点在于主轴相位不是时间是从轴跟随的基准。主轴转一圈从轴走完一个完整轮廓。如果主轴速度波动从轴会按相位比例跟着变这是电子凸轮比“时间轴插补”更贴近机械凸轮的地方。常见做法是先用表格把关键点列出来再决定插值方式。比如飞剪轮廓主轴相位从轴位移说明0°0等待区起点90°20000加速同步段180°40000同步剪切段270°60000减速回程段360°80000回到等待区这张表里180° 附近必须是等速段否则剪切瞬间从轴速度和材料速度不一致切口会拉毛。2.2 用 Sysmac Studio 建立凸轮轮廓的最小步骤在 Sysmac Studio 里建凸轮数据路径是“运动控制设置 → 凸轮数据 → 新建”。填表时注意CamProfile的节点数不要超过控制器允许上限NJ 系列一般支持 1024 点以内点数越多曲线越平滑但扫描周期占用也越大。CamProfile[0].MasterPosition : 0; CamProfile[0].SlavePosition : 0; CamProfile[1].MasterPosition : 90; CamProfile[1].SlavePosition : 20000; CamProfile[2].MasterPosition : 180; CamProfile[2].SlavePosition : 40000; CamProfile[3].MasterPosition : 270; CamProfile[3].SlavePosition : 60000; CamProfile[4].MasterPosition : 360; CamProfile[4].SlavePosition : 80000;这段赋值逻辑是把表格写进控制器。MasterPosition单位是主轴相位SlavePosition单位是从轴指令单位。插值方式选“三次样条”还是“直线”取决于曲线是否允许速度突变。飞剪同步段建议用直线插值保证等速回程段可以用样条减少冲击。提示轮廓表首尾点必须闭合否则MC_CamIn执行时会报“凸轮数据无效”。闭合指 360° 对应的从轴位移要能自然接回 0°。2.3 用 CP1H 脉冲输出拼出简易电子凸轮不是所有现场都有 NJ/NX。欧姆龙 CP1H 这类机型没有运动控制功能块常见做法是用 PLS2 做带加减速的脉冲输出再用 INI 在原点附近做相位修正。下面是一段梯形图对应的结构化文本思路// CP1H 简易凸轮主轴编码器计数到不同区间切换从轴脉冲频率 IF MasterCounter 0 AND MasterCounter 9000 THEN TargetFreq : 2000; // 加速段 ELSIF MasterCounter 9000 AND MasterCounter 18000 THEN TargetFreq : 5000; // 同步段 ELSIF MasterCounter 18000 AND MasterCounter 27000 THEN TargetFreq : 3000; // 减速段 ELSE TargetFreq : 0; // 等待区 END_IF; PLS2(200, TargetFreq, 100, 0, D100);PLS2的第一个参数是端口号第二个是目标频率第三个是加减速时间第四个是脉冲数0 表示连续D100是完成标志区。这种写法本质是“分段频率控制”不是真正的相位插补只适合对同步精度要求不高的送料、推料场景。如果从轴需要严格跟随主轴相位还是得上 NJ/NX 的MC_CamIn。3. MC_CamIn 与 MC_CamOut 的编程实现与参数设置3.1 MC_CamIn 的 5 个必调参数NJ/NX 里启动电子凸轮靠MC_CamIn。这个功能块参数多但真正影响运行的就五个参数含义典型值调错后果Master主轴轴组主轴轴变量填错直接报轴未定义Slave从轴轴组从轴轴变量从轴不动或飞车CamTable凸轮表编号07编号不存在报错MasterStartDistance主轴启动距离根据相位余量太小导致同步段没走完就切MasterScaling主轴比例1.0比例错则整体相位偏移MasterStartDistance是最容易被忽略的。它决定主轴走到哪个相位时从轴开始耦合。如果设成 0从轴会在主轴当前位置立刻咬合容易在同步段起点产生冲击。常见做法是留出 30°60° 的预启动距离。3.2 一段可复现的 CamIn 调用代码// 主轴、从轴使能后调用 MC_Power(MasterAxis, TRUE); MC_Power(SlaveAxis, TRUE); // 启动电子凸轮 MC_CamIn( Master : MasterAxis, Slave : SlaveAxis, CamTable : 0, MasterStartDistance : 45.0, MasterScaling : 1.0, Execute : StartCam ); // 退出凸轮耦合 MC_CamOut(Slave : SlaveAxis, Execute : StopCam);逻辑说明MC_Power先给两个轴使能否则MC_CamIn会报“轴未使能”。Execute上升沿触发一次MC_CamIn的InCam输出变 TRUE 表示耦合建立。MC_CamOut用于正常退出退出后从轴按当前速度减速停止不会保持相位。参数说明MasterStartDistance单位是主轴工程单位如果主轴按度配置就是度。MasterScaling用于主轴和从轴单位不一致时做比例换算比如主轴是角度、从轴是毫米就要在这里补系数。3.3 相位偏移与原点复归的配合电子凸轮跑偏十有八九是原点没对齐。欧姆龙的做法是先用MC_Home把主轴和从轴各自回零再建立凸轮耦合。如果设备不允许每次回零就要用MC_SetPosition手动写当前位置。// 手动设定主轴相位为 0 MC_SetPosition( Axis : MasterAxis, Position : 0, Mode : mcSetPositionMode, Execute : SetMasterPos );Mode选mcSetPositionMode表示只改当前位置不改指令位置适合在原点传感器触发后做微调。注意MC_SetPosition执行时轴必须处于停止状态运行中调用会报错。注意如果从轴在凸轮耦合状态下被MC_SetPosition改位置耦合关系会断开必须重新MC_CamIn。4. 电子凸轮调试中的抖动、报警与相位偏差排查4.1 从轴抖动先看插值再看增益从轴在同步段抖动常见原因有三个凸轮表节点太少导致插值拐点、伺服增益太低、主轴编码器分辨率不够。排查顺序是先看凸轮表再看伺服。凸轮表节点太少时样条插值会在节点之间产生过冲。解决办法是在同步段前后加密节点比如原来 90° 一个点改成 30° 一个点。用 Sysmac Studio 的凸轮曲线显示功能可以直接看到速度曲线是否平滑。伺服增益方面欧姆龙 1S 系列伺服可以调P和I。位置环增益太低从轴跟不上指令太高则会在换向时啸叫。常见做法是先用手动调整功能让从轴单独跑调好增益再接入凸轮。4.2 EIP21 报警代码与凸轮运行的关联热词里出现的“欧姆龙 eip21 报警代码”在电子凸轮场景里也常遇到。EIP21 是 EtherNet/IP 单元凸轮运行时如果主轴和从轴走网络同步EIP21 报通信超时会导致MC_CamIn的InCam掉线。常见报警和处理报警代码含义处理0x0100网络连接超时检查网线、交换机、节点号0x0200从站未响应确认伺服使能、EIP21 单元拨码0x0300同步周期丢失降低网络负载或提高同步周期排查时先用 Sysmac Studio 的“EtherCAT/ EtherNet/IP 诊断”看从站状态再确认MC_CamIn的InCam是否保持 TRUE。如果InCam频繁跳变基本可以锁定通信问题而不是凸轮表问题。4.3 相位偏差的量化测量方法相位偏差不能靠肉眼。常见做法是在主轴和从轴各装一个接近开关用 PLC 高速计数器同时抓两个上升沿的时间差再换算成相位差。// 用高速计数器抓主轴和从轴标记 PRV(881, 0, D200); // 读主轴计数器当前值 PRV(881, 1, D202); // 读从轴计数器当前值 PhaseError : D200 - D202;PRV是 CP1H 读高速计数器当前值的指令第一个参数 881 表示读计数器第二个参数是端口号。PhaseError稳定在某个固定值说明是原点偏移用MC_SetPosition补掉即可如果PhaseError来回波动说明是同步段速度不匹配要回去改凸轮表。5. 用协议宏和 HSL 通信扩展电子凸轮的联动能力5.1 协议宏在凸轮相位同步中的用法欧姆龙协议宏Protocol Macro常被用来在 PLC 和上位机、变频器、温控器之间传数据。在电子凸轮场景里如果主轴是变频器驱动的可以用协议宏把变频器实际频率读回来动态修正MasterScaling。// 协议宏发送序列示例伪代码 Send: 01 03 00 00 00 02 CRC Receive: 01 03 04 [频率高] [频率低] CRC发送的是 Modbus 读保持寄存器命令01是从站号03是功能码00 00是起始地址00 02是读两个寄存器。收到频率后写入D300再用D300参与主轴比例计算。这样主轴实际速度和凸轮基准一致避免变频器滑差导致的相位漂移。5.2 HSL 通信与欧姆龙 PLC 的数据交换HSL 通信在欧姆龙体系里通常指通过串口或以太网做自定义协议的数据交换。如果设备上有工控机做配方管理凸轮表可以由工控机下发PLC 只负责执行。常见做法是工控机把凸轮节点写成 CSVPLC 用FREAD/FWRITE或 socket 指令接收。// 接收凸轮表数据并写入 CamProfile FOR i : 0 TO 4 DO CamProfile[i].MasterPosition : RecvBuf[i*2]; CamProfile[i].SlavePosition : RecvBuf[i*21]; END_FOR;这段循环把接收缓冲区里的数据按“相位、位移”成对写入凸轮表。注意接收缓冲区要先做字节序转换欧姆龙默认低字节在前上位机如果按高字节在前发送数值会完全错乱。5.3 凸轮表在线切换的注意事项多品种生产时凸轮表需要在线切换。欧姆龙支持用MC_CamIn的CamTable参数指定不同表号但切换前必须先MC_CamOut否则会报“凸轮表正在使用”。MC_CamOut(Slave : SlaveAxis, Execute : TRUE); // 等待 InCam 变 FALSE MC_CamIn(Master : MasterAxis, Slave : SlaveAxis, CamTable : 1, Execute : TRUE);切换过程中从轴会按当前速度自由停车如果机械不允许停车就要用MC_CamIn的连续切换功能或者把两张表合并成一张用CamTable偏移量区分。这个技巧在包装机换规格时很实用但要求两张表的首尾相位一致否则切换瞬间会跳变。本文还有配套的精品资源点击获取
返回列表