|
紫金橋軟件作為一款強大的現場控製軟件平台,具有豐富的現場控製功能,靈活的配方處理方式就是其中的一個典型代表。
我(wo)們(men)平(ping)常(chang)說(shuo)的(de)配(pei)方(fang)指(zhi)的(de)是(shi)是(shi)幾(ji)中(zhong)原(yuan)料(liao)間(jian)的(de)配(pei)比(bi)關(guan)係(xi),比(bi)如(ru)藥(yao)方(fang),營(ying)養(yang)配(pei)方(fang)等(deng)等(deng)。紫(zi)金(jin)橋(qiao)軟(ruan)件(jian)中(zhong)的(de)配(pei)方(fang)不(bu)僅(jin)僅(jin)指(zhi)原(yuan)料(liao)間(jian)的(de)配(pei)比(bi)關(guan)係(xi),還(hai)包(bao)括(kuo)溫(wen)度(du)壓(ya)力(li)等(deng)因(yin)素(su)。從(cong)實(shi)質(zhi)上(shang)來(lai)說(shuo),紫(zi)金(jin)橋(qiao)軟(ruan)件(jian)中(zhong)的(de)配(pei)方(fang),就(jiu)是(shi)把(ba)一(yi)組(zu)變(bian)量(liang)依(yi)照(zhao)不(bu)同(tong)的(de)配(pei)方(fang)名(ming)和(he)一(yi)組(zu)組(zu)的(de)數(shu)據(ju)對(dui)應(ying)起(qi)來(lai),當(dang)在(zai)腳(jiao)本(ben)中(zhong)加(jia)載(zai)不(bu)同(tong)的(de)配(pei)方(fang)時(shi),利(li)用(yong)對(dui)應(ying)的(de)數(shu)值(zhi)給(gei)變(bian)量(liang)賦(fu)值(zhi)的(de)過(guo)程(cheng)。
這zhe裏li介jie紹shao兩liang種zhong配pei方fang處chu理li方fang式shi,一yi種zhong是shi利li用yong紫zi金jin橋qiao軟ruan件jian中zhong的de配pei方fang組zu件jian完wan成cheng配pei方fang,另ling一yi種zhong是shi利li用yong紫zi金jin橋qiao自zi由you報bao表biao強qiang大da的de與yu關guan係xi數shu據ju通tong訊xun的de能neng力li實shi現xian配pei方fang的de功gong能neng。
設計要求:
這裏以一個麵包加工的工藝為例,針對不同類型的麵包,配置麵粉,白糖,食鹽,水,黃油的含量,要實現的配方功能如下:
1. 自由選擇使用的配方
2. 下置配方
3. 修改配方
4. 增加/刪除配方
具體功能:
一. 利用配方組件
紫金橋在線幫助中提供了一個利用配方組件實現配方的例子,這裏是對該例子的擴展。
由於涉及到修改配方,為避免修改過程中對現場生產產生影響,這裏選用中間變量做配方的處理單元。如果係統運行時沒有增加/修改/刪(shan)除(chu)報(bao)表(biao)的(de)功(gong)能(neng),可(ke)以(yi)直(zhi)接(jie)用(yong)相(xiang)應(ying)的(de)數(shu)據(ju)庫(ku)點(dian)作(zuo)為(wei)處(chu)理(li)單(dan)元(yuan)。使(shi)用(yong)中(zhong)間(jian)變(bian)量(liang)作(zuo)配(pei)方(fang)的(de)處(chu)理(li)單(dan)元(yuan)時(shi),每(mei)次(ci)使(shi)用(yong)配(pei)方(fang)都(dou)需(xu)要(yao)和(he)數(shu)據(ju)下(xia)置(zhi)開(kai)關(guan)一(yi)同(tong)使(shi)用(yong)。
步驟一:定義實時數據庫點
首先定義幾個數據庫點用來表示現場各物理量。
切換導航器到數據庫頁,雙擊點組態啟動點組態管理程序,使用點組態管理程序創建如下數據庫點:
|
點名 |
點說明 |
類型 |
|
Flour |
麵粉 |
模擬IO點 |
|
Salt |
食鹽 |
模擬IO點 |
|
Sugar |
白糖 |
模擬IO點 |
|
Water |
水 |
模擬IO點 |
|
Butter |
黃油 |
模擬IO點 |
步驟二:定義中間變量
定義如下中間變量,作為配方的直接處理單元。
|
變量名 |
說明 |
類型 |
|
Flour_T |
麵粉 |
實型 |
|
Salt_T |
食鹽 |
實型 |
|
Sugar_T |
白糖 |
實型 |
|
Water_T |
水 |
實型 |
|
Butter_T |
黃油 |
實型 |
|
CurName |
顯示當前配方名 |
字符型 |
|
NewName |
新建配方名 |
字符型 |
|
nUpdate |
下置數據開關 |
整型 |
步驟三:創建配方
把導航器切換到畫麵頁,在“自定義/配方”項上點擊鼠標右鍵,選擇右鍵菜單中“創建”項,創建一個新的配方。展開配方,在新創建的配方上點擊右鍵,選擇“名稱”給此配方另起一個新的名稱,在這裏起名為Re。雙擊配方Re彈出配方編輯對話框,在此對話框中做如下的設置:
zaibianlianglanzhongtianruyijingchuangjiandezhongjianbianliangdianming,zaipeifangminglanlitianrumeiyitiaopeifangdemingzi,zaizhongjianshurumeiyigezhongjianbianliangxiadeduiyingzhi。ranhoushiyongxingliecaozuo,shanchuduoyudexinghelie,dianjibaocunanniubaocunduipeifangdeshezhi。
步驟四:創建畫麵
把導航器切換到畫麵頁,雙擊“窗口”項,創建一個新的窗口,窗口名默認為“Draw1”並在窗口中繪製如下的畫麵:
雙擊麵粉右側的字符串,在彈出的動畫聯接對話框中,點擊  按鈕創建一個模擬輸入輸出動畫聯接,把此字符串和Flour_T關聯起來。同樣,將左側的文本與對應的中間變量相關聯,右側的文本與數據庫點相關聯。當前使用配方處的文本與中間變量CurName相關聯。
步驟四:使用腳本調用配方
選擇配方:完成配方的選擇並使用,雙擊“選擇”按鈕,在動畫關聯對話框中選擇  ,在“按下鼠標”動作中輸入如下的腳本:
String cs;
#Re.Select(cs);
if StrLen(cs) > 0 then
CurName = cs;
#Re.Load(cs);
nUpdate = 1;
endif
這樣當使用鼠標點擊此按鈕時,就會彈出配方選擇對話框,如果用戶選擇了配方,並且點擊了“確定”按鈕,那麼#Re.Select(cs)語句運行之後cs的值將變成用戶選擇的配方的名字,否則它的值為空。當它的值不為空時我們調用#Re.Load(cs)來加載該配方即可。
其中,nUpdate = 1用來控製中間變量向數據庫變量賦值,起到下置數據開關的作用。這需在畫麵的應用腳本中作一些相關的設置。
將導航器切換到“畫麵”頁,選擇“腳本”下的“應用”,打開,在“程序周期執行”裏輸入如下腳本:
if nUpdate == 1 then
nUpdate = 0;
Flour.PV = Flour_T;
Sugar.PV = Sugar_T;
Salt.PV = Salt_T;
Water.PV = Water_T;
Butter.PV = Butter_T;
Endif
這樣,當nUpdate = 1時,係統會自動將每一個與配方有關的中間變量賦值給相應的數據庫變量,完成配方值的下置。注意:必須將nUpdate賦值為0,防止不斷賦值。
增加配方:這裏把新加配方單獨做成一個窗口,新建過程和前一個窗口一樣,窗口名默認為“Draw2”,效果圖如下:
首先在“ Draw1”窗口中,需要在增加按鈕中添加腳本動作,雙擊“增加”按鈕,在動畫關聯對話框中選擇  ,在“按下鼠標”動作中輸入如下的腳本:
Display("DRAW2");
用此腳本打開“Draw”窗口。
然後設置“Draw2”窗口中的各項。將各量對應的文本與相應的中間變量進行關聯。
將填入配方名的文本框命名為Name。選中該文本框,在軟件的左下角屬性框處,填入對象的名稱,如下:
最後設置確定按鈕,雙擊“確定”按鈕,在動畫關聯對話框中選擇  ,在“按下鼠標”動作中輸入如下的腳本:
NewName = #Name.Text; //獲得文本框中內容
if NewName == "" then //判斷文本框中內容是否為空,為空則返回
MsgBox("請輸入配方名!");
return; //不執行剩餘腳本
endif
if #Re.Add(NewName)==0 then //以文本框內容為名稱新增配方,如果返回值為0
MsgBox("此配方名已存在!"); //則與已有配方名衝突,
return; //返回,不執行剩餘腳本
endif
#Re.Save(); //保存新增配方
CloseCurWindow(); //關閉當前窗口
這樣,運行時點擊“確定”按an鈕niu時shi,首shou先xian在zai對dui應ying的de各ge量liang處chu輸shu入ru新xin配pei方fang的de各ge個ge量liang的de值zhi,並bing設she置zhi一yi個ge配pei方fang名ming,如ru果guo新xin增zeng的de配pei方fang名ming不bu為wei空kong,並bing且qie不bu與yu已yi有you配pei方fang名ming衝chong突tu,新xin配pei方fang就jiu可ke以yi添tian加jia並bing保bao存cun,“Draw2”窗口也會相應關閉。
修改配方:返回“Draw1”窗口,設置修改配方按鈕,雙擊“修改”按鈕,在動畫關聯對話框中選擇 ,在“按下鼠標”動作中輸入如下的腳本:
#Re.Modify(CurName);
#Re.Save();
這樣,使用“修改”按鈕時,就會按照當前各個量的值修改當前選擇的配方。
刪除配方:雙擊“刪除”按鈕,在動畫關聯對話框中選擇  ,在“按下鼠標”動作中輸入如下的腳本:
String cs;
#Re.Select(cs);
#Re.Delete(cs);
#Re.Save();
這樣,在使用“刪除”時,就會彈出配方選擇的對話框,如果用戶選擇了配方,並且點擊了“確定”按鈕,那麼#Re.Delete(cs)語句運行之後選擇的配方就會被刪除。調用#Re.Save()保存當前設置。
步驟六:運行係統查看結果
運行整個係統,即可實現設計要求的功能。包含配方的選擇,增加新的配方,修改當前配方,刪除配方等。
總結:
紫金橋配方功能,使用方便,易理解、易(yi)上(shang)手(shou),並(bing)且(qie)具(ju)有(you)配(pei)方(fang)保(bao)護(hu)的(de)功(gong)能(neng),在(zai)多(duo)個(ge)行(xing)業(ye)中(zhong)都(dou)有(you)成(cheng)功(gong)的(de)應(ying)用(yong)。比(bi)如(ru)長(chang)城(cheng)潤(run)滑(hua)油(you)的(de)防(fang)凍(dong)液(ye)調(tiao)和(he)係(xi)統(tong),不(bu)僅(jin)能(neng)夠(gou)精(jing)確(que)控(kong)製(zhi)配(pei)方(fang)比(bi)例(li),節(jie)約(yue)原(yuan)料(liao)成(cheng)本(ben),而(er)且(qie)能(neng)夠(gou)保(bao)護(hu)配(pei)方(fang)的(de)細(xi)節(jie),保(bao)證(zheng)配(pei)方(fang)信(xin)息(xi)的(de)安(an)全(quan)性(xing),贏(ying)得(de)了(le)用(yong)戶(hu)的(de)一(yi)致(zhi)好(hao)評(ping)。
|