' schrieb:Ich hab ein paar Änderungen vorgenommen. Jedoch solltest du den Aufbau deines Programmes überdenken. Ich würde für so etwas ein Statemachine verwenden, denn so ließen sich bei dir unvermeidlich Konflikte vermeiden. Wenn dein Programm allerdings soweit funzt und keine durchschnittlischer User damit schaffen muss, dann kannst es auch lassen. Ich prophezeie dir allerdings, dass es mit dem Programm massive Probleme geben wird, wenn nicht nur du es bedienen muss. Zur Inspiration schau dir in Labview unter Datei -> Neu... doch die Entwursmuster für "Erzeuger/Verbrauch" an und schau dir auch mal die Beispiel-VIs an. Da gibt es zwar keine Funde unter den Stichworten Statemachine oder Zustandsautomat, aber einiger der Beispiele beruhen auf solch einem Entwurfsmuster. Nicht zu vergessen das Gegenteil davon.
[attachment=61088:024_Date...lidieren.vi]
[attachment=61089:101_SubV...0_string.vi]
Vielen Dank für die Verbesserungen und die Erklärungen.
Ich sehe absolut ein, was du zu der Realisierung mit einer Statemachine sagst. Ich bin mir sicher, dass das dadurch sehr viel strukturierter und ressourcenschonender würde, allerdings bin ich schon bei den ersten Ansätzen bei der Umsetzung einer Statemachine gescheitert. Ich hätte zu dieser Realisierung weitaus mehr Zeit benötigt als bei meinem jetzigen Programm.
Nichtsdestotrotz werde ich mich weiter mit dem Thema auseinandersetzen und gucken, ob ich es vielleicht nicht doch noch hin bekomme.
Was siehst du denn für potentielle Probleme in meinem Programm, gerade im Bezug auf fremde Benutzer?
Und gut, dass du noch in das SubVI reingeschaut hast. Die Lösung mit dem Array, was aus 36 Elementen bestand war nur provisorisch. Als ich an den Divisionsknoten eine Konstante angefügt habe, hat er mir automatisch ein Array erstellt und ich wusste auf die Schnelle nicht, wie ich das ändern kann. Die Lösung mit der Konstante ist natürlich mehr als trivial, aber ich habe es nachher schlichtweg vergessen.
' schrieb:Hab's jetzt nur überflogen, aber zwei Eventstrukturen in einem VI würde ich vermeiden (wird auch von NI empfohlen). Was gar nicht gehen würde, wären zwei Eventstrukturen in einem VI. Und wie Schrotti schon sagt, eine Statemachine wäre für so etwas besser geeignet.
Gruß Markus
Ah, das war mir nicht bewusst. Allerdings habe ich es einfach nicht hinbekommen, die TCP-Verbindungsinformationen aus der Schleife mit Meldern an die Casestruktur zu übergeben, deswegen brauche ich einmal die Schleife, die abbricht, wenn die Verbindung hergestellt wurde und einmal die Schleife die weiter läuft.
Bei der Ereignisstruktur ganz rechts mit den booleschen Abfragen habe ich es auch nicht anders hinbekommen.
Ich werde bei Gelegenheit weiter daran arbeiten und versuchen es zu ändern.
Soweit läuft mein Programm jetzt aber so wie ich es mir vorgestellt habe. Deswegen haben aus Zeitmangel nun andere Dinge Priorität.
Nochmals Danke, ihr wart bis jetzt schon eine sehr große Hilfe.