|
suizheshijiegeguogongyehuachengdudebuduanjiada,geguodegangtiexuqiuliangyebuduanjiada,xuyaodegangtiedezhongleiyebuduanzengduo。zhejiuyaoqiuwomenzaigangtiedeshengchanguochengzhongbuduangaijinzijidegongyijishu,tigaoshengchanguochengkongzhijingdu,congershengchanchugengduogenghaodegaozhilianggangcai。
在煉鋼過程中配料、上(shang)料(liao)過(guo)程(cheng)將(jiang)直(zhi)接(jie)影(ying)響(xiang)鋼(gang)的(de)產(chan)量(liang)及(ji)質(zhi)量(liang),如(ru)果(guo)能(neng)對(dui)這(zhe)一(yi)過(guo)程(cheng)進(jin)行(xing)記(ji)錄(lu)分(fen)析(xi),將(jiang)有(you)利(li)於(yu)工(gong)藝(yi)的(de)改(gai)進(jin)及(ji)分(fen)析(xi)產(chan)生(sheng)次(ci)品(pin)的(de)原(yuan)因(yin)。下(xia)麵(mian)就(jiu)講(jiang)解(jie)一(yi)下(xia)通(tong)過(guo)紫(zi)金(jin)橋(qiao)實(shi)時(shi)數(shu)據(ju)庫(ku)實(shi)現(xian)配(pei)料(liao)、上料過程記錄分析的方法和過程。
工藝過程
congzongdegongyiguochengkeyifenweijiaoshangliaohekuangshangliaoliangbufen,tongchangjiaohuokuangyougeziyouliangtaoshangliaoxitonglaiwancheng。zaishangliaoqian,shouxianyaogenjushengchanbutongzhongleidegangcaijinxingpeiliao。yigechengliangdoukeyiduiyingyigeliaocanghuoliangshangliaocang,dangyigechengliangdouduiyinglianggeliaocangshi,yaotongguoxuanliaoqijinxingxuanliao。tongchangjiaotanshitongguojiaotanchengliangdouchenglianghouzhijieshangliaode;而礦通常是由多個量稱量鬥按比例進行稱量混合,然後再由礦總稱量鬥進行彙總稱量上料。

記錄過程分析
對於所有稱量鬥,當稱量鬥打開時為一次稱量結束,這時根據稱量鬥物料來源(料倉選擇器選擇狀態),將(jiang)這(zhe)個(ge)值(zhi)記(ji)錄(lu)到(dao)對(dui)應(ying)本(ben)次(ci)加(jia)料(liao)量(liang)中(zhong)間(jian)量(liang)中(zhong)。對(dui)於(yu)礦(kuang)總(zong)稱(cheng)量(liang)鬥(dou)打(da)開(kai)時(shi)或(huo)焦(jiao)炭(tan)稱(cheng)量(liang)鬥(dou)打(da)開(kai)時(shi),則(ze)產(chan)生(sheng)一(yi)條(tiao)上(shang)料(liao)記(ji)錄(lu)。對(dui)於(yu)焦(jiao)炭(tan)上(shang)料(liao)記(ji)錄(lu),隻(zhi)記(ji)錄(lu)一(yi)個(ge)當(dang)前(qian)選(xuan)擇(ze)料(liao)倉(cang)的(de)上(shang)料(liao)量(liang);對於礦的上料記錄,則要記錄各分組成分的上料量(由中間量獲得)和礦總的上料量。
上料過程產生的記錄要通過WEB瀏覽發布,為了使用所WEB客戶端看到相同的記錄結果,這要求記錄時要將數據插入到曆史中。WEB客戶端通過查詢指定時間範圍內的上料記錄,而得一致的完整的記錄結果。
記錄過程實現
對dui於yu礦kuang上shang料liao記ji錄lu,由you於yu其qi是shi由you多duo種zhong組zu分fen混hun合he組zu成cheng,並bing要yao對dui各ge組zu分fen含han量liang進jin行xing記ji錄lu,因yin此ci行xing成cheng上shang料liao記ji錄lu前qian,要yao通tong過guo一yi組zu中zhong間jian變bian量liang對dui各ge組zu分fen的de稱cheng重zhong結jie果guo記ji錄lu。根gen據ju分fen礦kuang稱cheng量liang鬥dou對dui應ying一yi個ge或huo兩liang個ge料liao倉cang的de不bu同tong,在zai產chan生sheng中zhong間jian量liang記ji錄lu時shi,處chu理li方fang法fa有you所suo不bu同tong,但dan觸chu發fa條tiao件jian都dou由you分fen礦kuang稱cheng量liang鬥dou的de放fang料liao門men打da開kai產chan生sheng的de。在zai數shu據ju庫ku的de“值改變”腳本中為每個分礦稱量鬥打開開關定義一段處理腳本,如下所示:
一個分礦稱量鬥對應一個料倉,開關狀態變化時腳本:
if( 580稱量鬥5打開信號.PV ) then
580燒5稱重E.PV = 580稱量鬥5稱重.PV;
endif;
一個分礦稱量鬥對應兩個料倉,開關狀態變化時腳本:
if (580稱量鬥1打開信號.PV) then
if( 580礦1燒11選擇信號.PV == 0) then
580礦1稱重E.PV = 580稱量鬥1稱重.PV;
580燒11稱重E.PV = -99999;
else
580礦1稱重E.PV = -99999;
580燒11稱重E.PV = 580稱量鬥1稱重.PV;
endif;
endif;
當礦總稱量鬥或焦炭稱量鬥打開時就會產生一條上料記錄,為了方便以時間為序的記錄檢索,增加了一個“記錄時間”數shu據ju庫ku點dian,其qi保bao存cun的de值zhi沒mei有you太tai多duo實shi際ji意yi義yi,但dan它ta所suo對dui應ying的de時shi間jian則ze是shi其qi它ta量liang值zhi的de檢jian索suo條tiao件jian。對dui於yu礦kuang總zong稱cheng量liang鬥dou或huo焦jiao炭tan稱cheng量liang鬥dou同tong樣yang要yao在zai數shu據ju庫ku的de“值改變”腳本中為每個稱量打開開關定義一段處理腳本,如下所示:
焦炭稱量鬥開關狀態變化時腳本:
int Millisecond = $SYSTEM.Millisec;
int CurTime = $SYSTEM.LongTime;
if( 580西焦稱量鬥打開.PV == 1) then
InsertHisData2(580記錄時間.PV,$SYSTEM.LongTime, $SYSTEM.LongTime,Millisecond);
InsertHisData2(580裝料製度.PV,-99999, CurTime, Millisecond);//裝料製度0表示為P
InsertHisData2(580焦3上料量.PV, -99999, CurTime, Millisecond);
//沒有上料的礦
InsertHisData2(580礦總上料量.PV, -99999, CurTime, Millisecond);
//這裏假設為0時為選擇焦1
if( 580焦1焦2選擇信號.PV == 0) then
InsertHisData2(580焦1上料量.PV, 580西焦稱重.PV, CurTime, Millisecond);
InsertHisData2(580焦2上料量.PV, -99999, CurTime, Millisecond);
else
InsertHisData2(580焦1上料量.PV, -99999, CurTime, Millisecond);
InsertHisData2(580焦2上料量.PV, 580西焦稱重.PV, CurTime, Millisecond);
endif;
endif;
礦總稱量鬥開關狀態變化時腳本:
int Millisecond = $SYSTEM.Millisec;
int CurTime= $SYSTEM.LongTime;
if (580西礦稱量鬥打開.PV) then
InsertHisData2(580記錄時間.PV,CurTime, CurTime, Millisecond);
InsertHisData2(580裝料製度.PV,1, CurTime, Millisecond);//1表示裝料製度為K
InsertHisData2(580焦1上料量.PV, -99999, CurTime, Millisecond);
//沒有上料的礦或焦
InsertHisData2(580球10上料量.PV, -99999, CurTime, Millisecond);
InsertHisData2(580礦1上料量.PV, 580礦1稱重E.PV, CurTime, Millisecond);
//上料的礦或焦
InsertHisData2(580礦總上料量.PV, 580西礦稱重.PV, CurTime, Millisecond);
endif;
記錄查詢顯示
對於記錄的顯示首先是通過一個隱藏的“所有曆史數據表”將選定時間範圍內的所有記錄時間檢索出來,然後再通過這個時間檢索其它記錄值,並將這些值填充到顯示表中。這個處理過程是通過“所有曆史數據表”的“事件腳本”來完成的:

“事件腳本”中的“數據刷新”腳本如下所示:
int RecordCount = #RecordTime.GetDataCount();
int RecordIndex = 1;
int i,j;
//第一個記錄的時間有可能小於開始時間
if( #RecordTime.GetVal(1,1) < #StartDate.Time ) then
RecordCount = RecordCount - 1;
RecordIndex = RecordIndex+ 1;
endif;
if( RecordCount > #List.RowCount() - 2) then
#List.AddRow(RecordCount - (#List.RowCount() - 2));
else
if( RecordCount < 18 ) then//18是本例中缺省記錄數,可根據實際情況調整
#List.DelTailRow(#List.RowCount() - 20);//20為缺省記錄數加表頭行數。
#List.ClearRowData(3,18);
else
#List.DelTailRow(#List.RowCount()-2 -RecordCount);
endif;
endif;
j=1;
for i=1to RecordCount+1step1
if( #RecordTime.GetVal(1,RecordIndex+i) == #RecordTime.GetVal(3,RecordIndex+i)) then
#list.SetVal(1, j+2, #RecordTime.GetVal(1,RecordIndex+i));
#list.SetVal(2, j+2, #RecordTime.GetVal(2,RecordIndex+i));
j=j+1;
endif;
next;
小結
本文主要是以鋼鐵的配料、上料記錄過程為例,結合工藝過程實現數據記錄和查詢顯示。對於這個示例不僅可以做為鋼鐵配料、上料記錄、數據分析顯示的原型,也可以根據它的應用特點(數據產生存儲由服務器端――數據庫腳本來完成,數據查詢顯示由客戶端腳本來完成),而將其擴展到其它行業。希望對學習使用紫金橋實時數據庫所有幫助。
|