FB_VelocityRatioAlgorithm - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.0.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Algorithmus für den FB_Infeed-Baustein, der auf gleichmäßige Produktbewegung ausgelegt ist.
Der Algorithmus errechnet für ein Produkt, das an das erste von ihm gesteuerte Band übergeben wird, eine möglichst flache Geschwindigkeitskurve, sodass das Produkt beim Verlassen des letzten von ihm gesteuerten Bands auf dem ihm zugeordneten Ziel liegt. Wenn das Produkt an das erste Band übergeben wird, wird ihm das Ziel zugeordnet, das dem Zielband am nächsten und mit den eingestellten Parametern erreichbar ist.
Der Algorithmus ist für außergewöhnliche, ungeordnete Produktströme gedacht. Um Leertakte aufgrund des unregelmäßigen eingehenden Produktstroms zu vermeiden, empfiehlt sich die Verwendung einer Geschwindigkeitsvorsteuerung der Folgemaschine. Diese kann mit dem Baustein FB_VelocityRatioFeedForward realisiert werden.
Die Produkte werden mit diesem Algorithmus nicht synchron von einen Band an das Nächste übergeben. Aufgrund der Geschwindigkeitsunterschiede der Bänder bei der Produktübergabe ist der Algorithmus nicht für sensible Produkte geeignet.
Der Algorithmus benötigt mindestens 3 Korrekturbänder, die alle mit dem Zielband als Masterband konfiguriert sein müssen.
HINWEIS: Die Methode IF_Infeed.EndOfAlgorithm muss nach dem Aufruf dieses Funktionsbausteins zyklisch aufgerufen werden. Der Funktionsbaustein widerruft die Flags für die Produkterkennung wie xInkate nicht selbst.
Eingang |
Datentyp |
Beschreibung |
---|---|---|
i_xEnable |
BOOL |
Eine steigende Flanke FALSE -> TRUE aktiviert den Baustein, eine fallende Flanke TRUE -> FALSE deaktiviert den Baustein. Wenn der Baustein abgeschaltet ist, führt er keine Aktionen aus. |
i_xStart |
BOOL |
TRUE: Der Algorithmus wird gestartet. |
i_xWsSelect |
BOOL |
Ist i_xWsSelect TRUE, wenn der Baustein über i_xStart gestartet wird, wird ein Warmstart ausgeführt. |
i_xDiagQuit |
BOOL |
Eine steigende Flanke FALSE -> TRUE quittiert die Diagnosemeldungen des Bausteins. |
i_ifInfeed |
Die Instanz des FB_Infeed-Bausteins, für den der Algorithmus ausgeführt werden soll. |
Ausgang |
Datentyp |
Beschreibung |
---|---|---|
q_xActive |
BOOL |
TRUE: Der Baustein ist eingeschaltet und muss weiter ausgeführt werden. FALSE: Der Baustein ist abgeschaltet. |
q_xReady |
BOOL |
TRUE: Der Baustein ist betriebsbereit und kann Benutzerbefehle entgegennehmen. FALSE: Der Funktionsbaustein ist nicht betriebsbereit und nimmt keine Benutzerbefehle an. |
q_etDiag |
Allgemeingültige, bibliotheksunabhängige Aussage zur Diagnose. Alle Werte außer GD.ET_Diag.Ok entsprechen einer Diagnosemeldung. |
|
q_etDiagExt |
Bausteinspezifischer Ausgang des Diagnosegeräts. q_etDiag = GD.ET_Diag.Ok -> Statusmeldung q_etDiag <> GD.ET_Diag.Ok -> Diagnosemeldung |
|
q_sMsg |
STRING[80] |
Ereignisabhängige Meldung, die mehr Informationen zum Diagnosezustand liefert. |
Ein-/Ausgang |
Datentyp |
Beschreibung |
---|---|---|
iq_stParameter |
ST_VelRatioParameter |
Die Parameter des Bausteins |
iq_stFeedback |
ST_VelRatioFeedback |
Die Rückgabewerte des Bausteins |
q_etDiag |
q_etDiagExt |
Aufzählungswert |
Beschreibung |
---|---|---|---|
OK |
1 |
Der Baustein ist deaktiviert. |
|
OK |
2 |
Der Baustein wird initialisiert. |
|
OK |
3 |
Warten auf Startbefehl. |
|
OK |
5 |
Es wird ein Warmstart ausgeführt. |
|
OK |
6 |
Der Baustein arbeitet. |
|
ExecutionAborted |
74 |
Die maximale Anzahl der verwaltbaren Ziele ist erreicht. |
|
ExecutionAborted |
76 |
Es konnte kein Ziel gefunden werden. |
|
InputParameterInvalid |
61 |
Acc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
106 |
BackwardCorrectionAlarmWindow ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
77 |
BeltType ist ungültig. |
|
InputParameterInvalid |
102 |
CamMasterMinVelocity ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
62 |
Dec ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
98 |
Die Angaben von FirstVelBeltIndex und LastVelBeltIndex widersprechen sich. |
|
InputParameterInvalid |
96 |
FirstVelBeltIndex ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
105 |
ForwardCorrectionLimitAlarmWindow ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
94 |
Es wurde ein ungültiger Infeed Baustein übergeben. |
|
InputParameterInvalid |
97 |
LastVelBeltIndex ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
52 |
MasterBeltId ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
103 |
MaxVelocityDifferencePercent ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
101 |
RefreshBeltIndex ist größer als LastBeltIndex. |
|
InputParameterInvalid |
100 |
RefreshBeltIndex ist kleiner als FirstBeltIndex. |
|
UnexpectedProgramBehavior |
78 |
Es wurden zu viele Bewegungsbefehle abgesetzt. |
|
UnexpectedProgramBehavior |
74 |
Die maximale Anzahl der verwaltbaren Ziele ist erreicht. |
|
UnexpectedProgramBehavior |
48 |
Der Baustein befindet sich in einem undefinierten Zustand. |
|
UnexpectedProgramBehavior |
20 |
Während der Ausführung ist ein unbeabsichtigter Fehler aufgetreten. |
Aufzählungsname: |
AccRange |
Aufzählungswert: |
61 |
Beschreibung: |
Acc ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der am Eingang i_ifInfeed übergebenen Infeed-Instanz wurde am Eingang FB_Infeed.ifVelRatio.lrAcc ein ungültiger Wert übergeben. |
Am Eingang FB_Infeed.ifVelRatio.lrAcc der angeschlossenen Infeed-Instanz muss ein Wert größer 0 übergeben werden. |
BackwardCorrectionAlarmWindowRange
Aufzählungsname: |
BackwardCorrectionAlarmWindowRange |
Aufzählungswert: |
106 |
Beschreibung: |
BackwardCorrectionAlarmWindow ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stParameter.lrBackwardCorrectionAlarmWindow wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass am Eingang iq_stParameter.lrBackwardCorrectionAlarmWindow ein Wert größer oder gleich 0 übergeben wird. |
Aufzählungsname: |
BeltTypeInvalid |
Aufzählungswert: |
77 |
Beschreibung: |
BeltType ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Konfiguration der Bänder des am Eingang i_ifInfeed übergebenen Infeed-Bausteins, ist nicht korrekt. |
Der am Eingang i_ifInfeed übergebene Infeed-Baustein muss mit Bändern des Typs ET_BeltType.Series von iq_stParameter.udiFirstVelBeltIndex bis iq_stParameter.udiLastVelBeltIndex parametriert werden. |
Aufzählungsname: |
CamMasterMinVelocityRange |
Aufzählungswert: |
102 |
Beschreibung: |
CamMasterMinVelocity ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stParameter.lrCamMasterMinVelocity wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass am Eingang iq_stParameter.lrCamMasterMinVelocity ein Wert größer oder gleich 1,0 übergeben wird. |
Aufzählungsname: |
DecRange |
Aufzählungswert: |
62 |
Beschreibung: |
Dec ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der am Eingang i_ifInfeed übergebenen Infeed-Instanz wurde am Eingang FB_Infeed.ifVelRatio.lrDec ein ungültiger Wert übergeben. |
Am Eingang FB_Infeed.ifVelRatio.lrDec der angeschlossenen Infeed-Instanz muss ein Wert größer 0 übergeben werden. |
Aufzählungsname: |
Disabled |
Aufzählungswert: |
1 |
Beschreibung: |
Der Baustein ist deaktiviert. |
Der Funktionsbaustein ist deaktiviert, er führt keinerlei Aktionen aus. i_xEnable und q_xActive haben den Wert FALSE.
FirstLastVelBeltIndexMissmatch
Aufzählungsname: |
FirstLastVelBeltIndexMissmatch |
Aufzählungswert: |
98 |
Beschreibung: |
Die Angaben von FirstVelBeltIndex und LastVelBeltIndex widersprechen sich. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die an den Eingängen iq_stParameter.udiFirstVelBeltIndex und iq_stParameter.udiLastVelBeltIndex übergebenen Werte passen nicht zueinander. |
Es muss sichergestellt werden, dass der Wert des Eingangs iq_stParameter.udiLastVelBeltIndex größer oder gleich dem Wert von iq_stParameter.udiFirstVelBeltIndex plus zwei ist. |
Aufzählungsname: |
FirstVelBeltIndexRange |
Aufzählungswert: |
96 |
Beschreibung: |
FirstVelBeltIndex ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stParameter.udiFirstVelBeltIndex wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass am Eingang iq_stParameter.udiFirstVelBeltIndex ein Wert übergeben wird, der größer 0 ist und kleiner als die Anzahl der parametrierten Bänder der am Eingang i_ifInfeed übergebenen Infeed-Instanz. |
ForwardCorrectionLimitAlarmWindowRange
Aufzählungsname: |
ForwardCorrectionLimitAlarmWindowRange |
Aufzählungswert: |
105 |
Beschreibung: |
ForwardCorrectionLimitAlarmWindow ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stParameter.lrForwardCorrectionLimitAlarmWindow wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass am Eingang iq_stParameter.lrForwardCorrectionLimitAlarmWindow ein Wert größer oder gleich 0 übergeben wird. |
Aufzählungsname: |
InfeedInvalid |
Aufzählungswert: |
94 |
Beschreibung: |
Es wurde ein ungültiger Infeed Baustein übergeben. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_ifInfeed wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass die Instanz des FB_Infeed-Bausteins am Eingang i_ifInfeed übergeben wird, an dem der Algorithmus ausgeführt werden soll. |
Aufzählungsname: |
Initializing |
Aufzählungswert: |
2 |
Beschreibung: |
Der Baustein wird initialisiert. |
Der Baustein wird initialisiert und ist daher noch nicht bereit, Befehle an den Eingängen entgegenzunehmen.
Der Baustein meldet seine Betriebsbereitschaft mit dem Signal q_xReady = TRUE.
Aufzählungsname: |
JobBufferOverflow |
Aufzählungswert: |
78 |
Beschreibung: |
Es wurden zu viele Bewegungsbefehle abgesetzt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
In der internen Ausführung ist ein Fehler aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
Aufzählungsname: |
LastVelBeltIndexRange |
Aufzählungswert: |
97 |
Beschreibung: |
LastVelBeltIndex ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stParameter.udiLastVelBeltIndex wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass am Eingang iq_stParameter.udiLastVelBeltIndex ein Wert übergeben wird, der größer 0 ist und kleiner als die Anzahl der parametrierten Bänder der am Eingang i_ifInfeed übergebenen Infeed-Instanz. |
Aufzählungsname: |
MasterBeltIdRange |
Aufzählungswert: |
52 |
Beschreibung: |
MasterBeltId ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Konfiguration der Bänder des am Eingang i_ifInfeed übergebenen Infeed-Bausteins, ist nicht korrekt. |
Die Bänder von iq_stParameter.udiFirstVelBeltIndex bis iq_stParameter.udiLastVelBeltIndex des am Eingang i_ifInfeed übergebenen Infeed-Bausteins müssen alle das letzte Band der Eintaktstrecke als Cam-Master zugewiesen bekommen haben. |
Aufzählungsname: |
MaxNrOfTargetsReached |
Aufzählungswert: |
74 |
Beschreibung: |
Die maximale Anzahl der verwaltbaren Ziele ist erreicht. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Es wurden mehr Produkte erkannt, als Ziele zur Verfügung stehen. |
Die Methode IF_Infeed.EndOfAlgorithm muss nach dem Aufruf dieses Funktionsbausteins zyklisch aufgerufen werden. Der Wert von Gc_udiMaxNumberOfTargets muss erhöht werden. Es muss sichergestellt werden, dass sich immer weniger als Gc_udiMaxNumberOfTargets Produkte auf den Bändern von iq_stParameter.udiFirstVelBeltIndex bis iq_stParameter.udiLastVelBeltIndex befinden. |
MaxVelocityDifferencePercentRange
Aufzählungsname: |
MaxVelocityDifferencePercentRange |
Aufzählungswert: |
103 |
Beschreibung: |
MaxVelocityDifferencePercent ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stParameter.lrMaxVelocityDifferencePercent wurde ein ungültiger Wert übergeben. |
Es muss sichergestellt werden, dass am Eingang iq_stParameter.lrMaxVelocityDifferencePercent ein Wert größer als 0 und kleiner als 100 übergeben wird. |
Aufzählungsname: |
NoTargetExisting |
Aufzählungswert: |
76 |
Beschreibung: |
Es konnte kein Ziel gefunden werden. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Das einem Produkt zugewiesene Ziel wurde gelöscht. |
Es muss sichergestellt werden, dass Ziele erst gelöscht werden, wenn das ihnen zugewiesene Produkt das letzte Band verlassen hat, das durch den Algorithmus gesteuert wird. |
RefreshBeltIndexHigherLastBeltIndex
Aufzählungsname: |
RefreshBeltIndexHigherLastBeltIndex |
Aufzählungswert: |
101 |
Beschreibung: |
RefreshBeltIndex ist größer als LastBeltIndex. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die an den Eingängen iq_stParameter.udiRefreshVelRatioBeltIndex und iq_stParameter.udiLastVelBeltIndex übergebenen Werte passen nicht zueinander. |
Es muss sichergestellt werden, dass der Wert des Eingangs iq_stParameter.udiLastVelBeltIndex größer oder gleich dem Wert von iq_stParameter.udiRefreshVelRatioBeltIndex ist. |
RefreshBeltIndexLowerFirstBeltIndex
Aufzählungsname: |
RefreshBeltIndexLowerFirstBeltIndex |
Aufzählungswert: |
100 |
Beschreibung: |
RefreshBeltIndex ist kleiner als FirstBeltIndex. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die an den Eingängen iq_stParameter.udiRefreshVelRatioBeltIndex und iq_stParameter.udiFirstVelBeltIndex übergebenen Werte passen nicht zueinander. |
Es muss sichergestellt werden, dass der Wert des Eingangs iq_stParameter.udiFirstVelBeltIndex kleiner oder gleich dem Wert von iq_stParameter.udiRefreshVelRatioBeltIndex ist. |
Aufzählungsname: |
UnknownCase |
Aufzählungswert: |
48 |
Beschreibung: |
Der Baustein befindet sich in einem undefinierten Zustand. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
In der internen Ausführung ist ein Fehler aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
Aufzählungsname: |
UnknownFeedback |
Aufzählungswert: |
20 |
Beschreibung: |
Während der Ausführung ist ein unbeabsichtigter Fehler aufgetreten. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
In der internen Ausführung ist ein Fehler aufgetreten. |
Bitte informieren Sie das Supportteam über diesen Fehler. |
Aufzählungsname: |
WaitForStart |
Aufzählungswert: |
3 |
Beschreibung: |
Warten auf Startbefehl. |
Der Baustein hat seine Initialisierung abgeschlossen und wartet auf eine positive Flanke am Eingang i_xStart, bevor die Verarbeitung fortgesetzt wird.
Aufzählungsname: |
WarmstartExecuting |
Aufzählungswert: |
5 |
Beschreibung: |
Es wird ein Warmstart ausgeführt. |
Es wird ein Warmstart ausgeführt.
Aufzählungsname: |
Working |
Aufzählungswert: |
6 |
Beschreibung: |
Der Baustein arbeitet. |
Der Algorithmus steuert die Bänder.
Bezeichnung |
Beschreibung |
---|---|
Registriert den internen Logger-Punkt im Application Logger. |
Name |
Datentyp |
Zugriff |
Beschreibung |
---|---|---|---|
lrDeltaXMax |
LREAL |
Lesen |
|
lrDeltaXMin |
LREAL |
Lesen |
|
lrNextTargetDistance |
LREAL |
Lesen |
|