LabVIEWForum.de - Trigger Signal über SCPI senden

LabVIEWForum.de

Normale Version: Trigger Signal über SCPI senden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Forum,
ich brauche mal wieder eure Hilfe.
Folgende Situation. Ich habe einen Rigol DS4062 Funktionsgenerator mit dem ich ein Pulssignal erzeuge. Dieses Pulssignal soll immer nach erhalt eines Triggers über Labview ausgelöst werden und zwar über den SCPI-Befehl *TRG. Der Funktionsgenerator gibt bei erhalt eines Triggers ein Synchronisationssignal an meine Messkarte PCI BNC-2110 aus. Die Messkarte startet nach erhalt des Triggersignals die Messung für aktuell 100ms.
Mein Problem ist, dass das VI für das Triggerignal nicht richtig funktioniert. Ich stelle über den Befehl wait in der flat sequenz die Zeit ein die zwischen zwei Trigger vergehen soll. Allerdings gibt er z.B. wenn ich sage warte 10s (10000 ms) alle 20s ein Triggersignal aus.
Ich dachte erst es liegt an dem Timeout im Trigger.vi, aber selbst wenn ich das lösche, stimmt die Zeit zwischen den Triggersignalen nicht.
Im Anhang ist einmal das Trigger.vi und dann noch das Programm für die Messkarte angehängt.

Gruß,
Greensche
Habe das Problem gelöst 2hands
Habe jetzt einfach eine Zeitgestuerte Schleife verwendet und nun funktioniert alles wie es soll.

Gruß
Offtopic2
(22.07.2016 11:06 )Greensche schrieb: [ -> ]Der Funktionsgenerator gibt bei erhalt eines Triggers ein Synchronisationssignal an meine Messkarte PCI BNC-2110 aus.
Das ist keine Messkarte, sondern ein Anschlußblock!

Gruß, Jens
Hallo Jens,
danke für den Hinweis Smile.

Leider funktioniert die Zeitgesteuerte Schleife nur für kurze Zeitabstände von z.B. 5 Minuten. Ich möchte erreichen, dass die Schleife alle 60 min einmal ausgeführt wird, aber leider bricht die Schleife auf Grund eines Errors nach Ablauf der eingestellten Periode einfach ab. Mir ist nicht klar wieso. Ich habe eine 1kHz Source gewählt und die Periode entsprechend in ms angegeben. Verstehe einfach nicht wo der Fehler liegt.

Hoffe Ihr könnt mir helfen.

Gruß
Hallo Greensche,

Zitat:aber leider bricht die Schleife auf Grund eines Errors nach Ablauf der eingestellten Periode einfach ab. Mir ist nicht klar wieso.
Mir leider auch nicht, da du vergessen hast, die Fehlermeldung oder wenigstens die Fehlernummer anzugeben…

Zitat:Ich habe eine 1kHz Source gewählt
Wozu wählst du auf einem Windows-PC überhaupt explizit eine Timingquelle? 1kHz ist doch schon als Standard vorgegeben…

Zitat:und die Periode entsprechend in ms angegeben.
Wenn ich dein VI öffne, steht da eine Null…

- Wozu muss man eine Kommunikation über die serielle (?) Schnittstelle per zeitgesteuerter Schleife starten? Die serielle Schnittstelle und das daran hängende Gerät arbeiten nicht "deterministisch"/"realtime", da ist das einfach Overkill!
- Wozu eine zeitgesteuerte Schleife, die auf die Millisekunde genau etwas machen soll, wenn sowohl das Betriebssystem als auch das verwendete Gerät/Bus Jitter ins Messsystem bringen?
- Wozu eine zeitgesteuerte Schleife, wenn du darin erstmal die serielle Schnittstelle öffnest? Auch sowas benötigt Zeit - und du weißt nicht, wieviel…

Verwende einfach eine normale While-Loop mit einer Wartezeit drin…
Ich würde NIE 60 min am Stück mit nur 1 Wait warten, auch nicht in einer Timed-Loop. Dann lieber 3600x 1 Sekunde warten, und nur jedes 3600ste Mal VISA-Write ausführen!

Gruß, Jens
Hallo GerdW,
danke für deine Hinweise. Ich habe es jetzt nochmal mit einer While-Schleife probiert. Diese funktioniert auch wunderbar, wenn ich jede Minute ein Triggersignal erzeugen möchte. Jedoch schon bei der Aufgabe das die Schleife alle 5 min ein Triggersignal erzeugen soll, funktioniert es nicht mehr. Und Labview gibt überhaupt keinen Fehler aus, sonst würde ich den hier mit angeben.
Und falls die Variante so mit 60min am Stück warten keine gute Idee ist, dann wäre ich dankbar über einen Code wie man es sonst machen soll.

Gruß
Hallo Greensche,

wer wartet denn schon 5Mio ms?
Übrigens: 5Mio ms = 5000s = 1h23m20s - wie kommst du darauf, dass du damit stündlich einen Trigger erzeugen könntest? (Oder wolltest du damit diese 5min warten???)

Wie Jens schon sagte: lieber 3600mal 1s warten - und erst beim 3600mal deinen Trigger auslösen!
Hallo Gerd,
danke für den Hinweis. Da hatte sich eine Null zu viel eingeschlichen. Allerdings funktioniert die Schleife auch nicht wenn ich da dann die gewünschten 3600000 ms einstelle.
Dann muss ich mall gucken wie ich das mit den 3600 s warten hinkriege.
Beitrag #6 und #8 geben dir einen sinnvollen Hinweis!!!

Gruß, Jens
Seiten: 1 2
Referenz-URLs