當前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導讀]在簡要介紹OPC 技術的基礎上,描述了OPC服務器的結(jié)構(gòu)及開發(fā)步驟,詳細講述了OPC技術在CAN總線系統(tǒng)中的實現(xiàn)。

1 OPC技術簡介

  1.1 什么是OPC

  OPC(OLE for Process Control),即用于過程控制的對象鏈接與嵌入技術,是一種規(guī)范,是在工業(yè)控制和生產(chǎn)自動化領域中使用的硬件和軟件的接口標準。OPC以組件對象模型和分布式組件對象模型(COM/DCOM)技術為基礎,采用客戶/服務器(Client/Server)的模式,定義了一組COM對象及其接口標準。

  OPC規(guī)范是由世界范圍內(nèi)自動化領域中處于領導地位的硬件和軟件開發(fā)商,在微軟的協(xié)作下制定的,并且已經(jīng)得到越來越多的客戶和硬件制造商的認可。

  1.2 OPC的意義

  在傳統(tǒng)的控制系統(tǒng)中,針對同一個硬件設備,每個應用軟件都要根據(jù)自己的需求開發(fā)一套硬件驅(qū)動程序。這不僅加大了開發(fā)和維護費用,而且?guī)砹嗽L問沖突問題。

  OPC技術將各個硬件設備驅(qū)動程序和通訊程序封裝成獨立的OPC服務器,上層應用軟件(作為OPC客戶端)可以不關心硬件的性能特點,而通過標準的OPC接口訪問OPC服務器。

  這樣不僅解決了上述問題,而且實現(xiàn)了軟件的“即插即用”。OPC相當于一塊軟件“主板”,它能夠直接與現(xiàn)場的PLC、工業(yè)網(wǎng)絡、數(shù)據(jù)采集和Windows CE設備連接,快速有效地獲取現(xiàn)場實時數(shù)據(jù)。PC機內(nèi)的各種監(jiān)視、控制和管理等應用軟件則像是插在OPC主板上的軟件“芯片”,芯片可以通過OPC獲得現(xiàn)場實時數(shù)據(jù),芯片之間也可以按照OPC協(xié)議進行通訊,從而實現(xiàn)軟件的“即插即用”。

  1.3 OPC對象與接口

  OPC的核心是COM/DCOM技術。在COM模型中,軟件的功能被分解為一些組件,這些組件通過COM協(xié)議在一定條件下連接起來,實現(xiàn)相應的功能。COM對象分為客戶端和服務器兩類,客戶端通過COM接口訪問服務器[2]。

  OPC數(shù)據(jù)訪問規(guī)范描述了OPC服務器需要實現(xiàn)的COM對象及其接口,它定義了定制接口(custom interface)和自動化接口(automation interface)[1]。OPC客戶程序通過接口與服務器通訊,間接讀取數(shù)據(jù)。OPC服務器必須實現(xiàn)定制接口,也可以有選擇地實現(xiàn)自動化接口。一般來說,自動化接口能為VB等高級語言客戶程序提供極大的便利,但數(shù)據(jù)傳輸效率較低;而定制接口則為用C/C++語言編寫的程序帶來靈活高效的調(diào)用手段。

  OPC客戶程序訪問服務器時,創(chuàng)建一個服務器對象(這里指的是邏輯對象,目的是利用這個邏輯對象建立與實際服務器的連接),調(diào)用這個服務器對象的接口,服務器對象創(chuàng)建組對象并返回組對象的指針,客戶程序獲得組對象的指針后調(diào)用其接口。

  注意,OPC項并不是OPC客戶直接操作的對象,因為OPC項沒有定義外部接口,對象的所有操作都是通過包容該項的組對象進行的。

2 OPC數(shù)據(jù)訪問服務器的結(jié)構(gòu)及設計步驟

  2.1 OPC數(shù)據(jù)訪問服務器的結(jié)構(gòu)


圖 1 OPC數(shù)據(jù)訪問服務器的結(jié)構(gòu)

  本文實現(xiàn)的OPC數(shù)據(jù)訪問服務器具有數(shù)據(jù)采集的功能,提供符合OPC規(guī)范的定制接口。主要由OPC 服務器對象、OPC 組對象、OPC 項對象和針對CAN(Controller Area Network控制器局域網(wǎng))通訊卡編寫的I/O 動態(tài)鏈接庫(DLL)組成,采用如圖1所示的結(jié)構(gòu)。

  OPC 服務器對象是客戶端與服務器交互的首要對象??蛻舳送ㄟ^訪問服務器對象的接口函數(shù)與之進行交互。一個服務器對象里可以設置一個以上的組對象。OPC 服務器對象的主要功能是:①創(chuàng)建和管理OPC 組對象;②管理服務器內(nèi)部的狀態(tài)信息;③將服務器的錯誤代碼翻譯成描述性語句;④瀏覽服務器內(nèi)部的數(shù)據(jù)組織結(jié)構(gòu)。

  OPC 組對象用于組織管理服務器內(nèi)部的實時數(shù)據(jù)信息,它是OPC 項對象的集合。正因為有了組對象,OPC應用程序就可以成批地對所需要的數(shù)據(jù)進行訪問,也可以以組為單位啟動或停止數(shù)據(jù)訪問。其主要功能是:①管理組對象內(nèi)部的狀態(tài)信息;②創(chuàng)建和管理項對象;③OPC服務器內(nèi)部的實時數(shù)據(jù)存取服務(同步或異步方式)。

  OPC 服務器對象和組對象支持的接口由OPC規(guī)范定義,但并未規(guī)定具體如何實現(xiàn),需要開發(fā)人員自己完成。

  OPC項則與現(xiàn)場設備中的模塊相對應,它包含數(shù)據(jù)項的值(value)、品質(zhì)(quality)和時間戳(time stamp)。

  I/O DLL是針對具體硬件設備開發(fā)的驅(qū)動程序,實現(xiàn)從現(xiàn)場設備讀取數(shù)據(jù)的功能。

  2.2 實現(xiàn)OPC數(shù)據(jù)訪問服務器的主要步驟:

  2.2.1 獲得并注冊OPC標準組件

  根據(jù)COM規(guī)范,COM服務器可分為進程內(nèi)服務器、本地服務器和遠程服務器。后兩種服務器與客戶程序運行在不同的進程空間,屬于進程外服務器。為了實現(xiàn)進程間通訊,需要用到代理/存根模塊。代理/存根模塊由接口描述語言(IDL)直接生成。OPC基金會為每種OPC服務器提供了相應的代理/存根動態(tài)鏈接庫,這些文件可以在OPC基金會的網(wǎng)站(www.opcfoundation.org)上免費下載。

  注意,設計OPC服務器時可以在OPC對象上增加接口以滿足特定的要求,但不能修改標準的OPC IDL文件或相應的 proxy/stub DLL。新增的接口描述應定義在獨立的IDL文件中,并由該文件生成獨立的代理/存根模塊來完成接口的調(diào)用工作。

  組件的注冊將在后面介紹。

  2.2.2 編寫OPC服務器代碼

  首先定義0PC數(shù)據(jù)服務器的名稱(ProgID)和類標識(CLSID),實現(xiàn)COM庫的初始化功能和0PC數(shù)據(jù)服務器類廠對象的接口功能。然后實現(xiàn)OPC對象和數(shù)據(jù)緩沖區(qū)。接下來針對具體硬件編寫I/O DLL,實現(xiàn)數(shù)據(jù)的實時讀取。這項工作是十分繁重的,要求開發(fā)人員具有良好的COM編程知識,具體過程限于篇幅不能詳述,這里指出兩點引起注意:

 ?、湃治ㄒ粯俗R符(GUID)

  GUID是為每個COM對象提供的十六字節(jié)標識數(shù)。COM類至少有兩個GUID:類標識(CLSID)和接口標識(IID)。CLSID用于標識COM類,登記在Windows注冊表中,包含指向包括COM類的DLL或EXE組件的路徑。IID用于標識該類的接口,被應用程序用來查詢和觸發(fā)該類的方法,也登記在注冊表中。由于對象類是由GUID標識的,所以必須保證它們的唯一性,才能使最終用戶在使用由不同軟件商開發(fā)的組件時不會發(fā)生沖突。

  可以使用宏DEFINE_GUID (name , long , word , word , word , byte1 , … ,byte8 )

  其中 name 是標識數(shù)的名字,其余參數(shù)是實際的ID碼。類標識的命名慣例是CLSID_ClassName ,而接口ID的命名慣例是IID_InterfaceName。

  有兩種途徑來獲得GUID:

  ①Microsoft Visual C++提供了兩個工具來產(chǎn)生GUID:UUIDGen.exe和GUIDGen.exe(大小寫沒有影響)。前者是一個命令行程序,直接產(chǎn)生一個GUID;后者是一個基于對話框的應用程序,運行UUIDGen.exe,產(chǎn)生一個Create GUID對話框。它提供四種格式,選定之后,按New GUID鍵產(chǎn)生新的GUID,顯示在Result欄中;按Copy鍵可以復制產(chǎn)生的結(jié)果。

 ?、诶肅OM庫提供的API函數(shù)來產(chǎn)生GUID:

  HRESULT CoCreateGuid (GUID *pguid )

  如果創(chuàng)建GUID成功,則函數(shù)返回S_OK,并且pguid將指向所得到的GUID值。

 ?、芆PC組件的注冊

  注冊表是客戶和組件程序共同訪問的信息倉庫,通常情況下,當組件程序被安裝到計算機上之后,必須通過某種途徑把它的信息注冊到注冊表中,然后客戶程序才能根據(jù)注冊表中的信息對組件程序進行操作。

  根據(jù)COM規(guī)范,組件程序可分為自注冊組件程序和非自注冊組件程序。OPC基金會提供的組件都是自注冊組件。對于非自注冊組件程序,其注冊過程與組件程序沒有直接關系,必須單獨進行注冊信息的配置,比如,可以編寫一個注冊表文件,然后在RegEdit中引入。

  對于DLL形式的進程內(nèi)自注冊組件,Windows系統(tǒng)提供了RegSvr32.exe注冊工具進行組件注冊和注銷。組件程序本身必須包含DllRegisterServer和DllUnregisterServer兩個注冊表入口函數(shù)。注冊和注銷的格式分別為:

  RegSvr32 <系統(tǒng)路徑> 

  RegSvr32 /u <系統(tǒng)路徑> 

  對于EXE形式的進程外自注冊組件,COM規(guī)范規(guī)定,必須支持兩個命令行參數(shù)/RegServer和/UnregServer(大小寫無關,并且“/”可以用“-”代替),以便完成注冊和注銷操作。注冊和注銷的格式分別為:

  <系統(tǒng)路徑> /RegServer

  <系統(tǒng)路徑> /UnregServer

  2.2.3 測試OPC服務器

  OPC服務器經(jīng)過調(diào)試之后,還需要利用OPC客戶程序?qū)λ闹饕δ苓M行測試。

3 OPC技術在CAN現(xiàn)場總線系統(tǒng)中的應用

  本文開發(fā)的OPC服務器是針對華控公司的CAN通訊卡編寫的,用于從華控的CAN通訊卡和RSM智能模塊組成的現(xiàn)場通訊網(wǎng)絡中讀取信息。

  3.1 系統(tǒng)組成

  系統(tǒng)主要由上位機, CAN通訊卡,OPC 客戶端,OPC服務器,RSM智能模塊,通訊媒體等組成。如圖2所示。


圖2 系統(tǒng)構(gòu)成

 ?、偕衔粰C的軟、硬件配置: Microsoft Windows 98/2000 或Windows NT操作系統(tǒng);32M以上內(nèi)存、1G以上可用硬盤空間、SVGA顯示卡。

 ?、贑AN通訊卡選用華控公司的HK-CAN30B,它是一種將CAN通訊協(xié)議與PC機PCI總線標準相連接的非智能CAN插卡,通過該卡可對工業(yè)現(xiàn)場具有CAN通訊接口的儀表和控制設備進行監(jiān)控。

 ?、跜AN現(xiàn)場設備選用華控的RSM智能模塊,每個模塊都是在一個嵌入式實時多任務的內(nèi)核管理下周期性工作,按組態(tài)要求定時地向上發(fā)送和取得數(shù)據(jù)。

 ?、芡ㄓ嵜襟w可以選用雙絞線、帶屏蔽雙絞線等。

 ?、菘蛻舳诉x用力控公司的力控2.6監(jiān)控組態(tài)軟件。力控2.6支持OPC技術。它作為OPC客戶端,充分利用了OPC服務器的強大性能,為工程人員提供了方便高效的數(shù)據(jù)訪問能力。在力控中可以同時掛接任意多個OPC服務器,每個OPC服務器都可以當作一個外部設備進行定義、增加或刪除。

  3.2 OPC 服務器與客戶端的連接

  3.2.1 定義OPC設備

  首先在力控導航器窗口中選擇“實時數(shù)據(jù)庫”中的 “I/O設備驅(qū)動”并展開,出現(xiàn)“OPC”設備。雙擊“OPC(Client)”,出現(xiàn)I/O設備定義對話框。在“設備名稱”中定義邏輯設備的名稱(由用戶隨意定義),不妨定義為“OPC”,在“數(shù)據(jù)更新周期”中指定采集周期,填寫故障后恢復查詢的周期和最長時間,然后單擊“下一步”,出現(xiàn)OPC設備定義對話框。

  力控會自動搜索計算機系統(tǒng)中已經(jīng)安裝的所有OPC服務器。如果OPC服務器編寫無誤并且注冊正確,則點擊下拉框“OPC 服務器”時會列出已經(jīng)安裝的所有OPC服務器的名稱,選擇要使用的OPC服務器,這里選擇本文設計的服務器“OPC.Server.1”。

  選擇“Server類型”,是“當?shù)兀╨ocal)”還是“遠程(remote)”。在“數(shù)據(jù)訪問方式”中選擇“緩沖區(qū)”或“外設”方式,對于“緩沖區(qū)”方式,OPC客戶程序?qū)⑼ㄟ^OPC服務器的緩沖區(qū)讀取數(shù)據(jù);對于“外設”方式,OPC客戶程序?qū)⑼ㄟ^OPC服務器直接從設備讀取數(shù)據(jù)。從設備直接讀取數(shù)據(jù)速度會慢一些,一般只有在故障診斷或極特殊的情況下才會使用。在“死區(qū)百分比”中輸入一個百分值,表示過程數(shù)據(jù)值的變化不超出這個比例將不對其進行數(shù)據(jù)更新。單擊“確定”就完成了OPC設備的定義。

  3.2.2 對OPC數(shù)據(jù)項進行數(shù)據(jù)連接

  啟動力控的數(shù)據(jù)庫組態(tài)程序DBMan。首先在點組態(tài)中創(chuàng)建所要用的變量,不妨設為gg1。展開“數(shù)據(jù)連接”項,已經(jīng)建立的OPC設備就排列在其中。雙擊我們剛才建立的OPC設備 “OPC”,則出現(xiàn)“數(shù)據(jù)連接”對話框。選擇要連接的點參數(shù)gg1后,單擊“增加”按鈕,出現(xiàn)“數(shù)據(jù)項組態(tài)”對話框。

  如果OPC服務器支持“瀏覽”功能,雙擊右上側(cè)列表框中的“Root”,列表框會自動列出它提供的數(shù)據(jù)區(qū);如果OPC服務器不支持“瀏覽”功能,其數(shù)據(jù)項的描述需要用戶根據(jù)OPC服務器的資料說明,在“數(shù)據(jù)項”輸入框內(nèi)手工填寫。選擇“數(shù)據(jù)類型”和“讀寫權限”,在“訪問路徑”中輸入數(shù)據(jù)的訪問路徑(這一項不是必需的,需要填寫的,可以參考所使用的OPC服務器的手冊),這里不用填寫。

  最后單擊“確定”按鈕,就生成了一個數(shù)據(jù)項的數(shù)據(jù)連接,如圖3所示,從而實現(xiàn)了與現(xiàn)場實際信息的連接。


圖3 力控數(shù)據(jù)連接結(jié)果

  在系統(tǒng)運行時,力控和服務器建立連接,自動完成和OPC服務器之間的數(shù)據(jù)交換。

4 結(jié)束語

  本文設計的OPC數(shù)據(jù)訪問服務器符合OPC規(guī)范,實現(xiàn)了對數(shù)據(jù)的實時讀寫,具有實用價值。總之,有了OPC規(guī)范,控制系統(tǒng)軟件可以高效、穩(wěn)定地對硬件設備進行數(shù)據(jù)存取, 系統(tǒng)應用軟件之間也可以靈活地進行信息交互,極大地提高了控制系統(tǒng)的互操作性和適應性。

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉