描述:
S7-200 提供集成于 STEP 7-Micro/WIN 的 16 位计数功能块,以及 32 位的高速位计数器。
下面的所附的 "Counter_DINT" library 可以用于计算大于 16 位的循环计数。
这个库包含了与集成的 16 位计数功能块相同的块,虽然在双字格式中有附加的溢出输出。


图. 01

"Counter_DINT" 运行库在全局变量存储区中占用一个字节。
在 STEP 7-Micro/WIN via "File" > "Library Memory..." 中输入一个地址,在这个范围可以用于库的变量存储。


图. 02

CTU_DI
当有一个加计数输入 (CU) 的上升沿时,32 位的计数器 (CTU_DI) 从当前值开始加计数。如果当前值 (CV) 大于或者等于预设值 (PV),那么计数器位 (Q) 被激活。如果复位输入被激活,那么计数器复位。如果达到最大值 (2,147,483,647) ,计数器停止计数。对于最大值一旦 (CU) 进一步得到计数脉冲,最大溢出位被激活。这个位也是通过复位输入进行复位。


图. 03

**配置 "CTU_DI" 块
**

标志 变量类型 数据类型 注释
EN IN BOOL 激活 "CTU_DI" 块
CU IN BOOL 加计数输入 (上升沿)
RESET IN BOOL 复位输入
PV IN DINT 预设值
CV IN_OUT DINT 当前计数值
MAX IN_OUT BOOL 溢出显示
Q OUT BOOL 计数器位 ("CTD_DI" 块输出)

表 01CTD_DI
当在 CD 输入有上升沿时,32 位的计数器 (CTU_DI) 从当前计算值开始减计数。如果当前值 (CV) 等于零,计数器位 (Q) 被接通。如果装载输入被接通,计数器复位计数位 (Q),并且装载预设值 (PV) 到当前值 (CV)。当达到零时,减计数器停止计数。一旦计数器达到零进一步脉冲计数 (CD) ,最小溢出位被激活。这个位也是通过负载输入进行复位。


图. 04

**配置 "CTD_DI" 块
**

标志 变量类型 数据类型 注释
EN IN BOOL 激活 "CTD_DI" 块
CD IN BOOL 减计数输入 (上升沿)
LOAD IN BOOL 负载输入
PV IN DINT 预设值
CV IN_OUT DINT 当前计数值
MIN IN_OUT BOOL 溢出显示
Q OUT BOOL 计数器位("CTD_DI"块输出)

表 02CTUD_DI
当加计数输入 (CU) 有上升沿时,32 位的运行加减计数器 (CTU_DI) 向上计数;当在减计数输入 (CD) 有上升沿时,向下计数。当前值保存在参数 CV 中。每次运行时,预设值 PV 与当前值进行比较。如果达到最大值 (2,147,483,647),在加计数输入的下一个上升沿导致计数器转向并且又从最小值 (­2,147,483,648) 开始计算。如果达到最小值 (-2,147,483,648) ,在减计数输入的下一个上升沿计数器转向并且继续从最大值 (2,147,483,647) 开始计算。不论哪种情况,都设置溢出位 OV 。如果当前值 CV 大于或者等于预设值 PV,计数器位 Q 被激活。在其它任何情况下,计数器位被断开。如果复位输入被激活,计数器 CV 和 溢出位 OV 被复位。


图. 05

**配置 "CTUD_DI" 块
**

标志 变量类型 数据类型 注释
EN IN BOOL 激活 "CTUD_DI" 块
CU IN BOOL 加计数输入 (上升沿)
CD IN BOOL 减计数输入 (上升沿)
RESET IN BOOL 复位输入
PV IN DINT 预设值
CV IN_OUT DINT 当前计数值
OV IN_OUT BOOL 溢出显示
Q OUT BOOL 计数器位 ("CTUD_DI" 块输出)

表 03下载:
"Counter_DINT.zip" 下载包括如下文件:

文件 描述
"counter_dint.mwl" 库 - 包含 32 位的计数位 "CTU_DI", "CTD_DI" 和 "CTUD_DI"
"Counter_DINT.mwp" 项目 - 本常问问题的项目案例

Counter_DINT.zip ( 9 KB )

注意事项:

相关日志

Related Post

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注