




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、目 錄第一章 MCGS的可擴充性41.1 概述41.2 可擴充的設備驅(qū)動構(gòu)件61.3 可擴充的功能構(gòu)件71.4 MCGS實時數(shù)據(jù)庫對象81.5 MCGS存盤服務對象101.6 通過OLE自動化和其它應用程序交互121.7 通過DDE和其它應用程序交互141.8 直接操作MCGS的存盤數(shù)據(jù)庫16第二章 開發(fā)MCGS功能構(gòu)件172.1 功能構(gòu)件的實現(xiàn)方法172.2 功能構(gòu)件接口規(guī)范182.3 利用開發(fā)向?qū)煽蚣?92.4 利用樣例程序移植222.5 測試和掛接功能構(gòu)件25第三章 開發(fā)MCGS設備驅(qū)動273.1 設備驅(qū)動構(gòu)件的實現(xiàn)方法273.2 設備驅(qū)動構(gòu)件接口規(guī)范283.3 利用開發(fā)向?qū)煽蚣?/p>
2、323.4 利用樣例程序移植353.5 測試和掛接設備驅(qū)動構(gòu)件373.6 IO端口的操作403.7 串行口的操作433.8 設備驅(qū)動構(gòu)件的運行機制443.9 增加設備構(gòu)件的屬性453.10 定制設備屬性設置對話框473.11 編制簡單的設備驅(qū)動構(gòu)件48第四章 MCGS系統(tǒng)內(nèi)部數(shù)據(jù)對象524.1 $Year534.2 $Month534.3 $Day534.4 $Hour534.5 $Minute544.6 $Second544.7 $Week544.8 $Date544.9 $Time554.10 $Timer554.11 $RunTime554.12 $PageNum554.13 $User
3、Name56第五章 MCGS系統(tǒng)內(nèi)部函數(shù)575.1 數(shù)學函數(shù)575.2 字符操作函數(shù)595.3 窗口操作函數(shù)615.4 設備操作函數(shù)625.5 策略操作函數(shù)635.6 事件操作函數(shù)645.7 報警操作函數(shù)645.8 存盤操作函數(shù)675.9 用戶權(quán)限操作函數(shù)705.10 系統(tǒng)操作函數(shù)71第六章 MCGS中提供的對象2056.1 實時數(shù)據(jù)庫對象2056.2 存盤服務對象223第一章 MCGS的可擴充性1.1 概述MCGS組態(tài)軟件是一套功能豐富、簡單易用的組態(tài)軟件,大部分工程師都可以很容易的使用這套組態(tài)軟件來完成一個完整的工程項目。但是,當用戶熟練的掌握了這套組態(tài)軟件以后,用戶必然會尋求在這套組態(tài)軟
4、件上進一步開發(fā)的能力。以實現(xiàn)有自己風格的界面、自己設計的控制算法和與自己硬件相匹配的驅(qū)動程序。其他一些長期使用Visual Basic、C+、Delphi的高級工程開發(fā)人員,為了充分利用自己的編程特長和已有的程序積累,也希望能夠把自己編寫的程序裝配到MCGS組態(tài)軟件中。大部分面向工程應用的工程人員,雖然沒有時間和精力開發(fā)自己的專有模塊,但是,卻希望能夠從MCGS開發(fā)組或第三方的專業(yè)、業(yè)余開發(fā)者那里獲得為自己定制的特殊模塊,并且能夠很方便的裝配到現(xiàn)有的MCGS組態(tài)軟件上。而對硬件開發(fā)商和一些高級的開發(fā)人員,都希望能夠開發(fā)出自己的設備驅(qū)動模塊和專業(yè)化、行業(yè)化的模塊以充分利用MCGS軟件的組態(tài)功能,
5、當然,對于這些專業(yè)化的高品質(zhì)模塊,位于工程一線的工程人員也是具有非同一般的興趣的。為了滿足用戶的這些要求,MCGS提供一套可擴充的接口規(guī)范和配套的高級開發(fā)工具包。使用接口規(guī)范和工具包開發(fā)出來的擴充構(gòu)件,具有很優(yōu)越的特點:l 安全保密。擴充構(gòu)件是編譯成二進制代碼的,可以很好的保護您的工作。非法用戶不可能通過反編譯你的擴充構(gòu)件來獲得你獨有的設備驅(qū)動構(gòu)件、特殊的運算構(gòu)件和特殊的窗口界面。你更可以使用擴充構(gòu)件來進行自己的加密,以防止你制作的工程被任意拷貝,保護你自己的利益。l 簡單快速。MCGS組態(tài)軟件高級開發(fā)包中提供了常用的數(shù)據(jù)后處理構(gòu)件源代碼。初級用戶可以直接使用這些數(shù)據(jù)后處理構(gòu)件,但高級用戶則可
6、以修改這些構(gòu)件的源代碼,以滿足自己特殊的要求。眾所周知,工控工程的數(shù)據(jù)后處理部分具有各自不同的要求,因此一般的組態(tài)軟件,都要求用戶自己使用例如Excel、Access等軟件來完成自己的特殊的后處理。但是MCGS組態(tài)軟件除了可以用類似的方法處理外,還提供了另外一種不同的處理方法。那就是高級用戶可以修改MCGS組態(tài)軟件高級開發(fā)工具包中所提供的后處理構(gòu)件源代碼,然后生成自己的擴充構(gòu)件,裝配到MCGS組態(tài)軟件上,就可以組成自己獨有的后處理系統(tǒng)。l 性能優(yōu)異。使用這種方法開發(fā)出來的MCGS組態(tài)軟件的擴充構(gòu)件具有很高的速度和性能。據(jù)微軟公司測試,使用Visual C+軟件開發(fā)出來的程序,只比使用Visua
7、l Basic開發(fā)出來的速度高百分之十,有時甚至還低于Visual Basic。而使用Visual Basic開發(fā)的方便性和易用性又是Visual C+所遠遠不能比擬的。在編寫MCGS組態(tài)軟件的擴充構(gòu)件時,Visual Basic確實是一種最佳選擇。l 任務明確。MCGS的這種擴充構(gòu)件具有清晰的結(jié)構(gòu),你完全可以向MCGS組態(tài)軟件的開發(fā)組或第三方的開發(fā)人員提出要求,為你編寫一個定制的擴充構(gòu)件。而不會存在功能糾纏不清,任務確定不明的問題。MCGS組態(tài)軟件的高級開發(fā),基本上是基于微軟公司的OLE標準,利用了最新的ActiveX技術(shù)。這種新技術(shù)保證能夠方便地使用當前各種先進的開發(fā)工具來開發(fā)自己的擴充構(gòu)
8、件。如:Visual Basic、Visual C+以及其它公司的各種編程軟件也可以方便地開發(fā)MCGS組態(tài)軟件的擴充構(gòu)件。但是,MCGS為使用微軟公司的Visual Basic準備了豐富的樣例程序和功能強大的高級開發(fā)向?qū)?。這個高級開發(fā)向?qū)Э梢詭椭愫芊奖愕纳筛鞣N擴充構(gòu)件的框架結(jié)構(gòu),使你能夠快速的進入自己的編程工作。在MCGS組態(tài)軟件高級開發(fā)工具包中,還提供了給開發(fā)員使用的一個源代碼級調(diào)試程序。因此,MCGS強烈建議使用微軟公司的Visual Basic軟件來開發(fā)MCGS的擴充構(gòu)件。在本書中,主要介紹如何使用Visual Basic來開發(fā)MCGS組態(tài)軟件擴充構(gòu)件。但由于它是基于OLE技術(shù)標準的
9、,所以如果你能夠熟練地使用Visual C+、Delphi等軟件,你也可以按照本書中給出的OLE界面標準,來制作自己的組態(tài)軟件擴充構(gòu)件。為了能夠使用MCGS組態(tài)軟件高級開發(fā)工具包,你應該具有如下條件:l 硬件方面:必須具有Pentium以上的CPU,以及十六兆以上的內(nèi)存。l 軟件方面:應使用微軟的Windows95或WindowNT 4.0操作系統(tǒng),安裝了微軟的Visual Basic 6.0專業(yè)版或企業(yè)版。還應安裝了MCGS光盤上的MCGS組態(tài)軟件和MCGS組態(tài)軟件高級開發(fā)工具包。使用MCGS組態(tài)軟件高級開發(fā)工具包和微軟Visual Basic軟件來開發(fā)MCGS組態(tài)軟件擴充構(gòu)件,要求你應該大
10、致了解Visual Basic軟件的功能和使用方法。如果你對Visual Basic軟件不太了解,那麼就應該首先學習和了解一下Visual Basic軟件。我們建議采用如下的方法進行學習:首先,你應該仔細閱讀Visual Basic聯(lián)機手冊這本書中的“程序員指南”這一章。其次,你應該仔細讀懂Visual Basic安裝后附帶的三到四個例子,這些例子安裝在Visual Basic目錄下的Samples目錄中。在這期間你可參考和閱讀“程序員指南”這一章中的“VB基礎”這一節(jié)中的有關菜單、窗體、構(gòu)件等的描述。通過大約經(jīng)過一個星期的學習,你就可以在MCGS組態(tài)軟件高級開發(fā)包中的高級開發(fā)向?qū)У膸椭?,?/p>
11、作一些你自己的簡單的擴充構(gòu)件。也可以從高級開發(fā)包中的樣例程序出發(fā),通過修改相應的部分,來生成自己的擴充構(gòu)件。MCGS組態(tài)軟件的可擴充性主要有以下幾個方面組成:l 掛接定制的設備驅(qū)動構(gòu)件。l 掛接定制的功能構(gòu)件。l 在其它應用程序中通過OLE直接操作MCGS所提供的對象。l 通過DDE連接,建立MCGS和其它應用程序間的數(shù)據(jù)傳遞。MCGS可擴充構(gòu)件的提出和設計都經(jīng)過了長期的工程實踐的檢驗和考慮,能夠確保實現(xiàn)工程進一步開發(fā)中的所有任務,而且具有結(jié)構(gòu)簡單、功能齊備的特點。1.2 可擴充的設備驅(qū)動構(gòu)件可擴充的設備驅(qū)動構(gòu)件能實現(xiàn)多種設備驅(qū)動的方式。你可以使用獨立的設備驅(qū)動構(gòu)件形式,如:A/D、D/A板采
12、集驅(qū)動構(gòu)件。也可以使用父子設備驅(qū)動結(jié)構(gòu)形式,如:使用串口為父設備,使用掛接在串口上的各個PLC為子設備。這已經(jīng)涵蓋工控工程中常用的板卡采集、現(xiàn)場總線等等設備硬件連接模式。在設備驅(qū)動構(gòu)件中,你可以使用查詢的工作方式,查詢的周期從十毫秒到任意長的時間。也可以使用中斷的方式,來高效完成設備驅(qū)動的任務。尤其在使用串口等低速率傳送的設備時,使用中斷方式來采集數(shù)據(jù),可以充分利用等待串口通訊的時間來完成諸如圖形動畫等其它工作,以保證動畫的平滑運動和界面反應的靈敏性。在使用板卡采集的時候,由于板卡采集速度較快,而且設備驅(qū)動運行都處在各自獨立的線程內(nèi),一般都采用查詢采集的方式來處理設備驅(qū)動的工作。在設備驅(qū)動構(gòu)件
13、中,你還可以實現(xiàn)設備熱更換的功能。MCGS組態(tài)軟件可以從設備驅(qū)動構(gòu)件的返回值中得到設備運行狀態(tài)的,對于有錯誤的設備,MCGS組態(tài)軟件將自動停止其采集,但是,每隔十個采集周期,MCGS組態(tài)軟件將自動重新驅(qū)動設備驅(qū)動構(gòu)件一次,再重新確定設備驅(qū)動構(gòu)件的工作狀態(tài)。因此設備驅(qū)動構(gòu)件可以利用這個功能。在被驅(qū)動采集時,如果當前設備的上一次工作狀態(tài)測試為設備失效,這時就可以重新測試工作狀態(tài),如果工作狀態(tài)已經(jīng)正常,就可以向MCGS組態(tài)軟件返回工作狀態(tài)正確的返回值,使MCGS組態(tài)軟件重新開始正常設備驅(qū)動采集。準備了這樣的功能后,在父子設備采集中,就可以動態(tài)的卸載和掛接子設備。MCGS組態(tài)軟件會自動在子設備卸載時自
14、動暫停設備采集,在子設備掛接時自動開始設備采集。設備驅(qū)動構(gòu)件的概念還可以擴充到所有的高可靠性要求、數(shù)據(jù)輸入輸出、執(zhí)行命令等任務方面。在MCGS組態(tài)軟件中,就實現(xiàn)了一個使用網(wǎng)絡在兩臺計算機之間共享數(shù)據(jù)對象的設備驅(qū)動構(gòu)件。實際上,像網(wǎng)絡數(shù)據(jù)庫、多臺計算機、各個程序間的通訊等等類似的任務,都可以使用設備驅(qū)動構(gòu)件的方法來完成。本手冊的第十九章專門講述開發(fā)MCGS設備驅(qū)動構(gòu)件的具體方法和步驟,請參閱。1.3 可擴充的功能構(gòu)件可擴充的功能構(gòu)件主要用于實現(xiàn)用戶定制的和用戶特殊的功能模式。如參數(shù)出入窗口、特殊的操作畫面、特殊的數(shù)據(jù)處理等等。功能構(gòu)件提供了一個使用戶可以實現(xiàn)自己獨有的人機界面的手段,可以完成特殊
15、的用戶交互的工作。并且,可以完成一些MCGS組態(tài)軟件所不適宜完成的工作。如體現(xiàn)事務性操作的任務,象填寫輸入表單,填寫發(fā)票等任務需要填好后一次提交,要么所有修改全部完成,要么所有修改被全部退回,這種任務就與MCGS組態(tài)軟件所運行的實時監(jiān)控模式不一致,這種任務就適宜于使用功能構(gòu)件來完成。還有一些任務,諸如從存盤文件中恢復各個變量的設定值,或選定一組設定值,也可以在功能構(gòu)件中通過讀取存盤文件中的數(shù)據(jù),并用MCGS組態(tài)軟件的自動化功能寫入MCGS組態(tài)軟件中的各個變量來完成。MCGS系統(tǒng)的報警信息瀏覽、存盤數(shù)據(jù)瀏覽、存盤數(shù)據(jù)提取等部分的功能就是用Visual Basic6.0來編程實現(xiàn)的功能構(gòu)件,并且隨
16、系統(tǒng)提供了部分源代碼,目的是因為這幾個部分的靈活性比較大,用戶的需求也各不一樣,這樣可方便用戶在這些源代碼的基礎上,快速修改完成自己需要的功能。本手冊的第二十章專門講述開發(fā)MCGS功能構(gòu)件的具體方法和步驟,請參閱。1.4 MCGS實時數(shù)據(jù)庫對象實時數(shù)據(jù)庫是MCGS的核心,MCGS把整個實時數(shù)據(jù)庫作為一個對象封裝起來,提供一系列的方法和屬性,使外部程序通過這些方法和屬性能對MCGS進行各種操作。MCGS運行起來后,實時數(shù)據(jù)庫對象被暴露出來,在其它應用程序中,通過OLE自動化操作,就可取到實時數(shù)據(jù)庫對象,從而做到在外部應用程序直接操作MCGS的目的。注意:MCGS分為組態(tài)環(huán)境和運行環(huán)境兩個部分,每
17、個部分作為一個獨立的整體都有一個對應的實時數(shù)據(jù)庫對象,兩個對象的方法和屬性都相同,只是有些方法在不同的對象內(nèi)的表現(xiàn)不同,如CreateNewData方法在組態(tài)環(huán)境的實時數(shù)據(jù)庫對象中是創(chuàng)建一個新的數(shù)據(jù)對象,而在運行環(huán)境的實時數(shù)據(jù)庫對象中該方法不進行任何操作。因此,在實際應用中,用戶要根據(jù)需要選擇是對哪個實時數(shù)據(jù)庫對象進行操作。注意:MCGS的實時數(shù)據(jù)庫對象及其對應的屬性和方法僅供擴充構(gòu)件和外部應用程序在編程時使用,在MCGS內(nèi)(腳本程序和表達式中)不能直接使用。實際上,實時數(shù)據(jù)庫的大多數(shù)方法在MCGS內(nèi)都提供了對應的內(nèi)部函數(shù),腳本程序和表達式中應使用內(nèi)部函數(shù)完成有關操作。下面列出MCGS實時數(shù)據(jù)
18、庫對象所提供的屬性和方法,關于它們的詳細含義和用法請參閱MCGS參考手冊中的說明。MCGS實時數(shù)據(jù)庫對象的屬性WinVer:當前操作系統(tǒng)的版本標志McgsVer:MCGS的版本號McgsDataNum:當前工程的實時數(shù)據(jù)庫中數(shù)據(jù)對象的個數(shù)McgsStgyNum:當前工程中運行策略的個數(shù)McgsWinNum:當前工程中用戶窗口的個數(shù)McgsDevNum:當前工程中設備構(gòu)件的個數(shù)McgsSetName:當前工程的名稱McgsSaveName:當前工程存盤數(shù)據(jù)庫文件的名稱SvrPackage:存盤服務對象MCGS實時數(shù)據(jù)庫的方法CreateNewData:在實時數(shù)據(jù)庫中產(chǎn)生一個新的數(shù)據(jù)對象GetDa
19、taFromName:通過數(shù)據(jù)對象的名稱取到數(shù)據(jù)對象的其它屬性值GetDataFromID:通過數(shù)據(jù)對象的ID號取到數(shù)據(jù)對象的其它屬性值GetDataName:通過數(shù)據(jù)對象的ID號取到數(shù)據(jù)對象的名稱GetDataType:通過數(shù)據(jù)對象的名稱取到數(shù)據(jù)對象的類型GetDataID:通過數(shù)據(jù)對象的名稱和類型取到數(shù)據(jù)對象的ID號SetDataDlg:調(diào)用顯示組態(tài)環(huán)境中的對象瀏覽對話框GetDbIDFromID:通過數(shù)據(jù)對象ID號讀取數(shù)據(jù)對象在數(shù)據(jù)庫中的存儲位置號GetIDFromDbID:通過數(shù)據(jù)對象在數(shù)據(jù)庫中的存儲位置號讀取數(shù)據(jù)對象的ID號GetAlmDatName:讀取定義有報警信息自動存盤屬性的
20、所有數(shù)據(jù)對象名稱GetSaveDatName:讀取定義有數(shù)據(jù)存盤屬性的所有數(shù)據(jù)對象名稱的集合GetGroupObj:讀組對象的所有成員的ID號GetValueArray:根據(jù)數(shù)據(jù)對象ID號成組讀取多個類型相同的數(shù)據(jù)對象的當前值SetValueArray:根據(jù)數(shù)據(jù)對象ID號成組寫入多個類型相同的數(shù)據(jù)對象的當前值GetValueFromID:根據(jù)數(shù)據(jù)對象的ID號讀取數(shù)據(jù)對象的當前值GetValueFromName:根據(jù)數(shù)據(jù)對象的名稱讀取數(shù)據(jù)對象的當前值SetValueFromID:根據(jù)數(shù)據(jù)對象的ID號寫入數(shù)據(jù)對象的當前值SetValueFromName:根據(jù)數(shù)據(jù)對象的名稱寫入數(shù)據(jù)對象的當前值Get
21、DeviceName:根據(jù)序列號讀取設備構(gòu)件的名稱GetDeviceState:讀取設備構(gòu)件的當前工作狀態(tài)SetDevice:對指定的設備進行操作GetWindowName:根據(jù)序列號讀取用戶窗口的名稱GetWindowState:讀取指定用戶窗口的狀態(tài)SetWindow:對指定的用戶窗口進行操作GetStgyName:根據(jù)序列號讀取運行策略的名稱SetStgy:執(zhí)行指定運行策略DelAlmDat:刪除數(shù)據(jù)對象對應的報警存儲數(shù)據(jù)。DelAllAlmDat:刪除數(shù)據(jù)對象對應的所有報警存儲數(shù)據(jù)MoveAlmDat:轉(zhuǎn)儲數(shù)據(jù)對象所對應的報警存盤信息SetAlmValue:設置數(shù)據(jù)對象DatName對
22、應的報警限值GetAlmValue:讀取數(shù)據(jù)對象的報警限值DelSaveDat:刪除數(shù)據(jù)對象對應的存盤數(shù)據(jù)DelAllSaveDat:刪除數(shù)據(jù)對象對應的所有存盤數(shù)據(jù)ChangeSaveDat:改變數(shù)據(jù)對象所對應的存盤數(shù)據(jù)的存盤間隔MoveSaveDat:轉(zhuǎn)儲數(shù)據(jù)對象所對應的存盤數(shù)據(jù)SaveData:把數(shù)據(jù)對象對應的當前值存入存盤數(shù)據(jù)庫中SaveDataInit:把數(shù)據(jù)對象的當前值作為初試值存入組態(tài)結(jié)果數(shù)據(jù)中作為初試值1.5 MCGS存盤服務對象MCGS提供有一個存盤服務對象,用于設備驅(qū)動構(gòu)件和功能構(gòu)件保存構(gòu)件內(nèi)部需要保存的數(shù)據(jù)。在構(gòu)件中,通過操作該對象的方法來保存和讀取數(shù)據(jù),而數(shù)據(jù)具體放在什么
23、地方由MCGS來管理(MCGS把這些數(shù)據(jù)和構(gòu)件的其它屬性一起保存在組態(tài)結(jié)果數(shù)據(jù)庫中)。注意:MCGS把存盤服務對象作為一個參數(shù)通過構(gòu)件的接口傳送到設備驅(qū)動構(gòu)件和功能構(gòu)件內(nèi),供構(gòu)件保存數(shù)據(jù)時使用。下面詳細列出存盤服務對象所提供方法:方法:SetStartPos方法用途:設置存儲數(shù)據(jù)的操作方式。使用范圍:可用于組態(tài)環(huán)境和運行環(huán)境。語法形式:SetStartPos( Byval Flag as Long ) as Long返 回 值:=0:調(diào)用正常,<>0:調(diào)用不正常。參數(shù)說明:Flag,長整型,操作標志,具體含義如下:=0:設置對數(shù)據(jù)的操作為讀模式,使得GetDat從起始位置開始,順序
24、讀取數(shù)據(jù);=1:設置對數(shù)據(jù)的操作為寫模式,使得PutDat從起始位置開始,順序把數(shù)據(jù)存入。方法:GetDat方法用途:讀取存儲在MCGS內(nèi)的數(shù)據(jù)。使用范圍:可用于組態(tài)環(huán)境和運行環(huán)境。語法形式:GetDat( Value as Variant ) as Long返 回 值:=0:調(diào)用正常,<>0:調(diào)用不正常。參數(shù)說明:Value,Variant型,返回讀取的值,也可以使用具體的數(shù)據(jù)類型和數(shù)組來返回數(shù)據(jù)。方法:PutDat方法用途:把數(shù)據(jù)存入到MCGS內(nèi)。使用范圍:可用于組態(tài)環(huán)境和運行環(huán)境。語法形式:PutDat( Value as Variant ) as Long返 回 值:=0:
25、調(diào)用正常,<>0:調(diào)用不正常。參數(shù)說明:Value,Variant型,要存入的值,也可以使用具體的數(shù)據(jù)類型和數(shù)組來存入數(shù)據(jù)。MCGS存盤服務對象使得在設備驅(qū)動構(gòu)件和功能構(gòu)件中,能使用“流化”的方式來編程實現(xiàn)保存和讀取存盤數(shù)據(jù),GetDat和PutDat的使用一定要配對。如在某接口中編寫的保存數(shù)據(jù)代碼如下:dim I as long, j as long, msg as string,Dat(10) as singleSaveObj. SetStartPos 1SaveObj.PutDat ISaveObj.PutDat jSaveObj.PutDat msgSaveObj.PutD
26、at Dat則對應的讀取數(shù)據(jù)的代碼應如下:dim I as long, j as long, msg as string,Dat(10) as singleSaveObj. SetStartPos 0SaveObj.GetDat ISaveObj.GetDat jSaveObj.GetDat msgSaveObj.GetDat Dat1.6 通過OLE自動化和其它應用程序交互MCGS組態(tài)軟件本身的自動化功能可以幫助用戶在其它應用程序中很方便地操縱MCGS組態(tài)軟件的運行。比如說,用戶可以在一個程序里指揮MCGS運行環(huán)境打開某個窗口、執(zhí)行某個策略、或者向某個設備發(fā)出命令等等?;旧?,在MCGS組態(tài)
27、軟件中用戶腳本程序可以完成的功能也都可以通過MCGS組態(tài)軟件的自動化功能來完成。MCGS把其核心作為一個對象包裝起來,把MCGS的大多數(shù)功能作為對象的屬性和方法暴露出來,使其它的應用程序通過OLE自動化來操作MCGS,在Visual Baisc、Excel、Access和、Delphi中都可以通過OLE自動化來取得MCGS實時數(shù)據(jù)庫對象,編程操作MCGS提供的屬性和方法。在Visual Basic中操作MCGS假定MCGS運行環(huán)境正在運行一個工程,且該工程有20個數(shù)值型數(shù)據(jù)對象,其名稱為Dat01到Dat20。要求用VB編制一個應用程序,該程序的界面如下圖所示,按“從MCGS讀數(shù)據(jù)”按鈕時,能
28、把MCGS中Dat01到Dat10的值讀回顯示在左列文本框內(nèi),按“向MCGS寫數(shù)據(jù)”按鈕時,能把右列文本框內(nèi)輸入的數(shù)據(jù)寫到MCGS的Dat11到Dat20數(shù)據(jù)對象中。Dim DatObj As ObjectPrivate Sub Form_Load() On Error Resume Next Set DatObj = GetObject(, "McgsRun.DataCentre") If Err Then MsgBox ("請先啟動MCGS運行環(huán)境!") End End IfEnd SubPrivate Sub Cmd_Read_Click() Di
29、m msg As String, tt As Variant For i = 1 To 10 msg = "Dat" + Format$(i, "00") DatObj.GetValueFormName msg, tt Txt(i) = Format$(tt) Next iEnd SubPrivate Sub Cmd_Wirte_Click() Dim msg As String, tt As Variant For i = 1 To 10 msg = "Dat" + Format$(i, "00") tt = V
30、al(Txt(i + 10) DatObj.SetValueFormName msg, tt Next iEnd Sub在Assess、Excel中都有對應的VB程序可以編程,實現(xiàn)對MCGS的各種操作,其方法和在Visual Basic中基本相同,可參考上面的代碼進行。1.7 通過DDE和其它應用程序交互MCGS提供了動態(tài)數(shù)據(jù)交換(DDE)方式和其它應用程序進行數(shù)據(jù)交換,不同于OLE自動化操作,DDE方式只能傳遞數(shù)據(jù),不能直接對MCGS進行操作,而且DDE方式數(shù)據(jù)傳遞的速度較慢,可靠性也不如OLE,建議采用OLE來代替DDE。下面舉例說明如何在MCGS和Excel中建立DDE連接,要求在Exc
31、el表單Sheet1第1行到第10行的第一列顯示MCGS數(shù)據(jù)對象Dat01到Dat10的值,把表單Sheet1的第1行到第10行的第二列輸入的值送到MCGS數(shù)據(jù)對象Dat11到Dat20中。要使用DDE和其它應用程序進行交互,首先應在MCGS中進行一些定義工作。在MCGS組態(tài)環(huán)境的“工具”菜單中選取“DDE連接管理”菜單項,彈出如下窗口:在DDE連接管理窗口中,把Dat01到Dat10設置為DDE輸出(選中各數(shù)據(jù)對象對應的DDE輸出選項框);把Dat11到Dat20設置為DDE輸入,同時對服務節(jié)點進行如下配置:l 按“服務節(jié)點配置”按鈕,彈出如下配置窗口l 按“增加”按鈕,彈出如下配置窗口,把
32、服務節(jié)點名設為“Excel表單”,把服務名設為“Excel”,主題名設為“Sheet1”(當把Excel應用軟件作為DDE服務器時,服務名永遠為“Excel”,主題名為對應表單-Sheet的名稱)配置好服務器節(jié)點后,把Dat11到Dat20的連接節(jié)點都設為“Excel表單”,連接項目分別設為R1C2到R10C2。運行Excel,在表單Sheet1的R1C1到R10C1中輸入McgsRun|DataCentre.Dat01到McgsRun|DataCentre.Dat10,這樣就完成了所有的DDE連接設置工作。當進入MCGS運行環(huán)境后,MCGS數(shù)據(jù)對象Dat01到Dat10的值就顯示在Excel
33、的表單Sheet1的第一列中,同時,當改變表單Sheet1的第二列值時,MCGS中數(shù)據(jù)對象Dat11到Dat20的值也隨之而改變。1.8 直接操作MCGS的存盤數(shù)據(jù)庫MCGS運行時的存盤數(shù)據(jù)是保存在標準Access7.0數(shù)據(jù)庫中,所有報警數(shù)據(jù)信息對應存盤數(shù)據(jù)表名為MCGS_AlarmInfo,MCGS組對象對應的存盤數(shù)據(jù)表名為:組對象名稱+“_MCGS”。用戶可以在外部應用程序中直接對MCGS的存盤數(shù)據(jù)庫進行操作,編制獨立的后處理軟件。MCGS的腳本程序中有一個名為“Shell”的內(nèi)部函數(shù),可以啟動一個外部應用程序。通過在MCGS腳本程序中使用Shell函數(shù),可以使外部應用程序和MCGS看起來
34、是一個整體。第二章 開發(fā)MCGS功能構(gòu)件MCGS提供了一套運行策略機制,使用戶能根據(jù)實際應用的需要,對工作流程進行精確的控制。運行策略由不同的策略塊組成,而策略塊又由多個策略行組成,每個策略行分為條件和功能兩個部分,以實現(xiàn)“在什么條件下執(zhí)行什么功能”的機制。MCGS提供了大多數(shù)應用所必須的功能構(gòu)件,同時也提供了一套開放的可擴充接口,允許用戶能根據(jù)自己的需要,定制特定的功能構(gòu)件,達到擴充MCGS功能的要求。本章下面各節(jié)將詳細介紹開發(fā)MCGS功能構(gòu)件的方法和步驟,請在開始之前,先安裝Visual Basic6.0(中文專業(yè)版或企業(yè)版),然后安裝MCGS高級開發(fā)工具包,建議你按下面各節(jié)介紹的方法和步
35、驟來一步一步地學習開發(fā)MCGS功能構(gòu)件。2.1 功能構(gòu)件的實現(xiàn)方法MCGS用Active DLL構(gòu)件的方式來實現(xiàn)功能構(gòu)件,通過規(guī)范的OLE接口掛接到MCGS中,使其構(gòu)成一個整體。由于功能構(gòu)件和MCGS運行在同一個進程內(nèi),故功能構(gòu)件的運行速度快,可靠性高,即使構(gòu)件本身有問題,也不會影響到MCGS的可靠運行。同時,OLE是一個可擴充的開放標準,用于實現(xiàn)不同軟件之間的相互操作,而不管軟件本身是使用什么編程語言。因此,只要遵守MCGS的接口規(guī)范,可以使用VB、VC、Delphi等語言來編制MCGS的功能構(gòu)件。鑒于Visual Basic通用性和簡單性,建議使用VB來開發(fā)MCGS的設備驅(qū)動程序,本書也只
36、講解使用VB進行開發(fā)的技術(shù)問題。由于VB6.0以上版本是以二進制碼來編譯執(zhí)行程序,其運行速度已接近或超過VC,完全能滿足功能構(gòu)件所需的速度要求。MCGS提供的大多數(shù)功能構(gòu)件就是使用VB來編程的,開發(fā)工具包中提供了部分功能構(gòu)件的源代碼,可在其基礎上修改,實現(xiàn)比MCGS功能更完善的功能構(gòu)件。2.2 功能構(gòu)件接口規(guī)范MCGS設備構(gòu)件的實現(xiàn)方法和原理與標準VB的ActiveDLL完全一致,但MCGS規(guī)定了一套接口規(guī)范,只有遵守這些接口規(guī)范的ActiveDLL才能用作MCGS的功能構(gòu)件。MCGS功能構(gòu)件必須具有如下4個接口:接口:SvrMenuCommand組態(tài)時調(diào)用,執(zhí)行菜單命令接口:SvrStgyS
37、etOperator組態(tài)時調(diào)用,設置構(gòu)件的屬性接口:SvrStgyRunOperator 運行時調(diào)用,執(zhí)行構(gòu)件的功能接口:SvrCheck 組態(tài)中,編譯查錯時時調(diào)用開發(fā)MCGS功能構(gòu)件的過程,實際上就是根據(jù)功能構(gòu)件的特性和含義來完成4個接口功能的編程過程。下面詳細講述各個接口的含義和用法:接口:SvrMenuCommand接口作用:本接口用于在MCGS組態(tài)環(huán)境中增加一個用戶自定義的菜單項。本接口在組態(tài)環(huán)境裝載時被MCGS組態(tài)環(huán)境調(diào)用,檢查是否有有對應的菜單要求,如有,在MCGS的“工具“菜單中增加一菜單項。組態(tài)環(huán)境運行時,當用戶選取增加的菜單項時,也調(diào)用本接口。語法形式:SvrMenuComm
38、and(strName As String, bQuery As Long, DatObj As Object) As Long返 回 值:=0,調(diào)用成功;=1調(diào)用失敗。參數(shù)說明:strName,返回用于顯示在“工具“菜單中的菜單項的名稱;如為空,表示本功能構(gòu)件不增加菜單。bQuery,MCGS初試化時調(diào)用本接口時,把本參數(shù)的值設置為1,在菜單中調(diào)用本接口時,把本參數(shù)的值設置為0;DatObj,MCGS實時數(shù)據(jù)庫數(shù)據(jù)對象。接口:SvrStgySetOperator接口作用:本接口的作用是讀取功能構(gòu)件的類型名稱、注釋和所對應的圖標資源的ID號以及組態(tài)時設置構(gòu)件的屬性時調(diào)用。語法形式:SvrStg
39、ySetOperator(strName As String, strNotes As String, iIcon As Long, DatObj As Object, SaveObj As Object, bQuery As Long) As Long返 回 值:=0,調(diào)用成功;=1調(diào)用失敗。參數(shù)說明:strName,返回功能構(gòu)件的類型名,顯示在功能構(gòu)件列表框中;strNotes ,返回功能構(gòu)件的注釋,顯示在策略行的右邊;iIcon ,返回功能構(gòu)件所對應的圖標資源的ID號,該圖標顯示在策略行的功能構(gòu)件塊上。如ID=0,表示沒有對應的圖標,MCGS顯示缺省圖標;bQuery,MCGS初試化時調(diào)
40、用本接口時,把本參數(shù)的值設置為1,在設置構(gòu)件屬性調(diào)用本接口時,把本參數(shù)的值設置為0;DatObj,MCGS實時數(shù)據(jù)庫數(shù)據(jù)對象。SavObj ,存盤服務對象,接口程序中通過該對象來保存和讀取數(shù)據(jù)。接口:SvrStgyRunOperator接口作用:本接口在運行環(huán)境中,當需要執(zhí)行本構(gòu)件的功能時調(diào)用。語法形式:SvrStgyRunOperator(DatObj As Object, SaveObj As Object) As Long返 回 值:=0,調(diào)用成功;=1調(diào)用失敗。參數(shù)說明:DatObj,MCGS實時數(shù)據(jù)庫數(shù)據(jù)對象;SavObj ,存盤服務對象,接口程序中通過該對象來保存和讀取數(shù)據(jù)。接口:
41、SvrCheck接口作用:本接口在組態(tài)環(huán)境中,當MCGS進行查錯和編譯調(diào)用。語法形式:SvrCheck(DatObj As Object, CheckFlag As Long) As Long返 回 值:=0,調(diào)用成功;=1調(diào)用失敗。參數(shù)說明:DatObj,MCGS實時數(shù)據(jù)庫數(shù)據(jù)對象;CheckFlag,標志位。2.3 利用開發(fā)向?qū)煽蚣躆CGS提供了一個高級開發(fā)工具包,能快速為用戶生成功能構(gòu)件的源程序框架,在此基礎上編程既快速,可減少出錯的可能性。請按如下步驟來生成功能構(gòu)件的框架:確保MCGS的高級開發(fā)工具包已安裝正確;啟動Visual Basic6.0(中文專業(yè)版或企業(yè)版);選擇“外接程
42、序”菜單,單擊該菜單下的MCGS開發(fā)向?qū)Р藛雾?;彈出開發(fā)向?qū)Т翱诤螅础跋乱徊健卑粹o,彈出如下圖所示窗口:選擇擴展構(gòu)件的類型為運行策略功能構(gòu)件,按“下一步”按鈕,彈出如下圖所示的窗口:設置構(gòu)件工程名為“MyDLL”,構(gòu)件類型名為“我的構(gòu)件”。構(gòu)件工程名為功能構(gòu)件在VB下源程序的工程名,編譯生成的Active DLL構(gòu)件的名稱為MyDLL.DLL。構(gòu)件類型名用于標識對應的構(gòu)件,最后可顯示在MCGS的設備工具箱中。按“下一步”按鈕,出現(xiàn)如下圖所示的窗口,設置生成目錄和輸出目錄都為“D:AddIn”,使開發(fā)向?qū)ё詣由傻脑闯绦蚝途幾g生成的構(gòu)件都位于同一目錄下。在一此按“下一步”按鈕,然后按“完成”按
43、鈕,MCGS即開始自動生成功能構(gòu)件的源程序框架。開發(fā)向?qū)瓿晒ぷ骱?,自動生成一個名位“MyDLL”的工程組,如下圖所示,在VB的工程組窗口中可以看到該工程組包含如下二個VB工程:MyDLL工程對應于設備驅(qū)動構(gòu)件,該工程包含一個類模塊和一個程序模塊。類模塊AddInObj完成了功能構(gòu)件所需的所有接口。TestDLL工程只用于在VB環(huán)境下對功能構(gòu)件進行調(diào)試,該工程包含兩個窗體和兩個程序模塊,在實際編程時,無需對該工程進行任何修改工作。MCGS開發(fā)向?qū)傻乃性闯绦虼a和編譯生成的輸出文件都放在D:AddIn目錄下。注意:MCGS開發(fā)向?qū)е皇巧蓸?gòu)件的源程序框架,沒有任何具體的功能,要完成特定的功
44、能,還需要在此基礎上,針對具體要求進行進一步的編程和調(diào)試工作。2.4 利用樣例程序移植MCGS把部分功能驅(qū)動構(gòu)件的源程序代碼都隨系統(tǒng)一起提供,在實際應用中,開發(fā)定制自己的功能構(gòu)件的最好方法就是在MCGS提供的源程序代碼的基礎上進行。由于OLE技術(shù)本身的復雜性,建議按照本節(jié)給定的方法和步驟來進行你的開發(fā)工作,避免產(chǎn)生不可預料的錯誤。如果你能嚴格按照本節(jié)的步驟進行開發(fā)工作,則可省去對Active DLL編程技術(shù)及有關概念的學習和了解,直接集中精力實現(xiàn)功能構(gòu)件的功能。從MCGS高級開發(fā)工具包中找到你所需的樣例源程序代碼,假定安裝開發(fā)工具包時所選的安裝目錄為D:Mcgssdk,則源程序位于D:Mcgs
45、sdksamplesAddIn目錄下,而且按功能構(gòu)件的名稱來命名對應的目錄,如:報警數(shù)據(jù)處理構(gòu)件源代碼的目錄為AlmAddIn。為方便說明,下面各步驟中假定選取報警數(shù)據(jù)處理構(gòu)件為樣例程序。建立一個新目錄:D:MyDLL,把ALmAddIn目錄內(nèi)的所有內(nèi)容拷貝到D:MyDLL目錄下。新功能構(gòu)件的源程序?qū)⑽挥诒灸夸浵?。每個功能構(gòu)件源代碼中都一個后綴為“.vbg”的工程組文件,本例中為TestDLL.vbg。啟動Visual Basic6.0,打開該文件。如下圖所示,在VB工程組窗口中,包含有二個工程:AlmAddIn、 TestDLL。先在工程組窗口中選中工程AlmAddIn(被選中的工程下面顯示
46、為藍條),用鼠標右鍵彈出下拉菜單或從“工程”菜單中,單擊“AlmAddIn屬性”,打開該工程的屬性設置窗口。如下圖所示,把“通用”和“生成”兩個屬性頁中的AlmAddIn改為MyDLL(修改工程名稱)。在“部件”屬性頁中,把“版本兼容”中的選項設置成“不兼容”。修改完成后,按“確認”按鈕返回。注意:對工程屬性頁中的其它屬性不要做任何修改。在VB的“文件”菜單中,單擊“AlmAddIn.vbp另存為”菜單,把工程另存為MyLL.vbp。在VB的“文件”菜單中,單擊“生成AlmAddIn.dll”菜單,彈出“生成工程”窗口,對工程繼續(xù)編譯,把要生成的文件名改為“MyDLL.dll”,按“確定”按鈕
47、開始編譯。編譯完成后,打開工程MyDLL的屬性窗口,如下圖所示,在“部件”屬性頁中,把“版本兼容”中的選項設置成“二進制兼容”,同時把其下面的輸入框中的內(nèi)容由AlmAddIn.dll改為MyDLL.dll。按“確認”按鈕返回打開類模塊AddInObj的編程窗口,對接口SvrStgySetOperator進行如下修改:strName=”我的功能構(gòu)件”strNotes=”我的功能構(gòu)件”選中工程TestDLL,在VB“工程“菜單中,單擊“引用”菜單項,把工程TestDLL對于AlmAddIn的引用取消,改為對工程MyDLL的引用。上述步驟完成后,把整個工程組存盤,就完成了開始移植前所有必須的準備工作
48、。接下來,你就可以在源程序的基礎上進行修改,實現(xiàn)你自己特定功能的設備構(gòu)件。對通訊子設備,如歐姆龍PLC對應的設備驅(qū)動程序進行移植時,基本方法和步驟上面所述相同。2.5 測試和掛接功能構(gòu)件MCGS為功能構(gòu)件提供了一套在VB環(huán)境下進行在線調(diào)試的運行機制,使用戶能隨時對所做的修改進行測試調(diào)試、檢驗其正確性,其簡單程度和方便性是其它組態(tài)軟件系統(tǒng)所無法比擬的。MCGS的這一機制,使得大多數(shù)普通工程用戶都能動手編制自己的功能構(gòu)件。使用MCGS開發(fā)向?qū)傻某绦蚩蚣芑蛳到y(tǒng)提供的樣例源代碼中,都包含有一個用于在VB下進行測試的工程-TestDLL,通過該工程模擬MCGS的工作狀態(tài),直接調(diào)用功能構(gòu)件的接口函數(shù),
49、從而做到對構(gòu)件的每個接口函數(shù)在VB源代碼一級進行測試,實際應用中不要對該工程進行任何修改工作。下面詳細介紹測試和掛接設備驅(qū)動構(gòu)件的方法和步驟:按照前節(jié)所講述的步驟,用開發(fā)向?qū)梢粋€設備驅(qū)動構(gòu)件的框架,生成的源程序所在目錄為-D:AddIn,構(gòu)件工程名為-MyDLL,構(gòu)件的類型名為-我的功能構(gòu)件。完成自動生成后,在VB的工程組窗口中會看到二個工程:MyDLL和TestDLL。啟動MCGS的組態(tài)環(huán)境,并打開或新建一個MCGS工程。注意:進行在線調(diào)試時,必須啟動MCGS,且要保證MCGS中有一個打開的工程,否則,在VB中無法進行在線調(diào)式。在VB環(huán)境下,按F5鍵運行工程組,出現(xiàn)如下圖所示的調(diào)試窗口,
50、該窗口中的三個按鈕分別用于調(diào)用組態(tài)環(huán)境接口和運行環(huán)境接口和菜單調(diào)用接口;中間的輸入框用來顯示功能構(gòu)件的類型名稱。按不同的按鈕可對功能構(gòu)件的接口進行測試,根據(jù)構(gòu)件所需的功能,不斷進行調(diào)試測試,直到完成所有工作和沒有錯誤產(chǎn)生為止。完成所有的編程調(diào)試工作以后,把工程MyDLL重新編譯一遍,生成最后可以使用的Active dll文件:MyDLL.dll,把這個文件拷貝到目錄D:MCGSProgram AddIns下(假定MCGS系統(tǒng)安裝時的目錄為D:Mcgs。注意:編譯和拷貝功能構(gòu)件的文件時,一定要先退出MCGS系統(tǒng)),同時要修改AddIns目錄下的AddIns.ini文件,在該文件中增加一行:MyD
51、LL.dll。完成上述步驟后,就完成了用戶功能構(gòu)件的編制、調(diào)試和掛接工作,下面介紹如何在MCGS系統(tǒng)下使用定制的功能構(gòu)件。啟動MCGS組態(tài)環(huán)境,在“工具”菜單下,將會顯示出“我的菜單項”一項,選取該菜單項,MCGS將調(diào)用功能構(gòu)件的菜單接口,顯示對應的窗口(如不需要菜單項,則應把功能構(gòu)件的SvrMenuCommand接口中的所有代碼去掉)。打開一個運行策略的組態(tài)窗口,在運行策略功能構(gòu)件箱內(nèi),將回顯示出“我的功能構(gòu)件”一項。把該構(gòu)件選入到策略行中,用鼠標雙擊該構(gòu)件,MCGS調(diào)用構(gòu)件的組態(tài)環(huán)境接口,以便用戶在組態(tài)環(huán)境中對構(gòu)件的屬性進行設置。進入運行環(huán)境后,當組態(tài)環(huán)境組態(tài)的對應策略行被執(zhí)行時,MCGS
52、調(diào)用構(gòu)件的運行接口,執(zhí)行構(gòu)件所實現(xiàn)的功能。第三章 開發(fā)MCGS設備驅(qū)動雖然MCGS提供了大多數(shù)常用設備的驅(qū)動程序,但在實際應用中,或因為所用設備的特殊性、或因為實際工程的需要,MCGS所提供的設備驅(qū)動程序總會有些不盡人意。為解決這些問題,MCGS提供了一套規(guī)范的設備驅(qū)動程序接口,允許用戶根據(jù)自己的需要來定制設備驅(qū)動程序。在學習完本章之前,你可能會覺得開發(fā)設備驅(qū)動程序是件難事,而編制能在Win95和WinNT下能同時運行的設備驅(qū)動程序更是不可思議。MCGS設備驅(qū)動的開發(fā)既不需用復雜的匯編語言,也不需用難懂的C語言,而只須使用簡單易用、大多數(shù)工程人員都會使用的Visual Basic。MCGS把和
53、操作系統(tǒng)底層打交道的內(nèi)容全部包裝起來,以函數(shù)調(diào)用的方式提供給你,同時,MCGS的高級開發(fā)向?qū)転槟阕詣由稍O備驅(qū)動程序的框架,MCGS大多數(shù)設備驅(qū)動程序的源程序代碼也都隨系統(tǒng)提供給你。只要你會VB,熟悉你所使用的硬件設備,你就完全可以按照你自己的需要來開發(fā)定制你自己的設備驅(qū)動程序。本章下面各節(jié)將詳細介紹開發(fā)設備驅(qū)動程序的方法和步驟,請在開始之前,先安裝Visual Basic6.0(中文專業(yè)版或企業(yè)版),然后安裝MCGS高級開發(fā)工具包,建議你按下面各節(jié)介紹的方法和步驟來一步一步地學習開發(fā)設備驅(qū)動程序。3.1 設備驅(qū)動構(gòu)件的實現(xiàn)方法MCGS用Active DLL構(gòu)件的方式來實現(xiàn)設備驅(qū)動程序,通過
54、規(guī)范的OLE接口掛接到MCGS中,使其構(gòu)成一個整體,所以MCGS把設備驅(qū)動程序叫做設備驅(qū)動構(gòu)件。由于設備驅(qū)動構(gòu)件和MCGS運行在同一個進程內(nèi),故設備構(gòu)件的運行速度快,可靠性高,不存在傳統(tǒng)DDE方式連接設備驅(qū)動時的數(shù)據(jù)流通不暢和數(shù)據(jù)傳輸速度慢等問題。同時,OLE是一個可擴充的開放標準,用于實現(xiàn)不同軟件之間的相互操作,而不管軟件本身是使用什么編程語言。因此,只要遵守MCGS的接口規(guī)范,可以使用VB、VC、Delphi等語言來編制MCGS的設備驅(qū)動程序。鑒于Visual Basic通用性和簡單性,建議使用VB來開發(fā)MCGS的設備驅(qū)動程序,本書也只講解使用VB進行開發(fā)的技術(shù)問題。由于VB6.0以上版本
55、是以二進制碼來編譯執(zhí)行程序,其運行速度已接近或超過VC,完全能滿足設備驅(qū)動構(gòu)件所需的速度要求。MCGS把實際外部設備分為獨立的設備、父設備和子設備三類,獨立的設備是可獨立工作、完成特定數(shù)據(jù)輸入輸出功能的設備,如用于模擬量輸入輸出、數(shù)字量輸入輸出的PC接口卡等;父設備是本身不直接處理數(shù)據(jù)輸入輸出,但起到管理其它設備工作的設備,如串行口設備、IDCN-893的通訊卡等;子設備是本身具有處理數(shù)據(jù)輸入輸出的功能,但只有和對應的父設備一起才構(gòu)成完整工作系統(tǒng)的設備:如PLC設備、帶智能通訊功能的儀器儀表等;不同類型的設備的工作方式有所不同,其對應的設備驅(qū)動程序的處理方法也有所不同。本章只重點介紹獨立設備(
56、PC接口卡)和通訊類子設備設備驅(qū)動程序的開發(fā),如需要進行父設備和其它類型子設備的設備驅(qū)動程序的開發(fā),請和MCGS開發(fā)小組聯(lián)系。3.2 設備驅(qū)動構(gòu)件接口規(guī)范MCGS設備構(gòu)件的實現(xiàn)方法和原理與標準VB的ActiveDLL完全一致,但MCGS規(guī)定了一套接口規(guī)范,只有遵守這些接口規(guī)范的ActiveDLL才能用作MCGS的設備驅(qū)動構(gòu)件。MCGS設備驅(qū)動構(gòu)件必須具有如下5個屬性和8個方法:屬性:DevType標識設備的類型屬性:DevStyle標識設備的類別屬性:DevChannel標識設備的通道個數(shù)屬性:DevBaseIO標識設備所用IO的基地址屬性:DevIONumber標識設備所用IO地址的個數(shù)方法
57、:GetDevName讀取設備構(gòu)件類型名稱方法:GetDevHelp調(diào)用設備構(gòu)件的在線幫助內(nèi)容方法:SetDevPage調(diào)用設備的內(nèi)部屬性頁方法:InitNewDev 初試化設備的初試值方法:GetChlType讀取設備構(gòu)件各通道的數(shù)據(jù)類型和注釋方法:InitDevRun運行時對設備進行初試化工作方法:RunDevCommand執(zhí)行指定的設備命令方法:CollectDevDat定時操作設備,采集或輸出數(shù)據(jù)開發(fā)MCGS設備驅(qū)動的過程,實際上就是根據(jù)設備的特性和含義來完成8個方法功能的編程過程。下面詳細講述各個接口的含義和用法:屬性接口:DevType接口作用:本接口用于Mcgs確定設備構(gòu)件的類型。對獨立的設備構(gòu)件固定為0;對通訊子設備,固定為1。本屬性為只讀屬性。語法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 包工包料施工合同
- 土地估價委托合同
- 三農(nóng)產(chǎn)業(yè)發(fā)展規(guī)劃策略方案
- 尾礦庫施工方案
- 公路設施護欄施工方案
- 店招工程施工方案
- 2025年果蔬罐頭加工項目建議書
- 平頂山古建基礎施工方案
- 《紅樓夢》閱讀題選
- 自然保護區(qū)專項施工方案
- 【消毒供應中心護理人員職業(yè)暴露與安全防護探究5200字(論文)】
- 2025年湖南省邵陽市新寧縣初三第一次聯(lián)考綜合試題含答案
- 2024-2025學年新教材高中地理 第三章 產(chǎn)業(yè)區(qū)位因素 第二節(jié) 工業(yè)區(qū)位因素及其變化(2)教案 新人教版必修2
- 常用焊管規(guī)格表
- 認知心理學:認知科學與你的生活
- 中國文學經(jīng)典導讀智慧樹知到答案2024年華東政法大學
- DL∕T 1860-2018 自動電壓控制試驗技術(shù)導則
- 中國與澳大利亞雙邊貿(mào)易全景圖(附中澳主要進出口產(chǎn)業(yè)數(shù)據(jù))
- 【課件】+現(xiàn)實與理想-西方古典繪畫+課件高中美術(shù)人美版(2019)美術(shù)鑒賞
- 離婚被告辯護詞格式范文
- 2024年歐洲苯乙烯-馬來酸酐共聚物市場主要企業(yè)市場占有率及排名
評論
0/150
提交評論