新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > 監(jiān)控軟件設備驅(qū)動程序的編程與實現(xiàn)

監(jiān)控軟件設備驅(qū)動程序的編程與實現(xiàn)

作者: 時間:2013-12-04 來源:網(wǎng)絡 收藏
M: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 20px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT: 14px/25px 宋體, arial; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  對于那些不需要定時采集的數(shù)據(jù),如設備的量程上下限,或其他一些參數(shù),只有用戶改變了后,才需要重新讀回來,還有一些往設備輸出的參數(shù),也是不定時的,MCGS為這些特殊的情況定義了一個接口函數(shù):PublicFunctionRunDevCommand(DatObjAsObject,ByValCmdAsString)AsLong。在MCGS的腳本程序里執(zhí)行函數(shù)!SetDevice(“子設備名”,6,“帶有參數(shù)的命令名”),MCGS就會調(diào)用RunDevCommand函數(shù),并把“帶參數(shù)的命令”傳給了字符串變量“cmd”。如以天辰PID控制儀為例,用戶想改變儀表的設定值(SV值),我們就可以定義一條這樣的命令,SetValue(dat1,dat2),這時MCGS就把命令傳到了cmd中,cmd=“SetValue(Dat1,Dat2)”。使用字符串函數(shù)把命令中的兩個參數(shù)取出來,兩個參數(shù)的意思是,dat1表是設定在儀表中存放的地址,dat2為要設定的值,獲得了這兩個參數(shù)的值后,就可以根據(jù)協(xié)議的規(guī)定發(fā)送一條設定(SV值)的命令來改變SV值。其他的參數(shù)設定也是類似的。至此設備的驅(qū)動程序就基本完成。

 還有一個接口函數(shù):PublicFunctionGetChlType(DatAsVariant,msgAsVariant)AsLong。其作用就是讀取設備通道數(shù)據(jù)的類型和設備通道類型說明。例如:

  監(jiān)控軟件設備驅(qū)動程序編制原理與實現(xiàn)

  所以每一個程序要做的主要工作是編寫以上三個接口函數(shù)。接口軟件編程流程圖如圖2所示。

  2.2智能儀表類

  智能儀表類包括各種智能儀表和智能模塊。它們必須通過與計算機的串口(通常叫com口)連接才能與計算機進行數(shù)據(jù)通信。串口通信原理圖如圖3所示:

  監(jiān)控軟件設備驅(qū)動程序編制原理與實現(xiàn)

  設備通過計算機的串口,采用各種通信協(xié)議與計算機進行通信。必要的通信參數(shù)有波特率大小,數(shù)據(jù)位長度,停止位位數(shù),有無奇偶校驗等。對于與串口通信有關的設備,必須調(diào)用一個串口父設備,子設備只負責按通信協(xié)議形成設備命令,并把命令放到一個固定的字節(jié)數(shù)組中,然后子設備調(diào)用父設備的幾個通信函數(shù),包括

  監(jiān)控軟件設備驅(qū)動程序編制原理與實現(xiàn)

  其中輸入輸出數(shù)據(jù)或命令都放在數(shù)組OutPutByte()中。串口父設備才真正與計算機的串口打交道。編制串口子程序的原理和格式與編制獨立板卡類程序的原理和格式是一樣的。只不過獨立板卡類設備驅(qū)動程序調(diào)用的是設備核心函數(shù);而串口子設備驅(qū)動程序調(diào)用的是串口父設備通信函數(shù)。

3 接口軟件編程框架

  以下是MCGS設備驅(qū)動程序編程框架。該程序框架用VisualBasic語言編制,對獨立板卡類和智能儀表類設備都適用。用戶在具體編程時只要將程序框架中省略部分補充完整即可。程序編制完成之后,再對其進行“不兼容”和“二進制兼容”兩次編譯。將編譯后得到的“*.dll”文件拷貝到D:\MCGS\Pro-

  監(jiān)控軟件設備驅(qū)動程序編制原理與實現(xiàn)

  



評論


相關推薦

技術專區(qū)

關閉