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

Zwei Messungen gleichzeitig durchführen

 

mi-sta
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2013, 09:45     Titel: Zwei Messungen gleichzeitig durchführen
  Antworten mit Zitat      
Hallo,

Ich habe da ein wahrscheinlich nicht all zu großes Problem, finde aber keine Lösung. Und zwar würde ich gerne mit Matlab zwei Messungen gleichzeitig durchführen, ich kriege das aber mit dem createParallelJob nicht hin. Die Messergebnisse liefert mir dabei eine Messkarte von NI. Wenn mir jemand ein Codebeispiel geben könnte, wäre mir sehr geholfen. Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.04.2013, 09:55     Titel:
  Antworten mit Zitat      
Hallo,

solche Beispiele gibt es an sich in der Dokumentation.
Es wäre hilfreich, wenn du deine Probleme etwas genauer beschreiben kannst, am besten anhand von Code. Hast du denn mal ein einfacheres Beispiel versucht, ohne Anbindung an eine Messkarte, oder liegt genau darin das Problem?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mi-sta
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2013, 10:08     Titel:
  Antworten mit Zitat      
Stimmt, in der Dokumentation steht das folgende Beispiel:

pjob = createParallelJob();
createTask(pjob, 'rand', 1, {3});

set(pjob,'MinimumNumberOfWorkers',3);
set(pjob,'MaximumNumberOfWorkers',3);

submit(pjob);

waitForState(pjob);
out = getAllOutputArguments(pjob);


Statt der Funktion 'rand' würde ich die Funktion
daqrecord('nidaq', 'Dev1', 1, 100, 1)
verwenden, leider klappt das aber nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wenn etwas nicht klappt, poste bitte immer die Fehlermeldung.

Das kann so auch nicht klappen: statt 'rand' solltest du nur den Funktionsnamen angeben (z.B. daqrecord). Statt 1 solltest du die Anzahl der Rückgabeargumente angeben, hier wohl 0. Statt {3} ein Cell Array mit deinen beim Funktionsaufruf benötigten Eingabeargumenten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mi-sta
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 18.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.04.2013, 12:32     Titel:
  Antworten mit Zitat      
Danke, soweit habe ich es begriffen. Wie bekomme ich dann aber die Ergebnisse meiner Funktion?

pjob = createParallelJob();

createTask(pjob, 'daqrecord', 0, {'nidaq', 'Dev1', 1, 100, 1})


set(pjob,'MinimumNumberOfWorkers',2);
set(pjob,'MaximumNumberOfWorkers',2);

submit(pjob);

waitForState(pjob);
out = getAllOutputArguments(pjob)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.04.2013, 12:53     Titel:
  Antworten mit Zitat      
Hallo,

sorry, aber ich kenne mich mit daqrecord nicht aus. Wenn du sagst, dass du den Aufruf
Zitat:
daqrecord('nidaq', 'Dev1', 1, 100, 1)

machen willst, dann kommen da keine Rückgabeargumente zurück. Wo dann deine Daten landen, weiß ich nicht.

Wenn du die Funktion doch mit Rückgabeargumenten aufrufen willst, musst du eben bei createTask statt 0 die gewünschte Anzahl Argumente angeben. Über getAllOutputArguments bekommst du dann die Ergebnisse.

Ich würde übrigens noch ein
Code:
destroy(pjob)
anfügen, weil die Daten sonst weiter gespeichert bleiben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 19.04.2013, 19:56     Titel:
  Antworten mit Zitat      
kann man davon ausgehen, dass es im sequentiellen Betrieb klappt? Poste mal den Code.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
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 - 2025 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.