FB_HomeIn - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Referenzieren einer Achse auf ein Sensorsignal.
Eine Achse i_ifDrive wird auf die Referenzposition gefahren. Die Referenzposition wird mit Hilfe eines Sensors erkannt, der mit dem Eingang i_xSensor verdrahtet ist.
Die Referenzposition gilt als erkannt, wenn der Sensor in der angegebenen Richtung vom Zustand „nicht belegt“ in den Zustand „belegt“ wechselt.
Es werden vier Modi (Eingang i_etMode) für das Referenzieren unterstützt:
o....PosEdge...: i_xSensor = TRUE enspricht dem Zustand „Sensor belegt“ (Schließer-Kontakt)
o....NegEdge...: i_xSensor = FALSE enspricht dem Zustand „Sensor belegt“ (Öffner-Kontakt)
Beim Start der Referenzfahrt werden folgende Fälle unterschieden:
oFall 1: Der Eingang i_xSensor (Referenzsignal) zeigt beim Start der Referenzfahrt den Zustand „Sensor nicht belegt“.
Die Achse bewegt sich in die parametrierte Richtung, bis i_xSensor den Zustand „Sensor belegt“ meldet (Referenzsignal). Richtung und Definition des Zustandes „belegt“ sind durch den Eingang i_etMode definiert. Danach hält die Achse an folgender Position: „Position zum Zeitpunkt des Referenzsignals“ + i_lrOffset.
oFall 2: Der Eingang i_xSensor zeigt beim Start der Referenzfahrt den Zustand „Sensor belegt“.
Es werden zwei Fälle unterschieden:
oDer Eingang i_xRotativeSystem = FALSE, so fährt die Achse in die entgegengesetzte Richtung als durch den Eingang i_etMode definiert, bis am Eingang i_xSensor der Zustand „Sensor nicht belegt“ erkannt wird. Anschließend verfährt die Achse wie in Fall 1 beschrieben.
oDer Eingang i_xRotativeSystem = TRUE, so fährt die Achse in die Richtung, die durch den Eingang i_etMode definiert ist, bis der nächste entsprechende Wert von i_xSensor den Zustand „Sensor belegt“ liefert (Referenzsignal).
oFall 3: Der HW-Endschalter ist aktiv, in dessen Richtung sich die Achse bewegen soll (definiert durch den Eingang i_etMode).
Die Achse bewegt sich in die entgegengesetzte Richtung als durch den Eingang i_etMode definiert, bis am Eingang i_xSensor der Zustand „Sensor belegt“ erkannt wird. Anschließend verfährt die Achse wie in Fall 2 für i_xRotativeSystem = FALSE beschrieben.
oFall 4: Der der Bewegungsrichtung der Achse (definiert durch den Eingang i_etMode) entgegengesetzte HW-Endschalter ist aktiv.
Die Achse fährt sich frei und verfährt anschließend wie in Fall 1 beschrieben.
Trifft die Achse während der Referenzfahrt auf den HW-Endschalter, in dessen Richtung sich die Achse bewegen soll (definiert durch den Eingang i_etMode), so verhält sich die Achse nach Erreichen des HW-Endschalters anschließend wie in Fall 3 beschrieben.
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_xSensor |
BOOL |
Eingang für das Sensorsignal (Digitaleingang des PacDrive-Systems) |
i_etMode |
Referenziermodus |
|
i_lrOffset |
LREAL |
Offset zwischen Sensorsignal und Referenzpunkt. Ein Offset wird immer zur Position zum Zeitpunkt des Sensorsignals addiert. |
i_lrMaxTravel |
LREAL |
Maximaler Weg für das Referenzieren: Die Bewegungen in die Bewegungsrichtung werden vom Eingang i_etMode vorgegeben, bis der Hardwareendschalter aktiviert wird. Die maximale Entfernung wird nicht in Betracht gezogen, da für die folgende Bewegung in die entgegengesetzte Richtung die festgelegte maximale Entfernung zulässig ist. Für eine Erläuterung in grafischer Form von i_lrMaxTravel. |
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_xHwLimitNeg |
BOOL |
Negativer Hardwareendschalter (Digitaleingang des PacDrive-Systems). Schließer (NO-Kontakt). |
i_xHwLimitPos |
BOOL |
Positiver Hardwareendschalter (Digitaleingang des PacDrive-Systems). Schließer (NO-Kontakt). |
i_xRotativeSystem |
BOOL |
TRUE: Rotatives System. FALSE: Lineares System. |
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_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_lrPosition |
LREAL |
Position der Achse. |
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 |
216 |
Warten auf negative Flanke des Sensorsignals. |
|
OK |
218 |
Warten auf Sensorsignal. |
|
OK |
5 |
Warten auf Startbefehl. |
|
OK |
8 |
Warten, bis die POU deaktiviert ist. |
|
OK |
217 |
Warten, bis Endschalter freigefahren ist. |
|
OK |
159 |
Warten, bis der Antrieb angehalten hat. |
|
DriveConditionInvalid |
10 |
Der Antrieb ist nicht bereit für Bewegungsbefehle. |
|
HomingFailed |
275 |
HwLimitNeg ist nach wie vor aktiv. |
|
HomingFailed |
276 |
HwLimitPos ist nach wie vor aktiv. |
|
HomingFailed |
220 |
Es wurde kein Sensorsignal gefunden. |
|
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 |
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. |
|
LimitReached |
219 |
Negativer Endschalter wurde erreicht. |
|
LimitReached |
221 |
Positiver Endschalter wurde erreicht. |
|
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: |
HomingDone |
Enumerationswert: |
222 |
Beschreibung: |
Die Referenzierung wurde durchgeführt. |
Die Referenziersequenz wurde erfolgreich abgeschlossen.
Enumerationsname: |
HwLimitNegReached |
Enumerationswert: |
219 |
Beschreibung: |
Negativer Endschalter wurde erreicht. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der negative Hardwareendschalter wurde bei der Suche des Referenzsignals gefunden. |
Überprüfen Sie den Referenzsignal-Sensor. Überprüfen Sie das Signal am Eingang i_xSensor. Überprüfen Sie den Modus i_etMode. |
Enumerationsname: |
HwLimitNegStillActive |
Enumerationswert: |
275 |
Beschreibung: |
HwLimitNeg ist nach wie vor aktiv. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der negative Endschalter (i_xHwLimitNeg = TRUE) ist nach wie vor aktiv. Es wurde jedoch ein Sensorsignal erkannt oder die maximale Verfahrstrecke (i_lrMaxTravel) wurde erreicht. |
Überprüfen Sie das Signal am Eingang i_xHwLimitNeg. Überprüfen Sie den Wert für den maximalen Verfahrweg am Eingang i_lrMaxTravel. Stellen Sie sicher, dass der Sensor des negativen Endschalters nicht verschmutzt ist. |
Enumerationsname: |
HwLimitPosReached |
Enumerationswert: |
221 |
Beschreibung: |
Positiver Endschalter wurde erreicht. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der positive Hardwareendschalter wurde bei der Suche des Referenzsignals gefunden. |
Überprüfen Sie den Referenzsignal-Sensor. Überprüfen Sie das Signal am Eingang i_xSensor. Überprüfen Sie den Modus i_etMode. |
Enumerationsname: |
HwLimitPosStillActive |
Enumerationswert: |
276 |
Beschreibung: |
HwLimitPos ist nach wie vor aktiv. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der positive Endschalter (i_xHwLimitPos = TRUE) ist nach wie vor aktiv. Es wurde jedoch ein Sensorsignal erkannt oder die maximale Verfahrstrecke (i_lrMaxTravel) wurde erreicht. |
Überprüfen Sie das Signal am Eingang i_xHwLimitPos. Überprüfen Sie den Wert für den maximalen Verfahrweg am Eingang i_lrMaxTravel. Stellen Sie sicher, dass der Sensor des negativen Endschalters nicht verschmutzt ist. |
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: |
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: |
SensorNotFound |
Enumerationswert: |
220 |
Beschreibung: |
Es wurde kein Sensorsignal gefunden. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Das Sensorsignal wird nicht an den Funktionsbaustein gesendet. |
Stellen Sie sicher, dass das Signal des Sensors am Eingang i_xSensor des Funktionsbausteins anliegt. |
- |
Der Sensor sendet kein Signal. |
Prüfen Sie die Stromversorgung des Sensors. Vergewissern Sie sich, dass der Sensor nicht verdeckt ist. Stellen Sie sicher, dass der Sensor durch die Mechanik ausgelöst werden kann. Überprüfen Sie die elektrische Verbindung des Sensors und des Touchprobe-Eingangs. |
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_HomeInMode 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 i_lrVel bis MaxVel an. |
Enumerationsname: |
WaitForNegEdgeOfSensor |
Enumerationswert: |
216 |
Beschreibung: |
Warten auf negative Flanke des Sensorsignals. |
Der Sensoreingang wird auf eine negative Flanke überwacht.
Enumerationsname: |
WaitForSensorSignal |
Enumerationswert: |
218 |
Beschreibung: |
Warten auf Sensorsignal. |
Die Achse wird zum Referenzsensor gefahren.
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: |
WaitUntilLimitSwitchFree |
Enumerationswert: |
217 |
Beschreibung: |
Warten, bis Endschalter freigefahren ist. |
Die Achse wird vom Endschalter fortbewegt und zurück in ihren Verarbeitungsbereich.
Enumerationsname: |
WaitUntilStopped |
Enumerationswert: |
159 |
Beschreibung: |
Warten, bis der Antrieb angehalten hat. |
Die Achse wird angehalten.
Bezeichnung |
Beschreibung |
---|---|
Anmelden der Logger-Punkte der POU im Anwendungslogger |