西門子S7—200系列plc的計數器分為一般用途計數器和高速計數器兩大類。一般用途計數器用來累計輸入脈沖的個數,其計數速度較慢,其輸入脈沖頻率必須要小于PLC程序掃描頻率,一般最高為幾百HZ,所以在實際應用中主要用來對產品進行計數等控制任務。高速計數器主要用于對外部高速脈沖輸入信號進行計數,例如在定位控制系統中,位置編碼器的位置反饋脈沖信號一般高達幾KHZ,有時甚至達幾十KHZ,遠遠高于PLC程序掃描頻率,這時一般的計數器已經無能為力,PLC對于這樣的高速脈沖輸入信號計數采用的是與程序掃描周期無關的中斷方式來實現的。由于篇幅有限,這里只介紹一般用途計數器。
1、計數器種類和編號
S7—200系列PLC的計數器有3種:增計數器CTU、增減計數器CTUD和減計數器CTD。
計數器的編號用計數器名稱和數字(0~255)組成,即C×××,如C6。計數器的編號包含兩方面的信息:計數器的位和計數器當前值。計數器位和繼電器一樣是一個開關量,表示計數器是否發生動作的狀態。當計數器的當前值達到設定值時,該位被置位為ON。計數器當前值是一個存儲單元,它用來存儲計數器當前所累計的脈沖個數,用16位符號整數來表示,最大數值為32 767。
計數器的設定值輸入數據類型為INT型。尋址范圍:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常數。一般情況下使用常數作為計數器的設定值。
2、計數器指令使用說明
計數器指令的LAD和STL格式如表所列。
表7.11 計數器指令的LAD和STL形式
格式 |
名稱 | ||
增計數器 |
增減計數器 |
減計數器 | |
LAD |
|
|
|
STL |
CTU C***, PV |
CTUD C***, PV |
CTD C***, PV |
(1)增計數器CTU(Count Up)
首次掃描時,計數器位為OFF,當前值為0。在計數脈沖輸入端CU的每個上升沿,計數器計數1次,當前值增加一個單位。當前值達到設定值時,計數器位ON,當前值可繼續計數到32 767后停止計數。復位輸入端有效或對計數器執行復位指令,計數器復位,即計數器位為OFF,當前值為0。圖1所示為增計數器的用法。需要注意:在語句表中,CU、R的編程順序不能錯誤。
(2)減計數器CTD(Count Down)
首次掃描時,計數器位為OFF,當前值為預設定值PV。對CD輸入端的每個上升沿計數器計數1次,當前值減少一個單位,當前值減小到0時,計數器位置位為ON,當前值停止計數保持為0。復位輸入端有效或對計數器執行復位指令,計數器復位,即計數器位OFF,當前值復位為設定值。圖2所示為減計數器的用法。
圖1 增計數器指令
圖2 減計數器指令
(3)增、減計數器CTUD(Count Up/Down)
增減計數器有兩個計數脈沖輸入端:CU輸入端用于遞增計數,CD輸入端用于遞減計數。首次掃描時,定時器位為OFF,當前值為0。CU輸入的每個上升沿,計數器當前值增加1個單位;CD輸入的每個上升沿,都使計數器當前值減小1個單位,當前值達到設定值時,計數器位置位為ON。
增減計數器當前值計數到32 767(最大值)后,下一個CU輸入的上升沿將使當前值跳變為最小值(-32 768);當前值達到最小值-32 768后,下一個CD輸入的上升沿將使當前值跳變為最大值32767。復位輸入端有效或使用復位指令對計數器執行復位操作后,計數器復位,即計數器位OFF,當前值為0。圖3所示為增、減計數器的用法。
圖3 增減計數器指令