FB_HomeTorque - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.3.0

Übernommen aus

-

Implementiert

-

Versionen:

Aktuelle Version

Aufgabe

Referenzieren einer Achse auf Anschlag.

Beschreibung

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.

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

ET_HomeTorqueMode

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

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

WaitForStart

5

Warten auf Startbefehl.

OK

WaitUntilDisabled

8

Warten, bis die POU deaktiviert ist.

OK

WaitUntilMaxTorqueReached

227

Warten, bis das maximale Drehmoment 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

MaxTorqueNotFound

228

MaxTorque 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

MaxTorqueRange

229

MaxTorque ist außerhalb des gültigen Bereichs.

InputParameterInvalid

MaxTravelRange

215

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

SercosConditionInvalid

SercosNotInPhaseFour

19

Der Sercos-Bus befindet sich nicht in Phase 4.

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

-

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)

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 Aufruf von 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 den 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

-

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.

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 das Supportteam ü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_lrMaxJerk übergeben werden.

MaxTorqueNotFound

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.

MaxTorqueRange

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.

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.

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.

SercosNotInPhaseFour

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.

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_HomeTorqueMode 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 MaxVel bis i_lrVel 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.

WaitUntilMaxTorqueReached

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.

Methoden

Bezeichnung

Beschreibung

RegisterLoggerPoint

Anmelden der Logger-Punkte der POU im Anwendungslogger