TIA kontinuierliches Loggen mehrerer Signale

lfpts

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich möchte Signale die in einer Station anfallen mitloggen. Ziel ist, dass man einen Log hat der auch mehrere Tage zurückreicht und jeden Signalwechsel beinhaltet.
Zu überwachen wären pro Station ca 25 Signale, das meiste sind Bool, ein Paar Int und 2-3 String.
Es kömnen ca 20 Stationen pro SPS zusammenkommen.
Jedes Signal wird sich (je nach Taktzeit) einmal alle ca 10 Sekunden zweimal ändern (zB False-True-False).

als grob gesagt 25Signale*2Signalwechsel=50Logeinträge mit Zeitstempel und Benennung je Station.

Die Daten auf die SD-Karte der CPU zu schreiben wäre schön, weil der direkteste Weg, aber ich denke das geht zu sehr auf die Lebensdauer der Karte.

Mein Ansatz wäre die Ereignisse in ein Array zu sammeln, das dann wenn es voll ist in ein zweites Array kopiert wird und vom HMI mittels Skript ausgelesen wird.
Dann wird per LineWrite die Logdatei ergänzt, während die CPU weiter ins erste Array logt.
Natürlich geht das wieder auf die Lebensdauer der SDKarte im HMI, aber wenn da eine stirbt, kann man erstmal damit leben.


Meine erste Grundlegende Frage ist: Ist das aus Performancesicht überhaupt sinnvoll? Die in Planung befindlichen Projekte haben 15 Stationen und sind mit einer S7-1517 ausgerüstet. Habe da selber nicht so viele Erfahrungswerte und würde mich über eine Einschätzung freuen.

Wenn jemand Vorschläge hat wie man das besser/performanter umsetzen kann würde mich das sehr interessieren!

Vielen Dank schonmal :)

Grüße
Thomas
 
Ich sage jetzt mal so :
5 Tage * 24 Stunden * 60 Minuten * 60 Sekunden/5 = 86400 Einträge pro Variable
Ist deine Variable ein Integer dann benötigst du in dem Beispiel nur für den einen Integer 172800 Byte Speicher.
Jetzt sollen es aber mehrere Variablen werden, u.A. auch Strings (wie lang ?). Meinst du, dass die SPS für dieses Vorhaben der richtige Aufbewahrungsort ist ?
Besser wäre es, du loggst das gleich alles mit deiner HMI (ich würde hierfür eine PC-Runtime empfehlen) und speicherst es passend weg ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Larry
Da habe ich was nicht ausreichend ausgeführt.
Ich will natürlich nicht mehrere Tage in der SPS speichern, sondern eher so einen Takt, also sagen wir mal 10 Sekunden oder 20.

Ablauf wäre also
Teil wird bearbeitet
Ereignisse werden in Array1 geloggt
Bearbeitung Ende
Array1 in Array2 kopieren
triggerbit setzen
HMI liest Array2 aus und schreibt den Inhalt an das csv dran.


Ich habe für gewöhnlich für 2 Stationen ein TP700 zur Verfügung.
Die Strings haben nur wenige (<10) Zeichen.
 
Das hatte ich dann "etwas" anders verstanden ... aber egal ...
Bei dem Grund-Takt kannst du das auch direkt aus der Struktur_1 (ich würde hier kein Array nehmen) lesen. Generell gilt aber : Die Variablen werden von der HMI (egal welche) nicht kontrollierbar eingelesen - es sei den du arbeitest hier mit Rezepten. Es kann dir also passieren, dass du zwar Daten abspeicherst, die sogar sinnvoll sind, die aber nicht zwangsläufig auf dem gleichen (Zeit-Stempel-)Stand sind - egal welche Taktzeit du hast ...
Unabhängig davon würde ich aber außerdem auch mit einer PC-Runtime und nicht mit einem TP oder CP arbeiten.

Gruß
Larry
 
Zurück
Oben