实现上述控制要求的方法有多种,这里,介绍一种"利用计数器扩展定时时长"的方法,并简要引出S7中计数器的概念。
一、控制任务归纳
控制任务为:某一设备在满足运行条件后,持续运行8个小时
做以下假设:
1、假设该设备的各运行条件汇总为M10.0,且M10.0=1时,运行条件满足;
2、该设备的运行命令由Q2.0给出,即Q2.0=1时,设备运行;
3、为方便讨论,这里不考虑本设备故障、来自其他设备的连锁/互锁、及快/急停等各种信号的影响。
二、利用计数器扩展定时时长
1、计数器的相关概念
S7的系列CPU为计数器保留了一片存储区域。一个计数器包括一个16位的字和一个二进制的位。计数器的字用来存储当前的计数值,而计数器的触点状态反映在它的位上。如图1所示,为计数器的字。
图1 计数器的"字"
程序中,计数器的表示方法为:"C+计数器号",如C10表示10号计数器。
计数器的计数范围为:0-999。
仅当计数器的当前计数值为0时,计数器的触点状态位才为0;否则,其触点/线圈状态位1;
计数器分为加计数器、减计数器及加/减计数器,这里,我们用到了减计数器。
2、设计计数脉冲
我们可以首先设计一个"方波"信号,具体实现办法可参见《西门子S7 300仿真实验平台——编程实现矩形波、方波发生器》
这里,需要确定方波的周期。如图2所示。
图2 定时器及计数器的初始值的确定
如图3所示,为方波发生器,当M0.0=1时,定时器T1和T2周期性的工作,并在"#temp1"输出一个周期为288s的方波信号。
图3 方波发生器
3、实现延时时长为8h的"延时断"功能
有了图3所示的"方波发生器"后,我们只需利用减1计数器记录100个方波脉冲,即:
288s*100=28800s=8h
即可实现定时8小时的功能,如图4所示。
图4 时长为8h的"延时断"