Frage zu undefinerten Auslastungssprüngen

Licht9885

Level-1
Beiträge
346
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen,

Ich habe gerade ein Problem mit einer Anlage die seit 2003 in Betrieb ist und nun durch ein Geräte Ausfall ein neues CP bekommen hat welches auch gleichzeitig die Targetvisu mit darstellt.

zu den Daten:

neu Verbaut
CP 6606
2x BK 9050

vorher verbaut

CX 9000
2x BK 9000

nun habe ich das Problem das die Echtzeitauslastung des System stark am Schwanken ist zwischen 9% und teilweise bis zu 100% (anbei ein Screenshot der Systemauslastung).
Meine Taskzeiten sind für Main 30ms Prio 0, Visu Task 100ms Prio 2, Visu input Task 100ms Prio. 3.Mein Verdacht liegt darin das ich mir dieses Problem entweder mit den Taskzeiten reingeholt habe oder das ich bei einem der 12 Arrays im Programm eine Bereichsüberschreitung drin habe.

Habe daher versucht die Checkbounds einzufügen um dieses zu testen, allerdings bekommen ich nach der Definition der Funktion die Fehlermeldung:

Fehler 4010: Checkbounds(2) Unverträgliche Typen Kann DINT nicht in BOOL konvertieren
Fehler 4010: Checkbounds(4) Unverträgliche Typen Kann DINT nicht in BOOL konvertieren
Fehler 4010: Checkbounds(6) Unverträgliche Typen Kann DINT nicht in BOOL konvertieren


kennt zufälligerweise irgendwer von den hier anwesenden dieses Problem?
 

Anhänge

  • Auslastung.PNG
    Auslastung.PNG
    18,5 KB · Aufrufe: 28
Es wird Dir wegen der Fehlermeldungen nicht erspart bleiben, den Source Code zu untersuchen. Vorher ist jede Aussage unmöglich.

Irgendwo gibt es eine Kontrollanweiseung, IF, WHILE oder so, die einen DINT Ausdruck auswertet, obwohl ein BOOL Ausdruck erwartet wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
hier im Forum hat das schon jemand angefragt wie man das loggen etc. könnte.
Ich habe gerade getestet, wenn man die Function von DINT nach BOOL abändert, wird sie nicht mehr herangezogen...
Schade erstmal...

Aber die Idee eines früheren "Forianers" habe ich erweitert getestet und könnte helfen:
Eine globale var anlegen für den DINT welcher im Checkbounds verletzt wurde und ihn dort füttern.
Dann etwas mühsam aber sollte gehe:
Eine globale Stringvar anlegen und diese in jedem Aufrufteil der SOurcen setzen und dann mittels Breakpoint den globalen DINT überwachen , stoppen und hoffen das man nun einen "eingrenzenden" Namen im String wiederfindet um die Sourcenstelle inzugrenzen...

Viel Erfolg
Shrimps
 
Eine Bereichsüberschreitung bei den Arrays würde wohl eher einen Page fault bringen als eine erhöhte Echtzeitauslastung. Diese Sprünge sind typisch für die Target Visu. Bei einem CP6606 gehe ich mal davon aus, dass er mit WEC7 und der CE Target Visu läuft. Die war noch nie wirklich echtzeitfähig und hat schon immer den Echtzeitlauf der Steuerungstasks beeinträchtigt. Im Lauf der Zeit ist das immmer schlimmer geworden, und anscheinend hat WEC7 da gegenüber CE6 noch Einen
draufgelegt. Ich hatte neulich einen CX2020 mit WEC7, der ingesamt deutlich langsamer war als der zuvor eingesetzte CX1020 mit CE6. Beckhoff ist dabei, das Problem zu untersuchen, ein Ergebnis habe ich bisher noch nicht.
Solange Deine SPS-Task keine Zykluszeitüberschreitungen hat, kannst Du mit dem Problem leben. Um es etwas abzumildern, kannst Du verschiedene Dinge ausprobieren:
1) Auf jeden Fall die Prioritäten von Visu Input Task und Visu Task umkehren (Visu Input Task=2, Visu Task=3).
2) Nachschauen, ob die Visu Task nur bei Visu-Seitenwechseln Zykluszeitüberschreitungen hat oder auch während der Anzeige einer Seite. Im zweiten Fall evtl. die
Zykluszeit der Visu Task erhöhen.
3) Den Rechenzeitanteil für die Echtzeit vom Standardwert 80% auf die max. möglichen 90% erhöhen.
4) Die Priorität der I/O Idle Task zwischen SPS-Task und Visu Input Task setzen (laut Beckhoff aber nur problemlos, wenn Du neben der SPS keine NC laufen hast).
5) Für das PLC-Laufzeitsystem "I/O am Taskanfang" anhaken.
 
Danke structuredTrash

habe die die visutask und die inputtask umgedreht und die visutask auf 150ms gesetzt habe zwar immer noch Sprünge drin aber nur noch so um ca 30 % was bei einer normalen Auslastung von 16% völlig im Rahmen ist momentan läuft alles ganz okay der Langzeittest von 2 Wochen wird zeigen was genau passieren wird
 
Zurück
Oben