陳 娟
(九江職業大學,江西 九江 332009)
工控組態軟件在近十年來發展迅速,品牌多,適應各種主流PLC控制。MCGS是市場擁有量最大的國產組態軟件,它既有強大的顯示組態、數據庫和仿真功能,還有基于BASIC語言的腳本功能。目前,針對MCGS的教材及網絡培訓資料,其腳本功能都過于淺顯,需要通過不斷摸索和嘗試而加以補充和完善。
分揀控制系統共有三個工位,根據客戶要求,在工位上輸出相應組合和數量的成品套件。系統成品工件有四種類型(圖1),分別為白色塑料外殼黑色塑料芯、白色塑料外殼金屬芯、黑色塑料外殼白色塑料芯、黑色塑料外殼金屬芯。只有達到客戶指定的組合套件數量時系統才停止工作。系統根據不同工件搭配成套件,有三種搭配類型,如表1所示。

圖1 有效成品工件類型

表1 不同搭配類型的套件種類
給三種客戶分配B01、B02、B03三個賬號。進入主界面后,賬戶信息表中顯示各賬號均處于“未激活”狀態,可用份額和搭配類型都是0,在使用之前都要進行激活。點擊“激活”按鈕,彈出激活界面,可輸入賬號、密碼和需要完成的搭配類型號。當所在賬戶激活后,賬戶信息表中顯示該賬戶處于“已激活”狀態,同時可用份額兩種套件都是5份,搭配類型顯示為該賬戶指定的類型。
只有已經激活的賬戶才能夠登錄,未登錄不能進入運行界面設置需要完成各套件的目標數量。點擊“登錄”按鈕彈出登錄界面,輸入賬號和激活時設置的密碼,若輸入正確則彈出“登錄成功”提示框,若輸入錯誤則彈出“登錄失敗”提示框。此時點擊“進入運行”按鈕,進入運行界面,輸入兩種套件的目標數量,點擊開始,分揀系統開始運行。
在主界面點擊“改密”按鈕,彈出密碼修改界面,輸入舊密碼和新密碼。修改密碼后需要重新登錄才能進入運行界面。修改成功后彈出“修改成功”提示框;如果舊密碼輸入錯誤,則彈出“修改失敗”提示框。
進入運行界面后設置需要完成的目標套件數量,都不能超過5,如果輸入超過5的數字,則自動變為5;運行界面和主界面窗口可互相切換。
建立6個用戶窗口,分別為主界面、運行、activate、logon、alter和error。其中后面4個窗口都是需要彈出來的子窗口。
(1)主界面放置了“激活”“登錄”“改密”三個按鈕,點擊后分別彈出activate、logon和alter子窗口。三個按鈕中的腳本程序分別為

OpenSubWnd腳本程序中有6個參數,第一個參數表示打開的子窗口名稱,第二個和第三個參數表示子窗口的大小,第四個和第五個參數表示在當前窗口中顯示的坐標位置,第六個參數表示打開方式,需要使用CloseSubWnd或Close腳本來關閉子窗口[1]。
(2)套件一數量、套件二數量、當前登錄用戶都放置標簽,勾選“顯示輸出”功能。套件一數量對應的變量為S1GOAL,此數值型變量對應“運行”界面套件一目標數量;同樣,套件二數量對應的變量為S2GOAL;當前登錄用戶對應變量為字符串型變量CURUSER。
(3)賬戶信息表中每一個賬號都對應4個變量,如B01用戶,狀態對應字符型變量B01F,定義實時變量時,在對象初值中輸入“未激活”;搭配類型對應數值型變量B01T;套件一和套件二的可用份額對應數值型變量B01S1和B02S1。
(4)“進入運行”按鈕,按如下腳本編輯程序:
if已登錄=1 then用戶窗口.運行.Open()
開關量“已登錄”為登錄成功后置位。
(1)運行界面設計如圖2所示。套件一目標數量和套件二目標數量放置兩個輸入框,對應變量為S1GOAL和S2GOAL,輸入后同時在主界面的套件一數量和套件二數量中顯示。在窗口的循環腳本屬性中編寫如下程序(給出賬號B01的程序,其他兩個類似,只需將帶01的變量改成02或03即可):

表示輸入的數據為0~5。

圖2 運行界面
(2)套件一完成數量和套件二完成數量的數值型變量為S1OVER和S2OVER,是只讀型變量,對應下位機的兩個套件完成的件數變量;當前登錄用戶的標簽屬性和主界面一致。
(3)“開始”按鈕對應的地址變量傳送到下位機,作為分揀開始運行的前提條件;“返回主界面”只需要選擇打開“主界面”窗口功能。
(1)Activate界面如圖3所示。賬號、密碼和套件類型只需要在操作屬性中分別對應字符型變量tempacc、字符型變量temppwd、數值型變量temptype。
(2)“激活”按鈕中輸入腳本程序如下(給出B01賬號激活程序,其他兩個類似,只需將帶01的變量改成02或03即可):


輸入了賬號、密碼和套件類型后,主界面賬戶信息中狀態對應的B01F變量顯示“已激活”,搭配類型對應的變量B01T顯示輸入的類型,可用份額對應變量顯示都是5,同時將密碼賦值給B01PWD作為B01賬戶的初始密碼。關閉子窗口activate,彈出子窗口error,error窗口中的矩形框對應字符型變量TempError,顯示“激活成功”四個字,否則顯示“激活失敗”。

圖3 active界面
(3)“關閉”按鈕中輸入腳本程序:
用戶窗口.activate.Close( )
激活成功后點擊“關閉”按鈕,關閉activate子窗口。
(1)Logon界面如圖4所示。賬號和密碼在操作屬性中分別對應變量tempacc和temppwd。[2]
(2)“登錄”按鈕的腳本程序如下(只給出B01賬戶,其他類似):


如果密碼正確,且處于已激活狀態,將B01賦給變量CURUSER,在主界面和運行界面中對應賬戶顯示B01,關閉登錄窗口,彈出error子窗口,顯示“登錄成功”四個字,同時將開關量“已登錄”置位,否則顯示“登錄失敗”,“已登錄”復位。
(3)“關閉”按鈕中輸入腳本程序:
用戶窗口.logon.Close( )
登錄成功后點擊“關閉”按鈕,關閉logon子窗口。

圖4 logon界面

圖5 alter界面
(1)alter界面設計如圖5所示。賬號、舊密碼和新密碼各放置一個輸入框,操作屬性中對應變量分別為tempacc、temppwd和tempnewpwd。
(2)“修改”按鈕的腳本程序如下(只給出B01賬戶,其他類似):

如果是登錄狀態,同時賬號、舊密碼輸入正確,將輸入的新密碼賦值給B01PWD,彈出“修改成功”,否則彈出“修改失敗”,同時將變量“已登錄”復位,無法進入運行界面,必須要重新登錄才行。
(3)窗口屬性的啟動腳本中輸入如下腳本程序:


如果不寫入此段程序,當登錄完成后進入修改密碼界面時,會顯示出當前登錄的賬戶和舊密碼。加入這段程序后要重新輸入各信息,下次不會保存記錄。
(4)“關閉”按鈕中輸入腳本程序:
用戶窗口.alter.Close( )
登錄成功后點擊“關閉”按鈕,關閉alter子窗口。
將主界面窗口設置為啟動窗口,運行后點擊“激活”按鈕,輸入要激活的賬號和密碼,填入套件類型,如圖6所示,點擊子窗口中的“激活”,彈出激活成功界面,同時主界面中對應的賬戶信息表也作相應變化。[3]

圖6 激活運行界面
點擊“登錄”按鈕,輸入要登錄的賬號和密碼,如圖7所示,點擊子窗口中的“登錄”,彈出登錄成功界面,同時主界面中對應的當前登錄用戶有顯示。如未激活則不能登錄。

圖7 登錄運行界面
登錄成功后可在主界面中點擊“進入運行”按鈕,進入到運行界面,進行套件目標數量設定,并點擊“開始”,下位機運行。如果登錄失敗或未登錄則不能進入運行界面。設置好目標數量并點擊開始后可返回到主界面,如圖8所示,顯示要求完成的套件數量。

圖8 主界面
點擊“改密”按鈕,輸入要修改的賬號、舊密碼和新密碼,如圖9所示,點擊子窗口中的“修改”,彈出改密成功界面。如未登錄則不能進行改密。

圖9 改密運行界面
分揀控制系統的上位組態實現的賬戶激活、登錄、修改密碼和監控等功能,大多用到腳本程序實現,具有一定的實用性和推廣價值。