《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(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)
來(lái)源:電子技術(shù)應(yīng)用2010年第12期
韓慶敏, 施 波
杭州和利時(shí)自動(dòng)化有限公司, 浙江 杭州310018
摘要: 在當(dāng)前工業(yè)控制系統(tǒng)中,DCS系統(tǒng)與第三方設(shè)備進(jìn)行通信時(shí),必須開(kāi)發(fā)對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序;當(dāng)DCS系統(tǒng)升級(jí)時(shí),設(shè)備驅(qū)動(dòng)也必須進(jìn)行相應(yīng)升級(jí),從而增加了升級(jí)和維護(hù)成本。為此,提出了基于OPC的第三方設(shè)備數(shù)據(jù)采集系統(tǒng)(COMMOPC系統(tǒng))。該系統(tǒng)由主框架和I/O驅(qū)動(dòng)組成,I/O驅(qū)動(dòng)為主框架提供統(tǒng)一的通信調(diào)用接口,主框架部分通過(guò)接口的調(diào)用來(lái)實(shí)現(xiàn)對(duì)設(shè)備I/O的統(tǒng)一管理、調(diào)度和通信信息的集中監(jiān)視,并提供通用OPC Server接口,使上層應(yīng)用系統(tǒng)通過(guò)OPC Client可實(shí)時(shí)地訪問(wèn)現(xiàn)場(chǎng)設(shè)備,解決了設(shè)備驅(qū)動(dòng)程序與DCS系統(tǒng)必須一一對(duì)應(yīng)的問(wèn)題。
中圖分類號(hào): TP273.5
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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ǔ),不僅來(lái)源于DCS現(xiàn)場(chǎng)控制層,還可來(lái)源于第三方設(shè)備和軟件。一個(gè)好的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ū)動(dòng)程序與這些外部設(shè)備交換數(shù)據(jù),包括采集數(shù)據(jù)和發(fā)送數(shù)據(jù)/指令。
    在com/tags/OPC" title="OPC" target="_blank">OPC出現(xiàn)以前,應(yīng)用程序開(kāi)發(fā)商(DCS廠商)需要不斷地開(kāi)發(fā)這些設(shè)備的驅(qū)動(dòng)程序,不但帶來(lái)了大量重復(fù)性勞動(dòng),也帶來(lái)了很多問(wèn)題。如硬件供應(yīng)商在硬件上作出一些小小的改動(dòng),應(yīng)用程序就可能需要重寫(xiě);同時(shí)由于不同設(shè)備甚至同一設(shè)備的不同單元驅(qū)動(dòng)程序可能不同,很難同時(shí)對(duì)這些設(shè)備進(jìn)行優(yōu)化操作。傳統(tǒng)的過(guò)程控制系統(tǒng)是一對(duì)一的系統(tǒng),任何一種DCS、SCADA、MES等上位監(jiān)控軟件或其他應(yīng)用軟件在使用某種硬件設(shè)備時(shí)都需要開(kāi)發(fā)專用的驅(qū)動(dòng)程序,系統(tǒng)構(gòu)建完成后的最終結(jié)果是:
    (1) 一種軟件要使用N類硬件設(shè)備需要開(kāi)發(fā)N個(gè)驅(qū)動(dòng)程序。(2) M類軟件要使用N類硬件設(shè)備需要開(kāi)發(fā)M×N個(gè)驅(qū)動(dòng)程序。(3) 每增加一個(gè)新的應(yīng)用軟件需要另外開(kāi)發(fā)N個(gè)硬件設(shè)備的驅(qū)動(dòng)程序。(4) 每增加一個(gè)新的硬件設(shè)備需要為M個(gè)軟件開(kāi)發(fā)新的設(shè)備驅(qū)動(dòng)程序。
    圖1是傳統(tǒng)工業(yè)控制驅(qū)動(dòng)程序的開(kāi)發(fā)示意圖。

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

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

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

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

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


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

    本文在充分研究各種通信協(xié)議的基礎(chǔ)上,設(shè)計(jì)了COMMOPC系統(tǒng),對(duì)第三方設(shè)備的數(shù)據(jù)采集進(jìn)行了統(tǒng)一及標(biāo)準(zhǔn)管理,該方法有很好的靈活性和擴(kuò)展性。通過(guò)實(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基金會(huì),www.opcfoundation.org.2001.
[2] 潘愛(ài)民. COM原理與應(yīng)用[M]. 北京:清華大學(xué)出版社,1999:50-63.

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