TIA Datalog Tia Portal Siemens V17

Anasalali

Level-2
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich habe ein DataLog erstellt, um bestimmte Werte zu Speichern. Wie man im Bild Sieht, habe ich die Zahl der Records 10000 eingegeben, und bei der DataLogWrite habe ich ein Taktmerker 0.5Hz, sodass jeder 2 Sekunden ein Datensatz geschrieben wird. Das Problem ist, dass wenn die Zahl der Datensätze 10000 erreicht ist, werden die älteste Datensätze nicht überschrieben und hört komplett mit dem Schreiben auf. Ich wünsche dass mir jemand helfen kann.


Beste Grüße Screenshot 2025-09-22 141140.png
 
Moin Anasalali,

abgesehen von Deinem beschriebenen Problem hast Du wahrscheinlich noch ein weiteres Problem:
Wenn Du mit 0,5Hz auf die Speicherkarte schreibst, ist diese bald defekt.
Hier solltest Du Dir etwas Anderes einfallen lassen.

Aus der SIEMENS-Hilfe:
Die maximale Anzahl der Datensätze, die in einem Data Log abgelegt wird, geben Sie am Parameter RECORDS vor. Wenn die vorgegebene maximale Anzahl von Datensätzen in dem Data Log erreicht wird, wird der jeweils älteste Datensatz überschrieben. Um ein Überschreiben der vorhandenen Datensätze zu vermeiden, können Sie die Anweisung "DataLogNewFile" nutzen. Die Anweisung wird bei Erreichen der am Parameter RECORDS vorgegebenen Anzahl (Returnwert 1 am Parameter STATUS der Anweisung "DataLogWrite") zum Erstellen eines neues Data Log mit der gleichen Struktur genutzt. Die Datensätze werden danach in dem neuen Data Log gespeichert.

Hinweis
Lebensdauer von Memory Cards
Die Lebensdauer von Memory Cards ist begrenzt. Nähere Informationen finden Sie hier: Wissenswertes zu SIMATIC Memory Cards

Lebensdauer von SIMATIC Memory Cards
Die Lebensdauer von SIMATIC Memory Cards ist begrenzt und u. A. von folgenden Faktoren abhängig:
- Kapazität der SIMATIC Memory Card
- Schreibhäufigkeit
- Datenmenge, die auf die SIMATIC Memory Card geschrieben wird.
Schreib- bzw. Löschvorgänge, insbesondere zyklische Schreib-/Löschvorgänge über das Anwenderprogramm auf die SIMATIC Memory Card verkürzen deren Lebensdauer.
Die zyklische Ausführung der Anweisungen "CREATE_DB" (mit ATTRIB "DB im Ladespeicher erstellen"), "DataLogWrite", "RecipeExport", "RecipeImport" und das Setzen der Zeitzone "SET_TIMEZONE" reduzieren abhängig von der Anzahl der Schreibvorgänge und Daten die Lebensdauer der Speicherkarte.
Neben den zyklischen Schreib-/Löschvorgängen wirkt sich auch das Schreiben bzw. Löschen sehr großer Datenmengen negativ auf die Lebensdauer der SIMATIC Memory Card aus.


Also die maximale Anzahl an Schreib-/Löschvorgängen:

4 MByte ==> 500.000
12 MByte ==> 500.000
24 MByte ==> 500.000
256 MByte ==> 200.000
2 GByte ==> 100.000*
32 GByte ==> 100.000

*je nach Karten auch nur 60.0000



Wenn Du alle 2s einen Schreibvorgang hast, hast Du nach
55,5h (<3 Tage) ==> 100.000 Schreibvorgänge erreicht
111h (<5 Tage) ==> 200.000 Schreibvorgänge erreicht
278h (<12 Tage) ==> 500.000 Schreibvorgänge erreicht.

Also, je nach Karte ist sie nach < 1/2 Monat kaputt.

Du solltest Dir etwas anderes Überlegen.

VG
MFreiberger
 
Zuletzt bearbeitet:
Sorry, ich dachte der Status. Also bei Error steht 0
Das ist schon klar. Das Error-Bit steht nur für einen Zyklus an. Es ist quasi eine Flanke, damit Du Dir den Status speichern kannst.
In dem Zyklus, in dem das Error-Bit TRUE ist, steht am Status der Fehler-Code an.
Wenn Error FALSE bleibt, hat Dein Baustein keinen Fehler.

Programmier mal Folgendendes:
Code:
IF
    ERROR-Bit
THEN
    Status-Speicher := Status;
END_IF;
Hinweis: Das ist ein Pseudocode. Die Variablen musst Du Dir natürlich noch erstellen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist schon klar. Das Error-Bit steht nur für einen Zyklus an. Es ist quasi eine Flanke, damit Du Dir den Status speichern kannst.
In dem Zyklus, in dem das Error-Bit TRUE ist, steht am Status der Fehler-Code an.
Wenn Error FALSE bleibt, hat Dein Baustein keinen Fehler.

Programmier mal Folgendendes:
Code:
IF
    ERROR-Bit
THEN
    Status-Speicher := Status;
END_IF;
Hinweis: Das ist ein Pseudocode. Die Variablen musst Du Dir natürlich noch erstellen.
Ah okay, jetzt verstehe was du meinst
 
Zurück
Oben