您当前的位置:五五电子网电子知识plc技术PLC入门OpenPLC的计数器和定时器 正文
OpenPLC的计数器和定时器

OpenPLC的计数器和定时器

点击数:7258 次   录入时间:03-04 11:57:49   整理:http://www.55dianzi.com   PLC入门

计数器和定时器是控制过程中常用的工具,几乎所有的控制系统,包括PLC或者DCS都有计数器和定时器指令。计数器主要是对一个逻辑状态从假到真的次数进行计数,例如,有一个传感器能够感应生产线上的啤酒瓶,这样就可以对生产线上的瓶子计数。定时器的功能则是计算时间单元,比如,当一个啤酒箱装满后从生产线上的一个传感器旁移开时,定时器就开始计时,直到下一个箱子装满为止。计数器和定时器都可以用布尔逻辑来实现并根据其状态进行控制,比如,启动一个传送带将装满啤酒瓶的箱子运走,或者停止将啤酒瓶装箱。计数器和定时器指令影响内存中时间数值或计数数值放置的位置的数据字,因此,尽管计数与计时都是布尔编程逻辑程序,计数器和定时器却不是简单的布尔程序元素。

    计数器和定时器是作为输出元素进入OpenPLC的,这些元素是布尔逻辑元素。每个计数器和定时器可以在其它的布尔逻辑表达式中处理状态位,状态位表示定时器或者计数器是否已经计数到达终点。对于计数或计时的结果,OpenPLC有另外的元素单独存储累计量,该量可以在计数或者计时的过程中不断改变。对先进的程序操作来说,可以用布尔逻辑表达式直接控制计数器和定时器的状态位,并且还有处理数据或改变累计值的指令。

3.3.1 计数器指令

    许多PLC的计数器是从最大值向零来计算的,计数器有一个状态位,当计数器的结果是“0”时,该位的状态会变化。OpenPLC程序包括一个指令,对累计值进行初始化,同时可以将预先设定的值放到累计值中,也可以然后将积累值递减到零。也有PLC用正向计数的。每次执行时,OpenPLC会将数据与预设定的数值进行比较,如果等于或大于预设数值,则改变状态。此外,还有清零和向预测方向递减的指令。

C5:3的结构:

3.9  OpenPLC的计数器指令及其所处理的计数器元素数据结构

    OpenPLC的计数器或定时器有三个字,其中,两个16位的字分别表示累计数和预设数,另外还有一些状态位,每个状态位或字都可以由用户程序分别访问。OpenPLC的用户程序有三个计数器指令。一个是COUNT UP,开始正向计数,COUNT DOWN,开始递减计数。RESET,复位,将累计数清零,并清除所有的状态位。

    程序员必须输入计数器的预设值后,才能开始COUNTUP COUNTDOWN计数。预设值是一个范围在-32768+32767之间的一个数。如果正向计数超过32767,它将溢出到-32768,如果向下计数超过-32768,则会溢出到+32767。对于同一个计数器的不同的操作应该采用同一个预设值,因为程序再执行的时候,每次进入定时器指令,预设值都会刷新。

    OpenPLC的计数器数据结构有5个状态位,状态位可以由用户程序的布尔逻辑指令,如图3.9DN 1时,表示累计数达到或超过预设值。CUCOUNT UP)和CDCOUNT DOWN)表示计数器最近一次使用这个数据结构的指令,OVOVERFLOW)和UNUNDERFLOW)一旦数据超出范围,即保持。如果OVUN位为“ON”,DN位的状态有可能会出错,因为累计值已经无效。布尔逻辑可以控制这个值,但最好避免这样做,因为可能会使计数失效。

    图3.9 给出了一个有简单的逻辑表达式控制的COUNT UP指令,该指令访问一个单一的输入映像位(I:4.3),另一个横档在计数器的DN为“ON”时,将一个位文件的位(B3/2)设为“ON”,但计数器必须没有溢出。如果另一个输入映像状态为“ON”的话,RESET指令将会把计数器的累计值和状态位也清零。其它的数据指令可以操作计数器的预设和累计值。如MOVE指令,算术操作和COMPARE指令等,都是其中的例子。图3.9也示出了计数器的三个数据字结构的格式。

[1] [2] [3]  下一页


本文关键字:计数器  定时器  PLC入门plc技术 - PLC入门