# Persistente Variablen in Codesys V3 auf PFC200



## clumsi (22 Februar 2017)

Hallo,

ich benötige Maschinendatenvariablen, die auch nach Spannungsausfall und Neustart wieder da sind. Dazu habe ich in einer GVL oben "VAR_GLOBAL PERSISTENT" stehen. Leider werden aber keine Variablen gespeichert und nach Spannungsausfall ist alles 0.
Ich benutze die WAGO PFC200 mit Codesys V3 (kein e!Cockpit).

Kann mir jemand helfen?

VG,
clumsi


----------



## Morymmus (22 Februar 2017)

Was Du brauchst ist RETAIN - dann bleiben die Variablen auch über einen Spannungsausfall erhalten, die PERSISTENT Variablen "überleben" nur einen erneuten Programmdownload.
Oder Du definierst direkt als VAR_GLOBAL RETAIN PERSISTENT.


----------



## clumsi (22 Februar 2017)

bist Du dir da sicher? Habe in der Codesys-Doku nachgelesen, und dort steht mehrfach, dass PERSISTENT "schärfer" ist als RETAIN und dies immer mit beinhaltet, d.h. dass bei PERSISTENT nur bei Reset Ursprung neu initialisiert wird.....


----------



## Morymmus (22 Februar 2017)

Hmm, OK.
Ich muss zugeben, ich hab hier grad kein V3 zur Verfügung - in der Hilfe von V2 steht:



*Retain-Variablen* werden mit dem Schlüsselwort RETAIN gekennzeichnet. Diese Variablen behalten ihren Wert nach einem unkontrolliertem Beenden wie auch nach normalem Aus- und Einschalten der Steuerung (entsprechend Kommando 'Online' 'Reset'). Bei erneutem Start des Programms wird mit den gespeicherten Werten weitergearbeitet. Ein Anwendungsbeispiel wäre ein Stückzähler in einer Fertigungsanlage, der nach einem Stromausfall weiter zählen soll.  
Alle anderen Variablen werden in diesem Fall neu initialisiert, entweder mit ihren initialisierten Werten oder mit den Standardinitialisierungen. 
Retain-Variablen werden allerdings bei 'Reset Kalt', 'Reset Ursprung' und - im Gegensatz zu persistenten Variablen - bei einem erneuten Programm-Download neu initialisiert.
*Persistente Variablen* werden mit dem Schlüsselwort PERSISTENT gekennzeichnet. Sie behalten Sie ihren Wert nur nach einem erneuten Download ('Online' 'Laden'), nicht aber -im Gegensatz zu Retain-Variablen - nach 'Online' 'Reset', 'Online' 'Reset Ursprung' oder 'Online' 'Reset Kalt', da sie nicht im "Retain-Bereich" gespeichert werden. Sollen auch persistente Variablen nach einem unkontrollierten Steuerungsausfall ihre vorherigen Werte behalten, müssen sie also zusätzlich als VAR RETAINs deklariert werden. Ein Anwendungsbeispiel für "persistente Retain-Variablen" wäre ein Betriebsstundenzähler, der nach einem Stromausfall weiter zählen soll.


Ich war einfach mal davon ausgegangen, das das konsistent in beiden Versionen gleich ist...


----------



## HausSPSler (22 Februar 2017)

Hi,
muss gehen... kannst du es mal so machen wie ich in diesem Screenshot?

Grüße


----------

