使用定时器指令可创建可编程的延时时间。表1-12为S7-1200 PLC的定时器指令。
表1-12 定时器指令
最常用的是如下4种定时器指令:
(1)TON:接通延时,输出Q在预设的延时过后设置为ON。
(2)TOF:关断延时,输出Q在预设的延时过后重置为OFF。
(3)TP:生成脉冲,可生成具有预设宽度时间的脉冲。
(4)TONR:保持型接通延时,输出在预设的延时过后设置为ON。在使用R输入重置经过的时间之前,会跨越多个定时时段一直累加经过的时间。
TON指令形式如图1-48所示。TON参数及数据类型见表1-13。图1-49为TON逻辑时序图:当参数IN从0跳变为1时,启动定时器TON,经过PT时间后,Q输出;当IN从1跳变为0时,Q停止输出。
图1-48 TON指令形式
表1-13 TON参数及数据类型
图1-49 TON逻辑时序图
PT和ET的单位为毫秒,数据类型为有符号双精度整数,见表1-14。TIME数据使用T#标识符,以简单时间单元“T#200ms”或复合时间单元“T#2s_200ms(或T#2s200ms)”的形式输入。
表1-14 TIME数据类型
如图1-50所示,在指令窗口中选择“定时器操作”中的“TON”指令,并将其拖入程序段,这时就会跳出一个“调用选项”界面(见图1-51),选择“自动”选项,会直接生成DB数据块。也可以选择“手动”选项,根据用户需要生成DB数据块。
图1-50 选择“TON”指令
在“项目树”的“程序块”中,可以看到自动生成的“IEC_Timer_0_DB[DB1]”数据块,生成后的TON指令调用如图1-52所示。
图1-51 “调用选项”界面
图1-52 TON指令调用
TOF参数与TON相同,区别在于IN从1跳变为0时启动定时器,逻辑时序图如图1-53所示。
图1-53 TOF逻辑时序图
TP虽然参数与TON、TOF一致,但含义不同,即在IN从0跳变到1后,立即输出一个脉冲信号,持续时间受PT控制。图1-54为TP指令应用。
图1-54 TP指令应用
图1-55为TP指令时序图。由图可知,即使IN信号还处于“1”状态,输出Q在完成PT时长后,就不再保持为“1”;即使IN信号为多个“脉冲”信号,输出Q也能完成PT时长的脉冲宽度。
图1-55 TP指令时序图
TONR指令形式如图1-56所示,与TON、TOF、TP相比增加了参数R,相关参数及数据类型见表1-15。
图1-56 TONR指令形式
图1-57为TONR的时序图:当IN信号不连续输入时,ET一直累计,直到定时时间PT到,ET保持为PT的值;当R信号为ON时,ET复位为0。
表1-15 TONR参数及数据类型
图1-57 TONR的时序图
采用S7-1200 CPU 1215C DC/DC/DC设计故障警示灯,共有3种模式:当仅有故障信号1出现时,警示灯为2s接通、2s断开的慢闪模式;当仅有故障信号2出现时,警示灯为0.5s接通、0.5s断开的快闪模式;当两个故障信号同时出现时,警示灯为2s接通、0.5s断开的闪烁模式,如图1-58所示。
图1-58 控制示意图
步骤1:电气接线与输入/输出定义
图1-59为电气原理图。表1-16为输入/输出定义。
图1-59 电气原理图
表1-16 输入/输出定义
步骤2:PLC编程
表1-17为变量定义,除了输入、输出,还增加了中间变量(对应M10.0)和定时变量1~6(对应定时变量M10.1~M10.6)。
表1-17 变量定义
图1-60为主程序,具体说明如下:
程序段1:将中间变量M10.0的常开触点和常闭触点并联,确保TONR定时器的IN始终为“1”。TONR定时器在定时2s后接通M10.1,并作为TON定时器的IN端延时2s。TON延时结束后,M10.2接通复位TONR定时器,此时TON定时器也随之复位。这样一来,M10.1就变成了2s接通、2s断开的方波脉冲信号,M10.2是4s接通一个扫描周期的脉冲信号。
程序段2和程序段3:参考程序段1,只需要修改TONR和TON的PT时间就能输出类似的0.5s接通、0.5s断开的M10.3信号,2s接通、0.5s断开的M10.5信号。
程序段4:将故障信号的3种组合与各自的脉冲信号M10.1、M10.3和M10.5串联后,输出到警示灯。
图1-60 【实例1-4】的主程序
图1-60 【实例1-4】的主程序(续)
图1-61为定时器调用的DB块,共有6个,即IEC_Timer_0_DB[DB1]等,与定时器一一对应。
图1-61 定时器调用的DB块
步骤3:在线监控
图1-62为程序编译、下载后程序段3的定时器实时监控,即TON定时器IN接通后,当前的延时时间为T#1S_111MS,也可以在DB6中实时读取。
在报警指示中经常会碰到“闪烁”,虽然用TON、TONR等定时器即可完成,但更便捷的方式是采用博途软件自带的“系统和时钟存储器”实现。在图1-63中,选中“系统和时钟存储器”,单击右边窗口“启用系统存储器字节”的复选框和“启用时钟存储器字节”的复选框,采用默认的MB1、MB0作为系统存储器字节、时钟存储器字节,也可以修改地址。
(1)系统存储器位
将MB1设置为系统存储器字节后,该字节M1.0~M1.3的意义如下:
※ M1.0(FirstScan): 仅在进入RUN模式的首次扫描时为1状态,以后为0状态。
※ M1.1(DiagStatusUpdate): 诊断状态已更改。
※ M1.2(AlwaysTRUE): 总为1状态,常开触点总闭合或为高电平。在本实例中,M10.0常开和常闭的并联就是M1.2。
※ M1.3(AlwaysFALSE): 总为0状态,就是M1.2的取反。
图1-62 定时器实时监控
图1-63 “系统和时钟存储器”界面
(2)时钟存储器位
时钟存储器位是一个周期内0状态和1状态所占的时间各为50%的方波信号。以M0.5为例,其时钟脉冲的周期为1s,如果用它的触点来控制接在某输出点的指示灯,则指示灯将以1Hz的频率闪动,即亮0.5s、熄灭0.5s。
因为系统存储器和时钟存储器不是保留的存储器,所以用户程序或通信可能改写这些存储单元,破坏其中的数据。应避免改写这两个M字节,保证它们的功能正常运行。指定了系统存储器和时钟存储器字节后,这些字节就不能再作它用,否则将会使用户程序运行出错,甚至造成设备损坏或人身伤害。
本书从下一个实例开始,都默认使用系统存储器位和时钟存储器位,且地址为默认值MB1和MB0。