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-:sb5:
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.