TIA Funktionstest im Wochen/Monatsrythmus

Münchnerjunge

Level-1
Beiträge
314
Reaktionspunkte
38
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich programmiere derzeit meine erste Anlage. Dazu verwende ich TIA V13.

Es handelt sich um eine Anlage, welche nur in Notfällen gebraucht wird. Dann muss sie allerdings Funktionieren. Das kommt wahrscheinlich alle paar Monate mal vor.


Damit ich sicherstellen kann, dass die Anlage dann auch wirklich Funktionstüchtig ist, wollte ich einen Funktionstest programmieren, d.h. dass die Anlage alle paar Wochen mal komplett durchlaufen soll. Also alle Hebelarme fahren, Band laufen lassen, Maschinen anlaufen. So kann ich sicherstellen, dass alle Sensoren und Aktoren funktionieren, die Lager nicht einrosten und die Anlage im Notfall funktioniert.

Nun wollte ich das gerne programmieren, weiß aber mangels Erfahrung nicht, wie man das am Besten umsetzen kann. Auf Sicherheitsvorkehrungen muss ich nicht achten, denn die sind stets gegeben, außer die Anlage befindet sich nicht im Auto-Betrieb. Dann allerdings sollte mein Funktionstest auch außer Kraft sein.


Wie würdet ihr das realisieren? Ich bin dankbar für JEDE Antwort!

Mit freundlichen Grüßen aus München
Münchnerjunge
 
Also ich würde als erstes einen "Timer" programmieren, der, wenn die Anlage in Auto ist, hochgezählt wird.
Wenn ein Schwellwert überschritten ist wird der gleiche Ablauf gestartet als wie wenn ein Notfall auftritt.

u #AusloeserFuerNotfall
o #Funktionstest
s #AblaufStarten

Nach erfolgreichem Durchlauf wird der Timer zurückgesetzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke, so in etwa hätte ich mir das auch vorgestellt. Nur frage ich mich, wie ich das mit dem Timer umsetze? Gibt es da nicht verschiedene Arten und Unterscheidungen in Soft/Hardwarezähler?
 
Du kannst ja z.B. die Systemzeit auslesen und vergleichen mit der Systemzeit, die Du dir bei dem letzten Durchlauf des Tests gespeichert hast.

So bräuchtest Du keinen Zähler...

Oder Du baust dir einen Countdown...

Oder oder :)
 
Hi,

Ja Möglichkeiten gibt es viele. Ich hab nur das Problem, dass ich nicht weiß, wie ich das mache. Ich bin leider noch ein ziemliches Greenhorn ..
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie weit sind denn deine bisherigen Überlegungen gediehen ?
Im Grundsatz solltest du jede Funktion als Einzelnes betrachten.
Für dein Test-Programm erstellst du dir eine Schrittkette, die in der von dir gedachten Reihenfolge die Aktionen startet und deren Rückmeldung überprüft. War die Funktion erfolgreich so setzt du dir ein Bit - wenn nicht ein anderes. So kannst du dann in der Visualisierung das Ganze als Checkliste anzeigen.
Ein bißchen komplizierter wird es, wenn du in irgendeiner Weise einen Messwert erhältst - in diesem Fall solltest du dann natürlich den gemessenen Wert auch anzeigen und du mußt hier dann überprüfen, ob er im Min.-Max.-Fenster liegt.
Zum Starten des ganzen Ablaufs solltest du die Systemzeit verwenden. Das Datenformat DATE der Systemzeit ist im Grunde eine Ganzzahl, die Tage abbildet. Hier brauchst du nur kontrollieren ob zwischen deinen letzten gespeicherten DATE und dem aktuellen Date mehr Tage als das Intervall vergangen sind - wenn ja dann Ablauf starten und aktuelles DATE speichern.

Gruß
Larry
 
Also das hört sich doch schon ganz gut an! Ich wollte eigentlich ohne Bit-Auswertung machen, da mir diese im Grunde die Hardware liefert(Drehmoment...).

Eigentlich brauch ich nur eine Erklärung, wie ich das mit dem Date oder Timer oder wie auch immer umsetzte. Das andere lass ich einfach in den restlichen Programm-Teil eingreifen, muss nur Messwerte die Auswirkungen auf die Steuerung haben ausschalten. Das sollte ich aber so hinbekommen..
 
... dafür gibt es System-Bausteine ...
Ich habe leider gerade kein Step7 - deshalb aus der Hüfte :
SFC1 , SFC0 liest bzw. schreibt die Systemzeit im Format DateAndTime
Dan gibt es noch Bausteine, die aus dem DT das DATE bzw. die TimeOfDay herauslesen und übergeben (das Ganze natürlich auch wieder zurück).

Schau einfach mal bei den Systembausteinen nach ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Freunde, ich bin´s nochmal.

Leider habe ich das noch nicht so ganz umsetzen können. Ich bin nun auf die glorreiche Idee gekommen, einfach eine Einschaltverzögerung zu nehmen. Leider ist mir aber aufgefallen, dass ich als Datentyp "Time" max 9999m eintragen kann. Das sind ja umgerechnet nicht mal ganze 7Tage. Jetzt könnte ich vielleicht vier Einschaltverzögerungen hintereinander bauen. Aber gibt es da nicht ne schönere Lösung?

Eigentlich muss ich meinen Wartungsbaustein einfach alle 30 Tage laufen lassen. Egal wann, wie warm, wie kalt, ob die Sonne scheint oder ob´s vielleicht schneit, egal ob der FCB Meister geworden ist, oder Frau Merkel sich nicht mehr Bundeskanzlerin nennen darf!
Also: Es ist eigentlich völlig egal was passiert. Ich will lediglich alle 30 Tage mein Wartungsprogramm laufen lassen. Auch, wenn die Anlage zwei Tage davor erst gelaufen ist..

Danke schonmal für eure Hilfe! Wie ihr sicher merkt, bin ich ein Anfänger im programmieren, möchte auch erstmal alles so einfach wie möglich halten..
 
btw...
ist deine Anlage (SPS) eigentlich die ganze Zeit eingeschaltet?
(Weil du ja geschrieben hast, dass die Anlage ja nur im Notfall benötigt wird)
Wenn nein, dann klappt das SO sowieso nicht
 
Ja, die läuft immer. Sie schläft quasi, bis der Notfall eintritt. Dann MUSS sie aber funktionieren. Das will ich eben garantieren.
 
Lösungen mit Timer oder Zähler haben das Problem, daß die Steuerung während der gesamten Zeitmessung auf keinen Fall ausgeschaltet werden darf, was man aber in der Regel nicht garantieren kann. Für Zeitmessungen größer ein paar Stunden sollte man die Uhr verwenden, so wie bereits in Beitrag #6 von Larry beschrieben.

Harald
 
.

Den Beiträgen #6 und #8 von Larry kann ich am ehesten zustimmen.



Bin jetzt kein TIA V13-Profi, aber dort gibt es doch die Funktion "RTM" ?
Damit hast du die Möglichkeit, einen Betriebsstundenzähler zu starten,
der deinen Funktionstest bei Erreichen deiner Wartezeit auslöst.

In deinem Fall benutzt du ihn nicht für die Laufzeiten, sondern für die
Warte-/Stillstandsstunden deiner Anlage bis zum nächsten Funktionstest.

Damit ersparst du dir auch einiges an Programmierung von Uhrzeit-
funktionen.



Weiter kannst du in unserer Forumssuche mit den richtigen Stichwörtern
etliche Anwendungen und Informationen finden, die dir sicher weiter
helfen.





P.S.
Denk bei deinem Programmentwurf an die notwendigen Verriegelungen,
damit z.B. der Test nicht ausgelöst wird, während der "Notfall" kurz zuvor
bereits eingetreten ist ;)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich würde es in etwa so lösen:

- Jeden ersten Montag im Monat um 10Uhr den Funktionstest starten (Datum und Uhrzeit auslesen).
- Sollte der Funktionstest anders ablaufen als eine echte Anforderung muss natürlich sichergestellt sein, dass eine echte Anforderung den Test sofort abbricht und die normale Funktion stattfindet.
- Ich würde mir über einen Zeitraum (vermutlich 12 Werte - Also Monate) die Erfolgsmeldungen der Tests speichern.
- ggf. E-Mail versandt bei NIO Test an die Instandhaltung. (Oder auch IO Meldungen - als art Protokoll).

Der Charme es jeden ersten Montag im Monat um 10Uhr zu machen ist folgender:

- Man weis genau wann der Test startet (ggf. Interessant für Instandhaltungs- oder Wartungsmaßnahmen)
- Man kann ihn wenn man mag beobachten

Außerdem würde ich eine Möglichkeit vorsehen den Test manuell zu starten, wenn zum Beispiel die Instandhaltung ein Band gewartet hat o.ä.

Grüße

Marcel
 
.

Ich würde es nicht an einen festen Zeitpunkt hängen, sondern die Wartezeit zwischen
den einzelnen Funktionstests erfassen, weil:

Wenn am ersten Montag des laufenden Monats um 10:00 Uhr gerade Netzausfall ist,
wird der nächste Funktionstest dann noch einen Monat später gestartet.
Damit hat sich die Wartezeit verdoppelt.

Der manuelle Start für einen ausserplanmässigen Funktionstest ist aber eine gute Idee.
 
Sowas würde ich halt mit dem manuellen Test abfangen ...

Man könnte ja eine Meldung/Email generieren wenn das Datum überschritten ist und der Test nicht gemacht wurde damit er manuell nachgestartet wird.

Grüße

Marcel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
An irgendeinen (möglichst festen) Zeitpunkt muß man den Teststart hängen, man darf nur nicht GENAU auf den Zeitpunkt warten, sondern muß den Test starten, wenn der Zeitpunkt erreicht oder ÜBERSCHRITTEN ist. Das läßt sich doch sehr leicht mit der einfachen Datumsabfrage und Speichern des letzten Testdatums erreichen, wie bereits in #6 beschrieben.

Wird das jetzt hier ein Wettbewerb, wer den umständlichsten Weg zur Lösung des Problems kennt?
Kann man das Problem vielleicht sogar neumodisch mit Hilfe eines externen Internet-Dienstleisters lösen? ;)

Harald
 
@Harald:
Lass es gut sein. Wir können nur Empfehlungen aussprechen und beraten, ggf. konkrete Vorschläge machen - aber entscheiden, wie es werden soll ... das sollten wir nicht ...
Lösungs-Möglichkeiten gibt es sooooooooo viele ... 8)

Gruß
Larry
 
Hallo, vielen Dank für jeden Lösungsvorschlag!

Ich denke ich werde mich an euren Hinweis mit der Zeitauswertung halten. Da muss ich mich aber nochmal mit befassen, spontan weiß ich nämlich nicht wie..

Das mit der Visualisierung hatte ich vor, mir ging es lediglich um die Zeit.

Alarme werden über eine Bit Auswertung umgesetzt, da brauch ich keine Email senden..
 
Zurück
Oben