在 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 DA(OPC实时数据访问规范)定义了包括数据值,更新时间与数据品质信息的相关标准。这个定义相信大家都很熟悉,但是关于OPC DA质量代码,肯定有部分朋友不是特别清楚,所以小编今天就来讲讲关于OPC DA质量代码的具体含义。
OPC质量代码由16位组成。
高8位可供供应商特定使用,并且在不使用时应该为全0。
低8位分为三个部分:
前两位可以传递Good(好),Bad(坏)或Uncertain(不确定)的含义。如果服务器不支持质量代码,则始终会传递一个好的值。
接下来的四位可用于提供有关一般质量的其他特定信息。
如果服务器支持限制信息,则使用最后两位。在VB中,它们作为十六进制值返回,可以将它们转换为有意义的信息。
两种最常见的OPC质量代码是:
192 或 hex C0(十六进制C0)质量好。
0(十进制或十六进制)质量差。
二.C#程序代码
引用opcdaauto.dll
在win7 64位下KepServer = new OPCServer()会出错的问题,
检索COM 类工厂中 CLSID 为 <28e68f9a-8d75-11d1-8dc3-3c302a000000> 的组件时失败,原因是出现以下错误: 80040154
1.一定要到C:\Windows\SysWOW64路径下打开cmd.exe运行命令文件(而不是在运行打开),注册“OPCDAAuto.dll” 输入命令: REGSVR32 OPCDAAuto.dll;即可
2.编译工具目标要选择x86
KepServer.Connect(“KEPware.KEPServerEx.V4”, “127.0.0.1”); 此处ip地址是安装KEPware.Enhanced.OPC.DDE.KEPServer电脑的ip地址.
本文来自 Juvien_Huang 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Juvien_Huang/article/details/81356335?utm_source=copy
本文来自 Juvien_Huang 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Juvien_Huang/article/details/81482957?utm_source=copy