監控軟件設備驅動(dòng)程序的編程與實(shí)現
0 前言
在專(zhuān)業(yè)監控軟件出現以前,自動(dòng)控制系統集成人員的一個(gè)重要任務(wù)就是編寫(xiě)專(zhuān)門(mén)的系統上位監控程序。但是,在實(shí)際工程中我們發(fā)現:一方面,由于各編程人員的水平參差不齊,許多軟件的功能和可靠性都存在問(wèn)題;另一方面,由于每個(gè)編程人員的編程習慣和編程思路都不同,程序的可讀性和功能的擴展性都比較差。因此,功能強大、實(shí)用面廣的專(zhuān)業(yè)監控軟件就應運而生。如MCGS監控軟件、組態(tài)王控軟件等。由于現場(chǎng)智能儀表、采集板的多種多樣,監控軟件自帶的設備驅動(dòng)程序畢竟有限,因此編制設備驅動(dòng)程序就成了自控系統集成工程師的重要工作之一。
本文以北京昆侖通態(tài)公司開(kāi)發(fā)的MCGS為例來(lái)說(shuō)明監控軟件設備驅動(dòng)程序的一般思路。MCGS是基于Windows95和WindowsNT平臺,為用戶(hù)提供了從數據采集到數據處理、報警處理、流程控制、動(dòng)畫(huà)顯示、報表輸出等解決實(shí)際工程問(wèn)題的完整方案和操作工具。MCGS允許用戶(hù)在VisualBasic中操作MCGS中的對象,提供了一套開(kāi)放的可擴充接口,用戶(hù)可根據自己的需要用VB編制特定的功能構件來(lái)擴充系統的功能。
1接口原理
許多組態(tài)軟件提供了設備驅動(dòng)程序軟件開(kāi)發(fā)包,支持用戶(hù)用VB、VC、Delphi等高級編程語(yǔ)言編制設備驅動(dòng)程序。MCGS組態(tài)軟件驅動(dòng)程序編程原理框圖如圖1所示:
幾乎所有的PLC、智能儀表、采集板卡都提供了驅動(dòng)軟件,有的在說(shuō)明書(shū)中還提供了驅動(dòng)軟件的核心代碼、函數或數據結構。而監控軟件也提供了開(kāi)放性的可擴充接口,一般包括屬性函數、方法函數、IO端口操作函數和串口操作函數等。在運行模式下,監控軟件定時(shí)或在事件激發(fā)時(shí)調用設備驅動(dòng)程序,而設備驅動(dòng)程序根據需要,再調用設備核心函數。
例如,MCGS在組態(tài)模式下按“在線(xiàn)幫助”按鈕就會(huì )調用GetDevHelp接口,顯示設備構件的在線(xiàn)幫助;按“內部屬性”按鈕時(shí)就會(huì )調用SetDevPage接口,顯示設備構件的特定屬性頁(yè)。在運行環(huán)境下,MCGS首先調用一次InitDevRun接口對設備進(jìn)行一些必須的初始化工作。然后MCGS按設定的采集周期調用CollectDevDat接口,從設備采集數據或向設備輸出數據。運行時(shí),當用戶(hù)在腳本程序中調用!SetDevice函數或在運行策略中調用設備操作功能時(shí),MCGS調用RunDevCommand接口,以執行設備的特定功能。
2 編程實(shí)現
常用設備驅動(dòng)程序包括采獨立板卡類(lèi)驅動(dòng)程序和智能儀表類(lèi)驅動(dòng)程序。
2.1獨立板卡類(lèi)
獨立板卡類(lèi)包括模數(A/D)轉換板、數模(D/A)轉換板、開(kāi)關(guān)量輸入輸出板(DI/DO),通信板卡等。它們一般直接插入計算機的總線(xiàn)槽里,通過(guò)ISA或PCI總線(xiàn)擴展槽與計算機進(jìn)行數據通信。每塊板都有一個(gè)基地址范圍為:000H-3FFH,計算機通過(guò)該基地址來(lái)向采集板輸入輸出數據,沒(méi)有通信協(xié)議的概念。
在MCGS組態(tài)軟件運行時(shí),MCGS會(huì )定時(shí)調用接口函數:PublicFunctionCollectDevDat(DatFAsVariant,DatAsVariantmsgAsVariant)AsLong。所以需要定時(shí)采集的數據都通過(guò)這個(gè)接口來(lái)采集,采回來(lái)的數據都放在數組dat中。

評論