|
UNBEABSICHTIGTER GERÄTEBETRIEB |
Vergewissern Sie sich, dass die physische Position der Slaveachse am Anfang der Kurve der Position in der Kurvendefinition entspricht, um Positionssprünge zu vermeiden, wenn Sie den Slave-Startmodus Absolute verwenden. |
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. |
Dieser Funktionsbaustein aktiviert die Master-Slave-Kopplung mit dem Profil für eine elektronische Kurve, die in einer Kurventabelle angegeben ist.
Die Bibliothek unterstützt die folgenden Kurventypen (Bewegungsgesetze) über die CommonMotionTypes-Bibliothek (nähere Informationen finden Sie unter ST_MultiCam und ET_CamType im CommonMotionTypes-Bibliothekshandbuch):
oGerade
oEinfacher Sinus
oAllgemeines Polynom fünften Grades
oStandard-Polynom fünften Grades
ST_MultiCam ist die gleiche Datenstruktur, die von PacDrive3 verwendet wird und kann daher auch mit demselben Cam-Editor erstellt werden.
Der Funktionsbaustein stellt einen Rampenmechanismus (Ramp-in) zur Verfügung. Der Rampenmechanismus wird durch Setzen des Eingangs SlaveStartMode auf RampIn aktiviert und über die Eingänge VelocityOffsetRampIn, AccelerationOffsetRampIn, DecelerationOffsetRampIn und JerkOffsetRampIn konfiguriert. Die Richtung der Rampe (Ramp-in) einer Modulo-Achse kann über den Eingang RampInDirection festgelegt werden.
Mit dem Funktionsbaustein können Sie interpolierte Kurven implementieren. Zwei Arten von interpolierten Kurven sind verfügbar:
oLineare Interpolation
oInterpolation mit Poly5-Kurvengesetz
Die Kurve wird aus einem Array von Kurvenpunkten interpoliert. Um eine interpolierte Kurve zu verwenden, erstellen Sie in Ihrer Anwendung ein Array mit mindestens 3 und höchstens 10000 Punkten.
Lineare Interpolation:
Das Array beschreibt die Funktion der Kurve (Y = f(X)). Die Werte, die Sie für das Array angeben, sind die Y-Koordinaten der Kurvenpunkte. Diese Y-Werte werden in gleichen Abständen entlang der X-Achse verteilt. (Das bedeutet, dass die X-Koordinaten durch den Funktionsbaustein bestimmt werden). Die Array-Werte sind den einzelnen Punkten von links nach rechts in aufsteigender Reihenfolge zugeordnet, beginnend mit dem niedrigsten Array-Index als niedrigstem X-Wert.
Interpolation mit Poly5-Kurvengesetz:
Das Array beschreibt die Funktion der Kurve in Bezug auf die Master-Position (X), die Slaveposition (Y), die Geschwindigkeit am Kurvenpunkt (V, entspricht der Steigung) und die Beschleunigung am Kurvenpunkt (A, entspricht der Krümmung). Verwenden Sie für X streng monoton ansteigende Werte.
Um eine interpolierte Kurve zu starten, legen Sie den Eingang InterpolationPoints auf die Adresse des Arrays fest, in dem die Kurvenpunkte gespeichert sind. Wenn der Eingang InterpolationPoints ungleich Null an einer positiven Flanke des Eingangs Execute ist, startet der Funktionsbaustein MC_CamIn eine interpolierte Kurve als über den Eingang InterpolationParameter parametriert. Über den Eingang CamTableID bereitgestellte Daten werden ignoriert. Wenn der Eingang InterpolationPoints bei einer positiven Flanke des Eingang Execute gleich Null ist, startet der Funktionsbaustein die Kurve und ignoriert die über den Eingang InterpolationParameter bereitgestellten Daten.
Der Datentyp MC_Interpolation_Parameter wird zur Parametrierung der interpolierten Kurve verwendet. Es handelt sich um einen Alias der Struktur ST_Interpolation_Parameter der MotionInterface-Bibliothek. Parametrierung:
oudiNumCamPoints
Anzahl der mit Kurvenpunkten gefüllten Array-Einträge. Wenn das Array größer als die Anzahl der gefüllten Kurvenpunkte ist, werden zusätzliche Array-Elemente ignoriert.
olrMinMasterPosition und lrMaxMasterPosition
Bei einem Array zur linearen Interpolation wird der Positionsbereich des Masters über lrMinMasterPosition und lrMaxMasterPosition festgelegt. Der Kurvenpunkt im niedrigsten Array-Index entspricht lrMinMasterPosition. Der Kurvenpunkt im Array-Index, der über udiNumCamPoints festlegt wird, entspricht lrMaxMasterPosition. Die übrigen Kurvenpunkte sind gleichmäßig auf diese Master-Positionen verteilt. lrMinMasterPosition und lrMaxMasterPosition werden für die Poly5-Interpolation ignoriert.
oetInterpolationMode
Diese Enumeration gibt den Interpolationstyp an. Mögliche Werte:
oYArrayLinear (Die Kurve ist eine gerade Linie zwischen den einzelnen Kurvenpunkten.)
oXYVAArrayPoly5 (Polynom 5. Grades)
|
UNBEABSICHTIGTER GERÄTEBETRIEB |
oStellen Sie sicher, dass es sich bei der Anzahl der Interpolationspunkte, die Sie für den Eingang InterpolationPoints angeben, mit dem Wert übereinstimmt, den Sie für udiNumCamPoints der Struktur ST_InterpolationParameter angeben, die für den Eingang InterpolationParameter verwendet wird, wenn Sie eine interpolierte Kurve verwenden. oÜberprüfen Sie, ob die Werte für X der Struktur ST_InterpolationPointXYVA strikt monoton steigen, wenn Sie eine interpolierte Kurve mit dem Kurvengesetz Poly5 verwenden. oStellen Sie sicher, dass die Daten im Array der Kurvenpunkte nicht geändert werden, während die Kurve gepuffert oder ausgeführt wird. oStellen Sie sicher, dass keine Online-Änderungen ausgelöst werden, während die Kurve ausgeführt wird. |
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben. |
Weitere Informationen zur Parametrierung einer interpolierten Kurve über ST_InterpolationParameter finden Sie im MotionInterface-Bibliothekshandbuch.
Name der Bibliothek und Namespace
Name der Bibliothek: PLCopen MC part 1
Namespace: PLCO
Eingang |
Datentyp |
Beschreibung |
---|---|---|
Master |
Axis_Ref |
Verweis auf die Achse, für die der Funktionsbaustein ausgeführt werden soll. |
Slave |
Axis_Ref |
Verweis auf die Achse, für die der Funktionsbaustein ausgeführt werden soll. |
Execute |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. Eine steigende Flanke des Eingangs Execute startet den Funktionsbaustein. Der Funktionsbaustein setzt die Ausführung fort, und der Ausgang Busy wird auf TRUE gesetzt. Dieser Funktionsbaustein kann während seiner Ausführung neu gestartet werden. Die Zielwerte werden zum Zeitpunkt des Auftretens der steigenden Flanke durch die neuen Werte überschrieben. |
CamTableID |
MC_CAM_ID |
Der Bezeichner der zu verwendenden Kurventabelle. Der Datentyp MC_CAM_ID ist ein Alias von ST_MultiCam der CommonMotionTypes-Bibliothek. Detaillierte Informationen finden Sie im CommonMotionTypes-Bibliothekshandbuch. |
BufferMode |
Standardwert: Aborting Puffermodus. Mögliche Werte: oWert Aborting oWert Buffered Eine Beschreibung der Werte finden Sie unter MC_Buffer_Mode. |
|
Periodic |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. TRUE startet den periodischen Modus für MC_CamIn. In diesem Modus wird die Ausführung der Kurve kontinuierlich wiederholt. FALSE startet die Kurve in einem Single-Shot-Modus (einziges Vorkommnis). Die Slaveachsenposition der nächstgelegenen Flanke (erster oder letzter Kurvenpunkt) wird eingefroren, wenn sie außerhalb des definierten Bereichs liegt, d. h. die Slaveachse befindet sich im Stillstand (aber immer noch im Zustand SynchronizedMotion), wenn die Kurve außerhalb des definierten Bereichs liegt. HINWEIS: Unabhängig davon, ob eine Kurve im periodischen Modus oder im Single-Shot-Modus gestartet wird, signalisiert sie EndOfProfile, und ein gepufferter Bewegungsauftrag (sofern ein solcher Auftrag existiert) wird aktiv, wenn EndOfProfile erreicht ist (selbst, wenn die Kurve als periodisch definiert ist). |
MasterStartMode |
Standardwert: Absolute Mögliche Werte: oWert Absolute oWert Relative Eine Beschreibung der Werte finden Sie unter MC_Master_Start_Mode. |
|
SlaveStartMode |
Standardwert: Relative Mögliche Werte: oWert Relative oWert RampIn oWert Absolute Eine Beschreibung der Werte finden Sie unter MC_Slave Start_Mode. |
|
RampInDirection |
Richtung der Rampe (Ramp-in) für die Kopplung, wenn die Slaveachse eine Modulo-Achse ist. Die Richtung ist die Richtung des absoluten Ziels des Rampenmechanismus (Ramp-in) (dabei wird MC_CamIn als InSync betrachtet) von der Position der Slaveachse gesehen, nicht die Y-Periode des Kurvenprofils. Wenn die Slaveachse keine Modulo-Achse ist, haben die Werte für diesen Eingang keine Auswirkung. Standardwert: PositiveDirection Mögliche Werte: oWert PositiveDirection: oWert NegativeDirection oWert ShortestWay Eine Beschreibung der Werte finden Sie unter MC_Direction. |
|
VelocityOffsetRampIn |
LREAL |
Wertebereich: -2147483648...2147483647 Standardwert: 0 Geschwindigkeits-Offset für Rampenmechanismus (Ramp-in) in Anwendereinheiten. |
AccelerationOffsetRampIn |
LREAL |
Wertebereich: Jeder positive LREAL-Wert Standardwert: 0 Beschleunigungs-Offset für Rampenmechanismus (Ramp-in) in Anwendereinheiten. |
DecelerationOffsetRampIn |
LREAL |
Wertebereich: Jeder positive LREAL-Wert Standardwert: 0 Verzögerungs-Offset für Rampenmechanismus (Ramp-in) in Anwendereinheiten. |
JerkOffsetRampIn |
LREAL |
Wertebereich: Jeder positive LREAL-Wert und Null oPositive Werte: Ruck-Grenzwert (in Einheiten/Sek.3) (maximaler Ruck, mit dem die Beschleunigung geändert wird). oNull: Ruck-Grenzwert deaktiviert. Die Beschleunigung springt sofort von Null auf die maximale Beschleunigung (unendlicher Ruck). Standardwert: 0 |
InterpolationPoints |
POINTER TO BYTE |
Speicheradresse eines Arrays mit einer Länge von 3 bis 10.000. Array-Typ richtet sich nach dem Wert von etInterpolationMode für den Eingang InterpolationParameter, entweder ARRAY OF LREAL oder ARRAY OF ST_InterpolationPointXYVA. Wertebereich: 0 und 3 bis 10000 Standardwert: 0 HINWEIS: Der Wert muss derselbe sein wie für udiNumCamPoints von ST_InterpolationParameter, der vom Eingang InterpolationParameter verwendet wird. Detaillierte Informationen finden Sie im MotionInterface-Bibliothekshandbuch. |
InterpolationParameter |
MC_Interpolation_Parameter |
Verwendet MC_InterpolationParameter für die Parametrierung einer interpolierten Kurve. Weitere Informationen finden Sie unter MC_InterpolationParameter. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
InSync |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. oTRUE: Wenn die Achsen gekoppelt sind und die Kurve verarbeitet wurde. |
Busy |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. oFALSE: Der Funktionsbaustein wird nicht ausgeführt. oTRUE: Der Funktionsbaustein wird ausgeführt. |
Active |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. oFALSE: Der Funktionsbaustein steuert die Bewegung der Achse nicht. oTRUE: Der Funktionsbaustein steuert die Bewegung der Achse. |
CommandAborted |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. oFALSE: Die Ausführung wurde nicht abgebrochen. oTRUE: Die Ausführung wurde durch einen anderen Funktionsbaustein abgebrochen. |
Error |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. oFALSE: Der Funktionsbaustein wird ausgeführt. Während der Ausführung wurde kein Fehler erkannt. oTRUE: Bei der Ausführung des Funktionsbausteins ist ein Fehler aufgetreten. |
ErrorID |
ET_Result |
Diese Aufzählung stellt Diagnoseinformationen zur Verfügung. |
EndOfProfile |
BOOL |
Wertebereich: FALSE, TRUE. Standardwert: FALSE. TRUE: Nachdem das letzte Segment der Kurve abgeschlossen wurde. |
RampInDuration |
TIME |
Gibt die verbleibende Zeit an, bis das Rampenverfahren (Ramp-in) abgeschlossen ist und der Ausgang InSync auf TRUE gesetzt wurde. |
Im Gegensatz zu den Spezifikationen von PLCopen Motion Control Part 1, Version 2.0 stellt die Bibliothek stellt keinen separaten Funktionsbaustein MC_CamTableSelect zur Verfügung. Die Kurventabelle wird als Eingang von MC_CamIn angegeben.
Die Bibliothek stellt keinen separaten Funktionsbaustein MC_CamOut zur Verfügung. Ein ausgeführter Funktionsbaustein kann durch einen anderen Funktionsbaustein ersetzt werden.
Dieser Funktionsbaustein bietet eine hohe Flexibilität für absolute und relative Bewegungen. Beispielsweise besteht nicht notwendigerweise eine Beziehung zwischen dem Modulo eine Masterachse (oder Slaveachse) und der Anwendungsperiode einer Kurve in X-Richtung (oder Y-Richtung). Daher können Offset-Korrekturen im laufenden Betrieb vorgenommen werden, indem die Anwendungsperiode des Kurvenprofils leicht in X- oder Y-Richtung korrigiert wird. Dies wäre mit dem Achsen-Modulo nicht möglich, das nicht geändert werden kann, während die Achse einen Funktionsbaustein ausführt.
ErrorId |
Ursache |
Abhilfemaßnahme |
---|---|---|
AxisInErrorStop |
Der Funktionsbaustein kann nicht ausgeführt werden, weil ein Achsenfehler erkannt wurde und sich die Achse im Betriebszustand ErrorStop befindet, |
Stellen Sie sicher, dass sich die Achse nicht im Betriebszustand ErrorStop befindet, wenn versucht wird, einen neuen Funktionsbaustein zu starten. |
AxisInvalid |
Es wurde keine Achse für den Eingang Axis angegeben, oder die angegebene Achse unterstützt die erforderliche Funktion nicht, Für MC_Touchprobe und MC_AbortTrigger: Die angegebene Achse unterstützt die Erfassung nicht. |
Verbinden Sie die Achse, für die der Funktionsbaustein ausgeführt werden soll, mit dem Eingang Axis. Für MC_Touchprobe und MC_AbortTrigger: Verwenden Sie eine Achse, die die Erfassung unterstützt. |
AxisIsDisabled |
Der Funktionsbaustein kann nicht ausgeführt werden, da sich die Achse im Betriebszustand Disabled befindet. |
Stellen Sie sicher, dass sich die Achse nicht im Betriebszustand Disabled befindet, wenn versucht wird, einen neuen Funktionsbaustein zu starten. |
AxisIsStopping |
Der Funktionsbaustein kann nicht ausgeführt werden, da ein Funktionsbaustein MC_Stop aktiv ist und die Achse sich in Betriebszustand Stopping befindet. |
Stellen Sie sicher, dass sich die Achse nicht im Betriebszustand Stopping befindet, wenn versucht wird, einen neuen Funktionsbaustein zu starten. |
IfMotionCommandNotSupported |
Die angeschlossene Achse unterstützt nicht alle erforderlichen Funktionen. |
Stellen Sie sicher, dass die angeschlossene Achse die IF_MotionCommand-Schnittstelle der MotionInterface-Bibliothek implementiert. |
InvalidC |
Einer der Punkte der elektronischen Kurve weist einen ungültigen C-Wert auf. |
C ist der Wert des nächsten Kurvensegments der elektronischen Kurve. Zulässige Werte für C: 0 < C ≤ 1. |
InvalidCamTableID |
Die Definition der elektronischen Kurve ist ungültig. |
Stellen Sie sicher, dass die korrekte Kurventabelle für MC_CamIn über den Eingang CamTableID bereitgestellt wird. |
InvalidK |
Einer der Punkte der elektronischen Kurve weist einen ungültigen K-Wert auf. |
K ist die Krümmung der elektronischen Kurve an der Position, für die K definiert ist. Der Wert muss 0 sein für einen einfachen Sinus (ET_CamType = SimplSin) und für ein einfaches Polynom fünften Grades (ET_CamType = Poly5Com). |
InvalidLambda |
Einer der Punkte der elektronischen Kurve weist einen ungültigen Lambda-Wert auf. |
Lambda ist der Wert des nächsten Kurvensegments vor dem Knickpunkt. Zulässige Werte für Lambda: 0 < Lambda < 1. |
InvalidM |
Einer der Punkte der elektronischen Kurve weist einen ungültigen M-Wert auf. |
M ist die Neigung der elektronischen Kurve an der Position, für die M definiert ist. |
MasterAxisNotHomed |
Die Masterachse wurde nicht referenziert. |
Bei Ausführung von MC_CamIn mit mcAbsolute für MC_Master_Start_Mode ist eine referenzierte Masterachse erforderlich. |
MasterInvalid |
Das Objekt am Eingang Master ist ungültig. |
Geben Sie einen gültigen Verweis auf die Achse an, für die der Funktionsbaustein ausgeführt werden soll (Objekt aus der Gerätebaumstruktur, z. B. eine Achse oder ein Geber). |
NoBusCommunication |
Der Feldbus befindet sich nicht im Zustand Operational (Sercos: Phase 4). |
Stellen Sie sicher, dass sich der Feldbus im Zustand Operational (Sercos: Phase 4) an der steigenden Flanke des Execute-Eingangs und während der Ausführung befindet. |
OutOfMemory |
Nicht ausreichender Speicher für Bewegungsbefehl. |
Reduzieren Sie den von der Anwendung benötigten Speicher. |
UnexpectedReturnValue |
Nicht bestimmbarer Rückgabewert vom System. |
Wenden Sie sich an Ihren Schneider Electric Ansprechpartner. |