西门子博图计数器指令说明
- 格式:pdf
- 大小:299.84 KB
- 文档页数:5
计数器操作
计数器指令 LAD/FBD SCL 说明
"IEC_Counter_0_DB".CTU(
CU:=_bool_in,
R:=_bool_in,
PV:=_in,
Q=>_bool_out,
CV=>_out); 可使用计数器指令对内部程序事
件和外部过程事件进行计数。每
个计数器都使用数据块中存储的
结构来保存计数器数据。用户在
编辑器中放置计数器指令时分配
相应的数据块。
• CTU 是加计数器
• CTD 是减计数器
• CTUD 是加减计数器
"IEC_Counter_0_DB".CTD(
CD:=_bool_in,
LD:=_bool_in,
PV:=_in,
Q=>_bool_out,
CV=>_out);
"IEC_Counter_0_DB".CTUD(
CU:=_bool_in,
CD:=_bool_in,
R:=_bool_in,
LD:=_bool_in,
PV:=_in_,
QU=>_bool_out,
QD=>_bool_out,
CV=>_out_);
1 对于 LAD 和
FBD
:从指令名称下的下拉列表中选择计数值数据类型。
2 STEP 7 会在插入指令时自动创建 DB。
3 在 SCL 示例中,“IEC_Counter_0_DB”是背景 DB 的名称。
参数的数据类型
参数 数据类型1 说明
CU, CD Bool 加计数或减计数,按加或减一
计数
R (CTU,
CTUD) Bool 将计数值重置为零
LD (CTD,
CTUD) Bool 预设值的装载控制
PV SInt, Int, DInt, USInt, UInt,
UDInt 预设计数值
Q, QU Bool CV >= PV 时为真
QD Bool CV <= 0 时为真
CV SInt, Int, DInt, USInt, UInt,
UDInt 当前计数值 1 计数值的数值范围取决于所选的数据类型。如果计数值是无符号整型数,则可以减计数
到零或加计数到范围限值。如果计数值是有符号整数,则可以减计数到负整数限值或加计
数到正整数限值。
用户程序中可以使用的计数器数仅受 CPU 存储器容量限制。计数器占用以下存储器空
间:
• 对于 SInt 或 USInt 数据类型,计数器指令占用 3 个字节。
• 对于 Int 或 UInt 数据类型,计数器指令占用 6 个字节。
• 对于 DInt 或 UDInt 数据类型,计数器指令占用 12 个字节。
这些指令使用软件计数器,软件计数器的最大计数速率受其所在的 OB 的执行速率限制。
指令所在的 OB 的执行频率必须足够高,以检测 CU 或 CD 输入的所有跳变。要了解更快的计数操作,请参见 CTRL_HSC 指令。
说明
在 FB 中放置计数器指令后,可以选择多重背景数据块选项,各计数器结构
名称可以对应不同的数据结构,但计数器数据包含在同一个数据块中,从而
无需每个计数器都使用一个单独的数据块。这减少了计数器所需的处理时间
和数据存储空间。在共享的多重背景数据块中的计数器数据结构之间不存在
交互作用。 计数器的运行 CTU 运算(加计数)
计数器 运行
当参数 CU 的值从 0 变为 1 时,CTU 计
数器会使计数值加 1。CTU 时序图显示了计
数值为无符号整数时的运行(其中,PV =
3)。
• 如果参数 CV(当前计数值)的值大
于或等于参数 PV(预设计数值)的值,
则计数器输出参数 Q = 1。
• 如果复位参数 R 的值从 0 变为 1,
则当前计数值重置为 0。 CTD
运算(减计数)
计数器 运行
当参数 CD 的值从 0 变为 1
时,CTD 计数器会使计数值减
1。CTD 时序图显示了计数值
为无符号整数时的运行(其
中,PV = 3)。
• 如果参数 CV(当前计
数值)的值等于或小于 0,
则计数器输出参数 Q = 1。
• 如果参数 LOAD 的值从
0 变为 1,则参数 PV(预
设值)的值将作为新的 CV
(当前计数值)装载到计数
器。