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
absolutezu einem Sprung führen würde:SlavePosition = SlaveScale*CAM( MasterPosition ) + SlaveOffsetMöglicherweise müssen Sie beide Skalierungen anwenden, woraus dann folgt:
Slaveposition = SlaveScale*CAM( MasterScale*Masterposition + MasterOffset ) + SlaveOffsetDie 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_CamInmitBufferMode = MC_BUFFER_MODE.Buffered,StartMode = relative,MasterAbsolute = FALSEundSlaveAbsolute = FALSEstarten.Wichtig
Ab CODESYS SoftMotion Version 4.17.0.0
Start der neuen Kurvenscheibe über das Zuweisen von
MC_CamIn.CamTableIDauf die neue Kurvenscheibe (kein Neustart des FunktionsbausteinsMC_CamInerforderlich).Diese Variante wird empfohlen, wenn folgende Punkte auf Ihren Anwendungsfall zutreffen:
Alle folgenden Kurvenscheiben sollen relativ mit
MasterAbsolute = FALSEoderSlaveAbsolute = FALSEausgefü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 = FALSEerlä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 = TRUEmeldet.
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
SlaveOffsetvom 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
CAM1und dem Startpunkt vonCAM2dieselbe Geschwindigkeit (=1) und Beschleunigung (=0) zugeordnet ist.Sie können die zweite Kurvenscheibe im Modus
relativstarten, wenn Sie die Startposition des Slaves mit 0 definiert haben. Dabei muss die erste Kurvenscheibe jedoch im Modusnon-periodiclaufen. Anderenfalls, wennCAM1periodisch wäre, resultiert die Einstellungrelativein 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.