Guten Morgen, GerdW.
Danke zunächst für Deine Antwort, zu der ich weitere Fragen habe.
Eine kleine Anmerkung vor weg: Ich bin immer noch blutiger Anfänger und von Beruf nicht Programmierer. Ich habe das nie richtig gelernt, immer nur DIY. Guter Programmierstil ist mir daher noch fremd. Ich bitte das zu entschuldigen. Oftmals wird auch nicht Zeit dafür eingeplant, sowas zu lernen.
' schrieb:Hallo Blue,
schön wäre es, wenn du dein UI von deiner Arbeitsschleife trennst und ein Producer-Consumer-Pattern einführst. Und im Consumer dann noch eine State-Machine zur Abarbeitung deiner verschiedenen States!
Meinst du damit, daß man alle Programme in SubVi steckt, damit man bei späteren Veränderungen es einfacher hat?
Ich weiß nicht, wie man das UserInterface (=UI?) von der äußeren Arbeitschleife trennt. Producer-Consumer-Pattern sagt mir leider auch nichts. Das klingt aber sehr kompliziert, wahrscheinlich für meine Fähigkeiten zu kompliziert, um es binnen 24h zu realisieren. Kannst du vielleicht ein Beispiel für ein Producer-Consumer-Pattern geben oder gibt es grundsätzlich, LabView-Literatur, die auch solche schweren Beispiele abdeckt?
' schrieb:Dann könntest du noch diese ganzen lokalen Variablen entfernen...
Welche z.B.?
' schrieb:Du kannst in einem Eventcase ohne Probleme auf mehrere Werte zurückgreifen. Und bitte: LabVIEW hat keine Variablen (zumindest nicht im klassisch text-basierten Programmierschema)...
Nennt man das dann tatsächlich Boolean mit Wert true/false?
' schrieb:Aber: Events sollten immer schnell abgearbeitet werden, damit andere Events nicht blockiert werden. Deshalb die vorgeschlagene Trennung von UI und DAQ!
Der erste Satz von Dir ist verständlich. Fall 5) ist es auch, weswegen ich eine Eventstruktur basteln würde. Sobald der Knopf "stop" gedrückt wird, sollen von der Pumpe Daten ausgelesen werden. Das sollte doch schnell gehen und keine anderen Events hoffentlich blockieren. Was meint bitte DAQ in diesem Sinne, eventuell Data Acquisition?
Meinst du etwa, man hat die äußere Schleife und packt alles andere in Eventstrukturen außerhalb dieser Schleife?
Ich weiß nicht, wie man diese äußere Schleife sonst umgeht. Ich brauche sie, weil das Programm immer wieder ablaufen soll. Aber vielleicht erübrigt sich das, wenn ich Evenstrukturen einführe.
Wie gesagt, mein grundsätzlicher Ansatz ist LabView 8.6 zu verdanken, weil ich in der Version keine Evenstruktur hatte.
' schrieb:Wenn man eine FGV benutzt, braucht man keine Drähte zu anderen Schleifen/Cases und hat diese Daten trotzdem an einer Stelle verwaltet...
Okay, ich sehe es ein, daß es kompliziert wird. Ich muß mehr Zeit für LabView-Lernen veranschlagen. Mein supervisor denkt halt, das wäre alles ganz einfach, ein gutes LV-Programm zu schreiben, was in Echtzeit fehlerfrei arbeitet und mögliche Fehler abfängt.
Viele Grüße
Blue