然后,你的硬件上最好能够达到 转一圈有4个脉冲信号 进来这样测速比较准确分辨率高。
你可以编写一个子程序,在OB35里调用,做一个脉冲输入点(Pulse_In),当然也需要 速度的计算周期(Speed_Cal_Period单位秒INT型),和每圈多少脉冲(PulsePerLap)以及速度(Speed)
其中速度计算周期以秒为单位是20毫秒的整数倍。
在程序内部首先计算出,速度计算周期 ,需要多少个OB35循环,每次脉冲点来之后,脉冲计数值加1,当计算周期到达后,开始计算速度,简单程序如下。
L Speed_Cal_Period
L 20 //Ob35中断周期
/I
T OB35Cycles//FC里某个临时变量,INT型
L OB35Cycles
L MW102
==I
JCN SPC
L 60.0
L Speed_Cal_Period
ITD
DTR
/R
L MW100
ITD
DTR
*R
L PulsePerLap
ITD
DTR
/R
T Speed
L 0
T MW100
T MW102
SPC:NOP 0
A Pulse_In
fp m20.0
jcn PC
L MW100//脉冲累积值
L 1
+I
T MW100
PC:NOP 0
L MW 102
L 1
+I
T MW102
以上是最基本算法,在一定时间内 累积的脉冲数,除以计算周期,就得到了,每秒多少脉冲,乘以60得到每分钟多少脉冲,再除以 没转一圈有多少脉冲进PLC,这样就得到了 转速 没分钟多少圈。
为了 提高通用型,尽量做IN_OUT接口 来代替里面的MW100,MW102和M20.0
应及时查看并修正。梯形速度轨迹规划产生位置误差表示计算不够准确,应及时终止后重新计算并重新规划。梯形速度分布的轨迹规划,从本质上来说,是一个分段函数的轨迹规划,基本的方式是一个先加速,再匀速,再减速的三段函数的过程。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)