西門(mén)子s7—200系列plc的計(jì)數(shù)器分為一般用途計(jì)數(shù)器和高速計(jì)數(shù)器兩大類(lèi)。一般用途計(jì)數(shù)器用來(lái)累計(jì)輸入脈沖的個(gè)數(shù),其計(jì)數(shù)速度較慢,其輸入脈沖頻率必須要小于plc程序掃描頻率,一般最高為幾百hz,所以在實(shí)際應(yīng)用中主要用來(lái)對(duì)產(chǎn)品進(jìn)行計(jì)數(shù)等控制任務(wù)。高速計(jì)數(shù)器主要用于對(duì)外部高速脈沖輸入信號(hào)進(jìn)行計(jì)數(shù),例如在定位控制系統(tǒng)中,位置編碼器的位置反饋脈沖信號(hào)一般高達(dá)幾khz,有時(shí)甚至達(dá)幾十khz,遠(yuǎn)遠(yuǎn)高于plc程序掃描頻率,這時(shí)一般的計(jì)數(shù)器已經(jīng)無(wú)能為力,plc對(duì)于這樣的高速脈沖輸入信號(hào)計(jì)數(shù)采用的是與程序掃描周期無(wú)關(guān)的中斷方式來(lái)實(shí)現(xiàn)的。由于篇幅有限,這里只介紹一般用途計(jì)數(shù)器。
1、計(jì)數(shù)器種類(lèi)和編號(hào)
s7—200系列plc的計(jì)數(shù)器有3種:增計(jì)數(shù)器ctu、增減計(jì)數(shù)器ctud和減計(jì)數(shù)器ctd。
計(jì)數(shù)器的編號(hào)用計(jì)數(shù)器名稱(chēng)和數(shù)字(0~255)組成,即c×××,如c6。計(jì)數(shù)器的編號(hào)包含兩方面的信息:計(jì)數(shù)器的位和計(jì)數(shù)器當(dāng)前值。計(jì)數(shù)器位和繼電器一樣是一個(gè)開(kāi)關(guān)量,表示計(jì)數(shù)器是否發(fā)生動(dòng)作的狀態(tài)。當(dāng)計(jì)數(shù)器的當(dāng)前值達(dá)到設(shè)定值時(shí),該位被置位為on。計(jì)數(shù)器當(dāng)前值是一個(gè)存儲(chǔ)單元,它用來(lái)存儲(chǔ)計(jì)數(shù)器當(dāng)前所累計(jì)的脈沖個(gè)數(shù),用16位符號(hào)整數(shù)來(lái)表示,最大數(shù)值為32 767。
計(jì)數(shù)器的設(shè)定值輸入數(shù)據(jù)類(lèi)型為int型。尋址范圍:vw、iw、qw、mw、sw、smw、lw、aiw、t、c、ac、*vd、*ac、*ld和常數(shù)。一般情況下使用常數(shù)作為計(jì)數(shù)器的設(shè)定值。
2、計(jì)數(shù)器指令使用說(shuō)明
計(jì)數(shù)器指令的lad和stl格式如表所列。
表7.11
計(jì)數(shù)器指令的lad和stl形式
格式
名稱(chēng)
增計(jì)數(shù)器
增減計(jì)數(shù)器
減計(jì)數(shù)器
lad
stl
ctu c***, pv
ctud c***, pv
ctd c***, pv
(1)增計(jì)數(shù)器ctu(count up)
首次掃描時(shí),計(jì)數(shù)器位為off,當(dāng)前值為0。在計(jì)數(shù)脈沖輸入端cu的每個(gè)上升沿,計(jì)數(shù)器計(jì)數(shù)1次,當(dāng)前值增加一個(gè)單位。當(dāng)前值達(dá)到設(shè)定值時(shí),計(jì)數(shù)器位on,當(dāng)前值可繼續(xù)計(jì)數(shù)到32 767后停止計(jì)數(shù)。復(fù)位輸入端有效或?qū)τ?jì)數(shù)器執(zhí)行復(fù)位指令,計(jì)數(shù)器復(fù)位,即計(jì)數(shù)器位為off,當(dāng)前值為0。圖1所示為增計(jì)數(shù)器的用法。需要注意:在語(yǔ)句表中,cu、r的編程順序不能錯(cuò)誤。
(2)減計(jì)數(shù)器ctd(count down)
首次掃描時(shí),計(jì)數(shù)器位為off,當(dāng)前值為預(yù)設(shè)定值pv。對(duì)cd輸入端的每個(gè)上升沿計(jì)數(shù)器計(jì)數(shù)1次,當(dāng)前值減少一個(gè)單位,當(dāng)前值減小到0時(shí),計(jì)數(shù)器位置位為on,當(dāng)前值停止計(jì)數(shù)保持為0。復(fù)位輸入端有效或?qū)τ?jì)數(shù)器執(zhí)行復(fù)位指令,計(jì)數(shù)器復(fù)位,即計(jì)數(shù)器位off,當(dāng)前值復(fù)位為設(shè)定值。圖2所示為減計(jì)數(shù)器的用法。
圖1 增計(jì)數(shù)器指令
圖2 減計(jì)數(shù)器指令
(3)增、減計(jì)數(shù)器ctud(count up/down)
增減計(jì)數(shù)器有兩個(gè)計(jì)數(shù)脈沖輸入端:cu輸入端用于遞增計(jì)數(shù),cd輸入端用于遞減計(jì)數(shù)。首次掃描時(shí),定時(shí)器位為off,當(dāng)前值為0。cu輸入的每個(gè)上升沿,計(jì)數(shù)器當(dāng)前值增加1個(gè)單位;cd輸入的每個(gè)上升沿,都使計(jì)數(shù)器當(dāng)前值減小1個(gè)單位,當(dāng)前值達(dá)到設(shè)定值時(shí),計(jì)數(shù)器位置位為on。
增減計(jì)數(shù)器當(dāng)前值計(jì)數(shù)到32 767(最大值)后,下一個(gè)cu輸入的上升沿將使當(dāng)前值跳變?yōu)樽钚≈?-32 768);當(dāng)前值達(dá)到最小值-32 768后,下一個(gè)cd輸入的上升沿將使當(dāng)前值跳變?yōu)樽畲笾?2767。復(fù)位輸入端有效或使用復(fù)位指令對(duì)計(jì)數(shù)器執(zhí)行復(fù)位操作后,計(jì)數(shù)器復(fù)位,即計(jì)數(shù)器位off,當(dāng)前值為0。圖3所示為增、減計(jì)數(shù)器的用法。
圖3 增減計(jì)數(shù)器指令