OpenPLC的计数器和定时器-PLC技术网(www.plcjs.com)-可编程控制器技术门户


OpenPLC的计数器和定时器

 (点击题目可以在互联网中搜索该题目的相关内容)
日期:2007-7-17 22:10:24     来源:   作者: 点击:
点击【 大  中  小 】,可以选择字体的大小,以便你阅读.
 计数器和定时器是控制过程中常用的工具,几乎所有的控制系统,包括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.9。DN 为1时,表示累计数达到或超过预设值。CU(COUNT UP)和CD(COUNT DOWN)表示计数器最近一次使用这个数据结构的指令,OV(OVERFLOW)和UN(UNDERFLOW)一旦数据超出范围,即保持。如果OV和UN位为“ON”,DN位的状态有可能会出错,因为累计值已经无效。布尔逻辑可以控制这个值,但最好避免这样做,因为可能会使计数失效。
    图3.9 给出了一个有简单的逻辑表达式控制的COUNT UP指令,该指令访问一个单一的输入映像位(I:4.3),另一个横档在计数器的DN为“ON”时,将一个位文件的位(B3/2)设为“ON”,但计数器必须没有溢出。如果另一个输入映像状态为“ON”的话,RESET指令将会把计数器的累计值和状态位也清零。其它的数据指令可以操作计数器的预设和累计值。如MOVE指令,算术操作和COMPARE指令等,都是其中的例子。图3.9也示出了计数器的三个数据字结构的格式。
3.2 定时器
    定时器指令实际是计时单元,当其输入逻辑状态为真时,开始计数。与计数器类似,每个定时器需要至少一个数据字的内存来存放累计的时间值和一个状态位表示“计时完成”的状态。
    与计数器不同的是,大部分定时器在当其控制逻辑停止又重新启动时,都会自动启动,因此,复位指令可能是不需要的。但也有一种保持计时器,当停止时,他们停止计时,但保持时间,当再启动时,将继续接下去计时。这种定时器就需要一个复位指令来控制。
    与计数器类似,有的控制器采用递减计时,但大部分是采用递增计时,这样所计的时间会与预先设定的值进行比较,当到达零或者设定值时,定时器的状态位改变。有的定时器还有一些辅助状态位表示“定时器在工作”。

本新闻共3页,当前在第11 2  3  

上一篇: OpenPLC的布尔逻辑编程
下一: 艾默生SFC顺序功能图设计探讨