Einfaches Verfahren über die PLC
Nach dem Anlegen und Einrichten einer NC-Achse können Sie ein PLC-Projekt anlegen und die Achse über dieses verfahren.
GEFAHR | |
Verletzungsgefahr durch Bewegung von Achsen! Durch die Inbetriebnahme kommt es zu einer Bewegung von Achsen.
|
WARNUNG | |
Falsche Achsposition bei einer ersten Inbetriebnahme Ohne ein Referenzieren/Kalibrieren der Achsposition kann die angezeigte Achsposition von der tatsächlichen Achsposition abweichen.
|
PLC Projekt erstellen
- 1. Machen Sie einen Rechtsklick im Solution Explorer auf PLC > Add new Item…
- 2. Wählen Sie den Namen und den Speicherort im Dialog Add New Item.
- Das PLC-Projekt wurde erstellt.
PLC-Bibliothek einbinden
Die Tc2_MC2-Bibliothek enthält die PLCopen spezifizierten Motion-Control-Funktionsbausteine. Mit diesen können NC-Achsen administriert und Bewegungen programmiert werden.
- 1. Machen Sie einen Rechtsklick auf References > Add library…
- 2. Wählen Sie die Bibliothek Tc2_MC2 aus und bestätigen Sie mit OK.
- Die Bibliothek ist nun hinzugefügt und kann durch einen Doppelklick genauer betrachtet werden.
PLC-Programm schreiben
Alle notwendigen Datentypen und Funktionsbausteine für ein einfaches PLC-Motion-Programm sind in der Bibliothek Tc2_MC2 enthalten.
AXIS_REF
Je Achse wird eine Instanz vom Datentyp AXIS_REF benötigt, welche die Schnittstelle zwischen PLC und NC ist. Sie enthält alle Informationen zur Achse, die den MC-Funktionsbausteinen als Referenz mitgegeben werden.
MC_Power
Mit dem Funktionsbaustein MC_Power erfolgt die Freigabe einer Achse und dessen Bewegungsrichtungen.
MC_Reset
Mit dem Funktionsbaustein MC_Reset kann ein Fehler an einer Achse zurückgesetzt werden.
MC_MoveAbsolute
MC_MoveAbsolute ist ein einfacher Motion-Baustein, mit dem eine Achse auf eine absolute Zielposition positioniert werden kann.
Einfache Programmierung
- 1. Öffnen Sie im PLC-Projekt unter POUs das
MAIN(PRG)
. - 2. Fügen Sie folgende Deklarationen ins
MAIN(PRG)
ein.
PROGRAM MAIN
VAR
axis : AXIS_REF;
fbPower : MC_Power;
fbStop : MC_Stop;
fbReset : MC_Reset;
fbMoveAbsolute : MC_MoveAbsolute;
enableAxis : BOOL;
executeStop : BOOL;
executeReset : BOOL;
executeMove : BOOL;
override : LREAL := 100;
position : LREAL := ???; // ToDo: set to a reachable position
velocity : LREAL := ???; // ToDo: set velocity for move absolute
END_VAR
- 3. Fügen Sie folgenden Programmcode ins
MAIN(PRG)
ein.
fbPower(
Axis := axis,
Enable := enableAxis,
Enable_Positive := enableAxis,
Enable_Negative := enableAxis,
Override := override,
BufferMode := ,
Options := ,
Status => ,
Busy => ,
Active => ,
Error => ,
ErrorID =>);
fbStop(
Axis := axis,
Execute := executeStop, // The command is executed with a positive edge.
Deceleration := , // If the value is ≤ 0, the deceleration
// parameterized with the last Move command is used.
Jerk := , // If the value is ≤ 0, the jerk parameterized
// with the last Move command is used.
Options := ,
Done => ,
Busy => ,
Active => ,
CommandAborted => ,
Error => ,
ErrorID => );
fbReset(
Axis := axis,
Execute := executeReset, // The command is executed with a positive edge.
Done => ,
Busy => ,
Error => ,
ErrorID => );
fbMoveAbsolute(
Axis := axis,
Execute := executeMove, // The command is executed with a positive edge.
Position := position,
Velocity := velocity,
Acceleration := , // If the value is 0, the standard acceleration from
// the axis configuration in the System Manager is used.
Deceleration := , // If the value is 0, the standard deceleration from
// the axis configuration in the System Manager is used.
Jerk := , // If the value is 0, the standard jerk from the axis
// configuration in the System Manager is applied.
BufferMode := MC_BufferMode.MC_Buffered,
Options := ,
Done => ,
Busy => ,
Active => ,
CommandAborted => ,
Error => ,
ErrorId => );
- 4. Passen Sie für den Aufruf vom
fbMoveAbsolute
die Zielposition und die Dynamiken entsprechend Ihrer realen Achse an. - 5. Bauen Sie das PLC-Projekt.
- Die Instanz
axis
desAXIS_REF
sollte nun unter den PLC-Instanzen im Solution Explorer angezeigt werden. - 6. Verknüpfen Sie die PLC-Instanz des
AXIS_REF
mit der Achsinstanz der NC. - 7. Aktivieren Sie das TwinCAT-Projekt .
- 8. Loggen Sie die PLC ein und starten Sie diese , siehe TwinCAT-Projekt aktivieren.
- 9. Prüfen Sie, dass die beim
fbMoveAbsolute
vorgegebene Zielposition mit den vorgegebenen Dynamiken gefahrlos angefahren werden kann. Passen Sie diese bei Bedarf an. - 10. Wenn Sie sicher sind, dass keine Gefahr durch die beim
fbMoveAbsolute
vorgegebene Bewegung ausgeht, können Sie der Achse die Reglerfreigabe erteilen in dem Sie die VariableenableAxis
online aufTRUE
schreiben. - 11. Wenn die Reglerfreigabe erfolgreich (
fbPower.Active = TRUE
) war, kann anschließend mitexecuteMove
das Bewegungskommando aktiviert werden. - Über
fbStop.Execute = TRUE
kann bei Bedarf das Bewegungskommando vorzeitig gestoppt werden. - Im Falle eines Achsfehlers kann dieser über
fbReset.Execute := TRUE
zurück gesetzt werden.