28.01.2022, 13:03
(Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2022 13:10 von th13.)
Beitrag #2
|
th13
LVF-Gelegenheitsschreiber
Beiträge: 178
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
|
|
|
28.01.2022, 13:20
Beitrag #3
|
GerdW
______________
Beiträge: 17.480
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…
|
|
|
29.01.2022, 01:21
Beitrag #4
|
eginali
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
|
|
|
29.01.2022, 01:38
Beitrag #5
|
eginali
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
|
|
|
31.01.2022, 15:08
Beitrag #6
|
Martin.Henz
LVF-Team
Beiträge: 429
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.
|
|
|
31.01.2022, 18:29
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
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.
|
|
|
31.01.2022, 19:28
(Dieser Beitrag wurde zuletzt bearbeitet: 31.01.2022 19:29 von GerdW.)
Beitrag #8
|
GerdW
______________
Beiträge: 17.480
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…
|
|
|
| |