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!
mein nächsts Problem ist nun, dass ich gerne 2 Messgeräte synchronisieren würde.
Ich habe also 2 funktionierende Programme für 2 Leistungsmessgeräte die beide über Rs232 angesprochen werden.
Aus den beiden Programmen würde ich gerne ein Programm machen und zwar soll wenn ich auf einen Measure Button drücke beide Programme gleichzeitig anfangen zu messen und zwar synchron.
Die Einstellungen am Gerät habe ich bereits getroffen nur weiß ich nun nicht wie ich das unter LabView realisieren soll ich kann die beiden Programme ja nicht einfach zusammenkopieren ....
Ich lade mal die beiden Programme hoch damit ihr euch es ansehen könnt
Hmm, hab wieder geschaut. Doch wenns nun um Melder geht, dann wirds für mich auch Neuland.
Mein Gedanke dazu ist, dass du das zweite Programm bzw den aktiven Teil daraus, also die Abfrage, mit in das Event vom Meausre Button geben kannst. Einfach als parallelen Prozess. Dann weißt du zwar nicht, wer jetzt wann Rechenressourcen bekommt, aber da du eh zwischendurch die Wartezeiten beim VISA hast, die im Verhältnis länger als die Abfragen selber dauern sollten, stell ich mir das nicht als Problem vor.
Zumindest dauert bei meinen VISA Abfragen immer die eigentliche Prozedur nur einen Bruchteil der Wartezeit.
Grüße,
Takuro
Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
Takuro, könntest du deinen Gedanken ein bischen ausführlicher erläutern ich bekomme es nicht richtig hin.
Ich gehe auf 'event bearbeiten...' und dann möchte ich da ja ein neues Ereignis hinzufügen wobei ich mir gedacht habe ich wähle hier die 'measure' vom zweiten Programm aus da wenn die true ist denke ich mal die Messung beim zweiten Programm gestartet wird. Ich muss dazu sagen dass ich mir hierbei nicht sicher bin da ich das zweite Programm vom Hersteller bezogen hab und nicht selber geschrieben habe.
manchmal ist es wirklich besser, VIs anzuhängen...
Zitat:Ich gehe auf 'event bearbeiten...' und dann möchte ich da ja ein neues Ereignis hinzufügen
Die Eventstruktur unterscheidet zwischen dem Hinzufügen eines Event(cases) und dem Hinzufügen einer Event-Quelle. Leider geht aus deiner Ausführung nicht vor, was du hier meinst...
Zitat:ich wähle hier die 'measure' vom zweiten Programm aus
Willst du ein Event, das in einem anderen VI erzeugt wird, verwerten? Das geht nicht so einfach (aber es geht)...
Bitte:
Fragen immer so stellen, dass alle nötigen Fakten für alle klar sind - und nicht nur demjenigen, der alle VIs vor sich auf dem Monitor sieht...
Ok, wenn du das nicht selber geschrieben hast, wird das ganze wohl nix mit reinkopieren.
Ich verstehe das zweite Programm so: Du hast unten deine Eventstruktur. Wenn auf "measure" geklickt wird, dann wird der entsprechende Melder gesetzt. Dies löst dann den Case oben aus. Im Unterpunkt Measure läuft dann die eigentliche Messung ab.
Ich habe bei meinem Projekt einen ähnlichen Fall: Ich habe einen Analysator-Prototyp, wozu die Firma mit ein LabView VI gestellt hat, mit dem ich den Analysator einzeln betreiben kann. Nun möchte ich den Analysator aber in ein großes Projekt einbinden, sodass mein Programm die Steuerung übernimmt.
Ich habe es folgendermaßen gelösst: Das gestellte VI habe ich so modifiziert, dass die Eigentlichen Buttons als Eingang definiert sind (Weißte wie? Falls nicht: Auf dem Frontpanel oben rechts auf das Symbol wo bei dir Demo steht mit einem Symbol darunter -> Rechtsklick -> Anschluss anzeigen. Dann kannst du dort die Elemente des Frontpanels als Ein- und Ausgänge definieren). Das so modifizierte VI setzte ich als SubVI in meinem Hauptprogramm ein. Dort übergebe ich dann z.B. an den Measure Button ein True. Damit wird die Messung im SubVI ausgelöst. Falls noch weitere Einstellungen in dem SubVI nötig sind, kannst du die auch als Eingänge definieren. Die MEsswerte sind dann der Ausgang. Ich würde dann bei dir die "Messwerte in Datei schreiben" Express-VI rausnehmen, für die gebündelten Signale eine Anzeigeelemeten erstelen und dies dann als Ausgang definieren. Im Hauptprogramm kannst du diese dann weiterverarbeiten.
Ich hoffe das war so verständlich, wenn nicht, frag gerne nochmal nach, dann versuch ich das selber mal hinzubasteln.
Grüße,
Takuro
Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
30.05.2012, 14:24 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2012 14:37 von Diabolik666.)
hallo,
ich hänge mal die Datei an , wobei das nun 2 Programme sind die ich einfach in eine Datei eingefügt habe.
Ja ich möchte , dass wenn der measure button von dem ersten Programm ( Basic Serial Read and Write) auch praktisch der measure button des zweiten Programms gedrückt wird also damit beide Programme zum selben Zeitpunkt anfangen zu messen.
Takuro, mir ist klar wie ich ein SubVi erstelle nur verstehe ich nicht wie genau ich die Verbindung zwischen dem Sub Vi und dem Measure Button realisieren solle also wie ich LabVIEW klar machen soll dass er die Messung dann im SubVi auslösen soll ?
Wäre echt super wenn du es mal probieren könntest habe...ich hänge hier nochmal 2 VIs an da die davor geposteten etwas geändert wurden also am besten mit denen probieren
Du müsstest jetzt nur in deinem eigenen Programm Measure drücken, dann sollte beides funktionieren.
Das setzt voraus, das alle anderen Einstellungen in dem zweiten VI schon gemacht sind. Wenn die sich ändern, müssen die dem SubVi noch übergeben werden.
Grüße,
Takuro
P.S.: Ich hoffe das Konvertieren auf 8.2 hat geklappt
Neu, aber motiviert. Nehme immer gern Verbesserungsvorschläge an!
Sorry Jungs, aber hier muss ich jetzt endgültig einmal einhaken. Das was ihr hier fabriziert ist schon ziemlich Harakiri!
Erstmal zum 'Zusammenkopieren' der beiden VIs. Wie soll das denn im realen Betrieb funktionieren? Man muss ja zuerst im Code das Sub-VI öffnen, dort alles Einstellen und das Main-VI ausführen. mMn nicht praktikabel. Soll daraus auch mal eine *.exe werden? Außerdem läuft das LGDemo selbst mit einer Eventstruktur, welche auf Benutzereingaben reagiert. Mann kann hier ja generell froh sein, das LV an dieser Stelle 'Handzahm' ist, in anderen Programmiersprachen wäre das nicht so einfach mit dem zusammenkopieren von Code.
Nochmal grundsätzlich zur Steuerung der Geräte. Es sind doch jetzt alle Befehle bekannt, um mit dem Gerät kommunizieren zu können? Sehe ich das jetzt richtig? Dann würde ich folgendes vorschlagen:
- Generelle Progammstruktur überlegen, die es ermöglicht mit beiden Geräten zu interagieren (Ablaufdiagramm erstellen, ToDo-Liste schreiben, usw.)
- Programmstrukturen testen (z.B. Das Producer-Consumer Konzept würde sich hier mehr als gut eignen!)
- Grundstruktur des Programs erstellen. Generellen Ablauf implementieren und erstmal beide Geräte ansperechen und jeweils nur einen Wert abfragen.
- mit Sub-Vis arbeiten. Einzelne Lese- und Schreibzugriffe der Geräte in Sub-VIs auslagern, so können Sie immer wieder verwendet werden. (Selbst beim letzten VI ist das BD schon 5 Bildschirme breit!)
- Wenn das alles steht, die restlichen Funktionen erstellen und testen
Nur somal als Denkanstoss.
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
funktioniert leider nicht.
Einstellungen müssen beim zweiten Programm keine getroffen werden nur am Messgerät selbst.
Nach Klick auf measure zeigt er mir nur die Messwerte vom ersten Messgerät an.
Wenn du sonst noch eine Idee hast immer her damit