西门子SCL编程笔记(8)---计数器指令

今天这篇文章我们来谈谈西门子SCL语言中的计数器(Counter)指令。
在这里插入图片描述

S7-1200和S7-1500系列PLC的使用IEC计数器,包括三类:加计数器(CTU,Count UP)、减计数器(CTD,Count Down)和加减计数器(CTUD,Count up and down)。

1.CTU:增计数

加计数器指令(CTU)用来进行向上计数。

从指令列表中添加该指令时会提示生成背景数据块(或多重背景数据块)指令的初始状态如下:
在这里插入图片描述
指令说明
可以使用“加计数”指令递增 CV 参数的值。如果参数 CU 的信号状态从“0”变为“1”(信号上升沿),则执行该指令,同时参数 CV 的当前计数器值加“1”。每检测到一个上升沿,计数器值就会递增,直到其达到参数 CV 中所指定数据类型的上限(32767)。达到上限时,参数 CU 的信号状态将不再影响该指令。

可以通过参数 Q 查询计数状态。参数 Q 的信号状态由参数 PV 决定。如果当前计数器值大于或等于参数 PV 的值,则参数 Q 的信号状态将置位为“1”。在其它任何情况下,参数 Q 的信号状态均为“0”。也可以为参数 PV 指定一个常数。

参数 R 的信号状态变为“1”时,参数 CV 的值将复位为“0”。只要参数 R 的信号状态为“1”,参数 CU 的信号状态就不会影响该指令。

在这里插入图片描述
示例:

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

“IEC_COUNTER_DB”.CTU(CU := “Tag_Start”,
R := “Tag_Reset”,
PV := “Tag_PresetValue”,
Q => “Tag_Status”,
CV => “Tag_CounterValue”);

示例代码解析:
当“Tag_Start”操作数的信号状态从“0”变为“1”时,将执行“加计数”指令,同时“Tag_CounterValue”操作数的当前计数器值加 1。每检测到一个额外的信号上升沿,计数器值都会递增,直至达到所指定数据类型的上限值 (INT = 32767)。

只要当前计数器值大于或等于操作数“Tag_PresetValue”的值,输出“Tag_Status”的信号状态就为“1”。在其它任何情况下,输出“Tag_Status”的信号状态均为“0”。当前计数器值存储在“Tag_CounterValue”操作数中。


2.CTD:减计数

加计数器指令(CTD)用来进行向下计数。

从指令列表中添加该指令时会提示生成背景数据块(或多重背景数据块)指令的初始状态如下:
在这里插入图片描述
指令说明:

“减计数”指令用于递减 CV 参数的值。如果参数 CD 的信号状态从“0”变为“1”(信号上升沿),则执行该指令,同时参数 CV 的当前计数器值减 1。每检测到一个信号上升沿,计数器值就会递减 1,直到达到指定数据类型的下限为止(-128)。达到下限时,参数 CD 的信号状态将不再影响该指令。

可以通过参数 Q 查询计数状态。如果当前计数器值小于或等于“0”,则参数 Q 的信号状态将置位为“1”。在其它任何情况下,参数 Q 的信号状态均为“0”。也可以为参数 PV 指定一个常数。

当参数 LD 的信号状态变为“1”时,参数 CV 的值会设置为参数 PV 的值。只要参数 LD 的信号状态为“1”,参数 CD 的信号状态就不会影响该指令。

在这里插入图片描述
示例

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

“IEC_SCOUNTER_DB”.CTD(CD := “Tag_Start”,
LD := “Tag_Load”,
PV := “Tag_PresetValue”,
Q => “Tag_Status”,
CV => “Tag_CounterValue”);

示例解析:
当“Tag_Start”操作数的信号状态从“0”变为“1”时,执行该指令且“Tag_CounterValue”操作数的值减 1。每检测到一个额外的上升沿,计数器值都会递减,直至达到指定数据类型的下限 (-32768或-128)。

只要当前计数器值小于或等于 0,操作数“Tag_Status”的信号状态就为“1”。在其它任何情况下,输出“Tag_Status”的信号状态均为“0”。当前计数器值存储在“Tag_CounterValue”操作数中。


3.CTUD:加减计数

加减计数器(CTUD)指令即可以向上计数,也可以向下计数。
从指令列表中添加该指令时会提示生成背景数据块(或多重背景数据块)指令的初始状态如下:
在这里插入图片描述

说明:
使用“加减计数”指令递增和递减 CV 参数的计数器值。如果参数 CU 的信号状态从“0”变为“1”(信号上升沿),则参数 CV 的当前计数器值加 1。如果参数 CD 的信号状态从“0”变为“1”(信号上升沿),则参数 CV 的计数器值减 1。如果在一个程序周期内输入 CU 和 CD 都出现了一个信号上升沿,则参数 CV 的当前计数器值保持不变。

计数器值达到参数 CV 指定数据类型的上限后,停止递增。达到上限后,即使出现信号上升沿,计数器值也不再递增。达到指定数据类型的下限后,计数器值便不再递减。

当参数 LD 中的信号状态变为“1”时,参数 CV 的计数器值会设置为参数 PV 的值。只要参数 LD 的信号状态为“1”,参数 CU 和 CD 的信号状态就不会影响该指令。

当 R 参数的信号状态变为“1”时,计数器值将置位为 0。只要 R 参数的信号状态仍为“1”,参数 CU、CD 和 LD 信号状态的改变就不会影响“加减计数”指令。

可以在 QU 参数中查询加计数器的状态。如果当前计数器值大于或等于参数 PV 的值,则参数 QU 的信号状态将置位为“1”。在其它任何情况下,参数 QU 的信号状态均为“0”。也可以为参数 PV 指定一个常数。

可以在 QD 参数中查询减计数器的状态。如果当前计数器值小于或等于“0”,则参数 QD 的信号状态将置位为“1”。在其它任何情况下,参数 QD 的信号状态均为“0”。
在这里插入图片描述
示例

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

“IEC_COUNTER_DB”.CTUD(CU := “Tag_Start1”,
CD := “Tag_Start2”,
LD := “Tag_Load”,
R := “Tag_Reset”,
PV := “Tag_PresetValue”,
QU => “Tag_CU_Status”,
QD => “Tag_CD_Status”,
CV => “Tag_CounterValue”);

示例解析:
如果“Tag_Start1”操作数的信号状态出现上升沿,当前计数器的值加 1 并存储在“Tag_CounterValue”操作数中。如果“Tag_Start2”操作数的信号状态出现信号上升沿,则计数器值减 1 并存储在“Tag_CounterValue”操作数中。参数 CU 出现信号上升沿时计数器的值将递增,直至达到指定数据类型 (INT) 的上限。如果 CD 参数出现上升沿,计数器值将递减,直至达到指定数据类型 (INT) 的下限。

只要当前计数器值大于或等于操作数“Tag_PresetValue”的值,操作数“Tag_CU_Status”的信号状态就为“1”。在其它任何情况下,输出“Tag_CU_Status”的信号状态均为“0”。

只要当前计数器值小于或等于 0,操作数“Tag_CD_Status”的信号状态就为“1”。在其它任何情况下,输出“Tag_CD_Status”的信号状态均为“0”。


好了,今天关于西门子SCL计数器指令的分享就到这里

  • 30
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
西门子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、付费专栏及课程。

余额充值