OPC簡(jiǎn)介及OPC DA 服務(wù)器的設計與實(shí)現
3 OPC DA 服務(wù)器與客戶(hù)端數據訪(fǎng)問(wèn)的交互過(guò)程本文引用地址:http://dyxdggzs.com/article/148479.htm
OPC 客戶(hù)端對在進(jìn)行數據訪(fǎng)問(wèn)時(shí),是以組為單位的,每個(gè)組中可以加入客戶(hù)端需要訪(fǎng)問(wèn)的數據項,具體的訪(fǎng)問(wèn)交互過(guò)程如下:
(1) OPC DA 客戶(hù)端查找并訪(fǎng)問(wèn)一個(gè)OPC DA 服務(wù)器,此時(shí)在OPC DA 服務(wù)器端,創(chuàng )建一個(gè)Server 對象,并返回一個(gè)接口指針;
(2) 客戶(hù)端由返回的指針找到接口IOPCServer,通過(guò)IOPCServer::AddGroup()函數添加一個(gè)Group;服務(wù)器端則生成一個(gè)Group 對象,返回一個(gè)該Group 對象的接口指針;
(3) 客戶(hù)端利用該指針查找IOPCItemMgt 接口,調用函數AddItem()在服務(wù)器添加一個(gè)或多個(gè)item 數據項item 對象,然后便可對該組對象中的數據項進(jìn)行存取等操作;
(4) 同步訪(fǎng)問(wèn):查找Group 對象的IOPCSyncIO 接口,直接調用Read(),Write()函數;異步訪(fǎng)問(wèn):a)注冊,查找Group 對象的IConnnectionContianer 接口,找到一個(gè)支持OPCDataCallback 接口的連接點(diǎn)對象,客戶(hù)端生成IOPCDataCallback 對象并在連接點(diǎn)IConnectionPoint 上注冊;b)查找IAsyncIO 接口,客戶(hù)端調用該接口的Read,Write,Refresh等函數,然后直接返回;c)完成數據存取后,服務(wù)器回調已經(jīng)注冊的IOPCDataCallback 接口的相關(guān)函數,如OnDataChange 等,此時(shí)客戶(hù)端可以通過(guò)回調函數獲到返回的結果; (5) 清理現場(chǎng),釋放接口指針并返回;
4 結束語(yǔ)
OPC 標準在硬件和軟件廠(chǎng)商之間建立了規范的聯(lián)系,其工控領(lǐng)域得到了廣泛的應用,成為一個(gè)事實(shí)上的軟件總線(xiàn)??蛇m配的OPC DA 服務(wù)器則是將其上層進(jìn)行了封裝,對下層數據源存取進(jìn)行了接口抽象,將數據采集同具體的數據源分離,從而降低了數據訪(fǎng)問(wèn)的耦合性。采用可適配模式的OPC DA 服務(wù)器,可以針對不同的數據采集模式,依照具體采集卡情況實(shí)現適配接口,從而縮短軟件整體開(kāi)發(fā)的周期,提高實(shí)際應用的速度。
評論