韓 軍
(上海競(jìng)藍(lán)科學(xué)儀器有限公司, 上海 201803)
二氧化碳在碳酸類飲料中有增加口感、解渴、促進(jìn)消化和幫助解除疲勞的功效[1-2],深受廣大客戶的喜愛,但近年來,食品安全事件仍在繼續(xù)影響著世界各國(guó)[3],食品質(zhì)量安全問題已經(jīng)越來越受人們重視。二氧化碳作為碳酸類飲料中的重要食用添加劑,如何從生產(chǎn)源頭上防止食品質(zhì)量安全事故的發(fā)生,已成為質(zhì)量控制的重要部分。
我國(guó)二氧化碳企業(yè)生產(chǎn)中氣體來源主要有:酒精發(fā)酵、碳酸鹽煅燒、合成氨、乙烯催化氧化及煤氣化等,二氧化碳要達(dá)到食品級(jí),需提純、凈化、干燥、冷卻、加壓等工序[4],生產(chǎn)指標(biāo)有著嚴(yán)格的工藝控制,其工藝難點(diǎn)為脫硫[5]、脫烴[6]等。如何正確合理控制工藝關(guān)鍵點(diǎn),是企業(yè)質(zhì)量控制的關(guān)鍵因素。
傳統(tǒng)的控制方法是采用人工采樣,應(yīng)用化學(xué)分析法、氣相色譜法等在實(shí)驗(yàn)室進(jìn)行分析,分析費(fèi)時(shí)費(fèi)力,響應(yīng)速度慢,效率低,然后根據(jù)分析數(shù)據(jù)指導(dǎo)生產(chǎn),調(diào)節(jié)工藝參數(shù),難以實(shí)時(shí)反映工況信息,難以實(shí)時(shí)產(chǎn)生操作方案,不能實(shí)時(shí)控制產(chǎn)品的質(zhì)量[7]。
出于安全和環(huán)保的要求,在生產(chǎn)過程中分析信息的延遲或疏忽都會(huì)造成工業(yè)上經(jīng)濟(jì)的巨大損失。為保證最終獲得合格產(chǎn)品,工業(yè)生產(chǎn)對(duì)質(zhì)量控制的要求逐漸提高,必須對(duì)其生產(chǎn)過程進(jìn)行監(jiān)控和測(cè)試[8]。
為了達(dá)到在生產(chǎn)過程中控制產(chǎn)品質(zhì)量的目的,設(shè)計(jì)了食品二氧化碳在線質(zhì)量控制系統(tǒng)(food carbon dioxide online quality control system,F(xiàn)CQC),F(xiàn)CQC以在線分析儀器為前端,采用在線分析模式。在線分析[9]是用采樣支管將被測(cè)氣體從管道中引出,并進(jìn)行調(diào)壓等預(yù)處理后,連續(xù)送入分析儀器的氣體室中[10],分析儀器通過各自的檢測(cè)系統(tǒng)完成氣體的某個(gè)質(zhì)量指標(biāo)檢測(cè),多臺(tái)分析儀器同時(shí)檢測(cè),從而檢測(cè)出產(chǎn)品的各個(gè)指標(biāo),實(shí)時(shí)分析產(chǎn)品中的各項(xiàng)指標(biāo)濃度等參數(shù)的情況。FCQC以下位機(jī)、上位機(jī)為核心控制部件,并和DCS交互,實(shí)時(shí)調(diào)度控制生產(chǎn),做到即保證了產(chǎn)品的質(zhì)量,又盡最大限度地降低生產(chǎn)成本。
本文貢獻(xiàn):(1)設(shè)計(jì)了一種保證食品級(jí)二氧化碳質(zhì)量生產(chǎn)的自動(dòng)控制系統(tǒng),以信號(hào)為主要線索闡述了控制系統(tǒng)的各個(gè)模塊,設(shè)計(jì)具有自主性。(2)本系統(tǒng)實(shí)現(xiàn)在生產(chǎn)過程中控制產(chǎn)品的質(zhì)量,作用具有明顯性。(3)本系統(tǒng)操作便捷,不但在食品二氧化碳生產(chǎn)中使用,還可以用到其它產(chǎn)品中,系統(tǒng)具有可推廣性。
根據(jù)國(guó)家標(biāo)準(zhǔn)GB1886.228—2016食品級(jí)二氧化碳質(zhì)量指標(biāo)應(yīng)符合表1的規(guī)定[4]。
表1 食用二氧化碳質(zhì)量指標(biāo)[3]
食品級(jí)二氧化碳的生產(chǎn)是一個(gè)由原料氣提純而來的過程,以下是山東魯化集團(tuán)公司研究院工藝流程:
CO2原料氣→分離器I→壓縮機(jī)→預(yù)脫硫槽→有機(jī)硫水解槽→精脫硫槽→吸水槽→分離器II→液化器→液體CO2→(儲(chǔ)槽或充鋼瓶、槽車)[11]。
南京煉油廠有限責(zé)任公司的食品級(jí)二氧化碳工藝系統(tǒng)為:壓縮系統(tǒng)→脫硫系統(tǒng)→吸附精制系統(tǒng)→冷凝提純系統(tǒng)→產(chǎn)品儲(chǔ)罐系統(tǒng)→(槽車灌裝系統(tǒng)、氣瓶充裝系統(tǒng))[5]。
閆小茹(2008)工藝為:原料氣壓縮→冷卻→干燥脫水→吸附脫微量飽和水→吸附脫除乙烯→氨冷凝液化二氧化碳→精餾分離(脫低沸點(diǎn)組分)→純度≥99.99%的高純度食品級(jí)液態(tài)二氧化碳[12]。
各工藝路線[13]雖有所不同,但去除微量雜質(zhì)關(guān)鍵的步驟都是脫硫和吸附環(huán)節(jié)。
生產(chǎn)過程中根據(jù)二氧化碳生產(chǎn)工藝控制要求,按照國(guó)家標(biāo)準(zhǔn)指標(biāo)選擇總硫、總烴、總苯、水分、氧含量等關(guān)鍵指標(biāo)進(jìn)行分析控制。每個(gè)項(xiàng)目分析項(xiàng)目的濃度含量值都受溫度、壓力、流量等控制參數(shù)影響,符合式(1)關(guān)系:
(1)
式中,Si,Hi,Bi,Oi,Mi表示產(chǎn)品中總硫、總烴、總苯、氧、水分濃度值;gi(t)脫硫、吸附等去除雜質(zhì)工藝的動(dòng)態(tài)特性;ui(t)脫硫、吸附等工藝的控制參數(shù)。
從式(1)表明該過程是多變量耦合的。通過脫硫、吸附等工藝環(huán)節(jié),加上分析的延遲,使gi(t)中含有較大的滯后。
純滯后的一階函數(shù)可用式(2)表示:
(2)
(3)
y()為隨時(shí)間變化對(duì)應(yīng)的濃度值,Δuo輸出變化量。
以下以二氧化碳質(zhì)量指標(biāo)中:總硫濃度?水洗流量為例,分析參數(shù)計(jì)算和調(diào)整方法。
將輸出轉(zhuǎn)換成無(wú)量綱形式:
(4)
由(2)(3)(4)得:
Ty*(t-τ)+y*(t-τ)=1
(5)
其階躍響應(yīng)為:
(6)
采用兩點(diǎn)法[14]選取2個(gè)時(shí)間點(diǎn)t1、t2并且t2>t1≥τ,取y*(t1)=0.39y(∞)和y*(t2)=0.63y(∞)可計(jì)算參數(shù)T、τ:
(7)
代入實(shí)驗(yàn)數(shù)據(jù)求得傳遞函數(shù)式(2)為:
(8)
采用分段控制思想[15]當(dāng)雜質(zhì)濃度較小時(shí)采用PID 控制,消除靜差,提高控制精度[16],在Matlab軟件的Simulink模塊中搭建PID調(diào)節(jié)系統(tǒng)其結(jié)構(gòu)如圖1(a),PID控制參數(shù)可由Simulink自整定獲得初值,再由實(shí)驗(yàn)法和擴(kuò)充響應(yīng)曲線法得到具體數(shù)值,仿真結(jié)果如圖1(c)。
圖1 食品二氧化碳系統(tǒng)控制結(jié)構(gòu)圖
當(dāng)雜質(zhì)濃度較大時(shí),使用模糊控制(Fuzzy-PID 復(fù)合控制),以加快響應(yīng)速度,結(jié)構(gòu)如圖1(b)。Fuzzy-PID模塊系統(tǒng)輸入為采集值與設(shè)定的總硫含量偏差e及偏差變化率ec,輸出為PID 控制器的3個(gè)參數(shù)Kp、Ki及Kd。變量表達(dá)式為:
e(k)=Hd(k)-H(k)
(9)
ec(k)=e(k)-e(k-1)
(10)
u(k)=fuzzy(e(k),ec(k))
(11)
式中,Hd(k)在第k個(gè)采樣時(shí)刻濃度設(shè)定數(shù)值;H(k)采集的濃度值;ec(k)在第k個(gè)采樣時(shí)刻偏差變化量;e(k)設(shè)定的濃度偏差;fuzzy(...)輸入與輸出之間的模糊控制函數(shù)[16],將模糊控制函數(shù)變量值分為7檔,依次為{負(fù)大(NB),負(fù)中(NM),負(fù)小(NS),零(ZO),正小(PS),正中(PM),正大(PB)},用來制定控制PID輸出參數(shù)Kp,Ki,Kd的模糊規(guī)則,如表2所示。
圖2 食品二氧化碳在線質(zhì)量系統(tǒng)控制系統(tǒng)結(jié)構(gòu)圖
表2 Kp/Ki/Kd-e/ec模糊控制規(guī)則
采用三角型及高斯型函數(shù)反映 Fuzzy-PID 控制系統(tǒng)的隸屬度關(guān)系如圖1(e)。用偏差e、偏差變化率ec控制規(guī)則對(duì)Kp模糊推理子集(Ki,Kd同Kp),如圖1(f)。在Simulink中采用面積中心計(jì)算方法,將模糊集合轉(zhuǎn)化為清晰的控制數(shù)值Kp,Ki,Kd,仿真結(jié)果如圖1(d)。
系統(tǒng)通過試驗(yàn)確定轉(zhuǎn)折閾值,當(dāng)采集值小于閾值時(shí)采用PID控制,超過閾值后采用fuzzy-PID控制。根據(jù)采集濃度值(總硫濃度含量)減去設(shè)定值,計(jì)算誤差及誤差變化率,在輸出查詢表中查找出相應(yīng)的輸出控制參數(shù)KpKiKd值[17],用以下偽代碼計(jì)算實(shí)際工藝控制量 (水洗流量):
1)初始化;
2)當(dāng)前誤差值=設(shè)定值-采集值;
3)當(dāng)前誤差變化率=當(dāng)前誤差值/時(shí)間差;
4)(Kp、Ki、Kd)=查表(當(dāng)前誤差值,當(dāng)前誤差變化率);
5)積分值+=當(dāng)前誤差值;
6)控制變量輸出值=Kp*當(dāng)前誤差值 +Ki*積分值 +Kd*(當(dāng)前誤差-上次誤差值);
7)上次誤差值=當(dāng)前誤差值;
二氧化碳總烴、總苯、水分等質(zhì)量指標(biāo)和工藝控制參數(shù)之間的控制算法同上。
根據(jù)以上分析,設(shè)計(jì)食品二氧化碳質(zhì)量控制系統(tǒng)方案如圖2所示。
食品二氧化碳在線質(zhì)量控制系統(tǒng)由采樣預(yù)處理模塊、在線分析、下位機(jī)、上位機(jī)、閥切換執(zhí)行機(jī)構(gòu)及集散控制系統(tǒng)(distributed control system,DCS)構(gòu)成。
生產(chǎn)中如果各項(xiàng)指標(biāo)均在食品級(jí)(或內(nèi)控指標(biāo))合格范圍以內(nèi),工藝采用PID控制,產(chǎn)品流路流入食品級(jí)儲(chǔ)罐,如圖2選擇C支路,成為合格的食品二氧化碳產(chǎn)品。隨著正在運(yùn)行的脫硫吸附裝置時(shí)間的延長(zhǎng),產(chǎn)品質(zhì)量指標(biāo)會(huì)出現(xiàn)降低,當(dāng)超出預(yù)警線時(shí),軟件提示操作人員需要注意和處理,上位機(jī)把參數(shù)傳給DCS,根據(jù)Fuzzy-PID 復(fù)合控制調(diào)整工藝參數(shù);如分析指標(biāo)超出報(bào)警警戒線后,則需要切換到工業(yè)級(jí),需要把產(chǎn)品收集流路自動(dòng)切換到工業(yè)級(jí)儲(chǔ)罐,如圖2切換到D點(diǎn),同時(shí)控制系統(tǒng)把指標(biāo)報(bào)告給管控生產(chǎn)線的DCS系統(tǒng),要求把當(dāng)前的脫硫吸附生產(chǎn)線切入再生狀態(tài),把再生好的脫硫吸附生產(chǎn)線投入到當(dāng)前生產(chǎn)中運(yùn)行,如圖2切換AB點(diǎn)。
取樣系統(tǒng)根據(jù)生產(chǎn)狀態(tài)選擇當(dāng)前生產(chǎn)線的二氧化碳為氣體來源,經(jīng)過氣化盤管或氣化加熱器進(jìn)行氣化,然后根據(jù)每個(gè)分析儀器的要求進(jìn)樣減壓過濾等處理,樣品預(yù)處理流程如圖3。
圖3中實(shí)現(xiàn)了2路生產(chǎn)線的選擇取樣,每條生產(chǎn)線可進(jìn)行在線自動(dòng)切換或選擇手動(dòng)切換,自動(dòng)取樣有管路指示,當(dāng)電磁閥打開時(shí)閥體指示為開狀態(tài)否則指示為關(guān)閉。圖3實(shí)現(xiàn)了6路分析儀器預(yù)處理,每條支路可獨(dú)立調(diào)壓等控制。氣化方式為盤管加溫控單元,當(dāng)氣化后達(dá)到設(shè)定溫度后恒溫。每路氣體進(jìn)入分析儀器之前都要經(jīng)過在線顆粒物過濾器過濾,防止顆粒物進(jìn)入分析儀器中造成數(shù)據(jù)的干擾和對(duì)儀器的損壞。為了定期對(duì)數(shù)據(jù)進(jìn)行比對(duì)和校驗(yàn),需要設(shè)置排空接口和手動(dòng)取樣點(diǎn)。
圖3 食品二氧化碳在線質(zhì)量控制取樣系統(tǒng)
由各種分析檢測(cè)儀器或儀表組成,常規(guī)分析儀集成配置如表3所示。
其輸入氣體經(jīng)過氣體預(yù)處理模塊按照儀器的要求調(diào)節(jié)壓力、流量,然后進(jìn)入各種分析儀器,儀器分析完數(shù)據(jù)后,以4~20 mA模擬信號(hào)或特定的信號(hào)進(jìn)入信號(hào)處理模塊。
表3 在線分析儀器配置表
2.5.1 下位機(jī)系統(tǒng)
下位機(jī)系統(tǒng)由:信號(hào)處理模塊、AD轉(zhuǎn)換模塊、微控制器(MCU)、輸出信號(hào)隔離模塊、執(zhí)行機(jī)構(gòu)組成,該單元設(shè)計(jì)原理如圖4。
圖4 下位機(jī)系統(tǒng)
下位機(jī)負(fù)責(zé)分析儀器輸出信號(hào)的采集轉(zhuǎn)換并報(bào)告給上位機(jī);下位機(jī)還執(zhí)行上位機(jī)發(fā)來的各種指令,隔離并驅(qū)動(dòng)各種執(zhí)行機(jī)構(gòu)動(dòng)作。
2.5.2 上位機(jī)系統(tǒng)
上位機(jī)系統(tǒng)是由工業(yè)控制計(jì)算機(jī)組成,安裝有控制軟件、數(shù)據(jù)庫(kù)系統(tǒng)。輸入信號(hào)為下位機(jī)發(fā)送的各路采集的AD數(shù)值,根據(jù)軟件校正模塊計(jì)算分析指標(biāo)的濃度含量,存儲(chǔ)在數(shù)據(jù)庫(kù)中,根據(jù)設(shè)定參數(shù)指揮控制下位機(jī)驅(qū)動(dòng)電磁閥、指示燈等各種執(zhí)行機(jī)構(gòu)控制產(chǎn)品質(zhì)量。上位機(jī)還負(fù)責(zé)二氧化碳質(zhì)量數(shù)據(jù)的分析、存儲(chǔ)、報(bào)表以及和DCS系統(tǒng)交互等功能。
2.5.3 分析儀器信號(hào)調(diào)理系統(tǒng)
食品二氧化碳在線質(zhì)量控制系統(tǒng)中集成了各種分析儀器儀表,每種分析儀器儀表的輸出信號(hào)各不相同,有的是電壓信號(hào),有的是電流信號(hào)。為了便于信號(hào)的傳輸與處理,需把所有的分析儀器輸出的信號(hào)經(jīng)過隔離調(diào)理成統(tǒng)一的電壓信號(hào)進(jìn)行采集。為了提高儀器儀表信號(hào)的抗干擾性,一般以電流輸出類型為多。電流信號(hào)經(jīng)過電阻轉(zhuǎn)化為電壓信號(hào),其中含有大量噪音,需要經(jīng)過濾波轉(zhuǎn)化為平滑數(shù)據(jù)。巴特沃斯濾波器(butterworth filter, BTWF)的特點(diǎn)是通頻帶內(nèi)的頻率響應(yīng)曲線最大限度平坦,沒有起伏,而在阻頻帶則逐漸下降為零[18-19]。BTWF振幅和頻率的關(guān)系可用公式(12)表示[20]:
(12)
振幅的平方和頻率的關(guān)系如式(13):
(13)
其中:n=濾波器階數(shù);ωc=截止頻率(振幅下降到-3分貝時(shí)的頻率);ωp=通頻帶邊緣頻率。
設(shè)計(jì)時(shí)設(shè)定階數(shù)n=2,截止頻率ωc為100 Hz,阻帶-40 dB 1.05 kHz,選取低噪聲放大器LT1112,設(shè)計(jì)電路原理圖如圖5(a), 采用Multisim軟件仿真[21],幅頻特性(波特圖)如圖5(b):
仿真結(jié)果ωc= 107.706 Hz時(shí)信號(hào)衰減為-3.714 dB;在頻率1.078 kHz時(shí)信號(hào)衰減為-43.46 dB,消除高頻干擾信號(hào)效果較好,符合設(shè)計(jì)要求。
圖6 AD采集模塊
圖5 BTWF電路原理圖及仿真信號(hào)
2.5.4 AD數(shù)據(jù)采集模塊
輸入的電流信號(hào)經(jīng)調(diào)理模塊轉(zhuǎn)化成電壓信號(hào)接入AD電壓采集模塊轉(zhuǎn)化為數(shù)字信號(hào)輸出,AD采集考慮因素主要有采集頻率、轉(zhuǎn)換精度等指標(biāo)。美國(guó)德州儀器公司的 ADS1256 是一款適用于工廠自動(dòng)化和過程控制且具有PGA的24位、30 kSPS、8通道 Δ-∑ADC[22],圖6電路設(shè)計(jì)能滿足8路信號(hào)同時(shí)采集的需要。
ADS1256采集電路設(shè)計(jì)時(shí)采用REF5025產(chǎn)生的2.5 V電壓作為電壓基準(zhǔn),測(cè)量+/-5 V范圍的電壓。在PCB布線時(shí)注意數(shù)字地和模擬地的隔離,采集精度可達(dá)μV。如果采集通道超過8路時(shí),可并聯(lián)多塊ADS1256模塊進(jìn)入系統(tǒng)。
表4 食用二氧化碳質(zhì)量指標(biāo)
2.5.5 微控制器
STM32F429IIT6是意法半導(dǎo)體公司32位微控制器(MCU),基于ARM?Cortex?-M處理器,主頻180 MHz,支持包括高性能,實(shí)時(shí)功能,數(shù)字信號(hào)處理,低功耗、低電壓操作,接口豐富,I/O腳多達(dá)140腳[23],能滿足控制需要。MCU采用SPI總線和ADS1256通信。
SPI(serial peripheral interface) 是由Motorola 公司設(shè)計(jì)的一種同步串行技術(shù)接口,是高速、同步、全雙工的通信總線[24]。SPI總線可以通過片選引腳并行連接多塊器件。連接線路如圖7所示。
圖7 SPI總線
MCU通過SPI總線和ADS1256通信采集數(shù)據(jù),MCU控制程序是在MDK開發(fā)環(huán)境中用C語(yǔ)言開發(fā)。MCU數(shù)據(jù)采集初始化為:開啟管腳端口時(shí)鐘,定義管腳工作模式,設(shè)定SPI工作模式,MCU向ADS1256寄存器寫入配置參數(shù),再設(shè)定ADS1256的補(bǔ)償、增益,啟動(dòng)ADS1256自我校準(zhǔn),然后啟動(dòng)轉(zhuǎn)換同步,設(shè)定轉(zhuǎn)換速度,切換轉(zhuǎn)換通道,開始讀數(shù)據(jù),由于ADS1256轉(zhuǎn)換來的數(shù)據(jù)位uint32_t型數(shù)據(jù),需要根據(jù)ADS1256Vref腳輸入的參考電壓轉(zhuǎn)換為double型電壓值,然后進(jìn)行移動(dòng)平均計(jì)算并保存數(shù)據(jù)。ADS1256有8個(gè)通道,每通道采集一次為一個(gè)采集周期,一個(gè)周期后判斷,如果還需繼續(xù)采集就循環(huán)執(zhí)行。
MCU采集到的數(shù)值以串口RS485發(fā)送給上位機(jī)。下位機(jī)接收數(shù)據(jù)是在MCU中設(shè)立中斷優(yōu)先級(jí),利用串口中斷接收和解析,控制執(zhí)行機(jī)構(gòu),控制工藝生產(chǎn)。
2.5.6 數(shù)據(jù)轉(zhuǎn)換
AD采集的各通道模擬數(shù)據(jù)為單精度浮點(diǎn)型數(shù)據(jù)(float),利用C語(yǔ)言聯(lián)合體結(jié)構(gòu)轉(zhuǎn)化為4個(gè)字節(jié)char型數(shù)據(jù)發(fā)送。
union MyUnion
{
char buf[4];
float fnumber;
}TsDataCh[n];
數(shù)據(jù)采用表4通信協(xié)議格式,以RS485端口發(fā)送至工控機(jī)。
其中表4傳輸命令字節(jié)例為0X80,為模擬數(shù)據(jù)輸出。設(shè)計(jì)時(shí)定義命令字節(jié)的數(shù)值如表5所示。
表5 命令字節(jié)定義
上位機(jī)收到數(shù)據(jù)后,再按照表4的格式還原為float數(shù)據(jù)存儲(chǔ)和分析。
下位機(jī)解析上位機(jī)發(fā)來表4結(jié)構(gòu)的數(shù)據(jù),控制各驅(qū)動(dòng)端口動(dòng)作。
數(shù)據(jù)解析邏輯如流程圖8所示。
圖8 串口數(shù)據(jù)解析
在串口中斷函數(shù)里,先判斷接收標(biāo)志位是否為允許狀態(tài),如果系統(tǒng)在忙的狀態(tài)下,表示時(shí)不允許串口接收數(shù)據(jù)。當(dāng)允許接收數(shù)據(jù)并接收到數(shù)據(jù)后,首先判斷第一字節(jié)是否等于0x5A,然后再判斷收到的第二字節(jié)數(shù)據(jù)是否為0xA5,如果都滿足就繼續(xù)接收數(shù)據(jù),并不斷判斷字節(jié)數(shù)是否超標(biāo)及字節(jié)數(shù)是否等于第三字節(jié)(buf[2])數(shù)值加3,如果等于就把標(biāo)志位至1,允許處理接收到的數(shù)據(jù)。在處理函數(shù)里,根據(jù)表3的格式和表4的命令解析和處理數(shù)據(jù)。
圖9 隔離放大驅(qū)動(dòng)模塊
2.5.7 IO輸出及驅(qū)動(dòng)放大系統(tǒng)
下位機(jī)收到上位機(jī)發(fā)來的命令,解析為相應(yīng)的通道開和關(guān),為了避免執(zhí)行機(jī)構(gòu)對(duì)控制系統(tǒng)的干擾,需要把信號(hào)隔離開來。低速開關(guān)信號(hào)用光耦PS2801-4隔離,高速信號(hào)用A2630隔離,通過IRF740驅(qū)動(dòng)12 V或24 V電磁閥控制執(zhí)行機(jī)構(gòu)動(dòng)作。如圖9所示。
IRF740是N溝道第三代Power MOSFETs管,耐壓400 V,漏極電流10A[25],滿足大部分常規(guī)開關(guān)電器電流電壓需求。
執(zhí)行機(jī)構(gòu)為氣動(dòng)或電動(dòng)閥等,可以切換各種管路流向,報(bào)警器為指示燈或蜂鳴器指示工藝執(zhí)行狀態(tài),統(tǒng)一受控制系統(tǒng)調(diào)度和運(yùn)行。
由于各種分析儀安裝需要安裝在工業(yè)現(xiàn)場(chǎng)中,需要不同程度的工作環(huán)境和保護(hù)措施,以確保分析儀器的正常使用并有利于維護(hù)。食品二氧化碳在線質(zhì)量控制系統(tǒng)集成安裝在19英寸機(jī)柜內(nèi),整個(gè)機(jī)柜安裝在分析小屋內(nèi),分析小屋設(shè)計(jì)需要滿足GB/T25844-2010工業(yè)用現(xiàn)場(chǎng)分析小屋成套系統(tǒng)[26]要求,設(shè)計(jì)如圖10所示。
圖10 食品二氧化碳在線質(zhì)量控制系分析小屋
分析小屋集在線分析儀器、樣品預(yù)處理系統(tǒng)及控制系統(tǒng)于一體,并配備分析儀表所需載氣、標(biāo)準(zhǔn)氣、儀表空氣等基本設(shè)施。如圖左側(cè)放置剛瓶,設(shè)置冷暖空調(diào),調(diào)節(jié)室內(nèi)溫度,安裝排風(fēng)風(fēng)機(jī),安裝可燃?xì)怏w和有毒氣體報(bào)警裝置,并連鎖聲光報(bào)警排風(fēng)設(shè)施。如分析小屋設(shè)在防爆區(qū)域,則要安裝正壓防爆設(shè)施,滿足在線分析儀表及質(zhì)量控制系統(tǒng)運(yùn)行所要求的環(huán)境條件。分析小屋的設(shè)計(jì)為在線分析儀器的現(xiàn)場(chǎng)安裝、投運(yùn)及維護(hù)提供了極大的方便。
上位機(jī)軟件采用Visual basic.NET加SQL server開發(fā)環(huán)境,軟件結(jié)構(gòu)如圖11所示。
圖11 軟件結(jié)構(gòu)
系統(tǒng)需要完成的功能有:在線采集模塊、查詢模塊、校正模塊、密碼及權(quán)限管理模塊、質(zhì)量報(bào)警預(yù)警參數(shù)模塊、時(shí)間事件模塊等,運(yùn)行主界面如圖12所示。
圖12 運(yùn)行主界面
由于模塊窗體較多,為了避免多個(gè)窗體的分散,采用多文檔窗體界面(MDI)讓所有的子窗口統(tǒng)一于一個(gè)父窗口之內(nèi)。使用 MDI有一個(gè)公共的主菜單,執(zhí)行公共的程序或調(diào)用各個(gè)子窗口,每個(gè)子窗口具有自己的獨(dú)特的功能,但子窗口不能重復(fù)出現(xiàn)。實(shí)現(xiàn)代碼為:
Public Function IsMdiChi(ByVal chiformname As String) As Boolean
Dim chiform As Form
For Each chiform In Me.MdiChildren
If chiform.Name = chiformname.Trim Then
If chiform.Visible Then
chiform.Activate()
Else
chiform.Show()
End If
Return True
End If
Next
Return False
End Function
首先遍歷每個(gè)子窗口,檢查點(diǎn)擊的子窗口是否為可見,如果已經(jīng)可見了就退出,否則就顯示當(dāng)前子窗口。
下位機(jī)通過RS485串行接口和上位機(jī)通訊,串口類SerialPort接收數(shù)據(jù)。Microsoft.Net 2.0版本以后提供了System.IO.Ports.SerialPort類,用戶可以方便地完成串口數(shù)據(jù)的收發(fā),首先設(shè)定串口的參數(shù)如波特率、數(shù)據(jù)位等,然后設(shè)定委托函數(shù)類型,串口類需運(yùn)行在獨(dú)立線程內(nèi),主線程要訪問串口類的數(shù)據(jù)就要用到委托機(jī)制,其次建立獨(dú)立線程為串口數(shù)據(jù)接收、處理和存儲(chǔ)數(shù)據(jù),最后在主線程里定時(shí)顯示相關(guān)數(shù)據(jù)。
3.3.1 數(shù)據(jù)結(jié)構(gòu)
所有的數(shù)據(jù)保存在數(shù)據(jù)庫(kù)系統(tǒng)中。軟件中的數(shù)據(jù)以表的形式存儲(chǔ)于數(shù)據(jù)庫(kù)中。分別為系統(tǒng)參數(shù)表,總硫數(shù)據(jù)采集表、總硫校正表、時(shí)間事件表、總烴數(shù)據(jù)采集表、總烴校正表、苯色譜參數(shù)表、苯色譜數(shù)據(jù)等。
每個(gè)采集通道的數(shù)據(jù)采用如表6結(jié)構(gòu)存儲(chǔ)。
表6 單通道數(shù)據(jù)結(jié)構(gòu)表
3.3.2 數(shù)據(jù)庫(kù)操作
以ADO.NET連接數(shù)據(jù)庫(kù),分別設(shè)計(jì)了DBConnection、DBCommand、DBDataTable、DBdataReader和DBDataRelation幾個(gè)類,進(jìn)行連接數(shù)據(jù)庫(kù)、執(zhí)行增、刪、改、查等操作。以下是DBCommand類代碼:
Public Class DBCommand Inherits DBConnection
'構(gòu)造函數(shù)
Public Sub New(ByVal str As String)
ConnStr = str'連接信息字符串
End Sub
Public Function Insert(ByVal strSQL As String) As Integer
Open() '連接數(shù)據(jù)庫(kù)
'創(chuàng)建SqlCommand實(shí)例
Dim cmd As SqlCommand = New SqlCommand(strSQL, conn)
Dim count As Integer = 0
count = cmd.ExecuteNonQuery() '執(zhí)行SQL命令
Close() '關(guān)閉數(shù)據(jù)庫(kù)
Return count 'count表示受影響的行數(shù),初始化為0
End Function
'用字符串strSQL操作數(shù)據(jù)庫(kù)返回影響行數(shù)
Public Function (strSQL As String) As Integer
Open() '打開數(shù)據(jù)庫(kù)
'創(chuàng)建SqlCommand實(shí)例
Dim cmd As SqlCommand = New SqlCommand(strSQL, conn)
Dim count As Integer = 0
count = cmd.ExecuteNonQuery()'執(zhí)行SQL命令
Close() '關(guān)閉數(shù)據(jù)庫(kù)
Return count
End Function
…
End Class
3.3.3 數(shù)據(jù)表體積控制
由于在線生產(chǎn)系統(tǒng)是365天24小時(shí)不間斷運(yùn)行。生產(chǎn)期間會(huì)產(chǎn)生大量的數(shù)據(jù),為了控制數(shù)據(jù)庫(kù)的大小,不至于數(shù)據(jù)庫(kù)體積過于龐大而影響運(yùn)行效率,設(shè)定每一路數(shù)據(jù)每年建一個(gè)數(shù)據(jù)表。設(shè)計(jì)插入數(shù)據(jù)表名后加當(dāng)年的年份,用以下字符串語(yǔ)句組成:
"insert into TS " + Now.Year.ToString + " (Ddatetime, Dconcentration, Dvoltage, Pline) values ('" + Now.ToString + "." + Now.Millisecond.ToString + "','" + d_Dconcentration + "','" + d_Dvoltage + "','" + d_Pline + "') " + " ; "
RBAC(Role-Based Access Control)[27]是業(yè)界接受度較高的權(quán)限模型,基本的概念是將“角色”賦予各個(gè)用戶,用戶通過分配角色才能獲得相應(yīng)的權(quán)限,每個(gè)用戶可以分配多個(gè)角色,每個(gè)角色可以分配多個(gè)權(quán)限,從而實(shí)現(xiàn)了權(quán)限的靈活配置[28]。最基本的RBAC模型就是由“用戶”、“角色”及“權(quán)限”組成,他們之間的關(guān)系可以是一對(duì)多關(guān)系,也可以是多對(duì)多關(guān)系。
RBAC一般采用“通用角色”加“實(shí)例角色”的模式,可以把通用角色作為基類,實(shí)例角色可繼承通用角色,從而擁有了通用角色的權(quán)限。
在本系統(tǒng)中定義角色和為其權(quán)限分配為:
1)SuperAdmin,軟件開發(fā)者,具有系統(tǒng)一切的權(quán)限;
2)Admin,用戶管理員,具有當(dāng)前控制系統(tǒng)所有的權(quán)限,可進(jìn)行數(shù)據(jù)庫(kù)維護(hù),時(shí)間事件管理,添加成員等;
3)Engineer,工程師,不具備刪除權(quán)限,可以修改、添加成員,分析處理數(shù)據(jù),打印報(bào)告,可以校正分析儀器儀表;
4)Operator,操作員,只可操作、查看系統(tǒng)。
采用“資源點(diǎn)”加“通用角色”加“資源ID”來定義和實(shí)例化角色。
設(shè)置每路分析項(xiàng)目采集數(shù)據(jù)頻率,濃度預(yù)警、報(bào)警數(shù)值。采樣頻率根據(jù)每種分析數(shù)據(jù)的要求設(shè)定,總硫項(xiàng)目一般設(shè)定1~60 s采集一個(gè)點(diǎn),水分項(xiàng)目設(shè)定1~120 s采集一個(gè)點(diǎn),總苯項(xiàng)目設(shè)定0.5~200 s采集一個(gè)點(diǎn),界面如圖13所示。
圖13 系統(tǒng)參數(shù)界面
系統(tǒng)參數(shù)設(shè)定后,軟件根據(jù)設(shè)定的頻率改變各自定時(shí)器Timer的采樣間隔。
軟件的運(yùn)行日志,記錄了軟件的登錄、運(yùn)行、參數(shù)設(shè)定等,事件及每次預(yù)警報(bào)警的時(shí)間及各種相應(yīng)動(dòng)作如取樣閥的切換,執(zhí)行機(jī)構(gòu)的轉(zhuǎn)換分流等。軟件運(yùn)行時(shí),當(dāng)事件發(fā)生后存儲(chǔ)于數(shù)據(jù)庫(kù)的“時(shí)間事件表中”。
校準(zhǔn)是日常對(duì)儀器性能進(jìn)行的檢查,以保證儀器示值的準(zhǔn)確性。是傳遞量值或量值溯源的方式。軟件設(shè)有采集校正數(shù)據(jù)和設(shè)置校正方法模塊,管理在線質(zhì)量控制系統(tǒng)中在線分析儀器的檢定與校準(zhǔn)。界面如圖14(a),按照產(chǎn)品質(zhì)量要求,工程師每月用標(biāo)準(zhǔn)氣體對(duì)在線分析儀器進(jìn)行校正比對(duì),如圖14(b)是對(duì)總硫儀器的校正操作:
圖14 校正采集界面
點(diǎn)擊“校正閥切換”通入零點(diǎn)氣,則零點(diǎn)二氧化碳?xì)怏w流入總硫儀器中,數(shù)值穩(wěn)定后點(diǎn)擊“歸零”,輸入標(biāo)準(zhǔn)氣體濃度,點(diǎn)擊“標(biāo)氣閥切換”,標(biāo)準(zhǔn)羰基硫氣體流入儀器中,等待數(shù)值穩(wěn)定后點(diǎn)擊“標(biāo)氣設(shè)定”,標(biāo)準(zhǔn)氣體濃度寫入系統(tǒng),其中標(biāo)氣可以進(jìn)行多點(diǎn)設(shè)定。此校正過程可自動(dòng)進(jìn)行,點(diǎn)擊“自動(dòng)校正”按鈕,則校正系統(tǒng)按照設(shè)定的程序,執(zhí)行上述操作過程。
檢測(cè)項(xiàng)目的濃度和采集電壓符合(14)單值連續(xù)函數(shù)關(guān)系[29]。
V=f(C)
(14)
其中:V代表采集電壓值,C為檢測(cè)項(xiàng)目濃度。
采用分段線性化方式,先采集標(biāo)準(zhǔn)氣體各點(diǎn)“濃度”~“電壓”數(shù)據(jù),按照濃度關(guān)系將每個(gè)濃度點(diǎn)校正成線性關(guān)系,如式(15):
C=a·V+b
(15)
計(jì)算系數(shù)a和b是按照最小二乘法的原理,用以下的偽代碼計(jì)算:
5)解方程:
8)保存系數(shù)a、b數(shù)值,存入校正關(guān)系數(shù)據(jù)庫(kù)。
在數(shù)據(jù)采集時(shí),根據(jù)公式(5),利用校正系數(shù)a、b計(jì)算濃度數(shù)值。
當(dāng)我們查詢歷史曲線時(shí),選擇查詢的時(shí)間段較長(zhǎng)時(shí)會(huì)出現(xiàn)顯示界面數(shù)據(jù)過于密集現(xiàn)象,曲線相互疊加,造成看不清楚某一時(shí)刻具體數(shù)值和趨勢(shì)[30]。如圖18所示,此時(shí)如果想查看其中某一區(qū)域曲線詳細(xì)的細(xì)節(jié),可以用軟件“鼠標(biāo)縮放”功能,先在程序中勾選左側(cè)“鼠標(biāo)縮放”按鈕,用鼠標(biāo)左鍵在圖形區(qū)域里按下并拖動(dòng)選擇放大的區(qū)域,此時(shí)有綠色方框隨鼠標(biāo)移動(dòng)如圖15(a);到達(dá)想要的區(qū)域后,釋放鼠標(biāo)左鍵,被鼠標(biāo)選擇的區(qū)域就被放大了,如圖15(b)。
圖15 查詢鼠標(biāo)縮放界面
此框選放大步驟,可重復(fù)進(jìn)行多次,如果想恢復(fù)原始圖像,點(diǎn)擊取消勾選的“鼠標(biāo)放大”按鈕即可恢復(fù)。
采用雙緩存技術(shù)繪制曲線,首先判斷是否允許啟動(dòng)鼠標(biāo)縮放功能,再判斷是否鼠標(biāo)左鍵按下,如果按下,則記錄此時(shí)鼠標(biāo)位置作為繪制框線的起點(diǎn)坐標(biāo),鼠標(biāo)移動(dòng)時(shí),在鼠標(biāo)移動(dòng)函數(shù)里,根據(jù)當(dāng)前鼠標(biāo)坐標(biāo)位置,重新繪制矩形,鼠標(biāo)釋放時(shí),在鼠標(biāo)釋放函數(shù)里執(zhí)行繪圖函數(shù),函數(shù)里先根據(jù)矩形框大小及位置坐標(biāo)計(jì)算x軸、y軸坐標(biāo)分度值、比例系數(shù)等參數(shù),然后計(jì)算繪圖數(shù)據(jù)數(shù)組,在內(nèi)存中繪制曲線中的各個(gè)點(diǎn),最后把內(nèi)存中的圖像整體顯示出來。
食品二氧化碳質(zhì)量控制系統(tǒng)運(yùn)行時(shí),在上位機(jī)軟件中設(shè)定各控制參數(shù),使用單位根據(jù)各自的內(nèi)控標(biāo)準(zhǔn)設(shè)定,如圖16中總硫設(shè)定預(yù)警值70 ppb,報(bào)警值為90 ppb,總烴預(yù)警值為8 ppm,報(bào)警值為50 ppm,報(bào)警數(shù)值可直接在文本框內(nèi)輸入也用滾動(dòng)條拉動(dòng)設(shè)定。
點(diǎn)擊各個(gè)項(xiàng)目模塊的“開始”按鈕,開始實(shí)時(shí)采集分析儀器輸出的數(shù)據(jù),在線采集模塊運(yùn)行界面如圖16所示。
圖16 在線采集模塊運(yùn)行界面
控制系統(tǒng)軟件實(shí)時(shí)采集數(shù)據(jù),并把控制信息傳給DCS,DCS根據(jù)設(shè)定值和反饋值進(jìn)行比較計(jì)算,然后調(diào)節(jié)生產(chǎn)工藝參數(shù),調(diào)度和控制生產(chǎn)。
在軟件查詢模塊中可以根據(jù)時(shí)間,查詢每種分析實(shí)驗(yàn)數(shù)據(jù),可用鼠標(biāo)移動(dòng)指示每個(gè)點(diǎn)的分析數(shù)值,可以用“鼠標(biāo)縮放”功能來放大選中曲線部分,讓查詢數(shù)據(jù)更加精細(xì)。查詢界面如圖17所示。
圖17 查詢界面
查詢的圖譜可以生成“分析報(bào)告”作為質(zhì)量溯源的報(bào)告,用于分析和指示產(chǎn)品的質(zhì)量。
作為質(zhì)量控制和管理,需要生成必要的書面報(bào)告。軟件可以生成按照控制管理所需要的數(shù)據(jù)分析報(bào)告,如圖18所示。
產(chǎn)品質(zhì)量控制和溯源是下游用戶,如可口可樂、百事可樂等工廠質(zhì)量審核[31-32]不可缺少的一部分。在審核時(shí),二氧化碳質(zhì)量工程師將根據(jù)數(shù)據(jù)分析報(bào)告結(jié)合控制響應(yīng)事件給他們介紹生產(chǎn)處理情況,并匯報(bào)產(chǎn)品質(zhì)量狀況。
表7 運(yùn)行數(shù)據(jù)表
圖18 分析報(bào)告
表7是某一運(yùn)行時(shí)段實(shí)驗(yàn)運(yùn)行數(shù)據(jù)。
在正常運(yùn)行情況下,如表7序號(hào)1~4,工藝控制采用PID方式,預(yù)警和報(bào)警指示燈關(guān)閉,食品級(jí)流路控制閥C狀態(tài)為ON,產(chǎn)品為食品級(jí)質(zhì)量,流入食品級(jí)儲(chǔ)罐;當(dāng)達(dá)到表7序號(hào)5,總硫70 ppb、總烴2.8 ppm、苯1 ppb和水10 ppm,其中總硫采集的數(shù)據(jù)達(dá)到(或超過)設(shè)定的“預(yù)警值”系統(tǒng)控制預(yù)警指示燈點(diǎn)亮,工藝控制方式采用Fuzzy方式,此時(shí)產(chǎn)品質(zhì)量還在食品級(jí)指標(biāo)之內(nèi),產(chǎn)品還是流入食品級(jí)儲(chǔ)罐;當(dāng)?shù)竭_(dá)表7序號(hào)7,總硫90 ppb、總烴7.1 ppm、苯2 ppb和水15 ppm,其中總硫采集數(shù)值超過報(bào)警設(shè)定值,數(shù)值到達(dá)90 ppb,到達(dá)和超過“報(bào)警數(shù)值”界限,此時(shí)報(bào)警燈閃亮,同時(shí)驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)切換產(chǎn)品輸出流向,產(chǎn)品質(zhì)量超出食品級(jí)指標(biāo),控制食品級(jí)管路流向的閥C關(guān)閉,同時(shí)工業(yè)級(jí)產(chǎn)品流向的閥D打開,產(chǎn)品流入工業(yè)級(jí)儲(chǔ)罐,同時(shí)DCS啟動(dòng)切換工藝流路,關(guān)閉A生產(chǎn)線,打開B生產(chǎn)線,讓不合格的A生產(chǎn)線進(jìn)入再生處理進(jìn)程,再生好的B生產(chǎn)線投入生產(chǎn)運(yùn)行;當(dāng)采集的數(shù)值回歸正常時(shí),系統(tǒng)又進(jìn)入表7序號(hào)1狀態(tài)。
測(cè)試結(jié)果表明FCQC能嚴(yán)格控制產(chǎn)品質(zhì)量,杜絕了不合格的產(chǎn)品流入食品級(jí)儲(chǔ)罐,工藝控制參數(shù)響應(yīng)及時(shí),調(diào)節(jié)合理,能夠精準(zhǔn)實(shí)現(xiàn)自動(dòng)化運(yùn)行和控制。
食品二氧化碳產(chǎn)品是碳酸飲料食品的重要原料,質(zhì)量品質(zhì)決定著食品安全的重要問題,在線質(zhì)量控制系統(tǒng)能在生產(chǎn)環(huán)節(jié)控制產(chǎn)品質(zhì)量,對(duì)保護(hù)食品安全起著重要的作用。本質(zhì)量控制系統(tǒng),經(jīng)過五年的實(shí)際運(yùn)行,表明系統(tǒng)安全可靠,能有效的應(yīng)用在二氧化碳的生產(chǎn)系統(tǒng)中,安全高效地控制產(chǎn)品的質(zhì)量,在中國(guó)糧油食品(集團(tuán))有限公司等多家二氧化碳的生產(chǎn)工廠得到廣泛的應(yīng)用。本控制系統(tǒng)也可用于醫(yī)用氧氣、車用燃料氫氣等在線質(zhì)量控制系統(tǒng)中,具有較強(qiáng)的推廣性,應(yīng)用前景廣闊。