(25.03.2011 18:55 )Schüler92 schrieb: Das erste wobei ich nicht ganz weiß, wie ichs lösen soll, ist, dass ich den Wert des Entnahme-Tasters ja nur 1 mal übergebe und ab dann mit den Schieberegistern weiterarbeite. Wenn ich den Wert des Tasters also ändere, bewirkt es nichts.
Das ist richtig - und kommt eben daher, weil die "Übergabe" vor der While-Schleife sitzt.
Um dieses Problem zu beheben, musst du dir eben einen entsprechenden Algorithmus ausdenken. z.B. so wie im Anhang.
Zitat:Bsp.: In der Zeit, in der sich der Tank von 0 auf 5V befüllt, steigt gleichzeitig auch die Temperatur von 3 auf 3,5V.
Im einfachsten Falle kann man ganz einfach des Inkrement entsprechend anpassen. Wenn der Bereich von 0 bis 5 mit der Schrittweite von 0.01 durchlaufen wird, dann lässt du den Bereich von 3 bis 3.5 einfach mit einer Schrittweite von 0.001 durchlaufen. Beide Bereiche werden dann "gleich schnell" durchlaufen.
Noch ein Hinweis:
Es gibt zwei Extreme, wie man eine Aufgabe (das ist das,
was dein Programm machen soll) löst (lösen ist das,
wie das Programm gemacht wird). Das eine ist "SPS-Programmierung": Da findet in einer Schleife immer alles statt (mit der Implizierung: keine SubVIs). D.h. du musst immer kucken: wie sind die Eingangswerte, welche Werte leiten sich davon ab - und diese abgeleiteten Werte werden weiter verrechnet. Und hier siehst du gleich: Die Eingangswerte werden
immer kontrolliert, egal ob sie sich geändert haben oder nicht. Dieses Gesamtverfahren aber bringt sehr bald Probleme mit sich.
Das andere Extrem sind reine Event-gesteuerte Klassen (mit der Implizierung: viele SubVIs). Hier werden die Eingangswerte nur ein einziges Mal kontrolliert - nämlich event-gesteuert, wenn sie sich ändern. Zum Zeitpunkt der Änderung werden die abgeleiteten Werte neu(!) berechnet (und per Property an den Weiterverarbeitungs-Teil geleitet). Die (auch hier notwendige) Programmschleife besteht dann aber nur noch aus der Weiterverarbeitung der abgeleiteten Werte.
Dein bisheriges Programm ist stark "SPS-lastig". Daher treten ganz schnell so Probleme auf wie das mit dem Verdampfer. Man kann jetzt hier so Sachen einbauen wie ich das in der unteren Schleife gemacht habe. Das sind aber nur mangelhafte Krücken. Eigentlich gehört deine Aufgabe mit einer Objekt-orientierten Struktur gelöst. Auch wenn das Frontpanel und das Blockdiagramm sehr wenig aussehen, die Aufgabe selbst ist doch so umfangreich, dass sich ein Klassenmodell wohl lohnen würde.