FB_HomeForce - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.3.4.0

Übernommen aus

-

Implementiert

-

Aufgabe

Referenzieren einer Linearachse auf Anschlag

Beschreibung

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.

Schnittstelle

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

ET_HomeForceMode

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

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 -> 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.

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

WaitForStart

5

Warten auf Startbefehl.

OK

WaitUntilDisabled

8

Warten, bis die POU deaktiviert ist.

OK

WaitUntilMaxForceReached

313

Warten, bis die maximale Kraft erreicht wurde.

ControllerConditionInvalid

ControllerInvalid

100

Die Steuerung wird nicht unterstützt.

DriveConditionInvalid

DriveNotReady

10

Der Antrieb ist nicht bereit für Bewegungsbefehle.

ExecutionAborted

AsyncInitNotFinished

290

Init wurde noch nicht beendet.

ExecutionAborted

ColdResetOfControllerNecessary

297

Ein Kaltstart der Steuerung ist notwendig.

ExecutionAborted

NoAsyncTasksCreated

289

Es wurden keine asynchronen Tasks erzeugt.

HomingFailed

MaxForceNotFound

315

MaxForce wurde nicht erreicht.

InputParameterInvalid

AccRange

12

Acc ist außerhalb des gültigen Bereichs.

InputParameterInvalid

AsyncInvalid

288

Der Wert von IF_Async ist ungültig.

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

MaxForceRange

314

MaxForce ist außerhalb des gültigen Bereichs.

InputParameterInvalid

UnknownMode

111

Mode ist nicht bestimmbar.

InputParameterInvalid

VelRange

11

Vel ist außerhalb des gültigen Bereichs.

UnexpectedProgramBehavior

AsyncAddWasNotSuccessful

284

Es war nicht möglich, einen asynchronen Job an eine Task zu übergeben.

UnexpectedProgramBehavior

InterfaceCastFailed

285

Die Aufforderung für die Schnittstelle ist fehlgeschlagen.

UnexpectedProgramBehavior

SemaphoreMeCreateFailed

287

Das Erzeugen einer Semaphore ist fehlgeschlagen.

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

AsyncAddWasNotSuccessful

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.

AsyncInitNotFinished

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)

AsyncInvalid

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.

ControllerInvalid

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.

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

-

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.

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 Parameter des SERCOS-Busses 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.

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.

InterfaceCastFailed

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.

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_lr_MaxJerk übergeben werden.

MaxForceNotFound

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.

MaxForceRange

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.

NoAsyncTasksCreated

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.

SemaphoreMeCreateFailed

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.

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.

Der Eingang i_etMode muss mit einem Element der Enumeration ET_HomeForceMode belegt 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.

Wenden Sie einen Wert größer als 0 und kleiner als der Achsparameter i_lrVel bis MaxVel an.

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.

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.

WaitUntilMaxForceReached

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.

Methoden

Bezeichnung

Beschreibung

RegisterLoggerPoint

Anmelden der Logger-Punkte der POU im Anwendungslogger