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.

  • Achten Sie darauf, dass weder Sie noch andere durch die Bewegung geschädigt werden, z. B. durch die Einhaltung eines geeigneten Sicherheitsabstandes.
  • Führen Sie keine Aktion aus, deren Folgen Sie nicht abschätzen können.

WARNUNG

Falsche Achsposition bei einer ersten Inbetriebnahme

Ohne ein Referenzieren/Kalibrieren der Achsposition kann die angezeigte Achsposition von der tatsächlichen Achsposition abweichen.

  • Führen Sie ein Homing durch, um die korrekte Istposition anhand eines Referenzsignals zu ermitteln.

PLC Projekt erstellen

1. Machen Sie einen Rechtsklick im Solution Explorer auf PLC > Add new Item…
Einfaches Verfahren über die PLC 1:
2. Wählen Sie den Namen und den Speicherort im Dialog Add New Item.
Einfaches Verfahren über die PLC 2:
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…
Einfaches Verfahren über die PLC 3:
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 des AXIS_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 Einfaches Verfahren über die PLC 4:.
8. Loggen Sie die PLC ein Einfaches Verfahren über die PLC 5: und starten Sie diese Einfaches Verfahren über die PLC 6:, 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 Variable enableAxis online auf TRUE schreiben.
11. Wenn die Reglerfreigabe erfolgreich (fbPower.Active = TRUE) war, kann anschließend mit executeMove 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.