深入淺出! OPC協定 Hard lessons made easy! OPC protocol
●起源
在1990年代的工業製造領域, 多種廠牌的機器設備勤奮的工作著, 廠家各自依自己設計的軟體運作, 尤其是資料及通訊方面, 百家爭鳴, 許多互不相容, 造成監控困難, 上層的製造執行系統( MES )、監控管理系統, 需耗費相當大的成本, 才能連接各種軟硬體設施, 甚至有些無法連結上, 僅能臨機操作.為改善此一困境, 微軟( Microsoft )公司, 以自家Windows的DDE, COM, DCOM為基礎, 建立OPC ( OLE for Process Control )通訊協定之規範, 遵循此規範的軟硬體, 便可相互連結流通資料, 解決不相容問題, OPC就此誕生.
●OPC DA 是什麼?
應工業監控而生的OPC, 有著快速、穩定、安全等等特性, OPC規範標準由OPC基金會( OPC Foundation )開發及維護.最初始的OPC規範就是 "OPC Data Access", 簡稱 "OPC DA", 規範包含:
▲ OPC server/client中的資料定義, 需定義資料的空間位址( address ).
▲ 可供瀏覽、讀取、寫入, 以及訂閱數值更新的通知.
▲ 資料傳輸必須包含名稱( name )、資料型態( data type )、數值( value )、時間( timestamp )、資料品質( quality )、等等訊息.
OPC DA的基礎架構分為server端與client端, Server負責與機器設備連接, 讀寫底層資料, Client則與server連接, 將server中的資料呈現給使用者, 並將使用者下達的指令傳給server, 例如讀寫指令.
OPC DA從1996年便開始, 已長久深入工業領域, 平常我們所稱呼的OPC, 大多是指OPC DA, 經過悠久歷史, 近乎所有工業監控系統都有它存在, 為工業自動化打下良好基礎.
●OPC UA是什麼?
在OPC DA運用了約10多年後, 嶄新的OPC UA ( Unified Architecture )協定加入, OPC UA同樣為OPC基金會所研發制定, 解除了OPC DA局限於Windows COM/DCOM技術的限制, 改以http為基礎而發展.UA的特點除了繼承DA優點外, 在安全、功能、跨平台等等方面, 皆有相當大幅度進步:
▲ 支援嵌入式系統、微處理器平台.
▲ 支援https加密、憑證授權、session加密.
▲ 可直接瀏覽到本機或遠端網路的UA server.
▲ 資料以階層結構表示, 便於瀏覽資料.
▲ 支援 "訂閱" 模式, client端向server訂閱, 數值更新時通知.
▲ 跨平台: PC、PLC、ARM、Windows、Apple OS、Linux、Android.
OPC UA的基礎架構分為server端與client端, Server負責與機器設備連接, 讀寫底層資料, Client則與server連接, 將server中的資料呈現給使用者, 並將使用者下達的指令傳給server, 例如讀寫指令.
●OPC HDA是什麼?
OPC規範中, DA及UA是最多人知悉使用的, 除此外還有OPC HDA及OPC AE, 這兩樣較少有人注意.OPC DA傳輸的是 "實時" 資料, 也就是當下產生的數值, 那麼如果要取得過往的舊資料呢? OPC HDA ( Historical Data Access ) 便是負責歷史資料的規範, HDA將資料以DA的格式儲存起來, 該格式指得是資料屬性, 如名稱、資料型態、數值、時間、資料品質, HDA特性是簡明、速度極快、檔案小, 常應用在趨勢圖繪製, 以及模擬當下機器設備運作狀況, 有別於常見的資料庫, OPC HDA是專精於工業領域的資料庫.
●OPC AE是什麼?
OPC DA及UA協助我們完成讀寫資料, 另一項重要的是數值 "監控", 我們需要在數值到達指定條件時, 能自動發出警報, 以及產線發生某些事件時, 能自動發出通報, 例如, 當某數值大於10時, 發出警報, 警報中包含數值、時間、詳細訊息等等, OPC AE ( Alarm and Event )便為此而生.OPC AE明確的定義出警報及事件格式, 以及多重條件、警報確認等等, OPC AE的運作分成server及client端, Server端負責監測並發出警報, Client端負責接收警報並供使用者瀏覽, 其中server僅負責發出, 無法查看警報, Client則僅接收及查看警報, 無法監測數值, 一個Server可讓多個client連接.
●我們還需要認識 "Tag"
珍珠奶茶裝在杯子裡, 雞排放在紙袋裡, OPC的資料就放在tag裡.在OPC中, 我們將資料儲存在 "tag", 中文叫 "點位", 少部分會稱作 "item", tag可存放的資料包含點名稱 ( Tag Name )、位址 (Address)、資料型態 (Data Type)、數值 (value)、時間戳記 (timestamp)、資料品質 (Quality)等等.
以modbus通訊的設備為例, 設備中測量溫度的modbus位址是40090, 我們便稱呼這是設備中的一個tag, tag name是溫度, address是40090.
當OPC server與此設備連接, 並將tag資料讀取進來後, 這個溫度的資料在OPC server中也稱呼為tag.
簡言之, tag就是OPC儲存資料的一個單位, 相當於資料庫中的一個row data, 也類似倉庫中的一個儲藏位置.
●搭配結合
對於OPC各種規範有了基本認識後, 我們將這些規範結合起來, 形成一個基本的OPC系統架構, 其中OPC server負責與機器連接, 對機器進行讀寫資料, OPC client向server下指令, 例如讀寫資料的指令, 並將資料呈現給使用者, 提供介面給使用者操作.由此基礎架構開始, 並與SCADA、MES、ERP、DB等等, 互相連接搭配, 形成在工業自動化監控, 邁入工業4.0以及智慧製造的堅實基礎.
--- 壹年資訊 - OPC 建置專家 ---
侯奕年 Derek Hou
derekhou@oneyear.url.tw
0932-832-233
Line ID:oneyear
Skype ID:live:swallowtail233
Skype 對話:https://join.skype.com/invite/nadDmvb53SIF
壹年官網:www.oneyear.url.tw
壹年OPC技術教學:oneyearsoftware.blogspot.com
有任何問題, 我們一起解決!
留言
張貼留言