Noch einmal: 750-880 (881) Zykluszeitüberwachung

real_skydiver

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

könnte mir vllt. doch jemand einen Tip geben, wie ich die Zykluszeitüberwachung für 'PLC_PRG' implementiere ... ?

Ich bin mir ziemlich sicher, dass dies in der Taskkonfiguration geschieht bzw. geschehen muss. Nur wie? Ich kann eine neue Task anlegen und einen eigenen Baustein aufrufen (z.B. Wetter-Informationen abholen) und den auch zeitlich überwachen lassen. Aber wie mache ich das mit 'PLC_PRG'? Dies wird ja schließlich 'automatisch' aufgerufen ...

Ich bin echt erstaunt darüber, dass ein so triviales und notwendiges Instrument unter CoDeSYS so gut 'versteckt' ist. So sehr hier viele auch über S5/S7 schimpfen mögen, manche Dinge sind da einfach logischer aufgebaut. PLC->Eigenschaften->Zyklus->Zyklusüberwachungszeit ... fertig :)
 
Hallo,

mit der "SysTaskInfo.lib" kannst du dir für jedes einzelne PRG die Zykluszeit anzeigen.
Wenn du nicht weißt wie du mit der lib umgehst, sag bescheid dann schreibe ich ein kleines Beispiel.

Gruß 4Josh
 
Hallo,

dann sieh mal in der Hilfe unter PLC_PRG nach. So wie ich das verstanden habe kein PLC_PRG, dafür neuen Task definieren. Da kannst Du dann einen Watchdog timeout definieren. Dann unter Systemereignisse except_watchdog aktivieren und aufzurufenden Baustein definieren.

Gruß
 
Ok, soweit klar. Freilaufenden Task angelegt, Watchdog auf 500ms eingestellt, 'PLC_PRG_PRIV' (Kopie von 'PLC_PRG', Original gelöscht) angelegt. Es gibt aber noch jede Menge offene Fragen. Meine Erwartungshaltung ist, dass wenn eine Zykluszeitüberschreitung auftritt die Steuerung in den Stop wechselt. Welche Aufgabe hat der Baustein 'EXCPT_WATCHDOG' dabei? Warum wird der Button 'Baustein erzeugen' nie aktiv (bleibt grau)? Wenn ich einen Baustein nach dem abgebildeten Vorbild anlege, wo soll dieser aufgerufen werden (wird dieser automatisch von der Exception aufgerufen?). Muss ich mich um den 'Stop' in dem Baustein selbst kümmern? Kein Wort darüber in der Doku, welche nebenbei gesagt ein Trauerspiel ist (für meinen Geschmack). In der Doku werden witzigerweise nur die Dinge beschrieben, die in sich der GUI von selbst erklären, tiefer geht sie dann aber auch nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach ja, was ich noch sagen wollte: ich kann es nicht so recht glauben, dass ich für das Default-Programm 'PLC_PRG' keinen Watchdog definieren kann ... In diesem Beitrag 'http://forum.codesys.com/viewtopic.php?t=135' (ziemlich weit Unten) findet sich diese Beschreibung "watchdog in main program PLC_PRG is enabled and set to 30 sec;" ... also muss es doch einen Weg geben?
 
Hmm, noch eine Frage: woran "sehe" ich dass die Steuerung läuft bzw. im Stop ist (750-881)? Ich habe die Befürchtung dass jetzt als Antwort kommt "Du musst die USR-LED selbst programmieren ...". Das Teil wird mir immer unsympatischer. Dann auch noch die Farben der LED ... 10% aller Männer (darunter auch ich) haben eine Rot-Grün-Schwäche. Ich denke mit Recht behaupten zu können, dass nun einmal Männer die "Haupt-Zielgruppe" sind (anwesende Frauen sind sehr Willkommen, immer gern gesehen ... aber eben leider in der Minderzahl). Sorry, ich weiß das war Alles OT ... aber musste raus.
 
Hallo,

habe selbst mit dem Watchdog noch nicht gearbeitet.
Button wird aktiv wenn Du in der Spalte 'aufgerufene POU' einen Namen vergeben hast.

Warum sollte die SPS gleich in Stop gehen wenn eine Laufzeitüberschreitung stattgefunden hat? Es hängt immer vom Prozeß ab wie darauf zu reagieren ist. Manchmal muß man die Anlage in einen sicheren Zustand bringen.

Laufzeitüberschreitung wird z.B. mit dem Fehlercode 10, Argument 3 angezeigt (Blinkcode).

Ansonsten kann man sich bei Fragen auch hier melden:

WAGO Kontakttechnik GmbH & Co. KG
Deutschland
Technischer Support AUTOMATION
Tel.: +49 (571) 887 555
Fax: +49 (571) 887 8555
E-Mail: support@wago.com

Mir wurde bisher immer schnell geholfen.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum sollte die SPS gleich in Stop gehen wenn eine Laufzeitüberschreitung stattgefunden hat?
Weil im allgemeinen dem Programmierer nicht zu trauen ist - der ist nicht perfekt und hat garantiert nicht alles bedacht. Und wie schnell ist versehentlich eine Endlosschleife programmiert, die unentdeckt im Programm lauert? Wenn dann im Problemfall keinerlei Abschaltungen mehr funktionieren und nichtmal ein STOP-Taster etwas bewirkt, weil die CPU die entsprechenden Programmteile nicht bearbeitet, dann ist das Chaos perfekt. Da nützt auch buntes Blinken nichts, wenn die SPS unkontrolliert rennt.

Wenn man eine Zykluszeitüberschreitung erwartet, dann kann man vorher die Überwachung nachtriggern (sollte auch bei der 750-88x möglich sein). Unerwartete Zykluszeitüberschreitungen darf es nicht geben. Dann hat entweder der Programmierer was falsch gemacht oder die SPS arbeitet nicht richtig.

Eine Schutz-Maßnahme muß im Zweifelsfall schützen. Nicht nur dann, wenn der weise Programmierer extra dran denkt.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Weil im allgemeinen dem Programmierer nicht zu trauen ist - der ist nicht perfekt und hat garantiert nicht alles bedacht. Und wie schnell ist versehentlich eine Endlosschleife programmiert, die unentdeckt im Programm lauert? Wenn dann im Problemfall keinerlei Abschaltungen mehr funktionieren und nichtmal ein STOP-Taster etwas bewirkt, weil die CPU die entsprechenden Programmteile nicht bearbeitet, dann ist das Chaos perfekt. Da nützt auch buntes Blinken nichts, wenn die SPS unkontrolliert rennt.

Fahrbefehle und ähnliches bleiben also erhalten so daß die Anlage trotzdem gegen die Wand fährt? Denn der gleiche Programmierer hat dann auch vergessen die Ausgänge so zu parametrisieren, daß im Stopzustand diese bestimmte Zustände einnehmen oder halten.

Wenn Du z.B. mit 200 km/h auf der Autobahn unterwegs bist und dein ABS/ESP Steuergerät plötzlich eine Fehler feststellt kann es ja auch nicht plötzlich eine Vollbremsung hinlegen oder die Bremsen gar nicht mehr ansteuern lassen, so daß Bremsen gar nicht mehr möglich ist außer ausrollen lassen. Das Beispiel ist zwar etwas extrem und es wird durch zusätzliche Maßnahmen verhindert, aber es soll deutlich machen daß Abschalten oder Stoppen nicht immer gleich die richtige Aktion ist.

Nun aber zu etwas anderem, wenn ich es richtig in den Wagounterlagen gesehen habe erfolgt die Zykluszeitüberwachung erst zum Ende des Zyklus. Startzeit wird genommen, Zyklus startet, Zyklus endet, Endzeit wird genommen, Differenz Endzeit-Startzeit wird mit der zulässigen Zeit verglichen. Bei Überschreitung wird Alarm ausgelöst. Es wird also nicht von extern beobachtet wie lange der Task schon läuft und bei Überschreitung der Alarm ausgelöst. Bei einer Endlosschleife bleibt die Steuerung also trotzdem darin hängen.

Also am besten mal mit Wago direkt Kontakt aufnehmen.

Gruß
 
Fahrbefehle und ähnliches bleiben also erhalten so daß die Anlage trotzdem gegen die Wand fährt? Denn der gleiche Programmierer hat dann auch vergessen die Ausgänge so zu parametrisieren, daß im Stopzustand diese bestimmte Zustände einnehmen oder halten.
[...]
Nun aber zu etwas anderem, wenn ich es richtig in den Wagounterlagen gesehen habe erfolgt die Zykluszeitüberwachung erst zum Ende des Zyklus. Startzeit wird genommen, Zyklus startet, Zyklus endet, Endzeit wird genommen, Differenz Endzeit-Startzeit wird mit der zulässigen Zeit verglichen. Bei Überschreitung wird Alarm ausgelöst. Es wird also nicht von extern beobachtet wie lange der Task schon läuft und bei Überschreitung der Alarm ausgelöst. Bei einer Endlosschleife bleibt die Steuerung also trotzdem darin hängen.
Ich glaube, Du hast den Sinn eines Watchdog bzw. Zykluszeitüberwachung nicht verstanden.
Ich kenne die 750-88x nicht, doch ich kann es nicht glauben, daß die sich tatsächlich so verhält...

Einen Prozess kontrolliert herunterfahren kann man nur, wenn man noch die Kontrolle hat. Was aber wenn die SPS unkontrolliert rennt? Dann MUSS als letzte Rettung der Watchdog die SPS in STOP zwingen und die Ausgänge abschalten. Das muß das Standard-Verhalten sein für den Fall, daß der Programmierer sich gar keine Gedanken macht.

Harald
 
Hallo,
leider wurde die ursprüngliche Frage hier nie beantwortet! Wie ist das Vorgehen zu diesem Thema unter Codesys 2.3 Wago 750-88x?
  • Taskkonfiguration aufrufen
  • Systemereignisse anwählen
  • Except Watchdog auswählen
  • aufgerufene Pou eintragen
  • Baustein erstellen
  • Funktion in Task aufrufen ???
  • Funktion mit Leben füllen ???
Der erzeugte Baustein / Funktion ist leer. Hat hier jemand ein kleines Beispiel wie das aussehen soll?

Gruß
 
Zurück
Oben