FB_HomeAbs - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.7.0

Übernommen aus

-

Implementiert

-

Versionen:

Aktuelle Version

Aufgabe

Schreiben der Geberposition einer Achse, sodass die gewünschte Referenz zur Achsposition (Axis.EncoderPosition) mit FB_HomeSetPos im Modus ET_HomeSetPosMode.RestorePos­FromAxisencoder wiederhergestellt werden kann.

Beschreibung

Der Geber einer Servoachse wird beschrieben. Anschließend wird die Achsposition (Axis.RefPosition) gemäß der Konfiguration des Funktionsbausteins eingestellt. Zum Schluss entspricht die Achsposition dem Wert des Eingangs i_lrHomePosition unter Berücksichtigung aller Eingangsparameter.

Nach dem Einschalten des Funktionsbausteins wird der Referenzierprozess durch eine positive Flanke am Eingang i_xExecute gestartet. Der Funktionsbaustein fordert die Deaktivierung der Lageregelung der Achse über den Ausgang q_xDisableDrive an. Im Anschluss daran werden die Deaktivierung und der Stillstand der Achse vom Funktionsbaustein überprüft. Nach der Überprüfung wird die Position in den Geber geschrieben und die Achsposition gemäß den Eingangsparametern eingestellt.

Der Funktionsbaustein unterscheidet zwischen zwei Anwendungsfällen (periodische und nicht periodische Anwendung). Die Auswahl der Anwendungsfälle erfolgt über einen gültigen Wert am Eingang i_IrUserPeriod des Funktionsbausteins.

Hintergrundinformationen zur Verwendung des FB_HomeAbs

Nach dem einmaligen Schreiben des Geberwerts mit dem Funktionsbaustein FB_HomeAbs – und somit der Festlegung einer mechanischen Referenz – zu einem späteren Zeitpunkt (mit FB_HomeSetPos im Modus ET_HomeSetPosMode.RestorePosFromAxisencoder) kann die gewünschte Referenz zur Achsposition (Axis.RefPosition) aus der aktuellen Geberposition (Axis.EncoderPosition) wiederhergestellt werden.

PERIODISCHE Anwendungen

In diesem Anwendungsfall werden die EncoderPosition und die RefPosition der Achse innerhalb der anwenderdefinierten Periode eingestellt. Nach dem Referenzieren befindet sich die Achsposition innerhalb des Intervalls [0; i_lrUserPeriod].

Bedingungen

Am Eingang i_lrUserPeriod muss ein gültiger Wert definiert werden. Das bedeutet, der Wert in periodischen Anwendungen muss größer als null und ein Ganzzahlteiler der maximal möglichen Geberposition sein (Geberperiode).

 EncoderPeriod = Axis.EncoderRange * Axis.FeedConstant * Axis.GearIn / Axis.GearOut

Informationen zum Wertebereich von i_lrHomePosition

Werte, die nicht dem Intervall [0; i_lrUserPeriod] entstammen, können ebenfalls am Eingang i_IrHomePosition definiert werden. Diese Werte werden auf das Intervall zurückgerechnet.

Beispiel für i_lrUserPeriod= 360 und Axis.Direction = TRUE

Funktionsbaustein

Objekt in der Steuerungskonfiguration

i_lrHomePosition

q_lrPosition

Axis.RefPosition

Axis.EncoderPosition

10

10

10

10

370

10

10

10

730

10

10

10

-10

350

350

350

-370

350

350

350

Informationen zur Richtung der Achse

Die vorherige Tabelle beschreibt die Werte, die sich aus einer Motordrehung nach rechts ergeben (Axis.Direction= TRUE). Diese Drehrichtung ist die Standardeinstellung der Achse. Wenn die Drehrichtung zu links geändert wird (Axis.Direction= FALSE), dann muss in Betracht gezogen werden, dass die Geberposition der Achsposition entgegen wirkt. Für die nachstehende Tabelle ergeben sich somit folgende Änderungen:

Beispiel für i_lrUserPeriod= 360 und Axis.Direction = FALSE

Funktionsbaustein

Objekt in der Steuerungskonfiguration

i_lrHomePosition

q_lrPosition

Axis.RefPosition

Axis.EncoderPosition

10

10

10

350

370

10

10

350

730

10

10

350

-10

350

350

10

-370

350

350

10

Informationen zu i_lrAbsEncOffset in periodischen Anwendungen

In diesem Anwendungsfall wird der Wert am Eingang i_lrAbsEncOffset ignoriert.

NICHT-PERIODISCHE Anwendungen

Der Eingangsparameter i_lrAbsEncOffset in nicht-periodischen Anwendungen ermöglicht sogar das Schreiben/Einstellen negativer Werte. Dennoch wird die maximal zulässige Geberposition (Geberperiode) berechnet:

 EncoderPeriod = Axis.EncoderRange * Axis.FeedConstant * Axis.GearIn / Axis.GearOut

Nach dem Referenzieren liegt der Wertebereich für die Achsposition im Intervall [-i_lrAbsEn­cOffset; EncoderPeriod -i_lrAbsEncOffset].

Bedingungen

Am Eingang i_lrAbsEncOffset muss ein gültiger Wert definiert werden. Das bedeutet, der Wert muss größer als null sein. In diesem Fall muss der Wert des Eingangs i_lrUserPeriod = 0.

Informationen zum Wertebereich von i_lrHomePosition

Werte, die nicht dem Intervall [-i_lrAbsEncOffset; EncoderPeriod -i_lrAbsEn­cOffset] entstammen, können ebenfalls am Eingang i_IrHomePosition definiert werden. Diese Werte werden auf das Intervall zurückgerechnet.

Beispiel für:

oi_lrAbsEncOffset = 60

oAxis.EncoderRange = 10

oAxis.FeedConstant = 360

oAxis.GearIn = 1

oAxis.GearOut = 1

oAxis.Direction = TRUE

Aus diesem Grund gilt eine Geberperiode von 3600 und das folgende Intervall für die Achsposition [-60; 3540].

Funktionsbaustein

Objekt in der Steuerungskonfiguration

i_lrHomePosition

q_lrPosition

Axis.RefPosition

Axis.EncoderPosition

10

10

10

10

3539

3539

3539

3539

3541

-59

-59

3541

3599

-1

-1

3599

3610

10

10

10

7210

10

10

10

-10

-10

-10

3590

-59

-59

-59

3541

-61

3539

3539

3539

Informationen zur Richtung der Achse

Die vorherige Tabelle beschreibt die Werte, die sich aus einer Motordrehung nach rechts ergeben (Axis.Direction= TRUE). Diese Drehrichtung ist die Standardeinstellung der Achse. Wenn die Drehrichtung zu links geändert wird (Axis.Direction= FALSE), dann muss in Betracht gezogen werden, dass die Geberposition der Achsposition entgegen wirkt. Für die nachstehende Tabelle ergeben sich somit folgende Änderungen:

Beispiel für:

oi_lrAbsEncOffset = 60

oAxis.EncoderRange = 10

oAxis.FeedConstant = 360

oAxis.GearIn = 1

oAxis.GearOut = 1

oAxis.Direction = NEIN

Funktionsbaustein

Objekt in der Steuerungskonfiguration

i_lrHomePosition

q_lrPosition

Axis.RefPosition

Axis.EncoderPosition

10

10

10

3590

3539

3539

3539

61

3541

-59

-59

59

3599

-1

-1

1

3610

10

10

3590

7210

10

10

3590

-10

-10

-10

10

-59

-59

-59

59

-61

3539

3539

61

HINWEIS: Ausnahme - Virtuelle Achse!

Die Anwendung dieser POU ist nur bei realen Achsen sinnvoll. Bei virtuellen Achsen gibt der Funktionsbaustein die Diagnosemeldung q_etDiag = InputParameterInvalid in Verbindung mit q_etDiagExt = DriveInvalid aus.

HINWEIS: Die POU ändert die Zykluszeitüberwachung!

Die POU erhöht im aktivierten Zustand die Einstellungen der Zykluszeitüberwachung relativ.

Die POU setzt diese relative Erhöhung selbständig zurück, wenn sie nicht mehr benötigt wird.

Hierzu muss die POU ordnungsgemäß aufgerufen werden.

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_lrHomePosition

LREAL

Positionswert (Axis.RefPosition) der Achse, den diese an der Position zum Zeitpunkt i_xExecute FALSE -> TRUE haben soll (zurückgerechnet in den Bereich i_lrUserPeriod oder EncoderPeriod).

Der Positionswert i_lrHomePosition muss sich nicht innerhalb des Bereichs (0 ... EncoderPeriod oder i_lrUserPeriod) befinden. Die Axis.RefPosition befindet sich jedoch nach erfolgreichem Durchlauf der POU im Bereich i_lrUserPeriod bzw. EncoderPeriod, siehe Anwendungsfälle oben.

i_lrAbsEncOffset

LREAL

Absolutwert, durch den die Achsposition bei nicht periodischen Anwendungen im negativen Bereich rekonstruiert werden kann.

Dieser Wert muss für 'i_lrUserPeriod = 0' größer als 0 sein.

i_lrUserPeriod

LREAL

Maschinenperiode

> 0: Periodische Anwendung: Nach dem Referenzieren liegt die Axis.RefPosition im Bereich (i_lrHomePos MOD i_lrUserPeriod). i_lrAbsEncOffset wird nicht berücksichtigt.

= 0: Nicht periodische Anwendung: Nach dem Referenzieren liegt die Axis.RefPosition im Bereich - i_lrAbsEncOffset ... (EncoderPeriod - i_lrAbsEncOffset).

i_xExecute

BOOL

Ist i_xEnable = TRUE, so kann mit diesem Eingang der Referenziervorgang gestartet werden. Wurde der Referenziervorgang einmal gestartet, ist es nicht möglich, mit i_xExecute TRUE -> FALSE den Vorgang wieder abzubrechen.

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_xBusy

BOOL

TRUE: Referenziervorgang aktiv, die POU muss weiter ausgeführt werden.

q_xDone

BOOL

TRUE: Referenziervorgang abgeschlossen.

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_xDisableDrive

BOOL

TRUE: Anforderung Lageregelung deaktivieren

FALSE: Anforderung Lageregelung aktivieren

q_lrPosition

LREAL

Axis.RefPosition der Achse

q_xHomeOk

BOOL

TRUE: Achse ist referenziert

Beispiele

Beispiele mit Single-Turn-Geber (Geberperiode standardisiert auf 0 ... 360°)

i_lrHomePos

i_lrAbsEncOffset

i_lrUserPeriod

Achsposition gemäß FB_HomeAbs oder FB_HomeSetPos

Fahrbereich

50

1

0

50

-1 ... 359 (Delta 360)

1000

100

0

-80

-100 ... 260 (Delta 360)

0

100

0

0

-100 ... 260 (Delta 360)

-1000

100

0

80

-100 ... 260 (Delta 360)

1000

0

360

280

0 ... 360

-1000

0

360

80

0 ... 360

1

0

36

1

0 ... 36

35

0

36

35

0 ... 36

54

0

36

18

0 ... 36

-54

0

36

18

0 ... 36

-55

0

36

17

0 ... 36

Wenn im obigen Beispiel die Möglichkeit zur Rekonstruktion außerhalb der Geberperiode gegeben sein soll (z. B. Verfahrbereich -1000 ... -640), kann die POU FB_WriteDriveEncoder alternativ in Verbindung mit FC_ReadDriveEncoder verwendet werden.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Disabled

9

Die POU ist deaktiviert.

OK

HomingDone

222

Die Referenzierung wurde durchgeführt.

OK

WaitForExecute

180

Warten auf Ausführung.

OK

WaitUntilDriveDisabled

179

Warten, bis der Antrieb deaktiviert ist.

OK

WaitUntilEncoderWritten

188

Warten, bis in den Geber geschrieben wurde.

OK

WaitUntilPositionSetFromEncoder

263

Warten, bis die Position entsprechend der Geberposition gesetzt wurde.

OK

WritingPositionDone

184

Die Geberposition wurde geschrieben.

ControllerConditionInvalid

SercosInterfaceInvalid

262

Die Schnittstelle G_ifSercos ist ungültig.

DriveConditionInvalid

DriveEncoderInvalid

175

Der Geber des Antriebs ist nicht gültig.

DriveConditionInvalid

DriveIsMoving

182

Der Antrieb bewegt sich.

DriveConditionInvalid

DriveNotDisabled

183

Der Antrieb ist nicht ausgeschaltet.

DriveConditionInvalid

NoAccessToEEPROM

187

Es ist nicht möglich, auf den EEPROM des Antriebs zuzugreifen.

DriveConditionInvalid

ProgrammingInProgress

189

Es wird in den Geber geschrieben.

DriveConditionInvalid

ProgrammingInvalidEEPROM

186

Fehler beim Schreiben in den EEPROM des Gebers.

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

OutsideExecutionOfControllerStopSet

325

Aktion nach der Ausführung von ControllerStopSet angehalten.

InputParameterInvalid

AbsEncOffsetRange

178

AbsEncOffset ist außerhalb des gültigen Bereichs.

InputParameterInvalid

AsyncInvalid

288

Der Wert von IF_Async ist ungültig.

InputParameterInvalid

DriveInvalid

3

Verbundener Antrieb ist ungültig.

InputParameterInvalid

UserPeriodRange

177

UserPeriod 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

EncoderWriteTimeOut

185

Timeout bei der Beschreibung des Gebers.

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.

AbsEncOffsetRange

Enumerationsname:

AbsEncOffsetRange

Enumerationswert:

178

Beschreibung:

AbsEncOffset ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Am Eingang i_lrAbsEncOffset wurde eine Zahl <= 0 bzw. größer als die Geberperiode übergeben.

Es muss für i_lrAbsEncOffset gelten: 0 < i_lrAbsEncOffset < Maximal möglicher Wert von Dirve.EncoderPosition.

Zulässiger Wertebereich für i_lrAbsEncOffset siehe Ausgang q_sMsg von FB_HomeAbs.

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 = 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 ist notwendig.

Disabled

Enumerationsname:

Disabled

Enumerationswert:

9

Beschreibung:

Die POU ist deaktiviert.

Der Funktionsbaustein ist deaktiviert, er führt keinerlei Aktionen aus. i_xEnable und q_xActive weisen den Wert FALSE auf.

DriveEncoderInvalid

Enumerationsname:

DriveEncoderInvalid

Enumerationswert:

175

Beschreibung:

Der Geber des Antriebs ist nicht gültig.

Problem

Ursache

Lösung

-

Der Geber der Achse wird nicht unterstützt.

Benutzen Sie eine Achse mit einem anderen Geber.

DriveInvalid

Enumerationsname:

DriveInvalid

Enumerationswert:

3

Beschreibung:

Verbundener Antrieb ist ungültig.

Problem

Ursache

Lösung

-

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

-

Der angeschlossene Antrieb ist auf virtuell gesetzt.

Der angeschlossene Antrieb muss eine reale Achse sein.

-

Der angeschlossene Antrieb ist deaktiviert.

Der angeschlossene Antrieb muss eine aktivierte Achse sein.

DriveIsMoving

Enumerationsname:

DriveIsMoving

Enumerationswert:

182

Beschreibung:

Der Antrieb bewegt sich.

Problem

Ursache

Lösung

-

Die Achse bewegt sich.

Überprüfen Sie den Zustand der Achse.

DriveNotDisabled

Enumerationsname:

DriveNotDisabled

Enumerationswert:

183

Beschreibung:

Der Antrieb ist nicht ausgeschaltet.

Problem

Ursache

Lösung

-

Die Achse befindet sich nicht im AxisState 1.

Überprüfen Sie den Zustand der Achse.

EncoderWriteTimeOut

Enumerationsname:

EncoderWriteTimeOut

Enumerationswert:

185

Beschreibung:

Timeout bei der Beschreibung des Gebers.

Problem

Ursache

Lösung

-

Der Schreibvorgang des Gebers hat zu lange gedauert.

Überprüfen Sie die Verbindung zum Geber und versuchen Sie es dann erneut.

HomingDone

Enumerationsname:

HomingDone

Enumerationswert:

222

Beschreibung:

Die Referenzierung wurde durchgeführt.

Die Referenziersequenz wurde erfolgreich abgeschlossen.

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.

NoAccessToEEPROM

Enumerationsname:

NoAccessToEEPROM

Enumerationswert:

187

Beschreibung:

Es ist nicht möglich, auf den EEPROM des Antriebs zuzugreifen.

Problem

Ursache

Lösung

-

Der Zugriff auf den Geber wurde verweigert.

Prüfen Sie den Zustand 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.

OutsideExecutionOfControllerStopSet

Enumerationsname:

OutsideExecutionOfControllerStopSet

Enumerationswert:

325

Beschreibung:

Aktion nach der Ausführung von ControllerStopSet angehalten.

Problem

Ursache

Lösung

-

Der Anwender hat die aktive Referenzierbewegung mit ControllerStopSet angehalten.

Starten Sie die Bewegung neu oder wählen Sie eine andere Betriebsart aus.

ProgrammingInProgress

Enumerationsname:

ProgrammingInProgress

Enumerationswert:

189

Beschreibung:

Es wird in den Geber geschrieben.

Es wird in den Geber der Achse geschrieben.

ProgrammingInvalidEEPROM

Enumerationsname:

ProgrammingInvalidEEPROM

Enumerationswert:

186

Beschreibung:

Fehler beim Schreiben in den EEPROM des Gebers.

Problem

Ursache

Lösung

-

Der Geber wird bereits beschrieben.

Versuchen Sie es zu einem anderen Zeitpunkt noch mal.

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.

SercosInterfaceInvalid

Enumerationsname:

SercosInterfaceInvalid

Enumerationswert:

262

Beschreibung:

Die Schnittstelle G_ifSercos ist ungültig.

Problem

Ursache

Lösung

-

Die globale Sercos-Schnittstelle G_ifSercos ist ungültig.

Stellen Sie sicher, dass die Sercos-Schnittstelle G_ifSercos außerhalb des Funktionsbausteins nicht unbeabsichtigt mit 0 überschrieben wird.

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

-

Ein interner Auführungsfehler wurde identifiziert.

Bitte informieren Sie Ihren Schneider Electric-Ansprechpartner über diesen Fehler.

UnknownState

Enumerationsname:

UnknownState

Enumerationswert:

2

Beschreibung:

Die POU befindet sich in einem undefinierten Zustand.

Problem

Ursache

Lösung

-

Ein interner Auführungsfehler wurde identifiziert.

Bitte informieren Sie Ihren Schneider Electric-Ansprechpartner über diesen Fehler.

UserPeriodRange

Enumerationsname:

UserPeriodRange

Enumerationswert:

177

Beschreibung:

UserPeriod ist außerhalb des gültigen Bereichs.

Problem

Ursache

Lösung

-

Der Eingang i_lrUserPeriod ist negativ

Für den Eingang i_lrUserPeriod muss ein positiver Wert oder null angegeben werden.

-

Der Eingangi_lrUserPeriod passt nicht in die Geberperiode.

Der Eingang i_lrUserPeriod muss so gewählt werden, dass er die folgende Formel erfüllt.

ABS(lrEncoderPeriode/i_lrUserPeriod - TRUNC_INT(lrEncoderPeriode / i_lrUserPeriod)) = 0

wobei gilt:

lrEncoderPeriode := EncoderRange * FeedConstant * DINT_TO_LREAL(GearIn) / DINT_TO_LREAL(GearOut)

EncoderRange, FeedConstant, GearIn und GearOut sind Parameter der Achse i_ifDrive.

WaitForExecute

Enumerationsname:

WaitForExecute

Enumerationswert:

180

Beschreibung:

Warten auf Ausführung.

Der Funktionsbaustein ist funktionsbereit. Auf eine positive Flanke von i_xExecute hin werden die Daten in den Geber geschrieben und die Achsposition wird entsprechend gesetzt.

WaitUntilDriveDisabled

Enumerationsname:

WaitUntilDriveDisabled

Enumerationswert:

179

Beschreibung:

Warten, bis der Antrieb deaktiviert ist.

Der Funktionsbaustein wartet darauf, dass die Achse deaktiviert wird.

WaitUntilEncoderWritten

Enumerationsname:

WaitUntilEncoderWritten

Enumerationswert:

188

Beschreibung:

Warten, bis in den Geber geschrieben wurde.

Es wird in den Geber der Achse geschrieben.

WaitUntilPositionSetFromEncoder

Enumerationsname:

WaitUntilPositionSetFromEncoder

Enumerationswert:

263

Beschreibung:

Warten, bis die Position entsprechend der Geberposition gesetzt wurde.

Der Funktionsbaustein wartet darauf, dass die Position der Achse entsprechend der Geberposition gesetzt wurde.

WritingPositionDone

Enumerationsname:

WritingPositionDone

Enumerationswert:

184

Beschreibung:

Die Geberposition wurde geschrieben.

Das Schreiben in den Geber der Achse ist abgeschlossen.

Methoden

Bezeichnung

Beschreibung

RegisterLoggerPoint

Anmelden der Logger-Punkte der POU im Anwendungslogger