LabVIEWForum.de
Komplexes Programm mit cDAQ - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Komplexes Programm mit cDAQ (/Thread-Komplexes-Programm-mit-cDAQ)



Komplexes Programm mit cDAQ - MR_Engineer - 15.03.2017 20:53

Guten Abend zusammen,

ich hab ein Problem mit einem Programm, welches ich weiter entwickeln möchte. Das Programm ist sehr Komplex und dient zur Steuerung einer Anlage. Es beinhaltet AI, AO, Thermoelemente und DIO. Die Temperaturen und die AI funktionieren soweit, allerdings nicht die AO. Ich sehe den Wald vor lauter Bäumen nicht mehr und bekomme es leider nicht hin Ahrg1 . Vielleicht hat jemand eine Idee speziell im Umgang mit Queues, ich denke da liegt der Fehler.
Zum Programm, ein Event-Handler (EVENT_TIMEOUT.VI) fragt die Bedienoberfläche ab und gibt die AI und die Temperaturen aus. Die AO Werte soll er von der Bedienoberfläche auslesen. Im INIT.VI werden die DAQ-Tasks gestartet und die Interneprozesskommunikation (IPC) wird gestartet. Die Daten werden über eine globale Variable (FGV) überall im Programm abgerufen und weiter gereicht. Eine State-Machine ist für Fehlerfälle und andere Funktionen vorgesehen. Es wäre schön, wenn jemand mal drüber schaut, soweit es möglich ist. Ich weiß, dass es am Anfang etwas schwer nachvollziehbar ist.

Im Anhang ist die ZIP-Datei mit dem MAIN.VI und den Unterprogrammen. Programmiert wurde mit LabVIEW 2014lv14_img

Vielen Dank im voraus
Gruß Mario


RE: Komplexes Programm mit CDAQ - GerdW - 15.03.2017 22:09

Hallo Mario,

Zitat:Die Temperaturen und die AI funktionieren soweit, allerdings nicht die AO.
Was bedeutet "funktioniert nicht"?
Fehlermeldungen?


RE: Komplexes Programm mit CDAQ - jg - 15.03.2017 22:24

Hallo Mario,

erst mal ein kleines Lob, vom Ansatz sieht das gar nicht so verkehrt aus und ist auch einigermaßen übersichtlich. Typdefinition für Cluster, ebenfalls gut. Aber was hat dich zu dieser doch sehr eigenwilligen Verwendung von Queues bewogen? Queues der Länge 1, überall Preview Element, und dann Flush Queue, um danach wieder ein Element reinzuschreiben. Und das bloß, um in vielen Fällen eine 1 zu N Kommunikation eines Kommandos zu ermöglichen? Dafür ist der Notifier prädestiniert! Eine Queue ist ideal für eine 1 zu 1 oder N zu 1 Kommunikation.

Und jetzt konkret dazu, wieso kein AO geschrieben wird:
Die Queue "AO_LUVO_KUPFER", aus der du per Preview die Werte für AO entnehmen willst, wird an keiner Stelle mit einem Element befüllt.

Gruß, Jens

P.S: Wo ist das LV-Projekt? Wieso sind alle VI-Icons noch Standard? Verzeichnisse würden bei der Strukturierung deiner VIs helfen.


RE: Komplexes Programm mit CDAQ - MR_Engineer - 15.03.2017 22:37

Hallo zusammen,

wie gesagt ich hab das Programm übernommen bzw. versuche mich daran zu orientieren.
Gedacht hatte ich mir eigentlich, dass im Event_Timeout.VI die AO Daten der Bedienpanel über die IPC.GUI_REFS in die DATA_STATE müssen bzw. nach Überlegung gerade eigentlich in IPC.AO_LUVO_KUPFER mhhUndecided . Bin mir beim ganzen ausprobieren nicht sicher ob ich das schon gemacht hab. Aber ist logisch, weil nur über IPC.AO_LUVO_KUPFER geb ich dem AO_LUVO_KUPFER_READ.VI die Sollwerte.

Schonmal vielen Dank für den Hinweis

Gruß Mario


RE: Komplexes Programm mit cDAQ - MR_Engineer - 16.03.2017 08:05

Guten Morgen zusammen,

ich hab nun die IPC.AO_LUVO_KUPFER mit den GUI_REFS gefüllt, dennoch tritt folgender Fehler vermehrt auf:

Fehler 1 bei Vorschau für Queue-Element in EVENT_TIMEOUT.vi

Mögliche Ursachen:

LabVIEW: Ungültiger Eingangsparameter. Wenn am Eingang beispielsweise ein Pfad anliegt, kann dieser Pfad Zeichen wie ? oder @ enthalten, die im betreffenden Betriebssystem nicht zulässig sind.

Bin mir nicht bewusst wo ich solch einen Pfad benutzt haben soll

Gruß Mario


RE: Komplexes Programm mit cDAQ - jg - 16.03.2017 08:15

(16.03.2017 08:05 )MR_Engineer schrieb:  Mögliche Ursachen:

LabVIEW: Ungültiger Eingangsparameter. Wenn am Eingang beispielsweise ein Pfad anliegt, kann dieser Pfad Zeichen wie ? oder @ enthalten, die im betreffenden Betriebssystem nicht zulässig sind.
Da steht ja auch möglich und Beispiel, das heißt nicht, dass das Beispiel auch zutrifft.

Gruß, Jens