当前位置:首页 > 技术分析 > 正文内容

西门子SCL语言编程——IEC 定时器(二)

ruisui884个月前 (02-20)技术分析13


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

保持型延时接通定时器也叫时间累加器,用来累加时间。初始状态如下:

参数 IN 的信号状态变为“1”时,将执行时间测量,同时时间 PT 开始计时。时间 PT 计时过程中,如果 IN 参数信号状态为“1”,则记录的时间值将进行累加。如果“IN”输入处的信号状态变为“0”,时间测量将中断。如果“IN”输入处的信号状态重新变为“1”,时间测量将重新开始。累加后的时间将在参数 ET 中输出以供查询。达到时间 PT 时,参数 Q 的信号状态变为“1”。即使 IN 参数的信号状态变为“0”,Q 参数仍将保持为“1”。

不论参数 IN 的信号状态如何,参数 R 都将复位参数 ET 和 Q。保持型延时接通定时器参数:

保持型延时接通定时器的时序图如下:



5 复位定时器指令RESET_TIMER

RESET_TIMER可用于IEC定时器的复位,在 TIMER 参数中,将“复位定时器”指令分配给程序中所声明的 IEC 定时器。该指令必须在 IF 指令中编程。只有在调用指令时才更新指令数据,而不是每次都访问分配的 IEC 定时器。

以下示例说明了该指令的工作原理:

IF #started = false THEN

"TON_DB".TON(IN := "Tag_Start",

PT := "Tag_PresetTime",

Q => "Tag_Status",

ET => "Tag_ElapsedTime");

#started := true;

END_IF;


IF "TON_DB".ET < T#25s THEN

RESET_TIMER(TIMER := "TON_DB");

#started := false;

END_IF;

示例中定时镶嵌在了IF语句内部,这种结构有一个很大的缺陷就是必须借助复位定时器清除时间,我们可以把定时器放在IF语句外,而IF语句只包含定时器启动所用的"Tag_Start",这样就可以不用复位指令。

6 加载定时器预值指令PRESET_TIMER

PRESET_TIMER可用于设置IEC定时器的预设时间值,指令初始状态如下:

很多人刚刚接触S7-1200/1500时,很不习惯用IEC定时器,而S7-300/400中也有IEC定时器,只不过是在SFB中。然而IEC定时器有诸多好处,比如定时器时间长,易于嵌入FC/FB中,没有数量限制,而且在300/400中设定时间可以立即生效。对于1200/1500,虽然在定时器上修改不能立即生效,但可以利用加载预设值指令来完成任务。示例如下:

新建建立全局数据块DB1,声明定时器及中间变量:

新建FC/FB(根据实际情况由程序员选择),写入如下代码:

关联DB1变量定时器预设值PT至HMI(HMI中PT变量域为输入输出型)

从DB1变量声明中得知预设值PT初始时间为20秒,程序运行后,定时器定时为20秒。正常情况,IF语句中比较的结果相等,判断出条件为假跳过IF语句,后一句赋值相等数可以忽略。

当操作人员更改PT值时,PT与Last_PT比较结果为不相等,IF语句判断后执行加载持续时间,并将PT的值赋值给Last_PT,一个扫描周期后又回到IF语句比较的结果相等的这种假条件。

再换个角度看,小于6行的代码是原有程序,大于6行的代码仅仅是为了更改预设值PT而加进去的。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2114.html

标签: 清除定时器
分享给朋友:

“西门子SCL语言编程——IEC 定时器(二)” 的相关文章

多项修正 尼康D4s发布最新1.10版固件

尼康公司与2014年8月27日发布了D4s的最新固件,固件版本号为C:1.10。这次固件升级,主要解决了一些BUG,并且对拍摄菜单与相机操作做了一定调整。下面是本次新固件的具体信息:尼康发布D4s最新C固件 1.10版对C固件升级到1.10版所作的修改:当选定运动VR模式并换上 AF-S 尼克尔 4...

12种JavaScript中最常用的数组操作整理汇总

数组是最常见的数据结构之一,我们需要绝对自信地使用它。在这里,我将列出 JavaScript 中最重要的几个数组常用操作片段,包括数组长度、替换元素、去重以及许多其他内容。1、数组长度大多数人都知道可以像这样得到数组的长度:const arr = [1, 2, 3]; console.log(a...

前端路由简介以及vue-router实现原理

作者:muwoo 来源:https://zhuanlan.zhihu.com/p/37730038后端路由简介路由这个概念最先是后端出现的。在以前用模板引擎开发页面时,经常会看到这样http://www.xxx.com/login 大致流程可以看成这样:浏览器发出请求服务器监听到80 端口(或443...

Vue中的路由配置常用属性

router:路由页面跳转的核心库;引入路由:import VueRouter from 'vue-router'; 注册路由:const router = new VueRouter({ })mode:模式路由有hash history两种模式:hash模式URL中包含#,#后边是...

什么是异步,什么是同步,啥意思?

概述:本文讨论了程序设计领域的同步、异步和多线程的一些基本概念。同步异步这两个词翻译的其实不通。我是不知道这两个词是啥意思。同步:步伐整齐;异步:步伐不整齐。大概这个意思,但是在编程设计领域啥意思?国人的烦恼多来自于不明确的翻译所造成的后果。异步对应的英文是Asynchronous。这个词的含义是“...

能者多劳!让NVMe固态硬盘做系统盘的同时,加速SATA数据盘

不知不觉当中,固态硬盘已经取代机械硬盘成为主流。越来越多的玩家已经淘汰机械盘,使用NVMe+SATA的固态硬盘高低搭配。既然是高低搭配,就一定会有性能差距,是否能从NVMe固态硬盘中划分出一小部分空间来给SATA固态硬盘加速,实现更好地整机性能呢?答案是肯定的,而且这一功能早已隐藏在英特尔Z170、...