我有一个问题,如何通过Matlab和PI AF SDK访问OsiSoft的PI数据库。我阅读了PI开发人员俱乐部的白皮书"Using PI Data with MATLAB",使用他们的示例代码,我能够使用下面的代码加载PISystems实例,但是,PISystems变量似乎没有包含任何有用的信息
afsdk = NET.addAssembly('OSIsoft.AFSDK');
import OSIsoft.AF.*
import OSIsoft.AF.Asset.*
import OSIsoft.AF.Time.*
import System.*
af_srvs = PISystems; 当我检查af_srvs的内容时,它是空的,我得到
af_srvs =
PISystems with properties:
Count: 0
Identity: Systems
DirectoryOptions: Default
Version: [1×1 System.String]
DefaultPISystem: []为了验证PI数据库是否正常工作,我使用了Matlab以外的工具来检索数据。我能够通过Excel Datalink插件访问数据,所以PI安装和配置似乎可以正常工作。我还检查了"PI SDK Utility“中的设置,也配置了正确的默认服务器。你知道为什么吗?
af_srvs = PISystems;
似乎是空的?
发布于 2017-03-07 04:44:21
似乎我用错了程序集。下面是一个如何从PI中读取样本的最小示例
afsdk = NET.addAssembly('OSIsoft.AFSDK');
import OSIsoft.AF.PI.*;
piservers = OSIsoft.AF.PI.PIServers;
%ListNET(piservers)
%simply grab the default server
%to get a non-default server use pisrv = piservers.Item('servername');
pisrv = piservers.DefaultPIServer;
point = PIPoint.FindPIPoint(pisrv,'Sinusoid');
fprintf('The value of %s is %f at %s \n', char(point.Name), point.Snapshot.Value, char(point.Snapshot.Timestamp.LocalTime.ToString()));可以在here中找到一个很好的示例代码资源
https://stackoverflow.com/questions/42632257
复制相似问题