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!
Wie ich bereits in meinen vorhergehenden Beiträgen geschrieben habe, bin ich recht neu in LabVIEW und habe so mein ein oder anderes Problem.
Nun arbeite ich an meinem ersten Programm, der Ansteuerung eines Frequenzgenerators und das Auslesen eines MCS-Karte.
Kurzer Überblick was ich machen will:
In unserem Experiment möchte wir mit Hilfe eines Frequenzgenerators ein Sinussignal erzeugen und auf das Experiment loslassen. Dann soll mit Hilfe eines MCS das Messsignal aufgenommen und ausgewertet werden. Dann soll noch eines Frequenzscan usw. möglich sein. Das Programm muss also die Frequenzgenerator einstellen und nach einem kurzen Delay das MCS Karte auslesen.
Nun geht es um die Umsetzung des Programms, in der ich grosse Schwierigkeiten habe. Angedacht von mir waren zunächst die Erarbeitung von 3 Frontpanelen, ein Mainfrontpanel und zwei, die für jedes Gerät stehen und im Frontpanel zur Konfiguration der Geräte aufgerufen werden können. Soweit bin ich. Wie ich aber nun den Programmablauf programmiere ist mir leider nicht ganz klar. Ich möchte das ganze weitestgehend kapseln. Zum Beispiel dachte ich an ein Subvi, wo ich die Routine zum einstellen der Frequenzgenerators schreiben (setze Funktion, Amplitude, Frequenz, Offset usw.). In einem anderen SubVi halt das Auslesen der Karte usw.
Also grob sind Ideen dar, aber irgendwie scheitere ich an der Umsetzung. Darum meine bitte um Hilfe bei der Erstellung eines passenden Projektentwurfes. Vielmehr würde ich mich um Anregungen oder sowas ähnliches freuen, da ich derzeit ziemlich festgefahren habe und denke, dass einige hier solch ein Programm ohne weiteres erzeugen würden.
ich habe mal ein kleines BeispielVI zusammenstellt. Dabei habe ich normale Schleifen eingesetzt, da du ja nur LV6.1 hast. Ich glaube dort gab es noch keine zeitgesteuerten Schleifen.
Hier ein kleine Beschreibung des VI's
Im HauptVI läuft eine Schleife. Wenn nun der Knopf für den Generator gedrückt wird, so öffnet sich das SubVI für den GEnerator. Sind alle Einstellungen getätigt, wird das SubVI beendet.
Da du geschrieben hattest, dass dann automatisch die Karte ausgelesen werden soll, habe ich dann eine Automatik vorgesehen, dass beim nächsten Durchgang des HauptVI's, das SubVI für die Karte gestartet wird. Den Delay kann man über die Zeitverzögerung einstellen.
Danke Sven für Deine Unterstützung, aber wie du selbst geschrieben hast, ich habe nur LabVIEW 6.1 zur Verfügung und kann so Dein Beispiel nicht öffnen...
Oh, man, nun schreibe ich das schon und denke doch nicht dran.
Habe mal ein Screenshot von dem Blockschaltbild und dem Frontpanel gemacht. Hoffe, dass es dir ein etwas bringt. Leider kann man mit 7.1 nicht mehr auf Version 6 speichern.
Auch wenn das Thema schon etwas älter ist, so möchte ich den Gedanken zu einem guten Programmaufbau nochmal aufgreifen. Das Thema beschäftigt mich nun schon einige Tage und ich wollte das hier gerne nochmal antriggern.
Ich habe nun ein , naja zwar funktionierendes aber sehr benutzerunfreundliches, Programm zur Resonanzmessung fertiggestellt. Persönlich bin ich mehr als unzufrieden, auch wenn es seinen derzeitigen Zweck erfüllt. Als Beispiel hab ich mal das Frontpanel unten mit angehangen. Daraus geht vielleicht dem einen oder anderen die Idee meines kleinen Messprogrammes hervor.
Das ebenfalls angehängte Diagramm ist nicht unbedingt der Quellcode dahinter, soll vielmehr die Diskussion anregen. Auch wenn ich es so nicht umgesetzt habe, wollte ich mal Eure Meinung zu dem ersten Aufbauschritt eines Messprogrammes wissen.
Ist es sinnvoll, zwei unabhängige Schleifen laufen zu lassen? Die Event Loop soll auf die Benutzereingaben des Anwenders reagieren, so dass z.B. nach Auswahl des Scan Modes einige Controls deaktiviert werden oder sich der Wert eines Controls verändert.
Die 2te Schleife soll dann die eigentlich Messschleife repräsentieren, die nach Drücken des Start Buttons losgetreten wird. Oder gibt es dort einfachere und effektivere Methoden? Vielleicht ist meine Frage auch einfach zu trivial, aber ich habe leider nicht die Erfahrungen, wie ein Programm am sinnvollsten Umsetzen sollte.
wie ich es verstanden habe bist du irgendwie frustriert und weisst nicht, wiee du dein Programm richtig umsetzen musst. Dazu folgender Link http://www.LabVIEWforum.de/index.php?showtopic=2943 , lese da meinen Beitrag mit Beispielen.
Benutzerfreundlichkeit ist natürlich eine sehr wichtige Sache. Nun da musst du deine Kreativität einsetzen und sich vorstellen, was dir nicht gefallen würde, wenn du Benutzer wärst. Zeige dein FP und die Funktionalitäten des Programms deinen Kollegen.
Mein Tipp: mach dein Programm so einfach wie möglich.
Du kannst z.B. die Einstellungen in eine INI-Datei abspeichern, so dass die zuletzt eingestellte Werte von dieser Datei ausgelesen werden. Was sehr gut beim Kunde ankommt sind die Profile. Wenn der Kunde z.B. verschidene Messungen machen will und nicht immer die neu einstellen will, kannst du Messprofile erstellen und abspeichern.
Dann kanst du dein FP ein bisschen farbiger und interessanter gestalten. Na ja, es kommt darauf an, wie ernst die Kunden sind.
Du kannst auch den Verbindungsstatus und den Status deines Frequenzgenerators anzigen. Du kansst dein Prog auch lebendiger machen in dem du schreibst was gerade passiert. Du kannst irgendwelche bewegliche GIFs auf dein FP platzieren. Du kannst ein Intro machen wo die Information über das Programm(z:B. Versionsnummer) und über den Entwickler oder Firma angezeigt wird.