Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 利用Matlab中的afsdk访问OsiSoft数据库_Database_Matlab_Osisoft - Fatal编程技术网

Database 利用Matlab中的afsdk访问OsiSoft数据库

Database 利用Matlab中的afsdk访问OsiSoft数据库,database,matlab,osisoft,Database,Matlab,Osisoft,我有一个问题是如何通过MatlabR2016和PI AF SDK访问OsiSoft的PI数据库。我阅读了PI开发者俱乐部的白皮书,使用他们的示例代码,我能够用下面的代码加载PISystems实例, 然而,PISystems变量似乎不包含任何有用的信息 afsdk = NET.addAssembly('OSIsoft.AFSDK'); import OSIsoft.AF.* import OSIsoft.AF.Asset.* import OSIsoft.AF.Time.* import Syst

我有一个问题是如何通过MatlabR2016和PI AF SDK访问OsiSoft的PI数据库。我阅读了PI开发者俱乐部的白皮书,使用他们的示例代码,我能够用下面的代码加载PISystems实例, 然而,PISystems变量似乎不包含任何有用的信息

afsdk = NET.addAssembly('OSIsoft.AFSDK');
import OSIsoft.AF.*
import OSIsoft.AF.Asset.*
import OSIsoft.AF.Time.*
import System.*

af_srvs = PISystems; 
当我检查af_SRV的内容时,它是空的,我得到

af_srvs = 

PISystems with properties:

Count: 0
Identity: Systems
DirectoryOptions: Default
Version: [1×1 System.String]
DefaultPISystem: []
为了验证PI数据库是否正常工作,我使用了Matlab以外的工具来检索数据。我可以通过Excel Datalink插件访问数据,因此PI的安装和配置似乎可以正常工作。我还检查了“PiSDK实用程序”中的设置,并配置了正确的默认服务器。你知道为什么吗

af_srvs=PIS系统


似乎是空的

看来我用错了组件。下面是一个如何从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()));

可以找到一个很好的示例代码资源

似乎我使用了错误的程序集。下面是一个如何从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()));
可以找到一个很好的示例代码资源