SCL Daten Speichern am Monatsende

IxShokZz

New member
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

wie im Titel zu sehen möchte ich Daten, in meinem Fall den Energieverbrauch einer Maschine, immer am Monatsende speichern.
Die Systemzeit die ich auslesen kann bekomme ich in einem DWORD ausgegeben. In diesem DWORD werden die Sekunden gezählt die Zeit dem 1.1.1970 vergangen sind. Das DWORD kann ich auch in den Datentyp DATE umwandeln welches mir dann das Datum im Format YYYY-MM-DD ausgibt. Das Jahr kann ich aus der Systemzeit einzeln herausrechnen. Das hilft mir allerdings wenig weil ich ja das Monatsende benötige. Hat vielleicht jemand eine Idee wie ich aus den Sekunden den Aktuellen Monat herausfinde ?
 
Wäre es nicht einfacher und besser, um 0:00 Uhr am Monatsanfang zu speichern? Das wäre immer der Erste eines Monats. Dann wenn der Monat sich ändert oder der Tag des Monats zu 1 wechselt. Tag und Monat kannst Du eventuell aus dem Datentyp DATE entnehmen?
Welche SPS hast Du und welche Programmiersoftware in welcher Version?
SCL klingt nach Siemens, da passt aber deine Beschreibung des Datentyps DATE nicht...

Ist Deine SPS immer eingeschaltet? Was soll passieren, wenn sie ausgerechnet am Monatsanfang 0:00 Uhr ausgeschaltet oder in STOP ist? Wann soll der Triggerpunkt in der Sommerzeit sein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also die SPS ist die Lenze p500 und die Programmiersoftware ist der PLC-Designer auch von Lenze Version ist 3.23.0.

Also die Maschine in der die SPS verbaut ist wird immer am Freitag ausgeschalten. Der Triggerpunkt zum Speichern habe ich jetzt erstmal auf das Monatsende legen wollen aber ob Monatsende oder Monatsanfang macht ja jetzt erstmal nicht so den Unterschied. Ob Sommer oder Winterzeit ist auch nicht so wichtig weil ich ja nicht zwingend um 0 Uhr triggern muss.
Den Energieverbrauch speichere ich dauerhaft in der SPS also der geht mir nicht verloren auch wenn die SPS ausgeschalten wird. Meine Idee war den Energieverbrauch jeden Monat aufzuzeichnen und abzuspeichern. Nachdem dann gespeichert wurde wollte ich den Energieverbrauch wieder auf 0 setzen und von Vorne anfangen. Ich schaffe es nur nicht den Monat aus dem DATE rauszuholen bzw. hab ich einfach keinen Ansatz.
 
Also die Maschine in der die SPS verbaut ist wird immer am Freitag ausgeschalten.
Und was machst Du, wenn der Triggerzeitpunkt am Wochenende liegt? Dann mußt Du noch nachträglich triggern...
Ich mag ja für solche Fälle die OSCAT-Bibliothek, da kann man sich Anregungen holen und muß das Rad nicht neu erfinden...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich hätte jetzt einfach die Monatszahl mit einer Sollzahl verglichen und wenn die beiden unterschiedlich wären hätte ich getriggert. Wenn jetzt die Maschine nach dem Wochenende wieder eingeschalten wird dann habe ich die Werte ja weiterhin und es triggert sobald die beiden Werte sich unterscheiden. Kann ja die Vergleichszahl immer beim trigger hochzählen und wenn es höher als 12 geht dann spring ich halt wieder auf 1.
Möglich das es so nicht gut funktioniert aber ich arbeite mit der Software und allgemein mit SCL erst 2 Wochen also ist meine Denkweise vielleicht auch einfach noch nicht ausgereift genug.
 
Also täglich (laufend) das aktuelle Monat mit dem gespeicherten vergleichen -> unterschied -> Monatswechsel -> deine Aktion ausführen
Danach aktuelles Monat wegspeichern
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde ebenfalls einfach den Monat auf Wertänderung überwachen. Einfach den aktuellen Monatswert (1..12) remanent merken, und wenn der aktuelle Monat unterschiedlich ist, dann ist der gemerkte alte Wert der Vormonat, zu dem der aufgelaufene Energieverbrauch gehört. Den Energieverbrauch oder die Zählerstand-Differenz wegspeichern und dann ggf. den Zähler auf 0 setzen (macht aber eigentlich kein Energiezähler) oder den Zählerstand merken, und den aktuellen Monat in den Monatsmerker kopieren. Am besten noch mit einer Ausschaltverzögerung für die nächsten 30 bis 300 Sekunden (oder mit einer Tages-Wertüberwachung) ein erneutes Triggern blockieren, für den Fall daß bei evtl. Uhrzeitsynchronisation die Uhr etwas zurückgestellt wird (zum Vortag). Falls am Monatsende/Monatsanfang die SPS ausgeschaltet ist, dann ist kein Problem, dann läuft auch der Energiezähler nicht weiter und wird beim nächsten Einschalten der SPS automatisch gespeichert.

Ich schaffe es nur nicht den Monat aus dem DATE rauszuholen bzw. hab ich einfach keinen Ansatz.
Lenze-SPS und deren PLC-Designer kenne ich nicht. Hast Du mal ein Bild aus dem Handbuch/Hilfe, wo der Datentyp DATE beschrieben ist? Oder gibt es in der SPS auch einen strukturierten DATE_AND_TIME-Datentyp, wo die "Dateparts" bereits einzeln drin sind? Oder gibt es für die Lenze-SPS einen fertigen Baustein zum zerlegen des DATE in "Dateparts"? Wird die Lenze-SPS evtl. mit Codesys programmiert?
 
Zurück
Oben