以是在本中,我将系统地为你梳理OPC知识。
OPC首字母缩写词代表什么?
问一个OPC老手,他们或许会笑,由于他们知道有很多含义!
在经典的且程序化的说法是:O LE for P rocess C ontrol(用于过程掌握的OLE)。OLE 或工具链接和嵌入是Windows的基本早期构建块,许可运用程序在它们之间共享繁芜的信息。我记得Windows 3.0的第一个演示中,人们将 Excel电子表格嵌入到 Microsoft Word文档中,以及更新电子表格,打开Word和更新文档的主要性。原始OPC标准源自该技能和 COM 或 Windows 组件工具模型。

从那往后,我们会听到很多其他的一些定义,但是比较出名的是现在官方OPC基金会所给出的说法是:它的含义是O pen P latform C ommunications(开放平台通信)。实在无论它的定义是什么,其目标保持不变:肃清自动化软件和硬件平台之间互操作性的障碍,为用户供应选择。
OPC Client(OPC客户端)和OPC Server(OPC做事器)之间有什么差异?
OPC客户端要求数据,有时也想写入数据。如果许可的话,做事器会相应客户真个要求并供应数据或接管其写入。最大略的形式便是这样。
可以将OPC做事器看作是协议转换器,OPC做事器利用设备的专用协议与设备通信,然后利用OPC Classic和OPC UA规范定义的标准化格式供应对该数据的访问。常日情形下,OPC做事器在OPC客户端要求读取或写入数据之前不会实行任何操作。而某些OPC做事器可以配置为纵然在没有客户端要求的情形下也可以从设备轮询数据。这常日是为了许可OPC做事器在其内部缓存中就具有当前数据并且在客户端要求它时就已经准备就绪(但是因此产生可能不须要的通信流量为代价。)目前许多OPC做事器为用户供应了灵巧性,可以根据运用需求来进行配置。
如果我的掌握硬件供应商说他们支持OPC,那么为什么我还须要OPC做事器?
当硬件供应商表示他们支持OPC时,常日并不虞味着他们直接将OPC做事器嵌入到他们的硬件中。他们的意思是他们拥有OPC做事器软件,该软件在某个基于Windows的打算机上运行,该打算机与其硬件对话并利用一个或多个OPC标准公开数据。此外,对付某些硬件供应商,可能须要额外的容许费才能启用此OPC做事器功能。我们常常听到用户对这一点感到困惑。实在只是为了在发卖时更好听一点,才会说“我们支持OPC”,以是在此须要澄清一下供应商所说的内容。
现在,一些供应商开始利用多平台功能,并将OPC UA做事器直接嵌入到他们的PLC中。如果你的 HMI或SCADA软件支持OPC UA,那么这可能会非常方便。如果你的客户端运用程序不支持OPC UA,那么则可以利用OPC网关运用程序来帮助你从OPC UA 连接到 DA。
图1 模式
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客户端都可以读取/写入这些公共标记。
图2 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等干系内容,我会不才一篇文章中连续详细讲解,未完待续。