计数器转化为定时器的扩展应用
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”
相关文章
- 2024-01-18加强矿石资源管理实施检水尺计量验收
- 2023-03-09流量计中超声波传播速度校正方案
- 2023-05-28浅谈核电站在役检查质量保证过程控制
- 2023-03-20超声波测距仪的设计
- 2021-10-31模拟有源滤波器的电路设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。