OPC 技術學習總結


來源:https://blog.csdn.net/u013120247/article/details/50163147

1. 什么是OPC

1.1 名詞解釋

OPC——OLE for Process Contrl,微軟公司對象鏈接和嵌入技術在過程控制方面的應用,是一系列接口、方法和屬性的標准集。
它基於OLE、COM、DCOM技術、XML,采用客戶端/服務器(Client/Server)結構,將通訊協議與設備/應用隔離的技術。
微軟的OLE、COM定義了各種不同的軟件如何交互使用和分享數據,從而使得OPC能夠提供通用的接口規范,用於各種過程控制設備之間的通訊,不論過程中采用何種應用軟件和硬件設備。
OLE——Object Linking & Embeding,對象鏈接與嵌入,也就是現在的微軟的ActiveX。

1.2 基於OPC技術的過程控制系統結構

像所有的COM實現一樣,OPC的結構是客戶機服務器模式。
各個OPC客戶程序通過OPC標准接口對各OPC服務器管理的設備進行操作,而不需關心服務器的實現細節及設備內部的具體細節。
OPC把開發訪問接口的任務放在硬件生產廠家或第三方廠家,以OPC服務器的形式提供給用戶,解決了軟、硬件廠商的矛盾,完成了系統的集成,提高了系統的開放性和可互操作性。

1.3 工作原理

詳細原理圖:

1.4 OPC服務器所兼容的設備分類

  • 硬件設備:DCS,PLC,掃描儀,電子設備…
  • 應用軟件:HMI,歷史數據庫,震動檢測器…
  • 通訊協議:DDE,Modbus,ODBC,GenCS…
  • 操作系統:Windows,UNIX,VMS,Macintosh,嵌入式OS…

理解:

即OPC服務器可以從上面任何一種形式的數據產生實體中讀取數據。
這個實體可以是霍尼韋爾PHD的Application,也可以是Modbus的通訊協議,
還可以是一種PLC,也就是一種Device(硬件設備),或者是一種Platform。

2.常用的OPC服務器

2.1 Matrikon公司的OPCServer Simulator

簡單,單文件注冊后,各種數據類型,各種點類型(只讀點,只寫點,讀寫點)都有了,

更好的一點是,如果想做大規模的測試,10萬點,那么只需要在它的Random下添加任意名稱即可,OPCServer會自動給你建出對應的測點,還是隨機數變化。

配置時的幾個關鍵概念

  • Alias Group(Group) ——對Items的分類管理,自定義的。類似於Java中的包。
  • Alias (Item) ——一個Item代表與服務器進行通信的PLC或其它硬件設備上的一個地址。與Kepware中的一樣。
  • 配置順序如下(在Alias Configuration下):New AliasGroup/Alias --> Inset Alias

2.2 Kepware公司的OPCServer

一個商業軟件,需要花費金錢購買License的,但Kepware公司的OPCServer需要花錢的不是OPCServer本身,而是采集驅動。

不過Kepware公司的OPCServer提供了不花錢的仿真驅動,用來測試上非常好的。

缺點就是太龐大,不簡單,學習成本較高。但為了能滿足OPC這類產品的各種測試,它真的是最佳選擇。可以去它的官方網站下載

配置時的幾個關鍵概念

  • Chanel——通道是一個從PC到一個或多個外部設備之間的傳播媒介。一個通道可以用來代表一個串行端口(一個安裝在個人電腦上的卡或是以太網接口)。
  • Device——設備代表了與服務器進行通信的PLC或其他硬件。它受限於Channel所選擇的設備驅動程序(Device driver)。
  • Group——對tags的分類管理,自定義的。類似於Java中的包。
  • Tag——一個Tag代表與服務器進行通信的PLC或其它硬件設備上的一個地址。服務器允許動態標簽(客戶端自定義創建)和用戶定義的靜態標簽(服務端管理人員創建的標簽)。動態標簽是直接進入了OPC客戶端和指定設備存取數據。靜態標簽在服務器被創建的且支持標簽擴展,他們可以從OPC客戶瀏覽,支持標簽瀏覽。

配置順序如下:New Channel -->New Device --> New Group/Tag --> New Tag

3. 常用的OPC客戶端

3.1 Matrikon公司的OPCClient

標准,穩定,單文件,通訊過程的信息還比較豐富,我是比較喜歡用它在創建OPC組時定義同步方式或異步方式來驗證遠程計算機的OPC配置是否正確。缺點就是大了點,2M多。

3.2 Kepware公司的OPCClient

功能很強大,標准,穩定,日志信息很豐富,最推薦的功能是支持對OPCServer中點名的條件過濾,支持點表的導入導出,支持自動導入OPCServer的所有點,根據點表識別好點壞點,按照列排序,用它可以彌補很多國產組態軟件不能在線遍歷OPCServer點表的功能、不能過濾OPCServer點的功能、不能識別OPCServer中好點壞點的功能等。缺點就是非單文件。

4. OPC Client和OPC Server配置的安全策略

下表是對 OPC Client 和 OPC Server 所在操作系統之間的安全策略的配置對應說明:

5. Java實現OPC客戶端

有兩種開源包,分別是JeasyOpc和utgard(Openscada),他們的區別如下:
經對比分析,我們采用Utgard(Openscada)開源技術,Openscada可以很好的實現與OPC服務器的鏈接及讀寫數據等功能,還可以隨時獲取和修改OPC的Server和Item的屬性狀態信息。所以它能夠很好的滿足我們的需求,建議使用Openscada。

5.1 Openscada鏈接配置方法

OPC數據存取服務器由三個對象組成:服務器對象(Server)、組對象(Group)和項對象(Item)。
按說明配置好OPC Server 與 OPC Client 所在電腦的組件服務配置和防火牆設置(windows7直接關閉就行了)
注意一定要把本機希望鏈接OPC服務的用戶或用戶組添加到DCOM配置列表中,否則鏈接會失敗。
如果其他都配置好了,運行程序還是連接不上的話,首先常看防火牆是否配置(或關閉)。

OPC對象——服務器(OPC Server)、組(OPC Group)、項(OPC Item)。
Openscada開源項目:ConnectionInformation中:

  • Host——本地主機/網絡主機IP (示例:localhost(默認)、127.0.0.1)
  • Domain——域(默認為localhost)
  • User——用戶名
  • Password——用戶登錄密碼
  • Clsid——應用在注冊表中相對應的CLSID值
  • Grogid——應用在注冊表中對應的程序名稱

Clsid 和 Grogid 作用相同,只要設置一個就可以了,如果兩個都設置了,程序會優先選擇Clsid。
我們建議使用Clsid,因為使用Grogid時,Openscada的內部處理還是會通過JISystem.getClsidFromProgId( progId )方法將其轉換為Clsid,並且還需要進行服務器上用戶的權限的高級配置才可以使用。
查找Clsid和Grogid的方法:打開注冊表(regedit)—》在HKEY_CLASSES_ROOT下找到相應的OPC服務器名稱,該名稱就是Grogid,在其目錄下的CLSID的值(右邊區域)就是Clsid

5.2 Openscada遠程鏈接時常見的問題及解決方法

(1)org.jinterop.dcom.common.JIException: Message not found for errorCode:0xC0000034
原因:未啟動RemoteRegistry和Windows Management Instrumentation服務。
解決方法:打開控制面板,點擊【管理工具】—>>【服務】,啟動RemoteRegistry和Windows ManagementInstrumentation服務。
(2)org.jinterop.dcom.common.JIException:Access is denied, please check whether the [domain-username-password] arecorrect. Also, if not already done please check the GETTING STARTED and FAQsections in readme.htm. They provide information on how to correctly configurethe Windows machine for DCOM access, so as to avoid such exceptions. [0x00000005]
原因:首先檢查錯誤提示的配置信息是否有誤,如果都正確,則原因可能是你訪問的當前用戶沒有該訪問權限。
解決方法:
1、打開注冊列表,
選擇HKEY_CLASSES_ROOT\CLSID\{76A64158-CB41-11D1-8B02-00600806D9B6}
2、右鍵點擊[權限]>>【高級】>>[所有者]>>添加opc用戶到權限項目中,點擊應用,確定


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM