20.04.2016, 10:27
Hallo,
mit meinem Program soll es möglich sein, zwischen Regelung (PID-Regler) und Steuerung eines Volumenstroms bei Bedarf umzuschalten. Dafür verwende ich eine Case-Struktur, in der bei True die Regler.vi (Bild1) läuft, bei False die Steuerung. Damit die Stellgröße nicht zu sehr springt (hängt auch ab vom eingestellten Sollwert ab) beim Wechsel zum Regler, soll die aktuelle Stellgröße als I-Wert des Reglers gesetzt werden, sozusagen als einmaliger Startwert (gelbe Markierung), danach wird der I-Wert wieder aus dem Fehler berechnet...Dazu gibt es die Abfrage im Bild PID-Regler unten (Erster Aufruf?, rot eingekringelt).
Problem ist nun, dass das ganze nur einmal funktioniert, da die Regler.vi beim Wechsel nicht beendet wird, folglich der 1.Aufruf nur einmal vorkommt. Dafür ist der Stop-Button gedacht, sodass bei jedem Wechsel von Regler -> Steuerung die Regler.vi beendet wird und beim Wechsel von Steuerung -> Regler diese zum erneut gestartet wird, damit obige Logik mit dem Startwert funktioniert. Das klappt aber leider nicht. Ich hab versucht die Regler.vi über Methodenknoten zu beenden, weiß nicht ob das richtig implementiert war, da kenn ich mich zu wenig aus.
Der Vollständigkeit halber hier noch das Bild 2,3 der Main-Schleife, in der die Case-Struktur verbaut ist. Die VIs sind alleine nicht lauffähig, da Daten von einem Sensor kommen und Stelleinrichtungen angesteuert werden, weshalb es hier keinen Sinn macht die VIs hochzuladen.
Wo liegt der Fehler? Danke
mit meinem Program soll es möglich sein, zwischen Regelung (PID-Regler) und Steuerung eines Volumenstroms bei Bedarf umzuschalten. Dafür verwende ich eine Case-Struktur, in der bei True die Regler.vi (Bild1) läuft, bei False die Steuerung. Damit die Stellgröße nicht zu sehr springt (hängt auch ab vom eingestellten Sollwert ab) beim Wechsel zum Regler, soll die aktuelle Stellgröße als I-Wert des Reglers gesetzt werden, sozusagen als einmaliger Startwert (gelbe Markierung), danach wird der I-Wert wieder aus dem Fehler berechnet...Dazu gibt es die Abfrage im Bild PID-Regler unten (Erster Aufruf?, rot eingekringelt).
Problem ist nun, dass das ganze nur einmal funktioniert, da die Regler.vi beim Wechsel nicht beendet wird, folglich der 1.Aufruf nur einmal vorkommt. Dafür ist der Stop-Button gedacht, sodass bei jedem Wechsel von Regler -> Steuerung die Regler.vi beendet wird und beim Wechsel von Steuerung -> Regler diese zum erneut gestartet wird, damit obige Logik mit dem Startwert funktioniert. Das klappt aber leider nicht. Ich hab versucht die Regler.vi über Methodenknoten zu beenden, weiß nicht ob das richtig implementiert war, da kenn ich mich zu wenig aus.
Der Vollständigkeit halber hier noch das Bild 2,3 der Main-Schleife, in der die Case-Struktur verbaut ist. Die VIs sind alleine nicht lauffähig, da Daten von einem Sensor kommen und Stelleinrichtungen angesteuert werden, weshalb es hier keinen Sinn macht die VIs hochzuladen.
Wo liegt der Fehler? Danke