Zyklenzähler erstellen

S7Anfänger

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

Ich bin relativ neu mit dem PLCnext Programm angefangen und suche jetzt nach einer Möglichkeit einen Zykluszähler zu erstellen:

Ein Zyklus ist erreicht, wenn die Anlage in der Endlage 1 Startet, die Endlage 2 Erreicht und dann wieder in Endlage 1 ankommt.
Es sollen jetzt die Zyklen der letzten 48 Stunden, die Zyklen der letzten 365 Tage und der letzten 3 Jahre gezählt werden.

Die Programmierung mache ich ausschließlich in KOP.

Kann mir jemand einen Tipp geben, wie ich das umsetzten kann?

Verwendet wird das Programm PLCnext Version 2022.3


Beste Grüße
Hagen
 
Die Aufgabe ist schwieriger als sie auf den ersten Blick erscheint. Da kann man keine einfachen Zähler nehmen.
Der Zeitraum, z.B. Die letzten 48 Stunden ist ja fließend und ändert sich ständig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das bereitet mir ach wirklich kopfzerbrechen.
ich muss jeweils eine Meldung haben für:
>= 3 Zyklen in 48 Stunden
>= 3 Zyklen pro Monat
>= 24 Zyklen pro Jahr
und
>= 72 Zyklen der Letzten 3 Jahre.

habe absolut keine Ahnung, wie ich das lösen soll.
 
PLCnextBase Library, damit kannst geschmeidig die SPS Zeit auslesen.

Dann baust du dir mittels Vergleich vom gemerketen Timestamp und der akt. Uhrzeit drei "Timer" für 48h, Monat und Jahr auf.
Zusätzlich je drei Zyklenzähler, wenn dieser den Schwellwert erreicht => Meldung, ansonst nach Ablauf der Überwachungszeit den Zyklenzähler rücksetzen und neuen Timestamp setzen für nächsten Zeitzyklus...
 
Wenn ich das richtig verstehe, habe ich dann einen Zähler der meine Zyklen in 48h zählt und nach Ablauf der 48h auf "0" gesetzt wird, um dann neu anzufangen? Richtig?
Das würde dann ja aber nicht funktionieren, da ich immer die letzten 48h erfassen muss. Das heißt ja, wenn beispielsweise in Stunde 46 ein Zyklus gemacht wird, auch dieser nach Stunde 48 gelöscht wird. Was ja aber nicht richtig wäre, da bei diesem Zyklus ja neue 48h Starten.

es wird ein Zyklus erfasst. ab jetzt müsste "Zähler 1" 48h laufen, um zu sehen ob 3 Zyklen erreicht werden.
ein zweiter Zyklus innerhalb der 48h von Zähler 1 wird erfasst -> "Zähler 1" zählt auf "2" hoch und zusätzlich kommt ein weiterer Zähler der wieder 48h läuft, um zu sehen ob 48h erreicht werden.
..............

So in der Art könnte ich mir das vorstellen, aber ob das Realisierbar ist, ist eine andere Frage. Bei 3 Zyklen in 48h mag es vielleicht noch gehen. Aber was ist bei 72 Zyklen in 3 Jahren?

Das ist echt eine harte Nuss.

Aber ist gibt bei einigen Fertigungsanlagen doch auch Stückzähler um zu erfassen, wie viele Teile in den letzten 24 Stunden hergestellt wurden.... oder beginnen die auch jeden Tag wieder bei 0?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest z.B. jede Stunde den Zählerstand in einen Ringpuffer (für mind. 48 Stunden) schreiben und dann die Zählerdifferenz zwischen letztem Wert und 48 Stunden vorher bilden. Dann erhältst Du jede Stunde einen neuen Messwert der letzten 48 Stunden. Dann darfst Du den Zählerstand zwischendurch nicht löschen - also wie es in der richtigen Praxis mit jedem Verbrauchszähler gemacht wird. Achtung: irgendwann hat der Zähler einen Überlauf.

Harald
 
Das hört sich gar nicht so schlecht an. Ich habe so etwas nur noch nie Programmiert und wäre froh über etwas Hilfe.
Lässt sich das dann aber auch für 3 Jahre abbilden?
 
Ja, wenn man genug Speicherplatz hat und die Daten zwischendurch nicht verloren gehen und die SPS nicht/nie ausgeschaltet wird.

Es sollen jetzt die Zyklen der letzten 48 Stunden, die Zyklen der letzten 365 Tage und der letzten 3 Jahre gezählt werden.
Wie häufig sollen die Jahres-Zyklen berechnet/angepasst werden? Reicht einmal am Tag oder einmal im Monat? Dann bräuchtest Du viel weniger Zählerstände zwischenspeichern als bei stündlichen Abtastwerten.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber ist gibt bei einigen Fertigungsanlagen doch auch Stückzähler um zu erfassen, wie viele Teile in den letzten 24 Stunden hergestellt wurden.... oder beginnen die auch jeden Tag wieder bei 0?
Kommt drauf an wie es gewollt ist. Anzahl Teile in den letzten 24 Stunden, oder Teile Gestern und Teile Heute, oder Teile seit Schichtbeginn ... Die Aufgabenstellung muß (wie immer) exakt formuliert werden.

Harald
 
Nicht ein Antwort oder Lösung auf die ursprüngliche Frage. Aber, ist es die beste Lösung dies in die SPS zu machen ?
Es wäre etwas primitiv. Was passiert wann das Programmspeicher gelöscht werden ? Das ist nich unmöglich wenn es über Jahren funktionieren muss.
Ich denke eher dass jeden mal ein Zyklus fertig ist sollte Daten abspeichern werden entweder in ein Logdatei, oder ein Datenbank, oder in die Cloud.
Sicherlich wäre es Wert viele weitere Informationen pro Zyklus zu speichern.
Wenn die Daten gespeichert sind, dann kann man beliebig Statistik Funktionen ausführen, inklusiv Anzahl Zyklen in die letzte 48 Stunden, in die letzte 365 Tagen, in die letzten 3 Jahren.
 
Zuletzt bearbeitet:
Nicht ein Antwort oder Lösung auf die ursprüngliche Frage. Aber, ist es die beste Lösung dies in die SPS zu machen ?
Es wäre etwas primitiv. Was passiert wann das Programmspeicher gelöscht werden ? Das ist nich unmöglich wenn es über Jahren funktionieren muss.
.

Mit remanentem Speicher ist eine SPS nicht schlechter als Datenbanken od die ominöse ( allmächtige) Cloud. Das sind alles Rechner und die Vielzahl von updates und Patches spricht Bände. Clouddienste werden auch einfach mal abgekündigt...

my2c
 
Zurück
Oben