1.应用计数器的延时程序
只要提供一个时钟脉冲信号作为计数器的计数输入信号,计数器就可以实现定时功能,时钟脉冲信号的周期与计数器的设定值相乘就是定时时间。时钟脉冲信号,可以由内部特殊产生(如fx系列plc的m8011、m8012、m8013和m8014等),也可以由连续脉冲发生程序产生,还可以由plc外部时钟电路产生。
如图1所示为采用计数器实现延时的程序,由m8012产生周期为0.1s时钟脉冲信号。当启动信号x15闭合时,m2得电并自锁,m8012时钟脉冲加到c0的计数输入端。当c0累计到18000个脉冲时,计数器c0动作,c0常开触点闭合,y5线圈接通,y5的触点动作。从x15闭合到y5动作的延时时间为18000×0.1=1800s。延时误差和精度主要由时钟脉冲信号的周期决定,要提高定时精度,就必须用周期更短的时钟脉冲作为计数信号。
图1 三菱PLC应用一个计数器的延时程序
延时程序最大延时时间受计数器的最大计数值和时钟脉冲的周期限制,如图1所示计数器c0的最大计数值为32767,所以最大延时时间为:32767×0.1=3276.7s。要增大延时时间,可以增大时钟脉冲的周期,但这又使定时精度下降。为获得更长时间的延时,同时又能保证定时精度,可采用两级或多级计数器串级计数。如图2所示为采用两级计数器串级计数延时的一个例子。图中由c0构成一个1800s(30min)的定时器,其常开触点每隔30min闭合一个扫描周期。这是因为c0的复位输入端并联了一个c0常开触点,当c0累计到18000个脉冲时,计数器c0动作,c0常开触点闭合,c0复位,c0计数器动作一个扫描周期后又开始计数,使c0输出一个周期为30min、脉宽为一个扫描周期的时钟脉冲。c0的另一个常开触点作为c1的计数输入,当c0常开触点接通一次,c1输入一个计数脉冲,当c1计数脉冲累计到10个时,计数器c1动作,c1常开触点闭合,使y5线圈接通,y5触点动作。从x15闭合,到y5动作,其延时时间为18000×0.1×10=18000s(5h)。计数器c0和c1串级后,最大的延时时间可达:32767×0.1×32767s=29824.34 h=1242.68天。
图2 三菱PLC应用两个计数器的延时程序
2.定时器与计数器组合的延时程序
利用定时器与计数器级联组合可以扩大延时时间,如图3所示。图中t4形成一个20s的自复位定时器,当x4接通后,t4线圈接通并开始延时,20s后t4常闭触点断开,t4定时器的线圈断开并复位,待下一次扫描时,t4常闭触点才闭合,t4定时器线圈又重新接通并开始延时。所以当x4接通后,t4每过20s其常开触点接通一次,为计数器输入一个脉冲信号,计数器c4计数一次,当c4计数100次时,其常开触点接通y3线圈。可见从x4接通到y3动作,延时时间为定时器定时值(20s)和计数器设定值(100)的乘积(2000s)。图中m8002为初始化脉冲,使c4复位。
图3 三菱PLC定时器与计数器组合的延时程序
3.计数器级联程序
计数器计数值范围的扩展,可以通过多个计数器级联组合的方法来实现。图4为两个计数器级联组合扩展的程序。x1每通/断一次,c60计数1次,当x1通/断50次时,c60的常开触点接通,c61计数1次,与此同时c60另一对常开触点使c60复位,重新从零开始对x1的通/断进行计数,每当c60计数50次时,c61计数1次,当c61计数到40次时,x1总计通/断50×40=2000次,c61常开触点闭合,y31接通。可见本程序计数值为两个计数器计数值的乘积。
图4 三菱plc两个计数器级联的程序