Autor Thema: RETAIN will nicht behalten. XC201  (Gelesen 4244 mal)

Offline BertholdSW

  • Jr. Member
  • **
  • Beiträge: 62
RETAIN will nicht behalten. XC201
« am: Mai 21, 2010, 05:46:00 Vormittag »
Hallo in die Runde.
Meine Moeller SPS XC201 mit CoDeSys in ST programmiert, hat den Probelauf hinter sich und rollt!
Eines habe ich aber noch nicht geschafft, und zwar das mit dem Retain!

Die SPS XC201 ist Batteriegepuffert.
Der Bediener speichert sporadisch über einen TIP Taster eine Restzeitwert einer ablaufenden TON-Zeit in eine Merker Variable: A_KehTaktzeitwert: TIME;
Diese Zeitwert-Vorgabe wird an anderer Stelle als neuer Zeitwert intern im Programm wieder benutzt. Das alles klappt wunderbar.

Nur wenn die gesamte Steuerung vom Netz getrennt wird, ist dieser Zeitwert futsch.
Ein klassischer Fall für Retain, dachte ich.
Nur das klappt bei mir nicht.
Die „Alte“ Zeitvorgabe ist nach Spannungswiederkehr mit 0 überschrieben.

Die Lösung sollte über VAR RETAIN möglich sein.
Nur wie?
Dieses findet in einem FB statt.
Na gut, wenn es im FB nicht machbar sein sollte, versuchte ich das im PLC-PRG.
Aber auch dort habe ich (unter VAR RETAIN)  keine Variable schaffen können, die ihren Wert nach Spannungswiederkehr behält.
Jetzt schaffe ich es auch nicht mehr, eine Variable im FB in „VAR RETAIN“ zu erzeugen.
VAR RETAIN wird nicht mehr vom Programm in der Variablen-Deklaration vorgeschlagen.

Das ist nicht so lebenswichtig, aber es wurmt mich.
Gleich, 8Uhr fahre ich erstmal 14 in Urlaub. Also kann ich erst in 14 Tagen „Danke“ für Eure Hilfe sagen.
Wie ist grob der richtige Weg zu so einem „Variable, behalte bitte Deinen Wert“, auch wenn der Power mal verschwinden sollte. Du hast ja auch immer noch Deine Batterie! Also puffere Dich, oder Du kommst in den Keller!
Streicheln und gut zureden habe ich auch versucht. Das klappt aber diesmal auch nicht.
Gruss Berthold.

Offline Softwerker59

  • Jr. Member
  • **
  • Beiträge: 48
Re: RETAIN will nicht behalten. XC201
« Antwort #1 am: Mai 25, 2010, 13:36:33 Nachmittag »
Hallo Berthold,

RETAIN Variablen sind nicht kaltstartremanent.
Möglicherweise hast Du in der Steuerungskonfiguration->Weitere Parameter im Startverhalten "Kaltstart" eingestellt.
Sollte das der Fall sein, musst Du auf "Warmstart" umstellen.
Batterie ist OK??? Die rote SF LED muss aus sein.
Das Dir die Eingabehilfe im FB keine VAR RETAIN anbietet ist wohl eine Macke von CoDeSys. Gib es manuell ein und es wird funktionieren. Übrigens ist der ganze FB remanent, auch wenn nur eine einzige lokale Variable davon remanent ist.

Gruß
  Klaus