在PLC5/40C中實(shí)現(xiàn)高精度流量累積運(yùn)算的方法
1 引言
中國(guó)石化股份有限公司廣州分公司6號(hào)罐區(qū)監(jiān)控系統(tǒng)于2001年由常規(guī)儀表改造為PLC系統(tǒng)。其中工藝要求在監(jiān)控系統(tǒng)中對(duì)瞬時(shí)流量FI101進(jìn)行累積顯示。經(jīng)過(guò)對(duì)該流量累積的運(yùn)算方法的多次測(cè)試,找到了在運(yùn)算中最大限度減少誤差的方法,并在邏輯梯形圖成功實(shí)現(xiàn)累積運(yùn)算。
2 監(jiān)控系統(tǒng)簡(jiǎn)介
廣州石化6#罐區(qū)監(jiān)控系統(tǒng)采用ROCKWELL公司的可編程控制器和人機(jī)界面軟件,用于實(shí)現(xiàn)對(duì)該液態(tài)烴罐區(qū)的24個(gè)球罐的各種工藝參數(shù)的實(shí)時(shí)監(jiān)控、報(bào)警、聯(lián)鎖等功能。該系統(tǒng)從2000年10月開(kāi)始設(shè)計(jì),2001年4月系統(tǒng)安裝、組態(tài)、調(diào)試工作全面完工。
該系統(tǒng)人機(jī)界面采用Rockwell software公司開(kāi)發(fā)的RSView32軟件。RSView32基于Microsoft Windows NT和Windows 95/98平臺(tái)設(shè)計(jì),是一種易用的、可集成的,基于組件的人機(jī)對(duì)話系統(tǒng),在編制人機(jī)交互界面方面具有極大的靈活性和極強(qiáng)的功能。
控制器采用ControlNet PLC-5/40C處理器熱備系統(tǒng)。ControlNet PLC-5/40C處理器是PLC5系列中的新技術(shù)產(chǎn)品,處理器及I/O系統(tǒng)可以通過(guò)Redundant ControlNet總線交換數(shù)據(jù)。6#罐區(qū)監(jiān)控系統(tǒng)將1號(hào)PLC和2號(hào)PLC配置為冗余控制器。在正常狀態(tài)下,只有主處理器的輸出數(shù)據(jù)對(duì)I/O系統(tǒng)進(jìn)行控制,主從處理器通過(guò)ControlNet交換數(shù)據(jù)及狀態(tài)保持同步,如果主處理器出錯(cuò),從處理器將接替主處理器對(duì)網(wǎng)絡(luò)及對(duì)I/O系統(tǒng)進(jìn)行控制。
該P(yáng)LC系統(tǒng)DI點(diǎn)采用1771-IBD開(kāi)關(guān)量輸入模塊,DO點(diǎn)采用1771-OW16開(kāi)關(guān)量輸出模塊,AI點(diǎn)采用1771-IFE模擬量輸入模塊,16點(diǎn)單邊輸入。采用1785-CHBM作為處理器熱備模塊,1771-ACNR15為帶冗余網(wǎng)口的ControlNet適配器模塊。
本系統(tǒng)有3臺(tái)上位機(jī),其中2臺(tái)為操作站,1臺(tái)為工程師站。每一臺(tái)上位機(jī)都能通過(guò)ControlNet單獨(dú)對(duì)PLC進(jìn)行數(shù)據(jù)采集和控制。上位機(jī)還通過(guò)以太網(wǎng)實(shí)現(xiàn)文件和其他數(shù)據(jù)的共享。
ControlNet的組態(tài)使用軟件RSNetWorx,PLC系統(tǒng)組態(tài)及控制邏輯組態(tài)使用軟件RSLogix5。在ControlNet 網(wǎng)絡(luò)中,可以組態(tài)預(yù)定的數(shù)據(jù)傳送操作。這樣要實(shí)現(xiàn)在處理器和外部設(shè)備之間的數(shù)據(jù)交換,如在1771-IFE卡和處理器之間,主備處理器之間的數(shù)據(jù)交換,并不需要在邏輯梯形圖中使用塊傳送指令。
圖1 6#罐區(qū)監(jiān)控系統(tǒng)結(jié)構(gòu)圖概貌
3 FIQ101的累積實(shí)
3.1 流量FIQ101概述
廣州石化6#罐區(qū)需要對(duì)進(jìn)出罐的液化氣流量FI101進(jìn)行計(jì)量。就地儀表采用Micro Motion質(zhì)量流量計(jì)。該流量計(jì)準(zhǔn)確度±0.12%,除了可以就地顯示外,同時(shí)可以將瞬時(shí)流量值輸出為4-20mA信號(hào)。該信號(hào)接入PLC系統(tǒng)的1771-IFE模擬量輸入模塊,經(jīng)過(guò)12bit 的模數(shù)轉(zhuǎn)換后轉(zhuǎn)換為0-4095的值。在1771-IFE中,還可以將0-4095的值定標(biāo)為-9999到+9999的工程單位值。工藝要求在操作室除了可以監(jiān)視瞬時(shí)流量值外,還要求有準(zhǔn)確的流量累積值顯示。我們?cè)赑LC中用梯形邏輯來(lái)實(shí)現(xiàn)流量累積的運(yùn)算。
3.2 流量累積的原理
如何把瞬時(shí)流量(又稱流率)經(jīng)過(guò)累加運(yùn)算為總流量,一般有如下一個(gè)公式:
瞬時(shí)流量×?xí)r間=總流量
我們知道,假設(shè)一個(gè)流量值為5m3/s在1min內(nèi)不變化,則在這1min內(nèi)的的總流量為:
(5m3/s) * 60s = 300m3
現(xiàn)在假設(shè)流量變化如下:
4m3/s有 30 s
5m3/s有 10 s
6m3/s有 20 s
則在這1min內(nèi)的的總流量為:
(4m3/s)*30s+(5m3/s)*10 s+(6m3/s)*20s=290m3
假設(shè)流量隨時(shí)都可能變化,那么就不能用上面的公式來(lái)計(jì)算總流量了。我們可以按一定的時(shí)間間隔采樣流量值,然后計(jì)算這些值的總和。流量的采樣時(shí)間越短,計(jì)算的結(jié)果就越準(zhǔn)確。請(qǐng)看圖2和圖3。
在上面2個(gè)例子中,曲線下面的區(qū)域就是總流量。采樣間隔時(shí)間越短,計(jì)算誤差就越小。
在實(shí)際應(yīng)用中,由于PLC計(jì)時(shí)器的限制,最短的時(shí)間間隔只有0.01s。然而采樣間隔時(shí)間越短,計(jì)算次數(shù)就越多,這樣就增加了PLC的程序掃描時(shí)間。
圖3 短的采樣間隔時(shí)間
3.3 在PLC 5/40C中流量累積運(yùn)算的方法
我們用梯形邏輯來(lái)實(shí)現(xiàn)流量累積的運(yùn)算時(shí)可以采用“可選定時(shí)中斷子程序”來(lái)處理,這樣采樣間隔時(shí)間就是固定的了。但是在PLC 5/40C中只有一個(gè)可選定時(shí)中斷子程序,其定時(shí)中斷時(shí)間一般較難同時(shí)滿足幾種邏輯功能的需要。
我們也可以計(jì)時(shí)器指令來(lái)來(lái)作為采樣間隔時(shí)間,每次計(jì)時(shí)器到了設(shè)定值就采樣一次。計(jì)時(shí)器的精度不可能高于它的時(shí)基,因此每次計(jì)時(shí)器超時(shí)和再次開(kāi)始計(jì)時(shí)的時(shí)候,都要產(chǎn)生一個(gè)時(shí)基的正或負(fù)的誤差。例如,10ms為一個(gè)時(shí)基的計(jì)時(shí)器預(yù)定計(jì)10次,其時(shí)間計(jì)算將是100ms正或負(fù)10ms。
我們也可以采用一種技巧來(lái)減少因計(jì)時(shí)器精度帶來(lái)的誤差。我們采用長(zhǎng)的時(shí)間計(jì)時(shí)來(lái)作。例如,10ms為一個(gè)時(shí)基的計(jì)時(shí)器預(yù)定計(jì)30000次(PLC 5/40C的計(jì)時(shí)器的預(yù)置值范圍為0-32767),其時(shí)間計(jì)算將是300s正或負(fù)10ms。在這其中,我們可以預(yù)定一個(gè)采樣間隔時(shí)間為10個(gè)時(shí)基(100ms)以上。每次程序掃描,處理器判斷如果自從上次累積運(yùn)算起,時(shí)間間隔超過(guò)預(yù)定時(shí)間(例如:100ms),就將這段時(shí)間乘以當(dāng)前的瞬時(shí)流量值作為累加量。在這種算法中,采樣間隔時(shí)間就不是固定的了。
另外要考慮的是運(yùn)算所用到的數(shù)據(jù)格式。PLC 5/40C數(shù)據(jù)表按不同的格式和范圍來(lái)存儲(chǔ)不同類型的數(shù)據(jù)。有兩種文件格式可以選擇,一是N文件(整數(shù)型文件),值的范圍為-32768到+32767,占1個(gè)16位字;因?yàn)樵诶鄯e運(yùn)算過(guò)程中,數(shù)的乘積和多次累加值一般都會(huì)超出+32767,所以我們盡量不用N文件。
另外是F文件(浮點(diǎn)數(shù)文件),值的范圍為±1.175494e-38到 3.402823e+38,占1個(gè)32位字。浮點(diǎn)數(shù)在寄存器中32位的空間表示為:
S xxxxxxxx mmmmm
上面: s=符號(hào) x=指數(shù) m=尾數(shù)
可見(jiàn)用浮點(diǎn)數(shù)表示的值的十進(jìn)制有效位數(shù)只有7位。因此,必須考慮有效位數(shù)問(wèn)題。舉例如下:
假設(shè)A代表計(jì)算的總流量,F(xiàn)代表計(jì)算上一次累加的流量,把F加到A上就會(huì)計(jì)算出一個(gè)新的總流量。在控制器的存儲(chǔ)器中,A和F使用浮點(diǎn)數(shù)文件格式,有效數(shù)字是7位。一旦A比F大很多時(shí),那么A和F的加數(shù)將會(huì)產(chǎn)生誤差。
請(qǐng)看計(jì)算過(guò)程:
A=3.632523E+9
F=4.978E+3
3,632,523,000
+ 4,978
3,632,527,978
因?yàn)檫@個(gè)結(jié)果只能保留7個(gè)有效位,所以舍去最后幾位數(shù),寫成3.632527E+9或3,632,527,000,數(shù)值978被丟失。為了避免出現(xiàn)這個(gè)問(wèn)題,我們可以想辦法使A和F在整個(gè)運(yùn)算過(guò)程中不出現(xiàn)小數(shù),數(shù)值不超過(guò)7個(gè)有效位。4 結(jié)束語(yǔ)
流量累積的運(yùn)算,要盡量避免計(jì)算過(guò)程中的誤差,一是要選擇正確的文件存儲(chǔ)格式,二是要避免運(yùn)算值超出數(shù)值范圍和有效位數(shù)范圍,三是盡可能減少采樣時(shí)間的定時(shí)器帶來(lái)的誤差。在上面PLC5/40C的梯形邏輯中,我們按照以上幾個(gè)原則,經(jīng)過(guò)細(xì)致的考慮和計(jì)算,使用長(zhǎng)預(yù)置值的參考定時(shí)器,并使所有被用到的浮點(diǎn)數(shù)文件的值的有效位數(shù)不超出范圍,不出現(xiàn)小數(shù),避免了丟失小的數(shù)值,從而實(shí)現(xiàn)高精度的累積運(yùn)算,滿足了工藝要求。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。