合信论坛

快捷导航
查看: 5365|回复: 0

codesys电子凸轮指令分析

[复制链接]

9

主题

9

帖子

602

积分

高级会员

Rank: 3Rank: 3

积分
602
发表于 2023-6-30 12:50:36 | 显示全部楼层 |阅读模式
本帖最后由 liuweidong 于 2023-6-30 12:51 编辑

一、如何修改凸轮关键点
①新建CAM凸轮表系统会自动生成MC_Cam_REF类型的数据结构和SMC_CAMXYVA结构类型的数组,要修改关键点就需要理解者两个数据结构。MC_Cam_REF定义起点、结束点等,SMC_CAMXYVA定义每个关键点的位置、速度等并合成一个数组。如下图后台工程新建的凸轮表及数据,可以程序中在此基础上直接修改关键点。
如将第1个关键点位置改为(200,200)CAM_A[0].dx:=200;CAM_A[0].dy:=200;

微信图片_20230630114032.jpg

完全新建一个凸轮表数据:
第一步定义MC_Cam_REF类型的数据结构Cam_Mum、定义SMC_CAMXYVA结构类型的数组Cam_Mum_Arr
第二步给Cam_Mum参数赋值,根据需求设置关键点并给Cam_Mum_Arr参数赋值。
数组Cam_Mum_Arr如何与Cam_Mum关联?取Cam_Mum_Arr首地址赋值给Cam_Mum.pce即可。
微信图片_20230630115209.png
111.png

二、凸轮偏移Offset和缩放比例Scaling
CAMIN凸轮指令提供偏移Offset和缩放比例参数Scaling:
主轴MasterOffset, MasterScaling:主轴输入转换的位置是根据以下公式进行的,并且使用转化后的X作为作为凸轮的输出:
X = MasterScaling*MasterPosition + MasterOffset
因此,如果主轴的比例大约1,所述凸轮将会运行在一个更高的速率,如果比例值小于1,速率将会随之降低。
从轴SlaveOffset, SlaveScaling:**如果从轴的比例值大于1,电子凸轮将会以高速运行,如果此值小于1,速度值将会随之降低,计算公式:
Y = SlaveScaling*CAM( X ) + SlaveOffset
值SlaveScaling > 1 导致凸轮效果的拉伸,从轴的范围将会增加;相应的‘’如果 SlaveScaling < 1 将会导致一个收缩。
PS:从上面的计算公式可知,主从轴运行方向不一致时修改MasterScaling或SlaveScaling设置为负数即可。比如主轴一般位置设置为0~360,如果主轴反向运动将MasterScaling设置为-1,否则从轴不会运动也不会报错。
三、凸轮结束判断
理解凸轮结束点需要理解ENDofprofile(凸轮结束时周期运行输出一个任务周期的脉冲,非周期运行一直输出高电平)何时产生。
ENDofprofile为ON的那个周期PLC还在给伺服最后一段位移。
我们一般用这个信号判断凸轮一个周期运行结束,上升沿使能MC_CAMout指令分离同步,分离动作会在这个周期马上生效,然后从轴处于持续运行模式。就算凸轮结束点的速度设置为0,但是在分离这个周期速度不是为0的,因为还有最后一个周期的位移,然后从轴就会以这个周期位移为速度持续运行,如果不停止会导致位置偏差,所以最好MC_CAMout后用MC_STOP停止,或者用ENDofprofile信号的下两个周期使能MC_CAMout。
四、MC_CAMOUT
1.此功能块将从轴与主轴立刻分离。
2.如果轴没有在synchronized_motion状态,执行该轴会报错(ErrorCode=34,比如经常出现凸轮分离时报34,就有可能是逻辑上多次触发了)。
3.使能凸轮分离后,轴状态为continuous_motion(速度为0也是continuous_motion状态),既如果分离时轴速度不为0,轴会以此时的速度匀速运行,一般与MC_Stop等配合使用。
五、Cam的非周期运行
A.参数Periodic=False为非周期。
如下图,一个凸轮周期结束后EndOfProfile输出为True,如果MC_CamIn的使能条件不为False,EndOfProfile一直输出为True。
cam1.png
应注意EndOfProfile为True的第一个周期从轴速度不一定为0,如果用EndOfProfile电平触发MC_CAMout应特别注意。
MC_Camout使用后该轴处于continuous_motion状态,如果该状态保持65535个循环周期轴将报错SMC_AXIS_NOT_READY_FOR_MOTION (34),所以建议MC_camout与MC_Stop或MC_Halt一起使用。

B.参数Periodic=False为非周期,凸轮运行完一个周期后从轴还是处于synchronized_motion状态,但是不管主轴是否运行、凸轮结束点速度是否为0,从轴都不会运行
(PS如果在参数EndOfProfile为True的第一和二个周期触发MC_CAMout指令会使轴为continuous_motion状态,且速度可能不为0,请参照A部分).











微信图片_20230630115220.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2025-5-4 01:24 , Processed in 0.138741 second(s), 25 queries .

快速回复 返回顶部 返回列表