《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于OPC的第三方設(shè)備數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于OPC的第三方設(shè)備數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2010年第12期
韓慶敏, 施 波
杭州和利時自動化有限公司,, 浙江 杭州310018
摘要: 在當(dāng)前工業(yè)控制系統(tǒng)中,DCS系統(tǒng)與第三方設(shè)備進(jìn)行通信時,,必須開發(fā)對應(yīng)的設(shè)備驅(qū)動程序,;當(dāng)DCS系統(tǒng)升級時,設(shè)備驅(qū)動也必須進(jìn)行相應(yīng)升級,,從而增加了升級和維護(hù)成本,。為此,提出了基于OPC的第三方設(shè)備數(shù)據(jù)采集系統(tǒng)(COMMOPC系統(tǒng))。該系統(tǒng)由主框架和I/O驅(qū)動組成,,I/O驅(qū)動為主框架提供統(tǒng)一的通信調(diào)用接口,,主框架部分通過接口的調(diào)用來實(shí)現(xiàn)對設(shè)備I/O的統(tǒng)一管理、調(diào)度和通信信息的集中監(jiān)視,,并提供通用OPC Server接口,,使上層應(yīng)用系統(tǒng)通過OPC Client可實(shí)時地訪問現(xiàn)場設(shè)備,解決了設(shè)備驅(qū)動程序與DCS系統(tǒng)必須一一對應(yīng)的問題,。
中圖分類號: TP273.5
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)12-0132-03
Design and implementation of data collection system from the third-party devices based on OPC
HAN Qing Min,,SHI Bo
HangZhou Hollysys Automation Co., Ltd., Hangzhou 310018, China
Abstract: In the current industrial control systems, when DCS systems communicate with the third-party devices, we must develop the corresponding the device driver, when the DCS system upgrade, the device driver must be upgraded accordingly, it will inevitably increase the cost of upgrades and maintenance. In this background, this paper presents a third-party devices OPC-based data collection system (COMMOPC system).The COMMOPC system consists of the main framework and I/O drivers, I/O drivers provide unified interface to the main framework, the main framework call the interface to implement unified management and scheduling and surveillance to the I/O drivers, and provide the general OPC Server interface。The upper level through the OPC client applications to access real-time field devices to solve the corresponding problem of the device driver and the DCS system.
Key words : OPC,;COM,;communication protocol;data collection

   數(shù)據(jù)和信息是DCS監(jiān)督控制的基礎(chǔ),,不僅來源于DCS現(xiàn)場控制層,,還可來源于第三方設(shè)備和軟件。一個好的DCS監(jiān)控應(yīng)用軟件應(yīng)能提供廣泛的應(yīng)用接口或標(biāo)準(zhǔn)接口,,可方便地實(shí)現(xiàn)將DCS控制器,、第三方PLC、智能儀表和其他工控設(shè)備的數(shù)據(jù)接入到系統(tǒng)中,。一般監(jiān)控系統(tǒng)都把數(shù)據(jù)源看做外部設(shè)備,,驅(qū)動程序與這些外部設(shè)備交換數(shù)據(jù),包括采集數(shù)據(jù)和發(fā)送數(shù)據(jù)/指令,。
    在com/tags/OPC" title="OPC" target="_blank">OPC出現(xiàn)以前,,應(yīng)用程序開發(fā)商(DCS廠商)需要不斷地開發(fā)這些設(shè)備的驅(qū)動程序,不但帶來了大量重復(fù)性勞動,,也帶來了很多問題,。如硬件供應(yīng)商在硬件上作出一些小小的改動,應(yīng)用程序就可能需要重寫,;同時由于不同設(shè)備甚至同一設(shè)備的不同單元驅(qū)動程序可能不同,,很難同時對這些設(shè)備進(jìn)行優(yōu)化操作。傳統(tǒng)的過程控制系統(tǒng)是一對一的系統(tǒng),,任何一種DCS,、SCADA、MES等上位監(jiān)控軟件或其他應(yīng)用軟件在使用某種硬件設(shè)備時都需要開發(fā)專用的驅(qū)動程序,,系統(tǒng)構(gòu)建完成后的最終結(jié)果是:
    (1) 一種軟件要使用N類硬件設(shè)備需要開發(fā)N個驅(qū)動程序,。(2) M類軟件要使用N類硬件設(shè)備需要開發(fā)M×N個驅(qū)動程序。(3) 每增加一個新的應(yīng)用軟件需要另外開發(fā)N個硬件設(shè)備的驅(qū)動程序,。(4) 每增加一個新的硬件設(shè)備需要為M個軟件開發(fā)新的設(shè)備驅(qū)動程序。
    圖1是傳統(tǒng)工業(yè)控制驅(qū)動程序的開發(fā)示意圖,。

    為了解決傳統(tǒng)工業(yè)控制開發(fā)中的問題,,硬件制造商一直試圖開發(fā)出一種可以被任何客戶應(yīng)用程序使用的超級“設(shè)備驅(qū)動”程序,。但是由于設(shè)備通信協(xié)議的不一致性,這項(xiàng)工作一直較為困難,。
    在此背景下,本文提出了一種基于OPC的DCS第三方設(shè)備數(shù)據(jù)采集系統(tǒng)(COMMOPC)的設(shè)計(jì)與實(shí)現(xiàn)方法,。本方法在高度抽象各種通信方式和通信協(xié)議的基礎(chǔ)上,實(shí)現(xiàn)了DCS與各種第三方設(shè)備的通信功能,。
1 OPC技術(shù)簡介
    OPC[1](OLE for Process Control)是用于過程控制的OLE(Object Linking and Embedding)技術(shù),它是世界上多個自動化公司,、軟硬件供應(yīng)商與微軟合作開發(fā)的一套工業(yè)標(biāo)準(zhǔn),是專為在現(xiàn)場設(shè)備,、自控應(yīng)用,、企業(yè)管理應(yīng)用軟件之間實(shí)現(xiàn)系統(tǒng)無縫集成而設(shè)計(jì)的接口規(guī)范。這個標(biāo)準(zhǔn)使得COM技術(shù)適用于過程控制和制造自動化等應(yīng)用領(lǐng)域,。OPC以O(shè)LE,、組件對象模型COM(Component Object Model)及分布式組件對象模型DCOM(Distributed COM)技術(shù)為基礎(chǔ),定義了一套適于過程控制應(yīng)用,,支持過程數(shù)據(jù)訪問,、報警、事件與歷史數(shù)據(jù)訪問等功能的接口,,便于不同供應(yīng)商的軟硬件實(shí)現(xiàn)“即插即用”的連接與系統(tǒng)集成[2],。
    OPC規(guī)范采用客戶/服務(wù)器模型,建立了一套在硬件供應(yīng)商和軟件開發(fā)商之間相互遵循的規(guī)則,。只要遵循這套規(guī)則,,數(shù)據(jù)交換對兩者來說都是透明的,硬件供應(yīng)商無需考慮應(yīng)用程序的多種需求和傳輸協(xié)議,,軟件開發(fā)商也無需了解硬件的實(shí)質(zhì)和操作過程,。圖2為使用OPC技術(shù)后工業(yè)程序的開發(fā)過程。

    基于OPC技術(shù)的系統(tǒng)構(gòu)建完成后的最終結(jié)果是:
  (1) M類軟件要使用N類硬件設(shè)備只需要開發(fā)N個驅(qū)動,。
  (2) 每增加一個新的應(yīng)用軟件不需要另外開發(fā)硬件設(shè)備的驅(qū)動程序,。
  (3) 每增加一個新的硬件設(shè)備只需要為開發(fā)一個新設(shè)備的驅(qū)動程序。
    由此可見,,任何一種設(shè)備只需要提供一種驅(qū)動就可以供任何軟件系統(tǒng)使用,。
2 COMMOPC系統(tǒng)簡介
    基于OPC技術(shù)及多年驅(qū)動程序的開發(fā)背景,和利時公司開發(fā)了擁有自主專利的基于OPC的DCS第三方設(shè)備數(shù)據(jù)采集系統(tǒng)——COMMOPC,。該系統(tǒng)是DCS,、MES和RealMis等應(yīng)用系統(tǒng)與現(xiàn)場設(shè)備之間的通用數(shù)據(jù)接口,實(shí)現(xiàn)對現(xiàn)場設(shè)備實(shí)時數(shù)據(jù)的訪問,,可廣泛應(yīng)用于企業(yè)自動化應(yīng)用系統(tǒng)與現(xiàn)場設(shè)備之間的信息集成,;可以把現(xiàn)場設(shè)備數(shù)據(jù)轉(zhuǎn)化成標(biāo)準(zhǔn)OPC數(shù)據(jù),供OPC Client訪問,實(shí)現(xiàn)對現(xiàn)場數(shù)據(jù)的集中管理,,并以O(shè)PC接口的方式供上層應(yīng)用軟件訪問,。只要具有OPC Client功能的應(yīng)用軟件即可實(shí)現(xiàn)對現(xiàn)場設(shè)備數(shù)據(jù)的訪問,通用性好,。
    COMMOPC系統(tǒng)結(jié)構(gòu)如圖3所示,,各個部分功能相對獨(dú)立又相互協(xié)作,形成一個統(tǒng)一的整體,。

    COMMOPC系統(tǒng)IO驅(qū)動部分共有36種不同通信協(xié)議的第三方設(shè)備的設(shè)備驅(qū)動(由設(shè)備驅(qū)動開發(fā)包生成),,由OPC Server與外部設(shè)備及應(yīng)用系統(tǒng)交換數(shù)據(jù),包括采集數(shù)據(jù)和發(fā)送數(shù)據(jù)/指令,,實(shí)質(zhì)上是實(shí)現(xiàn)各種通信協(xié)議向OPC標(biāo)準(zhǔn)協(xié)議的轉(zhuǎn)換功能,。這樣,DCS就不需理會具體的設(shè)備和應(yīng)用類型,,而只通過OPC Client與OPC Server的數(shù)據(jù)交換就能實(shí)現(xiàn)與外部設(shè)備和應(yīng)用系統(tǒng)的數(shù)據(jù)交換,。
3 COMMOPC的主要功能
    COMMOPC系統(tǒng)主要提供三個功能:
    (1)界面功能。包括:特殊操作控制,,控制密碼可修改,;點(diǎn)名、路徑兩種標(biāo)簽瀏覽方式,,默認(rèn)為點(diǎn)名方式,;界面配置;對組配置信息的導(dǎo)入導(dǎo)出,;保存配置信息,;OPC客戶端調(diào)試工具;串口監(jiān)視工具,;監(jiān)視通信過程信息,;監(jiān)視實(shí)時通信數(shù)據(jù);顯示樹型列表,;手動控制單個通道通信啟停,;托盤顯示當(dāng)前運(yùn)行狀態(tài);提供測試版(測試版最多運(yùn)行10小時),;運(yùn)行版,,測試版通過授權(quán)后自動轉(zhuǎn)為運(yùn)行版;版本顯示,;配置備份及恢復(fù),;安裝時自動注冊O(shè)PC服務(wù)器功能。
    (2)通信功能,。包括:支持OPC DA 1.0,、DA 2.0規(guī)范,,滿足應(yīng)用同步、異步,、訂閱任一種訪問方式OPC客戶端實(shí)現(xiàn)數(shù)據(jù)通信,;支持OPC客戶端重連接;提供各通道,、各設(shè)備狀態(tài)信息,這些信息點(diǎn)作為有效點(diǎn)供OPC客戶端訪問,;提供通道冗余,;提供通信診斷;36種驅(qū)動,,驅(qū)動滿足:采集設(shè)備的開關(guān)量,、模擬量功能;對設(shè)備遙控,、設(shè)定值功能,;可進(jìn)行特殊配置;支持串口通信方式,,可掛接串口設(shè)備,;支持以太網(wǎng)TCP通信方式,,可掛接以太網(wǎng)TCP設(shè)備;支持以太網(wǎng)UDP通信方式,可掛接以太網(wǎng)UDP設(shè)備,;提供OPCServer、通道,、設(shè)備的狀態(tài)供OPC客戶端訪問,。
    (3)日志功能。包括:日志信息種類可配置功能,;日志自動生成,、維護(hù)功能。
4 COMMOPC的系統(tǒng)設(shè)計(jì)方法
4.1模塊組成及邏輯

    COMMOPC系統(tǒng)由OPC接口模塊,、數(shù)據(jù)管理模塊,、數(shù)據(jù)顯示模塊、通信管理和調(diào)度模塊,、規(guī)約處理模塊,、通信測試和診斷模塊、日志模塊等組成,。其系統(tǒng)邏輯圖如圖4所示,。

4.2 OPC地址空間的設(shè)計(jì)
 OPC服務(wù)器中包含了很多可供客戶訪問的資源,這些資源在OPC中被稱為項(xiàng)(Item),。為了方便客戶訪問,,這些項(xiàng)應(yīng)該按照一種合理的方式進(jìn)行組織,。服務(wù)器中的每個項(xiàng)都有一個全局有效標(biāo)識名FID(Full qualified ID)。有了FID,,客戶就可以找到該項(xiàng),,因此稱該全局有效標(biāo)識名為該項(xiàng)的服務(wù)器地址(簡稱地址)。這種具有服務(wù)器地址的項(xiàng)按照一定的方式組織在一起,,就形成了服務(wù)器的地址空間,。服務(wù)器地址空間就是服務(wù)器上包含的可以供客戶訪問的資源的集合。服務(wù)器地址空間是由服務(wù)器確定和管理的,,其描述了服務(wù)器中包含了哪些項(xiàng),,以及這些項(xiàng)是按照什么形式進(jìn)行組織的。
   本文地址空間設(shè)計(jì)為4層目錄結(jié)構(gòu),,如圖5所示,。


   根對象(CRoot::m_Root)是4層目錄結(jié)構(gòu)的根,維護(hù)通道列表(ChannelList),所有的通道都可以通過m_Root找到,;通道對象(CChannel::m_branches)是本系統(tǒng)地址空間的第1層,,維護(hù)設(shè)備列表(DeviceList),每個通道都可以有n個設(shè)備,;設(shè)備對象(CDevice::m_branches)是第2層,,維護(hù)組列表(GroupList),組可以將標(biāo)簽分為不同的類型,;組對象(CGroup::m_tags)是第3層,,維護(hù)標(biāo)簽列表(TagList);標(biāo)簽(CExTag)是最后一層地址空間,,標(biāo)簽對應(yīng)具體設(shè)備的點(diǎn),。
    在OPC接口內(nèi)含有地址空間的根,用戶通過配置通道,、設(shè)備,、組及選擇組內(nèi)的點(diǎn)之后即可完成地址空間的建立。當(dāng)?shù)刂房臻g建立后,,OPC Client可以通過OPC接口訪問地址空間內(nèi)任意標(biāo)簽點(diǎn)的值,。標(biāo)簽的地址格式為:ChName.DevName.GrpName.TagName。
4.3 設(shè)備驅(qū)動開發(fā)包的設(shè)計(jì)
    設(shè)備驅(qū)動開發(fā)包采用動態(tài)鏈接庫形式,,不同通信協(xié)議的設(shè)備驅(qū)動程序都在開發(fā)包框架內(nèi)編寫,。這樣可以提高設(shè)備驅(qū)動的開發(fā)效率,同時方便維護(hù)升級,,設(shè)備驅(qū)動的修改不會影響軟件主體部分,。
    利用設(shè)備驅(qū)動開發(fā)包可以開發(fā)各種通信協(xié)議的設(shè)備驅(qū)動模塊。規(guī)約處理是設(shè)備驅(qū)動模塊的核心任務(wù),,不同的通信協(xié)議對應(yīng)著不同的設(shè)備驅(qū)動模塊,。根據(jù)需求,,設(shè)備驅(qū)動模塊以DLL的形式生成,模塊修改或者添加功能后,,只需要覆蓋原模塊,,不需要重新編譯主程序。設(shè)備驅(qū)動模塊的主要功能是從主程序得到所要請求的標(biāo)簽的信息,,然后打包發(fā)送給設(shè)備,,從設(shè)備讀取應(yīng)答、解析數(shù)據(jù),,將相應(yīng)的數(shù)據(jù)發(fā)送到數(shù)據(jù)管理和顯示模塊,。如果OPC客戶端有控制命令,會發(fā)送給OPC服務(wù)器,,OPC接口模塊將消息發(fā)送給設(shè)備驅(qū)動模塊,由設(shè)備驅(qū)動模塊進(jìn)行打包,,將命令報文發(fā)送給設(shè)備,。
    設(shè)備驅(qū)動開發(fā)包生成的DLL形式的設(shè)備驅(qū)動模塊,如圖3驅(qū)動部分所示,。

    本文在充分研究各種通信協(xié)議的基礎(chǔ)上,設(shè)計(jì)了COMMOPC系統(tǒng),,對第三方設(shè)備的數(shù)據(jù)采集進(jìn)行了統(tǒng)一及標(biāo)準(zhǔn)管理,該方法有很好的靈活性和擴(kuò)展性,。通過實(shí)際應(yīng)用證明,,該方法設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng),不僅完全滿足了第三方設(shè)備數(shù)據(jù)采集的需求,,還具有良好的穩(wěn)定性,、靈活性和可維護(hù)性。
參考文獻(xiàn)
[1] The OPC of data access custom interface standard version 2.05, Dec 17,2001.OPC基金會,,www.opcfoundation.org.2001.
[2] 潘愛民. COM原理與應(yīng)用[M]. 北京:清華大學(xué)出版社,,1999:50-63.

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