CPU 315-2DP: OB Anforderungsfehler durch Programm im OB35

Grimsey

Level-2
Beiträge
543
Reaktionspunkte
32
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

mich plagt ein kleines Problem und ich finde die Lösung einfach nicht. Vielleicht kann mir jemand von Euch noch einen hilfreichen Tipp geben. Folgende Situation:

ich bin gerade dabei, eine Fördertechnikanlage auf ein neues Programm umzustellen. Ich habe mein neues Programm neben das alte in die CPU (eine 315-2DP) hochgeladen und schalte mit Hilfe eines Merkers zwischen den beiden Programmen um. So kann man recht gut die neuen Sachen testen.
Ab und an kommt es jetzt vor, dass die CPU einen Systemfehler meldet. Im Diagnosepuffer steht der Eintrag, der im Anhang ersichtlich ist ("OB Anforderungsfehler"). Nun habe ich den Programmaufruf im OB35 aber schon blockiert/übersprungen (siehe Bild im Anhang). Dennoch tritt der Fehler ab und an einmal auf. Ich suche nun schon länger nach einer Möglichen Ursache, finde sie aber nicht. Wodurch könnte der Fehler denn noch verursacht werden?

Vielen Dank für Eure Tipps!!!
 

Anhänge

  • OB35-Aurufe.jpg
    OB35-Aurufe.jpg
    63,8 KB · Aufrufe: 93
  • Baugruppenzustand.png
    Baugruppenzustand.png
    39 KB · Aufrufe: 92
Dein Programm versucht aus irgendeinem Grund den OB80 aufzurufen. Du könntest den OB80 einfügen und dann dort anhand der Fehlercodes feststellen, warum er aufgerufen wird.
 
Der OB80 wird aufgerufen, weil der Interrupt OB35 erneut aufgerufen wird, obwohl dieser vom vorherigen Aufruf noch nicht abgearbeitet worden ist. Was ist den als Aufrufzeit für den OB35 eingestellt (siehe HW-Konfig ->Eigenschaften CPU ->Weckalarme)? Standardmäßig ist dort 100 eingestellt, dh. der OB35 wird alle 100ms aufgerufen. Stell doch da einen anderen Wert ein, Z.B. 5000 und schau was passsiert.
 
Danke erst einmal für Eure Tipps!
OB35 wurde von denjenigen, die das alte Programm geschrieben haben, auf 20ms eingestellt. Mich wundert es, dass er mit der Bearbeitung des Programms noch nicht fertig sein soll da ja gar nichts mehr gemacht wird.
@M-Ott: danke für den Tipp! Ist geändert. Der OB80 ist auch schon in der CPU...muss mal den Fehlerzustand auslesen, vielleicht komme ich da weiter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was macht denn der OB35 so alles ?
Die 315 ist zwar kein Rennpferd - aber in 20ms nicht fertig werden ... da muss dann schon ein bißchen drin stehen, von dem Einiges da wahrscheinlich gar nicht reingehört ...

Gruß
Larry
 
@larry: das ist es ja. da sind im 2 NW drin in denen Integratoren aufgerufen werden...aber genau das lasse ich schon gar nicht mehr ausführen. Sie oben das eine Bild. Daher wundert es mich ja das es da ein Problem geben soll.
Komischerweise ist es bisher auch nicht mehr aufgetreten....ich hab lediglich aus:
U M666.6
BEA

U M666.6
BEB

gemacht.

Sobald ich was im OB80 stehen habe, melde ich mich noch einmal.
Habt vielen Dank für Eure Hilfe!
 
Ich hab da dunkel was in Erinnerung...
Als ich den OB35 mit dem PG beobachtet habe, ist die Zykluszeit manchmal in die Knie gegangen und es gab eine Fehlermeldung in der Richtung. Hast Du den OB35 oder einen Baustein mit Aufruf im OB35 beobachtet?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Tigerente: hmmm...das ist gut möglich. Ich hab bis jetzt nichts mehr in den OBs beobachtet und hab auch keinen Fehler. Die Zykluszeit ist liegt im Schnitt bei um die 12ms....nach Auftritt des Fehlers wird die längste Zeit so mit 40-60ms angegeben. Kann gut sein das es etwas damit zu tun hat.
 
Also der Fehler ist dann jetzt doch noch einmal aufgetreten. Ohne meine Zutun...nichts beobachtet...nichts übertragen. Im OB35 wird eigentlich nichts aufgerufen...siehe bitte in meinem ersten Post das beigefügte Bild. Aus dem BEA wurde lediglich ein BEB gemacht und der Merker M666.6 auf 1 gesetzt. Somit sollte der restliche Code im OB35 nicht aufgerufen werden. Im OB80 stand der Fehlercode 2 an...laut Hilfe besagt dies, dass der OB35 aufgerufen wurde obwohl er noch nicht fertig abgearbeitet war. Leuchtet mir nur leider nicht ein. Der Code wird ja im eigentlich gar nicht ausgeführt. Liegt es eventuell an der eingestellten Zeit von 20ms???

Ich danke Euch schon einmal im Voraus!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
könnte sein das deine sps jetzt wo quasi zwei programm drauf sind in irgendeinem unglücklichem zufall mal ganz kurz der zyklus mehr als 20ms beträgt und somit der fehler ausgelöst wird...
 
Sag ich doch schon von Anfang an. Einfach mal die Zeit erhöhen und sehen was dann passiert!
könnte sein das deine sps jetzt wo quasi zwei programm drauf sind in irgendeinem unglücklichem zufall mal ganz kurz der zyklus mehr als 20ms beträgt und somit der fehler ausgelöst wird...
Das erklärt aber alles nicht, warum ein quasi leerer OB35 eine Laufzeit von über 20 ms haben soll.
@Grimsey
Versuch mal die Hardware-Konfig neu zu übertragen.
Gibt es evtl. irgendwo auf der Steuerung einen Baustein, der den Aufrufzyklus des OB35 ändert (da gibt es einen SFC oder SFB, ich weiß nur gerade nicht, welcher)?
 
Hallo zusammen,

@Michael: die Weckalarm-OBs können mit Hilfe der SFCs 39-43 manipuliert werden. Ich habe gerade mal geschaut ob diese vielleicht irgendwo im alten Programm aufgerufen, konnte aber nichts finden.
An den Zeiteinstellungen des OBs mag ich eigentlich erst einmal nichts ändern, solange der alte Programmstand noch aktiv ist und die Anlage damit betrieben wird. Wie Du schon richtig sagst erklärt dies auch nicht weshalb ein fast leerer OB eine länger Laufzeit haben soll.

Ich werde mal schauen ob sich dieses Phänomen auch mit PLCSIM nachstellen lässt.
Gott sei dank scheint es in der Anlage bis jetzt keine sichtbaren Auswirkungen zu haben.

Ich danke Euch allen für Eure Beiträge und würde mich wieder melden, wenn es irgend etwas neues gibt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Zykluszeit ist liegt im Schnitt bei um die 12ms....nach Auftritt des Fehlers wird die längste Zeit so mit 40-60ms angegeben. Kann gut sein das es etwas damit zu tun hat.
Vielleicht liegt es ja gar nicht an dem OB35 sondern es wird irgendwo im Programm ein Baustein bei einem bestimmten Ereignis bedingt aufgerufen, und dieser Baustein treibt die Zykluszeit, z.B. durch eine Schleife, in die Höhe.
Falls du diese Idee weiter verfolgen willst, einfach mal die Aufrufe aller Bausteine die sich in dem Projekt befinden kontrollieren.
 
...da sind im 2 NW drin in denen Integratoren aufgerufen werden...aber genau das lasse ich schon gar nicht mehr ausführen. Sie oben das eine Bild. Daher wundert es mich ja das es da ein Problem geben soll.
Komischerweise ist es bisher auch nicht mehr aufgetreten....ich hab lediglich aus:
U M666.6
BEA

U M666.6
BEB

gemacht.

Und wenn BEB gar nicht ausgeführt wird ? Was machen denn dann deine Integratoren (so Code-mäßig meine ich) ?
Ich würde denn doch an der Stelle mal schauen.

Selbstverständlich würde das Herausfsetzen des OB35-Intervalls sofort Abhilfe schaffen - nur hat dieses Intervall ja (z.B. für die Integratoren ???) anscheinend irgendeinen Sinn, der dann so nicht mehr gegeben ist ...
Ich würde also hier die Ursache hinterfragen und nicht die Symptome ...

Gruß
Larry
 
M666.6
BEB

wo wird denn der Merker gemacht ?

ich wusste nicht das die CPU einen so hohen Merkerbereich hat oder haben soll.
 
Zuletzt bearbeitet:
Zurück
Oben