Hintergrund Task anhalten und neu starten

  • Gibt es eine Möglichkeit einen Hintergrundtask von der EA Ebene aus in Automatik anzuhalten und neu zu starten.

    PPtoMain gibt es zumindest mit Task Angabe, dazu muss der Task aber stehen.

    Für die Stopp Befehle gibt es das aber nicht.


    Kurz zum Hintergrund des ganzen.

    In einen 2. Task wird eine socket Kommunikation zu einer Kamera aufgebaut. und eben bei dieses kann es auch zum Warten innerhalb des Tasks führen.

  • ANZEIGE
  • Geht das nicht wenn du den Hintergrundtask auf "semistatisch" stellst?

    Der wird doch bei PPtoMain auch zurückgesetzt.

    Im Hauptask dann den Hintergrundtask wieder gezielt starten.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Hatte einen ähnlichen Fall (allerdings mit weit mehr Tasks)


    Ich habe keine statischen Tasks und ebenfalls auf NoSafety. Passend dazu habe ich dann eine Trap in jedem zu stoppenden Task erstellt (Inhalt Stop;) und die Traps dann alle an das selbe Signal geknüpft.


    So hat man bei dem Signal (man könnte ja auch Variablen (bool) nutzen) mit dem man beliebig viele (und/oder ausgewählte) Tasks anhalten kann.


    Dann über ein Systemsignal PP auf main und fertig ist die Suppe

  • Hallo,

    wenn Du die Task nur neustarten willst, könntest Du in dieser Task einen Interrupt mit dem Eingang zum neustarten verbinden und in der TRAP Routine entweder die Instruktion ExitCycle ausführen oder in die Fehlerbehandlung der Routine "main" springen um dann mit einem RETURN oder TRYNEXT fortzusetzen.


    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

  • Hallo,

    im Handbuch "Rapid Kernel" findest Du im Kaptel "Error recovery with long jumps" die entsprechende Beschreibung.


    Der Long-Jump ist hier erforderlich, da in der TRAP-Routine eine Fehlerbehandlung aufgerufen wird, die normalerweise in einer Fehlermeldung aber nicht in der Routine "main" endet.


    ERROR (ERR_RESTART) in der Routine "main" gibt das Sprungziel im "CallStack" an, zu der der Programmzeiger springt, wenn ein Fehler mit RAISE ERR_RESTART ausgelöst wird.


    Siehe auch folgende Posts:

    Re: Rücksprung nach Interrupt

    Re: interrupt verlassen

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind. (Albert Einstein)

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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