S7-200CPU提供了多個(gè)高速計(jì)數(shù)器(HSC0~HSC5)以響應(yīng)快速脈沖輸入信號。高速計(jì)數(shù)器的計(jì)數(shù)速度比PLC的掃描速度要快得多,因此高速計(jì)數(shù)器可獨(dú)立于用戶程序工作,不受掃描時(shí)間的限制。用戶通過相關(guān)指令,設(shè)置相應(yīng)的特殊存儲(chǔ)器控制計(jì)數(shù)器的工作。
1、高速計(jì)數(shù)器的工作模式和輸入
高速計(jì)數(shù)器有12種工作模式,每個(gè)計(jì)數(shù)器都有時(shí)鐘、方向控制、復(fù)位起動(dòng)等特定輸入。對于雙向計(jì)數(shù)器,兩個(gè)時(shí)鐘都可以運(yùn)行在最高頻率,高速計(jì)數(shù)器的最高技術(shù)頻率取決于CPU的類型。在正交模式下,可選擇1×(1倍速)或者4×(4倍速)輸入脈沖頻率的內(nèi)部技術(shù)頻率。高速計(jì)數(shù)器有8種4類工作模式。
(1)無外部方向輸入信號的單/減計(jì)數(shù)器(模式0和模式2)。
用高數(shù)計(jì)數(shù)器的控制字的第3位控制加減計(jì)數(shù),該位為1時(shí)為加計(jì)數(shù),為0時(shí)為減計(jì)數(shù)。
(2)有外部方向輸入信號的單/減計(jì)數(shù)器(模式3和模式5)。
方向信號為1時(shí),為加計(jì)數(shù),方向信號為0時(shí),為減計(jì)數(shù)。
(3)有加計(jì)數(shù)時(shí)鐘脈沖和減計(jì)數(shù)時(shí)鐘脈沖輸入的雙相計(jì)數(shù)器(模式6和模式8)。
若加計(jì)數(shù)脈沖和減計(jì)數(shù)脈沖的上升沿出現(xiàn)的時(shí)間間隔短,高速計(jì)數(shù)器認(rèn)為這兩個(gè)事件同時(shí)發(fā)生,當(dāng)前值不變,也不會(huì)有計(jì)數(shù)方向的變化的指示。否則高速計(jì)數(shù)器能捕捉到每一個(gè)獨(dú)立的信號。
(4)A/B相正交計(jì)數(shù)器(模式9和模式11)
它的兩路計(jì)數(shù)脈沖的相位相差90°,正轉(zhuǎn)時(shí)A相時(shí)鐘脈沖比B相時(shí)鐘脈沖超前90°。反轉(zhuǎn)時(shí),A相時(shí)鐘脈沖比B相時(shí)鐘脈沖滯后90°。利用這一特點(diǎn),正轉(zhuǎn)時(shí)加計(jì)數(shù),反轉(zhuǎn)時(shí),減計(jì)數(shù)。
高速計(jì)數(shù)器的工作模式和輸入點(diǎn)見表8-1。
表8-1高速計(jì)數(shù)器的工作模式和輸入點(diǎn)
【關(guān)鍵點(diǎn)】S7-200CPU221、CPU222沒有HSC1和HSC2;CPU224、CPU224XP和CPU226擁有全部的6個(gè)高速計(jì)數(shù)器。只有HSC0和HSC3支持模式12,其中HSC0計(jì)數(shù)Q0.0的輸出脈沖,其中HSC3計(jì)數(shù)Q0.1的輸出脈沖,在此模式下工作時(shí),并不需要外部接線。
高速計(jì)數(shù)器的硬件輸入接口與普通數(shù)字量接口使用相同的地址。已經(jīng)定義用于高速計(jì)數(shù)器的輸入點(diǎn)不能再用于其他功能。但某些模式下,沒有用到的輸入點(diǎn)還可以用作開關(guān)量輸入點(diǎn)。
2、高速計(jì)數(shù)器的控制字和初始值、預(yù)置值
所有的高速計(jì)數(shù)器在S7-200CPU的特殊存儲(chǔ)區(qū)中都有各自的控制字??刂谱钟脕矶x計(jì)數(shù)器的計(jì)數(shù)方式和其他一些設(shè)置,以及在用戶程序中對計(jì)數(shù)器的運(yùn)行進(jìn)行控制。高速計(jì)數(shù)器的控制字的位地址分配見表8-2。
表8-2高速計(jì)數(shù)器的控制字的位地址分配表
高速計(jì)數(shù)器都有初始值和預(yù)置值,所謂初始值就是高速計(jì)數(shù)器的起始值,而預(yù)置值就是計(jì)數(shù)器運(yùn)行的目標(biāo)值,當(dāng)前值(當(dāng)前計(jì)數(shù)值)等于預(yù)置值時(shí),會(huì)引發(fā)一個(gè)內(nèi)部中斷事件,初始值、預(yù)置值和當(dāng)前值都是32位有符號整數(shù)。必須先設(shè)置控制字以允許裝入初始值和預(yù)置值,并且初始值和預(yù)置值存入特殊存儲(chǔ)器中,然后執(zhí)行HSC指令使新的初始值和預(yù)置值有效。裝載高速計(jì)數(shù)器的初始值、預(yù)置值和當(dāng)前值的寄存器與計(jì)數(shù)器的對應(yīng)關(guān)系見表8-3。
表8-3裝載初始值、預(yù)置值和當(dāng)前值的寄存器與計(jì)數(shù)器的對應(yīng)關(guān)系表
以下用1個(gè)例子說明高速計(jì)數(shù)器在轉(zhuǎn)速測量中的應(yīng)用。
【例8-2】一臺(tái)電動(dòng)機(jī)上配有一臺(tái)光電編碼器(光電編碼器與電動(dòng)機(jī)同軸安裝),試用S7-200CPU測量電動(dòng)機(jī)的轉(zhuǎn)速。
解:由于光電編碼器與電動(dòng)機(jī)同軸安裝,所以光電編碼器的轉(zhuǎn)述就是電動(dòng)機(jī)的轉(zhuǎn)速。接線圖如圖8-5所示。
1、軟硬件配置
①1套STEP7-MicroWINV4.0SP9;
②1臺(tái)CPU226CN;
③1臺(tái)光電編碼器(1024線);
④1根編程電纜(或者CP5611卡);
圖8-5接線圖
【關(guān)鍵點(diǎn)】光電編碼器的輸出脈沖信號有+5V和+24V(或者18V),而多數(shù)S7-200CPU的輸入端的有效信號是+24V(PNP接法時(shí)),只有CPU224XP型的I0.3、I0.4和I0.5三個(gè)輸入端子既可以接入+5V的信號,也可以接入+24V的信號。因此,在選用光電編碼器時(shí)要注意不要選用+5V輸出的光電編碼器。圖8-4中的編碼器是PNP型輸出,這一點(diǎn)也非常重要,涉及到程序的初始化,在選型時(shí)要注意。此外,編碼器的A-端子要與PLC的1M短接。否則不能形成回路。
那么若只有+5V輸出的光電編碼器是否可以直接用于以上回路測量速度呢?答案是不能,但經(jīng)過三極管升壓后是可行,具體解決方案讀者自行思考。
2、編寫程序
本例的編程思路是先對高速計(jì)數(shù)器進(jìn)行初始化,起動(dòng)高數(shù)計(jì)數(shù)器,在100mS內(nèi)高數(shù)計(jì)數(shù)器計(jì)數(shù)個(gè)數(shù),轉(zhuǎn)化成每分鐘編碼器旋轉(zhuǎn)的圈數(shù)就是光電編碼器的轉(zhuǎn)速,也就是電動(dòng)機(jī)的轉(zhuǎn)速。光電編碼器為1024線,也就是說,高數(shù)計(jì)數(shù)器每收到1024個(gè)脈沖,電動(dòng)機(jī)就轉(zhuǎn)1圈。電動(dòng)機(jī)的轉(zhuǎn)速公式如下:
以上公式中:n為電動(dòng)機(jī)的轉(zhuǎn)速,N為100mS內(nèi)高數(shù)計(jì)數(shù)器計(jì)數(shù)個(gè)數(shù)(收到脈沖個(gè)數(shù))。
程序如圖8-6至圖8-9所示。
圖8-6主程序
圖8-7子程序SBR_0
圖8-8子程序SBR_1