高速计数器指令一.docx

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

高速计数器指令一.docx

《高速计数器指令一.docx》由会员分享,可在线阅读,更多相关《高速计数器指令一.docx(10页珍藏版)》请在冰点文库上搜索。

高速计数器指令一.docx

高速计数器指令一

17高速计数器指令

(一)

相对普通计数器,高速计数器是对较高频率的信号计数的计数器,由于信号源来自机外,且需以短于扫描周期的时间响应,高速计数器都工作在中断方式,并配有多个专用的输入口用作计数信号输入及外启动、外复位及计数方向的控制。

高速计数器一般都是可编程的,通过程序指定及设置控制字,同一高速计数器可工作在不同的工作模式上,为应用带来极大的灵活性。

高速计数器还采用专用指令编程,进一步扩大了其应用的功能。

在现代技术条件下,许多物理量可以方便地转变为脉冲列,脉冲的数量或频率可对应于转速、位移、温度……而用于控制,因此高速计数成了工业控制中的重要手段。

PLC所能构成的高速计数器的数量、最高工作频率从高速计数器的工作方式等也成了衡量可编程控制器性能的重要标准之—。

可编程序控制器的普通计数器的计数过程与扫描工作方式有关,CPU通过每一扫描周期读取一次被测信号的方法来捕捉被测信号的上升沿,被测信号的频率较高时,会丢失计数脉冲,因此普通计数器的工作频率很低,一般仅有几十赫兹。

高速计数器可以对普通计数器无能为力的事件进行计数,CPU221和CPU222有4个高速计数器,其余的CPU有6个高速计数器,最高计数频率为30kH,可设置多达12种不同的操作模式。

一般来说,高速计数器与鼓形定时器配套使用,该设备有一个安装了增量式编码器的轴,它以恒定的转速旋转。

编码器每圈发出一定数量的计数时钟脉冲和一个复位脉冲,作为高速计数器的输入。

高速计数器有一组预置值,开始运行时装入第一个预置值,当前计数值小于当前预置值时,设置的输出有效。

当前计数值等于预置值或有外部复位信号时,产生中断。

发生当前计数值等于预置值的中断时,装载入新的预置值,并设置下一阶段的输出。

有复位中断事件发生时,设置第一个预置值和第一个输出状态,循环又重新开始。

因为中断事件产生的速率远远低于高速计数器计数脉冲的速率,用高速计数器可实现高速运动的精确控制,并且与可编程序控制器的扫描周期的关系不大。

一、高速计数器介绍

1.数量及编号

高速计数器在程序中使用的地址编号用HCn来表示(在非程序中一般用HSCn表示)HC表示编程元件名称为高速计数器,n为编号。

不同型号的PLC主机,高速计数器的数量也不同,CPU221和CPU222有4个,它们是HC0和HC3-HC5;CPU224、CPU226和PU226XM有6个,它们是HC0-HC5。

2.中断事件类型

高速计数器的计数和动作可采用中断方式进行控制,与CPU的扫描周期关系不大,各种型号的PLC可用的高速计数器的中断事件大致分为3类:

当前值等于预设值中断、输入方向改变中断和外部复位中断。

所有高速计数器都支持当前值等于预设值中断。

每个高速计数器的3种中断的优先级由高到低,不同高速计数器之间的优先级又按编号顾序由高到低。

具体对应关系如表5-2所列。

3.工作模式及输入点

高速计数器的使用共有四种基本类型:

带有内部方向控制的单向计数器,带有外部方向控制的单向计数器,带有两个时钟输入的双向计数器和A/B相正交计数器。

它的输入信号类型有:

无复位或启动输入,有复位无启动输入或者既有启动又有复位输入。

每种高速计数器有多种工作模式,以完成不同的功能,高速计数器的工作模式与中断事件有密切关系。

在使用一个高速计数器时,首先要使用HDEF指令给计数器设定一种工作模式。

每一种HSCn的工作模式的数量也不同,HSCl和HSC2最多可达12种,而HSC5只有一种工作模式。

选用某个高速计数器在某种工作模式下工作后,高速计数器所使用的输入端不是任意选择的,必须按系统指定的输入点输入信号。

例如,如果HSC0在模式4下工作,就必须用I0.0为时钟输入端,I0.1为增减方向输入端,I0.2为外部复位输入端。

高速计数器输入点、输入/输出中断输入点都包括在一般数字量输入点编号范围内。

同一个输入点只能用做一种功能,如果程序使用了高速计数器,则高速计数器的这种工作模式下指定的输入点只能被高速计数器使用。

只有高速计数器不用的输入点才可以作为输入/输出中断或一般数字量输入点使用。

例如,HSC0在模式0下工作,只用I0.0作时钟输入,不使用I0.1利I0.2,则这两个输入端可作为它用。

高速汁数器的输入点和工作模式如表5-4、5-5所列。

表5-4高速计数器HSC1和HSC2的输入点与工作模式

模式

HSC1

HSC2

I0.6

I0.7

I1.0

I1.1

I1.2

I1.3

I1.4

I1.5

0

时钟

-

-

-

时钟

-

-

-

1

时钟

-

-

时钟

-

复位

2

时钟

-

复位

启动

时钟

-

复位

启动

3

时钟

方向

-

-

时钟

方向

-

-

4

时钟

方向

复位

-

时钟

方向

复位

-

5

时钟

方向

复位

启动

时钟

方向

复位

启动

6

增时钟

减时钟

-

-

增时钟

减时钟

-

-

7

增时钟

减时钟

复位

-

增时钟

减时钟

复位

-

8

增时钟

减时钟

复位

启动

增时钟

减时钟

复位

启动

9

A相时钟

B相时钟

-

-

A相时钟

B相时钟

-

-

10

A相时钟

B相时钟

复位

-

A相时钟

B相时钟

复位

-

11

A相时钟

B相时钟

复位

启动

A相时钟

B相时钟

复位

启动

表5-5高速计数器HSC0、HSC3、HSC4、HSC5的输入点与工作模式

模式

HSC0

HSC3

HSC4

HSC5

I0.0

I0.1

I0.2

I0.1

I0.3

I0.4

I0.5

I0.4

0

时钟

-

-

时钟

时钟

-

-

时钟

1

时钟

-

复位

-

时钟

-

复位

-

2

-

-

-

-

-

-

-

-

3

时钟

方向

-

-

时钟

方向

-

-

4

时钟

方向

复位

-

时钟

方向

复位

-

5

-

-

-

-

-

-

-

-

6

增时钟

减时钟

-

-

增时钟

减时钟

-

-

7

增时钟

减时钟

复位

-

增时钟

减时钟

复位

-

8

-

-

-

-

-

-

-

-

9

A相时钟

B相时钟

-

-

A相时钟

B相时钟

-

-

10

A相时钟

B相时钟

复位

-

A相时钟

B相时钟

复位

-

11

-

-

-

-

-

-

-

-

对高速计数据的复位和启动有如下规定:

(1)当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。

(2)当激活启动输入端时,计数器计数;当启动端失效时,计数器的当前值保持为常数且忽略时钟事件。

(3)如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变;如果在复位信号被激活的同时,启动输入端被激活,则当前值被清除。

二、高速计数器指令

高速计数器定义指令(HDEF)为指定的高速计数器(HSC)设置一种工作模式(MODE)。

每个高速计数器只能用一条HDEF指令。

可以用每次扫描存储器位SM0.1,在第一个扫描周期调用包含HDEF指令的子程序来定义高速计数器。

高速计数器指令(HSC)中的参数N用来设置高速计数器的编号。

HSC与MODE为字节型常数,N为字型常数。

名称

LAD

STL

作用

高速计数器定义

HDEFHSC,MODE

选择具体高速计数器(HSCx)的操作模式。

模式选择定义高速计数器的时钟、方向、起始和重设功能

高速计数器

HSCN

根据HSC特殊内存位的状态配置和控制高速计数器。

参数N指定高速计数器的号码。

使HDEF指令出错(ENO=0)的条件:

SM4.3(运行时间),0003(输入点冲突),0004(中断中的非法指令),000A(HSC重新定义)。

使HSC指令出错(ENO=0)的条件:

SM4.3(运行时间),0001(在HDEF之前使用HSC指令),0005(同时操作HSC和PLS)。

三、高速计数器的使用

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

每个高速计数器都有一个状态字节,给出了当前计数方向和当前值是否大于或等于预置值(见表5-6)。

只有在执行高速计数器的中断程序时,状态位才有效。

监视高速计数器状态的目的是响应正在进行的操作所引发的事件产生的中断。

表5-6高速计数器状态字

HSC0

HSC1

HSC2

HSC3

HSC4

HSC5

描述

SM36.5

SM46.5

SM56.5

SM136.5

SM146.5

SM156.5

0=减计数;1=加计数

SM36.6

SM46.6

SM56.6

SM136.6

SM146.6

SM156.6

0=当前值不等于预置值;1=等于

SM36.7

SM46.7

SM56.7

SM136.7

SM146.7

SM156.7

0=当前值小于等于预置值;1=大于

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

每个高速计数器都对应一个控制字节。

用户可以根据要求来设置控制字节中各控制位的状态,如复位与启动输入信号的有效状态、计数速率、计数方向、允许更新双字值和允许执行HSC指令等,实现对高速计数器的控制。

控制字节中各控制位的功能如表5-7所列。

只有定义了高速计数器和它的计数模式,才能对高速计数器的动态参数进行编程。

执行HSC指令时,CPU检查控制字节和有关的当前值与预置值。

表5-7高速计数器控制字的定义

HSC0

HSC1

HSC2

HSC3

HSC4

HSC5

描述

SM37.0

SM47.0

SM57.0

--

SM147.0

--

0=复位信号高电平有效;1=低电平有效

--

SM47.1

SM57.1

--

--

--

0=启动信号高电平有效;1=低电平有效

SM37.2

SM47.2

SM57.2

--

SM147.2

--

0=4×计数速率;1=1×计数速率

SM37.3

SM47.3

SM57.3

SM137.3

SM147.3

SM157.3

0=减计数;1=加计数

SM37.4

SM47.4

SM57.4

SM137.4

SM147.4

SM157.4

写入计数方向:

0=不更新;1=更新

SM37.5

SM47.5

SM57.5

SM137.5

SM147.5

SM157.5

写入预置值:

0=不更新;1=更新

SM37.6

SM47.6

SM57.6

SM137.6

SM147.6

SM157.6

写入当前值:

0=不更新;1=更新

SM37.7

SM47.7

SM57.7

SM137.7

SM147.7

SM157.7

HSC允许:

0=禁止HSC;1=允许HSC

在执行HDEF指令之前必须将这些控制位设置成需要的状态,否则计数器将采用所选计数器模式的默认设量。

默认设置为:

复位输入和启动输入高电平有效,正交计数速率为输入时钟颜率的4倍。

执行HDEF指令后,就不能再改变计数器设置,除非CPU进入停止模式。

表中的前3位(0、1和2位)只有在HDEF指令执行时进行设置,在程序中其他位置不能更改。

第3位和第4位可以在工作模式0、1和2下直接更改,以单独改变计数方向。

后3位可以在任何模式下并在程序中更改,以单独改变计数器的当前值、预设值或对HSC禁止计数。

3.高速计数器的当前值寄存器和设定值寄存器

每个高速计数器都有1个32位的当前值寄存器和1个32位的设定值寄存器,当前值和设定值都是有符号的整数。

为了向高速计数器装入新的当前值和设定值,必须先将当前值和设定值以双字的数据类型装入如表5-8所示的特殊继电器中。

表5-8高速计数器的当前值与设定值寄存器

HSC0

HSC1

HSC2

HSC3

HSC4

HSC5

说明

SMD38

SMD48

SMD58

SMD138

SMD148

SMD158

当前值

SMD42

SMD52

SMD62

SMD142

SMD152

SMD162

设定值

4.使用高速计数器的步骤

选择高速计数据及工作模式包括两方面工作:

根据使用的主机型号和控制要求,一是选用高速计数器;二是选择该高速计数器的工作模式。

(1)选择高速计数器

例如,要对一高速脉冲信号进行增/减计数,计数当前值达到1200产生中断,计数方向用一个外部信号控制,所用的主机型号为CPU224。

分析本控制要求是带外部方向控制的单相增/减计数,因此可用的高速计数器可以是HSC0、HSC1、HSC2或HSC4中的任何一个。

如果确定为HSC0,由于不要求外部复位,所以应选择工作模式3。

同时也确定了各个输入点:

I0.0为计数脉冲的时钟输入,I0.1为外部方向控制(I0.1=0时为减计数,I0.1=1时为增计数)。

(2)设置控制字节

在选择用HSC0的工作模式3之后,对应的控制字节为SMB37。

如果向SMB37写入2#l1111000,即16#F8,则对HSC0的功能设置为:

复位与启动输入信号都是高电位有效、4倍计数频率、计数方向为增计数、允许更新双字值和允许执行HSC指令。

(3)执行HDEF指令

执行HDEF指令时,HSC的输入值为0,MODE的输入值为3,指令如下:

HDFF0,3

(4)设定当前位和预设位

每个高速计数器都对应一个双字长的当前值和一个双字长的预设值。

两者都是有符号整数。

当前值随计数脉冲的输入而不断变化,运行时当前值可以由程序直接读取HCn得到。

本例中,选用HSC0,所以对应的当前值和预设值分别存放到SMD38和SMD42中。

如果希望从0开始计数,计数值达到1200时产生中断,则可以用双字传送指令分别将0和1200装入SMD38和SMD42中。

(5)设置中断事件并全局开中断

高速计数器利用中断方式对高速事件进行精确控制。

本例中,用HSC0进行计数,要求在当前值等于预设值时产生中断。

因此,中断事件是当前位等于预设值,中断事件号为12。

用中断调用ATCH指令将中断事件号(假设中断子程序编号为INT-0)连接起来,并全局开中断。

指令如下:

ATCHINT-0,12

ENI

在INT-0程序中,可完成HSC0当前值等于设定值时计划要做的工作。

(6)执行HSC指令

以上设置完成并用指令实现之后,即可用HSC指令对高速计数器编程进行计数。

本例中指令如下:

HSC0

以上6步是对高速计数器的初始化,该过程可以用主程序中的程序段来实现,也可以用子程序来实现。

高速计数器在投入运行之前,必须要执行一次初始化程序段或初始化子程序。

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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