陳 娟
(九江職業(yè)大學(xué),江西 九江 332009)
工控組態(tài)軟件在近十年來發(fā)展迅速,品牌多,適應(yīng)各種主流PLC控制。MCGS是市場(chǎng)擁有量最大的國(guó)產(chǎn)組態(tài)軟件,它既有強(qiáng)大的顯示組態(tài)、數(shù)據(jù)庫(kù)和仿真功能,還有基于BASIC語(yǔ)言的腳本功能。目前,針對(duì)MCGS的教材及網(wǎng)絡(luò)培訓(xùn)資料,其腳本功能都過于淺顯,需要通過不斷摸索和嘗試而加以補(bǔ)充和完善。
分揀控制系統(tǒng)共有三個(gè)工位,根據(jù)客戶要求,在工位上輸出相應(yīng)組合和數(shù)量的成品套件。系統(tǒng)成品工件有四種類型(圖1),分別為白色塑料外殼黑色塑料芯、白色塑料外殼金屬芯、黑色塑料外殼白色塑料芯、黑色塑料外殼金屬芯。只有達(dá)到客戶指定的組合套件數(shù)量時(shí)系統(tǒng)才停止工作。系統(tǒng)根據(jù)不同工件搭配成套件,有三種搭配類型,如表1所示。
圖1 有效成品工件類型
表1 不同搭配類型的套件種類
給三種客戶分配B01、B02、B03三個(gè)賬號(hào)。進(jìn)入主界面后,賬戶信息表中顯示各賬號(hào)均處于“未激活”狀態(tài),可用份額和搭配類型都是0,在使用之前都要進(jìn)行激活。點(diǎn)擊“激活”按鈕,彈出激活界面,可輸入賬號(hào)、密碼和需要完成的搭配類型號(hào)。當(dāng)所在賬戶激活后,賬戶信息表中顯示該賬戶處于“已激活”狀態(tài),同時(shí)可用份額兩種套件都是5份,搭配類型顯示為該賬戶指定的類型。
只有已經(jīng)激活的賬戶才能夠登錄,未登錄不能進(jìn)入運(yùn)行界面設(shè)置需要完成各套件的目標(biāo)數(shù)量。點(diǎn)擊“登錄”按鈕彈出登錄界面,輸入賬號(hào)和激活時(shí)設(shè)置的密碼,若輸入正確則彈出“登錄成功”提示框,若輸入錯(cuò)誤則彈出“登錄失敗”提示框。此時(shí)點(diǎn)擊“進(jìn)入運(yùn)行”按鈕,進(jìn)入運(yùn)行界面,輸入兩種套件的目標(biāo)數(shù)量,點(diǎn)擊開始,分揀系統(tǒng)開始運(yùn)行。
在主界面點(diǎn)擊“改密”按鈕,彈出密碼修改界面,輸入舊密碼和新密碼。修改密碼后需要重新登錄才能進(jìn)入運(yùn)行界面。修改成功后彈出“修改成功”提示框;如果舊密碼輸入錯(cuò)誤,則彈出“修改失敗”提示框。
進(jìn)入運(yùn)行界面后設(shè)置需要完成的目標(biāo)套件數(shù)量,都不能超過5,如果輸入超過5的數(shù)字,則自動(dòng)變?yōu)?;運(yùn)行界面和主界面窗口可互相切換。
建立6個(gè)用戶窗口,分別為主界面、運(yùn)行、activate、logon、alter和error。其中后面4個(gè)窗口都是需要彈出來的子窗口。
(1)主界面放置了“激活”“登錄”“改密”三個(gè)按鈕,點(diǎn)擊后分別彈出activate、logon和alter子窗口。三個(gè)按鈕中的腳本程序分別為
OpenSubWnd腳本程序中有6個(gè)參數(shù),第一個(gè)參數(shù)表示打開的子窗口名稱,第二個(gè)和第三個(gè)參數(shù)表示子窗口的大小,第四個(gè)和第五個(gè)參數(shù)表示在當(dāng)前窗口中顯示的坐標(biāo)位置,第六個(gè)參數(shù)表示打開方式,需要使用CloseSubWnd或Close腳本來關(guān)閉子窗口[1]。
(2)套件一數(shù)量、套件二數(shù)量、當(dāng)前登錄用戶都放置標(biāo)簽,勾選“顯示輸出”功能。套件一數(shù)量對(duì)應(yīng)的變量為S1GOAL,此數(shù)值型變量對(duì)應(yīng)“運(yùn)行”界面套件一目標(biāo)數(shù)量;同樣,套件二數(shù)量對(duì)應(yīng)的變量為S2GOAL;當(dāng)前登錄用戶對(duì)應(yīng)變量為字符串型變量CURUSER。
(3)賬戶信息表中每一個(gè)賬號(hào)都對(duì)應(yīng)4個(gè)變量,如B01用戶,狀態(tài)對(duì)應(yīng)字符型變量B01F,定義實(shí)時(shí)變量時(shí),在對(duì)象初值中輸入“未激活”;搭配類型對(duì)應(yīng)數(shù)值型變量B01T;套件一和套件二的可用份額對(duì)應(yīng)數(shù)值型變量B01S1和B02S1。
(4)“進(jìn)入運(yùn)行”按鈕,按如下腳本編輯程序:
if已登錄=1 then用戶窗口.運(yùn)行.Open()
開關(guān)量“已登錄”為登錄成功后置位。
(1)運(yùn)行界面設(shè)計(jì)如圖2所示。套件一目標(biāo)數(shù)量和套件二目標(biāo)數(shù)量放置兩個(gè)輸入框,對(duì)應(yīng)變量為S1GOAL和S2GOAL,輸入后同時(shí)在主界面的套件一數(shù)量和套件二數(shù)量中顯示。在窗口的循環(huán)腳本屬性中編寫如下程序(給出賬號(hào)B01的程序,其他兩個(gè)類似,只需將帶01的變量改成02或03即可):
表示輸入的數(shù)據(jù)為0~5。
圖2 運(yùn)行界面
(2)套件一完成數(shù)量和套件二完成數(shù)量的數(shù)值型變量為S1OVER和S2OVER,是只讀型變量,對(duì)應(yīng)下位機(jī)的兩個(gè)套件完成的件數(shù)變量;當(dāng)前登錄用戶的標(biāo)簽屬性和主界面一致。
(3)“開始”按鈕對(duì)應(yīng)的地址變量傳送到下位機(jī),作為分揀開始運(yùn)行的前提條件;“返回主界面”只需要選擇打開“主界面”窗口功能。
(1)Activate界面如圖3所示。賬號(hào)、密碼和套件類型只需要在操作屬性中分別對(duì)應(yīng)字符型變量tempacc、字符型變量temppwd、數(shù)值型變量temptype。
(2)“激活”按鈕中輸入腳本程序如下(給出B01賬號(hào)激活程序,其他兩個(gè)類似,只需將帶01的變量改成02或03即可):
輸入了賬號(hào)、密碼和套件類型后,主界面賬戶信息中狀態(tài)對(duì)應(yīng)的B01F變量顯示“已激活”,搭配類型對(duì)應(yīng)的變量B01T顯示輸入的類型,可用份額對(duì)應(yīng)變量顯示都是5,同時(shí)將密碼賦值給B01PWD作為B01賬戶的初始密碼。關(guān)閉子窗口activate,彈出子窗口error,error窗口中的矩形框?qū)?yīng)字符型變量TempError,顯示“激活成功”四個(gè)字,否則顯示“激活失敗”。
圖3 active界面
(3)“關(guān)閉”按鈕中輸入腳本程序:
用戶窗口.activate.Close( )
激活成功后點(diǎn)擊“關(guān)閉”按鈕,關(guān)閉activate子窗口。
(1)Logon界面如圖4所示。賬號(hào)和密碼在操作屬性中分別對(duì)應(yīng)變量tempacc和temppwd。[2]
(2)“登錄”按鈕的腳本程序如下(只給出B01賬戶,其他類似):
如果密碼正確,且處于已激活狀態(tài),將B01賦給變量CURUSER,在主界面和運(yùn)行界面中對(duì)應(yīng)賬戶顯示B01,關(guān)閉登錄窗口,彈出error子窗口,顯示“登錄成功”四個(gè)字,同時(shí)將開關(guān)量“已登錄”置位,否則顯示“登錄失敗”,“已登錄”復(fù)位。
(3)“關(guān)閉”按鈕中輸入腳本程序:
用戶窗口.logon.Close( )
登錄成功后點(diǎn)擊“關(guān)閉”按鈕,關(guān)閉logon子窗口。
圖4 logon界面
圖5 alter界面
(1)alter界面設(shè)計(jì)如圖5所示。賬號(hào)、舊密碼和新密碼各放置一個(gè)輸入框,操作屬性中對(duì)應(yīng)變量分別為tempacc、temppwd和tempnewpwd。
(2)“修改”按鈕的腳本程序如下(只給出B01賬戶,其他類似):
如果是登錄狀態(tài),同時(shí)賬號(hào)、舊密碼輸入正確,將輸入的新密碼賦值給B01PWD,彈出“修改成功”,否則彈出“修改失敗”,同時(shí)將變量“已登錄”復(fù)位,無(wú)法進(jìn)入運(yùn)行界面,必須要重新登錄才行。
(3)窗口屬性的啟動(dòng)腳本中輸入如下腳本程序:
如果不寫入此段程序,當(dāng)?shù)卿浲瓿珊筮M(jìn)入修改密碼界面時(shí),會(huì)顯示出當(dāng)前登錄的賬戶和舊密碼。加入這段程序后要重新輸入各信息,下次不會(huì)保存記錄。
(4)“關(guān)閉”按鈕中輸入腳本程序:
用戶窗口.alter.Close( )
登錄成功后點(diǎn)擊“關(guān)閉”按鈕,關(guān)閉alter子窗口。
將主界面窗口設(shè)置為啟動(dòng)窗口,運(yùn)行后點(diǎn)擊“激活”按鈕,輸入要激活的賬號(hào)和密碼,填入套件類型,如圖6所示,點(diǎn)擊子窗口中的“激活”,彈出激活成功界面,同時(shí)主界面中對(duì)應(yīng)的賬戶信息表也作相應(yīng)變化。[3]
圖6 激活運(yùn)行界面
點(diǎn)擊“登錄”按鈕,輸入要登錄的賬號(hào)和密碼,如圖7所示,點(diǎn)擊子窗口中的“登錄”,彈出登錄成功界面,同時(shí)主界面中對(duì)應(yīng)的當(dāng)前登錄用戶有顯示。如未激活則不能登錄。
圖7 登錄運(yùn)行界面
登錄成功后可在主界面中點(diǎn)擊“進(jìn)入運(yùn)行”按鈕,進(jìn)入到運(yùn)行界面,進(jìn)行套件目標(biāo)數(shù)量設(shè)定,并點(diǎn)擊“開始”,下位機(jī)運(yùn)行。如果登錄失敗或未登錄則不能進(jìn)入運(yùn)行界面。設(shè)置好目標(biāo)數(shù)量并點(diǎn)擊開始后可返回到主界面,如圖8所示,顯示要求完成的套件數(shù)量。
圖8 主界面
點(diǎn)擊“改密”按鈕,輸入要修改的賬號(hào)、舊密碼和新密碼,如圖9所示,點(diǎn)擊子窗口中的“修改”,彈出改密成功界面。如未登錄則不能進(jìn)行改密。
圖9 改密運(yùn)行界面
分揀控制系統(tǒng)的上位組態(tài)實(shí)現(xiàn)的賬戶激活、登錄、修改密碼和監(jiān)控等功能,大多用到腳本程序?qū)崿F(xiàn),具有一定的實(shí)用性和推廣價(jià)值。