S7 200 Netzaus 2 Wochen Daten verändert, vergessen

Senator42

Level-1
Beiträge
927
Reaktionspunkte
80
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo S7 200 Spezis,

ist es möglich dass eine S7 200 nach 2 Wochen NETZAUS die Daten im V-Speicher auf eine Art Anfangswert setzt?
Es sieht aus, als hätte die CPU nun Daten VOR einer Änderung durch Steuern-Var bzw. ändern mit LibNoDave.

Also gibt es in der CPU den V-Speicher 2 mal im RAM ? (einmal wie der durch übertragen ins AG kommt, und dann einen mit dem die CPU arbeitet.)
Nach ein paar Tagen Netzaus passt alles noch. Aber nach 2..3 Wochen nicht mehr.

Ich habe die Daten mit denen vom .pro verglichen, und die meisten stimmten überein. Sollten sie aber nicht, da sie vor Weinachten definitiv (!!!) im AG anders waren !

Gibt es so einen Effelt auch mit anderen S7 (Siemens, Vipa) CPUs ?
 
Hallo,
RTFM, ich kann Dir die Seite nicht sagen, aber Du kannst in der Büchse Remanz auf zwei Arten herstellen, einmal kondensatorgepufferter RAM, V Bereich, hält laut Handbuch nach meinem Wissen 80 Stunden. Alternativ kannst Du einiges im EEPROM ablegen, aber keine Ahnung, wieviel.

EDIT:
Die 200 ist nicht mit den größeren vergleichbar, das ist eine eigene Liga.
Gruß
Mario
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke,

das mit dem "EEPROM ablegen" wusste ich noch nicht. nun ist klar was da passierte ;)

das von 'RTFM':
SMB31 und SMW32 Schreibsteuerung nullspannungsfester Speicher (EEPROM)

und das vom web (s7 200 remanenz):
http://support.automation.siemens.c...objaction=csview&extranet=standard&viewreg=WW


"Die in diesem FAQ verwendete Operationsbibliothek ist ab STEP 7-Micro/WIN Version 4.0 SP7 verwendbar."

hab nur SP5, also muss ich selber eine schleife mit SMB31 bauen :???:
Oder hats schon einer gemacht? :confused:
 
Zuletzt bearbeitet:
...
ist es möglich dass eine S7 200 nach 2 Wochen NETZAUS die Daten im V-Speicher auf eine Art Anfangswert setzt?
Es sieht aus, als hätte die CPU nun Daten VOR einer Änderung durch Steuern-Var bzw. ändern mit LibNoDave.

Also gibt es in der CPU den V-Speicher 2 mal im RAM ? ...
Nein, aber einen im RAM und einen im nullspannungsfesten EEPROM.

Zum einen werden Variablen, die beim Programmieren im Datenbaustein angelegt werden, nullspannungsfest gespeichert.
Zum Anderen kann man aus dem Programm heraus mit den Sondermerkern SMB31 und SMW32 Variablen zum EEPROM übertragen und damit ebenfalls nullspannungsfest speichern. Diese Übertragung überschreibt unter Umständen Festlegungen im Datenbaustein, da ja beide den gleichen Bereich beschreiben (je nachdem, wer später schreibt).

Die Übertragung mit SMB31 und SMW32 kann ca. 1.000.000 Mal pro Speicherzelle erfolgen. Deswegen sollte man z.B. keinen permanenten Sekundenspeicher für Betriebszeiten so anlegen (reicht sonst keine 2 Wochen!). Für solche Fälle kann man z.B. den Betriebszähler im Merkerbereich MB0 bis MB13 anlegen und diesen im Systemdatenbaustein als remanent definieren. Im Falle eines Spannungsausfalles wird dann dieser Bereich automatisch nullspannungsfest abgespeichert.

Das Programm arbeitet normalerweise nur mit dem RAM. Nur beim ersten Start eines Programms oder bei Verlust remanenter Daten greift es auf den EEPROM zurück. Der Verlust remanenter Daten wird im ersten Zyklus durch den gesetzten Sondermerker SM0.2 angezeigt, so daß man den Anwender darauf auch aufmerksam machen kann.
 
Zuletzt bearbeitet:
was heißt
"Diese Übertragung überschreibt unter Umständen Festlegungen im Datenbaustein"

Festlegungen im Datenbaustein ??

In meiner Anwendung sind im Datenbaustein, also V Speicher:
a) - Positionen, Geschwindigkeiten und Zeiten, die Per Visu gelegentlich geändert werden
b) - Schrittnummern die im Programm dauernd geändert werden, aber nicht permanent sein müssen
c) - Daten von 2 Achsen, die aber (warscheinlich) NUR gelesen werden

a + c wurden vom PG "generiert"
b wird bei netzein auf 0 gesetzt

Also ich denke, ich muss <alle paar stunden mal> a) ins EEPROM übertragen.
Dann ist nach Betriebsurlaub allso noch ok.
SM 0.2 sagt: Kondensator war leer. Müsste aber dann egal sein.

(das mit 1 Mio schreibzugriffe hatte ich gelesen, ist bei microkontoller auch so.)


Was ich aber wirklich nicht verstehe:
in den Systemdaten kann man remanente speicher definieren.
WAS ist da nach 10 wochen (ohne batteriemodul) denn noch vorhanden?
Das, was ich per PG übertragen habe, dann wäre der Begriff REMANENT blödsinn.
ODER das, was vor dem netzaus in V stand, dann wäre das mit SMB31 unnötig.

verwirrung grande !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Remanent ist solange gespeichert, wie Dein Kondensator oder wenn vorhanden Batteriemodul Spannung aufrecht erhält. Dann ist's halt weg.
Nullspannungsfest bleibt auch danach erhalten.

a) würde ich bei Änderung am HMI zum EEPROM übertragen. Ich laß dann bei den entsprechenden Feldern ein Bit bei Änderung setzen und lasse dieses Bit bei erfolgreicher Übertragung zum EEPROM zurücksetzen. Dabei darauf achten, daß immer nur eine Variable übertragen werden kann und dies auch mehrere Zyklen dauern kann. Siehe SMB31, vor allem SM31.7!
 
was heißt
"Diese Übertragung überschreibt unter Umständen Festlegungen im Datenbaustein"

Festlegungen im Datenbaustein ??

In meiner Anwendung sind im Datenbaustein, also V Speicher:
...
Datenbaustein ist nicht gleich V-Speicher.
Im Datenbaustein (in der Seitenleiste anwählen) kann man (Start-)Werte für Variablen vorgeben, ähnlich den Initialwerten bei der S7-300.
Diese werden im EEPROM nullspannungsfest abgelegt.
Variablenzuweisungen im Programmbaustein werden nur im RAM abgelegt. Ist der RAM remanent definiert, bleibt er erhalten, solange irgendwie noch Spannung in der CPU ist. Ist er nicht remanent oder keine Spannung mehr da, wird bei Neustart wieder auf die Daten im EEPROM zurück gegriffen.

Variablen können vom Programm aus zum EEPROM übertragen werden oder über den Datenbaustein vom PG aus. Um vom Programm eingetragene Daten im EEPROM nicht wieder zu überschreiben, kann man beim Übertragen vom PG zur CPU den Datenbaustein abwählen und z.B. nur den Programmbaustein übertragen.
 
Hier mal ein Beispiel eines Datenbausteins:


Wie man beim VB900 (ganz unten) übrigens sehen kann, kann man einzelne Bits nicht angeben, sondern nur zusammen im Byte (oder größer).
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Und um Dich jetzt ganz zu verwirren - bis dato sprachen wir immer vom internen EEPROM.

Es gibt auch noch einen externen EEPROM in Form eines Speichermoduls. Der wird dort eingesteckt, wo auch das Batteriemodul hinein kommt (also nur eins von beiden natürlich).
Beim Übertragen vom PG kann man dann auch das Speichermodul auswählen. Beim Anlauf der CPU vergleicht diese dann die Daten vom externen und internem EEPROM. Unterscheiden sich diese, werden die internen mit den externen überschrieben.
 
Zusammenfassend erklärt es mir so:

> Datenbaustein ist nicht gleich V-Speicher.
Doch 1: im PG heisst es Datenbaustein, im AG, da es nur EINEN gibt und damit ein AUF DB entfällt, ist es zwar auch ein "Datenbaustein", seine Elemente sind aber nicht DW, DBW sondern V wie Variable.
Mit LibNoDave wird dieser Speicher ja auch mit DB-Nr 1, und Typ V angesprochen.

Doch 2:
> den Datenbaustein abwählen und z.B. nur den Programmbaustein übertragen.
wenn man Programmbausteine übertragen kann, dann kann man auch den Datenbaustein übertragen. Sowie den Systembaustein.

>Ist der RAM remanent
also wie bei S5, wenn man die batterie herausnimmt und abschaltet.

> kann man beim Übertragen vom PG zur CPU den Datenbaustein abwählen
genau so hatte ich das immer gemacht.

> wie .. VB900 .. kann man einzelne Bits nicht angeben
war auch bei S5 so

vielen dank nochmal und gruss aus Nürnberg
 
Zusammenfassend erklärt es mir so:

> Datenbaustein ist nicht gleich V-Speicher.
Doch 1: im PG heisst es Datenbaustein, im AG, da es nur EINEN gibt und damit ein AUF DB entfällt, ist es zwar auch ein "Datenbaustein", seine Elemente sind aber nicht DW, DBW sondern V wie Variable.
Mit LibNoDave wird dieser Speicher ja auch mit DB-Nr 1, und Typ V angesprochen.
...
Der Datenbaustein im EEPROM (den man vom PG aus beschreibt) ist nicht der normale Variablenspeicher, wenn du z.B. 'MOV 0, VW0' ausführst. Das passiert nur in dessen Kopie im RAM. Nur Übertragungen mit SMB31 an Adresse SMW32 werden in den Datenbaustein im EEPROM eingetragen. Im Datenbaustein im EEPROM stehen, vereinfacht gesagt, nur die Initialwerte der Variablen bei Programmstart, die man aber aus dem Programm heraus für den nächsten Neustart neu festlegen kann.

Beim ersten Programmstart, oder wenn Remanenzverlust festgestellt wurde, wird der Datenbaustein vom EEPROM komplett zum RAM kopiert.
Bei Starts ohne Remanenzverlust oder ohne Änderung des Datenbausteins durchs PG werden die Daten aus den remanenten RAM-Bereichen weiter verwendet und nur die nicht-remanenten Bereiche aus dem EEPROM kopiert.



...
Doch 2:
> den Datenbaustein abwählen und z.B. nur den Programmbaustein übertragen.
wenn man Programmbausteine übertragen kann, dann kann man auch den Datenbaustein übertragen. Sowie den Systembaustein.
...
Halt einzelne Komponenten, die man nur nach Bedarf überträgt.
Wenn der Bediener z.B. neue Parameter eingegeben hat und man diese sicherheitshalber nullspannungsfest zum EEPROM überträgt, dann sollte man den Datenbaustein vom PG z.B. bei einem Programmupdate nicht mehr übertragen, weil sonst diese Daten vlt. wieder mit den Werten aus dem PG überschrieben werden. (Oder halt vorher auslesen.)



...
>Ist der RAM remanent
also wie bei S5, wenn man die batterie herausnimmt und abschaltet.
...
Mit S5 kenn ich mich leider nicht aus und kann deshalb nicht vergleichen.
 
Zuletzt bearbeitet:
Zurück
Oben