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!
ich war letztes jahr im LabView Core 3 und darf jetzt ein neues Programm erstellen. Habe mich natürlich gefreut, hatte ja ein Seminar.
Mein Plan ist ein Nachrichten-Queue System (habe ich ja gelernt )
In der Planung kommen aber gerade 2 Fragen auf, wollte da mal Euch befragen:
Aber zuerst mal simpel erklärt:
Im Prinzip habe ich eine Auswertung, der ich sage Messen und bekomme dann ein Messergebnis.
Vom Ablauf habe ich:
Justieren -> Parametrieren -> Kalibrieren
mit dem Start soll alles automatisch ablaufen (diverse Einstellungen vorweg).
Wo definiere ich meinen Ablauf, in der Hauptschleife (wo alle Befehle verteilt werden)?
Kann ich bei dem System ein debug logfile erstellen? (Queues werden ja geleert)
-> beim schreiben ist es mir eingefallen: beim verarbeiten und weitergeben in der Hauptschleife auch an die Debug logfile eine Queue senden
Wie handhabt Ihr das mit Abläufen, sind die fest forgegeben, zB durch ein Array oder ein "es kam der Befehl, dann muss ich jetzt den Befehl als nächstes schicken"-Prinzip?
Benutzt Ihr die "Queued Message Handler" Vorlage?
Danke, das du es bis hier her durchgehalten hast
Timo
Justieren ist dem Gerät sagen was es anzeigen soll, kalibrieren ist die Kontrolle dieser Anzeige. Eichen ist ein längerer Prüfprozess und darf nur das Eichamt!
wenn du Sequenzen hast ist es besser diese in einem Schritt in die Qeue einzureihen, ansonsten könnten andere Prozesse schon Nachrichten einreihen und damit deinen Ablauf stören. Das kann dann zu Fehlern oder einen nicht gewollten Verhalten führen.
Bsp: Messung bevor die Kalibrierung abgeschlossen ist.
Meine Programme plane ich so, dass die Zugriffe auf die Hardware meine niedrigste Ebene sind. Diese bekommen Befehle von den Prozessen, welche die Daten verarbeiten und ganz oben steht ein Steuerungsprozess. Man kann natürlich die Abläufe auch so gestalten, das die Prozesse sich untereinander Nachrichten zuschieben und damit den Steuerungsprozess und Datenverarbeitung sparen. Finde ich aber schwierig zu dokumentieren und was ist, wenn man später mehrere Ablaufvarianten hat?
Die 3. Ebene kann man sich bei nicht ganz so komplexen Programmen auch sparen oder bei schnellen Berechnungen in die 4. integrieren.
Als Vorlage für Programme bin ich mittlerweile beim Delacore QHM (DQMH) gelandet. Der ganz große Vorteil für mich, ist das jeder Prozess/Modul für sich steht und lauffähig ist. Möchte man später nur die HW testen so ist dies einfach möglich. Beim QMH ist es nicht unmöglich aber mehr Arbeit.
Ein weiterer Vorteil ist, der schon klar definierte Weg wie man Daten in Prozesse rein und auch wieder rausbekommt.
Nachteil ist, dass es länger braucht um eine neue Nachricht anzulegen. Dafür spart man später bei der Fehlersuche Zeit.
danke für deinen Vorschlag, dieser Delacor-QMH sieht ja krass aus, hab mir das Video mal angeschaut. Wie aufwendig ist es sich da reinzuarbeiten? Hab es zwar grob verstanden, aber da die Befehle einzuarbeiten braucht ja ewig, oder?
Ich werde mir aber den Delacor mal zu Hause nochmal anschauen, auf Deutsch, vielleicht verstehe ich dann nochmal etwas mehr und es ist gar nicht so kompliziert.
Aktuelle Planung von mir sind zur Nachrichten-Queue (MHQ) noch 10 weitere Schleifen, die alle durch die MHQ gehen sollen.
Logging, Messen, Fehlerverarbeitung, Messkartenkommunikation, Excel, Berechnungen, UI-Aktualisieren, Prüflingskommunikation, Ablaufsteuerung und evtl Debugging-Loop.
Auf die Idee, die Queue schonmal voll zu packen bin ich gar nicht gekommen...
Sollte man da eingreifen müssen, kann man ja etwas vorne hinschieben. Aber wohl gut überlegt, damit es auch richtig weiter geht... keine gute Idee glaube ich.
Ich experimentiere mal rum.
Danke
Timo
Justieren ist dem Gerät sagen was es anzeigen soll, kalibrieren ist die Kontrolle dieser Anzeige. Eichen ist ein längerer Prüfprozess und darf nur das Eichamt!
Am Anfang ist die Einarbeitung schon recht aufwendig. Besonders das man ja den Tester mit pflegen "muss" kommt einem sehr lähmend vor. Beim QMH legt man ja nur einen neuen Case an, packt seinen Code rein und ist fertig. Dafür wird es dann aber später beim Testen nicht so einfach, besonders wenn man nur ein Modul des Programms testen möchte.
Im Beispiel zur "Thermal Chamber", haben Tester und Modul-Main ja fast die gleiche Funktion. Das mache ich bei meinen Modulen z.B. nicht, mit einem (guten) Tester sieht man meiner Meinung nach ja genug. Als eigenständiges Programm werde ich viele meiner Module auch nicht laufen lassen. Das spart auch schon mal viel Arbeit.
Probier es einfach mal aus und schau es dir an. Für mich hat der DQMH aber auf alle Fälle viele Vorteile, wo ich später auch die mehr Arbeit in Kauf nehmen kann. Dafür spare ich mir hoffentlich später Arbeit.
In Qeues würde ich eig. nicht vorne anhängen, wenn danach noch Befehle kommen ist es schwer absehbar wie das Programm reagiert.
Da ich hauptsächlich Motorprüfstände baue möchte ich nicht, dass die Motoren ungewollt wieder anlaufen. Bisher habe ich den Eingriff bei Fehlern so gelöst, dass ich die Qeue leere und dann meine neuen Befehle da reinschreibe. So weiß ich später auch wie sich das Programm verhält.
ich bin hier im Forum unterwegs, nciht bei einer Hilfe-Hotline, ich erwarte keine Antworten im Minutentakt
Ich bin noch unschlüssig, mache meine Planung gerade noch ohne konkreten Programmcode. Leider habe ich kaum andere Videos zu dem Delacor QMH gefunden und vor allem kein deutsches Video
Die Anlage kommt Ende April, mal sehen was ich bis dahin alles hin bekomme. Es wird der Punkt kommen an dem ich Code schreiben muss, da entscheide ich dann welche Vorlage ich nehme.
Bis jetzt ist der Plan, das nur der aktuelle Befehl in der jeweiligen Queue drin steht und der Ablauf über eine separate Queue gesteuert wird. Die Queue zu beschreiben und nur bei einer eventuellen (selten vorkommenden) Änderung die Queue zu löschen und optimieren/anpassen klingt nach einer guten Lösung.
Von Post zu Post werde ich schlauer, danke
Timo
Justieren ist dem Gerät sagen was es anzeigen soll, kalibrieren ist die Kontrolle dieser Anzeige. Eichen ist ein längerer Prüfprozess und darf nur das Eichamt!
hier findest du die Playlist von Delacor zum QMH. Einfach mal in Ruhe die Videos anschauen, da lernt man schon sehr viel. https://www.youtube.com/playlist?list=PL...qoxQfxlWj6
Ansonsten kann man sich auch gut die Beispiele von Delacor anschauen, welche bei der Installation mitgeliefert werden.
Videos auf Deutsch sind mir leider auch keine bekannt. Bei LabView gibt es aber sehr wenig bis keine guten Videos auf Deutsch.
Spiel einfach mal etwas damit rum.
Bei QMHs habe ich die Steuerungs Qeue einfach immer vollgepackt und dann beim Abbruch des Ablaufes die Queue geleert, danach noch alles was Probleme bereiten kann anhalten und fertig.
Solltest du deine QMH mal warten lassen wollen, habe ich dir mein VI zum Erhalten der Nachrichten angehängt. Der nachfolgende Prozess muss natürlich die Zustände "Wait" und "TimeOut" kennen. Wenn die Qeue während des Wartens eine Nachricht erhält, dann wird dieser Zustand ausgeführt. Sehr sinnvoll, wenn man etwas anhalten möchte was sich bewegt .
Gruß Max
05.04.2019, 07:47 (Dieser Beitrag wurde zuletzt bearbeitet: 05.04.2019 07:48 von Achim.)