來(lái)源:網(wǎng)絡(luò) 2012-07-17 關(guān)鍵詞:自動(dòng)化 PLC 可編程邏輯控制器  工控摘要:目前,PLC(可編程邏輯控制器)已經(jīng)廣泛應(yīng)用于鋼鐵、石油、化工、電力、建材、機(jī)械制造、汽車(chē)、輕紡、交通運(yùn)輸、環(huán)保及文化娛樂(lè)等各個(gè)行業(yè),它具有高可靠性、抗干擾能力強(qiáng)、功能強(qiáng)大、靈活,易學(xué)易用、體積小,重量輕,價(jià)格便宜的特點(diǎn),在流量計(jì)量方面也有著廣泛的用途,在用于流量累積時(shí)又有其編程的獨(dú)特之處,下面進(jìn)行詳細(xì)的分析和論述,包括在西門(mén)子S7-200CPU上編程的例子?! ×髁坑?jì)輸收購(gòu)PLC出的信號(hào)一般是脈沖信號(hào)或4-20mA電流信號(hào),這兩種信號(hào)輸出的都是瞬時(shí)流量(也有用繼電收購(gòu)PLC器輸出累積量信號(hào),原理一樣,不再贅述),收購(gòu)西門(mén)子PLC我們的目的是在PLC中計(jì)算和顯示瞬時(shí)流量值和計(jì)算累積量值,當(dāng)輸入信號(hào)是脈沖信號(hào)是,在計(jì)算瞬時(shí)流量的時(shí)候,必須按照一個(gè)嚴(yán)格的時(shí)間間隔計(jì)算才能保證瞬時(shí)流量的準(zhǔn)確性,因此,計(jì)算瞬時(shí)流量的時(shí)候必須用定時(shí)中斷來(lái)進(jìn)行,而且,在PLC系統(tǒng)中只能收購(gòu)西門(mén)子PLC運(yùn)行這一個(gè)中斷程序,不允許再產(chǎn)生其它中斷(即使是低優(yōu)先級(jí)的中斷也不允許運(yùn)行),以防止干擾定時(shí)中斷的時(shí)間間隔的準(zhǔn)確性,計(jì)算瞬時(shí)流量就是將這個(gè)時(shí)間段的累計(jì)脈沖個(gè)數(shù)換算成累計(jì)流量,再除以時(shí)間就是瞬時(shí)流量,對(duì)于4-20mA輸入只需按照其對(duì)應(yīng)的量程進(jìn)行換算就可以直接得到瞬時(shí)流量,而累積流量就是將收購(gòu)西門(mén)子PLC每個(gè)時(shí)間段內(nèi)的累積流量累加起來(lái)就是回收西門(mén)子PLC累積流量,在實(shí)際使用PLC編程的過(guò)程中必須注意以下幾個(gè)問(wèn)題:  1.輸入脈沖頻率范圍是否超出PLC接收的范圍;  2.PLC高速計(jì)數(shù)器在收購(gòu)PLC達(dá)到最大計(jì)數(shù)值時(shí)如何保證計(jì)算正確;  3.如何保證定時(shí)回收西門(mén)子PLC中斷不受干擾;  4.如何避免計(jì)算累積量的誤差;  5.累積量的最大收購(gòu)西門(mén)子PLC累積位數(shù);  6.如何復(fù)位累積量;  下面就最關(guān)鍵的2,4,6問(wèn)題進(jìn)行收購(gòu)西門(mén)子PLC詳細(xì)的敘述,以西門(mén)子收購(gòu)PLCS7-200CPU224為例,S7-200的CPU224具有6個(gè)單相回收西門(mén)子PLC最大30kHz的高速計(jì)數(shù)器,但PLC內(nèi)部沒(méi)有提供相應(yīng)回收PLC的算法來(lái)計(jì)算頻率,因此,需要自己編程計(jì)算回收西門(mén)子PLC,這就需要在PLC高速計(jì)數(shù)回收PLC器在達(dá)到最大計(jì)數(shù)值時(shí)要保證計(jì)算的正確性,實(shí)際編程時(shí),對(duì)高速計(jì)數(shù)器初始化以后就使之連續(xù)計(jì)數(shù),不再對(duì)其進(jìn)行任何干預(yù),其高速計(jì)數(shù)器的收購(gòu)西門(mén)子PLC初始化程序如下:  注意:此段程序應(yīng)該放到PLC第一個(gè)掃描周期執(zhí)行的程序中執(zhí)行。對(duì)于高速計(jì)數(shù)器是否達(dá)到最大計(jì)數(shù)值時(shí)需要判斷,S7-200CPU的高速計(jì)數(shù)器是可以周而復(fù)始的進(jìn)行累計(jì)的,最高位為符號(hào)位,最小值為7FFFFFFF,由于計(jì)數(shù)器是一直累加的,不可能出現(xiàn)本次讀取的的計(jì)數(shù)值小于上次的計(jì)數(shù)值,因此判斷計(jì)數(shù)器當(dāng)前回收PLC值是否小于前一次的計(jì)收購(gòu)西門(mén)子PLC數(shù)值,就可以判斷計(jì)數(shù)是否達(dá)到回收PLC最大值的拐點(diǎn)(7FFFFFFF),如果達(dá)到,則執(zhí)行特殊的計(jì)算以便消除計(jì)算錯(cuò)誤,如下列程序所示,當(dāng)當(dāng)前計(jì)數(shù)值大于等于上次計(jì)數(shù)值時(shí),兩收購(gòu)PLC個(gè)計(jì)數(shù)值做差,就得到程序兩次掃描時(shí)間間隔內(nèi)的計(jì)數(shù)差值,同時(shí)將當(dāng)前收購(gòu)西門(mén)子PLC計(jì)數(shù)值賦值到上次計(jì)數(shù)值上;  當(dāng)當(dāng)前計(jì)數(shù)值小于上次計(jì)數(shù)值時(shí),計(jì)算上次計(jì)數(shù)值與7FFFFFFF之間的差值(用減法),以及當(dāng)前計(jì)數(shù)值和7FFFFFFF之間的差值(用加法),然后將收購(gòu)PLC兩個(gè)結(jié)果相加就是程序兩次掃描回收西門(mén)子PLC時(shí)間間隔內(nèi)的計(jì)數(shù)差值,從而實(shí)現(xiàn)對(duì)對(duì)累計(jì)計(jì)數(shù)值達(dá)到拐點(diǎn)時(shí)的正確計(jì)算。