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!
Beispiele zu Meldern (oder engl. Notifiers) findest du im NI-Examplefinder oder hier im Forum.
Und wenn du sagst, du findest dein VI so übersichtlicher, dann versuche Folgendes in Zukunft zu beachten:
-von links nach rechts programmieren.
-solange wie möglich gerade Verbindungen legen, so wenig wie möglich um die Ecke und überkreuz.
-deine nebeneinanderliegenden Schleifen mit lokalen Variablen können zu Race Condition führen - nicht gut
-dein VI braucht 100% CPU Last (auch auf Mehrprozessor-System), da du deine Schleifen (auch noch mehrere parallel) ohne Verzögerung laufen lässt. Brauchst du das wirklich?
Ansonsten, so wie du das aufgebaut hast, widerspricht es dem Datenfluss-Konzept von LabVIEW. Und sauber beenden lässt sich dieses VI auch nicht.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
-deine nebeneinanderliegenden Schleifen mit lokalen Variablen können zu Race Condition führen - nicht gut
...
Ansonsten, so wie du das aufgebaut hast, widerspricht es dem Datenfluss-Konzept von LabVIEW. ...
Gruß, Jens
Hallo Jens,
danke für die Anregung. Leider bin ich in LabVIEW noch nicht so fit. Ich muss halt "einfach" nur meine Anlage steuern und dazu wird hier immer LabVIEW genutzt. Leider habe ich auch nicht die Zeit mir auf der Arbeit ganz in Ruhe mal ein Buch durchzulesen. Ist halt alles nicht optimal. Daher wäre ich dir dankbar wenn Du Deine Anmerkungen vlt. etwas ausführlicher darstellen könntest, oder mir einen Verweis mitteiltest, wo ich dieses in "angemessenem Aufwand" nachlesen könnte.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Ausgabe aus While Schleife
Dein Arbeitgeber kann Dich doch auf Lehrgänge schicken. Dann lernst Du es von Grund auf richtig. Das ist die normale Vorgehensweise. Jetzt in Dich investieren und nachher von Dir profitieren. So sehe ich das. Bei Studenten ist das allerdings was anderes.......
Gruß Markus
' schrieb:Hallo Jens,
danke für die Anregung. Leider bin ich in LabVIEW noch nicht so fit. Ich muss halt "einfach" nur meine Anlage steuern und dazu wird hier immer LabVIEW genutzt. Leider habe ich auch nicht die Zeit mir auf der Arbeit ganz in Ruhe mal ein Buch durchzulesen. Ist halt alles nicht optimal. Daher wäre ich dir dankbar wenn Du Deine Anmerkungen vlt. etwas ausführlicher darstellen könntest, oder mir einen Verweis mitteiltest, wo ich dieses in "angemessenem Aufwand" nachlesen könnte.
Vielen Dank schonmal und ein frohes Fest.
Gruß Lex
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Dein Arbeitgeber kann Dich doch auf Lehrgänge schicken. Dann lernst Du es von Grund auf richtig. Das ist die normale Vorgehensweise. Jetzt in Dich investieren und nachher von Dir profitieren. So sehe ich das. Bei Studenten ist das allerdings was anderes.......
Gruß Markus
Für mich ist das nur Beiwerk. Mein Arbeitgeber schickt mich schon genug durch die Welt. (Im Mai z.B. auf einen Parabelflug... dafür sollte die Mess- und Regelungstechnik auch stehen.)
Viele Grüße
Dipl.-Ing. "Lex"
PS: Antworten sind toll, vielen Dank dafür. Aber auch für alle späteren Leser sind Antworten auf die Fragen noch viel hilfreicher als persönliche Meinungen zu Fortbildungsmaßnahmen...
23.12.2008, 15:24 (Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2009 14:33 von eg.)
' schrieb:PS: Antworten sind toll, vielen Dank dafür. Aber auch für alle späteren Leser sind Antworten auf die Fragen noch viel hilfreicher als persönliche Meinungen zu Fortbildungsmaßnahmen...
Das Problem ist nur - ohne dir hier nun Böses zu wollen - dass deine Fragen sehr grundlegende Themen betreffen, die nun mal nicht in 1-2 Sätzen erklärt werden können. Zusätzlich stellst du die Forderung, dass es nicht so viel Zeit kosten darf...
Auch wenn LabVIEW einen verhältnissmäßig einfach Einstieg und frühe Erfolge anbietet, so bleibt es doch eine komplexe Programmiersprache, die sich zusätzlich noch sehr anders als textbasierte Sprache verhält. Daher macht der Hinweis auf eine grundelegende Einführung sehr wohl Sinn.
Ansonsten wird es wohl doch eher bei Tips wie denen von Jens, eventuell noch unterlegt durch Links zu Tutorials oder Threads wie zu Race Conditions: http://www.LabVIEWportal.eu/viewtopic.php?f=13&t=329 bleiben.
Jens Tips zur Verkabelung sind selbsterklärend.
Zur Prozessorauslastung: Jede Schleife sollte ein "Wait" Element enthalten, dass zumindest ein Wait von 1ms enthält um den Prozessor zu entlasten.
Grüße und frohe Weihnachten.
A few weeks of developement and testing can save a WHOLE afternoon in the library!
Anzeige
23.12.2008, 15:44 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2008 15:44 von eg.)
Tasking Library: http://www.LabVIEWforum.de/Tasking-Library-t11433.html
wäre vielleicht nicht verkehrt. Mein Programmierprinzip ist zum Beispiel: pro Aufgabe (Task) eine parallele Schleife. Zur Kommunikation zwischen den Schleifen - Queues, Notifiers, User Events oder auch TCP/IP. Sehr übersichtlich und leicht erweiterbar.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Ausgabe aus While Schleife
Antworten auf die Fragen würdest Du ja bekommen, wenn man wissen würde was Du mit Deiner (meiner Meinung nach) verwirrenden, unkonformen Programmierweise bezwecken möchtest.... -_-
Gruß Markus
' schrieb:[...]sind Antworten auf die Fragen noch viel hilfreicher[...]
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
29.12.2008, 09:23 (Dieser Beitrag wurde zuletzt bearbeitet: 29.12.2008 09:26 von Lex.)
erst nochmal ein frohes Weihnachtsfest. Wie es aus sieht habe ich mit meinem Nachsatz dem ein oder anderen wohl etwas auf die Füße getreten. Das war nicht meine Absicht. Was ich eigentlich damit sagen wollte, ist, dass auch wenn Ihr, die dieses Thema viel besser beherschen als ich, vielleicht merkt, dass bei jemandem der eine Frage stellt Grundlagenwissen fehlt und ihr im nicht mit einer kurzen Antwort im Forum weiterhelfen könnt, ein Verweis auf ein Kapitel in einem guten Buch oder in Link dem Betreffenden mehr hilft als ihn nur auf die richtige Tatsache aufmerksam zu machen, dass ihm Grundlagenwissen fehlt. Vielleicht versuchen wir alle in diesem Sinne sowohl unsere Fragen als auch Antworten so zu gestallten, dass sie dem, der sie ließt, weiterhelfen.
So genug der Vorrede - ich versuche dann mich nochmal genauer auszudrücken was mein Problem ist:
Meine Aufgabe :
Ich möcht ein SubVi programmieren. Dieses SubVi möchte ich in beliebe Programme zur Regelung von Temperaturen einsetzten.
Das SubVi soll einen TemperaturSollwert und -Istwert als Eingang haben. Da damit ein Heizer über ein Relai gesteuert werden soll, soll der Ausgang "An oder Aus" sein. Über eine Pulsweitenmodulation soll die Heizleitung geregelt werden. Die Regelung soll mittels eines PID Reglers stattfinden. Das Ausgangssignal des PID Reglers soll in eine 0 - 100% Heizleistungsskala umgerechnet werden. Dazu benötige ich noch zwei Eingänge. "Min" "Max". Min = Ausgangswert 0% - Max = Ausgansgwert 100% Das SubVi soll mit einer eigenen Geschwindigkeit läufen. Unabhängig ob das Hauptprogramm (wird auch eine Schleife sein) schneller oder langsamer ist.
Anhand eurer Anmerkungen habe ich meine bisherige Programmierung etwas geändert. Untern angehängt.
Mein Problem:
ist jetzt folgendes. Ich kann dieses VI als SubVi in ein anderes Programm einbauen. Wenn ich dann im anderen Programm aber einen Eingabewert ändere (z.B. Sollwert) änder dieser sich nicht im SubVi. Mit einem Melder habe ich es bisher noch nicht hinbekommen, da sich dann die Schleife nur ausgeführt hat, wenn ich z.B. den Sollwert geändert habe.
Ich hoffe ich konnte mich mit meinem nicht so umfangreichen Wissen so ausdrücken, dass es jetzt etwas verständlicher ist.
Viele Grüße
Lex
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Ausgabe aus While Schleife
Hallo,
wenn Du Dein SubVI aufrufst wird es nie beendet, da die Abbruchbedingungen für die Whileschleifen nie erfüllt sind.
Wenn Du im SubVI eine / bzw. mehrere Whileschleifen hast, dann sollten sie auch abbrechbar sein.
Die lokalen Variablen von Tempwert, Sollwert, min und max brauchst Du nicht. Da kannst Du Deine Frontpanelelemente direkt anschließen. Wieso Du für Waveformchart eine lokale Variable verwendest weiß ich auch noch nicht so ganz,.....
Nichtsdestotrotz ist hier mal ein Bsp., wie vom Hauptprogramm aus ein SubVI aufgerufen werden kann und Daten untereinander ausgetauscht werden. Schau's Dir einfach mal an.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------