Verständnisfrage: Interpreter nicht auslasten

  • Hey zusammen,

    kurze Frage. Ich habe einen Paralleltask (Submittask) laufen der nur eine Abfrage beinhaltet .




    Wäre es schlauer eine Wartezeit von 500ms zum Beispiel einzubinden um den Prozessor nicht zu überlasten?

    Für die Anwendung reicht es völlig aus, wenn ich nach 1-2 Sekunden eine aktualisierung erhalte...


    Oder meint ihr das spielt keine Rolle?


    Vielen Dank schon mal für eure Antworten :)


    Gruß

    Max

  • Schritt für Schritt zum Roboterprofi!
  • wenn Du ein WAIT da rein schreibst, bleibt der Interpreter solange stehen... Nicht gut.

    Mach einfach kein Wait rein, das geht schon und überlastet nix.
    Der Interpolationstakt ist langsam genug, damit der SPS.sub den Prozessor nicht überlastet.

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Ok danke dir WolfHenk :)


    Nur nochmal zum Verständnis... ich gehe davon aus, dass alle Submittask der Reihe nach abgearbeitet werden. Ist das richtig?

    Also zum Beispiel:


    1. sps.sub

    2. task1.sub

    3. task2.sub

    4. ....

    5. ....


    Der Interpreter würde aber wahrscheinlich bei einer Wartefunktion in task1.sub den Task an der Stelle verlassen und mit task2.sub weitermachen und die Bearbeitung zyklisch weitermachen, solange bis die Wartefunktion in task1.sub fertig ist und dann task1.sub wieder bearbeiten oder?


    Gruß

    Max

  • ... äh ... wie rufst Du Deine "task1.sub " auf? Mal geschaut, ob die überhaupt läuft?

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Servus,


    würds noch ein bisserl verbessern. Da wird nix überlastet. Zu viele Funktionen führen zum Überlast.



    IF (($PROG_INFO[2].P_STATE <> #P_ACTIVE) AND ($OUT[120] == TRUE)) THEN
    $OUT[120] = FALSE
    ENDIF

    Dann wird die "IF" nur einmal durchlaufen.

    Evtl. noch dem Ausgang einen "schönen" Namen in der config.dat zuweisen. ;)


    Gruss Martl

  • Bei ABB hatte man tatsächlich das Problem und es war eine offizielle Empfehlung. KUKA dagegen hatte das eigentlich immer schon im Griff.

    SUBs mit Wartezeiten verhalten sich genauso wie sehr lange, rechenintensive SUBs - die Zeitscheiben werden verteilt. Man kann nie sagen, wann ein Hintergrundtask "durch" ist und man hat keine Garantie, dass es in einem Ipo-Takt geschieht oder dass die Verwaltung der Tasks irgendwie Rücksicht darauf nimmt, was sich der Programmierer dabei gedacht haben mag.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden