WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

OPC Server auslesen im Intervall

 

s4y
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2012, 11:50     Titel: OPC Server auslesen im Intervall
  Antworten mit Zitat      
Hallo ich hätte da mal eine Frage.

Und zwar geht es um das Auslesen von Daten aus dem OPC Server. Ich möchte das in einem bestimmten Intervall bspw. 1 Sekunde Daten ausgelesen werden. Ich hab das bisher mithilfe des Loggings gemacht.

Code:
%Programmcode:
    da = opcda('172.16.1.11', 'Freelance2000OPCServer.23.1');  
    da.Timeout = 15;
    connect(da);

grp_smb = addgroup(da);  
set(grp_smb,'UpdateRate',1);

SMB_UV02_Disp_AU = additem(grp_smb, 'SMB_UV02_Disp_AU', 'single','on');
start(grp_smb);



Da er aber nur Data Change Events erzeugt sind die Schritte nicht äquidistant. Das wäre aber wichtig für das Optimieren später.
Ich hab dann mit refresh gearbeitet.

Code:
%Programmcode:
    da = opcda('172.16.1.11', 'Freelance2000OPCServer.23.1');  
    da.Timeout = 15;
    connect(da);

grp_smb = addgroup(da);  
set(grp_smb,'UpdateRate',1);

SMB_UV02_Disp_AU = additem(grp_smb, 'SMB_UV02_Disp_AU', 'single','on');  % Wert der ausgelesen werden soll

T = timer;
T.Period = 1.; % seconds;  % Zeitintervall
T.ExecutionMode = 'fixedDelay';
T.TimerFcn = 'refresh(grp_smb)';   % Funktion pro Sekunde
T.ErrorFcn = 'm105_errorbeep';     %Funktion bei einem Fehler
T.Startdelay = 1;

start(T);
start(grp_smb);



In der Funktion refresh(grp_smb) steht nur der Befehl refresh(grp_smb).
Er soll praktisch pro Sekunde eine Data Change Event erzwingen.
Hier ist das Problem das er die Zeit nicht ändert.
Bsp.: Ich mache ein Sprungexperiment und in den ersten 15 Sekunden ändert sich nichts. Er schreibt, das ist gut, jede Sekunde den gleichen Wert der ausgelesen werden soll rein, jedoch ändert sich nun die Zeit nicht. Der tStamp bleibt solange gleich bis sich tatsächlich der auszulesende Wert ändert. Nun hab ich das gleich Problem wie vorher. Beim Plotten hab ich einen Anfangswert und erst nach 15 Sekunden einen neuen Zweitwert.

Ich bin echt am verzweifeln. Da muss es doch was geben.
Bin für jeden Tipp dankbar.
Vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


s4y
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 05.10.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2012, 12:14     Titel:
  Antworten mit Zitat      
Weiß niemand etwas darüber. Ich würde auch eine gänzlich andere Art der Datenauslesung nehmen können. Falls jemand, etwas weiß, wie man in einem festen Intervall ausliest auch wenn sich nichts ändert, wäre das super.
Für jeden Tipp dankbar.
viele Grüße
und Danke im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.