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

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

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

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

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

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

另外我們看一下在紫金橋軟件中定義設(shè)備并進(jìn)行組點(diǎn)聯(lián)結(jié)的過(guò)程,,我們以“青島青智儀器”的驅(qū)動(dòng)程序?yàn)槔齺?lái)簡(jiǎn)要的說(shuō)明一下整個(gè)過(guò)程。

  • 驅(qū)動(dòng)的安裝:

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

  • 定義設(shè)備:

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

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

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

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

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

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

  • 定義IO點(diǎn)

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

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

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

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

即可彈出點(diǎn)定義對(duì)話(huà)框:

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

在點(diǎn)名處輸入需要?jiǎng)?chuàng)建的點(diǎn)的名稱(chēng),,比如A1,,并點(diǎn)擊確定即可完成一個(gè)IO輸入輸出點(diǎn)的定義。

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

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

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

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

選擇需要采集命令類(lèi)型及子類(lèi)型,。點(diǎn)擊確定即可完成一個(gè)點(diǎn)的組點(diǎn)連接。

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

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

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

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

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

 

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

如果您沒(méi)有看到如上圖所示的驅(qū)動(dòng)顯示,請(qǐng)?jiān)隍?qū)動(dòng)程序中選擇菜單“設(shè)置/顯示設(shè)置”并在顯示設(shè)置對(duì)話(huà)框中進(jìn)行如下的設(shè)置即可,。

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

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

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