逻辑不是很麻烦。
1,你需要把编码器的值转换成位置;ir_当前位置;
2,计算偏差值(不管正反转都算,ABS绝对值来做);vr_偏差值:=abs(ir当前位置-ir_目标位置);
3,根据设置接近位置(减速位置)来切换速度; vr_偏差值<=ir_接近位置;
4,你可以给一个周期来减速,例如:ir_接近位置500mm,ir_减速时间1S,周期是0.1S,那么从500mm减速到0需要1/0.1=10个周期,如果速度是600mm/s的话,每个周期需要减少60mm的速度;
ST写个简单的计算就行,
Vr_减速值:=ir_高速/(ir_减速时间/vr_周期);
减速后,第一个周期600-60=540mm/s,以此类推;
5,写个偏差值,判断是否到位,要完全精确到位,我估计需要刹车装置,但是肯定还是需要有偏差的
PS:具体还是要根据机械结构来做,至于最后的效果,只有自己测试了,
5,d
23-07-18 11:51