Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden"

In diesem Beispiel wird ein Netzwerk aus Planar-Tracks auf beweglichen Planar-Parts erstellt.

Ausgangspunkt

Wir starten mit einer Solution, die eine fertige konfigurierte XPlanar Processing Unit enthält. Unter der XPlanar Processing Unit sind zwei Parts, ein Koordinatensystem und ein Mover angelegt. Unter dem ersten Part sind 8 Kacheln angelegt und unter dem zweiten Part 2 Kacheln.

Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 1:

Folgende geometrische Situation ist eingestellt: die beiden Parts liegen nebeneinander und Part 2 kann zwei Positionen einnehmen. Damit existieren zwei verschiedene Verbindungen zwischen den Parts, abhängig von den Part Positionen.

Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 2:

Ausgehend von dieser Konfiguration wird das Beispiel entwickelt. Die Erstellung der Ausgangssituation wird in der Dokumentation der XPlanar Processing Unit beschrieben.

Planar-Tracks und Planar-Environment anlegen

1. Legen Sie eine Planar-Environment an, siehe Konfiguration.
2. Stellen Sie den Initialparameter XPlanar processing unit OID auf die Objekt Id der XPlanar Processing Unit. Damit ist das Part feature für alle MC Configuration Objekte aktiviert (besonders für den angelegten Planar-Mover).
3. Fügen Sie drei Planar-Tracks über Groups > Add New Item… hinzu, siehe Konfiguration.
4. Stellen sie den Initialparameter „PartOID“ der drei Tracks auf die entsprechenden Parts. In diesem Beispiel ist der erste und zweite Track auf Part 1 und der dritte Track auf Part 2.

PLC anlegen

Siehe Vorabschritte PLC anlegen.
1. Legen Sie über MAIN die gewünschte Anzahl an Movern („MC_PlanarMover“) und Tracks („MC_PlanarTrack“) an.
Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 3:
Diese repräsentieren Mover und Tracks in der MC Configuration.
2. Legen Sie, wie nachfolgend gezeigt, drei Planar-Tracks, eine Zustandsvariable für eine Zustandsmaschine sowie zwei Hilfspositionen für die Tracks an.
PROGRAM MAIN
VAR
    track_one, track_two, track_three : MC_PlanarTrack;
    state : UDINT;
    pos1, pos2 : PositionXYC;
    part_one_oid : OTCID := 16#01010020;
    part_two_oid : OTCID := 16#01010030;
    start_options : ST_StartFromTrackAdvancedOptions;
    end_options : ST_EndAtTrackAdvancedOptions;
END_VAR
3. Programmieren Sie anschließend in der MAIN einen Ablauf.
Dieser Programmcode erstellt drei Tracks auf den Parts. Je nach aktiver Partposition sind die Tracks an verschiedenen Positionen verbunden. Zuerst wird Track 3 auf Part 2 erstellt (state=0). Danach wird Track 2 an Track 3 gestartet, wobei Part 2 in der oberen Position (index=2) ist. Track 2 endet auch an Track 3, allerdings ist Part 2 dafür in der unteren Position (index=1). Zuletzt wird Track 1 an Track 3 gestartet, Part 2 ist in der unteren Position (index=1), und beendet, Part 2 ist in der oberen Position (index=2).
CASE state OF
  0:
    pos1.SetValuesXYCReferenceId(0, 360, 0, part_two_oid);
    pos2.SetValuesXYCReferenceId(80, 360, 0, part_two_oid);
    track_three.AppendLine(0, pos1, pos2);
    pos1.SetValuesXYCReferenceId(120, 320, 0, part_two_oid);
    pos2.SetValuesXYCReferenceId(120, 160, 0, part_two_oid);
    track_three.AppendLine(0, pos1, pos2);
    pos1.SetValuesXYCReferenceId(80, 120, 0, part_two_oid);
    pos2.SetValuesXYCReferenceId(0, 120, 0, part_two_oid);
    track_three.AppendLine(0, pos1, pos2);
    state := 1;
  1:
    start_options.thisTrackPartPositionIndex := 1;
    start_options.otherTrackPartPositionIndex := 2;
    track_two.StartFromTrackAdvanced(0, track_three, start_options);
    pos1.SetValuesXYCReferenceId(440, 600, 0, part_one_oid);
    pos2.SetValuesXYCReferenceId(400, 600, 0, part_one_oid);
    track_two.AppendLine(0, pos1, pos2);
    pos1.SetValuesXYCReferenceId(360, 560, 0, part_one_oid);
    pos2.SetValuesXYCReferenceId(360, 400, 0, part_one_oid);
    track_two.AppendLine(0, pos1, pos2);
    pos1.SetValuesXYCReferenceId(400, 360, 0, part_one_oid);
    pos2.SetValuesXYCReferenceId(440, 360, 0, part_one_oid);
    track_two.AppendLine(0, pos1, pos2);
    end_options.thisTrackPartPositionIndex := 1;
    end_options.otherTrackPartPositionIndex := 1;
    track_two.EndAtTrackAdvanced(0, track_three, end_options);
    state := 2;
  2:
    start_options.thisTrackPartPositionIndex := 1;
    start_options.otherTrackPartPositionIndex := 1;
    track_one.StartFromTrackAdvanced(0, track_three, start_options);
    pos1.SetValuesXYCReferenceId(440, 120, 0, part_one_oid);
    pos2.SetValuesXYCReferenceId(160, 120, 0, part_one_oid);
    track_one.AppendLine(0, pos1, pos2);
    pos1.SetValuesXYCReferenceId(120, 160, 0, part_one_oid);
    pos2.SetValuesXYCReferenceId(120, 800, 0, part_one_oid);
    track_one.AppendLine(0, pos1, pos2);
    pos1.SetValuesXYCReferenceId(160, 840, 0, part_one_oid);
    pos2.SetValuesXYCReferenceId(440, 840, 0, part_one_oid);
    track_one.AppendLine(0, pos1, pos2);
    end_options.thisTrackPartPositionIndex := 1;
    end_options.otherTrackPartPositionIndex := 2;
    track_one.EndAtTrackAdvanced(0, track_three, end_options);
    state := 3;
END_CASE

Befehl abschicken

4. Um die Befehle abzuschicken, müssen Sie die Tracks nach dem END_CASE zyklisch mit ihrer Update-Methode aufrufen:
track_one.Update();
track_two.Update();
track_three.Update();

Durch das Bauen der PLC werden Symbole des „PLC-Movers" und „-Tracks“ erzeugt, welche anschließend mit der Mover- bzw. Track-Instanz im MC-Projekt verknüpft werden können.

1. Verwenden Sie zum Bauen den Pfad PLC > Untitled1 > Untitled1 Project > Build.
Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 4:
Die Tracks können nun über die folgenden Dialogfenster verlinkt werden.
Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 5:
Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 6:

Projekt aktivieren und starten

1. Aktivieren Sie die Konfiguration über den Button in der Menüleiste Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 7:.
2. Versetzen Sie das TwinCAT-System in den Zustand „Run“ über den Button Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 8:.
3. Loggen Sie die PLC über den Button in der Menüleiste ein Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 9:.
4. Starten Sie die PLC über den Play-Button in der Menüleiste.

Am Ende des Zustandsautomaten (state=3) sind die drei Tracks wie abgebildet konfiguriert. Der Start von Track 3 ist mit dem Ende von Track 2 an Position 2 verbunden und das Ende von Track 3 mit dem Start von Track 1 and Position 2 verbunden, wenn Part 2 in der unteren Position ist. In der oberen Position ist der Start von Track 3 mit dem Ende von Track 1 an Position 4 verbunden und das Ende von Track 3 mit dem Start von Track 2 and Position 1 verbunden. Track 2 und Track 3 sind gleich lang.

Beispiel „Planar-Tracks zu Netzwerk auf Planar-Parts verbinden" 10: