FB_HomeAbs - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.7.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Schreiben der Geberposition einer Achse, sodass die gewünschte Referenz zur Achsposition (Axis.EncoderPosition) mit FB_HomeSetPos im Modus ET_HomeSetPosMode.RestorePosFromAxisencoder wiederhergestellt werden kann.
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_lrAbsEncOffset; 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_lrAbsEncOffset] 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.
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 |
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_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 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.
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
9 |
Die POU ist deaktiviert. |
|
OK |
222 |
Die Referenzierung wurde durchgeführt. |
|
OK |
180 |
Warten auf Ausführung. |
|
OK |
179 |
Warten, bis der Antrieb deaktiviert ist. |
|
OK |
188 |
Warten, bis in den Geber geschrieben wurde. |
|
OK |
263 |
Warten, bis die Position entsprechend der Geberposition gesetzt wurde. |
|
OK |
184 |
Die Geberposition wurde geschrieben. |
|
ControllerConditionInvalid |
262 |
Die Schnittstelle G_ifSercos ist ungültig. |
|
DriveConditionInvalid |
175 |
Der Geber des Antriebs ist nicht gültig. |
|
DriveConditionInvalid |
182 |
Der Antrieb bewegt sich. |
|
DriveConditionInvalid |
183 |
Der Antrieb ist nicht ausgeschaltet. |
|
DriveConditionInvalid |
187 |
Es ist nicht möglich, auf den EEPROM des Antriebs zuzugreifen. |
|
DriveConditionInvalid |
189 |
Es wird in den Geber geschrieben. |
|
DriveConditionInvalid |
186 |
Fehler beim Schreiben in den EEPROM des Gebers. |
|
ExecutionAborted |
290 |
Init wurde noch nicht beendet. |
|
ExecutionAborted |
297 |
Ein Kaltstart der Steuerung ist notwendig. |
|
ExecutionAborted |
289 |
Es wurden keine asynchronen Tasks erzeugt. |
|
HomingFailed |
325 |
Aktion nach der Ausführung von ControllerStopSet angehalten. |
|
InputParameterInvalid |
178 |
AbsEncOffset ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
288 |
Der Wert von IF_Async ist ungültig. |
|
InputParameterInvalid |
3 |
Verbundener Antrieb ist ungültig. |
|
InputParameterInvalid |
177 |
UserPeriod ist außerhalb des gültigen Bereichs. |
|
SercosConditionInvalid |
19 |
Der Sercos-Bus befindet sich nicht in Phase 4. |
|
UnexpectedProgramBehavior |
284 |
Es war nicht möglich, einen asynchronen Job an eine Task zu übergeben. |
|
UnexpectedProgramBehavior |
185 |
Timeout bei der Beschreibung des Gebers. |
|
UnexpectedProgramBehavior |
285 |
Die Aufforderung für die Schnittstelle ist fehlgeschlagen. |
|
UnexpectedProgramBehavior |
287 |
Das Erzeugen einer Semaphore ist fehlgeschlagen. |
|
UnexpectedProgramBehavior |
1 |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
|
UnexpectedProgramBehavior |
2 |
Die POU befindet sich in einem undefinierten Zustand. |
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. |
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. |
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) |
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. |
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.
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. |
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. |
Enumerationsname: |
DriveIsMoving |
Enumerationswert: |
182 |
Beschreibung: |
Der Antrieb bewegt sich. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Achse bewegt sich. |
Überprüfen Sie den Zustand der Achse. |
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. |
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. |
Enumerationsname: |
HomingDone |
Enumerationswert: |
222 |
Beschreibung: |
Die Referenzierung wurde durchgeführt. |
Die Referenziersequenz wurde erfolgreich abgeschlossen.
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. |
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. |
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. |
Enumerationsname: |
ProgrammingInProgress |
Enumerationswert: |
189 |
Beschreibung: |
Es wird in den Geber geschrieben. |
Es wird in den Geber der Achse geschrieben.
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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.
Enumerationsname: |
WaitUntilDriveDisabled |
Enumerationswert: |
179 |
Beschreibung: |
Warten, bis der Antrieb deaktiviert ist. |
Der Funktionsbaustein wartet darauf, dass die Achse deaktiviert wird.
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.
Enumerationsname: |
WritingPositionDone |
Enumerationswert: |
184 |
Beschreibung: |
Die Geberposition wurde geschrieben. |
Das Schreiben in den Geber der Achse ist abgeschlossen.
Bezeichnung |
Beschreibung |
---|---|
Anmelden der Logger-Punkte der POU im Anwendungslogger |