關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > PLC在流量顯示和累積計量上的應(yīng)用

PLC在流量顯示和累積計量上的應(yīng)用

作者: 時間:2010-08-11 來源:網(wǎng)絡(luò) 收藏

目前,PLC()已經(jīng)廣泛應(yīng)用于鋼鐵、石油、化工、電力、建材、機械制造、汽車、輕紡、交通運輸、環(huán)保及文化娛樂等各個行業(yè),它具有高可靠性、抗干擾能力強、功能強大、靈活,易學(xué)易用、體積小,重量輕,價格便宜的特點,在流量計量方面也有著廣泛的用途,在用于流量累積時又有其編程的獨特之處,下面進行詳細的分析和論述,包括在西門子S7-200CPU上編程的例子。

流量計輸出的信號一般是信號或4-20mA電流信號,這兩種信號輸出的都是瞬時流量(也有用繼電器輸出信號,原理一樣,不再贅述),我們的目的是在PLC中計算和顯示瞬時流量值和計算值,當(dāng)輸入信號是信號是,在計算瞬時流量的時候,必須按照一個嚴格的時間間隔計算才能保證瞬時流量的準確性,因此,計算瞬時流量的時候必須用定時中斷來進行,而且,在PLC系統(tǒng)中只能運行這一個中斷程序,不允許再產(chǎn)生其它中斷(即使是低優(yōu)先級的中斷也不允許運行),以防止干擾定時中斷的時間間隔的準確性,計算瞬時流量就是將這個時間段的累計個數(shù)換算成累計流量,再除以時間就是瞬時流量,對于4-20mA輸入只需按照其對應(yīng)的量程進行換算就可以直接得到瞬時流量,而累積流量就是將每個時間段內(nèi)的累積流量累加起來就是累積流量,在實際使用PLC編程的過程中必須注意以下幾個問題:

1. 輸入脈沖頻率范圍是否超出PLC接收的范圍;

2. PLC在達到最大計數(shù)值時如何保證計算正確;

3. 如何保證定時中斷不受干擾;

4. 如何避免計算的誤差;

5. 累積量的最大累積位數(shù);

6. 如何復(fù)位累積量;

下面就最關(guān)鍵的2,4,6問題進行詳細的敘述,以西門子S7-200 CPU224為例,S7-200的CPU224具有6個單相最大30kHz的,但PLC內(nèi)部沒有提供相應(yīng)的算法來計算頻率,因此,需要自己編程計算,這就需要在PLC在達到最大計數(shù)值時要保證計算的正確性,實際編程時,對高速計數(shù)器初始化以后就使之連續(xù)計數(shù),不再對其進行任何干預(yù),其高速計數(shù)器的初始化程序如下:


注意:此段程序應(yīng)該放到PLC第一個掃描周期執(zhí)行的程序中執(zhí)行。

對于高速計數(shù)器是否達到最大計數(shù)值時需要判斷,S7-200CPU的高速計數(shù)器是可以周而復(fù)始的進行累計的,最高位為符號位,最小值為7FFFFFFF,由于計數(shù)器是一直累加的,不可能出現(xiàn)本次讀取的的計數(shù)值小于上次的計數(shù)值,因此判斷計數(shù)器當(dāng)前值是否小于前一次的計數(shù)值,就可以判斷計數(shù)是否達到最大值的拐點(7FFFFFFF),如果達到,則執(zhí)行特殊的計算以便消除計算錯誤,如下列程序所示,當(dāng)當(dāng)前計數(shù)值大于等于上次計數(shù)值時,兩個計數(shù)值做差,就得到程序兩次掃描時間間隔內(nèi)的計數(shù)差值,同時將當(dāng)前計數(shù)值賦值到上次計數(shù)值上;當(dāng)當(dāng)前計數(shù)值小于上次計數(shù)值時,計算上次計數(shù)值與7FFFFFFF之間的差值(用減法),以及當(dāng)前計數(shù)值和7FFFFFFF之間的差值(用加法),然后將兩個結(jié)果相加就是程序兩次掃描時間間隔內(nèi)的計數(shù)差值,從而實現(xiàn)對對累計計數(shù)值達到拐點時的正確計算。


注:此程序應(yīng)放在定時中斷子程序中執(zhí)行。

實際上,在現(xiàn)場應(yīng)用中定時中斷子程序是采用250ms中斷一次執(zhí)行的,使用SMB34進行控制的,需要注意的是,系統(tǒng)中必須只保證這個中斷是唯一存在的,不會受到其他中斷的影響,否則可能會由于其他中斷的影響使周期性中斷不準時,從而影響精度。

通過以上計算就得到了250ms內(nèi)流量計發(fā)過來的脈沖個數(shù),這個數(shù)值乘以脈沖當(dāng)量就是250ms內(nèi)的流量值,再除以時間就是瞬時流量,另外,在250ms內(nèi)再執(zhí)行累加程序就可以計算累積流量了,在計算累積流量過程中需要避免累積過程的的計算誤差,我們知道,流量累積量是一直累積的一個數(shù)值,一般會累積到8位數(shù),而PLC內(nèi)部的浮點數(shù)的有效位數(shù)是6位,當(dāng)累積量數(shù)值很大的時候就會造成一個大數(shù)和一個小數(shù)相加,勢必導(dǎo)致小數(shù)的有效位數(shù)丟失,造成很大的累積誤差,因此,要避免大數(shù)和小數(shù)相加的情況出現(xiàn),解決方法是采用多個流量,只允許同數(shù)量級的數(shù)值相加,從而避免數(shù)值有效位數(shù)損失,實際編程中采用了5個,根據(jù)常用流量情況下,在周期中斷時間間隔(250ms)內(nèi)流過的流量乘以15作為第一個的上限,當(dāng)達到這個累積器的上限值后,將這個累積器的值累加到第2個累積器中,并把第一個累積器清零,對于第三個累積器也同樣處理,第4個累積器用于保存累積量小數(shù)部分數(shù)值,第5個累積器用于保存累積量整數(shù)部分數(shù)值,這樣在顯示總累積量時只需顯示整數(shù)部分和小樹部分就可以了,整個過程充分避免了累積過程中大數(shù)與小數(shù)相加的情況出現(xiàn),在實際工程中,需根據(jù)流量的大小、周期中斷的時間間隔來確定所用累積器的個數(shù),而累積器的整數(shù)部分用雙整數(shù)來表示,雙整數(shù)的范圍是-2,147,483,648到+2,147,483,647,因此,可以使累積器的整數(shù)位數(shù)達到9位,這樣,在顯示累積量時就可以最多顯示9位整數(shù)的累積量和6位的小數(shù)累積量??傆?5位,從而省略累積器倍乘系數(shù),使讀數(shù)更簡便。

對累積器需要在一定條件下復(fù)位,累積到最大數(shù)值或手動復(fù)位,在中斷程序中判斷累積量是否達到超過最大位數(shù),當(dāng)超過最大數(shù)值時,將各個累積器清零,另外清零的觸發(fā)信號也可以是手動觸發(fā)。

塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉