2017-03-06 4 views
1

Ich habe eine Frage, wie ich mit Matlab R2016 und dem PI AF SDK auf die PI Datenbank von OsiSoft zugreifen kann. Ich las das Whitepaper "Using PI Data with MATLAB" durch das PI DEVELOPERS CLUBS und mit ihrem Beispielcode: Ich kann die PiSystems Instanz mit dem Code laden unten, jedoch die PiSystems Variable nichtZugriff auf die OsiSoft-Datenbank via AF Sdk in Matlab

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

af_srvs = PISystems; 
nützliche Informationen zu enthalten scheint

Wenn ich den Inhalt af_srvs überprüfen, ist es leer und ich

af_srvs = 

PISystems with properties: 

Count: 0 
Identity: Systems 
DirectoryOptions: Default 
Version: [1×1 System.String] 
DefaultPISystem: [] 

um sicherzustellen, dass die PI-Datenbank wird im allgemeinen arbeiten, habe ich andere Werkzeuge als Matlab Daten abzurufen. Ich konnte über das Excel Datalink-Plugin auf Daten zugreifen, sodass die PI-Installation und -Konfiguration funktioniert. Ich habe auch die Einstellungen im "PI SDK Utility" überprüft, der korrekte Default Server ist ebenfalls konfiguriert. Irgendwelche Ideen warum

af_srvs = PISystems;

scheint leer zu sein?

Antwort

0

Es scheint, dass ich die falsche Baugruppe verwendet habe. Hier ist ein minimales Beispiel dafür, wie eine Probe von PI zu lesen

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())); 

Eine gute Quelle für Beispielcode gefunden werden kann here

Verwandte Themen