电子凸轮-区间运动Ver1.1.3(位置跟随,去程) 0.一个主轴伺服+一个从轴伺服 1.主轴伺服定速运动(启动不带加速),从轴伺服跟随。 2.在西门子200smart或CPU224XP中运行 3.维伦通触摸屏 4.pls指令编写 5.主轴启动不带加速,停止不带减速。 凸轮带加减速功能,凸轮根据主轴位置进行周期性运动。 6.该版本只有去程,每个动作周期跟随主轴同步运动一次,适合单方向的动作。 7.从轴伺服准确跟随主轴的位置和主轴速度。
车间里刚折腾完电子凸轮项目的老张点了根烟,显示器上还闪着S7-200 SMART的梯形图。这玩意儿说难不难,但要让从轴伺服踩着主轴的节奏跳舞,还真得掰碎了揉细了搞。
先说主轴设定,这哥们儿就是个愣头青——启动不加速,停车不减速。在OB1主循环里直接怼速度寄存器,简单粗暴:
MOVW 1000, VW100 //主轴速度固定1000Hz PLS 0, VW100, Q0.0 //Q0.0输出固定频率脉冲从轴的跟法就讲究了。得算准主轴每个脉冲对应的从轴位置,这里用了个比例换算。假设主轴转一圈2000脉冲,从轴要跑50mm行程:
MOVD &VB200, AC1 //主轴脉冲数地址 ITD VD204, AC0 //当前主轴脉冲转双字 DTR AC0, VD208 //转实数运算 MOVR VD208, VD212 /R 2000.0, VD212 //主轴位置百分比 MULR 50.0, VD212 //换算为从轴目标位置 ROUND VD212, VD216 //取整 MOVD VD216, VD220 //从轴目标脉冲数 PLS 1, VD220, Q0.1 //Q0.1输出跟随脉冲重点在这段中断服务程序。用定时中断0每5ms刷一次位置,实时得跟做手术似的:
ATCH INT0, 10 //定时中断0绑定 ENI //开中断 INT0: LPS A SM0.0 //常通触点 MOVW HC0, VW200 //读主轴编码器HC0 MOVW HC1, VW204 //读从轴编码器HC1 LPP CRETI触摸屏那边搞了个速比参数设置,威纶通EBPro里拖个数值输入框,地址直接映射到VD300。工人老李现场改参数不用碰程序,这个设计让他少挨了两次骂。
调试时发现个坑——主轴停车瞬间从轴容易多抖两下。后来在凸轮周期结束加了个硬刹车:
A SM0.5 //秒脉冲 MOVW HC0, VW300 //缓存当前主轴脉冲 SUBW VW300, VW304, VW308 //计算增量 MOVW VW300, VW304 //更新缓存 AENO MOVW VW308, VW312 //保存增量这招相当于给从轴装了急刹车片,主轴停转瞬间从轴立即锁死。测试时主轴急停,从轴位置偏差控制在±3个脉冲内,比车间主任要求的±5还严实。
项目收尾时,流水线的机械手跟着输送带走得那叫一个齐整。从轴伺服的速度环参数最后微调到Kp=0.15,Ki=0.002,速度跟随误差肉眼根本看不出来。老张把程序烧进224XP的时候,PLC的RUN灯亮得都比平时得劲。