Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Stop bei Zykluszeitüberschreitung

  1. #1
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    mit folgendem Problem schlage ich mich herum: Eine SPS in unserer Firma geht ab und zu auf Stop, nachdem eine Zykluszeitüberschreitung stattgefunden hat (> 350 ms). Oft ist es an einem Zeitpunkt, wo ich nicht mehr im Hause bin und ein Angestellter den Schlüsselschalter auf Stop und zurück auf Run stellen muß, damit es wieder läuft. Nun würde ich ja gerne den permanenten Zyklus über einen Trend mitschreiben um zu sehen wann die Zeit hoch geht und wann nicht. Leider sind in dem Baugruppenzustand nicht mehr die Details der letzten Überschreitung sichtbar. Wie bekomme ich raus warum die Zykluszeit angestiegen ist und/ oder wie kann man den Zyklus mitloggen? Wie kann ich mich auf den nächsten "Absturz" vorbereiten?
    Wahnsinn wohnt nur 1 Stockwerk unter dem Genie. Aber Genie ist nichts anderes, als kontrollierter Wahnsinn.
    Zitieren Zitieren Stop bei Zykluszeitüberschreitung  

  2. #2
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    hast du dir schon mal den OB 80 angeschaut, der kann den Stop verhindern und du kannst rausfinden woran es liegen könnte

    Einfach mal die Hilfe zu dem OB durchlesen

    könnte mir aber vorstellen, dass deine CPU in irgendeiner Schleife hängenbleibt
    Geändert von MW (15.05.2008 um 17:09 Uhr)

  3. #3
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    jetz hab ich die infos schon zusammengetragen, da werd ich es auch posten, so:

    Überschreitet Ihr Programm die maximale Zykluszeit für den OB 1, dann ruft das
    Betriebssystem den OB 80 (Zeitfehler-OB) auf. Ist der OB 80 nicht programmiert,
    dann geht die CPU in den Betriebszustand STOP.
    im OB80 kannst du dann

    Fehlercode B#16#01 Zykluszeit überschritten
    OB80_ERROR_INFO: Laufzeit des letzten Zyklus (ms)
    OB80_ERR_EV_CLASS: Klasse des Ereignisses, das den Alarm ausgelöst hat
    OB80_ERR_EV_NUM: Nummer des Ereignisses, das den Alarm ausgelöst hat
    OB80_OB_PRIORITY: die zum Alarmzeitpunkt aktive Prioritätsklasse

    auswerten
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    im OB80 kannst du dann...
    Erst mal vielen Dank für Eure schnelle Antwort. Also der OB 80 ist sowohl On- wie auch Offline leer. Klasse Arbeit eines Dienstleisters .Da ich den OB 80 noch nicht bearbeitet habe oder mit Ihm zu tun hatte (Schande ) nun mal die Frage, wie ich es verhindere, das mit den OB 80 die CPU in Stop geht. Reicht es,

    Code:
          L     #OB80_FLT_ID
          T     DB1.DBW    0
          L     #OB80_ERROR_INFO
          T     DB1.DBW    2
          L     #OB80_ERR_EV_CLASS
          T     DB1.DBW    4
          L     #OB80_ERR_EV_NUM
          T     DB1.DBW    6
          L     #OB80_OB_PRIORITY
          T     DB1.DBW    8
    es in dieser Form zu tun und damit den Stop zu verhindern? Oder sollte da noch ein wenig mehr passieren?
    Wahnsinn wohnt nur 1 Stockwerk unter dem Genie. Aber Genie ist nichts anderes, als kontrollierter Wahnsinn.

  5. #5
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Deep Blue Beitrag anzeigen
    Erst mal vielen Dank für Eure schnelle Antwort. Also der OB 80 ist sowohl On- wie auch Offline leer. Klasse Arbeit eines Dienstleisters .Da ich den OB 80 noch nicht bearbeitet habe oder mit Ihm zu tun hatte (Schande ) nun mal die Frage, wie ich es verhindere, das mit den OB 80 die CPU in Stop geht. Reicht es,

    Code:
          L     #OB80_FLT_ID
          T     DB1.DBW    0
          L     #OB80_ERROR_INFO
          T     DB1.DBW    2
          L     #OB80_ERR_EV_CLASS
          T     DB1.DBW    4
          L     #OB80_ERR_EV_NUM
          T     DB1.DBW    6
          L     #OB80_OB_PRIORITY
          T     DB1.DBW    8
    es in dieser Form zu tun und damit den Stop zu verhindern? Oder sollte da noch ein wenig mehr passieren?
    der OB80 verhindert, dass die CPU in STOP geht, dazu muß er nur auf der Steuerung verfügbar sein und muß nicht ausprogrammiert sein.

    mit deinem code speicherst du die Fehlerauswertung und kannst sie dir später anschauen.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    So nebenher ...
    Kann es ggf. auch sein, dass die Zykluszeit-Überschreitung gar kein Programmfehler ist, sondern das Ergebnis einer hin- und wieder stattfindenden Rechnenoperation (innerhalb einer Schleife), die deine Zykluszeit ganz gezielt hochtreibt ? In dem Fall könntest du auch den Überwachungswert hochsetzten ...

    Ansonsten ... der von dir gepostete Code überschreibt immer den davor gewesenen Wert. Wenn dir das so reicht sollte das OK sein. Ich hoffe du hast die Variablengrößen beachtet (ich kann gerade nicht nachschauen).

    Gruß
    LL

  7. #7
    Deep Blue ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.08.2006
    Ort
    OH
    Beiträge
    275
    Danke
    70
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    So nebenher ...
    Kann es ggf. auch sein, dass die Zykluszeit-Überschreitung gar kein Programmfehler ist, sondern das Ergebnis einer hin- und wieder stattfindenden Rechnenoperation (innerhalb einer Schleife), die deine Zykluszeit ganz gezielt hochtreibt ? In dem Fall könntest du auch den Überwachungswert hochsetzten ...
    Nachdem ich nun etwas nachgeforscht habe ist mir aufgefallen, das immer eine Fehlermeldung die letzte vor dem CPU-Stop ist. Das konnte ich aus dem LogFile der Visu auslesen. Es ist immer ein und der selbe Türkontakt. Warum der nun meine CPU killt ist mir aber noch ein Rätsel. Der jetzige max. Wert liegt bei 350 ms.
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ich hoffe du hast die Variablengrößen beachtet (ich kann gerade nicht nachschauen).
    Gruß
    LL
    Ich wollte damit nur veranschaulichen, wie ich mir die Auswertung vorstelle.

    @ vierlagig

    Der OB 80 ist zwar leer, aber Online vorhanden. Dann sollte die CPU doch eigentlich weiter laufen,oder?
    Angehängte Grafiken Angehängte Grafiken
    Geändert von Deep Blue (15.05.2008 um 19:29 Uhr)
    Wahnsinn wohnt nur 1 Stockwerk unter dem Genie. Aber Genie ist nichts anderes, als kontrollierter Wahnsinn.

  8. #8
    Registriert seit
    14.05.2008
    Beiträge
    23
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    der OB80 muss nichts beinhalten, wenn du den im simatic manager erzeugst (rechtsklick usw. -> neuer OB) und dann OB80 eingibst, wirst du schon am automatisch vergebenen symbol sehen, dass es der richtige ist.

    mit was schreibst du deine bausteine? wenn du bspw. CFC hast würd ich auch mal in die ablaufgruppen schauen, und guggen was so alles aufgerufen wurde, denn wenn die zeitüberschreitung nur ab und zu passiert, kann es gut sein, dass einfach ein OB1 (mit max. 6000ms überwachungszeit) so oft durch höherpriore OB's unterbrochen wird, bis er die 6000ms überschreitet.

    nun hast du zwei fälle..

    -> OB80 nicht projektiert (man kann ihn sogar im onlinemodus direkt auf die CPU kopieren, musst nicht mal laden) -> CPU geht in stop!

    -> OB80 projektiertd und geladen -> überwachungszeit geht nochmal los, ABER!!!!! nur noch einmal!!!

    Das heißt, wenn dein OB1 12001ms brauchen würde, also beliebiger wert höher als 2x überwachungszeit, geht die CPU trotz OB80 100% sicher in STOP!! -> nun weiß ich nicht welcher OB das war der hier die zeit überschritten hat, aber wenns einer mit zB 150ms ist, wäre bei 350ms trotz OB80 ein STOP aufgetreten.

    ein leerer OB macht nur probleme wenn du CFC bzw. PCS 7 nutzt, denn der compiler löscht leere OBs (wie zb den OB80). lösung: bau einfach nen FC-aufruf eines beliebigen leeren FC ein und das passiert auch nicht mehr!

    also so doof ist der OB80 nicht, nicht gleich los-

    wenn ein OB so extrem lange braucht, wird oft unterbrochen durch höherpriore OBs (die wiederum selbst unterbrochen werden können, und deren zeit addiert sich zum niederpriorsten OB dazu...), ist so ein klassiker bei "sporadisch" auftretenden zyklusüberschreitungen.
    Geändert von Kwyjibo (15.05.2008 um 19:31 Uhr)

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    mit dem Aufruf des SFC 43 "RE_TRIGR" im OB80 kannst du die Zykluszeitüberwachung immer wieder neustarten, würde aber die Aufrufe zählen und begrenzen...

    was ist denn um den Türkontakt drum rum geproggt?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.720
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vierlagig Beitrag anzeigen
    ... was ist denn um den Türkontakt drum rum geproggt?
    Das würde mich in dem Zusammenhang auch interessieren ...
    Ich vermute hinter der Zykluszeit-Überschreitung ja nach wie vor eine Schleifen-Bearbeitung, die (zu Recht oder zu Unrecht) den voreingestellten Wert überschreitet (möglich wäre auch Endlos-Schleife).
    Den Vorschlag mit den höher-prioren OB's kann ich mir hier nicht unbedingt vorstellen.

    Gruß
    LL

Ähnliche Themen

  1. VM Ware Zykluszeitüberschreitung bei F-CPU
    Von Poldi007 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.10.2010, 13:13
  2. CPU im RUN/Stop
    Von Steve38 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.03.2010, 18:31
  3. Stop bei 315-2dp
    Von Wilhelm im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.04.2009, 11:59
  4. CPU-Stop bei Zykluszeitüberschreitung
    Von PeterK im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 08.10.2007, 11:53
  5. SPS stop und PAW
    Von beurnie im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 08.05.2006, 17:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •