碧波液压网 欢迎你,游客。 登录 注册

计数器转化为定时器的扩展应用

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

    1 引言

    普通定时器的定时范围和数量有限,因此在实际应用中,有时会有定时器数量不够用或计时时间太长超出定时器时范围的情况,这里有一个比较简单的解决方法,即以计数器代替定时器来精确计时。

     2 编写定时功能块

    以西门子S5为例。我们先编写一个闪烁方波程序,其波形如图1所示。

     梯形图如图2所示。

     我们编写一个延时接通的功能块(FB23)来代替定时器。程序如下:

     NAME:TIME

     DECL:INPU I/Q/D/B/T/C: I BI/BY W/D: BI;输入信号

     DECL:TWIN I/Q/D/B/T/C: I BI/BY W/D: BI;周期为1s的方波信号

     DECL:SJ-C I/Q/D/B/T/C: C      ;计数器号

     DECL:TV-W I/Q/D/B/T/C:D KM/KH/KY/KS/KF/KT/KC/KG:

     KF;定时值

     DECL:OUT I/Q/D/B/T/C: I BI/BY W/D: BI  ;输出信号

     :AN=INPU

     :RD=SJ-C

     :A =INPU

     :A=TWIN

     :SSU=SJ-C

     :L=SJ-C

     :LW=TV-W

     :>=F

     :==OUT

     :BE

     其应用在PB块中的程序如下:

     JU FB23

     NAME:TIME

     INPU: I1·0

     TWIN: F1·2

     SJ-C: C1

     TV-W: 30

     OUT: F128·0

     3 用计数器精确计时

    上述方法对于定时精度要求不高的场合可以满足要求,但由于计数器每记一次数,与定时器发出的脉冲指令相差一个扫描时间,因此实际的定时时间与要求的定时时间会产生累计误差,定时时间越长,即计数器的计数值越大,累计误差越大。例:一台油气润滑泵要求30min启动一次。假设扫描周期为0·02s,则用上述方法定时将产生的误差为:1800×0·02=36s,也就是说实际执行时间为:1800+36=1836s,设计数器的计数值为X,则根据方程式X+0.002=36s,也就是说实际执行时间为:1800+36=1836s,设计数器的计数值为X,则根据方式X+0.002X=1800则:X=1800/1.02=1800.7,把这个方程用西门子S5的除法器功能块FB242来计算,将计算结果赋值给上述功能块FB2的“TV-W”中,即可准确计时。将FB23中的“TV-W”的类型“I/Q/D/B/T/C:D KM/KH/KY/KS/KF/KT/KC/KG:KF”改为“I/Q/D/B/T/C:I BI/BY/W/D:W”;将FB242中的Z1,Z2的类型“I/Q/D/B/T/C: I BI/BY/W/D:W”改为“I/Q/D/B/T/C:DKM/KH/KY/KS/KF/KT/KC/KG:KF”

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论