Synchronisierte Bewegung mit einem Drehtisch

HINWEIS

Zum Durchführen dieses Anwendungsbeispiels ist das MOVIKIT® Robotics addon ConveyorTracking erforderlich.

Für die synchronisierte Bewegung mit einem Drehtisch (Rotary Table Tracking), werden wie beim "Conveyor Tracking" bewegbare USER-Koordinatensysteme verwendet.

Das Verwenden der Funktion erfolgt analog zu der im Kapitel Synchronisierte Bewegung mit einem Transportband (Conveyor Tracking) beschriebenen Vorgehensweise. Beachten Sie dabei jedoch folgende Unterschiede:

  • In der Konfiguration muss folgender Typ ausgewählt werden:

stConfigRotaryTable.eUserCoordSysType :=
SEW_MK_Robotics.SEW_RobUserCs.SEW_IRobUserCs.
   E_UserCoordSysType.Rotary;

  • Das Positionssignal lrSetpointPosition ist die stetige Folge der Drehwinkel um die Z-Achse des USER-Koordinatensystems des Drehtisches in Grad. lrSetpointPosition sollte im Bereich [-180°, 180°[ liegen. Andere Werte werden automatisch auf diesen Bereich abgebildet.
  • Der direkte Wechsel vom/zum RotaryTable-USER-Koordinatensystem ist nur von / zu BASE möglich.

 

Daraus ergibt sich folgender Beispiel-Code im IEC-Programm:

  1. Legen Sie eine ConveyorOrRotaryTable-Bausteininstanz und eine Konfigurationsvariable an. Verwenden Sie dafür z. B. den Deklarationsteil des Programms User_PRG.

fbRotaryTable :

SEW_MK_Robotics.SEW_RobUserCs.ConveyorOrRotaryTable;

stConfigRotaryTable :

SEW_MK_Robotics.SEW_RobUserCs.SEW_IRobUserCs.ST_Config;

  1. Nehmen Sie die Konfiguration und die Anbindung an den Roboter vor. Verwenden Sie dafür z. B. die Aktion User_PRG.Init. Ersetzen Sie ggf. in "Interface_MyRobot" und "HMI_MyRobot" den Namen "MyRobot" durch den Namen des Roboters in Ihrem MOVISUITE®-Projekt.

(* Typ *)

stConfigRotaryTable.eUserCoordSysType := SEW_MK_Robotics.

SEW_RobUserCs.SEW_IRobUserCs.E_UserCoordSysType.Rotary;

(* Nullpunkt des Drehtischs bzw. des USER-Koordinatensystems relativ zu BASE *)

stConfigRotaryTable.alrOrigin[1] := 200.0; // mm in X-Richtung

stConfigRotaryTable.alrOrigin[2] := 0.0; // mm in Y-Richtung

stConfigRotaryTable.alrOrigin[3] := 0.0; // mm in Z-Richtung

stConfigRotaryTable.alrOrigin[4] := 0.0; // Grad um Z-Achse

stConfigRotaryTable.alrOrigin[5] := 0.0; // Grad um Y-Achse

stConfigRotaryTable.alrOrigin[6] := 0.0; // Grad um X-Achse

(* Positive Drehrichtung des Drehtischs Z_negative, Z_positive (Default) *)

fbRotaryTable.eMotionDirection := SEW_MK_Robotics.
SEW_RobUserCs.SEW_IRobUserCs.E_CartesianDirection.Default;

(* Anbindung an den Roboter *)

fbRotaryTable.stConfig := stConfigRotaryTable;

Interface_MyRobot.LinkIUserCoordSys_Segment(fbRotaryTable);

HMI_MyRobot.fbSimu3D.AddUserCS(fbRotaryTable, 1);

xInitDone := (* xInitDone AND *) fbRotaryTable.Init();

  1. Weisen Sie den Positionsverlauf des USER-Koordinatensystems stetig in der Task HighPrio der Property fbRotaryTable.lrSetpointPosition zu. Verwenden Sie dafür bevorzugt die Aktion User_PRG.ReadActualValues.
    • Beispiel: USER-Koordinatensystem wird mittels Sinus bewegt. Definieren Sie dafür z. B. eine Variable lrSinArg im Deklarationsteil des Programms User_PRG.

lrSinArg := lrSinArg + 0.0001;

fbRotaryTable.lrSetpointPosition :=

120.0(* Grad *) * SIN(lrSinArg);

Das SRL-Programm und die Anmerkungen hinsichtlich des Wechselns des Koordinatensystems sind die gleichen wie im Kapitel Synchronisierte Bewegung mit einem Transportband (Conveyor Tracking).