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

startBackground zur Datenerfassung mit NI-DAQ

 

pfeili
Forum-Century

Forum-Century


Beiträge: 177
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 31.01.2020, 10:01     Titel: startBackground zur Datenerfassung mit NI-DAQ
  Antworten mit Zitat      
Liebe Leute,

ich möchte mit meinem NI USB 9162 gern Daten erfassen, während mein Skript weiter durchläuft, bis der Befehl "stop" auftritt und die Datenerfassung abbricht. Hierzu fand ich bisher folgendes

Code:

% Session anlegen
s = daq.createSession('ni');
% Analogen Input für Kanal 0 für Spannungsmessung hinzufuegen
addAnalogInputChannel(s,'Dev1',0,'Voltage');
% Gibt vorhandene Daten an die Subfunktion plotData weiter?
lh = addlistener(s,'DataAvailable',@plotData);
% Abtastrate in Hz
s.Rate = 1000;

% s.IsContinuous = true;

function plotData(src,event)
    plot(event.TimeStamps,event.Data)
end

% Messung starten
startBackground(s);

% ...
% hier würde jetzt mein weiterer Code ausgeführt werden
% ...

% Messung beenden
stop(s)

 


Nun ist meine Frage: wie komme ich denn an die erfassten Daten heran, um sie einer Variable zuzuweisen, plotten und speichern zu können? Geht es analog zu

Code:

[data,timeStamps,triggerTime] = startForeground(s);
 


zu regeln? Das funktionierte bei mir bisher immer super, ist aber für den aktuellen Fall nicht brauchbar. Könnt ihr mir hier bitte weiter helfen? Ganz lieben Dank.

Viele Grüße
pfeili
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.01.2020, 11:04     Titel:
  Antworten mit Zitat      
Hallo,

wenn es "nur" um das Plotten geht, ist ja ein Beispiel in der Doku: Acquire Data in the Background.

Wenn die Daten während der Messung anderweitig verarbeitet werden sollen, muss das in die plotData mit rein.
Wenn die Daten anschließend verarbeitet werden sollen, kann es am einfachsten sein, sich die aktuellen Daten aus dem Plot raus zu holen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili
Themenstarter

Forum-Century

Forum-Century


Beiträge: 177
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 31.01.2020, 13:17     Titel:
  Antworten mit Zitat      
Hallo Harald,

leider nicht. Ich will mit den Daten weiterrechnen. Die Daten aus dem Plot zu nehmen, daran hatte ich auch gedacht, aber die darin dargestellten Daten werden bis zum Erreichen des stop-Befehls ständig überschrieben, auch wenn ich eine s.Duration vorgebe. Es werden scheinbar immer x Datenpunkte angezeigt und dann wird wieder drüberaktualisiert. Hast du eine Idee, wo ich diese Periode ändern kann? Liegt dort ein timer dahinter?

Ganz lieben Dank für deine rasche Antwort.

Viele Grüße
pfeili
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.01.2020, 17:04     Titel:
  Antworten mit Zitat      
Hallo,

willst du mit den Daten am Ende weiterrechnen oder live?
Um Daten zu behalten, würde ich die Daten in der Application Data (setappdata / getappdata) der Figure ablegen. Das dürfte am einfachsten sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili
Themenstarter

Forum-Century

Forum-Century


Beiträge: 177
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 03.02.2020, 08:42     Titel:
  Antworten mit Zitat      
Hallo Harald,

am Ende sollte damit weitergerechnet werden. Ich habe auch schonmal Daten aus einem figure extrahiert, aber das Problem ist hier eben, dass die Daten blockweise reingeplottet werden.

Viele Grüße
pfeili
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2020, 10:11     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe das Problem, und Application Data ist eine Lösung dafür, weil du da selbst kontrollieren kannst, was gespeichert wird. Beispielsweise:

Code:
oldX = getappdata(f, 'x');
setappdata(f, 'x', [oldX, newX])


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.