目前,具有眾多不同品牌流量積算儀用來測量工業(yè)現(xiàn)場液體或者固體的瞬時流量,然后通過4-20mA信號傳遞給PLC,作為控制或監(jiān)控的數(shù)據(jù)標(biāo)準(zhǔn)。PLC根據(jù)瞬時流量積算一定時間內(nèi)的累積流量,對于流程工業(yè)控制領(lǐng)域液體或固體流量的數(shù)據(jù)分析和產(chǎn)量計算應(yīng)用具有重要的意義。
1、PLC系統(tǒng)中實(shí)現(xiàn)流量積算的方法
首先必須明確,用PLC做流量累計的精度遠(yuǎn)不如電磁流量計等本身自帶累計功能的流量計和流量積算儀。對有累積功能的流量計轉(zhuǎn)換器,一般流量轉(zhuǎn)換器的流量累積輸出是脈沖輸出,可通過PLC的高速脈沖輸入端進(jìn)行高速計數(shù),從而得出累積流量。
對只有瞬時流量輸出的流量計,才考慮在PLC中進(jìn)行流量累積加法運(yùn)算。在PLC內(nèi)做流量累積的時候,不應(yīng)使用定時器來做,因?yàn)槎〞r器受到PLC掃描周期的影響,沒法做到十分精確,累加出來數(shù)據(jù)的誤差很大。
目前,一般的中大型PLC都直接或者間接提供了“Totalizer”功能塊,實(shí)質(zhì)都是把每個采集周期的瞬時流量進(jìn)行簡單累加。昌暉儀表提供一種將定積分計算引入到流量累積的具體方法,以供參考。
2、定積分計算法引入流量積算的幾何意義
設(shè)瞬時流量q=q(t)在時間段t的[a,b]區(qū)間連續(xù),那么流量累積計算公式為:
圖1 瞬時流量
有定積分的幾何意義,求時間a到時間b區(qū)間內(nèi)的總流量Q,只需要計算曲線q=q(t),直線t=a,直線t=b和時間軸t所圍成的曲邊梯形面積。在區(qū)間a,b內(nèi)插入若干個平分點(diǎn):a=t0<t1<t2<…<tn-1<tn=b,把區(qū)間[a,b]分成n個小區(qū)間:[ti-1,ti],求每個區(qū)間長度Δt上的區(qū)間累積流量,只需求第i個小曲邊梯形的面積。我們可以把每個小曲邊梯形近似看作是小梯形,見圖2:
圖2 瞬時流量分割圖
面積計算:
如果分割無限加細(xì),區(qū)間個數(shù)n趨向于無窮(n→∞)時,總流量計算為:
3、TIA Portal V15具體實(shí)現(xiàn)積分累積流量的方法
以下以Siemens PLC系統(tǒng)的TIA Portal V15為例,實(shí)現(xiàn)積分累積流量的方法:
①在程序目錄下添加新的FB函數(shù)塊,確定名稱如“Totalizer”,為了實(shí)現(xiàn)數(shù)值計算的簡單性,這個功能塊的編程語言選擇結(jié)構(gòu)化文本語言SCL。
②打開新建功能塊,并建立臨時變量,如下圖所示
變量定義
◆變量名:Reset,數(shù)據(jù)類型:Bool,分組:Input,作用:FB接收外部傳遞的累積清零命令;
◆變量名:Value,數(shù)據(jù)類型:Real,分組:Input,作用:FB接受外部傳遞的瞬時流量數(shù)據(jù),需要注意的是:一般流量計瞬時流量單位是m3/h,這里需要統(tǒng)一換算成m3/s,即PLC接收的瞬時流量除以3600后再輸入此處;
◆變量名:Cycle,數(shù)據(jù)類型:TIME,分組:Input,作用:FB接受程序循環(huán)時間,單位:秒,
在這里,Cycle值為0B30中斷循環(huán)塊的循環(huán)時間。
◆變量名:Last_Value,數(shù)據(jù)類型:Real,分組:Static,作用:靜態(tài)存儲上一掃描周期的瞬時流量值;
◆變量名:Accum,數(shù)據(jù)類型:Real,分組:Static,作用:靜態(tài)存儲流量累積值;
◆變量名:Cycle_DInt,數(shù)據(jù)類型:Dint,分組:Temp,作用:在FB中零時存儲Cycle轉(zhuǎn)換為Dint數(shù)據(jù)類型后的值;
◆變量名:Cycle_Real,數(shù)據(jù)類型:Real,分組:Temp,作用:在FB中臨時存儲Cycle_DInt轉(zhuǎn)換為Real數(shù)據(jù)類型后的值;
◆變量名:Total,數(shù)據(jù)類型:Real,分組:Output,作用:FB向外部傳送流量累積值。
③程序編寫,如下圖所示:
程序編寫完成后,進(jìn)行編譯,編譯沒有錯誤時,可供調(diào)用。
④在流量計算功能的FC中調(diào)用名字為“Totalizer”的FB塊,并對輸入輸出參數(shù)賦值,如下圖所示:
⑤在OB30中調(diào)用流量計算FC功能塊,OB30中斷塊是循環(huán)中斷塊,循環(huán)時間設(shè)置為100ms,如下圖所示:
⑥程序解讀
4、PLC系統(tǒng)中流量計算的其它問題
上述程序只是簡單示例,實(shí)際應(yīng)用中,需要根據(jù)實(shí)際情況考慮更復(fù)雜的問題,比如:
◆對于積分算法,取小的矩形對流量進(jìn)行累計,肯定是矩形劃分越細(xì)(也就是OB30的循環(huán)時間越短),誤差越小,不存在誤差是不可能的。
◆流量計本身有累計流量功能,同時可以把瞬時流量以模擬量的方式(例如4-20mA)輸出,但無法將累計流量數(shù)值送出。那么,流量計本身累積流量的數(shù)值,最后很有可能與PLC的累計流量數(shù)值相差很大,原因可能是多方面造成的,除去系統(tǒng)累計流量誤差的因素,如果PLC系統(tǒng)停電檢修或者更換相關(guān)模塊時,流量計還在計量,則PLC無法累積這部分流量。
◆累積數(shù)值的自動和手動清零,以免數(shù)據(jù)溢出。其中自動清零的時機(jī)要結(jié)合程序考慮好。
◆在流量累積編程時應(yīng)避免數(shù)量級相差太多的浮點(diǎn)數(shù)之間進(jìn)行運(yùn)算。如果沒有適時清零,流量累積程序在運(yùn)行之初是正常的,因?yàn)槔塾嬃髁砍跏贾导傲髁克矔r值都為一個很小的浮點(diǎn)數(shù),兩數(shù)相加后,結(jié)果正確。但是當(dāng)一段時間后,累計流量的數(shù)值逐漸增大,當(dāng)它與瞬時流量的數(shù)值相差很遠(yuǎn)的時候,兩者執(zhí)行加法操作后,瞬時流量的數(shù)值將被忽略掉(如9999990.0與0.2做加法操作)。其實(shí)具備計算機(jī)常識的人都應(yīng)當(dāng)清楚這一點(diǎn),這是由于浮點(diǎn)數(shù)的存儲機(jī)制造成的,這個問題可以通過使用二級累加或多級別累加的方法來解決,比如每一級累加器只能進(jìn)行規(guī)定級別大小的數(shù)據(jù)累加,當(dāng)一級累加器的累積數(shù)據(jù)大到一定程度時,立刻把數(shù)據(jù)傳送到二級累加器,然后把一級累加器清零。
下面是昌暉儀表生產(chǎn)的高精度高性能智能流量積算儀
相關(guān)閱讀
YR-GFK流量積算儀校準(zhǔn)方法及流量積算儀接線
不同品牌流量積算儀Modbus通訊的一些小問題
蒸汽流量測量為什么要用帶溫壓補(bǔ)償流量積算儀
共有訪客發(fā)表了評論
網(wǎng)友評論