Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“

Anhand dieser Anleitung wird ein TwinCAT-Projekt angelegt, das zwei Planar-Mover, einen Planar-Track und eine Planar-Group enthält und die Mover sowohl auf als auch neben dem Track verfährt.

Planar-Mover anlegen

Siehe Konfiguration.
1. Legen Sie zwei Planar-Mover an.
2. Versetzen Sie „Parameter (Init)“ in den Simulationsmodus (TRUE). Der Parameter ist versteckt und wird nur sichbar, wenn man die Checkbox „Show Hidden Parameters“ aktiviert.
3. Ändern Sie die Startposition des zweiten Movers auf x=240.
Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 1:

Planar-Track und Planar-Group anlegen

4. Fügen Sie den Planar-Track über Groups > Add New Item… hinzu, siehe Konfiguration.
5. Gehen Sie für die Planar-Group analog vor.

PLC anlegen

Um die Mover, den Track und die Gruppe zu steuern, muss eine PLC angelegt werden, aus der der Nutzer Befehle an den Mover geben kann, siehe PLC anlegen.
6. Legen Sie über MAIN zwei Mover ( MC_PlanarMover), einen MC_PlanarTrack und eine MC_PlanarGroup an.
Diese repräsentieren die Mover, den Track und die Gruppe in der MC Configuration.
7. Legen Sie, wie nachfolgend gezeigt, eine Zustandsvariable für eine Zustandsmaschine an sowie zwei Hilfspositionen für den Track.
8. Legen Sie außerdem ein Feedback an, siehe Planar-Feedback.
Dem Feedback können beliebige Kommandos mitgegeben werden. Es liefert Detailinformationen zur Kommandoausführung und über die Ausführungszeit.
PROGRAM MAIN
VAR
    mover_one, mover_two : MC_PlanarMover;
    track : MC_PlanarTrack;
    group : MC_PlanarGroup;
    state : UDINT;
    pos1, pos2 : PositionXYC;
    feedback : MC_PlanarFeedback;
END_VAR
9. Programmieren Sie anschließend in der MAIN einen Ablauf.
Dieser Programmcode erstellt und aktiviert einen Track, eine Gruppe und beide Mover. Sowohl die Mover als auch der Track werden der Gruppe hinzugefügt. Danach wird Mover eins auf dem Track eingekoppelt und verfahren. Beim Verfahren wird ein Feedback mitgegeben, über das wir die Ablehnung des Kommandos als Fehler zurückbekommen. Das Kommando wird abgelehnt, da Mover zwei den Track blockiert (Kollisionsfehler).
CASE state OF
  0:
    pos1.SetValuesXY(0, 0);
    pos2.SetValuesXY(400, 0);
    track.AppendLine(0, pos1, pos2);
    track.Enable(0);
    group.Enable(0);
    state := 1;
  1:
    IF track.MCTOPLC_STD.State = MC_PLANAR_STATE.Enabled
    AND group.MCTOPLC_STD.State = MC_PLANAR_STATE.Enabled THEN
         state := 2;
    END_IF
  2:
    mover_one.Enable(0);
    mover_two.Enable(0);
    state := 3;
  3:
    IF mover_one.MCTOPLC.STD.State = MC_PLANAR_STATE.Enabled
    AND mover_two.MCTOPLC.STD.State = MC_PLANAR_STATE.Enabled THEN
         state := 4;
    END_IF
  4:
    mover_one.AddToGroup(0,group);
    mover_two.AddToGroup(0,group);
    track.AddToGroup(0,group);
    state := 5;
  5:
    IF mover_one.MCTOPLC.STD.GroupOID > 0
    AND mover_two.MCTOPLC.STD.GroupOID > 0
    AND track.MCTOPLC_STD.GroupOID > 0 THEN
         state := 6;
    END_IF
  6:
    mover_one.JoinTrack(0, track, 0, 0);
    state := 7;
  7:
    IF mover_one.MCTOPLC.STD.CommandMode = MC_PLANAR_MOVER_COMMAND_MODE.OnTrack THEN
         state := 8;
    END_IF
  8:
    mover_one.MoveOnTrack(feedback, 0, 150.0, 0, 0);
    pos2.SetValuesXY(240, 320);
    mover_two.MoveToPosition(0, pos2, 0, 0);
    state := 9;
  9:
    IF mover_two.MCTOPLC.SET.SetPos.x >= 240 AND mover_two.MCTOPLC.SET.SetPos.y >= 320 THEN
         state := 10;
    END_IF
  10:
    mover_one.MoveOnTrack(0, 0, 150.0, 0, 0);
    state := 11;
  11:
    IF mover_one.MCTOPLC.SETONTRACK.SetPos >= 150.0 THEN
         state := 12;
    END_IF

END_CASE

Befehl abschicken

10. Um den Befehl abzuschicken, müssen Sie die Mover, den Track und die Group nach dem END_CASE zyklisch mit seiner Update-Methode aufrufen:
mover_one.Update();
mover_two.Update();
track.Update();
group.Update();
feedback.Update();

Durch das Bauen der PLC wird ein Symbol des „PLC-Movers" erzeugt, welches anschließend mit der Mover-Instanz im MC-Projekt verknüpft werden kann.

1. Verwenden Sie zum Bauen den Pfad PLC > Untitled1 > Untitled1 Project > Build.
Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 2:
Anschließend kann der Planar-Mover im „MC Project“ (Doppelklick) mit dem Button Link To PLC… im Reiter Settings verknüpft werden.
Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 3:

Der Track und die Gruppe müssen separat verlinkt werden.

Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 4:
Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 5:
Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 6:

Projekt aktivieren und starten

1. Aktivieren Sie die Konfiguration über den Button in der Menüleiste Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 7:.
2. Versetzen Sie das TwinCAT-System in den Zustand „Run“ über den Button Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 8:.
3. Loggen Sie die PLC über den Button in der Menüleiste ein Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 9:.
4. Starten Sie die PLC über den Play-Button in der Menüleiste.

Die Mover stehen am Ende des Zustandsautomaten (state=12) auf der gewünschten Position.

Das Feedback zeigt den Kollisionsfehler an. Zusätzlich wird bei Kollisionsfehlern im Feedback das blockierende Objekt mit seiner OID angezeigt. Es wäre nun möglich, nachdem Mover zwei aus dem Weg gefahren wurde, Mover eins auf dem Track zu verfahren.

Beispiel „Planar-Mover mit Track und Gruppe anlegen und verfahren“ 10: