_bool_out, CV=>_out); 可使用计数器指令">

西门子博图计数器指令说明

  • 格式: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

(当前计数值)装载到计数

器。