S7-200 Daten remanent Speichern

godi

Level-1
Beiträge
1.460
Reaktionspunkte
185
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich will ein paar Daten im EEPROM der S7-200 speichern.
Dazu habe ich mir schon einen Baustein geschrieben mit dem SMB 31 und SMW32.
Wie kontrolliere ich das am sinnvollsten ob die Speicherung funktioniert hat?
Das ich die CPU ein paar Tage umliegen lasse für das habe ich leider keine Zeit mehr...

Wann werden die Daten eigentlich aus dem EEPROM zurückgelesen?
Nur wenn die CPU merkt das sie einen Speicherfehler beim Neustart hat?
Oder muss ich mich da Programmtechnisch darum kümmern?

Wann werden eigentlich die Startwerte vom DB genommen?
Immer wenn die CPU neu Startet oder wenn nach längerem Ausgeschaltet ein Speicherfehler ist und das Programm aus dem EEPROM geladen wird und die entsprechenden Daten nicht mit SMW32 im EEPROM gespeichert worden sind?

Für ein paar Tipps währe ich sehr Dankbar!

godi
 
deute ich jetzt alles das, was ich in der letzten stunde dazu gelesen habe richtig, so werden die daten beim start der cpu wiederhergestellt und zwar nach folgendem muster:

"hochleistungs-akku ok": als remanent gekennzeichnete daten werden aus dem remanenzspeicher geholt, nicht remanente aus dem EEPROM

"hochleistungs-akku nicht mehr ok": alle daten werden zurückgesetzt, das bit SM0.2 wird gesetzt, variablenspeicher und die ersten 14 bytes der merker wenn diese als remanent gekennzeichnet waren werden vom EEPROM wieder hergestellt

den akku wirst du wohl nicht so schnell leer bekommen aber, es gibt einen tipp, der auch im handbuch zu finden ist

Tipp
Durch Kopieren von Variablenspeicher in den nullspannungsfesten Speicher können Werte
gespeichert werden, die auf einem HMI--Gerät erstellt und vom Programm im internen EEPROM
gespeichert werden.
Um die im internen EEPROM gespeicherten Werte in Ihr STEP 7--Micro/WIN Projekt
aufzunehmen, müssen Sie den DB aus der CPU laden. Dieser Ladevorgang ist jedoch nur
möglich, wenn Sie den DB (der eine Variable mit einer gleich hohen oder höheren Adresse als
die Adresse der in SMW32 gespeicherten Variable enthält) zuvor aus STEP 7--Micro/WIN in die
CPU geladen haben.

hätt ich ne 200er, würd ich testen, was die meinen :confused:

aber wie hast du schon so schön gesagt: "nie wieder 200!" :D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo godi.

Du kannst es folgendermaßen teste. Setzt einfach den Variablenspeicher für die Remanenz im Systemdatenbaustein auf 0 (Systemdatenbaustein-> Remanente Bereich) . Danach schaltet du die CPU aus und die Daten werden vom EEPROM geladen. Zum Versuch kann du ja mal bevor du die CPU Spannungslos machst in einen V-Bereich einen Wert schreiben der nicht remanent ist und auch nicht im EEPROM gesichert worden ist. Wenn du anschließend die CPU aus und wieder einschaltest steht in dem V-Bereich wo du einen Wert mit der Variablentabelle geschrieben hast "0" drinnen und in den anderen die du im EEPROM gesichert hast, die Werte die dort gespeichert worden sind. Ich hoffe ich habe dir damit geholfen. Bei Fragen einfach melden. Hier wird die immer geholfen.
 
geht nit! :(

Hallo!

So habe jetzt herumprobiert in den verschiedensten Variationen.
Habe es so Probiert mit dem löschen der Remanenz und mit urlöschen der CPU aber es werden immer die Werte geladen vom Datenbaustein bzw wenn ich einen Speicherbereich ausserhalb des Datenbaustein verwende dann wird der immer auf null zurückgesetzt!

Hier mal der Code mit dem ich versuche die Daten zu Speichern:
Code:
SUBROUTINE_BLOCK Daten EEPROM speichern:SBR21
TITLE=UNTERPROGRAMM-KOMMENTARE
VAR_INPUT
Adresse:WORD;    // Adresse welche gespeichert werden soll (Basis VB0)
Datengröße:BYTE;    // Größe der Daten (01=Byte, 10=Wort, 11=DWort)
END_VAR
VAR_IN_OUT
Speichern:BOOL;    // Speichere Daten
END_VAR
BEGIN
Network 1 // Schreibe Daten zum EEPROM
LD     L3.0
UN     SM31.7
LPS
MOVB   LB2, SMB31
MOVW   LW0, SMW32
UENO
R      L3.0, 1
LPP
S      SM31.7, 1
END_SUBROUTINE_BLOCK

godi
 
Hallo godi.

So wie es aussieht hat es ja funktioniert. Der Code für deinen Baustein würde stimmen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Leider funktioniert die Remanenz noch immer nicht.
Wenn die CPU ein paar mal hintereinander Spannungslos geschaltet wird dann gehen die eingestellten Werte verloren bzw in den Default Wert zurück den ich im Datenbaustein hinterlegt habe.
Auch das MB10 geht verloren obwohl es als remanent eingestellt ist und im Handbuch steht drinnen das die ersten 14Byte bei remanent im EEprom gespeichert werden.
hat noch jemand eine Idee was da los sein kann das die Daten verloren gehen?
Das komische ist das manchmal die Werte erhalten bleiben und manchmal gehen sie verloren...

godi
 
Hallo godi.

Sorry das ich mich erst jetzt wieder melde (war im Urlaub). Wie sieht es den jetzt aus? Was funktioniert nicht und was geht? Habe das schon einige male gemacht und hat bis jetzt immer funktioniert. Was hast du den im Systemdatenbaustein bei Remanenz alles eingestellt? Wenn du magst kann du mir das Programm mal schicken, dann schau ich es mir mal an, wo es noch hängt. Das Programm einfach an wittmann.hubert@gmx.de schicken.
 
Hallo Hubert!

Ich glaube das Problem war das ich einen externen EEPROM eingebaut habe und ich der Meinung war das man mit dem SMB32 auf den externen EEprom schreibt und nicht auf den internen Nullspannungsfesten speicher. Da ist von mir eine Verwechslung vorgelegen.
Dadurch wurde eben manchmal nach Spannung aus und ein wieder die werte vom EEPROM geladen und die Einstellungen waren dann wieder auf den Defaultwerten vom Datenbaustein eingestellt.
Leider konnte ich es nicht mehr testen weil ich nicht mehr in der Firma bin aber der Maschinenbauer wird das noch für mich testen und dann bekomme ich bescheid.

godi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo godi.

Genau mit dem SMB31 und SMW32 schreibst du nur auf das interne EEPROM und nicht auf das externen. Auf das Externe kannst du z.B. das Programm (Programmbaustein, Systemdatenbaustein, Datenbaustein) schreiben ums es zu versenden. Wenn das EEPROM gesteckt ist und es wird ein bestimmt unterschied zwischen Progamm auf der CPU und dem externen EEPROM erkannt, dann werden deine Daten überschrieben und deshalb immer wieder deine Defaultwert. Gibt mir bescheid ob es geklappt hat oder nicht.
 
Ja werde ich bescheid sagen ob es funktioniert hat. Wird aber höchstwahrscheinlich erst am ende nächster Woche sein.

godi
 
Zurück
Oben