公司主营:西门子数控,S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人机界面,变频器,DP总线,MM变频器,6SE70交流工程调速变频器6RA70等系列产品。
产品简介
详细介绍
西门子组态6AV2103-0XA00-0AM0写程序
本公司宗旨:本着以诚信为本,以顾客为中心,让顾客满意,创造一个舒心的购物每次调用“加减计数"指令,都会为其分配一个 IEC 计数器用来存储指令数据。IEC 计数
器是一种具有以下某种数据类型的结构:
对于 S7-1200 CPU
数据类型 IEC_<Counter> 的数据块(共
享 DB)
局部变量
● IEC_SCOUNTER / IEC_USCOUNTER
● IEC_COUNTER / IEC_UCOUNTER
● IEC_DCOUNTER / IEC_UDCOUNTER
● CTUD_SINT / CTUD_USINT
● CTUD_INT / CTUD_UINT
● CTUD_DINT / CTUD_UDINT
● IEC_SCOUNTER / IEC_USCOUNTER
● IEC_COUNTER / IEC_UCOUNTER
● IEC_DCOUNTER / IEC_UDCOUNTER
对于 S7-1500 CPU
数据类型 IEC_<Counter> 的数据块(共
享 DB)
局部变量
● IEC_SCOUNTER / IEC_USCOUNTER
● IEC_COUNTER / IEC_UCOUNTER
● IEC_DCOUNTER / IEC_UDCOUNTER
● IEC_LCOUNTER / IEC_ULCOUNTER
● CTUD_SINT / CTUD_USINT
● CTUD_INT / CTUD_UINT
● CTUD_DINT / CTUD_UDINT
● CTUD_LINT / CTUD_ULINT
● IEC_SCOUNTER / IEC_USCOUNTER
● IEC_COUNTER / IEC_UCOUNTER
● IEC_DCOUNTER / IEC_UDCOUNTER
● IEC_LCOUNTER / IEC_ULCOUNTER
可以按如下声明 IEC 计数器:
● 数据类型 IEC_<Counter> 的数据块声明(例如,“MyIEC_COUNTER")
● 声明为块中“Static"部分的 CTUD_<Data type> 或 IEC_<Counter> 类型的局部变量(例
如 #MyIEC_COUNTER)
如果在单独的数据块中设置 IEC 计数器(单背景),则将默认使用“的块访问"
(optimized block access) 创建背景数据块,并将各个变量定义为具有保持性。有关在背景
数据块中设置保持性的更多信息,请参见“另请参见"。
如果在函数块中使用“的块访问"(optimized block access) 设置 IEC 计数器作为本地
变量(多重背景),则其在块接定义为具有保持性。
指令
4.1 指令
对 PLC 进行编程
790 编程和操作手册, 10/2018
执行“加减计数"指令之前,需要事先预设一个逻辑运算。该运算可以放置在程序段的中
间或者末尾。
参数
下表列出了“加减计数"(Count up and down) 指令的参数:
参数声明数据类型存储区说明
S7-1200 S7-1500
CU Input BOOL I、Q、M、
D、L 或常
数
I、Q、M、
D、L 或常
数
加计数输入
CD Input BOOL I、Q、M、
D、L 或常
数
I、Q、M、
D、L 或常
数
减计数输入
R Input BOOL I、Q、M、
D、L、P 或
常数
I、Q、M、
T、C、D、
L、P 或常
数
复位输入
LD Input BOOL I、Q、M、
D、L、P 或
常数
I、Q、M、
T、C、D、
L、P 或常
数
装载输入
PV Input 整数I、Q、M、
D、L、P 或
常数
I、Q、M、
D、L、P 或
常数
输出 QU 被设置
的值/LD = 1 的情
况下,输出 CV
被设置的值。
QU Output BOOL I、Q、M、
D、L
I、Q、M、
D、L
加计数器的状态
QD Output BOOL I、Q、M、
D、L
I、Q、M、
D、L
减计数器的状态
CV Output 整数、CHAR、
WCHAR、
DATE
I、Q、M、
D、L、P
I、Q、M、
D、L、P
当前计数器值
可以从指令框的“???"下拉列表中选择该指令的数据类型。
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 791
示例
以下示例说明了该指令的工作原理:
如果输入“TagIn_1"或“TagIn_2"的状态从“0"变为“1"(上升沿),则执行“加
减计数"指令。输入“TagIn_1"出现上升沿时,当前计数器值加 1 并存储在输出
“Tag_CV"中。输入“TagIn_2"出现上升沿时,计数器值减 1 并存储在输出“Tag_CV"
中。输入 CU 出现上升沿时,计数器值将递增,直至其达到上限值 32767。输入 CD
出现上升沿时,计数器值将递减,直至其达到下限 (INT = -32768)。
只要当前计数器值大于或等于“Tag_PV"输入的值,“TagOut"输出的状态就为“1"。
在其它任何情况下,输出“TagOut"的状态均为“0"。
只要当前计数器值小于或等于 0,“TagOut_QD"输出的状态就为“1"。在其它任何情
况下,输出“TagOut_QD"的状态均为“0"。
有关以上示例中编程代码的更多信息,请参见“Sample Library for Instructions
(页 697)"。
参见
有效数据类型概述 (页 247)
设置背景数据块中的保持性 (页 8114)
设置局部变量的保持性 (页 8040)
检测存储区的填充量示例 (页 8267)
有关 LAD 的基本信息 (页 8207)
指令
4.1 指令
对 PLC 进行编程
792 编程和操作手册, 10/2018
(S7-1500)
S_CU:分配参数并加计数 (S7-1500)
说明
可使用“分配参数并加计数"指令递增计数器值。如果输入 CU 的状态从“0"变为“1"
(上升沿),则当前计数器值将加 1。当前计数器值在输出 CV 处输出十六进制值,在
输出 CV_BCD 处输出 BCD 编码的值。计数器值达到上限“999"后,停止递增。达到上限
后,即使出现上升沿,计数器值也不再递增。
当输入 S 的状态从“0"变为“1"时,将计数器值设置为参数 PV 的值。如果已设置计
数器,并且输入 CU 处的 RLO 为“1",则即使没有检测到沿的变化,计数器也会在下
一扫描周期相应地进行计数。
当输入 R 的状态变为“1"时,将计数器值置位为“0"。只要 R 输入的状态为“1",
输入 CU 和 S 状态的处理就不会影响该计数器值。
如果计数器值大于 0,输出 Q 的状态就为“1"。如果计数器值等于 0,则输出 Q 的信
号状态为“0"。
说明
只需在程序中的某一位置处使用计数器,即可避免计数错误的风险。
“分配参数并加计数"指令需要对边沿评估进行前导逻辑运算,可以程序段中或程序
段的结尾。
参数
下表列出了指令“分配参数并加计数"的参数:
参数 声明数据类型存储区说明
<计数器> InOut/Input COUNTER C 指令中的计数器
计数器的数量取决于
CPU。
CU Input BOOL I、Q、M、D、
L 或常量
加计数输入
S Input BOOL I、Q、M、D、
L、T、C 或常量
用于预设置计数器的输入
指令
4.1 指令
对 PLC 进行编程
编程和操作手册, 10/2018 793
参数 声明数据类型存储区说明
PV Input WORD I、Q、M、D、
L 或常量
预置计数器值(C#0 至
C#999)
R Input BOOL I、Q、M、D、
L、T、C 或常量
复位输入
BI Output WORD、
S5TIME、
DATE
I、Q、M、D、L 当前计数器值(十六进制)
BCD Output WORD、
S5TIME、
DATE
I、Q、M、D、L 当前计数器值(BCD 编
码)
Q Output BOOL I、Q、M、D、L 计数器状态
有关有效数据类型的更多信息,请参见“另请参见"。
示例
以下示例说明了该指令的工作原理:
如果输入“TagIn_1"的状态从“0"变为“1"(上升沿)且当前计数器值小于“999",
则计数器值加 1。当输入“TagIn_2"的状态从“0"变为“1"时,将该计数器的值设置为
操作数“TagPresetValue"的值。当“TagIn_3"操作数的状态为“1"时,计数器值复位
为“0"。
当前计数器值以十六进制值的形式保存在操作数“TagValue_1"中,以 BCD 编码的形式保
存在操作数“TagValue_2"中。
只要当前计数器值不等于“0",输出“TagOut"的状态便为“1"。
有关以上示例中编程代码的更多信息,请参见“Sample Library for Instructions
(页 697)"。
下一篇:西门子编程软件6AV2105-2RT05-0BD0写程序