INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Synchronisation von zwei Prozesse



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

28.01.2022, 12:23
Beitrag #1

eginali Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2022

20.0
-
kA



Synchronisation von zwei Prozesse
Hallo liebe LabVIEW Gemeinde,

ich habe ein kleines Problem und brauche eure Stützung.
Für mein Projekt möchte ich von dem Modul NI 9205 die Spannungen von 4 Photodioden messen. Dazu habe ich ein Laserquelle und ein SourceMeter 2602A von Keithley. Der SourceMeter versorgt den Strom für die Laserquelle.
Ich habe zuerst mit SourceMeter einen SweepOperation erstellt. Mit diesem SweepOperation kann ich Strom in 500 Schritten von 3 mA bis 6 mA erzeugen. Wenn ich die SweepOperation starte, möchte ich gleichzeitig die Spannung von Photodioden mit NI-9205 messen, damit ich bestimmen kann, auf welchem Strom ich den Peak bei der Spannung habe. Ich weiß aber jetzt nicht, wie ich diese zwei Prozesse synchronisieren kann.
Ich würde mich sehr freuen, wenn Sie mir helfen könnten, diese beiden Prozesse zu synchronisieren.
Das ist mein erster Beitrag im Forum und bin offen für jede Empfehlungen.

LabVIEW-Version: 2020

Viele Grüße

Ali EGIN
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.01.2022, 13:03 (Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2022 13:10 von th13.)
Beitrag #2

th13 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 173
Registriert seit: Oct 2013

2020 SP1
2013
EN


Deutschland
RE: Synchronisation von zwei Prozesse
Hallo Ali,

Willkommen im Forum.

Das Stichwort ist die Erzeuger-/Verbraucherarchitektur. Im verlinkten Artikel werden Queues zur Kommunikation benutzt, es gibt aber noch weitere Möglichkeiten der Kommunkation zwischen Prozessen.

Edit: Beispiele findest du auch hier: File -> New... -> from Template -> Frameworks -> Design Patterns
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.01.2022, 13:20
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.424
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Synchronisation von zwei Prozesse
Hallo Ali,

ebenfalls herzlich willkommen im LabVIEW-Forum!

Zitat:Wenn ich die SweepOperation starte, möchte ich gleichzeitig die Spannung von Photodioden mit NI-9205 messen, damit ich bestimmen kann, auf welchem Strom ich den Peak bei der Spannung habe. Ich weiß aber jetzt nicht, wie ich diese zwei Prozesse synchronisieren kann.
Bitte mehr Informationen bereitstellen:
Wo steckt das NI9205-Modul drin? cDAQ oder cRIO?
Was heißt bei die "synchronisieren"? Wie genau soll das werden? ms, µs oder ns?
Wie wird das Sourcemeter angesprochen? Welche Art Kommunikation verwendest du?
Bietet das Sourcemeter einen Triggerausgang, den du für deine Messung verwenden könntest?

Allgemein:
- Du versuchst eine Messwerterfassung deines Moduls mit einem extern Gerät zu synchronisieren: das geht entweder per Triggersignal (Genauigkeit im ns/µs-Bereich) oder softwarebasiert (Genauigkeit im ms-Bereich). Du musst dich entscheiden, was du willst…
- Dein NI9205 verwendet einen MUX und schaltet zwischen den Kanälen um: du wirst nie "exakt synchrone" Messwerte erhalten. Du kannst aber den zeitlichen Versatz der Samples bestimmen…
- Du könntest den Strom über einen Shunt als weiteren Messkanal auf deine NI9205 führen und als 5. Kanal mitmessen. Dann kannst du per Datenauswertung deine Messdaten "synchronisieren", d.h. Ausgabesignal (Strom) mit Messsignal (Photodioden) abgleichen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2022, 01:21
Beitrag #4

eginali Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2022

20.0
-
kA



RE: Synchronisation von zwei Prozesse
(28.01.2022 13:03 )th13 schrieb:  Hallo Ali,

Willkommen im Forum.

Das Stichwort ist die Erzeuger-/Verbraucherarchitektur. Im verlinkten Artikel werden Queues zur Kommunikation benutzt, es gibt aber noch weitere Möglichkeiten der Kommunkation zwischen Prozessen.

Edit: Beispiele findest du auch hier: File -> New... -> from Template -> Frameworks -> Design Patterns

Hallo th13,

danke für deine Antwort. Ich werde am Montag versuchen deine Empfehlungen an meinem Projekt anzuwenden.

Viele Grüße

Ali EGIN
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2022, 01:38
Beitrag #5

eginali Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Jan 2022

20.0
-
kA



RE: Synchronisation von zwei Prozesse
(28.01.2022 13:20 )GerdW schrieb:  Hallo Ali,

ebenfalls herzlich willkommen im LabVIEW-Forum!

Zitat:Wenn ich die SweepOperation starte, möchte ich gleichzeitig die Spannung von Photodioden mit NI-9205 messen, damit ich bestimmen kann, auf welchem Strom ich den Peak bei der Spannung habe. Ich weiß aber jetzt nicht, wie ich diese zwei Prozesse synchronisieren kann.
Bitte mehr Informationen bereitstellen:
Wo steckt das NI9205-Modul drin? cDAQ oder cRIO?
Was heißt bei die "synchronisieren"? Wie genau soll das werden? ms, µs oder ns?
Wie wird das Sourcemeter angesprochen? Welche Art Kommunikation verwendest du?
Bietet das Sourcemeter einen Triggerausgang, den du für deine Messung verwenden könntest?

Allgemein:
- Du versuchst eine Messwerterfassung deines Moduls mit einem extern Gerät zu synchronisieren: das geht entweder per Triggersignal (Genauigkeit im ns/µs-Bereich) oder softwarebasiert (Genauigkeit im ms-Bereich). Du musst dich entscheiden, was du willst…
- Dein NI9205 verwendet einen MUX und schaltet zwischen den Kanälen um: du wirst nie "exakt synchrone" Messwerte erhalten. Du kannst aber den zeitlichen Versatz der Samples bestimmen…
- Du könntest den Strom über einen Shunt als weiteren Messkanal auf deine NI9205 führen und als 5. Kanal mitmessen. Dann kannst du per Datenauswertung deine Messdaten "synchronisieren", d.h. Ausgabesignal (Strom) mit Messsignal (Photodioden) abgleichen…

Hallo GerdW,

ebenfalls bedanke ich mich für deine Antwort.
Ich habe NI9205-Modul in einem cDAQ eingesteckt und dann es per USB-Kabel mit dem Computer angeschlossen.
Die SweepOperation dauert ungefähr zwischen 20 - 30ms. Es ist für uns wichtig, dass die SweepOperation und Messung mit NI9205 spätestens in 100ms ausgeführt werden. Ich möchte eigentlich hier, dass die Messungen gleich anfangen, wenn die SweepOperation startet und beenden, wenn die SweepOperation beendet. Die SweepOperation fängt mit einem Befehl über LabVIEW und mir WaitComplete bekomme ich von dem Gerät, dass die SweepOperation abgeschlossen ist.
Der Sourcemeter ist über GPIB Kabel mit dem Computer verbunden. Dazu habe ich den Treiber heruntergeladen und mit dem kontrolliere den Sourcemeter.

"Du könntest den Strom über einen Shunt als weiteren Messkanal auf deine NI9205 führen und als 5. Kanal mitmessen. Dann kannst du per Datenauswertung deine Messdaten "synchronisieren", d.h. Ausgabesignal (Strom) mit Messsignal (Photodioden) abgleichen…" : Was meinst du eigentlich hier? Könntest du mir noch ein bisschen erklären.

Ich bedanke mich im Voraus und wünsche dir einen schönen Wochenende.

Mit freundlichen Grüßen

Ali EGIN
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2022, 15:08
Beitrag #6

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 417
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Synchronisation von zwei Prozesse
Zitat:
Zitat:"Du könntest den Strom über einen Shunt als weiteren Messkanal auf deine NI9205 führen und als 5. Kanal mitmessen. Dann kannst du per Datenauswertung deine Messdaten "synchronisieren", d.h. Ausgabesignal (Strom) mit Messsignal (Photodioden) abgleichen…
Was meinst du eigentlich hier? Könntest du mir noch ein bisschen erklären.

Du weist doch nie, wann dein SourceMeter den sweep beginnt. Bestenfalls weist du, wann du den Startbefehl abschickst. Du weist nie wann der Sweep tatsächlich startet. Genauso ist es bei der Datenerfassung. Du kannst den Task zwar starten und weist, wann du das machst. Du weist aber gar nicht, wann die DAQ Hardware tatsächlich mit der Datenaufzeichnung beginnt.

Eine Lösung wäre ein Triggersignal mit dem der Start der beiden Geräte synchronisiert wird. Das ist oft gar nicht möglich.

Eine andere Lösung ist das, was Gerd vorgeschlagen hat. Mit der Datenerfassung zeichnest du nicht nur das Signal des Empfängers auf, sondern auch den Strom der des SourceMeters. Vom Signal des SourceMeters kannst du dann ablesen, wann der Sweep beginnt und wann der endet. Viel besser noch: du kennst du jedem Zeitpunkt (im Rahmen der Genauigkeit der Abtastung) auch den Strom.
Das macht auch die Auswertung recht einfach, weil du damit sofort X (Strom-SourceMeter) über Y (Signal der Photodioden) darstellen kannst.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
31.01.2022, 18:29
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Synchronisation von zwei Prozesse
Für die Synchronisation Inpt/Output gibt (oder gab?) es ein Besipiel in Labview. In diesem Thread wird des Problem erklärt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.01.2022, 19:28 (Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2022 19:29 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.424
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Synchronisation von zwei Prozesse
Hallo Ali,

Zitat:Die SweepOperation dauert ungefähr zwischen 20 - 30ms. Es ist für uns wichtig, dass die SweepOperation und Messung mit NI9205 spätestens in 100ms ausgeführt werden. Ich möchte eigentlich hier, dass die Messungen gleich anfangen, wenn die SweepOperation startet und beenden, wenn die SweepOperation beendet. Die SweepOperation fängt mit einem Befehl über LabVIEW und mir WaitComplete bekomme ich von dem Gerät, dass die SweepOperation abgeschlossen ist.
Der Sourcemeter ist über GPIB Kabel mit dem Computer verbunden. Dazu habe ich den Treiber heruntergeladen und mit dem kontrolliere den Sourcemeter.
wie schon geschrieben benötigt die Kommunikation mit dem Keithley-Gerät Zeit. Und das Keithley selbst benötigt dann auch nochmal Zeit, um deine Befehle abzuarbeiten - bevor die Sweep-Operation überhaupt beginnt! Wie willst du hier etwas "synchronisieren"?

Wie weit hast du das Manual zum Keithley gelesen? Hast du dich mit den DigitalIOs beschäftigt, die das Gerät bietet? Hast du dich mit der Keithley-eigenen Programmiersprache beschäftigt, um diese DIOs zu verwenden? (Ich habe mir den LabVIEW-Treiber nicht angeschaut, kann also nicht beurteilen, ob dieser auch diese DIOs ansprechen kann.) Für mich sieht das so aus, als wenn du das Keithley so programmieren könntest, dass es vor dem Start eines Sweeps einen DIO schalten kann - und das könntest du dann als Starttrigger für deine Messwerterfassung verwenden… (Das war, was ich oben schon zum Thema "Triggersignal" geschrieben hatte.)

Zitat:"Du könntest den Strom über einen Shunt als weiteren Messkanal auf deine NI9205 führen und als 5. Kanal mitmessen. Dann kannst du per Datenauswertung deine Messdaten "synchronisieren", d.h. Ausgabesignal (Strom) mit Messsignal (Photodioden) abgleichen…" : Was meinst du eigentlich hier? Könntest du mir noch ein bisschen erklären.
Wie auch von Martin schon ergänzt: du misst einfach nicht nur deine Photodiodensignale, sondern auch den Strom durch die Dioden. Und kannst dann deine Messwerte analysieren/auswerten und (relativ) "problemlos" den Beginn/Ende des Sweeps bestimmen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: