TwinCat Variablen Online ändern

Bambam

Level-1
Beiträge
60
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie der Titel schon sagt würde ich gerne in TwinCat (Sprache "ST") eine Variable im Online-Modus ändern.

Einfaches Bsp:

Code:
VAR
   var1 :INT := 26;
   var2 :INT :=23;
   var3 :BOOL;
VAR_END
 
IF  var1 = var2 THEN
     var3 := TRUE;
END_IF

So die Bedingung ist nicht wahr also ist var3 = FALSE. So änder ich nun im ONLINE-Modus den Wert von var2 auf 26, bleibt var3 auf FALSE. Warum ist das so? Ich recherchiere jetzt schon eine ganz Weile im Netz, da das es wahrscheinlich eine recht banale Sache ist, aber eine wirkliche Erklärung habe ich für dieses Problem nicht gefunden.

Der Sinn hinter der ganzen Sache ist der, dass ich meinen programmierten Zwei-Punkt-Regler testen wollte. Und hierzu muss ich eben im laufenenden Betrieb den SollWert verändern. Den IstWert erhalte ich übrigens von einem Sensor den ich an die BC9000 bzw. an die KL3062 geklemmt habe.

Gibt es noch eine andere Möglichkeit das irgendwie zu testen?

Habt vielen Dank im Voraus
 
Zuletzt bearbeitet:
Wie änderst du denn den Wert Var2?

Doppelklick auf die Variable und dann?

Machst du auch im Menüpunkt Online-->Werte Schreiben?

Ansonsten poste mal eine Onlineansicht deines Programms.
 
Ist die Steuerung auch gestartet ober bist Du "nur" Online?

Wird dieser Programm Teil überhaupt abgearbeitet, also ist dies in einem Unterprogramm das auch aufgerufen wird?

Schalt mal die Ablaufkontrolle ein dann siehst Du anhand der grünen Zeilennummern ob das Teil läuft.
 
Besser für solche Sachen ist Werte Schreiben mit [Strg]+[F7]. Das siehst du auch ob deine Änderungen übernommen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja er arbeitet es funktioniert auch alles. Wenn ich den Sensor erwärme und dieser einen bestimmten Wert übersteigt dann führt er eine entsprechende Bedingung auch aus. Nur wenn ich einer Variable von "Hand" einen neuen Wert zuweise funktioniert es nicht.
Selbst das Funktioniert nicht:
Code:
var1:= TRUE;
var2:= var1;

Zu Begin var2 = TRUE. Änder ich var1 = FALSE passiert bei var2 nichts. :confused:

Das muss doch aber gehen ... ich muss doch im laufenden Betrieb den SollWert verändern können?!
 
Zuletzt bearbeitet:
"Var_3" wird sicher noch an einer anderen Stelle im Programm ein Wert zugewiesen, darum ändert sich durch die betreffende IF-Anweisung nichts!?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So habe jetzt ein neues Projekt angelegt und es probiert. Doch leider geht es immer noch nicht.

Ablaufkontrolle ist eingeschaltet. Er geht in die beiden IF-Anweisungen rein.

Das verunsichert mich jetzt ein wenig, dass das bei euch geht und bei mir nicht. Vielleicht mache ich wirklich etwas falsch. Nur was???

@BoxHead:

Kannst du mir beschreiben wie du die Variable veränderst?

Habt vielen Dank für eure Hilfe!!!
 
Frage, wird der forcierte Wert auch übernommen? Ich glaube mich wage daran zu erinnern, das man Eingangsvariablen die halt Werte von irgendwelchen Gebern bekommen nicht so wirklich forcen kann.

An sonsten kann es wie schon gesagt entweder so sein, dass dein var3 irgendwo anders im Programm wieder zurück gesetzt wird, oder die IF Anweisung garnicht zur Ausführung kommt.
 
Nacktes Projekt (allerdings in codesys) und die Bilder 1 bis 3 Werte mit Doppelklick geändert und anschließend mit Strg+F7 gesteuert.
 

Anhänge

  • 1_Ausgangssituation.jpg
    1_Ausgangssituation.jpg
    48,5 KB · Aufrufe: 10
  • 2_Wertvorgeben.jpg
    2_Wertvorgeben.jpg
    49,4 KB · Aufrufe: 9
  • 3_Wertsteuern.jpg
    3_Wertsteuern.jpg
    49,6 KB · Aufrufe: 9
Zuviel Werbung?
-> Hier kostenlos registrieren
OK ich habe meinen Fehler gefunden.

Ich hatte folgendes stehen:
Code:
VAR
   var1 :INT := 26;
   var2 :INT :=23;
   var3 :BOOL;
VAR_END
 
[COLOR=red][B]var1:= 26;[/B][/COLOR]

IF  var1 = var2 THEN
     var3 := TRUE;
END_IF
Hatte

Das var1:= 26 hatte ich zuvor vergessen mit hin zu schreiben sonst wäre euch mein Fehler sicherlich auch aufgefallen.;)
Wenn ich das "var1:= 26;" da stehen lasse, kann ich den Wert noch so oft ändern, er wird immer wieder überschrieben.

Danke für eure Antworten/Hilfe.

Einen schönen Tag wünsche ich euch.
 
Zurück
Oben