Einstellwerte speichern für 5 Tage

D4v1d

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

ich bin derzeit dabei ein Retrofit für eine Anlage zu programmieren.
Hier meine Problemstellung.
Die Anlage hat ca. 25 Parameter, die über ein Panel verändert werden können.
Dateiformate von Bool über Integer bis real alles dabei
Nun möchte der Kunde, dass ich diese Parameter für die letzen 4 Tage speicher um so quasi Wiederherstellungspunkte zu haben.
(bitte fragt nicht nach dem Sinn, der Kunde will es so^^)

Meine Frage wie würdet ihr da ran gehen?
Die Werte Speichern durch ein Schieberegister ausgelöst bei Tageswechsel?
Also quasi für jede variable?
Dann über eine Taste das Zurückladen ausführen?
Mein Ansatz kommt mir sehr unelegant vor, zumal ich für jede Variable 4 zuweisungen Programieren muss.

Hat da jemand vielleicht einen Eleganteren Ansatz der mich keine 300 Zeilen Code kostet?^^

Zur Steuerung:
Schneider Steuerung mit Codesys basierender Oberfläche.

Vielen Dank im Vorraus
 
Zuletzt bearbeitet:
Moin D4v1d,

was hast Du denn für Hardware zur Verfügung?

Wäre es eine Alternative, mit der entsprechenden VISU ein Protokoll als PDF auszudrucken?

Wie lange sollen die Wiederherstellungspunkte "aufbewahrt" werden?

Wie wird ein Wiederherstellungspunkt ausgewählt, um dessen Einstellungen wieder zu übernehmen?

VG

MFreiberger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einige Idéen:

1. Die 25 Parameter als Rezepte behandeln, und über die HMI jeden Rezeptänderung protokollieren.
Wenn die HMI es unterstützt.

2. Bei Wertänderung von ein Parameter, alle 25 Parameter als komplette Parametersatz in ein FIFO/Array Buffer abspeichern.
Ist nicht so viel Aufwand wenn man die 25 Parameter in ein UDT packt.

3. Bei Wertänderung von ein Parameter, nur ein ID-Nr und den geänderte Wert in ein FIFO/Array Buffer abspeichern.
Bedeutet die FIFO Buffer muss pro Parameter ein 32-bit Speicher haben egal ob Bool, Int oder Real.
 
Die 25 Werte würde ich schon mal in ein Struct packen, dann ist das mit den verschiedenen Datentypen kein Problem mehr. Array [0..4] von diesem Struct bilden. Aktuelle Werte liegen in [0]. Bei Flanke neuer Tag dann in einer Schleife die Struct kopieren, [3]->[4], [2]->[3], [1]->[2], [0]->[1]

natürlich mit der Indexvariable anstatt den festen Nummern.
 
Zurückladen geht dann mit Kopieren von [Sicherungsauswahl]->[0]

Über diese indirekte Adressierung können auch die Sicherungen am HMI angeschaut werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Antworten.
Ich glaube ich werde mir den Vorschlag von Oberchefe mal anschauen, das hört sich vielversprechend an.
 
Zuletzt bearbeitet:
Zurück
Oben