FB_HomeTp - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Referenzieren einer Achse auf ein Touchprobe-Signal.
Eine Achse i_ifDrive wird auf die Referenzposition gefahren. Die Referenzposition wird mit Hilfe eines Touchprobe-Sensors erkannt, der mit dem Eingang i_ifTouchProbe 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_ifTouchProbe.Value = TRUE enspricht dem Zustand „Sensor belegt“ (Schließer-Kontakt)
o....NegEdge...: i_ifTouchProbe.Value = FALSE enspricht dem Zustand „Sensor belegt“ (Öffner-Kontakt)
Beim Start der Referenzfahrt werden folgende Fälle unterschieden:
oFall 1: Der Eingang i_ifTouchProbe zeigt beim Start der Referenzfahrt den Zustand „Sensor nicht belegt“.
Die Achse bewegt sich in die parametrierte Richtung, bis das entsprechende Touchprobe-Signal den Zustand „Sensor belegt“ meldet (Referenzsignal). Richtung und Definition des Zustands „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_ifTouchProbe 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 ein Touchprobe-Signal den Zustand „Sensor nicht belegt“ erkennt. 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 das nächste entsprechende Touchprobe-Signal den Zustand „Sensor belegt“ liefert (Referenzsignal).
oFall 3: Der HW-Endschalter ist aktiv, in dessen Richtung sich die Achse bewegen soll (Richtung ist definiert durch den Eingang i_etMode).
Die Achse bewegt sich in die entgegengesetzte Richtung als durch den Eingang i_etMode definiert, bis ein Touchprobe-Signal den Zustand „Sensor belegt“ liefert. 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_ifTouchProbe |
IF_TouchProbe |
Digitaler Messeingang des PacDrive-Systems, in das das Referenzsignal eingespeist wird. |
i_etMode |
Referenziermodus |
|
i_lrOffset |
LREAL |
Offset zwischen Sensorsignal und Referenzpunkt. |
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 grafische Beschreibung 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 |
Rotatives (endloses) 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_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 |
230 |
Warten auf negative Flanke des Touchprobe-Signals. |
|
OK |
5 |
Warten auf Startbefehl. |
|
OK |
167 |
Warten auf das Touchprobe-Signal. |
|
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 |
231 |
Es wurde kein Touchprobe 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 |
163 |
Verbundener Touchprobe ist ungültig. |
|
InputParameterInvalid |
166 |
Touchprobe ist nicht aktiv. |
|
InputParameterInvalid |
165 |
Der angeschlossene Touchprobe ist virtuell. |
|
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. |
|
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. |
- |
Beim Freifahren vom positiven Endschalter wurde der negative Endschalter ausgelöst. |
Überprüfen Sie die Sensoren. Überprüfen Sie die Signale an den Eingängen i_xHwLimitNeg und i_xHwLimitPos. |
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. Allerdings wurde der maximale Verfahrweg (i_lrMaxTravel) 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. |
- |
Beim Freifahren vom negativen Endschalter wurde der positive Endschalter ausgelöst. |
Überprüfen Sie die Sensoren. Überprüfen Sie die Signale an den Eingängen i_xHwLimitNeg und i_xHwLimitPos. |
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. Allerdings wurde der maximale Verfahrweg (i_lrMaxTravel) 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: |
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. |
Überprüfen Sie, 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-Funktion 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: |
TouchProbeNotFound |
Enumerationswert: |
231 |
Beschreibung: |
Es wurde kein Touchprobe gefunden. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es wurde der falsche Touchprobe an den Funktionsbaustein übergeben. |
Prüfen Sie die Zugehörigkeit des übergebenen Touchprobes mithilfe des physischen Sensors. |
- |
Der Sensor sendet kein Signal. |
Prüfen Sie die Spannungsversorgung des Sensors. Stellen Sie sicher, dass der Sensor nicht bedeckt ist. Vergewissern Sie sich, dass der Sensor durch die Mechanik ausgelöst werden kann. Prüfen Sie die elektrischen Anschlüsse des Sensors und des Touchprobe-Eingangs. |
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: |
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_HomeTpMode 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: |
WaitForNegEdgeOfTouchProbe |
Enumerationswert: |
230 |
Beschreibung: |
Warten auf negative Flanke des Touchprobe-Signals. |
Der Touchprobe-Eingang wird auf eine negative Flanke überwacht.
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: |
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: |
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 |