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 Kurvenscheibe auf einen linearen Antrieb umsetzen. Das Beispiel zeigt weiterhin, wie Sie die Nockenfunktion anwenden können.
Fügen Sie im Gerätebaum unter Applikation eine Kurvenscheibe mit dem Namen Example ein. Öffnen Sie die Kurvenscheibe im Editor.
Definieren Sie in der Registerkarte Nocken eine Nocke:
X: 8.0
positiver Durchlauf: Invertieren
negativer Durchlauf: Invertieren
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.
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.
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
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
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
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
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable TableSelect zu. Der Baustein dient der Auswahl der Kurvenscheibe.
Belegen Sie die Eingänge wie folgt:
Master: Virtual
Slave: Drive
CamTable: Example
Execute TRUE
Periodic TRUE
MasterAbsolute TRUE
SlaveAbsolute TRUE
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
Fügen Sie einen Baustein ein und weisen Sie ihm die Variable Tappet zu. Der Baustein überprüft die Stellung des Nockenschalters.
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.
Im Beispielprojekt sehen Sie eine Visualisierung, mit deren Hilfe Sie die einzelnen Bausteine und die Position der Achsen überprüfen können.
Fügen Sie den Aufruf des Programms MOTION_PRG zur Task MainTask hinzu.
Laden Sie das Projekt auf die Steuerung und starten Sie es.