TIA Welcher FB hat die Zykluszeit überschritten

knuppel

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

ich habe in einem FB zu Testzwecken eine Endlosschleife eingrbaut. Natürlich geht die SPS in den Diagnose/Error Modus,
wie kann ich im TIA-Portal feststellen welcher FB die Zykluszeit überschritten hat?
Unter Online & Diagnose steht im Diagnosepuffer nur:
Temporärer CPU-Fehler: Max. freie Zykluszeit zweifach überschritten
parametrierter Wert: 150 Millisekunden
CPU wechselt in STOP-Zustand (Systemreaktion)
Danke

Meine Software:

TIA Portal V14 SP1
Step 7 Basic V14 SP1
WinCC Basic V14 SP1

CPU 1212C AC/DC/Rly
 
Zuletzt bearbeitet:
Online & Diagnose --> Diagnosepuffer

Dort schreibt er dir auch den FB mit der Nummer rein. Wenn du diese Meldung auswählst kommt dann in etwas folgendes:

Unbenannt.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

wenn ich zum Beispiel die Meldung
Temporärer CPU-Fehler: Max. freie Zykluszeit zweifach überschritten
parametrierter Wert: 150 Millisekunden
CPU wechselt in STOP-Zustand (Systemreaktion)

PLC_1 / PLC_1
auswähle und dann auf "Im Editor öffnen" klicke, öffnet sich die Gerätekonfiguration mit meiner CPU.
 
Ja, das ist klar. Die wird er dir auch weiterhin anzeigen weil du theoretisch ja noch Nachstellen könntest.

Aber wird bei dir nicht der Auslösende Fehler-FB im Diagnosepuffer angezeigt? Welche Fehler-OBs hast du denn geladen.
 
diag.jpg
Hier der Screenshot, in den Texten steht nirgends der FB der den Fehler ausgelöst hat.
Ich bin noch relativ frisch mit Siemens, ich dachte es würde mir standardmäßig angezeigt werden, wie zum Beispiel bei B&R.
 
Genau auf das was Larry sagt wollte ich nämlich auch hinaus. Bei Siemens sind oft die kurz zuvor eingetragenen Meldungen interessant.
 
Der Fehler 5:
Temporärer CPU-Fehler: Bereichslängenfehler in FC 9
betrifft OB 1-Ausführung
Lesezugriff Flüchtiger DB-Bereich
fehlerhafte Adresse, Operand ersetzt
Bearbeitung wird fortgesetzt (keine OB-Bearbeitung)
Kam schon bevor ich meine Endlosschleife (bewusst) programmiert habe, ich weiß auch in welchem FB die Zyklusverletzung aufgetreten ist.
Ich wollte nur mal sehen ob mir die SPS zeigen würde in welchen FB ein Laufzeit-oder Zykluszeitfehler auftritt. Interessehalber für spätere Fehlersuche.

Der Fehler 5 trat schon vorher auf und hat die SPS nicht zum stoppen gebracht, trotzdem wäre der Fehler 5 meine nächste Baustelle gewesen. Der Fb der Fehler 5 auslöst:
Code:
FOR #icounter := 0 TO 630 DO
    
    #WStrSerial[#icounter] := #inChars[#icounter-1];
    IF #WStrSerial[#icounter] = WSTRING#';' THEN
        #iLen := #icounter;
    END_IF;
    ;
END_FOR;
inChars ist ein Char Array [0..630]
WStrSerial ist ein WSTRING
iLen ist eine INT
icounter ist auch eine INT
 
Zuletzt bearbeitet:
Der Baustein, der gerade ausgeführt wird, wenn die ZyklusZeit überschritten wird, muss nicht der Baustein sein, der die ZyklusZeit unzulässig in die Höhe getrieben hat!
Wenn nämlich der zeitraubende Baustein noch innerhalb der zulässigen ZyklusZeit fertig wird und die Überschreitung erst während der Ausführung der nachfolgenden Bausteine (die an sich nicht zu langsam sind, aber durch die bereits anderweitig verbratene Zeit erst zu spät drankommen) auftritt.
Sollte ein solcher Fall auftreten, wäre die Auskunft einer DiagnoseMeldung irreführend, wenn sie den Baustein nennt, bei dessen Ausführung die ZeitÜberwachung zugeschlagen hat!
 
naja meist sind aber Endlosschleifen das Problem... und dann tritt die Ueberschreitung auch in dem Problembaustein auf. Aber vielleicht hat Siemens wirklich mal wieder so verquer wie Heinilein gedacht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
vielleicht hat Siemens wirklich mal wieder so verquer wie Heinilein gedacht.
Allerdings - von SIEMENS habe ich sogar das VerquerDenken gelernt!
Wir hatten mal mit einer sehr laaangsamen PLC (war's noch die 130WA oder schon die 130WB?) zu kämpfen.
Da wurde von SIEMENS eine doppelt so schnelle angekündigt. Und so haben wir, während wir darauf warteten, weite Teile des PLC-Programms nur provisorisch totgelegt.
Dann kam die "Turbo-Version" und mit ihr war die ZykluszeitÜberschreitung wieder ein Thema - obwohl noch das provisorisch abgespeckte PLC-Programm geladen war.
Mit doppelt so schnell hatte SIEMENS nämlich gemeint: die BitBefehle sind doppelt so schnell. Ja aber, wir haben auch WortBefehle verwendet - insbesondere in ProgrammSchleifen - und die WortBefehle waren zum gerechten Ausgleich doppelt so langsam geworden!!! Das nenne ich verquer!
Aber das nächste Warten auf die nächste SIEMENS-Änderung hatte sich gelohnt: die nächste Version war so wahnsinnig schnell, dass sich die NC und die PLC nicht mehr verstanden haben - wir mussten die tatsächlich benötigte Zykluszeit per Timer künstlich stark verlängern, damit der InformationsAustausch zwischen NC und PLC wieder rund lief. Das nenne ich auch verquer - aber wir waren selig.
Häwenaissuiikend!
 
Aber das nächste Warten auf die nächste SIEMENS-Änderung hatte sich gelohnt: die nächste Version war so wahnsinnig schnell, dass sich die NC und die PLC nicht mehr verstanden haben - wir mussten die tatsächlich benötigte Zykluszeit per Timer künstlich stark verlängern, damit der InformationsAustausch zwischen NC und PLC wieder rund lief. Das nenne ich auch verquer - aber wir waren selig.
Häwenaissuiikend!

Wobei das ja doch eher an am Programm liegen wird. Wieso sollte der Informationsaustausch abhängig sein von der Geschwindigkeit der CPU. Da sollte dann das Programm halt auf den langsameren Teilnehmer warten.

mfG René
 
Ja René, das sehe ich genauso. Aber das Programm, das anscheinend ohne Handshake zwischen NC und PLC mit einer langsamen PLC noch gut zurecht kam, war das Siemens-BetriebsSystem und nicht die Anwender-SW!
Darum haben wir als Anwender das Problem genauso "gelöst", wie es Siemens uns vorgeschrieben hat: die real verbratene ZyklusZeit per Timer künstlich verlängert!
Gruss, Heinileini
PS: SIEMENS hatte nur die PLC drastisch verschnellifiziert - die NC-CPU blieb unverändert.
 
Zuletzt bearbeitet:
Zurück
Oben