(Teil-) Datenverlust in einem DB

Bär1971

Level-1
Beiträge
220
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Gemeinde,

ich habe ein kleines Problem und finde einfach keine Lösung mehr.
In einer Anlage habe ich einen Global-DB als Textdatenbank.
Nach Übertrag in die Steuerung sind die projektierten Texte (Anfangsdaten) von der MMC-card in die CPU (Aktualdaten) übertragen worden.
Soweit noch ok. Die Texte werden bis auf 3 Byte (ASCII) nur lesend bearbeitet. Diese 3 Byte werden zyklisch mit einer neuen Nummer beschrieben. Funktioniert seit Monaten einwandfrei.

Heute hatte ich die Situation, das die 5 Stellen (5 Byte ASCII) vor den 3 beschriebenen Stellen plötzlich in den Aktualdaten den Wert 0 hatten. In den Anfangsdaten sind zwar immer noch die Buchstaben drin, aber die werden ja nur einmal in die CPU eingetragen.

Wo ich nun einfach nicht mehr weiterkomm, wie kann es sein, das nur lesend bearbeitete Byteadressen mit Zeichen (ASCII) plötzlich in den Aktualdaten ihre Werte verlieren? Der Baustein ist 213 Byte groß und die verlorenen Werte liegen da mitten drin...

2 Tage vorher sind in der selben Anlage 10 (ausgesuchte) Datenbausteine (Die Produktdatenbanken welche hier die höchsten Objektnamen haben) mit ihren Initialwerten überschrieben gewesen (alles 0). Andere Datenbausteine waren nicht betroffen...

Hat jemand eine Idee?
 
Wie werden die Bytes adressiert?

Symbolisch oder evtl. sogar indirekt? Dann mal die Adressierung checken.

Falls in den Querverweisen nichts mehr auftaucht... Manchmal liegt auch ein Zeiger oder eine Variable vom HMI da drauf. Dann sucht man in den Querverweisen auf der SPS-Seite vergeblich.
 

Dann bleibt

1. beim ersten Einschalten -nach dem Selbstuhrlöschen- der CPU die CPU auf STOP

2. es fallen alle Daten auf Initialdaten zurück.

Teillöschungen kenne ich "noch" nicht.

Frank
 
Dann bleibt

1. beim ersten Einschalten -nach dem Selbstuhrlöschen- der CPU die CPU auf STOP

2. es fallen alle Daten auf Initialdaten zurück.

Teillöschungen kenne ich "noch" nicht.

Frank


1. Meine CPU's waren nie in Stop nach dem DB's auf Initialwerte waren

2. Das gibt die Frage des TE nicht klar her, bei mir waren einzelne DB's weg. Es vielen natürlich nur die "statischen" Werte ins Auge, "Istwerte" wie z.B. Achspositionen die Zyklisch beschrieben werden fallen da nicht auf. Der TE sagt ja , nur die lesenden sind weg.


Ich hatte das sporadisch an 5 Maschinen, seit 6 Monaten ist es nicht mehr passiert ohne das ich was geändert habe.
Mir viel damals auf, das z.B. nur Werte weg waren die übers Panel eingegeben wurde, da es nicht mehr passierte konnte ich das aber nicht weiter verfolgen.


Unabhängig davon ist es immer noch unverständlich das Siemens so etwas zu stande gebracht hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,

die CPU ist eine 315-2PN/DP (6ES7 315-2EH14-0AB0), seit Mai/Juni diesen Jahres im Einsatz, Programmabläufe und -logiken sind unverändert seit Start der Maschine. Sie wird auch ab und an mal ganz ausgeschaltet was bisher auch nie ein Problem darstellte.
Die betroffenen Adressen in dem DB Textdatenbank werden nur lesend bearbeitet.
Ein Zugriff auf die DB´s von der HMI aus findet nicht statt.

Die Datenbank-DB´s (DB1131-DB1140) werden seit der Erstellung über einen "Datenbank-Handlings-FB" bedient. Hier können vom HMI aus Daten in einen temporären Datensatz geschrieben werden (Datensatz aufrufen) und verändert werden (Datensatz in Datenbank übertragen). Innerhalb eines Datenbankbausteins sind mehrere Datensätze per UDT angereiht. Je nach Anwahl im "Datenbank-Handlings-FB" wird ein Zeiger auf den Datensatz gebildet. Es wird also nur ein Datensatz beeinflusst. Eine "globale" Löschung ist ausgeschlossen. (Hat ja auch alles Monatelang funktioniert)
 
Bei der Inbetriebnahme habe ich die leeren Softwarestrukturen der Datenbank in die Steuerung übertragen und danach die Datenbanken über die Steuerung "gefüllt". Die einzelnen Daten der Datensätze sind korrekt in die Datenbausteine eingetragen worden, was die Position und Inhalte der einzelnen Daten im Datenbaustein betrifft. Auch Änderungen der Datensätze hatte bisher keine Probleme bereitet.
Das spricht eigentlich für korrekte Zeiger/Bereichslängen.

Ich verwende den SFC22 (create_db) um in der CPU neue Datenbanken vom Kunden erstellen zu lassen. Der DB-Nummernbereich ist von 1131 - 1160 begrenzt und der Aufruf zum erstellen eines DB´s ist flankengetriggert von einer HMI-Taste. Von mir in der Projektierung sind die Datenbausteine DB1131-DB1140 erstellt worden. Testweise habe ich damals auch mal ein paar DB´s so erzeugen lassen und sie wurden brav mit neuer Nummer hintenangehängt (also DB1141 etc.). Diese sind aber dann wieder aus der CPU gelöscht worden und auch mein Kunde hat wohl noch keine neue Datenbank erstellt denn bei einer Internetfernwartung habe ich mal nachgesehen und keine neuen DB´s auf der CPU gefunden. Also kann man auch hier eigentlich ausschliessen, das eine Fehlfunktion des SFC22 zum löschen der Dateninhalte der Datenbank-DB´s (oder initialisieren?) geführt hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Teilweise Datenverlust in Datenbaustein nach Übertragung

Hallo zusammen,

nun habe ich auch einen Teilweisen Datenverlust bei einer 315-2 PN/DP mit aktueller Firmware V3.2.7
in dem DB sind verschiedene Datentypen Bool, Real, INT etc.
Manchmal sind einzellne Werte verbogen 0, 32000.... irgendwelche Werte die in diesem DB nichts verloren haben.
WinCC greift nur auf ein paar dieser Daten zu, aber auch Daten die nicht von WinCC bearbeitet werden verändert sich.
Im Programm wird auf einen dieser Bausteine nur lesend zugeriffen....
Ich habe das Gefühl, das Problem ergibt sich nur dann wenn ich größere Datenmengen/fast alle Bausteine per Ethernet im Run-Modus übertrage... wie gesagt ist nur ein Gefühl...
Das Problem habe ich ca. 1xin der Woche an zwei Maschinen...

Die Bausteine und die gesamte Programmstruktur ist in ca. 100 Maschinen enthalten mit unetrschiedlichen CPUs 315, 317, 319, DP/DP und PN/DP Baugruppen aber ein solches Verhalten konnten wir noch nie feststellen....


Bekomme den Fehler aber noch nicht reproduziert, sonst hätte ich schon längst Siemens was um die Ohren gehauen .....

Hat jemand eine Idee?

Gruß Softi
 
Wenn da "sinnlose" Werte stehen, könnten das die "Reste" von Werten sein, die in den falschen Bereich geschrieben wurden. Z.B. wenn ungerade MD, MW adressiert werden, steht im Folgebyte meistens etwas "sinnloses". Vielleicht mal nach so etwas suchen...
 
Wuaaa

:rolleyes:

Problem gelöst, muss mich bei Siemens entschuldigen....

Im DB gab es 5 Strukturen und einen Temp Bereich. Anhand einer Variablen wurde die Anzahl Strukturen angegeben und anhand der DB-Größe die Blocklänge berechnet.....
Und die Variable mit der Anzahl von Strukturen ist default ein Standardwert der Projektspezifisch von einem Resetbaustein beschrieben wird. Wird also der DB mit der Standardvariable an die CPU übertragen ohne das ein Reset durchgeführt wird.... dann passt die Blocklänge nicht....

Gruß Softi
 
Zurück
Oben