您现在的位置是:首页 > PLC技术 > PLC技术
PLC高速计数器的使用技术方法
来源:艾特贸易2017-06-05
简介每个高速计数器都有固定的特殊功能存储器与之相配合,完成高速计数功能。具体对应关系如表 5.11 所示。 每个高速计数器都有一个状态字节,程序运行时根据运行状况自动使某些位置
每个高速计数器都有固定的特殊功能存储器与之相配合,完成高速计数功能。具体对应关系如表5.11所示。 每个高速计数器都有一个状态字节,程序运行时根据运行状况自动使某些位置位,可以通过程序来读相关位的状态,用以作为判断条件实现相应的操作。状态字节中各状态位的功能如表5.12所示。 表5.13和表5.15中××的含义与表5.12中的寄存器编号相同,如SM××6.5可以是SMB36.5、SMB46.5等。 表5.11 HSC的特殊寄存器
高速计数器编号 状态字节 控制字节 当前值双字 预设值双字 HSCO SMB36 SMB37 SMD38 SMD42 HSC1 SMB46 SMB47 SMD48 SMD52 HSC2 SMB56 SMB57 SMD58 SMD62 HSC3 SMB136 SMB137 SMD138 SMD142 HSC4 SMB146 SMB147 SMD148 SMD152 HSC5 SMB156 SMB157 SMD158 SMD162 表5.12 状态字节
状态位 SM××6.0~SM××6.4 SM××6.5 SM××6.6 SM××6.7 功能描述 不用 当前计数方向 0增,1减 当前值=预设值 0不等,1等 当前值>预设值 0<=,1> 使用高速计数器时,要按以下步骤进行: (1)选择计数器及工作模式。 包括两方面工作:根据使用的主机型号和控制要求,一是选用高速计数器;二是对所选的高速计数器选择工作模式。 例如,要对一高速脉冲信号进行增/减计数,计数当前值达到12产生中断,计数方向用一个外部信号控制,所用的主机型号为CPU224。 分析:本控制要求是带外部方向控制的单相增/减计数,因此可用的高速计数器可以是HSC0、HSC1、HSC2或HSC4中任何一个。如果确定为HSC0,由于不要求外部复位,所以应选择工作模式3。同时也确定了各个输入点:I0.0为计数脉冲的时钟输入;I0.1为外部方向控制(I0.1=0,则为减计数;I0.1=1,则为增计数)。 (2)设置控制字节。 每个高速计数器都对应一个控制字节,通过对控制字节中指定位的编程,可以根据操作要求设置字节中各控制位,如复位与启动输入信号的有效状态、计数速率、计数方向、允许更新双字值和允许执行HSC指令等。控制字节中各控制位的功能如表5.13所示。 表5.13 控制位含义
控制位 功能描述 适用的计数器HCn SM××7.0 复位高低有效控制位:0,高电位有效;1,低电位有效 0,1,2,4 SM××7.1 启动高低有效控制位:0,高电位有效;1,低电位有效 1,2 SM××7.2 正交计数速率选择位:0,4x计数速率;1,1x计数速率 0,1,2,4 SM××7.3 计数方向控制位:0,减计数;1,增计数 0, 1, 2, 3, 4, 5 SM××7.4 写计数方向允许控制:0,不更新;1,更新计数方向 0, 1, 2, 3, 4, 5 SM××7.5 写入预设值允许控制:0,不更新;1,更新预设值 0, 1, 2, 3, 4, 5 SM××7.6 写入当前值允许控制:0,不更新;1,更新当前值 0, 1, 2, 3, 4, 5 SM××7.7 HSC指令执行允许控制:0,禁止HSC;1,允许HSC 0, 1, 2, 3, 4, 5 表中的前3位(0、1和2位)只有在HDEF指令执行时进行设置,程序中其他位置不能更改(默认值为:启动和复位为高电位有效,正交计数速率为4x)。第3位和第4位可以在工作模式0、1和2下直接更改,以单独改变计数方向。后3位可以在任何模式下在程序中更改,以单独改变计数器的当前值、预设值或对HSC禁止计数。 本例中,在选择用HSC0的工作模式3之后,对应的控制字节为SMB37,如果向SMB37写入2#11111000,即16#F8,则对HSC0的功能设置为:复位与启动输入信号都是高电位有效、计数方向为增计数、允许更新双字值和允许执行HSC指令。 (3)执行HDEF指令。 本例中,执行HDEF指令时,HSC的输入值为0,MODE的输入值为3,指令如下: HDEF 0, 3 (4)设定当前值和预设值。 每个高速计数器都对应一个双字长的当前值和一个双字长的预设值,两者都是有符号整数。当前值随计数脉冲的输入而不断变化,运行时当前值可以由程序直接读取HCn得到,n为高速计数器编号,如HC0。 本例中,选用HSC0,所以对应的当前值和预设值分别存放到SMD38和SMD42中。如果希望从0开始计数,计数值达到12时产生中断.则可以用双字传送指令分别将0和12装入SMD38和SMD42中。 (5)设置中断事件并全局开中断。 高速计数器利用中断方式对高速事件进行精确控制。 本例中,用HSC0进行计数,要求在当前值等于预设值时产生中断。因此,中断事件是当前值等于预设值,中断事件号为10。用中断调用ATCH指令将中断事件号10和中断子程序(假设中断子程序编号为INTO)连接起来,并全局开中断。 指令如下: ATCH INT0, 10 ENI (6)执行HSC指令。 以上设置完成并用指令实现之后,即可用HSC指令对高速计数编程进行计数。本例中指令如下: HSC 0 以上6步是对高速计数器的初始化,可以用主程序中的程序段来实现,也可以用子程序来实现,称为高速计数器初始化子程序。高速计数器在投入运行之前,必须要执行一次初始化操作。 初始化脉冲可以用外加脉冲信号,也可以使用系统特殊标志存储器位中的SM0.1位(初次扫描位)。
点击排行
