FB_VarioPosTp - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Ausführung einer Positionierbewegung mit Korrektur der Zielposition über ein Referenzsignal.
Mit dem Funktionsbaustein ist eine Bewegung (Positionierung) zu einer Position möglich. Dabei wird die Achse mit definierter Geschwindigkeit und Beschleunigung/Verzögerung bewegt. Das Geschwindigkeitsprofil der Bewegungsentwicklung ist standardmäßig ein Trapez.
Geschwindigkeitsprofil des Funktionsblock FB_VarioPosTp
Funktionsbaustein FB_VarioPosTP / i_etPosMode = 0 (endlos)
Funktionsbaustein FB_VarioPosTP / i_etPosMode= 1 (relativ)
Funktionsbaustein FB_VarioPosTP / i_etPosMode = 3 (absolut)
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xEnable |
BOOL |
Eine steigende Flanke FALSE -> TRUE aktiviert die POU, eine fallende Flanke TRUE -> FALSE deaktiviert sie. Wenn die POU abgeschaltet ist, führt sie keine Aktionen aus. |
i_ifDrive |
IF_Drive |
Eingang für die zu kontrollierende Achse |
i_ifTouchProbe |
IF_TouchProbe |
Digitaler Messeingang des PacDrive-Systems, in das das Referenzsignal eingespeist wird. |
i_xPosEdge |
BOOL |
TRUE: positive Flanke des Eingangssignals i_ifTouchProbe FALSE: negative Flanke des Eingangssignals i_ifTouchProbe |
i_xStart |
BOOL |
FALSE -> TRUE: Start der Bewegung nach eingestellten Parametern. |
i_xStop |
BOOL |
FALSE -> TRUE: Stoppt eine laufende Positionierung mit der Verzögerung i_lrDec. |
i_lrMaxDistance |
LREAL |
Fahrstrecke bzw. Ziel der Bewegung in Einheiten abhängig von i_etPosMode, falls kein gültiges Referenzsignal i_ifTouchProbe erkannt wird. |
i_etPosMode |
Für die Positionierung gibt es folgende Modi: oEndless Der Positionszähler wird vor der Positionierung auf null gesetzt. Dann wird auf den angegebenen Wert in i_lrMaxDistance positioniert. oRelative Die Positionierung erfolgt relativ zum Positionszähler. Das bedeutet, der Positionszähler wird vor der Positionierung nicht zurückgesetzt. oAbsolute Die Positionierung erfolgt absolut. Der Positionszähler wird vor der Positionierung nicht zurückgesetzt. |
|
i_lrOffset |
LREAL |
Offset zwischen Referenzsignal und Zielposition. |
i_lrLowLimit |
LREAL |
Untergrenze der Position relativ zur Startposition, an der das Referenzsignal gültig ist. |
i_lrHighLimit |
LREAL |
Obergrenze der Position relativ zur Startposition, an der das Referenzsignal gültig ist. |
i_lrVel |
LREAL |
Geschwindigkeit (Änderung der Position) in Einheiten/s. |
i_lrAcc |
LREAL |
Beschleunigung (Änderung der Geschwindigkeit) in Einheiten/s2. |
i_lrDec |
LREAL |
Verzögerung (Änderung der Geschwindigkeit) in Einheiten/s2. |
i_lrJerk |
LREAL |
Ruck (Änderung der Beschleunigung/Verzögerung) in Einheiten/s3. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xActive |
BOOL |
TRUE: Die POU ist eingeschaltet und muss weiter ausgeführt werden. FALSE: Die POU ist abgeschaltet. |
q_xReady |
BOOL |
TRUE: Die POU ist betriebsbereit und kann Anwenderbefehle entgegennehmen. FALSE: Die POU ist nicht bereit, Anwenderbefehle entgegenzunehmen. |
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung. |
|
q_etDiagExt |
POU-spezifischer, diagnosebezogener Ausgang. q_etDiag = ET_Diag.Ok -> Statusmeldung q_etDiag <> ET_Diag.Ok -> Diagnosemeldung |
|
q_sMsg |
STRING[80] |
Ereignisabhängige Meldung mit detaillierten Informationen zum Diagnosezustand. |
q_xMotionInstructionActive |
BOOL |
TRUE: Die Achse bearbeitet einen Bewegungsbefehl. Der Ausgang wird ebenfalls gesetzt, wenn der Bewegungsbefehl vorgibt, dass sich die Achse im Stillstand befindet. |
q_xInPosition |
BOOL |
TRUE: Die Achse befindet sich im Ziel (i_lrMaxDistance oder korrigierte Position über Referenzsignal erreicht). Wird die Positionierung unterbrochen, so wird q_xInPosition erst gesetzt, wenn das ursprünglich Ziel angefahren wird. |
q_xTPOk |
BOOL |
TRUE: q_xInPosition und gültiges Referenzsignal an i_ifTouchProbe erkannt. |
q_lrPosition |
LREAL |
Position ( RefPosition) der Achse. |
q_lrTPPosition |
LREAL |
Position der Achse beim Erkennen des gültigen Referenzsignals. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
9 |
Die POU ist deaktiviert. |
|
OK |
4 |
Die POU wird initialisiert. |
|
OK |
5 |
Warten auf Startbefehl. |
|
OK |
238 |
Warten auf Rücknahme des Stoppbefehls. |
|
OK |
167 |
Warten auf das Touchprobe-Signal. |
|
OK |
8 |
Warten, bis die POU deaktiviert ist. |
|
OK |
225 |
Warten, bis die Offsetposition erreicht wurde. |
|
OK |
245 |
Warten, bis die Positionierung begonnen hat. |
|
OK |
159 |
Warten, bis der Antrieb angehalten hat. |
|
DriveConditionInvalid |
10 |
Der Antrieb ist nicht bereit für Bewegungsbefehle. |
|
InputParameterInvalid |
12 |
Acc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
13 |
Dec ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
3 |
Verbundener Antrieb ist ungültig. |
|
InputParameterInvalid |
14 |
Jerk ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
163 |
Verbundener Touchprobe ist ungültig. |
|
InputParameterInvalid |
166 |
Touchprobe ist nicht aktiv. |
|
InputParameterInvalid |
165 |
Der angeschlossene Touchprobe ist virtuell. |
|
InputParameterInvalid |
11 |
Vel ist außerhalb des gültigen Bereichs. |
|
SercosConditionInvalid |
19 |
Der Sercos-Bus befindet sich nicht in Phase 4. |
|
UnexpectedProgramBehavior |
1 |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
|
UnexpectedProgramBehavior |
2 |
Die POU befindet sich in einem undefinierten Zustand. |
Enumerationsname: |
AccRange |
Enumerationswert: |
12 |
Beschreibung: |
Acc ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrAcc wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < i_lrAcc < Antriebsparameter MaxAcc Zulässiger Wertebereich für i_lrAcc, siehe Ausgang q_sMsg |
Enumerationsname: |
DecRange |
Enumerationswert: |
13 |
Beschreibung: |
Dec ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrDec wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < i_lrDec < Antriebsparameter MaxAcc Zulässiger Wertebereich für i_lrDec, siehe Ausgang q_sMsg |
Enumerationsname: |
Disabled |
Enumerationswert: |
9 |
Beschreibung: |
Die POU ist deaktiviert. |
Der Funktionsbaustein ist deaktiviert und führt keinerlei Aktionen aus. i_xEnable und q_xActive werden auf FALSE gesetzt.
Enumerationsname: |
DriveInvalid |
Enumerationswert: |
3 |
Beschreibung: |
Verbundener Antrieb ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
An den Eingang i_ifDrive wurde kein Antrieb angelegt. |
Dem Eingang i_ifDrive muss ein gültiger Antrieb übergeben werden. |
- |
Der angeschlossene Antrieb unterstützt nicht alle nötigen Funktionen. |
Entnehmen Sie dem Ausgang q_sMsg, welche Funktionen der Antrieb nicht unterstützt. Verwenden Sie einen Antrieb, der alle nötigen Funktionen unterstützt. |
Enumerationsname: |
DriveNotReady |
Enumerationswert: |
10 |
Beschreibung: |
Der Antrieb ist nicht bereit für Bewegungsbefehle. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Achse befindet sich nicht in Lageregelung. |
Überprüfen Sie den Zustand der Achse. |
- |
Der Parameter State des SERCOS-Busses ist nicht 4. |
Setzen Sie den SERCOS-Busparameter PhaseSet auf 4. Überprüfen Sie den SERCOS-Bus auf Fehler. |
Enumerationsname: |
Initializing |
Enumerationswert: |
4 |
Beschreibung: |
Die POU wird initialisiert. |
Der Funktionsbaustein wird initialisiert und ist noch nicht bereit, Befehle an seinen Eingängen entgegenzunehmen.
Der Funktionsbaustein meldet seine Betriebsbereitschaft mit dem Signal q_xReady = TRUE.
Enumerationsname: |
JerkRange |
Enumerationswert: |
14 |
Beschreibung: |
Jerk ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrJerk wurde ein ungültiger Wert angelegt. |
Am Eingang i_lrJerk muss ein Wert größer als 0 und kleiner oder gleich Gc_lrMaxJerk übergeben werden. |
Enumerationsname: |
SercosNotInPhaseFour |
Enumerationswert: |
19 |
Beschreibung: |
Der Sercos-Bus befindet sich nicht in Phase 4. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Parameter State des SERCOS-Busses ist nicht 4. |
Setzen Sie den SERCOS-Busparameter PhaseSet auf 4. Überprüfen Sie den SERCOS-Bus auf Fehler. |
Enumerationsname: |
TouchProbeInvalid |
Enumerationswert: |
163 |
Beschreibung: |
Verbundener Touchprobe ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Eingang i_ifTouchProbe ist nicht mit einem gültigen Touchprobe verbunden. |
Vergewissern Sie sich, dass am Eingang i_ifTouchProbe ein Touchprobe-Objekt übergeben wurde. |
Enumerationsname: |
TouchProbeNotActive |
Enumerationswert: |
166 |
Beschreibung: |
Touchprobe ist nicht aktiv. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Touchprobe-Funktionalität des Eingangs an einem Lexium 62 ist nicht aktiviert. |
Stellen Sie sicher, dass der Parameter IOx_Mode der Eingangsgruppe (LXM62IO_InOutTP) auf Touchprobe / 1 gesetzt ist. |
Enumerationsname: |
TouchProbeVirtual |
Enumerationswert: |
165 |
Beschreibung: |
Der angeschlossene Touchprobe ist virtuell. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der verwendete Touchprobe ist nicht real. |
Stellen Sie sicher, dass der Touchprobe nicht zu einem virtuellen Gerät gehört. (z. B. virtueller Lexium62) |
Enumerationsname: |
UnexpectedFeedback |
Enumerationswert: |
1 |
Beschreibung: |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Abarbeitung aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
Enumerationsname: |
UnknownState |
Enumerationswert: |
2 |
Beschreibung: |
Die POU befindet sich in einem undefinierten Zustand. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Abarbeitung aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
Enumerationsname: |
VelRange |
Enumerationswert: |
11 |
Beschreibung: |
Vel ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrVel wurde ein ungültiger Wert angelegt. |
Legen Sie einen Wert größer als 0 und kleiner als der Achsparameter i_lrVel bis MaxVel an. |
Enumerationsname: |
WaitForStart |
Enumerationswert: |
5 |
Beschreibung: |
Warten auf Startbefehl. |
Der Funktionsbaustein hat seine Initialisierung abgeschlossen und wartet auf eine positive Flanke am Eingang i_xStart, bevor er mit der Abarbeitung fortfährt.
Enumerationsname: |
WaitForStopRelease |
Enumerationswert: |
238 |
Beschreibung: |
Warten auf Rücknahme des Stoppbefehls. |
Der Eingang i_xStop muss FALSE sein, um fortzufahren.
Enumerationsname: |
WaitForTouchProbeSignal |
Enumerationswert: |
167 |
Beschreibung: |
Warten auf das Touchprobe-Signal. |
Es wird auf das Touchprobe-Signal gewartet, während die Achse bewegt wird.
Enumerationsname: |
WaitUntilDisabled |
Enumerationswert: |
8 |
Beschreibung: |
Warten, bis die POU deaktiviert ist. |
Der Funktionsbaustein ist deaktiviert. Alle internen Zustände werden zurückgesetzt und verbundene Resourcen (z. B. Achsen) werden in einen sicheren Zustand überführt. Der Funktionsbaustein muss weiterhin aufgerufen werden, bis er q_xActive = FALSE meldet.
Enumerationsname: |
WaitUntilOffsetReached |
Enumerationswert: |
225 |
Beschreibung: |
Warten, bis die Offsetposition erreicht wurde. |
Das Touchprobe-Signal wurde erkannt. Die Achse wird um den Offset weiterbewegt.
Enumerationsname: |
WaitUntilPositioningStarted |
Enumerationswert: |
245 |
Beschreibung: |
Warten, bis die Positionierung begonnen hat. |
Der Funktionsbaustein wartet darauf, dass die Achse mit ihrer Positionierung beginnt.
Enumerationsname: |
WaitUntilStopped |
Enumerationswert: |
159 |
Beschreibung: |
Warten, bis der Antrieb angehalten hat. |
Die Achse wird angehalten.