Tracking der Zylinderzyklen zur besseren Wartung

dmatdh

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

um die Wartung unserer Zylinder zu verbessern, möchte ich die Zyklen der Bewegungen tracken. Derzeit haben wir bei vielen Maschinen Wartungsprobleme, die zu ungeplanten Stillständen führen. Mein Ziel ist es, durch vorbeugende Instandhaltung solche Ausfälle zu minimieren.

Aktuell ziehen wir Rückschlüsse auf den Wartungsbedarf basierend auf der produzierten Stückzahl, oder Ausfälle, was jedoch nicht besonders präzise ist. Daher überlege ich, bei jeder Bewegung einen Zähler (int) in einer SQL-Datenbank zu erhöhen. Nun stellt sich die Frage: Gibt es hierfür eine elegantere Lösung? Und wie stark würde eine solche Implementierung die Performance beeinflussen, insbesondere bei Anlagen mit hohen Taktraten, die viele SQL-Abfragen erzeugen würden?

Mir geht es nicht darum, jeden einzelnen Zyklus genau zu überwachen oder direkt eine Antwort von der SQL-Datenbank zu erhalten.

Die Bearbeitung / Auswertung erfolgt bei mir über Java mit einer grafischen Oberfläche, welche sich dann die Daten über SQL holt.

Vielen Dank für eure Ideen und Anregungen!
 
SPS-Programm: Zeit messen ab Start Bewegung bis Rückmeldung Sensor, den Wert in einer SPS-Variablen speichern. Das getrennt für beide Richtungen machen.
SQL: Diese Werte regelmäßig abholen und in der Datenbank ablegen. Wenn ihr den TC-Datenbankserver nehmt, dann das in einem separaten PLC-Task machen.
Über die längere Zeiträume kannst Du dann Veränderungen in der Laufzeit der Zylinder erkennen

Ob die Performance darunter leidet, hängt nicht von der Taktrate der Maschine ab, sondern von der Auslastung der CPU. Erst wenn es zu Task-Zyklusüberschreitungen kommt, sprich CPU-Last > 100%, dann wird man das merken. Das sind zwei verschiedene Dinge.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir haben bei uns auch eine Datenerfassung für Wartungszwecke realisiert. Uns genügt es, wöchentlich die Zyklus-Zählerwerte der einzelnen Zylinder in eine Datenbank zu schreiben. Wir verwenden SPS-seitig ein DINT das bei jedem Bewegungsstart inkrementiert wird.
Allerdings so die Erfahrung unabhängig von allen erstellten Statistiken: ein Pneumatik-zylinder hält lange, sehr lange, wenn er richtig ausgelegt ist und keine ungewollten Kräfte wirken. (z.B. seitlich)
Die Dämpfer spielen je nach dem eine entscheidendere Rolle. Und diese verschleißen.
 
Wir überwachen die Zeiten bereits, jedoch erlaubt dies nur grobe Rückschlüsse, da das Personal die Drosseln anpassen kann, wodurch die Aussagekraft der Messungen beeinflussbar ist.

Zum Verständnis: Wenn ich die Queries auf eine neue Task lege und diese theoretisch 100 % Auslastung erreicht, würde das nicht bedeuten, dass die Anlage stillsteht. Es würde lediglich bedeuten, dass keine weiteren Queries vorliegen, was wiederum keine verlässliche Aussage über die tatsächliche Laufzeit des Zylinders zulässt, richtig?
 
verstehe ich das richtig: du überlegst je Bewegung einen Zähler in einer Tabelle zu erhöhen. Also mit einen Update, oder? Wie soll die Anzahl an updates einen Rückschluss über die Laufzeit des Zylinders machen. Jede Datenbanktransaktion benötigt abhängig von mehreren Faktoren Zeit. Das hängt doch nur sehr schwammig mit dem realen Verhalten der Maschine zusammen.
Und wenn die Maschine stillsteht, müsste folglich die Task im "Leerlauf" sein - und nicht umgekehrt

Bei unserer Netzwerkinfrastruktur dauert ein Insert zwischen 50 und 300ms. Also hohe Taktraten linear mitschreiben ist schon eine sportliche Herausforderung. Ein Updatebefehl ist vermutlich langsamer. Möglicherweise ist eine serverseitige gespeicherte Prozedur vorteilhaft
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum Verständnis: Wenn ich die Queries auf eine neue Task lege und diese theoretisch 100 % Auslastung erreicht, würde das nicht bedeuten, dass die Anlage stillsteht. Es würde lediglich bedeuten, dass keine weiteren Queries vorliegen, was wiederum keine verlässliche Aussage über die tatsächliche Laufzeit des Zylinders zulässt, richtig?
Queries laufen asynchron, darum wird 100% Auslastung dadurch normalerweise nicht erreicht. Lediglich die Warteschlange kann volllaufen. Das hat aber nichts mit der Auslastung der CPU zu tun.
 
Zurück
Oben