当前位置: 主页 > PLC控制

如何用梯形图编写计算转速的例子

如何用梯形图编写一个计算转速例子,假如转速较低,不使用高速技术模块,怎么用语言实现单位时间内的脉冲数计算,一边是累计脉冲,一边要计算时间间隔

ASs='html_titleimg_p' STyle='text-align:CEnter;'>

最佳答案

建议在中断里面进行编程,比如OB35,可以将中断周期设置的小点,比如20毫秒。
然后,你的硬件上最好能够达到转一圈有4个脉冲信号进来这样测速比较准确分辨率高。
你可以编写一个子程序,在OB35里调用,做一个脉冲输入点(Pulse_In),当然也需要速度的计算周期(Speed_Cal_Period单位秒INT型),和每圈多少脉冲(PulsePerLap)以及速度(Speed)
其中速度计算周期以秒为单位是20毫秒的整数倍。

在程序内部首先计算出,速度计算周期,需要多少个OB35循环,每次脉冲点来之后,脉冲计数值加1,当计算周期到达后,开始计算速度,简单程序如下。

LSpeed_Cal_Period
L20//Ob35中断周期
/I
TOB35Cycles//FC里某个临时变量,INT型
LOB35Cycles
LMW102
==I
JCNSPC
L60.0
LSpeed_Cal_Period
ITD
DTR
/R
LMW100
ITD
DTR
*R
LPulsePerLap
ITD
DTR
/R
TSpeed
L0
TMW100
TMW102
SPC:NOP0

APulse_In
fpm20.0
jcnPC
LMW100//脉冲累积值
L1
+I
TMW100
PC:NOP0
LMW102
L1
+I
TMW102

以上是最基本算法,在一定时间内累积的脉冲数,除以计算周期,就得到了,每秒多少脉冲,乘以60得到每分钟多少脉冲,再除以没转一圈有多少脉冲进PLC,这样就得到了转速没分钟多少圈。
为了提高通用型,尽量做IN_OUT接口来代替里面的MW100,MW102和M20.0

提问者对于答案的评价:
十分感谢您的指导,谢谢,我在想办法用LAD写出来

  • 关注微信

猜你喜欢

微信公众号