图6-25所示的为时钟程序。执行本程序后,CNT105、CNT104、CNT103、CNT102、CNT101及CNT100,将分别存储相应的当前的年、月、日、时、分、秒值。
图6-25 时钟程序
从图知,它有CNT 100~CNT1056个可逆计数器,其减计数器接常OFF接点(即25314),而增计数端,CNT 100的接秒脉冲,其余依次接其前级的计数器常开接点。以秒计数器为例,当其计数值达到59后,再增一秒,则CNT100复位,并产生进位脉冲,使分计数器CNT101增1。
分计数器达到59后,再增一分,则分计数器CNT101复位,并产生进位脉冲,使时计数器CNT102增加1。
时计数器达到23后,再增一小时,则日计数器CNT103复位,并产生进位脉冲,使日计数器增1。
日计数器到底什么时候进位,要依大小月及是否为2月以及是否闰年有关。这里用L9的内容确定。大月时L9为31,小月时为30。正常年份的2月为28,而闰年的2月为29。闰年与否,依年能否被4整除而定(考虑到1995~2050年的情况)。图中用了一系列的比较指令,决定了L9的内容。
日计满后,向月进位,月满后向年进位。为保证日、月计数器的起始值为1,各用了一个比较,只要它为零,则把它显成1。因为月、日不像时、分,没有零值。(www.xing528.com)
提示:执行MOV指令,也会改变标志位P-EQ。当被传数为0时,P-EQ置0,否则置1。
OMRON的CQ1M型PLC内置时钟的值存于AR18~AR20字中。依次是:AR18:低字节为秒,高字节为分;AR19:低字节为时,高字节为日;AR20:低字节的月,高字节为年。这里年仅两位数,97为1997。但若为01,则为2001年。
为了便于使用,把上述计数后的年月、日时、分秒及当前的时分,分别用4个字显示。其程序如图6-26所示。
这种时钟的缺点是,PLC不工作,时钟也就不走了,只能用于PLC长期不停止工作的场合。如果PLC停止工作后又重新起动,这时要进行对时;可用编程器、操作器或上位计算机改变CNT100~CNT105的现值实现。
这种时钟不可能太准,因为定时脉冲精度会受扫描周期变化的影响。一般都会变慢。有时,一天可慢1~2分钟。为了解决这个问题,最好用定时中断(如定时1秒一次中断)来执行这组程序,或至少执行其中的秒计数器,则可作到分秒基本不差。也可不用秒计数器,用分脉冲直接驱动计数器CNT101,这样计时误差小些,但时间不能以“秒”计。
图6-26 4字显示时钟程序
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。