<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 監控軟件設備驅動(dòng)程序的編程與實(shí)現

監控軟件設備驅動(dòng)程序的編程與實(shí)現

作者: 時(shí)間:2013-12-04 來(lái)源:網(wǎng)絡(luò ) 收藏
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í)采集的數據,如設備的量程上下限,或其他一些參數,只有用戶(hù)改變了后,才需要重新讀回來(lái),還有一些往設備輸出的參數,也是不定時(shí)的,MCGS為這些特殊的情況定義了一個(gè)接口函數:PublicFunctionRunDevCommand(DatObjAsObject,ByValCmdAsString)AsLong。在MCGS的腳本程序里執行函數!SetDevice(“子設備名”,6,“帶有參數的命令名”),MCGS就會(huì )調用RunDevCommand函數,并把“帶參數的命令”傳給了字符串變量“cmd”。如以天辰PID控制儀為例,用戶(hù)想改變儀表的設定值(SV值),我們就可以定義一條這樣的命令,SetValue(dat1,dat2),這時(shí)MCGS就把命令傳到了cmd中,cmd=“SetValue(Dat1,Dat2)”。使用字符串函數把命令中的兩個(gè)參數取出來(lái),兩個(gè)參數的意思是,dat1表是設定在儀表中存放的地址,dat2為要設定的值,獲得了這兩個(gè)參數的值后,就可以根據協(xié)議的規定發(fā)送一條設定(SV值)的命令來(lái)改變SV值。其他的參數設定也是類(lèi)似的。至此設備的驅動(dòng)程序就基本完成。

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

  監控軟件設備驅動(dòng)程序編制原理與實(shí)現

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

  2.2智能儀表類(lèi)

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

  監控軟件設備驅動(dòng)程序編制原理與實(shí)現

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

  監控軟件設備驅動(dòng)程序編制原理與實(shí)現

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

3 接口軟件編程框架

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

  監控軟件設備驅動(dòng)程序編制原理與實(shí)現

  



關(guān)鍵詞: 監控軟件 設備驅動(dòng)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>