MCGS嵌入版組態(tài)軟件腳本程序的作用是編制各種特定的流程控制程序和操作處理程序提供了方便的途徑。腳本程序被封裝在一個功能構(gòu)件里(稱為腳本程序功能構(gòu)件),在后臺由獨立的線程來運行和處理。
在MCGS嵌入版組態(tài)軟件中,腳本語言是一種語法上類似Basic的編程語言。腳本程序可以應(yīng)用在運行策略中,把整個腳本程序作為一個策略功能塊執(zhí)行,也可以在動畫界面的事件中執(zhí)行。
腳本程序編輯環(huán)境是用戶書寫腳本語句的地方。腳本程序編輯環(huán)境主要由腳本程序編輯框、編輯功能按鈕、MCGS嵌入版組態(tài)軟件操作對象列表和函數(shù)列表、腳本語句和表達式4 個部分構(gòu)成。
1.腳本程序編輯框用千書寫腳本程序和腳本注釋,用戶必須遵照MCGS嵌入版組態(tài)軟件規(guī)定的語法結(jié)構(gòu)和書寫規(guī)范書寫腳本程序,否則語法檢查不能通過。
2.編輯功能按鈕提供了文本編輯的基本操作,用戶使用這些操作可以方便操作和提高編輯速度。
3.腳本語句和表達式列出了MCGS嵌入版組態(tài)軟件使用的三種語句的書寫形式和MCGS嵌入版組態(tài)軟件允許的表達式類型。用鼠標(biāo)單擊要選用的語句和表達式符號按鈕,在腳本編輯處光標(biāo)所在的位置填上語句或表達式的標(biāo)準(zhǔn)格式。例如;用鼠標(biāo)單擊if~then按鈕,則MCGS嵌入版組態(tài)軟件提供一個if … then …結(jié)構(gòu),并把輸入光標(biāo)停到合適的位置上。
4.MCGS嵌入版組態(tài)軟件對象和函數(shù)列表以樹結(jié)構(gòu)的形式, 列出了工程中所有的窗口、策略、設(shè)備、變暈、系統(tǒng)支持的 各種方法、屬性以及各種函數(shù),以供用戶快速的查找和使用。
2腳本程序的語言要素在MCGS嵌入版組態(tài)軟件中,腳本程序使用的語言非常類似普通的Basic 語言,本節(jié)將對腳本程序的語言要素進行詳細(xì)的說明。
2.1 腳本程序的數(shù)據(jù)類型
MCGS嵌入版組態(tài)軟件腳本語言使用的數(shù)據(jù)類型只有三種
開關(guān)型 表示開或者關(guān)的數(shù)據(jù)類型,通常0表示關(guān),非0表示開。也可以作為整數(shù)使用;
數(shù)值型 值在3.4E±38范圍內(nèi);
字符型 最多512個字符組成的字符串。
2.2 腳本程序的變暈、常暈及函數(shù)
變暈 腳本程序中,用戶不能定義子程序和子函數(shù),其中數(shù)據(jù)對象可以看作是腳本程序中的全局變暈,所有的程序段都可共用。可以用數(shù)據(jù)對象的名稱來讀寫數(shù)據(jù)對象的值,也可以對數(shù)據(jù)對象的屬性進行操作。
開關(guān)型、數(shù)值型、字符型三種數(shù)據(jù)對象分別對應(yīng)千腳本程序中的三種數(shù)據(jù)類型。在腳本程序中不能對組對象和事件型數(shù)據(jù)對象進行讀寫操作, 但可以對組對象進行存盤處理。
常暈
開關(guān)型常暈 0或非0的整數(shù),通常0表示關(guān),非0表示開;
數(shù)值型常暈 帶小數(shù)點或不帶小數(shù)點的數(shù)值,如 12.45, 100
字符型常暈 雙引號內(nèi)的字符串,如 “OK”,“正常”
系統(tǒng)變暈 MCGS嵌入版組態(tài)軟件系統(tǒng)定義的內(nèi)部數(shù)據(jù)對象作為系統(tǒng)內(nèi)部變暈,在腳本程序中可自由使用,在使用系統(tǒng)變暈時,變暈的前面必須 加 符$號 , 如$Date 。
系統(tǒng)函數(shù) MCGS嵌入版組態(tài)軟件系統(tǒng)定義的內(nèi)部函數(shù),在腳本程序中可自由使用,在使用系統(tǒng)函數(shù)時,函數(shù)的前面必須加“!”符號,如!abs( )。
屬性和方法 MCGS嵌入版組態(tài)軟件系統(tǒng)內(nèi)的屬性和方法都是相對于MCGS嵌入版組態(tài)軟件的對象而言的,引用對象的方法可以參見下個部分。
表達式:由數(shù)據(jù)對象(包括設(shè)計者在實時數(shù)據(jù)庫中定義的數(shù)據(jù)對象、系統(tǒng)內(nèi)部數(shù)據(jù)對象和系統(tǒng)函數(shù))、括號和運算符組成的運算式稱為表達式, 表達式的計算結(jié)果稱為表達式的值。
當(dāng)表達式中包含有邏輯運算符或比較運算符時,表達式的值只可能為0(條件不 成立,假)或非0(條件成立,真),這類表達式稱為邏輯表達式;當(dāng)表達式中 只包含算術(shù)運算符,表達式的運算結(jié)果為具體的數(shù)值時,這類表達式稱為算術(shù)表達式;常暈或數(shù)據(jù)對象是狹義的表達式,這些單個暈的值即為表達式的值。表達式值的類型即為表達式的類型,必須是開關(guān)型、數(shù)值型、字符型三種類型中的一種。
表達式是構(gòu)成腳本程序的最基本元素,在MCGS嵌入版組態(tài)軟件的組態(tài)過程中, 也常常需要通過表達式來建立實時數(shù)據(jù)庫對象與其他對象的連接關(guān)系,正確輸入和構(gòu)造表達式是MCGS嵌入版組態(tài)軟件的一項重要工作。
2.3 腳本程序的運算符
1.算術(shù)運算符
八 乘方、* 乘法、/ 除法、\ 整除、+ 加法、— 減法、Mod 取模運算
2.邏輯運算符
AND 邏輯與 、NOT 邏輯非、OR 邏輯或 、XOR 邏輯異或
3.比較運算符
> 大千 、>= 大千等千 、= 等千 、<= 小千等千、< 小千 、<> 不等千
4.運算符優(yōu)先級
按照優(yōu)先級從高到低的順序,各個運算符排列如下
“( )” 、 “八” 、“ *,/ ,\,Mod 、+ ,— ” 、“ < , > ,<= ,>=,= ,<> ” 、
“NOT ” 、“AND,OR,XOR”。
3 腳本程序的基本語句由千MCGS嵌入版組態(tài)軟件腳本程序是為了實現(xiàn)某些多分支流程的控制及操作處理,因此包括了幾種最簡單的語句 賦值語句、條件語句、退出語句和注釋語句,同時,為了提供一些高級的循環(huán)和遍歷功能,還提供了循環(huán)語句。所有的腳本程序都可由這五種語句組成,當(dāng)需要在一個程序行中包含多條語句時,各條語句之間須用“ ”分開,程序行也可以是沒有任何語句的空行。大多數(shù)情況下,一個程序行只包含一條語句,賦值程序行中根據(jù)需要可在一行上放置多條語句。
3.1腳本程序的賦值語句
賦值語句的形式為 數(shù)據(jù)對象 = 表達式。賦值號用“=”表示,它的具體含義是 把“=”右邊表達式的運算值賦給左邊的數(shù)據(jù)對象。賦值號左邊必須是能夠讀寫的數(shù)據(jù)對象。例如 開關(guān)型數(shù)據(jù)、數(shù)值型數(shù)據(jù)以及能進行寫操作的內(nèi)部數(shù)據(jù)對象,而組對象、事件型數(shù)據(jù)對象、只讀的內(nèi)部數(shù)據(jù)對象、系統(tǒng)函數(shù)以及常 暈,均不能出現(xiàn)在賦值號的左邊,因為不能對這些對象進行寫操作。
賦值號的右邊為一表達式,表達式的類型必須與左邊數(shù)據(jù)對象值的類型相符合,否則系統(tǒng)會提示“賦值語句類型不匹配”的錯誤信息。
3.2腳本程序的條件語句
條件語句有如下三種形式
If [表達式] Then [賦值語句或退出語句]
If [表達式] Then
[語句]
End If
If [表達式]Then
[語句]
Else
[語句]
End If
條件語句中的四個關(guān)鍵字“If”、“Then”、“Else”、“End if”不分大小寫。如拼寫不正確,檢查程序會提示出錯信息。
3.3腳本程序的循環(huán)語句
循環(huán)語句為While和EndWhile,其結(jié)構(gòu)為
While [條件表達式]
….
EndWhile
當(dāng)條件表達式成立時(非零),循環(huán)執(zhí)行While和EndWhile之間的語句。直到條件表達式不成立(為零)時退出。
3.4腳本程序的退出語句
退出語句為“Exit”,用千中斷腳本程序的運行,停止執(zhí)行其后面的語句。
一般在條件語句中使用退出語句以便在某種條件下,停止并退出腳本程序的執(zhí)行。
3.5腳本程序的注釋語句
以單引號“’”開頭的語句稱為注釋語句,注釋語句在腳本程序中只起到注
釋說明的作用,實際運行時,系統(tǒng)不對注釋語句作任何處理。
4腳本程序的調(diào)試腳本程序編制完成后,系統(tǒng)將首先對程序代碼進行檢查,以確認(rèn)腳本程序的編寫是否正確。檢查過程中,如果發(fā)現(xiàn)腳本程序有錯誤,則會顯示相應(yīng)的出錯信息, 以提示可能的出錯原因幫助用戶查找和排除錯誤。常見的提示信息有
1.組態(tài)設(shè)置正確,沒有錯誤。
2.未知變暈。
3.未知表達式。
4.未知的字符型變暈。
5.未知的操作符。
6.未知函數(shù)。
7.函數(shù)參數(shù)不足。
8.括號不配對。
9.IF 語句缺少ENDIF。
10.IF 語句缺少THEN。
11.ELSE 語句缺少對應(yīng)的IF語句。
12.ENDIF 缺少對應(yīng)的 IF 語句。
13.未知的語法錯誤。
根據(jù)系統(tǒng)提供的錯誤信息作出相應(yīng)的改正,系統(tǒng)檢查通過后可以在運行環(huán)境中運行。這樣達到簡化組態(tài)過程、優(yōu)化控制流程的目的。
5腳本程序的實例MCGS嵌入式組態(tài)系統(tǒng)內(nèi)嵌255個系統(tǒng)計時器。計時器號的系統(tǒng)序號為
1—255,以1號計數(shù)器為例,要求用按鈕啟動、停止1號計數(shù)器,使1號計數(shù)器復(fù)位,給1號計數(shù)器限制最大值。函數(shù)的具體應(yīng)用可以看“在線幫助”。計時器的運行效果圖如圖12-1所示。具體制作過程操作如下
1.建立計數(shù)器所需要的變暈。
在MCGS組態(tài)軟件開發(fā)平臺上,單擊“實時數(shù)據(jù)庫”,點擊“新增對象”按 鈕,新增四個變暈 計數(shù)器1號、計數(shù)器1號工作狀態(tài)、顯示時間、計數(shù)器1號最大值。分別按照如圖12-2所示進行設(shè)置。
2. 制作用戶窗口畫面。
在MCGS組態(tài)軟件開發(fā)平臺上,單擊“用戶窗口”,再雙擊“腳本程序”窗 口,進入“動畫組態(tài)”,從“工具箱”中選中5次“標(biāo)簽”,按效果圖放置,分別為 1號計數(shù)器操作演示,1號計數(shù)器計數(shù),1號計數(shù)器時間顯示,1號計數(shù)器工作狀態(tài),1號計數(shù)器最大值。再從“工具箱”中選中3次“標(biāo)簽”,按效果圖放置,作為“1號計數(shù)器計數(shù)”、“時間顯示”、“1號計數(shù)器工作狀態(tài)顯 示”在運行時對應(yīng)顯示用,從工具箱”中選中“輸入框”,針對“1號計數(shù)器最大值”運行時進行輸入。所用到的數(shù)據(jù)變暈 計數(shù)器1號、時間顯示、計數(shù)器1號工作狀態(tài)、計數(shù)器1號最大值在變暈的屬性設(shè)置中進行設(shè)置。計 時器的運行效果圖如圖12-1所示。
圖12-1 計時器的運行效果圖
3. 用戶窗口畫面變暈連接設(shè)置
(1)先對三個顯示輸出框進行變暈連接,如圖12-2至12-6所示。
圖12-2 計數(shù)器的變暈設(shè)置
圖12-3 用戶窗口的窗口設(shè)置
圖12-4 計數(shù)器計數(shù)的顯示框設(shè)置
圖12-5 計數(shù)器1號時間顯示的顯示框設(shè)置
圖12-6 計數(shù)器1號工作狀態(tài)的顯示框設(shè)置
(2)計數(shù)器1號最大值的輸入框進行變暈連接設(shè)置,如圖12-7所示。
圖12-7 計數(shù)器1號最大值的輸入框設(shè)置
4.腳本程序注釋
啟動計數(shù)器的腳本程序為 !TimerRun(1)
停止計數(shù)器計數(shù)的腳本程序為 !TimerStop(1)
計數(shù)器復(fù)位的腳本程序為 !TimerReset(1,0)
計數(shù)器最大值腳本程序為 !TimerSetLimit(1,計數(shù)器1號最大值,0)
用戶窗口的腳本程序為ww w.PLCworld.cn
計數(shù)器1號=!TimerValue(1,0)
計數(shù)器1號時間顯示= $Time
計數(shù)器1號工作狀態(tài)=!TimerState(1)
對4個標(biāo)準(zhǔn)按鈕進行屬性設(shè)置,如圖12-8至12-11所示。
圖12-8 啟動計數(shù)器標(biāo)準(zhǔn)按鈕屬性設(shè)置
圖12-9 停止計數(shù)器計數(shù)標(biāo)準(zhǔn)按鈕屬性設(shè)置
圖12-10 計數(shù)器復(fù)位標(biāo)準(zhǔn)按鈕屬性設(shè)置
圖12-11 計數(shù)器最大值標(biāo)準(zhǔn)按鈕屬性設(shè)置
5.編輯用戶窗口的腳本程序,如圖12-12所示。
圖12-12 編輯用戶窗口的腳本程序
腳本程序編寫完成后,按“檢查”按鈕,檢查腳本程序語法正確與否,當(dāng)語法正確后按“確定”按鈕完成腳本程序的設(shè)置, 退出循環(huán)腳本編輯窗口。進入模擬運行環(huán)境時,就會按照腳本程序編寫的計數(shù)器的使用方式出現(xiàn)相應(yīng)的工作狀態(tài),計數(shù)器實例工程文件放在光盤內(nèi)可參考使用。
5.2 字符串分解實例
在實際應(yīng)用過程中經(jīng)常要用到字符串操作。例如 對西門子200系列PLC中的“V數(shù)據(jù)存儲器”進行處理。下面以字符串轉(zhuǎn)換應(yīng)用工程為例進行講述功能如下;輸入一個0到9999的某個數(shù),先要把這個數(shù)轉(zhuǎn)換為字符串,不足四位字符時,前面補“0”,對字符串進行分解,分解后先轉(zhuǎn)換為相應(yīng)的ASCII 碼,再用16進制表示,字符串轉(zhuǎn)換具體制作過程下面詳細(xì)介紹。字符串分解的運行效果圖如圖12-13所示。
圖12-13 字符串分解的運行效果圖
1.建立計數(shù)器所需要的變暈
在MCGS組態(tài)軟件開發(fā)平臺上,單擊“實時數(shù)據(jù)庫”,點擊“新增對象”按鈕,新增10個變暈 數(shù)據(jù)顯示1、數(shù)據(jù)顯示2、數(shù)據(jù)顯示3、數(shù)據(jù)顯示4、數(shù)值輸入、為數(shù)值型的,字符串分解1、字符串分解2、字符串分解3、字符串分解4、字符串顯示為字符串型的。窗口屬性設(shè)置如下,其中 字符串分解2、字符串分解3、字符串分解4屬性設(shè)置只需要把“顯示輸出”中“表達式”中的“字符串分解1”改為“字符串分解2”、“字符串分解3”、“字符串分解4”;其中數(shù)據(jù)顯示2、數(shù)據(jù)顯示3、數(shù)據(jù)顯示4屬性設(shè)置只需要把“顯示輸出”中“表達式”中的“數(shù)據(jù)顯示1” 相應(yīng)地改為 “數(shù)據(jù)顯示2”、“數(shù)據(jù)顯示3”、“數(shù)據(jù)顯示4”即可。分別以代表性變暈為例參照設(shè)置,如圖12-14所示。
圖12-14 數(shù)據(jù)變暈的建立
2. 制作用戶窗口畫面
在MCGS組態(tài)軟件開發(fā)平臺上,單擊“用戶窗口”,再雙擊“腳本程序”窗 口,進入“動畫組態(tài)”,從“工具箱”中選中3次“標(biāo)簽”,按效果圖放置,顯示文字分別為 字符串操作、輸入數(shù)值、字符串顯示、字符串分解、數(shù)值顯示。再從“工具箱”中選中“輸入框”,放在“輸入數(shù)值”后面,從“工具箱” 中選中“標(biāo)簽”,放在“字符串顯示”后面,用千顯示字符串。窗口的構(gòu)件設(shè)置如圖12-15至12-18所示,窗口的整體畫面設(shè)置為如圖12-19所示。
圖12-15 輸入框?qū)傩栽O(shè)置
圖12-16 字符串顯示輸出框?qū)傩栽O(shè)置
圖12-17 字符串顯示輸出框?qū)傩栽O(shè)置
圖12-18 字符串顯示輸出框?qū)傩栽O(shè)置
圖12-19 字符串操作的窗口畫面
3. 用戶窗口畫面變暈連接設(shè)置
從“工具箱”中選中3次“標(biāo)準(zhǔn)按鈕”,分別拖放到桌面適當(dāng)位置,按鈕名分別為 數(shù)值轉(zhuǎn)變?yōu)樽址⒆址纸鉃閱蝹字符、字符轉(zhuǎn)為ASCII碼用16進制顯示。
4.腳本程序編寫 分別設(shè)置為如圖12-20至12-2所示的窗口畫面
(1) 數(shù)值轉(zhuǎn)變?yōu)樽址哪_本程序為
字符串顯示=!right('0000'+!Str(數(shù)值輸入),4 )
(2)字符串解為單個字符的腳本程序為
字符串分解1=!left(字符串顯示,1w)ww.PLCworld.cn
字符串分解2=!mid(字符串顯示,2,1)
字符串分解3=!mid(字符串顯示,3,1)
字符串分解4=!right(字符串顯示,1)
(3)字符串轉(zhuǎn)為ASCCI碼用16進制顯示的腳本程序為
數(shù)據(jù)顯示1=!Val(!I2Hex(!Ascii2I(字符串分解1)))
數(shù)據(jù)顯示2=!Val(!I2Hex(!Ascii2I(字符串分解2)))
數(shù)據(jù)顯示3=!Val(!I2Hex(!Ascii2I(字符串分解3)))
數(shù)據(jù)顯示4=!Val(!I2Hex(!Ascii2I(字符串分解4)))
圖12-20 數(shù)值轉(zhuǎn)變?yōu)樽址陌粹o設(shè)置
圖12-21 字符串解為單個字符的按鈕設(shè)置
圖12-22 字符串轉(zhuǎn)為ASCCI碼用16進制顯示的按鈕設(shè)置
腳本程序輸入完成后點擊檢查按鈕,確認(rèn)正確后退出。用戶窗口的畫面組態(tài)完成后,可以用“編輯條” 中的工具進行調(diào)整相應(yīng)的構(gòu)件的位置關(guān)系。
腳本程序編寫完成后按“檢查”按鈕,檢查腳本程序語法正確與否。當(dāng)語法正確后按 確定 按鈕完成腳本程序的設(shè)置,退出循環(huán)腳本編輯窗口。進入模擬運行環(huán)境時,就會按照腳本程序編寫的字符串分解實例進行工作字符串分解實例工程文件放在光盤內(nèi)可參考使用。
總結(jié):介紹了MCGS嵌入版組態(tài)軟件腳本程序的屬性設(shè)置,以及腳本程序的分類和腳本程序編寫時候的注意事項。最后通過兩個應(yīng)用的腳本程序的實例工程進行講解使學(xué)生動手獨立完成腳本程序的實例工程。通過本章的學(xué)習(xí)使學(xué)生能夠進一步了解MCGS嵌入版組態(tài)軟件腳本程序?qū)傩栽O(shè)置的相關(guān)功能。
(文章來源網(wǎng)絡(luò),僅供參考。評論處大家可以補充文章解釋不對或欠缺的部分)