据说看了这篇文章就完全搞懂了什么是OPC(上)

从2000年初以来,咱们就一直在使用OPC软件互操做性标准,而那些正准备踏入和想要踏入工业自动化领域的人们却对这些含义感到困惑。数据库

因此在本中,我将系统地为你梳理OPC知识。缓存

OPC首字母缩写词表明什么?服务器

问一个OPC老手,他们或许会笑,由于他们知道有不少含义!在经典的且程序化的说法是:O LE for P rocess C ontrol(用于过程控制的OLE)。OLE 或对象连接和嵌入是Windows的基本早期构建块,容许应用程序在它们之间共享复杂的信息。我记得Windows 3.0的第一个演示中,人们将 Excel电子表格嵌入到 Microsoft Word文档中,以及更新电子表格,打开Word和更新文档的重要性。原始OPC标准源自该技术和 COM 或 Windows 组件对象模型。ide

从那之后,咱们会听到不少其余的一些定义,可是比较出名的是如今官方OPC基金会所给出的说法是:它的含义是O pen P latform C ommunications(开放平台通讯)。其实不管它的定义是什么,其目标保持不变:消除自动化软件和硬件平台之间互操做性的障碍,为用户提供选择。网站

OPC Client(OPC客户端)和OPC Server(OPC服务器)之间有什么区别?操作系统

OPC客户端请求数据,有时也想写入数据。若是容许的话,服务器会响应客户端的请求并提供数据或接受其写入。最简单的形式就是这样。orm

能够将OPC服务器看做是协议转换器,OPC服务器使用设备的专用协议与设备通讯,而后使用OPC Classic和OPC UA规范定义的标准化格式提供对该数据的访问。一般状况下,OPC服务器在OPC客户端请求读取或写入数据以前不会执行任何操做。而某些OPC服务器能够配置为即便在没有客户端请求的状况下也能够从设备轮询数据。这一般是为了容许OPC服务器在其内部缓存中就具备当前数据而且在客户端请求它时就已经准备就绪(可是是以产生可能不须要的通讯流量为代价。)目前许多OPC服务器为用户提供了灵活性,能够根据应用需求来进行配置。对象

若是个人控制硬件供应商说他们支持OPC,那么为何我还须要OPC服务器?blog

当硬件供应商表示他们支持OPC时,一般并不意味着他们直接将OPC服务器嵌入到他们的硬件中。他们的意思是他们拥有OPC服务器软件,该软件在某个基于Windows的计算机上运行,​​​​该计算机与其硬件对话并使用一个或多个OPC标准公开数据。此外,对于某些硬件供应商,可能须要额外的许可费才能启用此OPC服务器功能。咱们常常听到用户对这一点感到困惑。其实只是为了在销售时更好听一点,才会说“咱们支持OPC”,因此在此须要澄清一下供应商所说的内容。接口

如今,一些供应商开始利用多平台功能,并将OPC UA服务器直接嵌入到他们的PLC中。若是你的 HMI或SCADA软件支持OPC UA,那么这可能会很是方便。若是你的客户端应用程序不支持OPC UA,那么则可使用OPC网关应用程序来帮助你从OPC UA 链接到 DA。

OPC服务器必须在Server类计算机和操做系统上运行吗?

OPC服务器不须要服务器类硬件或操做系统。有些供应商可能会针对其具体实施要求这样作,但OPC标准并无规定这一点。OPC服务器软件一般至关轻巧,能够轻松地与台式PC上的其余软件应用程序共存。你能够咨询你的OPC服务器供应商,了解你的具体应用要求。(以Software Toolbox的产品为例,在它的每一个产品网站区域都有一个规格页面,虽然他们的OPC服务器一般不须要服务器级硬件或操做系统。)

2个OPC服务器如何相互通讯?而2个OPC客户端又如何相互通讯?

在OPC世界中,一般客户端是与服务器通讯的。可是好消息是OPC服务器能够与其余OPC服务器通讯,OPC客户端也可使用相同的方式。

为何两个OPC服务器须要通讯?你能够想象一下,你有PLC供应商A和PLC供应商B,而且有一个OPC服务器须要使用两个不一样的PLC供应商的特定设备协议与每一个服务器进行通讯。你但愿将数据从PLC A移动到PLC B,这意味着2个不一样的OPC服务器须要相互通讯。你可使用OPC Bridging(OPC桥)软件应用程序执行此操做。OPC桥接软件应用程序是OPC客户端应用程序,能够链接到许多不一样的OPC服务器,而后容许你映射两个OPC服务器之间的数据移动,指定方向,数据转换等。

在OPC客户端相互通讯的状况下,最多见的应用是须要交换数据的两个不一样的SCADA或HMI软件应用程序。第一个解决方案是查看HMI或SCADA软件是否支持OPC服务器接口以及OPC客户端。许多人都是这样作的,那么若是是这样,那么问题就解决了两个客户端应用程序使用其OPC客户端接口与彼此的OPC服务器接口进行通讯。若是没有,而且客户端纯粹是OPC DA,UA或DA和UA客户端,那么使用诸如 Cogent DataHub 之类的应用程序也将是解决方案。Cogent DataHub能够充当OPC服务器,其中包含你定义的标记列表,而且两个OPC客户端均可以读取/写入这些公共标记。

什么是 OPC数据质量 和 TImestamps ?

在 OPC 以前,当你的 HMI 或 SCADA 软件用内置驱动程序读取数据以前,它要么获得数据要么没有数据。 若是你没有获得数据,你就没法知道最后一次得到数据是何时。 二者之间没有差异。

使用OPC服务器,它们能够缓存或保留从设备读取的最后一个值。它们还会在缓存中为数据加时间戳(TImestamps),一般使用OPC服务器从设备读取值的时间。某些设备存储上次更改数据的时间戳,并可以使用设备特定的通讯协议将其传递给OPC服务器。若是设备支持该设备而且OPC服务器支持它,那么则可使用设备时间戳。(如:支持该功能的协议的设备时间戳的Software Toolbox产品包括TOP Server DNP,IEC 61850和IEC 60870驱动程序。)

OPC质量是OPC服务器告诉OPC客户更多关于它们提供价值的一种方式。这样作的方法是传递一个数字以及值和时间戳。在OPC中咱们称之为VQT或"Value,Quality,Timestamp"(“价值,质量,时间戳”)。OPC质量编号其实是经过设置字位来肯定的,这会致使产生不一样的值。值192表示“良好”质量,这意味着OPC服务器最后一次轮询设备它可以成功获取数据,所以OPC客户端能够信任该值。值为0表示质量不佳,一般表示OPC服务器与其轮询的设备之间存在通讯故障。OPC服务器可使用一系列其余值来表示质量差的缘由,但目前它们并未获得普遍实施。我以前有发过一篇关于OPC数据质量的文章<<一分钟告诉你什么是OPC DA质量代码>>,感兴趣的朋友能够去看看。

其实最重要的是OPC客户端应用程序一般能够配置为更改它们在操做员屏幕或历史数据库中向用户显示值的方式,以便人们知道该值不值得信任和不值得信任缘由。

关于OPC UA,OPC DA等相关内容,我会在下一篇文章中继续详细讲解,未完待续。

相关文章
相关标签/搜索