西门子SCL编程笔记(7)---定时器指令


西门子SCL语言中的定时器指令都是使用IEC定时器,其指令包括:脉冲定时器(TP)、延时接通定时器(TON)、延时断开定时器(TOF)、保持型延时接通定时器(TONR)、复位定时器(RESET_TIMER)及定时器预设值设置(PRESET_TIMER)指令,下面我们来一一介绍。

在这里插入图片描述


1、脉冲定时器(TP)指令

脉冲定时器(TP)指令的作用是用来产生脉冲信号。从指令列表中添加TP指令时会自动生成背景数据块(默认名称IEC_Timer_0_DB),指令初始状态如下:
在这里插入图片描述
脉冲定时器(TP)指令有四个引脚参数:
1、IN:布尔型变量,输入值,当该引脚信号从0变为1时(上升沿)定时器开始计时;
2、PT:时间型变量,输入值,Preset Time,表示定时器的预设时间值;
3、Q:布尔型变量,输出值,定时器标志位;
4、ET:时间型变量,输出值,表示定时器的当前时间;

脉冲定时器的工作过程如下:
1、IN参数的上升沿信号启动定时器开始计时,此时Q输出信号的值为1;随着时间的流逝,当定时器的当前值大于预设值PT时,即使IN的信号仍然为1,这时候输出信号Q的值也为0;
2、当定时器激活后,无论输入参数IN的值是否发生变化,定时器都将持续计时,直到预设的时间值走完;
3、定时器计时结束后,IN参数信号的上升沿会重新激活定时器;

脉冲定时器(TP)的时序图如下:
在这里插入图片描述


2、延时接通定时器(TON)指令

延时接通定时器(TON)指令用于信号的延时接通。从指令列表中添加该指令时会自动生成背景数据块(默认名称IEC_Timer_0_DB),指令初始状态如下:
在这里插入图片描述

TON指令也有四个引脚,其含义与之前介绍的TP(脉冲定时器)指令的引脚参数相同。
延时接通定时器的工作过程如下:
1、引脚IN的上升沿信号(0变为1)启动定时器开始计时,此时输出引脚Q的值为0;
2、随着时间的流逝,当定时器的当前值大于预设的时间值,并且输入引脚IN的信号值仍保持为1时,输出引脚Q的值从0变为1;
3、如果在计时的过程中,输入参数IN的值从1变为0,则定时器停止计时;直到下一次上升沿(从0变为1)后重新计时;延时接通定时器(TON)的时序图如下:
在这里插入图片描述


3、延时断开定时器(TOF)指令

延时断开定时器指令TOF用于信号的延时断开。从指令列表中添加该指令时会自动生成背景数据块(默认名称IEC_Timer_0_DB)I指令初始状态如下:
在这里插入图片描述

延时断开定时器(TOF) 指令也有四个引脚,其含义与之前介绍的TP(脉冲定时器)指令的引脚参数相同。

延时断开定时器(TOF)指令的工作过程如下:
1、当输入信号IN从0变为1时,定时器使能,此时输出Q的值为1;
2、当输入信号IN从1变为0时,定时器开始计时,输出Q的值保持为1;
3、随着时间的流逝,当时间值ET大于预设值PT并且输入信号IN的值保持为0时,输出Q的值变为0;
4、若在计时过程中,输入信号IN的值从0变为1,则定时器复位;再次从1变为0时,定时器重新开始计时。延时断开定时器时序图如下:
在这里插入图片描述


4、保持型延时接通定时器(TONR)指令

保持型延时接通定时器指令TONR可以起到时间累加的作用。
从指令列表中添加TONR指令时会自动生成背景数据块(默认名称 IEC_Timer_0_DB),指令的初始状态如下:
在这里插入图片描述

TONR指令有五个引脚参数,其中IN、PT、Q、ET四个引脚含义与之前介绍的 TP (脉冲定时器)指令的引脚参数相同。
R为复位信号引脚,当其信号值从0变为1时,当前时间ET值和输出Q的值均复位为0;
保持型延时接通定时器可以对输入信号IN的状态1信号进行累加。
当输入信号IN从0变为1时,定时器开始计时,此时输出Q的值为0。定时器计时的过程中,流逝的时间被记录在ET中。若在到达预设值PT之前,输入信号从1变为0,则定时器停止计时。当下次输入信号IN从0变为1时,定时器从上次记录的 ET值开始继续计时,直到ET累计的时间大于或等于PT时,输出Q变为1;

当输出Q变为1时,无论输入IN的信号怎么变化,都保持为1;当复位信号R从0变为1时,输出Q和时间流逝值ET均被复位为0;保持型延时接通定时器的时序图如下:
在这里插入图片描述


5、复位定时器指令RESET_TIMER

RESET_TIMER可用于IEC定时器的复位,指令的初始状态如下:

在这里插入图片描述

建议将其放入IF语句中,以便在可控的条件下进行复位。该指令执行后,定时器的当前值及输出值均复位为0;

IF #started = false THEN
 
 "IEC_Timer_0_DB_3".TON(IN:="Tag_Start",
                        
 PT := "Tag_PresetTime",
 
 Q => "Tag_Status(1)",
 
 ET => "Tag_ElapsedTime");
 
 #started := true;
 
END_IF;




IF "IEC_Timer_0_DB_3".ET < T#25s THEN
 
 RESET_TIMER(TIMER := "IEC_Timer_0_DB_3");
 
 #started := false;
 
END_IF;

代码解析:
当变量 #started 的信号状态为“0”时,则在操作数“Tag_Start”上出现信号上升沿时执行“接通延时”指令。存储在背景数据块“IEC_Timer_0_DB_3”中的 IEC 定时器启动,持续操作数“Tag_PresetTime”中已指定的一段时间。// 如果超出“Tag_PresetTime”操作数中指定的持续时间,则置位操作数 Tag_Status(1)。// 只要操作数“Tag_Start”的信号状态为“1”,则参数 Q 将保持置位。启动输入的信号状态从“1”变为“0”时,复位参数 Q 的操作数。

如果 IEC 定时器“IEC_Timer_0_DB_3”的超出时间小于 25s,则执行“复位定时器”指令,并复位存储在“IEC_Timer_0_DB_3”背景数据块中的定时器。


6、定时器预设值设置指令PRESET TIMER

PRESET_TIMER可用于设置IEC定时器的预设时间值,指令初始状态如下:
在这里插入图片描述

其中:
参数PT为需要设置的时间值;
TIMER: 为IEC定时器名称/编号;
代码案例如下:

IF #started = false THEN

 "IEC_Timer_0_DB_3".TON (IN := "Tag_Start",
 
 PT := "Tag_PresetTime",
 
 Q => "Tag_Status(1)",
 
 ET => "Tag_ElapsedTime");
 
 #started := true;
 
 #preset:=true;
 
END_IF;


IF "IEC_Timer_0_DB_3".ET < T#10s AND #preset = true THEN

 PRESET_TIMER(PT := T#25s,
 
              TIMER := "IEC_Timer_0_DB_3");
              
 #preset := false;
 
END_IF;

代码解析:
当变量 #started 的信号状态为“0”时,则在操作数“Tag_Start”上出现信号上升沿时执行“接通延时”指令。存储在背景数据块“IEC_Timer_0_DB_3”中的 IEC 定时器启动,持续操作数“Tag_PresetTime”中已指定的一段时间。// 如果超出“Tag_PresetTime”操作数中指定的持续时间 PT,则置位操作数 Tag_Status(1)。// 只要操作数“Tag_Start”的信号状态为“1”,则参数 Q 将保持置位。启动输入的信号状态从“1”变为“0”时,复位参数 Q 的操作数。

当 IEC 定时器“TON_DB”的超出时间小于 10s,且变量 #preset 的信号状态为“1”时,执行“加载持续时间”指令。该指令将参数 PT 处指定的持续时间写入背景数据块“IEC_Timer_0_DB_3”中,因此将覆盖背景数据块中操作数“Tag_PresetTime”的时间值。因此,在下一次查询或访问“IEC_Timer_0_DB_3”.Q 或“IEC_Timer_0_DB_3”.ET 时,定时器状态的信号状态可能会发生变化。


好了,关于SCL的定时器指令就先聊到这里。

西门子S7-1200 SCL编程指令手册.pdf》是一本详细介绍了西门子S7-1200系列PLC控制器的SCL(Structured Control Language,结构化控制语言)编程指令的手册。SCL是一种高级编程语言,可以在S7-1200 PLC中实现复杂的控制算法和逻辑。该手册包含了SCL编程指令的详细说明和使用方法,对于PLC编程人员来说是非常宝贵的参考资料。 手册的内容主要分为几个部分:基本概念介绍、语法规则、数据类型、基本指令、控制指令等。首先,手册介绍了SCL编程的基本概念,如变量、数据类型、运算符等,帮助读者更好地理解SCL编程的基本原理。接着,手册详细说明了SCL的语法规则,包括变量声明、循环语句、条件语句等,让读者了解如何正确编写SCL程序。 手册还列举了SCL编程中常用的数据类型,如整数、浮点数、字符串等,并提供了相应数据类型的定义和使用方法。此外,手册还介绍了一些基本指令,例如赋值指令、运算指令、输入输出指令等,读者可以通过这些指令完成基本的算术运算和数据处理。此外,手册还介绍了一些常用的控制指令,如循环控制、条件控制等,帮助读者更好地掌握SCL编程。 总之,《西门子S7-1200 SCL编程指令手册.pdf》对于想要学习和掌握S7-1200 PLC的SCL编程的人来说是一本非常有价值的资料。通过学习该手册,读者可以了解SCL编程的基本概念和语法规则,掌握常用的编程指令,从而编写出高效、可靠的PLC控制程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_工控_小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值