Beispiel „Planar Motion Komponenten: Kollision abwenden“
Anhand dieser kurzen Anleitung werden Sie ein TwinCAT-Projekt anlegen, das einen Planar-Mover enthält, dessen Fahrbefehl wegen einer Kollision mit der Planar-Environment abgelehnt wird.
Planar-Mover anlegen
- Siehe Konfiguration.
- 1. Legen Sie einen 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.
Planar-Environment anlegen
- 3. Legen Sie eine Planar-Environment an, siehe Konfiguration.
Planar-Group anlegen
- 4. Legen Sie eine Planar-Group an, siehe Konfiguration.
PLC anlegen
- Um die Geometrie der Environment zu erstellen und den Mover zu steuern, muss eine PLC angelegt werden, aus der der Nutzer Befehle an beide geben kann.
- 5. Fügen Sie dem PLC-Projekt die Bibliotheken Tc3_Physics und Tc3_Mc3PlanarMotion hinzu, siehe Bibliotheken einfügen.
- 6. Legen Sie über MAIN einen MC_PlanarMover und eine MC_PlanarEnvironment an.
- Diese repräsentieren den Mover und die Environment in der MC Configuration.



PROGRAM MAIN
VAR
mover : MC_PlanarMover;
environment : MC_PlanarEnvironment;
group : MC_PlanarGroup;
feedback : MC_PlanarFeedback;
state : UDINT;
target_position : PositionXYC;
END_VAR
Sie haben in diesem Beispiel eine Zustandsvariable für eine einfache Zustandsmaschine und eine Zielposition für einen einfachen Fahrbefehl des Movers angelegt. Damit kann anschließend in der MAIN ein Ablauf programmiert werden:
CASE state OF
0:
environment.AddStator(0,-120.0,-120.0);
environment.CreateBoundary(0);
state := 1;
1:
mover.Enable(0);
group.Enable(0);
state := 2;
2:
IF mover.MCTOPLC.STD.State = MC_PLANAR_STATE.Enabled AND
group.MCTOPLC_STD.State = MC_PLANAR_STATE.Enabled THEN
state := 3;
END_IF
3:
mover.AddToGroup(0,group);
environment.AddToGroup(0,group);
state := 4;
4:
IF mover.MCTOPLC.STD.GroupOID > 0 AND
environment.MCTOPLC_STD. GroupOID > 0 THEN
state := 5;
END_IF
5:
target_position.SetValuesXY(100, 100);
mover.MoveToPosition(feedback, target_position, 0, 0);
state := 6;
END_CASE
Dieser Programmcode aktiviert den Mover und erstellt eine Environment von einer Kachel, auf der der Mover steht. Dann wird versucht, den Mover zur Position x=100 und y=100 zu fahren.
Befehl abschicken
- 7. Um den Befehl abzuschicken und das Feedback zu überwachen, müssen Sie die Objekte nach dem END_CASE zyklisch mit ihren Update-Methoden aufrufen:
mover.Update();
environment.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.
- Anschließend kann der Planar-Mover im „MC Project“ (Doppelklick) mit dem Button Link To PLC… im Reiter Settings verknüpft werden.
- Danach kann die Planar-Environment über die folgenden Dialogfenster im „MC Project“ verlinkt werden.
- Die Gruppe wird analog verlinkt.




Projekt aktivieren und starten
- 1. Aktivieren Sie die Konfiguration über den Button in der Menüleiste
.
- 2. Versetzen Sie das TwinCAT-System in den Zustand „Run“ über den Button
.
- 3. Loggen Sie die PLC über den Button in der Menüleiste ein
.
- 4. Starten Sie die PLC über den Play-Button in der Menüleiste.
Der Mover steht am Ende des Zustandsautomaten (state=6) auf der gewünschten Position. Der Mover hat sich nicht bewegt, weil der Befehl abgelehnt wurde. Das Feedback zeigt einen Kollisionsfehler und in der ObjectInfo ist die Environment als Kollisionspartner angegeben.
