S7-226 - Daten dauerhaft speichern

S7-Fighter

Level-1
Beiträge
35
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
auf mich kommt die Aufgabe zu, Daten ins EEPROM (wg. dauerhaft) zu übertragen.
Nun schreibt Siemens, daß es hierfür einen Befehl gäbe. Befehl ist, lt. Siemens,
"Übertrage Daten ins EEPROM".
Nur geben diese Schlauberger keine Syntax hierfür an. Daher kann ich diesen "Befehl" in Microwin 4 auch nicht finden.

Weiß jemand wie das Problem zu lösen ist ?

Besten Dank im voraus !
 
Im SMW32 wird die Adresse im DB angegeben wo gespeichert werden soll.
Die Schreibsteuerung ist im SMB31.

Der Schreibbefehl wird sofort ausgeführt (also nicht erst am Zyklusende).
Deshalb sollte auch zuerst das SMW32 beschrieben werden und dann erst den Schreibauftrag starten.

Ist in der Hilfe von MicroWin eigentlich nicht schlecht beschrieben.

Gruß,

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,
in der Hilfe steht es so :
Zum Ausführen der Funktion laden Sie die Adresse, die gespeichert werden soll, in SMW32.

Nun stellen sich die Fragen :
1.) Wo bekomme ich die Adresse der Varaibalen (VB, VW, VD) her ?
2.) Und woher weiß ich an welcher Adresse im EEPROM der abgespeicherte Wert liegt ?

Wenn man die Antworten kennt, sind sicherlich die in der Hilfe angeführten Beschreibungen klar.
Aber so aus dem Nichts ist das schon etwas intransparent.

Ein kleines Programmbeispiel wäre hier sehr hilfreich. ;)
 
Zu 1)
SMW32 Die Adresse im Variablenspeicher, deren Daten gespeichert werden sollen, wird in SMW32 abgelegt. Dieser Wert wird als Versatz von V0 angegeben. Wenn die Speicherfunktion ausgeführt wird, wird der Wert aus der Adresse im Variablenspeicher in der entsprechenden Adresse des Variablenspeichers im nullspannungsfesten Speicher (EEPROM) abgelegt.

Heißt auf Deutsch:
Ins SMW32 schreibst du die Nummer des Startbytes,
nehmen wir mal an du willst VD1000 speichern,
also 1000 ins SMW32 transferieren,
Hex83 ins SMB31, Binär: 10000011
und schon ist VD1000 ab dem nächsten Zyklus im EEPROM gespeichert.

Zu 2)
Ist so nicht relevant!

Mfg
Manuel
 
Wichtig:
Entgegen der Beschreibung von Harald wird der Schreibbefehl NICHT sofort ausgeführt,
sondern erst am Zyklusende.
Dies hat wiederum zur Folge das das ändern von SMW32, SMB31 nur einmalig pro Zyklus (sinnvoll) erfolgen kann.

Zitat aus der Hilfe:
Am Ende eines jeden Zyklus prüft die CPU, ob ein Wert im nullspannungsfesten Speicher abgelegt werden soll. Ist dies der Fall, dann wird der angegebene Wert im nullspannungsfesten Speicher abgelegt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Zu 1)
SMW32 Die Adresse im Variablenspeicher, deren Daten gespeichert werden sollen, wird in SMW32 abgelegt. Dieser Wert wird als Versatz von V0 angegeben. Wenn die Speicherfunktion ausgeführt wird, wird der Wert aus der Adresse im Variablenspeicher in der entsprechenden Adresse des Variablenspeichers im nullspannungsfesten Speicher (EEPROM) abgelegt.

Heißt auf Deutsch:
Ins SMW32 schreibst du die Nummer des Startbytes,
nehmen wir mal an du willst VD1000 speichern,
also 1000 ins SMW32 transferieren,
Hex83 ins SMB31, Binär: 10000011
und schon ist VD1000 ab dem nächsten Zyklus im EEPROM gespeichert.

Zu 2)
Ist so nicht relevant!

Mfg
Manuel


Danke für die praxisorientierte Erkärung. Samples sind halt mal das A+O aller Handbücher.

Muß aber nochmal zu Pkt.2 Stellung nehmen.
Die Daten sollten ja nicht nur speichbar, sondern auch wieder greifbar sein.
Wenn ich es richtig sehe, steht dann in VD1000 dauerhaft der abgelegte Wert ?
D.h. wenn ich VD1000 verändern möchte, kann ich das machen, müßte aber die Veränderung wieder erneut abspeichern ?
 
Also ich verstehe das anders,
du speicherst irgendeinen Wert, z.B. 1000 von VD1000 in EEPROM,
jetzt veränderst du VD1000 dynamisch im Programm ...

Jetzt ist Spannungsausfall.

Ist nun VD1000 remanent definiert (im Systemdatenbaustein) bleibt
der Wert zum Zeitpunkt des Spannungsausfalls solange im VD1000,
bis der Pufferkondensator leer ist also ca. 2 - 4 Wochen.
Nach diesen ca. 2 Wochen wird dann der Wert der im EEPROM gespeichert ist,
in VD1000 geladen.

Im Grunde so verstehe ich das, ist das die Dynamisierung des Datenbausteins.

Also nach längeren Spannungsausfall passiert also folgendes:
Es werden entweder die V-Register mit dem Inhalt des Datenbausteins initialisiert,
oder falls vorhanden mit den Werten im EEPROM.

Mfg
Manuel
 
Zuletzt bearbeitet:
Also ich verstehe das anders,
du speicherst irgendeinen Wert, z.B. 1000 von VD1000 in EEPROM,
jetzt veränderst du VD1000 dynamisch im Programm ...

Jetzt ist Spannungsausfall.

Ist nun VD1000 remanent definiert (im Systemdatenbaustein) bleibt
der Wert zum Zeitpunkt des Spannungsausfalls solange im VD1000,
bis der Pufferkondensator leer ist also ca. 2 - 4 Wochen.
Nach diesen ca. 2 Wochen wird dann der Wert der im EEPROM gespeichert ist,
in VD1000 geladen.

Im Grunde so verstehe ich das, ist das die Dynamisierung des Datenbausteins.

Also nach längeren Spannungsausfall passiert also folgendes:
Es werden entweder die V-Register mit dem Inhalt des Datenbausteins initialisiert,
oder falls vorhanden mit den Werten im EEPROM.

Mfg
Manuel

smileymania.at_12227.gif
smileymania.at_12222.gif
smileymania.at_12238.gif
smileymania.at_12235.gif


Ich möchte übers TD 200 eingebene Parameter dauerhaft abspeichern und im Programm als Positionsangabe (f. Schrittmotor) verwenden. Hierfür muß ich mir noch eine Sequenz basteln welche die Funktionstasten auswertet.

Mit Deiner Angabe sollte es funktionieren. Ich muß nur EEPROM und Datenspeicher gleichhalten d.h. Eingaben sofort abspeichern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

MSB hat das richtig gut beschrieben.

Nur die Remanenz des eingebeuten Cap's ist doch kürzer. Laut HB:

CPU221/222 typ. 50 Stunden
CPU 224/224XP/226typ 100 Stunden.

Ihr solltet auch nicht "ständig" ins EEPROM schreiben (max. 100.000 Schreibzyklen).

Dummerweise gibts die Seite www.27-200.net nicht mehr. Da waren schöne brauchbar Lib's für das Schreiben ins EEPROM, auch für mehr als 4 Bytes. :( :(

Sonst noch ein schönes Wochenende.

Gruss

Helmut
 
Zurück
Oben