
如果你使用MaxDuino编程, 就简单多了:
MOTOR.begin(TIM1,200,DO1,DO2) //初始化步进电机.
MOTOR.speed(300) //设定转速300RPM.
MOTOR.Ramp(100) //加减速距离100个脉冲.
MOTOR.OpenRamp()//开启加减速控制.
MOTOR.run(DIR_ZHENG,1000) //电机开始往正方向运转1000个脉冲.
整个过程电机的S曲线加减速是自动完成的. 不需要认为控制, 比较的方便.
匀减速运动最好用PLSV,这个指令特点是每个扫描周期都可以变换脉冲频率(也就是私服的速度),这样每个扫描周期减去一定的频率就是匀减速运动。至于你说圆盘每转一圈就向前移动一定的距离,要看你的具体运动方式,如果你是圆盘转完一圈后再移动距离的话,可以用DRVI但如果是在圆盘转的过程中前进的话有两个方案;1、用PLSV,然后以圆盘转动轴的频率为主动轴频率,在PLC程序中做一个方程匹配前进轴的速度(也就是说前进轴的速度随转动轴而变动);2、PLC只控制转动轴,而前进轴用私服的电子凸轮跟进。(但方案2造假较高)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)