Kurvenscheiben-Antrieb mit Hilfe einer virtuellen Zeitachse steuern

 

Sehen Sie hierzu das Beispielprojekt PLCopenMulti.project im Installationsverzeichnis von CODESYS.

Das folgende Beispiel demonstriert, wie Sie eine periodische Kurven­scheibe auf einen linearen Antrieb umsetzen. Das Beispiel zeigt weiterhin, wie Sie die Nockenfunktion anwenden können.

  1. Fügen Sie im Gerätebaum unter Applikation eine Kurvenscheibe mit dem Namen Example ein. Öffnen Sie die Kurvenscheibe im Editor.

  2. Definieren Sie in der Registerkarte Nocken eine Nocke:

    • X: 8.0

    • positiver Durchlauf: Invertieren

    • negativer Durchlauf: Invertieren

  3. Fügen Sie im Gerätebaum unter SoftMotion General Axis Pool einen virtuellen Antrieb mit dem Namen Drive ein. Wählen Sie für diese Achse den Achstyp Modulo mit einem Modulowert von 360.

  4. Fügen Sie einen weiteren virtuellen Antrieb mit dem Namen Virtual ein. Wählen Sie für diese Achse den Achstyp Modulo mit einem Modulowert von 10.

  5. Erstellen Sie ein Programm MOTION_PRG in der Sprache CFC.

    PROGRAM MOTION_PRG
    VAR
           power1, power2: MC_Power;
           TableSelect: MC_CamTableSelect;
           CamIn: MC_CamIn;
           Tappet: SMC_GetTappetValue;
           MoveVirtual: MC_MoveVelocity;
    END_VAR

  6. Fügen Sie einen Baustein ein und weisen Sie ihm die Variable power1 zu. Der Baustein dient dem Einschalten des Antriebs von Drive.

    Belegen Sie die Eingänge wie folgt:

    • Axis: Drive

    • Enable: TRUE

    • bRegulatorOn: TRUE

    • bDriveStart TRUE

  7. Fügen Sie einen Baustein ein und weisen Sie ihm die Variable power2 zu. Der Baustein dient dem Einschalten des Antriebs von Virtual.

    Belegen Sie die Eingänge wie folgt:

    • Axis: Virtual

    • Enable: TRUE

    • bRegulatorOn: TRUE

    • bDriveStart TRUE

  8. Fügen Sie einen Baustein ein und weisen Sie ihm die Variable MoveVirtual zu. Der Baustein dient der Bewegung des virtuellen Masters.

    Belegen Sie die Eingänge wie folgt:

    • Axis: Virtual

    • Execute: power2.Status

    • Velocity: 2

    • Acceleration 10

    • Deceleration 10

    • Direction positive

  9. Fügen Sie einen Baustein ein und weisen Sie ihm die Variable TableSelect zu. Der Baustein dient der Auswahl der Kurven­scheibe.

    Belegen Sie die Eingänge wie folgt:

    • Master: Virtual

    • Slave: Drive

    • CamTable: Example

    • Execute TRUE

    • Periodic TRUE

    • MasterAbsolute TRUE

    • SlaveAbsolute TRUE

  10. Fügen Sie einen Baustein ein und weisen Sie ihm die Variable CamIn zu. Der Baustein setzt die ausgewählte Kurvenscheibe um.

    Belegen Sie die Eingänge wie folgt:

    • Master: Virtual

    • Slave: Drive

    • Execute power1.Status

    • MasterOffset: 0

    • SlaveOffset: 0

    • MasterScaling: 1

    • SlaveScaling: 1

    • StartMode: absolute

    • CamTableID: TableSelect.CamTableID

    • VelocityDiff: 1

    • Acceleration: 1

    • Deceleration: 1

    • TappetHysteresis: 1

  11. Fügen Sie einen Baustein ein und weisen Sie ihm die Variable Tappet zu. Der Baustein überprüft die Stellung des Nockenschal­ters.

    Belegen Sie die Eingänge wie folgt:

    • Tappets: CamIn.Tappets

    • iID: 1

    • bInitValue FALSE

    • bSetInitValueAtReset: FALSE

    ⇒ Die Nocke ist als invertierende Nocke definiert. Deshalb wird sie alle 10 Sekunden ihren Wert ändern.

  12. Im Beispielprojekt sehen Sie eine Visualisierung, mit deren Hilfe Sie die einzelnen Bausteine und die Position der Achsen über­prüfen können.

  13. Fügen Sie den Aufruf des Programms MOTION_PRG zur Task MainTask hinzu.

  14. Laden Sie das Projekt auf die Steuerung und starten Sie es.

Siehe auch