开放平台通信

开放平台通信（）簡稱OPC，旧称“用于过程控制的OLE”，是用于工业自动化的一种通信标准。设备制造商（特别是PLC）如果遵从这一标准，则实时数据可提供给OPC Server，上位机的软件（称为OPC Client）直接访问OPC Server就可以获取到设备数据，从而对不同的设备的差异透明化。

1996年首次发布后，由维护这一标准。What is OPC?  opcfoundation.org  2011年名字从“用于过程控制的OLE”改为“开放平台通信”，以反映OPC已经从过程控制领域推广到智能建筑、等。OPC也超出了传统的OLE技术，采用了.NET Framework、XML、OPC基金会的二进制编码TCP格式。
起源与使用 
开放平台通信（OPC）規範是以微軟所開發，針對Microsoft Windows作業系統下的对象链接与嵌入（DDE）、组件对象模型（COM）及Distributed COM（DCOM）技術為基礎。規格定義了過程控制及工廠自動化需要的对象、介面及方法，目的是為了達到互操作性。最常見的OPC規範是讀寫實時資料用的（OPC DA）。許多製造商提到OPC時，所指的其實就是OPC Data Access。OPC DA在初版發行起，已有三個主要的版本，所有版本都向後相容。第一版OPC DA的客戶端仍可以存取第三版OPC DA的伺服器，各版本會增加機能，但原有的機能仍然要支援。不過若客戶端允許資料寫入，就不支援舊版的伺服器，例如DA 3 相同的客戶端不一定支援DA 1.0的伺服器。

除了OPC DA規範外，OPC基金会也維護（OPC HDA）的規範。OPC DA存取的是實時的資料，OPC HDA允許存取及檢索已存檔的歷史資料。

OPC基金会還維護OPC Alarms and Events的規範，定義警告及事件型式的訊息資訊，類似變數狀態及狀態管理的訊息。

设计
开放平台通信的設計目的是提供Windows-based軟體應用程式以及程序控制硬體共同的橋樑。規範中定義從車間樓層裝置存取現場設備的一致性方法。不論資料的來源及型態如何，方法都是不變的。某一硬體設備的OPC伺服器提供OPC Client存取資料的方式，和其他設備的OPC伺服器提供的方式都是一樣的。目的是為了減少硬體設計者、軟體合作廠商、SCADA及HMI廠商花在處理這類問題，建立相關介面上的心力。只要硬體製造商針對其硬體設備開發了OPC伺服器，他們的工作就已經完成，任何設備都可以存取其資訊，只要SCADA製造商開發了OPC client，就可以存取OPC相同的硬體。

OPC伺服器提供方法給許多不同的軟體套件（前提是這些軟體要是OPC client），讓程序控制設備（例如PLC、）來存取資料。傳統上，若軟體需要從一個設備存取資料，需要撰寫客製的界面（驅動程式）。OPC的目的就是定義共同的介面，只要開發一次，任何SCADA、人機介面或是電腦軟體都可以用此介面存取資料。

OPC規格沒有限制伺服器提供哪些資料給程序控制裝置。OPC伺服器可以傳送MCU的內部溫度，也可以傳送某一地區目前的溫度。

只要某個設備已經有了OPC伺服器，其他可以作為OPC client的軟體就可以存取此一設備。OPC伺服器使用微軟的OLE技術（也稱為元件物件模型，COM）來和client通訊。COM技術提供在軟體應用程式以及程序硬體之間即時的資料交換。

OPC規範中有一些已經出版發行，其他一部份只開放給OPC協會的成員，沒有一家公司擁有OPC規範，任何一家公司就算不是OPC協會的成員，也可以開發OPC伺服器，非成員不一定要使用到最新的規範。任何人都可以整合OPC產品，系统集成商也不需要属于任何组织。每家需要OPC產品的公司可以自行決定其產品是否要經過認證，其系统集成商是否有需要接受必要的訓練。

未来

OPC UA（OPC Unified Architecture）已經有對應的規範，並且其早期Adopters版本已經部署並且進行測試。OPC UA可以用Java、Microsoft .NET、C语言實現，避免了早期OPC版本需要用Microsoft Windows為基礎的系統才能實現的問題。UA結合了現有OPC介面的功能，又加入了像XML及Web Services等技術，來支援高階的制造执行系统（MES）及企业资源计划（ERP）等應用。

OPC組織和組織在2010年9月16日宣佈會彼此合作，讓兩個標準之間有一致性及互操作性。

实现
LIGHTOPC：免费开源的OPC Server
MODBUSTOOPC：免费开源，把MODBUS通信协议转为OPC
参见
 Modbus RTU





参考文献

 外部链接 
 FatRat Library - free OPC server developers toolkit 
 OpenOPC - Open Source OPC client development in Python 
 OPC Foundation 
 OPC Programmers' Connection 
 OPC Unified Architecture Address Space e-book 
 prOpc Library - Open Source OPC server/client toolkit in Delphi 

Category:工业自动化
Category:自动化
Category:计算机标准