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兩個計數器級聯的程序