MC_CamIn

Funktionsbeschreibung

Warning_Color.gifWARNUNG

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 CommonMo­tionTypes-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.

Rampenmechanismus (Ramp-in)

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, Decelera­tionOffsetRampIn und JerkOffsetRampIn konfiguriert. Die Richtung der Rampe (Ramp-in) einer Modulo-Achse kann über den Eingang RampInDirection festgelegt werden.

Interpolierte Kurve

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)

Warning_Color.gifWARNUNG

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_Interpolation­Parameter finden Sie im MotionInterface-Bibliothekshandbuch.

Name der Bibliothek und Namespace

Name der Bibliothek: PLCopen MC part 1

Namespace: PLCO

Grafische Darstellung

G-SE-0075518.2.gif-high.gif

 

 

Eingänge

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

MC_Buffer_Mode

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

MC_Master_Start_Mode

Standardwert: Absolute

Mögliche Werte:

oWert Absolute

oWert Relative

Eine Beschreibung der Werte finden Sie unter MC_Master_Start_Mode.

SlaveStartMode

MC_Slave_Start_Mode

Standardwert: Relative

Mögliche Werte:

oWert Relative

oWert RampIn

oWert Absolute

Eine Beschreibung der Werte finden Sie unter MC_Slave Start_Mode.

RampInDirection

MC_Direction

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.

Ausgänge

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.

Hinweise

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.

Mögliche Werte von ET_Result

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.