|
實時數據庫係統和操作係統類似,也需要和各種各樣的硬件設備,比如PLC,板(ban)卡(ka),智(zhi)能(neng)儀(yi)表(biao)等(deng)等(deng)進(jin)行(xing)通(tong)訊(xun)。為(wei)了(le)增(zeng)加(jia)係(xi)統(tong)的(de)可(ke)靠(kao)度(du)和(he)穩(wen)定(ding)性(xing),也(ye)需(xu)要(yao)引(yin)入(ru)操(cao)作(zuo)係(xi)統(tong)中(zhong)驅(qu)動(dong)程(cheng)序(xu)的(de)概(gai)念(nian)。同(tong)時(shi)驅(qu)動(dong)程(cheng)序(xu)的(de)引(yin)入(ru),也(ye)使(shi)多(duo)人(ren)同(tong)時(shi)開(kai)發(fa)硬(ying)件(jian)的(de)支(zhi)持(chi)部(bu)分(fen)成(cheng)為(wei)了(le)可(ke)能(neng)。
實時數據庫係統的驅動程序可以完成與各種I/O設備之間的數據交換。一方麵,它把從I/O設備采集到的過程數據發送給實時數據庫,另一方麵,從實時數據庫發出的下置數據也要通過驅動程序傳送給I/O設備。
紫金橋實時數據庫係統提供了開放的驅動程序開發包,任何有VC++經(jing)驗(yan)的(de)開(kai)發(fa)人(ren)員(yuan)都(dou)可(ke)以(yi)使(shi)用(yong)此(ci)開(kai)發(fa)包(bao)編(bian)製(zhi)驅(qu)動(dong)程(cheng)序(xu),增(zeng)加(jia)係(xi)統(tong)對(dui)新(xin)的(de)硬(ying)件(jian)的(de)支(zhi)持(chi)。為(wei)了(le)簡(jian)化(hua)驅(qu)動(dong)程(cheng)序(xu)的(de)編(bian)製(zhi),我(wo)們(men)盡(jin)可(ke)能(neng)的(de)把(ba)通(tong)用(yong)的(de)功(gong)能(neng)和(he)某(mou)具(ju)體(ti)設(she)備(bei)的(de)實(shi)現(xian)部(bu)分(fen)相(xiang)分(fen)離(li),這(zhe)些(xie)通(tong)用(yong)的(de)功(gong)能(neng)部(bu)分(fen)放(fang)在(zai)一(yi)個(ge)獨(du)立(li)的(de)程(cheng)序(xu)中(zhong),就(jiu)是(shi)調(tiao)度(du)程(cheng)序(xu)。這(zhe)樣(yang)編(bian)製(zhi)驅(qu)動(dong)程(cheng)序(xu)時(shi),編(bian)製(zhi)者(zhe)就(jiu)不(bu)用(yong)了(le)解(jie)很(hen)多(duo)實(shi)現(xian)的(de)細(xi)節(jie),比(bi)如(ru)串(chuan)口(kou)的(de)打(da)開(kai)與(yu)關(guan)閉(bi),網(wang)絡(luo)Socketdecaozuodengdeng。tongshitiaoduchengxuyefuzeheshishishujukudetongxun,zhangkongchaoshizhongfajizhidengdeng。youletiaoduchengxu,meiyigequdongchengxujiukeyizhuanxindeshixiangaishebeideteshugongnengjike,dadatigaolexiaolv。
首先我們先簡單看一下調度程序所管理的對象。如下圖所示

每一個調度程序都會創建唯一的管理類(CManager)對象來管理著所有的其他對象,該對象同時管理著一係列的通道對象。所謂的通道(CChannel)duixiangqishishiyixiliedetongxunjiezhidechouxiang,biruyigechuankoujiukeyichouxiangweiyigetongdaoduixiang,zaibiruyigewangluodeduankouyekeyichouxiangchengyigetongdaoduixiang。tiaoduchengxudetongdaoduixiangyinzanglegezhongtongxunjiezhidechabie,qudongbianzhizhekeyibuyongguanxintongdaodejutixijie。zaimeiyigetongdaoduixiangdeneibuyouguanlizheruogandeshebei(CDevice)對象。這種關係可以這樣來理解,比如我們在計算機的Com1口上通過Rs485總線聯結了3台設備,在Com2口上聯結了一台設備。那麼調度程序在運行時就會首先創建一個CManager對象,然後再創建兩個CChannel對象讓CManager對象來管理,它們分別對應Com1和Com2口。然後在Com1對象內創建三個CDevice對象和三台設備相對應,在Com2對象內創建1個CDevice對象。在CDevice的下一級是包對象(CPacket),設備采集數據的時候總是以包為單位進行采集。在包對象的內部又包含著若幹的點(CItem),一個點對應著一個從實時數據庫位號到實際設備的連接,從設備中采集到的數據首先被放到點中,然後才送入實時數據庫中去的。
另外我們看一下在紫金橋軟件中定義設備並進行組點聯結的過程,我們以“青島青智儀器”的驅動程序為例來簡要的說明一下整個過程。
請把“青島青智驅動程序”目錄下的“IO Servers”目錄與紫金橋軟件安裝目錄下的“IO Servers”目錄進行替換。如果您是使用的缺省選項來安裝紫金橋軟件的那麼“IO Servers”目錄應該為“C:\Program Files\RealInfo\IO Servers”。
進行完第一步之後,請重新啟動紫金橋軟件,這時在導航器的數據庫頁中可以找到該驅動程序,見下圖:

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

keyikandaozaiciduihuakuangzhongxuyaowomenshurushebeimingcheng,tiaoduchengxujiushishiyongshebeimingchenglaidedaoshebeipeizhide。tongshihaikeyikandaozaiciduihuakuangzhongxuyaowomenshurushebeidizhi,xuanzebingpeizhitongxunduankou。ciduihuakuangyouzijinqiaoxitongtigong,shiyigequeshengdedingyishebeideduihuakuang。yixiejiandandeshebei,shiyongqueshengdeshebeidingyiduihuakuangjikewanchengdingyi,eryixiefuzadeshebeijiubixuyaoqiuqudongchengxutigongjinyibudeshebeidingyi。
輸入任意設備名稱,設備地址要和實際的青智單相儀表設備地址設置相一致,其他設置見圖。
點擊COM口旁邊的“設置”按鈕,會彈出如下所示的COM口配置對話框:

選擇對應的設置,注意一定要和實際的青智單相儀表設備的設置相一致。
要想從設備中采集數據僅僅定義設備是不夠的,必須還要告訴驅動程序,需要采集設備中的那些位置的數據,這就需要進行組點連接。
把導航器切換到數據庫頁,可以看到在該頁下有“點組態”項,如下圖所示:

雙擊“點組態”項即可進入點組態管理。
在點組態管理器中使用鼠標雙擊點名下的空白處,如下圖深藍色方塊所示:

即可彈出點定義對話框:

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

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

點擊“複製”按鈕,並連續點擊“粘貼”按鈕可以迅速的複製剛才創建的點。
在點組態管理器中雙擊相應點的外部連接項,見下圖所示:

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

選擇需要采集命令類型及子類型。點擊確定即可完成一個點的組點連接。
首先,確保設備進行了正確的連接,串口線連接沒有錯誤,並且COM口和設備地址,命令類型以及校驗方式都和實際相符,然後在紫金橋軟件的工具條中點擊 按鈕,即可運行整個係統。
注意:此驅動中可下置的命令為啟/停/清除累計電能,其中當下置“0”時代表停止,“1”代表啟動,“-1”代表清除,下置其它內容無效。
係統運行之後,在計算機的右下腳點擊 圖標將出現如下畫麵:

單擊“青智儀器單相儀表”,可以看到驅動程序的運行情況。如果您采集的數據出現問題可以根據此處提示信息進行驅動的調試及相應修改。

如果您沒有看到如上圖所示的驅動顯示,請在驅動程序中選擇菜單“設置/顯示設置”並在顯示設置對話框中進行如下的設置即可。

如果您在驅動程序中看到采集運行正常那麼請您單擊“數據庫”,顯示實時數據庫的運行界麵。

在對應點的PV參數處即可看到采集的當前值。通過雙擊並輸入新的當前值,即可對參數進行更改,但是在更改前請先確定該參數具有寫屬性。
|