MCGS腳本程序_第1頁
MCGS腳本程序_第2頁
MCGS腳本程序_第3頁
MCGS腳本程序_第4頁
MCGS腳本程序_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、MCGS腳本程序本專題將從以下幾個方面介紹MCGS腳本程序:l 腳本程序簡介 l 腳本語言編輯環(huán)境 l 腳本程序語言要素 l 腳本程序基本語句 l 腳本程序的查錯和運行腳本程序簡介對于大多數(shù)簡單的應(yīng)用系統(tǒng),MCGS的簡單組態(tài)就可完成。只有比較復(fù)雜的系統(tǒng),才需要使用腳本程序,但正確地編寫腳本程序,可簡化組態(tài)過程,大大提高工作效率,優(yōu)化控制過程。用戶腳本程序是由用戶編制的、用來完成某種特定的流程控制和操作處理的程序。它被封裝在一個功能構(gòu)件里(稱為腳本程序功能構(gòu)件),在后臺由獨立的線程來運行和處理,能夠避免由于單個腳本程序的錯誤而導(dǎo)致整個系統(tǒng)的癱瘓。在MCGS中,腳本語言的編程語法非常類似于普通的B

2、asic語言,但在概念和使用上更簡單直觀,力求做到使大多數(shù)普通用戶都能正確、快速地掌握和使用。腳本程序在MCGS組態(tài)軟件中有四種應(yīng)用場合,分別為:l 在“運行策略”中的“腳本程序”構(gòu)件中使用;l 在“菜單”屬性設(shè)置中的“腳本程序”中使用,作為菜單的一個輔助功能運行;l 在“用戶窗口”屬性設(shè)置中的“啟動腳本”、“循環(huán)腳本”、“退出腳本”中使用;l 更常見的用法是應(yīng)用在動畫界面的事件中,如在窗口中的“標(biāo)準(zhǔn)按鈕”屬性設(shè)置中的“腳本程序”中使用。MCGS引入的事件驅(qū)動機制,與VB或VC中的事件驅(qū)動機制類似,比如:對用戶窗口,有裝載,卸載事件;對窗口中的控件,有鼠標(biāo)單擊事件,鍵盤按鍵事件等等。這些事件發(fā)

3、生時,就會觸發(fā)一個腳本程序,執(zhí)行腳本程序中的操作。腳本語言編輯環(huán)境腳本程序編輯環(huán)境是用戶書寫腳本語句的地方。腳本程序編輯環(huán)境主要由腳本程序編輯框、編輯功能按鈕、MCGS操作對象列表和函數(shù)列表、腳本語句和表達式4個部分構(gòu)成,分別說明如下:l 腳本程序編輯框用于書寫腳本程序和腳本注釋,用戶必須遵照MCGS規(guī)定的語法結(jié)構(gòu)和書寫規(guī)范書寫腳本程序,否則語法檢查不能通過。l 編輯功能按鈕提供了文本編輯的基本操作,用戶使用這些操作可以方便操作和提高編輯速度。比如,在腳本程序編輯框中選定一個函數(shù),然后按下幫助按鈕,MCGS將自動打開關(guān)于這個函數(shù)的在線幫助,或者,如果函數(shù)拼寫錯誤,MCGS將列出與所提供的名字最

4、接近函數(shù)的在線幫助。l 腳本語句和表達式列出了MCGS使用的三種語句的書寫形式和MCGS允許的表達式類型。用鼠標(biāo)單擊要選的語句和表達式符號,在腳本編輯處光標(biāo)所在的位置填上語句或表達式的標(biāo)準(zhǔn)格式。比如,用鼠標(biāo)單擊ifthen按鈕,則MCGS自動提供一個if then 結(jié)構(gòu),并把輸入光標(biāo)停到合適的位置上。l MCGS對象和函數(shù)列表以樹結(jié)構(gòu)的形式,列出了工程中所有的窗口、策略、設(shè)備、變量、系統(tǒng)支持的各種方法、屬性以及各種函數(shù),以供用戶快速的查找和使用。比如,可以在用戶窗口樹中,選定一個窗口:”窗口0”,打開窗口0下的”方法” ,然后雙擊Open函數(shù),則MCGS自動在腳本程序編輯框中,添加了一行語句:

5、用戶窗口.窗口0.Open( ),通過這行語句,就可以完成窗口打開的工作。腳本程序語言要素在MCGS中,腳本程序在編寫時使用的語言非常類似普通的Basic語言,本節(jié)對腳本程序的語言要素進行詳細的說明。數(shù)據(jù)類型MCGS腳本程序語言使用的數(shù)據(jù)類型只有三種:l 開關(guān)型:表示開或者關(guān)的數(shù)據(jù)類型,通常0表示關(guān),非0表示開。也可以作為整數(shù)使用;l 數(shù)值型:值在3.4E±38范圍內(nèi);l 字符型:最多512個字符組成的字符串;變量、常量及系統(tǒng)函數(shù)變量:腳本程序中,用戶不能定義子程序和子函數(shù),其中數(shù)據(jù)對象可以看作是腳本程序中的全局變量,在所有的程序段共用??梢杂脭?shù)據(jù)對象的名稱來讀寫數(shù)據(jù)對象的值,也可以

6、對數(shù)據(jù)對象的屬性進行操作。開關(guān)型、數(shù)值型、字符型三種數(shù)據(jù)對象分別對應(yīng)于腳本程序中的三種數(shù)據(jù)類型。在腳本程序中不能對組對象和事件型數(shù)據(jù)對象進行讀寫操作,但可以對組對象進行存盤處理。常量:l 開關(guān)型常量:0或非0的整數(shù),通常0表示關(guān),非0表示開;l 數(shù)值型常量:帶小數(shù)點或不帶小數(shù)點的數(shù)值,如:12.45, 100l 字符型常量:雙引號內(nèi)的字符串,如:“OK”,“正?!毕到y(tǒng)變量:MCGS系統(tǒng)定義的內(nèi)部數(shù)據(jù)對象作為系統(tǒng)內(nèi)部變量,在腳本程序中可自由使用,在使用系統(tǒng)變量時,變量的前面必須加“$”符號,如 $Date。系統(tǒng)函數(shù):MCGS系統(tǒng)定義的內(nèi)部函數(shù),在腳本程序中可自由使用,在使用系統(tǒng)函數(shù)時,函數(shù)的前面

7、必須加“!”符號,如!abs( )。屬性和方法:MCGS系統(tǒng)內(nèi)的屬性和方法都是相對于MCGS的對象而說的,引用對象的方法可以參見下個部分。注:有關(guān)系統(tǒng)變量和系統(tǒng)函數(shù)詳細的使用方法,請參見MCGS參考手冊MCGS對象MCGS的對象形成一個對象樹,樹根從“MCGS”開始,MCGS對象的屬性就是系統(tǒng)變量,MCGS對象的方法就是系統(tǒng)函數(shù)。MCGS對象下面有“用戶窗口”對象,“設(shè)備”對象,“數(shù)據(jù)對象” 等子對象?!坝脩舸翱凇币愿鱾€用戶窗口作為子對象,每個用戶窗口對象以這個窗口里的動畫構(gòu)件作為子對象。使用對象的方法和屬性,必須要引用對象,然后使用點操作來調(diào)用這個對象的方法或?qū)傩?。為了引用一個對象,需要從對

8、象根部開始引用,這里的對象根部,是指可以公開使用的對象。MCGS對象,用戶窗口、設(shè)備和數(shù)據(jù)對象都是公開對象,因此,語句InputETime = $Time是正確的,而語句InputETime = MCGS.$Time也是正確的,同樣,調(diào)用函數(shù)!Beep()時,也可以采用MCGS.!Beep()的形式??梢詫懀捍翱?.Open(),也可以寫:MCGS.用戶窗口.窗口0.Open(),還可以寫:用戶窗口.窗口0.Open()。但是,如果要使用控件,就不能只寫:控件0.Left,而必須寫:窗口0.控件0.Left,或:用戶窗口.窗口0.控件0.Left。在對象列表框中,雙擊需要的方法和屬性,MCGS

9、將自動生成最小可能的表達式。事件在MCGS的動畫界面組態(tài)中,可以組態(tài)處理動畫事件。動畫事件是在某個對象上發(fā)生的,可能帶有參數(shù)也可能沒有參數(shù)的動作驅(qū)動源。如用戶窗口上可以發(fā)生事件:Load,Unload,分別在用戶窗口打開和關(guān)閉時觸發(fā)。可以對這兩個事件組態(tài)一段腳本程序,當(dāng)事件觸發(fā)時(用戶窗口打開或關(guān)閉時)被調(diào)用。用戶窗口的Load和Unload事件是沒有參數(shù)的,但是MouseMove事件有,在組態(tài)這個事件時,可以在參數(shù)組態(tài)中,選擇把MouseMove事件的幾個參數(shù)連接到數(shù)據(jù)對象上,這樣,當(dāng)MouseMove事件被觸發(fā)時,就會把MouseMove的參數(shù),包括鼠標(biāo)位置,按鍵信息等送到連接的數(shù)據(jù)對象,

10、然后,在事件連接的腳本程序中,就可以對這些數(shù)據(jù)對象進行處理。表達式由數(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)成腳本程序的最基

11、本元素,在MCGS的部分組態(tài)中,也常常需要通過表達式來建立實時數(shù)據(jù)庫與其對象的連接關(guān)系,正確輸入和構(gòu)造表達式是MCGS的一項重要工作。運算符算術(shù)運算符 乘方l * 乘法l 除法l 整除 加法 減法Mod 取模運算邏輯運算符l AND 邏輯與 NOT 邏輯非OR 邏輯或XOR 邏輯異或比較運算符l 大于l 大于等于l 等于(注意,字符串比較需要使用字符串函數(shù)!StrCmp, 不能直接使用等于運算符)l 小于等于l 小于l 不等于運算符優(yōu)先級按照優(yōu)先級從高到低的順序,各個運算符排列如下:l ( )l l *, ,Modl , l , , , ,l NOTl AND,OR,XOR基本輔助函數(shù)作為腳本

12、語言的一部分,MCGS提供了基本輔助函數(shù),這些函數(shù)主要不是作為組態(tài)軟件的功能提供的,而是為了完成腳本語言的功能提供的。這些函數(shù)包括以下幾類:位操作函數(shù),數(shù)學(xué)函數(shù),字符串函數(shù),時間函數(shù)。位操作函數(shù)提供了對整型數(shù)據(jù)中的位進行操作的功能??梢杂瞄_關(guān)型變量來提供這里的整型數(shù)據(jù)。在腳本程序編輯器里,位操作函數(shù)都列在數(shù)學(xué)函數(shù)中,包括按位與(!BitAnd),按位或(!BitOr),按位異或(!BitXor),按位取反(!BitNot),清除數(shù)據(jù)中的某一位或把某一位置0(!BitClear),設(shè)置數(shù)據(jù)中的某一位或把某一位置1(!BitSet),檢查數(shù)據(jù)中某一位是否為1(!BitTest),左移和右移(!Bi

13、tLShift,!BitRShift)。數(shù)學(xué)函數(shù)提供了常見的數(shù)學(xué)操作,包括開方,隨機數(shù)生成以及三角函數(shù)等。字符串函數(shù)提供了與字符串相關(guān)的操作,包括字符串比較,截取,搜索以及格式化等。時間函數(shù)提供了和時間計算相關(guān)的函數(shù)。時間可以表達為一個字符串的形式,但是,為了方便進行時間計算,在MCGS中,使用了一種內(nèi)部格式來保存時間的值,這種內(nèi)部格式的時間值可以保存在一個開關(guān)型變量中,同時,可以使用函數(shù)!TimeStr2I和!TimeI2Str來完成字符串形式時間量和內(nèi)部格式形式時間量的轉(zhuǎn)換,如:A1 = !TimeStr2I(“2001-3-2 12:23:23”),這里A1是一個開關(guān)型數(shù)據(jù)對象,獲得了一

14、個內(nèi)部形式的時間量,而再用 InputETime = !TimeI2Str(A1,“%Y-%m-%d %H:%M:%S”)又可以把保存在A1中的內(nèi)部形式的時間量轉(zhuǎn)換為字符串形式。當(dāng)時間轉(zhuǎn)換為內(nèi)部格式后,就可以進行時間的運算。運算完畢后,再轉(zhuǎn)換為字符串形式的時間,以便輸出和使用。具體函數(shù)的使用方法,可以參照MCGS參考手冊中的說明。功能函數(shù)為了提供輔助的系統(tǒng)功能,MCGS提供了功能函數(shù)。功能函數(shù)主要包括以下幾類:運行環(huán)境函數(shù),數(shù)據(jù)對象函數(shù),系統(tǒng)函數(shù),用戶登錄函數(shù),定時器操作,文件操作,ODBC函數(shù),配方操作函數(shù)等。 運行環(huán)境函數(shù)和數(shù)據(jù)對象函數(shù)主要是提供了對MCGS內(nèi)部各個對象操作的方法。系統(tǒng)函數(shù)

15、提供了系統(tǒng)功能,包括播放聲音,啟動程序,發(fā)出按鍵信息等等。用戶登錄函數(shù)提供了用戶登錄和管理的功能。包括打開登錄對話框,打開用戶管理對話框等等。定時器提供了MCGS內(nèi)建定時器的操作。包括對內(nèi)建時鐘的啟動,停止,復(fù)位,時間讀取等操作。文件操作提供了對文件的操作,包括刪除、拷貝文件,把文件拆開、合并,尋找文件,和循環(huán)語句一起,可以遍歷文件,在文件中進行讀寫操作。對CSV(逗號分割的文本文件)進行讀寫操作等等。ODBC數(shù)據(jù)庫函數(shù)提供了對ODBC數(shù)據(jù)源訪問的機制,具體的使用方法可以參看”訪問ODBC數(shù)據(jù)源”一章。配方操作函數(shù)提供了訪問配方數(shù)據(jù)的機制。這兩類函數(shù)使用了類似的編程機制。首先,為了訪問一個OD

16、BC數(shù)據(jù)源或配方數(shù)據(jù),需要建立一個有名字的連接,這個連接的名字在創(chuàng)建這個連接時指定,在進行數(shù)據(jù)操作,以及關(guān)閉連接時,需要指定這個名字。其次,在連接中,規(guī)定了一個當(dāng)前行的概念,當(dāng)前行使用捆綁函數(shù)綁定到一組變量上,在連接中使用位置移動函數(shù)上下移動當(dāng)前行到需要的位置上,就可以把需要位置上的數(shù)據(jù)從綁定的變量中讀出來。通過添加函數(shù) (AddNew),可以把當(dāng)前綁定變量中的值作為一組新的數(shù)據(jù)加入到連接中。通過刪除函數(shù)(Delete),可以把當(dāng)前行刪除。通過編輯函數(shù),可以按照綁定變量中的值來修改連接中當(dāng)前行的值。通過查找函數(shù),可以把當(dāng)前行定位到符合要求的位置上,如序號為10,或者操作員為李明,等等。具體的函

17、數(shù)說明,可以參看MCGS參考手冊。腳本程序基本語句由于MCGS腳本程序是為了實現(xiàn)某些多分支流程的控制及操作處理,因此包括了幾種最簡單的語句:賦值語句、條件語句、退出語句和注釋語句,同時,為了提供一些高級的循環(huán)和遍歷功能,還提供了循環(huán)語句。所有的腳本程序都可由這五種語句組成,當(dāng)需要在一個程序行中包含多條語句時,各條語句之間須用“:”分開,程序行也可以是沒有任何語句的空行。大多數(shù)情況下,一個程序行只包含一條語句,賦值程序行中根據(jù)需要可在一行上放置多條語句。賦值語句賦值語句的形式為:數(shù)據(jù)對象 = 表達式。賦值語句用賦值號(“=”號)來表示,它具體的含義是:把“=”右邊表達式的運算值賦給左邊的數(shù)據(jù)對象

18、。賦值號左邊必須是能夠讀寫的數(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)會提示“賦值語句類型不匹配”的錯誤信息。條件語句條件語句有如下三種形式:If 表達式 Then 賦值語句或退出語句If 表達式 Then 語句EndIfIf 表達式Then語句Else語句EndIf條件語句中的四個關(guān)鍵字“If”、“Then”、“Else”、“Endif”不分大小寫。如拼寫不正確,檢查程序

19、會提示出錯信息。條件語句允許多級嵌套,即條件語句中可以包含新的條件語句,MCGS腳本程序的條件語句最多可以有8級嵌套,為編制多分支流程的控制程序提供了可能。“IF”語句的表達式一般為邏輯表達式,也可以是值為數(shù)值型的表達式,當(dāng)表達式的值為非0時,條件成立,執(zhí)行“Then”后的語句,否則,條件不成立,將不執(zhí)行該條件塊中包含的語句,開始執(zhí)行該條件塊后面的語句。值為字符型的表達式不能作為“IF”語句中的表達式。循環(huán)語句循環(huán)語句為While和EndWhile,其結(jié)構(gòu)為:While 條件表達式.EndWhile當(dāng)條件表達式成立時(非零),循環(huán)執(zhí)行While和EndWhile之間的語句。直到條件表達式不成立(為零),退出。退出語句退出語句為“Exit”,用于中斷腳本程序的運行,停止執(zhí)行其后面的語句。一般在條件語句中使用退

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論