FB_HomeTp - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.3.0

Übernommen aus

-

Implementiert

-

Versionen:

Aktuelle Version

Aufgabe

Referenzieren einer Achse auf ein Touchprobe-Signal.

Beschreibung

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.

Schnittstelle

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

ET_HomeTpMode

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

GD.ET_Diag

Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose.

Ein Wert ungleich ET_Diag.Ok entspricht einer Diagnosemeldung.

q_etDiagExt

ET_DiagExt

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.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Disabled

9

Die POU ist deaktiviert.

OK

HomingDone

222

Die Referenzierung wurde durchgeführt.

OK

Initializing

4

Die POU wird initialisiert.

OK

WaitForNegEdgeOfTouchProbe

230

Warten auf negative Flanke des Touchprobe-Signals.

OK

WaitForStart

5

Warten auf Startbefehl.

OK

WaitForTouchProbeSignal

167

Warten auf das Touchprobe-Signal.

OK

WaitUntilDisabled

8

Warten, bis die POU deaktiviert ist.

OK

WaitUntilLimitSwitchFree

217

Warten, bis Endschalter freigefahren ist.

OK

WaitUntilStopped

159

Warten, bis der Antrieb angehalten hat.

DriveConditionInvalid

DriveNotReady

10

Der Antrieb ist nicht bereit für Bewegungsbefehle.

HomingFailed

HwLimitNegStillActive

275

HwLimitNeg ist nach wie vor aktiv.

HomingFailed

HwLimitPosStillActive

276

HwLimitPos ist nach wie vor aktiv.

HomingFailed

TouchProbeNotFound

231

Es wurde kein Touchprobe gefunden.

InputParameterInvalid

AccRange

12

Acc ist außerhalb des gültigen Bereichs.

InputParameterInvalid

DecRange

13

Dec ist außerhalb des gültigen Bereichs.

InputParameterInvalid

DriveInvalid

3

Verbundener Antrieb ist ungültig.

InputParameterInvalid

JerkRange

14

Jerk ist außerhalb des gültigen Bereichs.

InputParameterInvalid

MaxTravelRange

215

MaxTravel ist außerhalb des gültigen Bereichs.

InputParameterInvalid

TouchProbeInvalid

163

Verbundener Touchprobe ist ungültig.

InputParameterInvalid

TouchProbeNotActive

166

Touchprobe ist nicht aktiv.

InputParameterInvalid

TouchProbeVirtual

165

Der angeschlossene Touchprobe ist virtuell.

InputParameterInvalid

UnknownMode

111

Mode ist nicht bestimmbar.

InputParameterInvalid

VelRange

11

Vel ist außerhalb des gültigen Bereichs.

LimitReached

HwLimitNegReached

219

Negativer Endschalter wurde erreicht.

LimitReached

HwLimitPosReached

221

Positiver Endschalter wurde erreicht.

UnexpectedProgramBehavior

UnexpectedFeedback

1

Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten.

UnexpectedProgramBehavior

UnknownState

2

Die POU befindet sich in einem undefinierten Zustand.

AccRange

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

DecRange

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

Disabled

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.

DriveInvalid

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.

DriveNotReady

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.

HomingDone

Enumerationsname:

HomingDone

Enumerationswert:

222

Beschreibung:

Die Referenzierung wurde durchgeführt.

Die Referenziersequenz wurde erfolgreich abgeschlossen.

HwLimitNegReached

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.

HwLimitNegStillActive

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.

HwLimitPosReached

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.

HwLimitPosStillActive

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.

Initializing

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.

JerkRange

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.

MaxTravelRange

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.

TouchProbeInvalid

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.

TouchProbeNotActive

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.

TouchProbeNotFound

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.

TouchProbeVirtual

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)

UnexpectedFeedback

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.

UnknownMode

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.

UnknownState

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.

VelRange

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.

WaitForNegEdgeOfTouchProbe

Enumerationsname:

WaitForNegEdgeOfTouchProbe

Enumerationswert:

230

Beschreibung:

Warten auf negative Flanke des Touchprobe-Signals.

Der Touchprobe-Eingang wird auf eine negative Flanke überwacht.

WaitForStart

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.

WaitForTouchProbeSignal

Enumerationsname:

WaitForTouchProbeSignal

Enumerationswert:

167

Beschreibung:

Warten auf das Touchprobe-Signal.

Es wird auf das Touchprobe-Signal gewartet, während die Achse bewegt wird.

WaitUntilDisabled

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 Funktions­baustein muss weiterhin aufgerufen werden, bis er q_xActive = FALSE meldet.

WaitUntilLimitSwitchFree

Enumerationsname:

WaitUntilLimitSwitchFree

Enumerationswert:

217

Beschreibung:

Warten, bis Endschalter freigefahren ist.

Die Achse wird vom Endschalter fortbewegt und zurück in ihren Verarbeitungsbereich.

WaitUntilStopped

Enumerationsname:

WaitUntilStopped

Enumerationswert:

159

Beschreibung:

Warten, bis der Antrieb angehalten hat.

Die Achse wird angehalten.

Methoden

Bezeichnung

Beschreibung

RegisterLoggerPoint

Anmelden der Logger-Punkte der POU im Anwendungslogger