Umschalten zwischen Kurvenscheiben
Grundsätzlich können Sie jederzeit zwischen verschiedenen Kurvenscheiben umschalten. Dabei sollten Sie jedoch Folgendes beachten:
Im Kurvenscheibeneditor ist die Position des Slaves eindeutig definiert als Funktionswert der Kurvenscheibenfunktion. Diese Funktion ist auf dem Masterwertebereich definiert und kann folgendermaßen ausgedrückt werden:
SlavePosition = CAM( MasterPosition )
Da die aktuelle Position des Masterantriebs üblicherweise vom Masterwertebereich abweicht, müssen Sie die Masterposition auf den Definitionsbereich der Kurvenscheibenfunktion skalieren, um ein gültiges Argument darzustellen:
SlavePosition = CAM( MasterScale*MasterPosition + MasterOffset )
In analoger Weise müssen Sie den Funktionswert (die Slaveposition) skalieren, wenn der Start der Kurvenscheibe im Modus
absolute
zu einem Sprung führen würde:SlavePosition = SlaveScale*CAM( MasterPosition ) + SlaveOffset
Möglicherweise müssen Sie beide Skalierungen anwenden, woraus dann folgt:
Slaveposition = SlaveScale*CAM( MasterScale*Masterposition + MasterOffset ) + SlaveOffset
Die geeigneten Werte für Skalierungs- und Offsetparameter können von Periode zu Periode variieren.
Ein Umschalten zwischen Kurvenscheiben kann auf drei Arten erfolgen:
Die zweite Kurvenscheibe über eine zweite Instanz von
MC_CamIn
mitBufferMode = MC_BUFFER_MODE.Buffered
,StartMode = relative
,MasterAbsolute = FALSE
undSlaveAbsolute = FALSE
starten.Wichtig
Ab CODESYS SoftMotion Version 4.17.0.0
Start der neuen Kurvenscheibe über das Zuweisen von
MC_CamIn.CamTableID
auf die neue Kurvenscheibe (kein Neustart des FunktionsbausteinsMC_CamIn
erforderlich).Diese Variante wird empfohlen, wenn folgende Punkte auf Ihren Anwendungsfall zutreffen:
Alle folgenden Kurvenscheiben sollen relativ mit
MasterAbsolute = FALSE
oderSlaveAbsolute = FALSE
ausgeführt werden.Die neue Kurvenscheibe soll exakt am Ende der vorherigen beginnen.
Es werden keine weiteren Parameter (beispielsweise
SlaveOffset
) verändert.Wichtig
Der Sprung, der im nachfolgenden Beispiel für periodische Kurvenscheiben und
SlaveAbsolute = FALSE
erläutert wird, gilt nicht für diese Variante, da exakt an die Endpositionen der vorherigen Kurvenscheibe angesetzt wird.Die neue Kurvenscheibe wird nur exakt an das Ende der vorherigen Kurvenscheibe angesetzt, wenn die Umschaltung zur neuen Kurvenscheibe im selben Zyklus erfolgt, in dem die vorherige Kurvenscheibe
EndOfProfile = TRUE
meldet.
Start der neuen Kurvenscheibe über einen Neustart des Funktionsbausteins
MC_CamIn
.Diese Variante wird empfohlen, wenn für die korrekte Funktion der neuen Kurvenscheibe Parameter verändert werden müssen (beispielsweise
SlaveOffset
vom nachfolgenden Beispiel). Es gelten die Einschränkungen des nachfolgenden Beispiels.
In folgendem Beispiel wird von Kurvenscheibe CAM1
zu CAM2
gewechselt:
CAM1
besteht aus einem Polynom 5. Grades gefolgt von zwei Geradenstücken.

CAM2
besteht aus zwei Geradenstücken gefolgt von einem Polynom 5. Grades.

Beim Umschalten zwischen den beiden Kurvenscheiben sollten Sie Folgendes berücksichtigen:
Um Sprünge zu vermeiden, sollen die Werte von Geschwindigkeit und Beschleunigung am Endpunkt der ersten Kurvenscheibe mit den Werten am Anfangspunkt der zweiten Kurvenscheibe übereinstimmen. Im Beispiel ist diese Bedingung erfüllt, da dem Endpunkt von
CAM1
und dem Startpunkt vonCAM2
dieselbe Geschwindigkeit (=1) und Beschleunigung (=0) zugeordnet ist.Sie können die zweite Kurvenscheibe im Modus
relativ
starten, wenn Sie die Startposition des Slaves mit 0 definiert haben. Dabei muss die erste Kurvenscheibe jedoch im Modusnon-periodic
laufen. Anderenfalls, wennCAM1
periodisch wäre, resultiert die Einstellungrelative
in einem Sprung.

Die Vergrößerung zeigt den Übergang von CAM1
zu CAM2
. Die blauen Linien markieren die Auswertungen der Kurvenscheibenfunktionen an den Masterpositionen x1
und x2
.
Wir betrachten zunächst den ungünstigen periodic
Fall:
| |
| Der Aufruf bedingt eine Auswertung der Kurvenscheibe an der Masterposition |
| Beim folgenden Aufruf des Moduls liegt die Masterposition |
| Wechsel zur neuen Kurvenscheibe |
| Zweite Auswertung an der Masterposition |
Wählen Sie den Modus non-periodic
um Sprünge zu vermeiden:
| |
| Der Aufruf bedingt eine Auswertung der Kurvenscheibe an der Masterposition |
| Beim folgenden Aufruf des Moduls liegt die Masterposition |
| Wechsel zur neuen Kurvenscheibe. |
| Zweite Auswertung an der Masterposition |
Wenn Sie die Kurvenscheiben im Modus absolute
starten wollen, müssen Sie auf eine passende Startposition des Slaves achten. Falls der Wertebereich des Masters gerade mit der Periode des Slaves übereinstimmt, wird der Wechsel zwischen den Kurvenscheiben keinerlei Komplikationen mit sich bringen, unabhängig davon, ob die Kurvenscheiben periodisch sind oder nicht.
In obigem Beispiel können Sie CAM2
im Modus absolute
starten, wenn die Perioden von Master und Slave mit dem Masterwertebereich von CAM2
übereinstimmen, also jeweils 360° betragen.
Ansonsten, beispielsweise wenn die Periode des Slaves 270°
beträgt (angedeutet durch die hellblauen Linien), ist die Option absolute
nicht zulässig, ohne weitere Maßnahmen zu treffen.

In diesem Fall befindet sich der Slave beim Wechsel von CAM1
zu CAM2
bei 90°. Der Start von CAM2
im Modus absolute
bewirkt seinen Sprung auf 0° (angezeigt durch graue Gerade).
Der Sprung kann allerdings verhindert werden, indem Sie den Offset des Slaves auf den passenden Wert von 90° setzen.