首页 / 资讯中心 / 文章详情

西门子1500T CAMIN凸轮同步实战:原理、配置与调试全解析

西门子1500T CAMIN凸轮同步实战:原理、配置与调试全解析 ★ FEATURED ARTICLE
前阵子做了一条三伺服横切包装线主轴是送料辊从轴是旋转切刀。现场要求切刀在跟随材料连续运动的同时完成“切入-同步-返回”的循环而且切长要在触摸屏上随时可调。第一时间想到的就是1500T的凸轮同步功能也就是CAMIN指令。先说明一点很多人把电子齿轮MC_GearIn和凸轮同步混为一谈觉得都是“从轴跟着主轴转”。实际上两者有本质区别齿轮比是固定的比例关系从轴只能按主轴的整数倍或小数倍速度运行而凸轮同步是任意曲线关系从轴位置由凸轮表直接给定适合做“非匀速跟随、周期性动作、往复补偿”这类复杂的运动轨迹。横切刀、飞剪、模切机、印刷机上的套准补偿几乎都是凸轮同步的典型场景。这篇文章就把我在1500T上使用CAMIN的经验拆开讲清楚从指令原理、参数配置、凸轮表创建到现场调试的坑一次说透。1. CAMIN指令与凸轮同步的核心概念1.1 凸轮同步的工作逻辑凸轮同步的本质是“查表”。先建立一张凸轮表横坐标是主轴位置纵坐标是从轴位置。运行的时候运动控制器读取当前主轴的位置从凸轮表里查出对应的从轴目标位置然后控制从轴始终向这个目标位置逼近。主轴转一圈、从轴完成一个周期的轨迹这就是最基本的凸轮运动。用大白话说凸轮同步就像两个人在跳交谊舞——一个人主轴自由行走另一个人从轴根据前一个人的脚步在事先编排好的舞步里变换步伐。这种关系不是线性的可以前快后慢、可以间歇停顿、甚至可以反向运动全凭曲线设计。CAMIN指令就是西门子T-CPU里负责建立这种“舞步关系”的功能块。1500T系列与普通1500的区别在于T-CPU在固件层面集成了运动控制工艺可以直接处理轴对象、凸轮表对象和运动指令不需要额外的运动控制模块。像CAMIN、MC_GearIn、MC_CamOut这些指令都属于T-CPU的运动控制指令集。1.2 CAMIN解决了什么问题泵用齿轮同步做不到的场景就是CAMIN的用武之地。举三个我实际接触过的案例案例一旋转式横切刀。切刀不能一直贴着材料走否则切完一刀没法回到起点。实际轨迹是切刀在切点附近与材料速度同步并完成裁切裁切完成后加速或减速回到起始角度等待下一刀。这个“等待-追切-回位”的曲线用齿轮比完全没法实现用凸轮表一画就能完成。案例二间歇式送料机。主轴连续转动从轴却要“停-走-停-走”。比如包装膜的热封工位膜要间歇动作给封刀留出动作时间。用凸轮同步可以让从轴在一段主轴角度内完全静止凸轮表曲线是水平直线然后再走完剩余位移。案例三位置补偿机构。印刷机上的套色补偿辊要根据色标信号在运动中微调位置。凸轮表里叠加一段补偿量就能实现动态修正。CAMIN指令的价值在于它把这些复杂的运动关系全部封装在凸轮表和指令里程序员只需要管“使能了没有、同步了没有、曲线对不对”具体的轨迹规划交给T-CPU处理。2. CAMIN指令引脚与参数逐项解析2.1 功能块引脚说明下面这张表是CAMIN功能块引脚的标准定义我按自己的使用习惯整理了核心项兜底细节说明放在注释里。引脚数据类型功能说明关键要点EnableBOOL使能凸轮同步上升沿激活处理TRUE期间保持同步关系MasterTO_Struct主轴工艺对象引用必须是有效的轴对象可以是虚轴或实轴SlaveTO_Struct从轴工艺对象引用被控轴必须是T-CPU控制的轴CamCam_Struct凸轮表对象引用对应工艺对象里的凸轮表CamStartModeINT凸轮启动模式0绝对同步1相对同步MasterScalingREAL主轴比例缩放单位%默认100%SlaveScalingREAL从轴比例缩放单位%默认100%MasterOffsetREAL主轴偏移量单位与主轴组态一致SlaveOffsetREAL从轴偏移量单位与从轴组态一致DirectionINT凸轮方向0正向1反向2按主轴方向ActiveBOOL同步激活状态TRUE表示凸轮关系已生效InSyncBOOL已同步状态TRUE表示从轴已经追上目标曲线SyncFailedBOOL同步失败报警通常需要重新启动CAMINErrorBOOL错误状态与ErrorID配合使用ErrorIDWORD错误代码对应系统报警手册EndOfCamBOOL凸轮周期结束一个凸轮周期走完时输出脉冲实际编程时状态引脚只读Enable是唯一的“主令”。你不需要像老式凸轮控制器那样手动切换“启动-运行-结束”状态T-CPU内部的状态机已经帮你处理了大部分逻辑。2.2 绝对同步与相对同步的区别这一段是CAMIN最容易出问题的地方也是不少调试现场“从轴乱跑”的根源。绝对同步CamStartMode0凸轮表的主轴坐标是绝对位置。当主轴走到凸轮表起点对应位置时从轴开始进入曲线。如果主轴当前位置不在凸轮表的起点位置系统会等待主轴走到那个位置。这种模式适合主轴位置固定循环的场景比如主轴每隔一定角度触发一次周期的机器。相对同步CamStartMode1CAMIN激活时主轴的当前位置被定义为凸轮表的起点凸轮表整体平移从轴从当前位置直接进入曲线。这种模式不需要主轴“恰好走到某个位置”适合主轴连续运动的场景——比如横切、飞剪因为每次激活时主轴在哪个位置是不可控的相对同步就是救命稻草。我做的横切机程序全部用相对同步。现场切长变化后凸轮表整体缩放程序不需要停机就能重新建立同步对生产连续性很友好。有一个常见误区要提醒相对同步模式下凸轮表的主轴范围不能是0。CAMIN会把当前主轴位置映射到凸轮表的起始主轴坐标上如果凸轮表主轴起点是0而终点是360那么激活时主轴当前值不管等于多少都会被当作0来处理。因此建议凸轮表主轴坐标设置成非零点例如从1到999避免与0坐标产生歧义。2.3 缩放与偏移参数的使用场景MasterScaling和SlaveScaling是百分比参数默认100。它们的作用是等比例拉伸凸轮表。我用过一个很典型的场景客户改了产品规格材料厚度变了切刀轨迹的纵向切入深度也要等比变化。这时候不需要在CAM工具里重新画凸轮表只要在触摸屏上把SlaveScaling从100改成85整条曲线纵向压缩到85%非常方便。MasterOffset和SlaveOffset是在凸轮表基础上叠加一个固定位置偏移。比如色标检测发现套印偏差需要微调切刀相位就用SlaveOffset在运行中动态加一个角度值能实现“不停机微调”。这是凸轮同步比机械凸轮强很多的地方——机械凸轮换一个规格就要换一套凸轮电子凸轮改几个参数就行。这里提醒一下偏移是在缩放之后叠加的先按比例缩放曲线再整体平移。编程时要理清先后关系。3. 凸轮表的创建与曲线设计3.1 手动创建凸轮表在TIA Portal里1500T轴工艺对象下可以添加凸轮表Cam。凸轮表本质上是一组坐标点主轴位置对应从轴位置。打开凸轮表编辑器可以手动添加坐标点也可以在表格里直接输入数值。几点经验坐标点不宜过密也不宜过稀。我习惯一个周期取20-50个点。太密了曲线容易因为机械传动误差产生微小锯齿太稀了轨迹不够平滑。T-CPU会自动在相邻点之间做插补CPU是根据凸轮表的插补算法在实时计算的。插补类型优先选三次样条。凸轮表编辑器里有线性插补和样条插补两个选项。线性插补的转折点处速度不连续冲击大高速运行时还会有机械共振风险三次样条平滑性好速度和加速度连续是旋转切割类设备的首选。只有在主轴速度非常低、对轨迹精度要求不高的场合我才会用线性。主轴范围建议留10%的余量。比如进料长度是300mm我把主轴范围设成330mm留出的30mm给同步建立和退出过程用。CAMIN激活、从轴追赶曲线的过程需要一点主轴行程不留余量就来不及完成同步。3.2 用CAM工具自动生成凸轮表TIA Portal里的CAM编辑器支持通过“自动生成”功能创建凸轮表。设定主轴起点/终点、从轴起点/终点、运动类型匀速/梯形/正弦等系统就能自动生成一组坐标点。我最常用的是“Sine”和“Modified Sine”类型的过渡曲线它们兼顾了平滑性和加速度限制。从轴需要静止等待的场景曲线中间画一段水平线段就行这在实际加工里非常常见——比如热封工位需要停留时间。检查凸轮表时重点看两个指标从轴最大速度和最大加速度是否在驱动能力范围内。如果电机选小了、减速比不合适凸轮曲线执行起来会直接报过载或跟随误差过大。 CAM工具的计算结果可以先导出成CSV在服务器上离线算一遍再决定要不要改机械。3.3 凸轮表与CAMIN的关联关系凸轮表和CAMIN指令的关联发生在调用时不发生在组态时。CAMIN的Cam引脚直接引用凸轮表对象名称即可。同一个凸轮表可以被多个CAMIN调用但不同从轴不能共享一个“同步关系”。实际操作中我习惯把凸轮表按“规格”建好不同产品用不同凸轮表运行中通过切换Cam引用的方式来切换产品规格。切换过程要先执行凸轮脱离MC_CamOut再等从轴状态复位然后重新激活CAMIN。不能直接在主轴上激活一个“新凸轮表”而不脱离旧曲线否则会出位置跳变。一个容易忽略的点凸轮表修改后必须编译并下载到设备才会生效。如果在调试阶段改了凸轮表的曲线点一下就重新下载PLC程序是没用的——凸轮表对象是工艺对象要下载到CPU的保持性存储区。修改后最好做一次“全部下载”或者单独下载工艺对象。4. 实操从组态到投用的完整步骤4.1 轴工艺对象的组态在TIA Portal里1500T CPU的运动控制组态入口在“工艺对象”下。新建两个轴对象主轴、从轴。主轴可以是实际轴也可以是虚轴Virtual axis。有几个参数必须提前设好单位。我统一用mm和度。直线轴送料辊的线速度用mm旋转轴切刀用度。单位不一致会直接导致凸轮表坐标混乱。限位。从轴的正负软限位要设置到位但凸轮同步中从轴的运动范围必须在限位之内否则功能块会报错。动态限制。最大速度、最大加速度在凸轮同步中不是固定限幅而是动态限制的。CAMIN在每个扫描周期都会根据凸轮曲线的导数和当前负载计算实际需要的速度、加速度如果超出轴对象的手动限制CPU会自动把曲线往下“压”导致实际轨迹与凸轮表不一致。所以在组态时不要为了保险把动态值设得过于保守否则凸轮表执行时会被CPU偷偷修正而你光看程序根本发现不了这个坑。4.2 CAMIN指令的SCL调用在OB1或循环中断OB里调用CAMIN。下面是典型的SCL调用片段“CamIn_DB”( Enable : “Drive_Start” AND “No_Fault”, Master : “HMI_Axis_Master”, Slave : “HMI_Axis_Slave”, Cam : “Cam_Cut_300mm”, CamStartMode : 1, MasterScaling : 100.0, SlaveScaling : 100.0, MasterOffset : 0.0, SlaveOffset : 0.0, Direction : 0, Active “Cam_Active”, InSync “Cam_InSync”, SyncFailed “Cam_SyncFailed”, Error “Cam_Error”, ErrorID “Cam_ErrorID”, EndOfCam “Cam_EndOfCam” );这里有三个关键点Enable不是简单的TRUE。建议把驱动使能状态、急停状态、故障状态全部串进来任何一个条件不满足都要断开Enable避免从轴在异常状态下继续执行凸轮关系。CamStartMode我选了1相对同步这样程序每次启动时不需要等待主轴走到固定位置启动速度快而且不会因为主轴位置累计误差导致切长跑偏。SyncFailed一定要做处理。一旦同步失败CPU会切断从轴的耦合关系从轴会瞬停或者跟随误差过大报警。重启流程要先复位从轴状态再重新激活CAMIN不能直接再次置位Enable否则指令可能不执行。4.3 投用时的顺序正确的投用顺序是先让从轴回零这个必须提前做好再使能从轴驱动然后启动主轴等主轴速度稳定后置位Enable让CAMIN建立凸轮关系。不要在从轴还没回零的情况下就激活CAMIN否则从轴会以当前位置为基准直接跳到曲线起点轻则撞机重则伤人。主轴启动后观察InSync状态。正常情况下从轴会在一两百毫秒内追上目标曲线InSync置TRUE。如果长时间不置TRUE优先检查凸轮表的起点位置与主轴当前位置的差值以及MasterScaling设置是否过大放大比例越大追上曲线越慢。投用调试时建议先用低速跑一遍InSync稳定后逐步提速。不要一上来就高速运行特别是第一次调试新曲线时很多机械问题在低速下就暴露了。4.4 动态修改从轴偏移设备运行时如果需要在不停机状态下微调从轴相位比如套印修正直接改SlaveOffset即可。CPU会在每个扫描周期重新计算目标位置从轴会自动跟上。修改偏移時要特别注意幅值限制。一次改动超过5~10度的话从轴加速度会瞬间增大机械冲击明显。我在程序里加了斜坡限制每次扫描只能修正0.2度虽然响应慢一点但设备稳定性好很多。5. 常见问题与排查技巧实录5.1 高频问题速查表故障现象排查方向处理方法CAMIN使能后从轴不动Enable状态、凸轮表引用是否有效检查Enable链路确认Cam引脚引用的凸轮表已下载InSync长时间不置位凸轮表起点与主轴当前位置差异过大改用相对同步模式或检查MasterScaling激活瞬间从轴冲出去主轴当前位置与凸轮表起点不匹配重新核对启动模式绝对/相对检查凸轮表主轴起始坐标运行中从轴位置漂移主轴编码器取模问题确认主轴位置是实际长度不是取模后的循环值凸轮表报错“插补无效”相邻点斜率变化过大平滑曲线减少坐标点或改用样条插补重启后CAMIN找不到凸轮表凸轮表未下载到CPU保持区重新下载工艺对象/凸轮表凸轮表执行时机械振动插补类型不合适、动态限制过高换样条插补降低速度/加速度设定同步关系正常但切长偏大主轴实际线速度与设定不符检查主轴齿轮比、编码器分辨率、凸轮表主轴坐标单位5.2 最隐蔽的坑主轴位置取模有一个问题排查了很久才找到根源。主轴是旋转编码器反馈的送料辊为了显示方便我把主轴位置按照每转一圈取模一次显示成0~360度。结果CAMIN同步后从轴每走完一个周期就会有一次极小的位置跳变导致切出来的产品每隔一段就有一件短的。原因在于主轴位置取模后在0度跳变时绝对值虽然连续了但位置在扫描周期内经历了一个从360降到0的瞬变。CAMIN在这一个扫描周期内读到的主轴位置变化是巨大的凸轮表查出来的从轴位置也跳变了一下。解决方法是主轴给CAMIN时不能取模。虚轴和实轴都建议用线性递增的绝对位置让凸轮表在1~999范围内周期性使用。模值只用在HMI显示上不能用于运动控制计算。5.3 现场常见的“同步失败”处理SyncFailed报警是凸轮同步里最让人头疼的故障之一。我遇到过的真实情况有情况一凸轮表的内容没有下载。手动建表后忘记单下载凸轮表测试时PLC程序重新下载了凸轮表对象显示在设备里但实际内容是上一次的。处理方法是在设备诊断里检查凸轮表的“版本号”或“生成时间”。情况二从轴位置与凸轮表曲线差值过大。如果用绝对同步激活凸轮表起点是0但从轴此时在1000mm的位置差值太大CPU判定无法在规定主轴长度内追上曲线直接报同步失败。我后期一律用相对同步这个故障就消失了。情况三凸轮表中途从轴被其他指令切断。调试时其他程序段可能调用了MC_Stop或MC_Halt导致从轴停下来了凸轮关系被破坏。排查时先查从轴的控制字和状态字。在1500T里从轴同一时间只能被一条运动指令控制多指令同时调用会互相干扰。情况四主轴是虚轴但没启动。如果主轴是内部生成的虚拟轴比如由内部函数产生一个运动规律虚轴本身要先运行起来CAMIN才有位置输入。很多新手在启动凸轮同步前忘了启动虚轴导致CAMIN永远等不到位置更新。5.4 调机阶段的一个实用小技巧调机时我特别喜欢用TIA的Trace功能。把主轴位置、从轴目标位置、从轴实际位置、CAMIN状态位InSync、SyncFailed同时拉进Trace里跑一个循环再停下来看曲线。绝大多数凸轮问题都能从曲线里一眼看出来是同步没有建立、还是建立后又丢了、还是建立了但位置偏差一直存在看曲线就知道。还有一个习惯调试阶段把ErrorID通过HMI的报警变量显示出来不用每次连上电脑去诊断缓冲区找。1500T的错误代码数量不少手册里查对应代码更准确。这里分享一个小经验——我都是先把摄像头对准HMI的报警页面等故障发生了照片里的错误代码直接去手册里查调试效率高很多。6. 1500T与1500普通型在凸轮同步上的差异写到这里还是得专门提醒一下CAMIN这类凸轮指令只能在T-CPU1500T/1500TF上运行。普通S7-1500即使固件版本再新也不支持凸轮同步。1500T的凸轮同步最高支持多少个轴同时联动取决于CPU型号和固件版本。现场如果同时跑4、5根伺服轴并且都有凸轮关系选型时尽量选CPU资源余量大的型号1200的常规系列做不了这种工艺这是硬件层面的限制。另外1500T固件升级后CAMIN指令的参数可能会有所增加比如新版本支持了动态凸轮缩放等扩展功能升级固件前一定要查兼容性列表确认工艺对象版本和指令版本能对上。我遇到过升级后凸轮表对象打不开的情况后来把工艺对象删除重建才恢复正常数据当时没有备份重新画的曲线费了不少时间。7. 写在最后的一点心得用1500T的CAMIN做了几个项目之后最大的体会是凸轮同步的难点不在指令本身而在凸轮表的设计和现场的机械配合。CAMIN只是帮你把曲线执行到轴上而曲线是否合理、启动模式是否匹配、缩放参数是否合适这些都要靠工程师对工艺的理解。新建项目时建议先把机械传动的减速比、编码器分辨率、丝杠导程这些基础参数核对一遍再谈凸轮同步。这些参数错了凸轮表画得再漂亮也跑不出正确位置。还有一点个人经验所有涉及凸轮同步的程序上电第一件事一定要让所有轴回零并且要检查回零开关有效。凸轮同步是基于绝对位置的如果轴的实际机械零点与程序里的零点对不上同步关系建起来也是错的而且这种错误在高速运行中才会暴露很危险。调试时始终保持一条原则先低速验证再提速优化先单轴验证再联动生产。遵循这个顺序CAMIN用起来就会很顺手。
阅读完成 · 觉得有帮助?
咨询建站