高速计数器指令一_第1页
高速计数器指令一_第2页
高速计数器指令一_第3页
高速计数器指令一_第4页
高速计数器指令一_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、17 高速计数器指令(一)相对普通计数器,高速计数器是对较高频率的信号计数的计数器,由于信号源来自机外,且需以短于扫描周期的时间响应,高速计数器都工作在中断方式,并配有多个专用的输入口用作计数信号输入及外启动、外复位及计数方向的控制。高速计数器一般都是可编程的,通过程序指定及设置控制字,同一高速计数器可工作在不同的工作模式上,为应用带来极大的灵活性。高速计数器还采用专用指令编程,进一步扩大了其应用的功能。在现代技术条件下,许多物理量可以方便地转变为脉冲列,脉冲的数量或频率可对应于转速、位移、温度而用于控制,因此高速计数成了工业控制中的重要手段。PLC所能构成的高速计数器的数量、最高工作频率从高

2、速计数器的工作方式等也成了衡量可编程控制器性能的重要标准之。可编程序控制器的普通计数器的计数过程与扫描工作方式有关,CPU通过每一扫描周期读取一次被测信号的方法来捕捉被测信号的上升沿,被测信号的频率较高时,会丢失计数脉冲,因此普通计数器的工作频率很低,一般仅有几十赫兹。高速计数器可以对普通计数器无能为力的事件进行计数,CPU221和CPU222有4个高速计数器,其余的CPU有6个高速计数器,最高计数频率为30kH,可设置多达12种不同的操作模式。一般来说,高速计数器与鼓形定时器配套使用,该设备有一个安装了增量式编码器的轴,它以恒定的转速旋转。编码器每圈发出一定数量的计数时钟脉冲和一个复位脉冲,

3、作为高速计数器的输入。高速计数器有一组预置值,开始运行时装入第一个预置值,当前计数值小于当前预置值时,设置的输出有效。当前计数值等于预置值或有外部复位信号时,产生中断。发生当前计数值等于预置值的中断时,装载入新的预置值,并设置下一阶段的输出。有复位中断事件发生时,设置第一个预置值和第一个输出状态,循环又重新开始。因为中断事件产生的速率远远低于高速计数器计数脉冲的速率,用高速计数器可实现高速运动的精确控制,并且与可编程序控制器的扫描周期的关系不大。一、高速计数器介绍1数量及编号高速计数器在程序中使用的地址编号用HCn来表示(在非程序中一般用HSCn表示)HC表示编程元件名称为高速计数器,n为编号

4、。不同型号的PLC主机,高速计数器的数量也不同,CPU221和CPU222有4个,它们是HC0和HC3-HC5;CPU224、CPU226和PU226XM有6个,它们是HC0-HC5。2中断事件类型高速计数器的计数和动作可采用中断方式进行控制,与CPU的扫描周期关系不大,各种型号的PLC可用的高速计数器的中断事件大致分为3类:当前值等于预设值中断、输入方向改变中断和外部复位中断。所有高速计数器都支持当前值等于预设值中断。每个高速计数器的3种中断的优先级由高到低,不同高速计数器之间的优先级又按编号顾序由高到低。具体对应关系如表5-2所列。3工作模式及输入点高速计数器的使用共有四种基本类型:带有内

5、部方向控制的单向计数器,带有外部方向控制的单向计数器,带有两个时钟输入的双向计数器和AB相正交计数器。它的输入信号类型有:无复位或启动输入,有复位无启动输入或者既有启动又有复位输入。每种高速计数器有多种工作模式,以完成不同的功能,高速计数器的工作模式与中断事件有密切关系。在使用一个高速计数器时,首先要使用HDEF指令给计数器设定一种工作模式。每一种HSCn的工作模式的数量也不同,HSCl和HSC2最多可达12种,而HSC5只有一种工作模式。选用某个高速计数器在某种工作模式下工作后,高速计数器所使用的输入端不是任意选择的,必须按系统指定的输入点输入信号。例如,如果HSC0在模式4下工作,就必须用

6、I0.0为时钟输入端,I0.1为增减方向输入端,I0.2为外部复位输入端。高速计数器输入点、输入输出中断输入点都包括在一般数字量输入点编号范围内。同一个输入点只能用做一种功能,如果程序使用了高速计数器,则高速计数器的这种工作模式下指定的输入点只能被高速计数器使用。只有高速计数器不用的输入点才可以作为输入输出中断或一般数字量输入点使用。例如,HSC0在模式0下工作,只用I0.0作时钟输入,不使用I0.1利I0.2,则这两个输入端可作为它用。高速汁数器的输入点和工作模式如表5-4、5-5所列。表5-4 高速计数器HSC1和HSC2的输入点与工作模式模式HSC1HSC2I0.6I0.7I1.0I1.

7、1I1.2I1.3I1.4I1.50时钟-时钟-1时钟-时钟-复位2时钟-复位启动时钟-复位启动3时钟方向-时钟方向-4时钟方向复位-时钟方向复位-5时钟方向复位启动时钟方向复位启动6增时钟减时钟-增时钟减时钟-7增时钟减时钟复位-增时钟减时钟复位-8增时钟减时钟复位启动增时钟减时钟复位启动9A相时钟B相时钟-A相时钟B相时钟-10A相时钟B相时钟复位-A相时钟B相时钟复位-11A相时钟B相时钟复位启动A相时钟B相时钟复位启动表5-5 高速计数器HSC0、HSC3、HSC4、HSC5的输入点与工作模式模式HSC0HSC3HSC4HSC5I0.0I0.1I0.2I0.1I0.3I0.4I0.5I

8、0.40时钟-时钟时钟-时钟1时钟-复位-时钟-复位-2-3时钟方向-时钟方向-4时钟方向复位-时钟方向复位-5-6增时钟减时钟-增时钟减时钟-7增时钟减时钟复位-增时钟减时钟复位-8-9A相时钟B相时钟-A相时钟B相时钟-10A相时钟B相时钟复位-A相时钟B相时钟复位-11-对高速计数据的复位和启动有如下规定:(1)当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。(2)当激活启动输入端时,计数器计数;当启动端失效时,计数器的当前值保持为常数且忽略时钟事件。(3)如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变;如果在复位信号被激活的同时,启动输入端被激活

9、,则当前值被清除。二、 高速计数器指令高速计数器定义指令(HDEF)为指定的高速计数器(HSC)设置一种工作模式(MODE)。每个高速计数器只能用一条HDEF指令。可以用每次扫描存储器位SM0.1,在第一个扫描周期调用包含HDEF指令的子程序来定义高速计数器。高速计数器指令(HSC)中的参数N用来设置高速计数器的编号。HSC与MODE为字节型常数,N为字型常数。名称LADSTL作用高速计数器定义HDEF HSC,MODE选择具体高速计数器(HSCx)的操作模式。模式选择定义高速计数器的时钟、方向、起始和重设功能高速计数器HSC N根据HSC特殊内存位的状态配置和控制高速计数器。参数N指定高速计

10、数器的号码。使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 高速计数器状态字HSC0HS

11、C1HSC2HSC3HSC4HSC5描述SM36.5SM46.5SM56.5SM136.5SM146.5SM156.50=减计数;1=加计数SM36.6SM46.6SM56.6SM136.6SM146.6SM156.60当前值不等于预置值;1=等于SM36.7SM46.7SM56.7SM136.7SM146.7SM156.70当前值小于等于预置值;1=大于2. 高速计数器的控制字节每个高速计数器都对应一个控制字节。用户可以根据要求来设置控制字节中各控制位的状态,如复位与启动输入信号的有效状态、计数速率、计数方向、允许更新双字值和允许执行HSC指令等,实现对高速计数器的控制。控制字节中各控制位的

12、功能如表5-7所列。只有定义了高速计数器和它的计数模式,才能对高速计数器的动态参数进行编程。执行HSC指令时,CPU检查控制字节和有关的当前值与预置值。表5-7 高速计数器控制字的定义HSC0HSC1HSC2HSC3HSC4HSC5描 述SM37.0SM47.0SM57.0-SM147.0-0=复位信号高电平有效;1=低电平有效-SM47.1SM57.1-0=启动信号高电平有效;1=低电平有效SM37.2SM47.2SM57.2-SM147.2-0=4计数速率;1=1计数速率SM37.3SM47.3SM57.3SM137.3SM147.3SM157.30=减计数;1=加计数SM37.4SM47

13、.4SM57.4SM137.4SM147.4SM157.4写入计数方向:0=不更新;1=更新SM37.5SM47.5SM57.5SM137.5SM147.5SM157.5写入预置值:0=不更新;1=更新SM37.6SM47.6SM57.6SM137.6SM147.6SM157.6写入当前值:0=不更新;1=更新SM37.7SM47.7SM57.7SM137.7SM147.7SM157.7HSC允许:0=禁止HSC;1=允许HSC在执行HDEF指令之前必须将这些控制位设置成需要的状态,否则计数器将采用所选计数器模式的默认设量。默认设置为:复位输入和启动输入高电平有效,正交计数速率为输入时钟颜率的

14、4倍。执行HDEF指令后,就不能再改变计数器设置,除非CPU进入停止模式。表中的前3位(0、1和2位)只有在HDEF指令执行时进行设置,在程序中其他位置不能更改。第3位和第4位可以在工作模式0、1和2下直接更改,以单独改变计数方向。后3位可以在任何模式下并在程序中更改,以单独改变计数器的当前值、预设值或对HSC禁止计数。3. 高速计数器的当前值寄存器和设定值寄存器每个高速计数器都有1个32位的当前值寄存器和1个32位的设定值寄存器,当前值和设定值都是有符号的整数。为了向高速计数器装入新的当前值和设定值,必须先将当前值和设定值以双字的数据类型装入如表5-8所示的特殊继电器中。表5-8 高速计数器

15、的当前值与设定值寄存器HSC0HSC1HSC2HSC3HSC4HSC5说明SMD38SMD48SMD58SMD138SMD148SMD158当前值SMD42SMD52SMD62SMD142SMD152SMD162设定值4. 使用高速计数器的步骤选择高速计数据及工作模式包括两方面工作:根据使用的主机型号和控制要求,一是选用高速计数器;二是选择该高速计数器的工作模式。(1)选择高速计数器例如,要对一高速脉冲信号进行增减计数,计数当前值达到1200产生中断,计数方向用一个外部信号控制,所用的主机型号为CPU224。分析 本控制要求是带外部方向控制的单相增减计数,因此可用的高速计数器可以是HSC0、H

16、SC1、HSC2或HSC4中的任何一个。如果确定为HSC0,由于不要求外部复位,所以应选择工作模式3。同时也确定了各个输入点:I0.0为计数脉冲的时钟输入,I0.1为外部方向控制(I0.10时为减计数,I0.11时为增计数)。 (2)设置控制字节在选择用HSC0的工作模式3之后,对应的控制字节为SMB37。如果向SMB37写入2# l1111000,即16# F8,则对HSC0的功能设置为:复位与启动输入信号都是高电位有效、4倍计数频率、计数方向为增计数、允许更新双字值和允许执行HSC指令。(3)执行HDEF指令执行HDEF指令时,HSC的输入值为0,MODE的输入值为3,指令如下:HDFF 0,3(4)设定当前位和预设位每个高速计数器都对应一个双字长的当前值和一个双字长的预设值。两者都是有符号整数。当前值随计数脉冲的输入而不断变化,运行时当前值可以由程序直接读取HCn得到。本例中,选用HSC0,所以对应的当前值和预设值分别存放到SMD38和SMD42中。如果希望从0开始计数,计数值达到1200时产生中断,则可以用双字传送指令分别将0和1200装入SMD38和SMD42中。(5)设置中断事件并全局开中断高速计数器利用中断方式对高速事件进行精确控制。本例中,用HSC0进行计数,要求在当前值等于预设值时产生中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论