全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

如何将IEC定时器和IEC计数器声明为局部变量?

时间:2023-09-11 09:37

人气:

作者:admin

标签: 计数器  定时器 

导读:IEC 定时器和计数器的统一应用,可显著提高程序代码的运行效率。...

IEC 定时器和计数器的优势

IEC 定时器和计数器的统一应用,可显著提高程序代码的运行效率。

采用这种方式具有以下优势:

通过新生成的背景数据块,可对块进行多次调用。

IEC 计数器的计数范围更大。

与 S5 定时器相比,IEC 定时器性能更佳,且计时更为准确。

STEP 7 V5.x 中的编程方式

在 STEP 7 V5.x 中,S5 定时器和计数器通过一个数字进行绝对寻址。由于这种寻址方式与具体数字相关,因此 S5 定时器和计数器无法对程序块进行重用。

定时器值的范围限制为 9990 秒,而计数器的最大编号限值为 999。

STEP 7 TIA Portal 中的操作步骤

在调用或需使用时,需要在程序块中对该 IEC 定时器和计数器进行声明。IEC 定时器是一种数据类型为 IEC_TIMER、IEC_LTIMER 或 TON_TIME 和 TON_LTIME 的结构,也可声明为块中的局部变量。IEC 计数器是一种数据类型为 IEC_SCOUNTER、IEC_USCOUNTER 之类的结构。

TIA Portal 中的编程示例

以下示例说明了如何将 IEC 定时器和 IEC 计数器声明为局部变量:

e115f928-4fde-11ee-a25d-92fbcf53809c.png

TON IEC 定时器和 CTU IEC 计数器的数据将作为局部变量(多重实例)存储在块接口中。

也可将结构化的 IEC 定时器和 IEC 计数器创建为多重实例,并用于程序代码中。

为此,需创建一个 ARRAY of TON 类型的全局数据块。数据类型 TON 不会显示在下拉列表中,但可手动输入:
e138b2f6-4fde-11ee-a25d-92fbcf53809c.png
创建函数块并将指令“TON:接通延时”拖放到程序段中。调用 IEC 定时器 TON 的实例,如下所示:
e14e9490-4fde-11ee-a25d-92fbcf53809c.png

以多重实例方式调用定时器

如果要使用 IN 参数以多重实例方式启动一个定时器,则在程序代码中不得提前对其进行初始化。在这种情况下,在 IN 参数处调用的定时器无法再识别信号的上升沿,并且定时器不会启动:

1.在块接口的“Static”部分,将定时器“Time_1”创建为数据类型为“TP_TIME”的多重实例。

2.编写以下程序代码:

STL 说明
A "Tag_Output" // 当“Tag_Output”输出接收到信号状态 1 时,
= #Time_1.IN // 在信号的上升沿处,初始化多重实例定时器 #Timer_1 的 IN 参数。
CALL #Time_1 // 调用多重实例定时器并再次查询 IN 参数时,该定时器会因未查询到新的信号上升沿而不启动。
// 输入 TIME 作为该指令的数据类型。
time_type := Time
IN := "Tag_Output"
PT := T#30s
Q := "Tag_4"
ET := "Tag_ElapsedTime"

这也正是必需在调用中编程多重实例定时器的初始化的原因所在。

STL 说明
CALL #Time_1 // 定时器被调用并启动。
// 输入 TIME 作为该指令的数据类型。
time_type := Time
IN := "Tag_Output"
PT := T#30s
Q := "Tag_4"
ET := "Tag_ElapsedTime"







审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信