FB_HomeForce - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.3.4.0 |
Übernommen aus |
- |
Implementiert |
- |
Referenzieren einer Linearachse auf Anschlag
Eine Linearachse i_ifDrive wird auf die Referenzposition gefahren. Die Achse wird über die Distanz i_lrMaxTravel bewegt und währenddessen ihre aufgebrachte Kraft überwacht. Übersteigt diese für i_diForceTime ms einen Wert von i_lrMaxForce N, wird die Achse um i_lrOffset zurückbewegt, angehalten und auf die Position i_lrHomePosition gesetzt.
Für das Referenzieren werden zwei Modi (Eingang i_etMode) unterstützt.
Informationen zur Ausführung asynchroner Methoden finden Sie hier.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xEnable |
BOOL |
Eine steigende Flanke FALSE -> TRUE aktiviert die POU, eine fallende Flanke TRUE -> FALSE deaktiviert die POU. Wenn die POU abgeschaltet ist, führt sie keine Aktionen aus. |
i_ifDrive |
IF_Drive |
Eingang für die zu kontrollierende Achse |
i_lrMaxForce |
LREAL |
Kraft, bei der der Referenzpunkt erkannt wird. Gleichzeitig wird die Bewegung der Achse auf diese Kraft begrenzt. |
i_diForceTime |
DINT |
Zeit in ms, die die Kraft andauern muss, damit der Referenzpunkt als gültig erkannt wird. |
i_lrLowLimit |
LREAL |
Untergrenze der Position (relativ zur Startposition), an der das Drehmomentsignal gültig ist. |
i_etMode |
Referenziermodus oPosDirectionMaxForce = positive Richtung, bis MaxForce erreicht wird. oNegDirectionMaxForce = negative Richtung, bis MaxForce erreicht wird. |
|
i_lrOffset |
LREAL |
Positionierung, die durchgeführt wird, wenn der Referenzpunkt erreicht wurde. Das Offset ist in entgegengesetzter Richtung zum „Fahren auf Anschlag“ vorzugeben. |
i_lrMaxTravel |
LREAL |
Maximaler Weg für das Suchen des Anschlags. Es wird der Betrag des eingetragenen Werts gebildet. |
i_lrHomePosition |
LREAL |
Position der Achse nach Abschluss des Referenzierens |
i_lrVel |
LREAL |
Geschwindigkeit in Einheiten/s. (0< i_lrVel< Drive.MaxVel) |
i_lrAcc |
LREAL |
Beschleunigung in Einheiten/s2. (0< i_lrAcc< Drive.MaxAcc) |
i_lrDec |
LREAL |
Verzögerung in Einheiten/s2. (0< i_lrDec< Drive.MaxAcc) |
i_lrJerk |
LREAL |
Ruck (Änderung der Beschleunigung bzw. Verzögerung) in Einheiten/s3. i_lrJerk >> 0. |
i_xStart |
BOOL |
Startet die Referenzierung. |
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 -> Fehlermeldung |
|
q_sMsg |
STRING[80] |
Ereignisabhängige Meldung mit detaillierten Informationen zum Diagnosezustand. |
q_lrPosition |
LREAL |
Referenzposition der Achse. |
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, z. B. aufgrund eines stehenden Masters. |
q_xHomeOk |
BOOL |
Die Achse hält an der Referenzposition an. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
9 |
Die POU ist deaktiviert. |
|
OK |
222 |
Die Referenzierung wurde durchgeführt. |
|
OK |
4 |
Die POU wird initialisiert. |
|
OK |
5 |
Warten auf Startbefehl. |
|
OK |
8 |
Warten, bis die POU deaktiviert ist. |
|
OK |
313 |
Warten, bis die maximale Kraft erreicht wurde. |
|
ControllerConditionInvalid |
100 |
Die Steuerung wird nicht unterstützt. |
|
DriveConditionInvalid |
10 |
Der Antrieb ist nicht bereit für Bewegungsbefehle. |
|
ExecutionAborted |
290 |
Init wurde noch nicht beendet. |
|
ExecutionAborted |
297 |
Ein Kaltstart der Steuerung ist notwendig. |
|
ExecutionAborted |
289 |
Es wurden keine asynchronen Tasks erzeugt. |
|
HomingFailed |
315 |
MaxForce wurde nicht erreicht. |
|
InputParameterInvalid |
12 |
Acc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
288 |
Der Wert von IF_Async ist ungültig. |
|
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 |
314 |
MaxForce ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
111 |
Mode ist nicht bestimmbar. |
|
InputParameterInvalid |
11 |
Vel ist außerhalb des gültigen Bereichs. |
|
UnexpectedProgramBehavior |
284 |
Es war nicht möglich, einen asynchronen Job an eine Task zu übergeben. |
|
UnexpectedProgramBehavior |
285 |
Die Aufforderung für die Schnittstelle ist fehlgeschlagen. |
|
UnexpectedProgramBehavior |
287 |
Das Erzeugen einer Semaphore ist fehlgeschlagen. |
|
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: |
AsyncAddWasNotSuccessful |
Enumerationswert: |
284 |
Beschreibung: |
Es war nicht möglich, einen asynchronen Job an eine Task zu übergeben. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Verarbeitung aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
Enumerationsname: |
AsyncInitNotFinished |
Enumerationswert: |
290 |
Beschreibung: |
Init wurde noch nicht beendet. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Methode PDL.G_ifAsync.Init() wurde noch nicht beendet. |
Rufen Sie die Methode Init() auf, bevor Sie zum ersten Mal FB_HomeForce aufrufen. Wenn Sie die Methode Init aufgerufen haben, warten Sie, bis Init erfolgreich ausgeführt wurde. (Init.q_xDone = TRUE) |
Enumerationsname: |
AsyncInvalid |
Enumerationswert: |
288 |
Beschreibung: |
Der Wert von IF_Async ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_ifAsync wurde kein gültiger Wert übergeben. |
Stellen Sie sicher, dass der Wert am Eingang i_ifAsync <> 0. |
ColdResetOfControllerNecessary
Enumerationsname: |
ColdResetOfControllerNecessary |
Enumerationswert: |
297 |
Beschreibung: |
Ein Kaltstart der Steuerung ist notwendig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Gc_udiNumOfAsyncTasks wurde geändert. |
Ein Kaltstart der Steuerung und der Aufruf von PDL.G_ifAsync.Init() ist notwendig. |
Enumerationsname: |
ControllerInvalid |
Enumerationswert: |
100 |
Beschreibung: |
Die Steuerung wird nicht unterstützt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Steuerung liefert nicht die erforderlichen Voraussetzungen. |
Siehe Ausgang q_sMsg für nähere Einzelheiten. |
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 |
---|---|---|
- |
Am 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 Funktion 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 Parameter des SERCOS-Busses PhaseSet auf 4. Überprüfen Sie den SERCOS-Bus auf Fehler. |
Enumerationsname: |
HomingDone |
Enumerationswert: |
222 |
Beschreibung: |
Die Referenzierung wurde durchgeführt. |
Die Referenziersequenz wurde erfolgreich abgeschlossen.
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: |
InterfaceCastFailed |
Enumerationswert: |
285 |
Beschreibung: |
Die Aufforderung für die Schnittstelle ist fehlgeschlagen. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Verarbeitung aufgetreten. |
Bitte informieren Sie Ihren Schneider Electric-Ansprechpartner über diesen Fehler. |
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_lr_MaxJerk übergeben werden. |
Enumerationsname: |
MaxForceNotFound |
Enumerationswert: |
315 |
Beschreibung: |
MaxForce wurde nicht erreicht. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Anschlag wurde nicht gefunden. |
Überprüfen Sie den Zustand des Anschlags. Prüfen Sie den i_lrMaxForce-Eingang. Prüfen Sie den i_lrMaxTravel-Eingang. Überprüfen Sie den Zustand der Achse. |
Enumerationsname: |
MaxForceRange |
Enumerationswert: |
314 |
Beschreibung: |
MaxForce ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrMaxForce wurde ein ungültiger Wert angelegt. |
Dem Eingang i_lrMaxForce muss ein Wert übergeben werden, der folgende Formel erfüllt: 0,0 < (i_lrMaxForce / lrForceConstant * 10000000.0 / lrMaxDrivePeakCurrent / lrLimCurrent) < 100,0 mit lrLimCurrent := lrUserDrivePeakCurrent * 100,0 / lrMaxDrivePeakCurrent mit lrForceConstant, lrMaxDrivePeakCurrent und lrUserDrivePeakCurrent als Parameter der Achse. |
Enumerationsname: |
NoAsyncTasksCreated |
Enumerationswert: |
289 |
Beschreibung: |
Es wurden keine asynchronen Tasks erzeugt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Gc_udiNumOfAsyncTasks = 0 |
Weisen Sie Gc_udiNumOfAsyncTasks einen Wert > 0 und <= 10 zu. |
Enumerationsname: |
SemaphoreMeCreateFailed |
Enumerationswert: |
287 |
Beschreibung: |
Das Erzeugen einer Semaphore ist fehlgeschlagen. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es ist ein Fehler in der internen Verarbeitung aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
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: |
UnknownMode |
Enumerationswert: |
111 |
Beschreibung: |
Mode ist nicht bestimmbar. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_etMode wurde ein ungültiger Wert angelegt. |
Der Eingang i_etMode muss mit einem Element der Enumeration ET_HomeForceMode belegt werden. |
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. |
Wenden 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: |
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: |
WaitUntilMaxForceReached |
Enumerationswert: |
313 |
Beschreibung: |
Warten, bis die maximale Kraft erreicht wurde. |
Die Achse wird zum Anschlag bewegt, bis die eingestellte Kraft überschritten wird oder die maximale Fahrstrecke zurückgelegt wurde.
Bezeichnung |
Beschreibung |
---|---|
Anmelden der Logger-Punkte der POU im Anwendungslogger |