S71200 计数器指令详解Word格式.docx

上传人:b****2 文档编号:339407 上传时间:2023-04-28 格式:DOCX 页数:11 大小:294.89KB
下载 相关 举报
S71200 计数器指令详解Word格式.docx_第1页
第1页 / 共11页
S71200 计数器指令详解Word格式.docx_第2页
第2页 / 共11页
S71200 计数器指令详解Word格式.docx_第3页
第3页 / 共11页
S71200 计数器指令详解Word格式.docx_第4页
第4页 / 共11页
S71200 计数器指令详解Word格式.docx_第5页
第5页 / 共11页
S71200 计数器指令详解Word格式.docx_第6页
第6页 / 共11页
S71200 计数器指令详解Word格式.docx_第7页
第7页 / 共11页
S71200 计数器指令详解Word格式.docx_第8页
第8页 / 共11页
S71200 计数器指令详解Word格式.docx_第9页
第9页 / 共11页
S71200 计数器指令详解Word格式.docx_第10页
第10页 / 共11页
S71200 计数器指令详解Word格式.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

S71200 计数器指令详解Word格式.docx

《S71200 计数器指令详解Word格式.docx》由会员分享,可在线阅读,更多相关《S71200 计数器指令详解Word格式.docx(11页珍藏版)》请在冰点文库上搜索。

S71200 计数器指令详解Word格式.docx

计数器类型

计数器类型(TIA博途V14开始)

计数范围

SINT

IEC_SCOUNTER

CTU_SINT

CTD_SINT

CTUD_SINT

-128~127

INT

IEC_COUNTER

CTU_INT

CTD_INT

CTUD_INT

-32768~32767

DINT

IEC_DCOUNTER

CTU_DINT

CTD_DINT

CTUD_DINT

-2147483648~2147483647

USINT

IEC_USCOUNTER

CTU_USINT

CTD_USINT

CTUD_USINT

0~255

UINT

IEC_UCOUNTER

CTU_UINT

CTD_UINT

CTUD_UINT

0~65535

UDINT

IEC_UDCOUNTER

CTU_UDINT

CTD_UDINT

CTUD_UDINT

0~4294967295

表2计数器引脚汇总

输入的变量

名称

说明

数据类型

备注

CU

加计数输入脉冲

BOOL

仅出现在CTU、CTUD

CD

减计数输入脉冲

仅出现在CTD、CTUD

R

CV清0

LD

CV设置为PV

PV

预设值

整数

输出的变量

Q

输出位

仅出现在CTU、CTD

QD

仅出现在CTUD

QU

CV

计数值

 

表3计数器使用及时序图

指令

时序图

加计数

LAD:

SCL:

CTU

每当CU从“0”变为“1”,CV增加1;

当CV=PV时,Q输出“1”,此后每当CU从“0”变为“1”,Q保持输出“1”,CV继续增加1直到达到计数器指定的整数类型的最大值。

在任意时刻,只要R为“1”时,Q输出“0”,CV立即停止计数并回到0。

减计数

CTD

每当CD从“0”变为“1”,CV减少1;

当CV=0时,Q输出“1”,此后每当CU从“0”变为“1”,Q保持输出“1”,CV继续减少1直到达到计数器指定的整数类型的最小值。

在任意时刻,只要LD为“1”时,Q输出“0”,CV立即停止计数并回到PV值。

加减计数

CTUD

每当CU从“0”变为“1”,CV增加1,每当CD从“0”变为“1”,CV减少1;

当CV>

=PV时,QU输出“1”,当CV<

PV时,QU输出“0”;

当CV<

=0时,QD输出“1”,当CV>

0时,QD输出“0”;

CV的上下限取决于计数器指定的整数类型的最大值与最小值。

在任意时刻,只要R为“1”时,QU输出“0”,CV立即停止计数并回到0;

只要LD为“1”时,QD输出“0”,CV立即停止计数并回到PV值。

S7-1200计数器创建

S7-1200计数器创建有以下几种方法:

1.指令直接拖入块中,自动生成计数器的背景数据块,该块位于“系统块>

程序资源”中,参见图2。

需要在指令中修改计数值类型。

图2自动生成计数器的背景数据块

2.指令直接拖入FB块中,生成多重背景,参见图3。

多重背景的数据类型在TIA博途V14之前是IEC_COUNTER类型,从TIA博途V14开始是CTU_INT、CTD_INT、CTUD_INT等类型(取决于指令)。

图3多重背景

3.指令直接拖入FB、FC块中,生成参数实例,从TIA博途V14开始,参见图4。

图4参数实例

4.在DB块、FB的静态变量、FC和FB的INOUT变量中新建IEC_COUNTER、CTU_INT、CTD_INT、CTUD_INT类型变量,在程序中将计数器指令拖入块中时,在弹出的“调用选项”页面点击“取消”按钮,之后将该建好的变量填入指定位置。

(1)DB块中新建IEC_COUNTER等类型变量(LAD/FBD),如果是IEC_COUNTER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图5、6。

图5DB块中的定义

图6计数器使用

(2)FB的静态变量中新建IEC_COUNTER等类型变量(LAD/FBD),如果是IEC_COUNTER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图7。

图7静态变量中定义

(3)FC和FB的INOUT变量中新建IEC_COUNTER等类型变量(LAD/FBD),如果是IEC_COUNTER等类型变量的数组,S7-1200从V2.0版本开始支持,从TIA博途V14开始支持IEC_COUNTER等类型变量的变长数组(ARRAY[#]),参见图8。

图8INOUT中定义

(4)以上三种方法的SCL版本,从TIA博途V14开始支持,参见图9。

图9SCL中使用

从以上四个示例可以看出,IEC_COUNTER、CTU_INT、CTD_INT、CTUD_INT四种数据类型没有本质的区别,可以互换使用,为使得程序明确,建议只使用计数器对应名字的数据类型。

5.在插入DB时,选择IEC_COUNTER类型的数据块,将该数据块填在指令上方。

此种方法生成的数据块等同于第一种的背景数据块,位于“系统块>

程序资源”中,从TIA博途V11开始,参见图10.

图10新建IEC_COUNTER类型DB

S7-1200计数器常见问题

1.为什么计数器不计数?

答:

可能原因如下:

(1)计数器的输入位(CU、CD)需要有电平信号的跳变,计数器才会计数。

如果保持不变的信号作为输入位是不会开始计数的。

(2)计数器的背景数据块重复使用。

2.如何编程自复位计数器并产生脉冲?

正确答案见图11,错误答案见图12、13。

图11正确程序

图12错误程序1

图13错误程序2

正确原因:

当计数值达到10,"

DB77"

.Static_15(False)作为计数器R的输入,并没有复位,Q输出"

.Static_15为True,在下一周期时执行复位指令,使得计数值清零,之后Q输出"

.Static_15为False,实现自复位计数器并产生脉冲。

错误1原因:

当计数值达到10,首先置位"

数据块_2"

.QU,紧接着"

.QU作为计数器R的输入,使得计数值清零,同时复位"

.QU,在下一网络段"

.Static_15依然是False,无法实现脉冲。

错误2原因:

.CV=10,紧接着"

.CV与"

.PV的比较结果(True)作为计数器R的输入,使得计数值清零,同时复位"

从例子可知,计数器的执行是先处理输入,再处理输出,在指令块执行过程中,内部变量(例如QU、CV)可能出现多次变化。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2