Interrupt bei Multimove System

  • Interrupt bei Multimove System.

    Wir haben ein Multimove System mit 4 Roboter im Einsatz. Wenn SPS-seitig eine Störung auftaucht, die nur einen Roboter betrifft, muss dieser Roboter gestoppt werden und alle anderen Roboter müssen weiter arbeiten.

    Ich habe das momentan mit einer TRAP Routine gelöst.

    Leider funktioniert das nur einmal.

    MAIN R1()

    ...

    TRAP iroutine_R1

    StopMove\Quick;

    Set do10R1_Reset_Interrupt;

    ExitCycle;

    ENDTRAP


    PROC Main()

    IDelete iStopR1;

    IF di18R1_Interrupt= 0 THEN

    CONNECT iStopR1 WITH iroutine_R1;

    ISignalDi di18R1_Interrupt,1,iStopR1;

    ENDIF

    ...


    Weis wer was ich falsch mache?

    Danke.

  • ANZEIGE
  • Hallo,

    sieht nach einem Copy and Paste Fehler aus...
    In der Trap setzt du "do10R1_Reset_Interrupt" auf 1 und im Main fragst du "di18R1_Interrupt" ab.


    Ups, verlesen. Das sind DI und DO.

  • Der Interrupt wird in deinem Code nur dann scharf geschalten wenn der Eingang "di18R1_Interrupt" beim Start den Zustand "0" hat. Du müsstest prüfen warum dieser Eingang beim starten "1" ist bzw. wo er herkommt (SPS?).


    Grundsätzlich: Wenn es ein Fehler ist, dass der Eingang beim Start bereits den Zustand "1" hat, dann solltest du das auch als Fehler behandeln und darauf reagieren. D.h. Fehler beheben oder Fehler melden aber nicht einfach den entsprechenden Code überspringen.

  • Hi Z750.

    Danke für den Tipp.

    Habe den di18R1_Interrupt aufgezeichnet.

    Der wird von der SPS zurückgesetzt und ist beim Start des Roboter wieder 0.

    Das ganze funktioniert nur einmal - und jedes mal nach dem der Programmzeiger zurückgesetzt wurde.

  • Du musst den Interrupt dann wieder erneut intialisieren.


    Das einfachste ist, wenn du es in eine Eventroutine packst, die bei Start oder Restart ausgeführt wird. Hier einfach den Code aus deiner Main hineinkopieren.

  • Hallo Mikael, soweit ich weiß wird es nicht möglich sein nur einen Manipulator selektiv zu stoppen und die anderen weiter laufen zu lassen.

    Befehle wie STOP; STOPMOVE USW, beziehen sich im Multimove System auf alle Manipulatoren

  • Hallo Hofd,

    die RAPID Befehle stoppen bei einem MultiMove System nur den aktuellen Robotertask .
    Wenn Du alle Roboter stoppen willst, musst Du den Befehl "Stop\AllMoveTasks" verwenden.

    Die Systemeingänge "Start" und "Stop" hingegen gelten für alle Roboter.

    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