PERSISTENTe Variablen

gamble

Level-1
Beiträge
16
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander

ich war der Meinung das VAR PERSISTENT in der SPS erhalten bleiben wenn diese neu gestartet bzw resetet wird. dies schein auch zuzutreffen.

wenn ich mich allerding mit dem Laptop auf dem CX anmelde werden diese wieder auf 0 zurückgesetzt. Warum?

muss ich im Projekt was beachten oder vllt. beim Verbinden?



gruß Marcel
 
Hallo Marcel,

um was für einen CX handelt es sich denn?
Die CX von Beckhoff können nämlich keine Persistenten oder Retain Variablen (Außer der CX50xx, der kann das), dafür ist dann das NOVRAM da.

Gruß Scrat
 
Hallo Marcel,

Das Problem hat mich damals auch geärgert. Du hast die Qual der Wahl...

Um auf den IPC gewisse Daten auf der Steuerung remanent zu speichern, gibt es mehrere Lösungen.
1) Den Einsatz einer USV damit die CPU die Daten sichert, bevor der Strom weg ist – die kostet allerdings was...
2) die Benutzung vom NOVRAM, welcher mit dem ständigen lesen und schreiben stark die CPU belastet...
3) oder die Deklaration als Persistent und Benutzung des Bausteins „WritePersistentData“ - was einen gewissen zusätzlichen Programmieraufwand bedeutet...
4) Seit kurzem gibt es die Embedded-PCs mit Atom-Prozessor und 1s USV wie z.B. den CX50xx. Dort reicht es aus, die Variablen als „PERSISTENT“ zu deklarieren und im Programm die Funktion FB_S_UPS* aufzurufen...

Empfehlen würde ich dir Variante 4. Die CX50xx- Steuerungen sind noch verhältnismäsig günstig und von der Rechenleistung zwischen den CX1010 und CX1020 einzuornen.

Die universellere Lösung ist Variante 3. Vermutlich hast du deine SPS schon :rolleyes:. Ein Beispiel findest du hier:
Beispiel: Persistente Variablen

Frohe Ostern
Chräshe
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die CX von Beckhoff können nämlich keine Persistenten oder Retain Variablen (Außer der CX50xx, der kann das), dafür ist dann das NOVRAM da.
Hä? Was für'n Quatsch!
Aber PERSISTENT oder RETAIN Daten werden nicht gespeichert, wenn man einfach den Strom abdreht! Auch bei gewöhnlichen PCs wird dann nichts gespeichert. Nur wenn das Windows ordentlich "beendet" wird, kann das TwinCAT die Daten speichern. Da beim CX das aber meist nicht gemacht wird (sondern einfach Strom abgeklemmt wird), mag es einem so vorkommen, als ob remanente Daten per RETAIN/PERSISTENT Deklaration auf CXen nicht funktionieren.
NOVRAM oder 1-Sek-USV (CX5000) wären dann notwendig.

Zwischenlösung:
Mittels dem FB "WritePersistentData" in gewissen Abständen die Daten abspeichern.

was noch erschwerend dazukam: "kein Programm auf der Steuerung. Laden?"
Kein Bootprojekt?
Diese Optionen im System Manager aktiviert?:
http://infosys.beckhoff.com/index.p...ager/basics/tcsysmgr_plcsettings.htm&id=10846
 
Zwischenlösung:
Mittels dem FB "WritePersistentData" in gewissen Abständen die Daten abspeichern.

Aber das ist nur eine Notlösung! Wenn man Zyklisch Daten auf die CF-Karte speichert hält die auch keine Ewigkeit. Die CFs verhalten sich wie SSDs die auch nach bestimmten Zyklen ausgetauscht werden müssen, da zu viele Speicherbereiche defekt sind.

Gruß Scrat
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber das ist nur eine Notlösung! Wenn man Zyklisch Daten auf die CF-Karte speichert hält die auch keine Ewigkeit. Die CFs verhalten sich wie SSDs die auch nach bestimmten Zyklen ausgetauscht werden müssen, da zu viele Speicherbereiche defekt sind.

Hallo Scrat,

bei dem Beispiel „IPC_X86.zip“ ist es eben nicht so, dass zyklisch geschrieben wird. ;) Es wird geprüft, ob sich im persistenten Bereich eine Änderung ergeben hat. Siehe unter der Funktion MEMCMP
Erst wenn das der Fall ist, wird der aktuelle Speicherinhalt mit dem Referenzspeicher (stPersistent_Save) überschrieben (siehe Funktion MEMCPY) und mit „WritePersistentData“ die Variablen auf die Karte gesichert.
Man braucht zwar den doppelten Speicher, was bei Beckhoff nicht so schnell zum Problem wird, aber es wird nur bei Änderung in den Flash geschrieben.
Für Rezepturen, Einstellungen Positionslisten usw. ist das absolut zufrieden stellend.

:evil: Kritisch wird es, wenn bei den persistenten Daten Variablen dabei sind, die sich schnell und häufig ändern. Das könnte zum Beispiel bei Stückzählern oder remanenten Schrittketten der Fall sein. Dann hilft es nur auf das NOVRAM, oder wenn es sehr viele Variablen sind auf die USV auszuweichen.

:ROFLMAO: Bei CPU’s mit 1s USV tritt so ein Problem erst gar nicht auf. Dort findet alles im Hintergrund statt, wie es sich für eine SPS auch gehört. Als Anwender deklariert man nur die persistenten Variablen und ruft den Baustein FB_S_UPS* auf.

Gruß
Chräshe
 
Zuletzt bearbeitet:
bei dem Beispiel „IPC_X86.zip“ ist es eben nicht so, dass zyklisch geschrieben wird. :wink: Es wird geprüft....
Richtig. Nur bin ich der Meinung, mich daran zu Erinnern, dass es eine Situaion gibt, bei der Variabeln im NOVRAM auch zurückgesetzt werden. Ich glaube es war wenn das System af Stop geht oder so. Bin mir echt nicht mehr scher.


Gruss
 
Zurück
Oben