s7-200高速计数器详细解说

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*

S7-200高速计数器详细解说

i•高速计数器指令

普通计数器受CPU扫描速度的影响,是按照顺序扫描的方式进行工作。在没个扫描周

期中,对计数脉冲只能进行一次累加;对于脉冲信号的频率比PLC的扫描频率高时,如果仍采用普通计数器进行累加,必然会丢失很对输入脉冲信号。在PLC中,对比扫描频率高的输入信号的计数可也使用高速计数器指令来实现。

1. 高速计数器指令

C,如表

(1)定义高速计数器指令HDEF

HDE指令功能是为某个要使用的高速计数器选定一种工作模式。每个高速计数器在使用

前,都要用HDEF指令来定义工作模式,并且只能用一次。它有两个输入端:HSC为要

使用的高速计数器编号,数据类型为字节型,数据范围为0~5的常数,分别对应HC0~

HC5;M0CE为高速计数的工作模式,数据类型为字节型,数据范围为0~11的常数,分

别对应12种工作模式。当准许输入使能EN有效时,为指定的高速计数器HSC定义工

作模式MODE。

(2)执行高速计数指令HSC

HSC指令功能功能是根据与高速计数器相关的特殊继电器确定在控制方式和工作状态,使高速计数器的设置生效,按照指令的工作模式的工作模式执行计数操作。它有一个数

据输入端N : N为高速计数器的编号,数据类型的字型,数据范围为0~5的常数,分别对应

高速计数器HC0~HC5.当准许输入EN使能有效时,启动N号高速计数器工作。

2. 高速计数器的输入端

高速计数器的输入端不像普通输入端那样有用户定义,而是由系统指定的输入点输入信

号,每个高速计数器对它所支持的脉冲输入端,方向控制,复位和启动都有专用的输入点,通过比较或中断完成预定的操作。每个高速计数器专用的输入点如表

高速计数器的输入点

3. 高速计数器的状态字节

系统为每个高速计数器都在特殊寄存器区S M B提供了一个状态字节,为了监视高速计数器的工作状态,执行由高速计数器引用的中断事件,其格式如表。

4. 高速计数器的工作模式

高速计数器有12种不同的工作模式(0'~11),分为4类。每个高速计数器都有多种工作模式,可以通过编程的方法,使用定义高速计数器指令HDEF来选定工作模式。

(1)各个高速计数器的工作模式

1.高速计数器HCO是一个通用的增减计数器,工有8种模式,可也通过编程来选择

不同的工作模式,HCO的工作模式如表

*

HCI的操作模式

6•高速计数器HC5只有一种操作模式如表

4.高速计数器的控制字节

系统为每个高速计数器都安排了一个特殊寄存器SMB作为控制字,可也通过对控制字节指定为的设置,确定高速计数器的工作模式。S7-200在执行HSC指令前,首先要检查与每个高速计数器相关的控制字节,在控制字节中设置了启动输入信号和复位输入信号的有效

电平,正交计数器的计数倍率,计数方向采用内部控制的有效电平,是否允许改变计数方向,是否允许更新设定值,是否允许更新当前值,以及是否允许执行高速计数指令。

说明:

(1)在高速计数器的12种工作模式中,模式0、模式3、模式6和模式9,是既无启动输入,又无复位输入的计数器,在模式1、模式4、模式7和模式10中,是只有

复位输入,而没有启动输入的计数器;在模式2、模式5、模式8和模式11中,是既有启动

输入,又有复位输入的计数器。

(2)当启动输入有效时,允许计数器计数;当启动输入无效时,计数器的当前值保

持不变;当复位输入有效时,将计数器的当前值寄存器清零;当启动输入无效,

而复位输入有效时,则忽略复位的影响,计数器的当前值保持不变;当复位输入保持有效,

启动输入变为有效时,则将计数器的当前值寄存器清零。

(3)在S7-200中,系统默认的复位输入和启动输入均为高电平有效,正交计数器为4倍频,如果想改变系统的默认设置,需要设置如上表中的特殊继电器的第0,

1,2 位。

各个高速计数器的计数方向的控制,设定值和当前值的控制和执行高速计数的控制,是

由表4-22中各个相关控制字节的第3位至第7位决定的。

6•高速计数器的当前值寄存器和设定值寄存器

每个高速计数器都有1个32位的经过值寄存器HC0-HC5,同时每个高速计数器还有1个32位的当前值寄存器和1个32位的设定值寄存器,当前值和设定值都是有符号的整数。为了向高速计数器装入新的当前值和设定值,必须先将当前值和设定值以双字的数据类型装入如表所列的特殊寄存器中。然后执行HSC指令,才能将新的值传送给

高速计数器。

7•高速计数器的初始化

由于高速计数器的HDEF指令在进入RUN模式后只能执行1次,为了减少程序运行时间优化程序结构,一般以子程序的形式进行初始化。下面以HC2为例,介绍高速

计数器的各个工作模式的初始化步骤。

1. 利用SM0.1来调用一个初始化子程序。

2. 在初始化子程序中,根据需要向SMB47装入控制字。例如,SMB47=16#F8 , 其意义

是:准许写入新的当前值,准许写入新的设定值,计数方向为曾计数,

启动和复位信号为高电平有效。

3. 执行HDEF指令,其输入参数为:HSC端为2 (选择2号高速计数器),MODE 端为0/1/2

(对应工作模式0,模式1,模式2)

4. 将希望的当前技术值装入SMD58(装入0可进行计数器的清零操作)

5. 将希望的设定值装入SMD62

6. 如果希望捕获当前值等于设定值的中断事件,编写与中断事件号16相关联的中断服

务程序

7. 如果希望捕获外部复位中断事件,编写与中断事件号18相关联的中断服务程序。

8. 执行ENI指令

9. 执行HSC指令

10. 退出初始化子程序

8高速计数器应用举例

某产品包装生产线用高速计数器对产品进行累计和包装,每检测1000个产品时,自动

启动包装机进行包装,计数方向可由外部信号控制,。

设计步骤:

1. 选择高速计数器,确定工作模式

在本例中,选择的高速计数器为HC0,由于要求技术方向可由外部信号控制,而其不要复位信号输入,确定工作模式为模式3,采用当前值等于设定值得中断事件,中断事件号为12,启动包装机工作子程序,高速计数器的初始化采用子程序。

2. 用SM0.1调用高速计数器初始化子程序,子程序号为SBR_0

3. 向SMB37写入控制字SMB37=16#F8

4. 执行HDEF指令,输入参数:HSC为0, MODE为3

5. 向SMD38写入当前值,SMD38=0

6. 向SMD42写入设定值。SMD42=1000

7.,执行建立中断连接指令ATCH,输入参数:INT为INT-0,EVNT为12

&编写中断服务程序INT0,在本例中为调用包装机控制子程序,子程序号为SBR

-1

9•执行全局开中断指令ENI

10•执行HSC指令,对高速计数器编程并投入运行。

MAIN

I SM01 SBAJO

M I—訥_

SBR 0

相关文档
最新文档