FB_EndlessFeedIls - Allgemeine Informationen
Typ |
Programm / Funktionsbaustein / Funktion |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Intelligente Königswelle
Ausführen einer endlosen Bewegung einer Leitachse unter Berücksichtigung von Geschwindigkeits- und Beschleunigungsbegrenzungen der Slaveachsen.
Während des Betriebs werden die am Eingang iq_stIlsData übergebenen Daten über die Bewegungsabläufe von bis zu 10 Slaveachsen ausgewertet und eventuell parametrierte Geschwindigkeits- oder Beschleunigungslimits durch phasenweise Verringerung der Plateaugeschwindigkeit der Leitachse eingehalten. Den dabei entstandenen Positionsrückstand versucht der Funktionsbaustein selbständig durch Anhebung der Plateaugeschwindigkeit bis zu einem einstellbaren Maximalwert auszugleichen. Das heißt, die eingestellte Geschwindigkeit i_lrVel wird als Effektivgeschwindigkeit interpretiert.
HINWEIS: Der Funktionsbaustein muss viel Speicher im dynamischen Speicherbereich zuweisen. Die Größe des dynamischen Speicherbereichs kann in den Optionen Applikationserzeugung{ angezeigt und geändert werden (Ansicht -> Eigenschaften... -> Optionen Applikationserzeugung{). Es handelt sich NICHT um den dynamischen Speicherbereich, der über die Eigenschaften DynIECData... der Steuerung verwaltet werden kann.
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_lrVel |
LREAL |
Effektivgeschwindigkeit in Einheiten/s. Wertebereich: 0...MaxVel |
i_lrAcc |
LREAL |
Beschleunigung auf Plateaugeschwindigkeit in Einheiten/s2. Wertebereich: > 0 ... MaxAcc |
i_lrDec |
LREAL |
Verzögerung auf Plateaugeschwindigkeit oder Stillstand in Einheiten/s2. Wertebereich: > 0 ... MaxAcc |
i_lrJerk |
LREAL |
Ruck in Einheiten/s2. Wird der Variablen lrMasterMaxAbsJerk aus iq_stIlsData.i_stRunTime zugewiesen. |
i_lrPeriod |
LREAL |
Bei einem Wert <> 0 wird die Position innerhalb des Periodenwerts gehalten (0 … i_lrPeriod). Wenn ein Periodenwert zu hoch oder zu niedrig ist, wird die Position vom Periodenwert beeinflusst. Es sind nur positive Werte gültig. |
i_lrStopPosition |
LREAL |
Stoppposition in Einheiten. Es sind nur positive Werte gültig. Die StopPosition muss im Bereich von 0 ... Period liegen. |
i_xStart |
BOOL |
FALSE -> TRUE: Start der Endlosfahrt nach eingestellten Parametern. |
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_xWarning |
BOOL |
TRUE: Funktionsbaustein hat Warnung erkannt. Die Ausgänge q_etDiag, q_etDiagExt und q_sMsg sind als Warnung zu interpretieren. |
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_xMotionInstructionActive |
BOOL |
TRUE: Achse in Bewegung. |
q_xInVelocity |
BOOL |
Geschwindigkeit i_lrVel erreicht. (RefVelocity > i_lrVel * 0,99 UND RefVelocity < i_lrVel* 1.01) |
q_lrPosition |
LREAL |
Position der Achse. |
Ein-/Ausgang |
Datentyp |
Beschreibung |
---|---|---|
iq_stIlsData |
Informationen über die Bewegungsabläufe der Slaveachsen sowie parametrierte Limits und Feedbackvariablen. Siehe den Datentyp PDL_ST_ILS_Data. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
9 |
Die POU ist deaktiviert. |
|
OK |
213 |
Endlose Positionierung |
|
OK |
4 |
Die POU wird initialisiert. |
|
OK |
7 |
Aktive Fahrbefehle werden gestoppt. |
|
OK |
5 |
Warten auf Startbefehl. |
|
OK |
8 |
Warten, bis die POU deaktiviert ist. |
|
DriveConditionInvalid |
10 |
Der Antrieb ist nicht bereit für Bewegungsbefehle. |
|
ExecutionAborted |
75 |
Es ist zu wenig dynamischer Speicher reserviert. |
|
InputParameterInvalid |
12 |
Acc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
13 |
Dec ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
3 |
Verbundener Antrieb ist ungültig. |
|
InputParameterInvalid |
205 |
Hysteresis ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
199 |
MasterMaxAbsAcc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
200 |
MasterMaxAbsJerk ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
208 |
MasterPeriodInit ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
212 |
NegAcc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
210 |
NegVel ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
207 |
MNumberOfMasterPeriods ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
198 |
NumberOfSlaves ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
201 |
Period ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
211 |
PosAcc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
203 |
PositionGridSize ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
209 |
PosVel ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
114 |
ProfileId ist ungültig. |
|
InputParameterInvalid |
202 |
StopPosition ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
204 |
TimeGridSize ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
11 |
Vel ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
206 |
YFactor ist außerhalb des gültigen Bereichs. |
|
UnexpectedProgramBehavior |
116 |
Das Profil wird bereits verwendet. |
|
UnexpectedProgramBehavior |
1 |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
|
UnexpectedProgramBehavior |
2 |
Die POU befindet sich in einem undefinierten Zustand. |
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: i_lrAcc > 1 Zulässiger Wertebereich für i_lrAcc, siehe Ausgang q_sMsg |
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: i_lrDec > 1 Zulässiger Wertebereich für i_lrDec, siehe Ausgang q_sMsg |
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.
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. |
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. |
Enumerationsname: |
DynIecDataSizeTooSmall |
Enumerationswert: |
75 |
Beschreibung: |
Es ist zu wenig dynamischer Speicher reserviert. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es gab nicht genug freien Speicherplatz im dynamischen Speicher. |
Erweitern Sie den dynamischen Speicher. Der vom Funktionsbaustein benötigte Speicherplatz wird in der Meldung q_sMessage der Ausnahme angegeben. Die Größe des dynamischen Speicherbereichs kann in den Optionen Applikationserzeugung{ angezeigt und geändert werden (Ansicht -> Eigenschaften... -> Optionen Applikationserzeugung{). Es handelt sich NICHT um den dynamischen Speicherbereich, der über die Eigenschaften DynIECData... der Steuerung verwaltet werden kann. |
Enumerationsname: |
EndlessPositioning |
Enumerationswert: |
213 |
Beschreibung: |
Endlose Positionierung |
Die Achse wird endlos positioniert.
Enumerationsname: |
HysteresisRange |
Enumerationswert: |
205 |
Beschreibung: |
Hysteresis ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stConfig.lrHysteresis wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_stConfig.lrHysteresis muss ein Wert größer oder gleich 0,001 und kleiner oder gleich 50,0 übergeben werden. |
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.
Enumerationsname: |
MasterMaxAbsAccRange |
Enumerationswert: |
199 |
Beschreibung: |
MasterMaxAbsAcc ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stRunTime.lrMasterMaxAbsAcc wurde ein ungültiger Wert übergeben. |
Dem Eingang iq_stIlsData.i_stRunTime.lrMasterMaxAbsAcc muss ein Wert größer oder gleich 1,0 übergeben werden. |
Enumerationsname: |
MasterMaxAbsJerkRange |
Enumerationswert: |
200 |
Beschreibung: |
MasterMaxAbsJerk ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stRunTime.lrMasterMaxAbsJerk wurde ein ungültiger Wert übergeben. |
Dem Eingang iq_stIlsData.i_stRunTime.lrMasterMaxAbsJerk muss ein Wert größer oder gleich 1,0 übergeben werden. |
Enumerationsname: |
MasterPeriodInitRange |
Enumerationswert: |
208 |
Beschreibung: |
MasterPeriodInit ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_astCamData[ ].diMasterPeriodInit wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_astCamData[ ].diMasterPeriodInit muss ein Wert größer als 0 übergeben werden. |
Enumerationsname: |
NegAccRange |
Enumerationswert: |
212 |
Beschreibung: |
NegAcc ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegAcc wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegAcc muss ein Wert größer oder gleich -1,0 übergeben werden. |
Enumerationsname: |
NegVelRange |
Enumerationswert: |
210 |
Beschreibung: |
NegVel ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegVel wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrNegVel muss ein Wert kleiner oder gleich -1,0 übergeben werden. |
Enumerationsname: |
NumberOfMasterPeriodsRange |
Enumerationswert: |
207 |
Beschreibung: |
MNumberOfMasterPeriods ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_astCamData[ ].diNumberOfMasterPeriods wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_astCamData[ ].diNumberOfMasterPeriods muss ein Wert größer als 1 übergeben werden. |
Enumerationsname: |
NumberOfSlavesRange |
Enumerationswert: |
198 |
Beschreibung: |
NumberOfSlaves ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stConfig.diNumberOfSlaves wurde ein ungültiger Wert angelegt. |
Dem Eingang Gc_diMaxNumberOfSlaves muss ein Wert größer oder gleich 0 und kleiner oder gleich iq_stIlsData.i_stConfig.diNumberOfSlaves übergeben werden. |
Enumerationsname: |
PeriodRange |
Enumerationswert: |
201 |
Beschreibung: |
Period ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrPeriod wurde ein ungültiger Wert angelegt. |
Dem Eingang i_lrPeriod muss ein Wert größer oder gleich 1,0 übergeben werden. |
Enumerationsname: |
PosAccRange |
Enumerationswert: |
211 |
Beschreibung: |
PosAcc ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosAcc wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosAcc muss ein Wert größer oder gleich 1,0 übergeben werden. |
Enumerationsname: |
PositionGridSizeRange |
Enumerationswert: |
203 |
Beschreibung: |
PositionGridSize ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stConfig.diPositionGridSize wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_stConfig.diPositionGridSize muss ein Wert größer oder gleich 1 und kleiner oder gleich Gc_diMaxGridSize übergeben werden. |
Enumerationsname: |
PosVelRange |
Enumerationswert: |
209 |
Beschreibung: |
PosVel ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosVel wurde ein ungültiger Wert angelegt. |
Dem Eingang iq_stIlsData.i_stRunTime.astSlaveLimits[ ].lrPosVel muss ein Wert größer oder gleich 1 übergeben werden. |
Enumerationsname: |
ProfileAlreadyInUse |
Enumerationswert: |
116 |
Beschreibung: |
Das Profil wird bereits verwendet. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Das Bewegungsprofil wird bereits verwendet. |
Überprüfen Sie die Bewegungsdaten. |
Enumerationsname: |
ProfileIdInvalid |
Enumerationswert: |
114 |
Beschreibung: |
ProfileId ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Das Profil existiert nicht |
Überprüfen Sie die Werte an den Eingängen iq_stMultiCamData.astCamPoint[ ].diProfileId. |
Enumerationsname: |
Stopping |
Enumerationswert: |
7 |
Beschreibung: |
Aktive Fahrbefehle werden gestoppt. |
Die Achse wird angehalten.
Enumerationsname: |
StopPositionRange |
Enumerationswert: |
202 |
Beschreibung: |
StopPosition ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrStopPosition wurde ein negativer Wert übergeben. |
Dem Eingang i_lrStopPosition muss ein Wert größer oder gleich 0 übergeben werden. |
- |
Am Eingang i_lrStopPosition wurde ein Wert außerhalb der Periode übergeben. |
Am Eingang i_lrStopPosition muss ein Wert kleiner oder gleich dem Wert am Eingang i_lrPeriod übergeben werden. |
Enumerationsname: |
TimeGridSizeRange |
Enumerationswert: |
204 |
Beschreibung: |
TimeGridSize ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_stConfig.diTimeGridSize wurde ein ungültiger Wert angelegt. |
Am Eingang iq_stIlsData.i_stConfig.diTimeGridSize muss ein Wert größer als 0 und kleiner als 100 angelegt werden. |
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. |
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. |
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. |
Geben Sie für i_lrVel einen Wert zwischen 0 und dem Parameter MaxVel der Achse an. |
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.
Enumerationsname: |
WaitUntilDisabled |
Enumerationswert: |
8 |
Beschreibung: |
Warten, bis die POU deaktiviert ist. |
Enumerationsname: |
YFactorRange |
Enumerationswert: |
206 |
Beschreibung: |
YFactor ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stIlsData.i_astCamData[ ].lrYFactor wurde eine Zahl < 1 übergeben. |
Der YFactor muss mindestens 1 sein. |