《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 淺談紫金橋軟件驅(qū)動開發(fā)
淺談紫金橋軟件驅(qū)動開發(fā)
紫金橋軟件技術(shù)有限公司
摘要: 實時數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)類似,也需要和各種各樣的硬件設(shè)備,比如PLC,板卡,智能儀表等等進(jìn)行通訊。為了增加系統(tǒng)的可靠度和穩(wěn)定性,也需要引入操作系統(tǒng)中驅(qū)動程序的概念。同時驅(qū)動程序的引入,也使多人同時開發(fā)硬件的支持部分成為了可能。
Abstract:
Key words :

實時數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)類似,也需要和各種各樣的硬件設(shè)備,比如PLC,板卡,智能儀表等等進(jìn)行通訊。為了增加系統(tǒng)的可靠度和穩(wěn)定性,也需要引入操作系統(tǒng)中驅(qū)動程序的概念。同時驅(qū)動程序的引入,也使多人同時開發(fā)硬件的支持部分成為了可能。

實時數(shù)據(jù)庫系統(tǒng)的驅(qū)動程序可以完成與各種I/O設(shè)備之間的數(shù)據(jù)交換。一方面,它把從I/O設(shè)備采集到的過程數(shù)據(jù)發(fā)送給實時數(shù)據(jù)庫,另一方面,從實時數(shù)據(jù)庫發(fā)出的下置數(shù)據(jù)也要通過驅(qū)動程序傳送給I/O設(shè)備。

紫金橋?qū)崟r數(shù)據(jù)庫系統(tǒng)提供了開放的驅(qū)動程序開發(fā)包,任何有VC++經(jīng)驗的開發(fā)人員都可以使用此開發(fā)包編制驅(qū)動程序,增加系統(tǒng)對新的硬件的支持。為了簡化驅(qū)動程序的編制,我們盡可能的把通用的功能和某具體設(shè)備的實現(xiàn)部分相分離,這些通用的功能部分放在一個獨立的程序中,就是調(diào)度程序。這樣編制驅(qū)動程序時,編制者就不用了解很多實現(xiàn)的細(xì)節(jié),比如串口的打開與關(guān)閉,網(wǎng)絡(luò)Socket的操作等等。同時調(diào)度程序也負(fù)責(zé)和實時數(shù)據(jù)庫的通訊,掌控超時重發(fā)機(jī)制等等。有了調(diào)度程序,每一個驅(qū)動程序就可以專心的實現(xiàn)該設(shè)備的特殊功能即可,大大提高了效率。

首先我們先簡單看一下調(diào)度程序所管理的對象。如下圖所示

每一個調(diào)度程序都會創(chuàng)建唯一的管理類(CManager)對象來管理著所有的其他對象,該對象同時管理著一系列的通道對象。所謂的通道(CChannel)對象其實是一系列的通訊介質(zhì)的抽象,比如一個串口就可以抽象為一個通道對象,再比如一個網(wǎng)絡(luò)的端口也可以抽象成一個通道對象。調(diào)度程序的通道對象隱藏了各種通訊介質(zhì)的差別,驅(qū)動編制者可以不用關(guān)心通道的具體細(xì)節(jié)。在每一個通道對象的內(nèi)部又管理著若干的設(shè)備(CDevice)對象。這種關(guān)系可以這樣來理解,比如我們在計算機(jī)的Com1口上通過Rs485總線聯(lián)結(jié)了3臺設(shè)備,在Com2口上聯(lián)結(jié)了一臺設(shè)備。那么調(diào)度程序在運行時就會首先創(chuàng)建一個CManager對象,然后再創(chuàng)建兩個CChannel對象讓CManager對象來管理,它們分別對應(yīng)Com1和Com2口。然后在Com1對象內(nèi)創(chuàng)建三個CDevice對象和三臺設(shè)備相對應(yīng),在Com2對象內(nèi)創(chuàng)建1個CDevice對象。在CDevice的下一級是包對象(CPacket),設(shè)備采集數(shù)據(jù)的時候總是以包為單位進(jìn)行采集。在包對象的內(nèi)部又包含著若干的點(CItem),一個點對應(yīng)著一個從實時數(shù)據(jù)庫位號到實際設(shè)備的連接,從設(shè)備中采集到的數(shù)據(jù)首先被放到點中,然后才送入實時數(shù)據(jù)庫中去的。

另外我們看一下在紫金橋軟件中定義設(shè)備并進(jìn)行組點聯(lián)結(jié)的過程,我們以“青島青智儀器”的驅(qū)動程序為例來簡要的說明一下整個過程。

  • 驅(qū)動的安裝:

請把“青島青智驅(qū)動程序”目錄下的“IO Servers”目錄與紫金橋軟件安裝目錄下的“IO Servers”目錄進(jìn)行替換。如果您是使用的缺省選項來安裝紫金橋軟件的那么“IO Servers”目錄應(yīng)該為“C:\Program Files\RealInfo\IO Servers”。

  • 定義設(shè)備:

進(jìn)行完第一步之后,請重新啟動紫金橋軟件,這時在導(dǎo)航器的數(shù)據(jù)庫頁中可以找到該驅(qū)動程序,見下圖:

雙擊該選項,將會彈出定義設(shè)備對話框,如下圖所示:

可以看到在此對話框中需要我們輸入設(shè)備名稱,調(diào)度程序就是使用設(shè)備名稱來得到設(shè)備配置的。同時還可以看到在此對話框中需要我們輸入設(shè)備地址,選擇并配置通訊端口。此對話框由紫金橋系統(tǒng)提供,是一個缺省的定義設(shè)備的對話框。一些簡單的設(shè)備,使用缺省的設(shè)備定義對話框即可完成定義,而一些復(fù)雜的設(shè)備就必須要求驅(qū)動程序提供進(jìn)一步的設(shè)備定義。

輸入任意設(shè)備名稱,設(shè)備地址要和實際的青智單相儀表設(shè)備地址設(shè)置相一致,其他設(shè)置見圖。

點擊COM口旁邊的“設(shè)置”按鈕,會彈出如下所示的COM口配置對話框:

選擇對應(yīng)的設(shè)置,注意一定要和實際的青智單相儀表設(shè)備的設(shè)置相一致。

  • 定義IO點

要想從設(shè)備中采集數(shù)據(jù)僅僅定義設(shè)備是不夠的,必須還要告訴驅(qū)動程序,需要采集設(shè)備中的那些位置的數(shù)據(jù),這就需要進(jìn)行組點連接。

把導(dǎo)航器切換到數(shù)據(jù)庫頁,可以看到在該頁下有“點組態(tài)”項,如下圖所示:

雙擊“點組態(tài)”項即可進(jìn)入點組態(tài)管理。

在點組態(tài)管理器中使用鼠標(biāo)雙擊點名下的空白處,如下圖深藍(lán)色方塊所示:

即可彈出點定義對話框:

選擇“模擬I/O點”并點擊“繼續(xù)”按鈕,會彈出如下圖所示的對話框:

在點名處輸入需要創(chuàng)建的點的名稱,比如A1,并點擊確定即可完成一個IO輸入輸出點的定義。

點擊“復(fù)制”按鈕,并連續(xù)點擊“粘貼”按鈕可以迅速的復(fù)制剛才創(chuàng)建的點。

  • 進(jìn)行組點連接

在點組態(tài)管理器中雙擊相應(yīng)點的外部連接項,見下圖所示:

在隨后彈出的對話框中選擇剛剛定義的設(shè)備,并點擊增加連接項按鈕會彈出如下所示的組點連接對話框:

選擇需要采集命令類型及子類型。點擊確定即可完成一個點的組點連接。

  • 運行系統(tǒng),采集或下置數(shù)據(jù)

首先,確保設(shè)備進(jìn)行了正確的連接,串口線連接沒有錯誤,并且COM口和設(shè)備地址,命令類型以及校驗方式都和實際相符,然后在紫金橋軟件的工具條中點擊按鈕,即可運行整個系統(tǒng)。

注意:此驅(qū)動中可下置的命令為啟/停/清除累計電能,其中當(dāng)下置“0”時代表停止,“1”代表啟動,“-1”代表清除,下置其它內(nèi)容無效。

  • 查看數(shù)據(jù),下置數(shù)據(jù)

系統(tǒng)運行之后,在計算機(jī)的右下腳點擊圖標(biāo)將出現(xiàn)如下畫面:

 

單擊“青智儀器單相儀表”,可以看到驅(qū)動程序的運行情況。如果您采集的數(shù)據(jù)出現(xiàn)問題可以根據(jù)此處提示信息進(jìn)行驅(qū)動的調(diào)試及相應(yīng)修改。

如果您沒有看到如上圖所示的驅(qū)動顯示,請在驅(qū)動程序中選擇菜單“設(shè)置/顯示設(shè)置”并在顯示設(shè)置對話框中進(jìn)行如下的設(shè)置即可。

如果您在驅(qū)動程序中看到采集運行正常那么請您單擊“數(shù)據(jù)庫”,顯示實時數(shù)據(jù)庫的運行界面。

在對應(yīng)點的PV參數(shù)處即可看到采集的當(dāng)前值。通過雙擊并輸入新的當(dāng)前值,即可對參數(shù)進(jìn)行更改,但是在更改前請先確定該參數(shù)具有寫屬性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。