完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
其他版块不熟悉,还是在labview版块发帖。
最近在弄一个多轴伺服系统。目前只控两轴。PLC控制伺服电机。 需求是在一个运动周期内,两轴的运动位移不同,但是要求同时启动、同时到达(因为要控制轨迹)。 目前的做法,是简单的通过数学计算,给两个轴赋不同的速度值,以求同步到达。(简单来说,就是给定1轴速度V1,计算t=S1/V1,由于要求时间相同,则V2=S2/t)。 但是实际上运行时,两轴惯量不同,电机有加减速,导致两轴还是有肉眼可见的不同步现象,停止时间差估计有200ms,这个达不到要求。 请问有什么办法可以解决这个问题,两轴并不是完全同步(完全同步是指时间、速度、位移全部一致,本项目只要求时间一致),那么如何做到同步起停呢。 谢谢各位大神。 |
|
相关推荐
26个回答
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你理解一下,是用基恩士写的,其实你能看懂参数计算那部分就行了
主轴编号 = V0 从轴编号 = V1 点编号 = V2 主轴目标坐标 = V3.L 从轴目标坐标 = V4.L 合成加速度 = V5 合成减速度 = V6 合成速度 = TODF(V7.D) 动作模式 = V8' 0:INC 1:ABS 合成起动速度 = V9 '-------------------------------------------------------动作模式设定------------------------------------------------------ @DM10 = (V0 - 1) * 40 @DM11 = (V1 - 1) * 40 @DM12 = (V0 - 1) * 200 + (V2 - 1) * 10 @DM13 = (V1 - 1) * 200 + (V2 - 1) * 10 SELECT CASE V8 CASE 0 BRES(CM8006:@DM12,0)'将主轴动作模式设定为定位INC BRES(CM8006:@DM12,1) BRES(CM8006:@DM13,0)'将插补轴动作模式设定为定位INC BRES(CM8006:@DM13,1) 主轴移动量 = ABS(主轴目标坐标)'主轴的移动量 从轴移动量 = ABS(从轴目标坐标)'插补轴的移动量 CASE 1 BSET(CM8006:@DM12,0)'将主轴动作模式设定为定位ABS BRES(CM8006:@DM12,1) BSET(CM8006:@DM13,0)'将插补轴动作模式设定为定位ABS BRES(CM8006:@DM13,1) 主轴移动量 = ABS(主轴目标坐标 - CM8830.L:@DM10)'主轴的移动量 从轴移动量 = ABS(从轴目标坐标 - CM8830.L:@DM11)'插补轴的移动量 END SELECT '---------------------------------------------------------参数计算---------------------------------------------------------- #PRAGMA DOUBLE ON 合成距离 = ROOT(TODF(主轴移动量)^2 + TODF(从轴移动量)^2) '--------------------------------------------------------加减速度是否为0---------------------------------------------------- IF 合成速度 = 合成起动速度 THEN 加速距离 = 0 减速距离 = 0 ELSE SELECT CASE 合成加速度 CASE 0 加速距离 = 0 CASE ELSE 加速时间 = ABS((合成速度 - 合成起动速度) / (合成加速度 * 1000)) 加速距离 = 0.5 * (合成起动速度 + 合成速度) * 加速时间 END SELECT SELECT CASE 合成减速度 CASE 0 减速距离 = 0 CASE ELSE 减速时间 = ABS((合成速度-合成起动速度)/(合成减速度*1000)) 减速距离 = 0.5*(合成起动速度+合成速度)*减速时间 END SELECT END IF IF 合成距离 >= (加速距离+减速距离) THEN'-----------------------------合成距离>=加减速距离 速度能达到合成速度的情况 主轴起动速度 = 合成起动速度 * 主轴移动量 / 合成距离 主轴运行速度 = 合成速度 * 主轴移动量 / 合成距离 主轴加速度 = 合成加速度 * 主轴移动量 / 合成距离 主轴减速度 = 合成减速度 * 主轴移动量 / 合成距离 从轴起动速度 = 合成起动速度 * 从轴移动量 / 合成距离 从轴运行速度 = 合成速度 * 从轴移动量 / 合成距离 从轴加速度 = 合成加速度 * 从轴移动量 / 合成距离 从轴减速度 = 合成减速度 * 从轴移动量 / 合成距离 ELSE'----------------------------------------------------------------合成距离<加减速距离 速度达不到合成速度的情况 T加 = ROOT(2 * 合成距离 / (合成加速度 * (1 + 合成加速度 / 合成减速度)) + (合成起动速度 / 合成加速度)^2) - 合成起动速度 / 合成加速度 最大速度 = 合成起动速度 + T加 * 合成加速度 主轴起动速度 = 合成起动速度 * 主轴移动量 / 合成距离 主轴运行速度 = 最大速度 * 主轴移动量 / 合成距离 主轴加速度 = 合成加速度 * 主轴移动量 / 合成距离 主轴减速度 = 合成减速度 * 主轴移动量 / 合成距离 从轴起动速度 = 合成起动速度 * 从轴移动量 / 合成距离 从轴运行速度 = 最大速度 * 从轴移动量 / 合成距离 从轴加速度 = 合成加速度 * 从轴移动量 / 合成距离 从轴减速度 = 合成减速度 * 从轴移动量 / 合成距离 END IF #PRAGMA DOUBLE OFF '---------------------------------------------------------参数写入---------------------------------------------------------- CM8000.L:@DM12 = 主轴目标坐标 CM8808:@DM10 = TOU(主轴起动速度 + 0.5) IF 主轴运行速度 = 0 THEN CM8004.D:@DM12 = 1 ELSE CM8004.D:@DM12 = TOD(主轴运行速度 + 0.5) END IF CM8002:@DM12 = TOU(主轴加速度 + 0.5) CM8003:@DM12 = TOU(主轴减速度 + 0.5) '------------------------------------------- CM8000.L:@DM13 = 从轴目标坐标 CM8808:@DM11 = TOU(从轴起动速度 + 0.5) IF 从轴运行速度 = 0 THEN CM8004.D:@DM13 = 1 ELSE CM8004.D:@DM13 = TOD(从轴运行速度 + 0.5) END IF CM8002:@DM13 = TOU(从轴加速度 + 0.5) CM8003:@DM13 = TOU(从轴减速度 + 0.5) |
|
|
|
|
|
|
|
不错,很好的经验分享,辛苦麻烦了,欠缺这方面的资料,非常感谢。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
labview在生成EXE报错我的运动控制VI的库不存在,需要怎么解决
1055 浏览 1 评论
1328 浏览 2 评论
求助,做一个波形图显示控件,要求调用excel表里面存的时间作为波形图的x值。
5125 浏览 3 评论
1743 浏览 0 评论
keithley 2600系列labiew vi中配置测量功能中的node in 和node out具体功能是什么?
2194 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-6-17 18:34 , Processed in 0.582406 second(s), Total 54, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191