FB_HomeTorque - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Referenzieren einer Achse auf Anschlag.
Eine Achse i_ifDrive wird auf die Referenzposition gefahren. Die Achse wird über die Distanz i_lrMaxTravel bewegt. Währenddessen wird ihr aufgebrachtes Drehmoment überwacht. Übersteigt dieses für i_lrMaxTorque ms einen Wert von i_diTorqueTime Nm, wird die Achse um i_lrOffset zurückbewegt, angehalten und auf die Position i_lrHomePosition gesetzt. Es werden zwei Modi (Eingang i_etMode) für das Referenzieren unterstützt.
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_lrMaxTorque |
LREAL |
Über MaxTorque wird das Drehmoment (in Nm) an der Motorwelle des Antriebs begrenzt. |
i_diTorqueTime |
DINT |
Zeit (in ms), die das Drehmoment anstehen muss. |
i_lrLowLimit |
LREAL |
Untergrenze der Position relativ zur Startposition, an der das Drehmomentsignal gültig ist. |
i_lrHighLimit |
LREAL |
Obergrenze der Position relativ zur Startposition, an der das Drehmomentsignal gültig ist. |
i_etMode |
Referenziermodus oPosDirectionMaxTorque = positive Richtung, bis MaxTorque erreicht wird. oNegDirectionMaxTorque = negative Richtung, bis MaxTorque erreicht wird. |
|
i_lrOffset |
LREAL |
Offset zwischen Auftreffen auf den Anschlag und dem Referenzpunkt. Der Offset ist in entgegengesetzter Richtung zum „Fahren auf Anschlag“ vorzugeben. |
i_lrMaxTravel |
LREAL |
Maximaler Weg für das Suchen des Anschlags. |
i_lrHomePosition |
LREAL |
Referenzposition am Ende des Referenzierens. |
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. |
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 -> Diagnosemeldung |
|
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 |
Achse steht auf der Referenzposition. |
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 |
227 |
Warten, bis das maximale Drehmoment 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 |
228 |
MaxTorque 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 |
229 |
MaxTorque ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
215 |
MaxTravel ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
111 |
Mode ist nicht bestimmbar. |
|
InputParameterInvalid |
11 |
Vel ist außerhalb des gültigen Bereichs. |
|
SercosConditionInvalid |
19 |
Der Sercos-Bus befindet sich nicht in Phase 4. |
|
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 |
---|---|---|
- |
Die Methode Init() wurde noch nicht abgeschlossen. |
Rufen Sie Init() auf, bevor Sie zum ersten Mal Start() aufrufen. Wenn Sie Init aufgerufen haben, warten Sie, bis Init erfolgreich ausgeführt wurde. (Init.q_xDone = JA) |
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 Aufruf von 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 den 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 |
---|---|---|
- |
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. |
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 das Supportteam ü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_lrMaxJerk übergeben werden. |
Enumerationsname: |
MaxTorqueNotFound |
Enumerationswert: |
228 |
Beschreibung: |
MaxTorque wurde nicht erreicht. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Anschlag wurde nicht gefunden. |
Überprüfen Sie den Zustand des Anschlags. Prüfen Sie den Eingang i_lrMaxTorque. Prüfen Sie den Eingang i_lrMaxTravel. Überprüfen Sie den Zustand der Achse. |
Enumerationsname: |
MaxTorqueRange |
Enumerationswert: |
229 |
Beschreibung: |
MaxTorque ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrMaxTorque wurde ein ungültiger Wert angelegt. |
Dem Eingang i_lrMaxTorque muss ein Wert übergeben werden, der folgende Formel erfüllt: 0.0 < (i_lrMaxTorque / lrTorqueConstant * 10000000.0 / lrMaxDrivePeakCurrent / lrLimCurrent) < 100.0 mit lrLimCurrent := lrUserDrivePeakCurrent * 100,0 / lrMaxDrivePeakCurrent wobei lrTorqueConstant, lrMaxDrivePeakCurrent und lrUserDrivePeakCurrent Parameter der Achse sind. |
Enumerationsname: |
MaxTravelRange |
Enumerationswert: |
215 |
Beschreibung: |
MaxTravel ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrMaxTravel wurde ein ungültiger Wert angelegt. |
Dem Eingang i_lrMaxTravel muss ein Wert größer als 0 übergeben werden. |
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: |
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: |
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. |
Am Eingang i_etMode muss ein Element der Enumeration ET_HomeTorqueMode angelegt 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. |
Legen Sie einen Wert größer als 0 und kleiner als der Achsparameter MaxVel bis i_lrVel 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: |
WaitUntilMaxTorqueReached |
Enumerationswert: |
227 |
Beschreibung: |
Warten, bis das maximale Drehmoment erreicht wurde. |
Die Achse wird zum Anschlag bewegt, bis das eingestellte Drehmoment überschritten wird oder die maximale Fahrstrecke zurückgelegt wurde.
Bezeichnung |
Beschreibung |
---|---|
Anmelden der Logger-Punkte der POU im Anwendungslogger |