Betriebsstundenzähler / Wartungsintervalle

PättPit

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, werte Forengemeinde.

Da dies mein erster Beitrag ist, möchte ich ihn gleich nutzen, um mich schnell vorzustellen ;)

Ich bin 29 Jahre alt, mache gerade meinen Lehrgang zum "SPS-Techniker" und komme aus NRW....


Hier setzt auch gleich schon mein Problemchen ein :-?

Mit Hilfe der Suchfunktion habe ich leider nichts passendes gefunden oder konnte es nicht als passend deuten. Man möge mir bitte verzeihen.

Aber los gehts...


Meine Aufgabe ist es, mit Hilfe von Betriebsstundenzählern Wartungsintervalle zu realisieren, die hinterher via OP3 ausgegeben werden sollen.

Z.B. soll alle 200 Betriebsstunden ein Wartungsintervall für einen Ölwechsel ausgegeben werden.

Leider schaffe ich es derzeit nicht, meine geistige Barrikade zu überwinden.

Bzgl. des Betriebsstundenzählers bin ich lediglich soweit, daß die SFC 2,3 und 4 im Raume stehen.
Von einer evtl. Vorabkonfiguration habe ich keinen Schimmer :(

Was die Realisierung der Wartungsintervalle angeht, steht für mich bisher nur der Begriff Ganzzahldivision im Raum.

Ich hoffe, ich konnte einigermaßen verständlich mein Anliegen schildern und es erbarmt sich jemand, mir einen Wink mit der Eisenbahnschwelle zu geben :p

In Kurzform:

-> Wie bereite ich einen Betriebsstundenzähler vor?
-> Wie nutze ich ihn, um Wartungsintervalle zu realisieren?


Vielen Dank schonmal im Voraus...

Beste Grüße,

PättPit
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde den Betriebstundenzähler nicht mit den SFC-Bausteinen machen sondern mir einen Sekundentakt in ein DW (Doppelwort) hochzählen.

200 Stunden sind dann eben 720000 Sekunden. Nach der Wartung kannst du den Zähler dann ja auf 0 setzen oder weiterlaufen lassen.

Wenn ich es richtig im Kopf habe kannst du auf diese Weise bis zu 136 Jahre zählen..... ich hoffe das reicht dir *ROFL*
 
Hallo Paule,

vielen Dank schonmal für Deine Antwort :)

Also, realistisch eingeschätzt würde ich mich als blutigen Anfänger betrachten. Ich bin nun den dritten Monat dabei.

Je einfacher es also darstellbar gemacht werden könnte, desto besser :oops:

Auch, wenn wohl jetzt die Tomaten fliegen - ein Beispiel in FUP wäre für mich evtl. recht hilfreich.


Beste Grüße,

PättPit
 
Auch, wenn wohl jetzt die Tomaten fliegen - ein Beispiel in FUP wäre für mich evtl. recht hilfreich.
Ne, das mit den Tomaten wird wohl nicht passieren, wie sehen denn sonst die Bildschirme aus? ;)
Ich fand Deinen ersten Auftritt hier voll in Ordnung. :cool:
Leider ist FUP nicht so meine Welt und darum ziehe ich mich hier zurück.
Aber wenn ich Dir sonst mal helfen kann, gerne.
 
-> Wie bereite ich einen Betriebsstundenzähler vor?
Wenn in Deiner Aufgabe nicht zwingend die Verwendung der limitierten CPU-Betriebsstundenzähler vorgeschrieben ist,
dann würde ich mir eigene Betriebstundenzähler programmieren. Das ist sehr leicht.

Ein Betriebstundenzähler zählt die Zeit, wie lange ein Aggregat in Betrieb ist (deshalb heißt der so).
Also immer, wenn das Aggregat in Betrieb ist (der Ansteuer-Ausgang oder ein Rückmelde-Eingang = 1 ist), dann eine
Zeiteinheit (z.B. Sekunden) zählen. Wenn das Aggregat nicht in Betrieb ist, dann nicht weiterzählen.

Nun für die Anzeige und Verarbeitung der Betriebsstunden die gezählten Sekunden in Stunden umrechnen. Da kommt dann
die Ganzzahldivision ins Spiel, kann man aber auch umgehen, wenn die Anzeige nur volle Stunden anzeigen muß.
Dann würde ich einfach in einem INT 3600 Sekunden abzählen und in einem zweiten INT die vollen Stunden. Wenn der
Sekundenzähler 3600 Sekunden gezählt hat, dann den Sekunden-Zähler auf 0 setzen und den Stunden-Zähler um 1 erhöhen.

Die in Step7 vorhandenen normalen Zähler ZV eignen sich nicht zum Zählen der Betriebsstunden, weil die nur bis 999
zählen und dann stehenbleiben.

-> Wie nutze ich ihn, um Wartungsintervalle zu realisieren?
Indem Du Dir merkst, bei welchem Betriebsstundenzähler-Stand die letzte Wartung war (bzw. die Zählung gestartet wurde).
Nun berechnest Du, wieviele Betriebsstunden seit der letzten Wartung vergangen sind (Betriebsstundenzähler-Stand minus
gemerkten Zählerstand der letzten Wartung). Wenn diese Stunden-Differenz >= Vorgabe-Wartungsintervall ist, dann läßt
Du ein Meldebit 1 werden, das auf dem OP die Wartungs-Aufforderung anzeigt. Wenn der Anlagen-Bediener mit dem OP
quittiert, daß die Wartung durchgeführt wurde, merkst Du Dir den jetzigen Betriebsstundenzähler-Stand als Zählerstand
der letzten Wartung (die Differenz wird dadurch wieder 0).

Nun einfach das umgangsprachlich beschriebene Vorgehen in ein Programm übersetzen.
In AWL geht das am leichtesten, KOP und FUP sind aber auch möglich.

Gruß
Harald
 
Ich danke Euch schonmal für Eure Lösungsansätze. Die werde ich mir direkt morgen mal zur Brust nehmen.
Das geht ja echt rasend schnell :s1:

Morgen (Vor)mittag werde ich nochmal ausführlich berichten.

Jetzt ruft allerdings erstmal die Couch ;)


@Paule: Dann bin ich ja beruhigt. Danke schonmal für Dein Angebot der Hilfe, wenn es mal nicht um FUP geht :)


Einen schönen Abend Euch noch.


Beste Grüße,

PättPit
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach ja, das noch:
Damit die Zählerstände und der gemerkte Zählerstand nicht bei Spannungsausfall oder Ausschalten der Maschine verloren gehen,
müssen diese remanent sein. Also am einfachsten INT-DBW aus einem Datenbaustein benutzen. Aber keinen Instanz-DB.

Gruß
Harald
 
Mahlzeit zusammen :)

So, nach einigem Hin und Her bin ich mal wieder etwas schlauer. Mitstreiter und Dozent haben sich mehr oder weniger aussagekräftig geäußert und nun sieht die Welt wieder ein bisschen anders aus.


-> Die CPU ist eine VIPA CPU-114 (114-6BJ02)

-> Es soll IEC-konform projektiert werden.

-> Zählsystem muss die nötige Remanenz aufweisen


Ich hatte nun in Erwägung gezogen, mir den IEC-Baustein SFB0 zur Hilfe zu nehmen.

Laut Aussage des Dozenten soll die interne Uhr der CPU genutzt werden, um den Zähler zu versorgen.
Wie ist das zu realisieren?

Durch das Quittieren soll das jeweilige Intervall wieder von vorne beginnen (das ist mir soweit klar).


Vielen Dank schonmal an jene, die sich der Problematik bisher angenommen haben:sm24:



Beste Grüße,

PättPit
 
Zuletzt bearbeitet:
So, nach langem Hin und Her habe ich nun endlich eine funktionierende Lösung gefunden.

Bisher ist es mehr oder minder nur "skizziert" aber es tut seinen Dienst :p

Zu allem Überfluss hat mein FreePDF noch gestreikt, sodaß ich es mir mit Hilfe von Screenshots zusammenschustern musste aber es hat irgendewie funktioniert :rolleyes:


Beste Grüße,

PättPit
 

Anhänge

  • Stundenzaehler.JPG
    Stundenzaehler.JPG
    75,9 KB · Aufrufe: 736
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen!

Hast du dir mal den Beitrag #6 angesehen?

Ich bin zwar kein SPS-Gott, aber die Systemzeit für einen Betriebsstundenzähler zu nutzen, halte ich nicht wirklich für sinnvoll... Was passiert denn, wenn jemand die Systemzeit verstellt?? Dann dürften deine Betriebsstunden durcheinander geraten, oder?

Gruß
Buschmann
 
Guten Morgen, Buschmann.

Ja, natürlich habe ich ihn mir angesehen.
Ich persönlich hätte es auch anders/einfacher realisiert. Allein, um mir die Modulodivision zu sparen :oops:
Allerdings war es Vorgabe des Dozenten.

Daß mir dadurch die Betriebsstunden merklich/kritisch durcheinandergeraten, glaube ich nicht, da die ausschlaggebende Größe die laufenden Millisekunden sind.

Beste Grüße,

PättPit
 
Ich lasse einen Wartungszähler prinzipiell von der Vorgabe auf Null abwärts zählen. Dann kann man den Wert direkt dem Benutzer visualisieren, damit der weiß, in x Betriebstunden ist die Wartung fällig.

@Woldo,
hat das einen Grund, daß der Betriebstundenzähler aus deinem Beitrag 6 erst resettet werden kann/soll, wenn das Wartungsintervall abgelaufen ist? Was ist, wenn Du einen vorbildlichen Benutzer hast (soll's ja vereinzelt geben, hab' ich gehört), der die Wartung schon vor Ablauf des Intervalls durchführt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ist, wenn Du einen vorbildlichen Benutzer hast (soll's ja vereinzelt geben, hab' ich gehört), der die Wartung schon vor Ablauf des Intervalls durchführt?
Vorzeitige Wartung => unnötige Wartung => unnötige Kosten.
Vorbildlicher Benutzer wird entlassen.

War nur ein Spaß > kann ja schon mal Sinn machen. ;)

Ich lasse einen Wartungszähler prinzipiell von der Vorgabe auf Null abwärts zählen. Dann kann man den Wert direkt dem Benutzer visualisieren, damit der weiß, in x Betriebstunden ist die Wartung fällig.
Was ist wenn die Wartung dann zu diesem Zeitpunkt nicht gemacht werden kann?
Läuft der Zähler ins Minus?
Oder bleibt er bis zum jüngsten Tag auf Null stehen?
Oder wird die Maschine sofort abgestellt?
 
Vorzeitige Wartung => unnötige Wartung => unnötige Kosten.
Vorbildlicher Benutzer wird entlassen.

War nur ein Spaß > kann ja schon mal Sinn machen. ;)
Macht sogar meistens Sinn:
Unsere Maschinen sind Teil einer Gießzelle. Wenn die gerade steht, weil z.B. eine Form gewechselt wird, kann der Kunde hingehen, wann ist die nächste Wartung fällig - aha, bloß noch ein paar Stunden. Befehl an Inst - los, gleich mit erledigen.
Da wär's definitiv teurer, die Gießzelle noch mal anzuhalten, nur weil 2 oder 3 Stunden später erst das Wartungsintervall abläuft. Wartung nicht zu machen ist auch teurer, weil bei zu starker Verschmutzung nur noch Ausschuß produziert wird.


Was ist wenn die Wartung dann zu diesem Zeitpunkt nicht gemacht werden kann?
Läuft der Zähler ins Minus?
Oder bleibt er bis zum jüngsten Tag auf Null stehen?
Oder wird die Maschine sofort abgestellt?
Ja, er bleibt bis zum jüngsten Tag auf Null stehen. Genauso wenn die Wartung zwar gemacht wird, aber keiner den Zähler resettet.
Und solange der Null ist, steht halt zusätzlich auf dem Display, das die Wartung fällig ist.
Denn das ist für mich der Sinn eines Wartungszählers - den Benutzer daran erinnern, wann er die nächste Wartung machen soll(te).
Achso: ansonsten passiert, was bei einem Aufwärtszähler auch passiert - nichts.
 
Zuletzt bearbeitet:
In FUP könnte es so ausschauen


Ich hätte dazu auch nochmal eine kurze Frage. Wenn ich das so mache wie Woldo beschrieben hat, dann addiert er bei mir nicht 1 mal pro Sekunde, sondern x - mal pro Sekunde. (nehme an dass es abhängig von der Zykluszeit der SPS ist)

Den Sekundentakt nehm ich aus dem Taktmerker der CPU (Bit 5) ...hat vielleicht einer eine Idee warum das nicht geht bei mir oder hab ich vielleicht was falsch eingestellt? :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Den Sekundentakt nehm ich aus dem Taktmerker der CPU (Bit 5) ...hat vielleicht einer eine Idee warum das nicht geht bei mir oder hab ich vielleicht was falsch eingestellt? :confused:

weil du einen Takt verwendest. du brauchst einen Impuls.

z.BSP.
Taktmerker= 1 sek TRUE 1 sek FALSE => Takt

Impuls

Code:
U M0.5
FP Mx.x
U ...
 
Zuletzt bearbeitet:
Woldo schreibt was von #Sekundenimpuls. Ich hoffe das war Hinweis genug :rolleyes:
Also deinen Sekundentakt mal auf positive Flanke abfragen.
 
Zurück
Oben