主要内容

从OPC数据访问服务器获取数据

这个示例展示了使用OPC工具箱™从OPC服务器获取数据所涉及的基本步骤。

先决条件:

创建OPC数据访问对象层次结构

创建一个opcda对象,并连接到所需的服务器。

da = opcda (“localhost”“Matrikon.OPC.Simulation.1”)连接(da)
da = OPC数据访问客户端对象概要:localhost/Matrikon.OPC.Simulation.1服务器参数主机:localhost ServerID: Matrikon.OPC.Simulation.1状态:disconnected超时:10秒对象参数组:0-by-1 dagroup对象事件日志:1000个事件中的0个

创建一个组对象来管理所需的项。

grp = addgroup(哒。“DemoGroup”
grp = OPC数据访问组对象概要:DemoGroup对象参数组类型:private Item: 0-by-1 daitem对象Parent: localhost/Matrikon.OPC.Simulation.1更新速率:0.5死区:0%对象状态活跃:开启订阅:开启登录:关闭登录参数记录:120持续时间:至少60秒登录到:内存状态:等待启动0条记录可用于GETDATA/PEEKDATA

添加Real8项目从锯齿状的波Real8UInt2项目从三角波该集团。

itmIDs = {锯齿状的波浪。Real8”...“三角波。Real8”...“三角波。UInt2”};itmIDs itm = additem (grp)
项目对象数组:Index: Active: ItemID: Value: Quality: TimeStamp: 1 on…hed波。Real8Bad: Ou... 2 on ...gle Waves.Real8 Bad: Ou... 3 on ...gle Waves.UInt2 Bad: Ou...

配置OPC工具箱对象属性

配置组以0.2秒的间隔记录60秒的数据。

logDuration = 60;logRate = 0.2;grp. numRecords = ceil(logDuration./logRate) grp. numRecords = ceil(logDuration./logRate)UpdateRate = logRate;grp。RecordsToAcquire = numRecords;
numRecords = 300

获取OPC服务器数据

启动获取任务,并在继续执行任何MATLAB™代码之前等待任务完成。

开始(grp)等(grp)

注意,在等待日志任务完成的同时,MATLAB继续处理来自OPC工具箱对象(和其他包含回调功能的对象)的回调。

将记录的数据检索到时间戳、质量和值的单独数组中。

[logIDs, logVal logQual、logTime logEvtTime] = getdata (grp),“双”);

检查工作区中数据的大小。

日志*
名称大小字节类属性logDuration 1x1 8 double logEvtTime 300x1 2400 double logIDs 1x3 438 cell logQual 300x3 126004 cell loggrate 1x1 8 double logTime 300x3 7200 double logVal 300x3 7200 double

图的数据

现在你可以在一个坐标轴上绘制这些数据。

logTime = datetime (logTime,“ConvertFrom”“datenum”);情节(logTime logVal);轴乐金显示器=传奇(logIDs);乐金显示器。自动更新=“关闭”

值数据不能提供全貌。您应该始终检查数据的质量,以确定值数组的有效性。

在质量不高的地方用标记标注情节

持有isBadQual = strncmp (logQual,“坏”3);isRepeatQual = strncmp (logQual,“重复”6);k = 1:size(logQual,2) badInd = isBadQual(:,k);情节(logTime (badInd k), logVal (badInd k),“罗”...“MarkerFaceColor”“r”“MarkerEdgeColor”“k”) repInd = isRepeatQual(:,k);情节(logTime (repInd k), logVal (repInd k),“罗”...“MarkerFaceColor”(0.8 - 0.5 0),“MarkerEdgeColor”“k”结束持有

质量差用红色标注,重复质量用橙色标注。

清理

从OPC工具箱引擎断开并删除客户端对象。

断开(da)删除(da)