FB_MultiCam - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Kurvenbasierenden Bewegungsablauf ausführen.
Funktionsbaustein für Bewegungsaufgaben, die durch eine abschnittsweise Vorgabe des Bewegungsablaufs festgelegt werden können. Die Beschreibung des Bewegungsablaufs ist in einer Struktur (Typ ST_MultiCam) abgelegt. Sie besteht aus der Anzahl der Stützpunkte (diNumberOfCamPoints maximal 32) und einem Array von Punkten (Typ ST_CamPoint). Durch den Wechsel der angelegten Struktur ist es möglich, verschiedene Bewegungsabläufe ereignisorientiert umzuschalten ( z. B. Anfahrzyklus, Dauerlaufzyklus, Stoppzyklus usw. ).
Kaltstart
Cold start bedeutet einen Start am Anfang des Bewegungsablaufs.
Ein cold start wird mit Eingang i_xStart = TRUE und Eingang i_xWsSelect = FALSE ausgeführt. Es stehen verschiedene Optionen (Eingangsvariablen i_etCsModeSlave und i_etCsModeMaster) für den cold start zur Verfügung.
Verwendung der analytischen Profile
Die analytischen Profile der PacDrive-Steuerung (einfacher Sinus, geneigter Sinus, geändertes Beschleunigungstrapez oder Polynom 5. Grades) können als die Profile Rast-Rast, Rast-Geschwindigkeit und Geschwindigkeit-Rast verwendet werden.
Verwendung von Anwenderprofilen
Es können auch beliebige Anwenderprofile benutzt werden. Die Profile müssen als „<Name>.pp3" zur Verfügung stehen und können dann ganz normal geladen werden.
HINWEIS: Verwendete Anwenderprofile müssen auf dem Massenspeicher (Flash-Disk) vorhanden sein. Achten Sie darauf, dass bei einem Austausch der Flash-Disk alle Profildateien mit aufgespielt werden.
NewCam
Dieser Abbruch wird über den Eingang Iq_xNewCam ausgelöst. Von außen wird durch Setzen von iq_xNewCam signalisiert, dass im nächsten Takt ein neues Profil gefahren werden soll. Mit dem Start des neuen Profils nimmt der FB den Eingang iq_xNewCam zurück.
NewCam
HINWEIS: Wird das Signal iq_xNewCam zu spät gesetzt, erfolgt die Kurvenumschaltung nicht zum folgenden Takt, sondern zum übernächsten.
Wird das Signal von einer asynchronen Programmtask gesetzt, so muss noch die Zykluszeit der Task hinzugerechnet werden, in der der FB aufgerufen wird.
Der Eingang iq_xNewCam wird erst am Ende der laufenden Kurve ausgewertet.
Beispiel:
Programmzykluszeit = 5 ms, SERCOS CycleTime = 2 ms, dann muss TXend >= 7 ms sein.
InstantNewCam
Soll das laufende Profil unterbrochen werden und stattdessen ein anderes Profil gefahren werden, so kann dies an der Leitposition i_lrInstantXLimMax erfolgen. Dazu muss eine neue Struktur ST_MultiCam geladen werden. Dabei muss bei i_lrInstantXLimMax die Position, Steigung und Krümmung beider Profile gleich sein und der Eingang iq_xInstantNewCam muss gesetzt werden. Mit dem Start des neuen Profils nimmt der FB den Eingang iq_xInstantNewCam zurück.
HINWEIS |
SOLLWERTSPRÜNGE |
oDas Signal iq_xInstantNewCam muss vor Erreichen der Leitgeberposition i_lrInstantXLimMax gesetzt werden. oPosition, Steigung und Krümmung des alten und neuen Profils müssen an der Leitgeberposition i_lrInstantXLimMax übereinstimmen. |
Die Nichtbeachtung dieser Anweisungen kann Sachschäden zur Folge haben. |
InstantNewCam
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_xStart |
BOOL |
Startet die Antriebsbewegung. Mit i_xStart = FALSE wird der laufende Zyklus am Ende gestoppt. Ist die Endsteigung des letzten Bewegungsabschnitts nicht Null, so wird mit i_lrWsAcc gestoppt. Weitere für das Stoppen relevante Parameter (z. B. xStopPositionSelect) sind in iq_stExt zu finden. |
i_xWsSelect |
BOOL |
Mit Eingang i_xStart = TRUE und Eingang i_xWsSelect = TRUE wird ein „Warmstart“ ausgeführt. „Warmstart“ bedeutet einen Start mitten im Bewegungsablauf (z. B. nach einem Notaus). Dabei orientiert sich der FB an der Leitposition und fährt auf die Kurvenposition. Sobald sich die Position des Antriebs wieder auf der Kurvenposition befindet, wird der Ausgang q_xSynActive gesetzt. Dieses Signal kann zum Start des Leitgebers benutzt werden. Beim „Warmstart“ muss der Leitgeber stehen. Befindet sich die Leitgeber- oder Achsposition beim „Warmstart“ außerhalb ihrer Periode, wird sie in die Periode gebracht (Position = Position MOD Periode). |
i_etCsModeSlave |
Kaltstartmodus der Slaveachse |
|
i_etCsModeMaster |
Kaltstartmodus des Leitgebers |
|
i_etWsMode |
Warmstartmodus |
|
i_lrWsWindow |
LREAL |
Warmstartfenster (Slaveachse +/-) |
i_lrWsVel |
LREAL |
Geschwindigkeit zum Anfahren der Warmstartposition (Folgeposition) in Einheiten/s. |
i_lrWsAcc |
LREAL |
Beschleunigung zum Anfahren der Warmstartposition (Folgeposition) in Einheiten/s2. |
i_lrWsJerk |
LREAL |
Ruck zum Anfahren der Warmstartposition (Folgeposition) in Einheiten/s3. |
i_xWsStart |
BOOL |
Der Eingang startet die Bewegung beim Warmstart, wenn i_xWsStart = TRUE. |
i_diTXEnd |
DINT |
Bestimmt das Setzen der Ausgänge q_xXHighEnd und q_xXLowEnd. TXEnd entspricht einer Zeitangabe in ms. TXEdnd legt die letzte mögliche Übernahme des Signals iq_xNewCam fest. TXEnd ist auf 1.5 * Programmzykluszeit begrenzt. TXEnd wird intern um einen Programmzyklus verlängert, damit q_xXHighEnd mindestens TXEnd vor Ende kommt. Ist nur wirksam, wenn der Parameter iq_stExt.lrXEndWidth = 0 ist. |
i_lrInstantXLimMax |
LREAL |
Abbruchposition des aktuellen Bewegungsprofils und Übernahme des neuen Bewegungsprofils bei iq_xInstantNewCam. |
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 |
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_xInWsWindow |
BOOL |
Der Ausgang gibt an, ob die Slaveachse sich innerhalb des festgelegten Warmstartfensters i_lrWsWindow befindet. q_xInWsWindow wird in i_etWsMode 2, 3,12 und 13 nur gesetzt, wenn die Folgeposition (Achse) innerhalb des Fensters um die Kurvenposition liegt. Es wird nur die aktuelle Periode betrachtet. Das Fenster gilt nicht für die vorherige oder folgende Periode. Der Ausgang q_xInWsWindow wird erst mit dem Ausgang q_xSynActive zurückgesetzt. |
q_xSynActive |
BOOL |
TRUE: Die Masterachse und die Slaveachse laufen synchron (Kurve ist aktiv). |
q_lrPositionX |
LREAL |
Ausgabe der Position X (Masterposition) |
q_lrPositionY |
LREAL |
Ausgabe der Position Y (Folgeposition) |
q_xXLowEnd |
BOOL |
XLowEnd signalisiert das untere Ende der Kurve. Wenn iq_stExt.lrXEndWidth = 0 ist, dann wird der Ausgang i_diTXEnd ms vor dem unteren Ende der Kurve gesetzt. Wenn iq_stExt.lrXEndWidth > 0 ist, dann wird der Ausgang i_diTXEnd Einheiten vor dem unteren Ende der Kurve gesetzt. |
q_xXHighEnd |
BOOL |
XHighEnd signalisiert das obere Ende der Kurve. Wenn iq_stExt.lrXEndWidth = 0 ist, dann wird der Ausgang i_diTXEnd ms vor dem oberen Ende der Kurve gesetzt. Wenn iq_stExt.lrXEndWidth > 0 ist, dann wird der Ausgang i_diTXEnd Einheiten vor dem oberen Ende der Kurve gesetzt. |
q_stActualCamData |
Daten des aktiven Fahrprofils. Der Ausgang liefert Daten des laufenden Profils. Dies kann hilfreich sein, wenn man das laufende Profil abbrechen möchte, um ein anderes Profil anzuhängen. Die Daten sind in einer Struktur stActualCamData zusammengefasst und können direkt als Eingangsdaten für den Funktionsbaustein FB_ProfilPoint() verwendet werden. |
Ein-/Ausgang |
Datentyp |
Beschreibung |
---|---|---|
iq_lencMaster |
L_ENC |
Eingang für den logischen Geber, der die Masterbewegung vorgibt. |
iq_stExt |
Enthält die Parameter für Optionen. |
|
iq_xNewCam |
BOOL |
Startet nach dem aktuellen Bewegungsprofil ein neues Bewegungsprofil. xNewCamDirectAccept = TRUE: Die Synchronisation des Signals iq_xNewCam mit q_xXLowEnd und q_xXHighEnd wird abgebrochen. iq_xNewCam wird sofort akzeptiert. Dadurch kann das Signal iq_xNewCam später kommen. Damit genügt das Setzen von iq_xNewCam auf einem Programmzyklus + einen SERCOS-Zyklus vor dem Ende der Kurve. |
iq_xInstantNewCam |
BOOL |
Bricht das aktuelle Bewegungsprofil bei i_lrInstantXLimMax ab und startet ein neues Bewegungsprofil. |
iq_stMultiCamData |
Information über den Kurvenverlauf. |
q_etDiag |
q_etDiagExt |
Enumerationswert |
Beschreibung |
---|---|---|---|
OK |
9 |
Die POU ist deaktiviert. |
|
OK |
4 |
Die POU wird initialisiert. |
|
OK |
151 |
Die Kurvenposition wird angezeigt. |
|
OK |
155 |
Es wird auf den nächsten Kurvenbefehl gewartet. |
|
OK |
5 |
Warten auf Startbefehl. |
|
OK |
148 |
Warten auf ein Signal WsStart. |
|
OK |
157 |
Warten auf Kuvenende. |
|
OK |
160 |
Warten, bis Kurvenposition erreicht. |
|
OK |
152 |
Warten auf den Beginn der Kurve. |
|
OK |
8 |
Warten, bis die POU deaktiviert ist. |
|
OK |
154 |
Warten, bis die erste Kurve begonnen hat. |
|
OK |
149 |
Warten, bis die Startposition erreicht wurde. |
|
OK |
159 |
Warten, bis der Antrieb angehalten hat. |
|
OK |
156 |
Warten, bis Stopposition erreicht wurde. |
|
DriveConditionInvalid |
10 |
Der Antrieb ist nicht bereit für Bewegungsbefehle. |
|
InputParameterInvalid |
12 |
Acc ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
125 |
Die Randbedingungen sind ungültig. |
|
InputParameterInvalid |
13 |
Dec ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
3 |
Verbundener Antrieb ist ungültig. |
|
InputParameterInvalid |
14 |
Jerk ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
162 |
Der verbundene logische Geber ist ungültig. |
|
InputParameterInvalid |
121 |
NumberOfCamPoints ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
129 |
K ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
130 |
M ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
126 |
Der Kurventyp ist nicht bestimmbar. |
|
InputParameterInvalid |
164 |
CsModeMaster nicht bestimmbar. |
|
InputParameterInvalid |
181 |
CsModeSlave nicht bestimmbar. |
|
InputParameterInvalid |
153 |
WSMode ist nicht bestimmbar. |
|
InputParameterInvalid |
11 |
Vel ist außerhalb des gültigen Bereichs. |
|
InputParameterInvalid |
122 |
XFactor ist zu klein. |
|
InputParameterInvalid |
158 |
YEqualCheck ist fehlgeschlagen. |
|
SercosConditionInvalid |
19 |
Der Sercos-Bus befindet sich nicht in Phase 4. |
|
UnexpectedProgramBehavior |
116 |
Das Profil wird bereits verwendet. |
|
UnexpectedProgramBehavior |
127 |
Der Speicher für Tabellen aus Systemprofilen ist voll. |
|
UnexpectedProgramBehavior |
123 |
Die Tabelle für Systemprofile ist voll. |
|
UnexpectedProgramBehavior |
1 |
Es ist ein unbeabsichtigter Fehler während der Ausführung aufgetreten. |
|
UnexpectedProgramBehavior |
2 |
Die POU befindet sich in einem undefinierten Zustand. |
|
WarmStartConditionInvalid |
150 |
Die Position des Antriebs ist außerhalb von WsWindow. |
|
WarmStartConditionInvalid |
161 |
Der Master hat sich bewegt. |
|
WarmStartConditionInvalid |
326 |
Ein anwenderdefiniertes Kurvenprofil wurde gelöscht. |
Enumerationsname: |
AccRange |
Enumerationswert: |
12 |
Beschreibung: |
Acc ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrWsAcc wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < i_lrWsAcc < Antriebsparameter MaxAcc Zulässiger Wertebereich für i_lrWsAcc, siehe Ausgang q_sMsg |
- |
Falls iq_stExt.xStartPositionSelect = TRUE: Am Eingang iq_stExt.lrStartAcceleration wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < iq_stExt.lrStartAcceleration < Parameter MaxAcc der Achse Zulässiger Wertebereich für iq_stExt.lrStartAcceleration, siehe Ausgang q_sMsg |
- |
Falls iq_stExt.xStopPositionSelect = TRUE: Am Eingang iq_stExt.lrStopAcceleration wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < iq_stExt.lrStopAcceleration < Parameter MaxAcc der Achse Zulässiger Wertebereich für iq_stExt.lrStopAcceleration, siehe Ausgang q_sMsg |
Enumerationsname: |
BoundaryConditionInvalid |
Enumerationswert: |
125 |
Beschreibung: |
Die Randbedingungen sind ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Bei der Definition des Bewegungsprofils in iq_stMultiCamData können die vorgegebenen Randbedingungen der Segmente nicht eingehalten werden |
Prüfen Sie die Definition des Bewegungsprofils, insbesondere die Randbedingungen der Teilsegmente. Wählen Sie alternativ andere Profile für die Teilsegmente, um alle gewünschten Randbedingungen einhalten zu können. |
Enumerationsname: |
DecRange |
Enumerationswert: |
13 |
Beschreibung: |
Dec ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Falls iq_stExt.xStartPositionSelect = TRUE: Am Eingang iq_stExt.lrStartDeceleration wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < iq_stExt.lrStartDeceleration < Parameter MaxAcc der Achse Zulässiger Wertebereich für iq_stExt.lrStartDeceleration, siehe Ausgang q_sMsg |
- |
Falls iq_stExt.xStopPositionSelect = TRUE: Am Eingang iq_stExt.lrStopDeceleration wurde ein ungültiger Wert übergeben. |
Es muss gelten: 0 < iq_stExt.lrStopDeceleration < Parameter MaxAcc der Achse Zulässiger Wertebereich für iq_stExt.lrStopDeceleration, 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: |
DrivePositionOutOfWsWindow |
Enumerationswert: |
150 |
Beschreibung: |
Die Position des Antriebs ist außerhalb von WsWindow. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Achse wurde im ausgeschalteten Zustand weiter als i_WsWindow bewegt. |
Schieben Sie die Achse zurück in das Warmstartfenster. Vergrößern Sie das Warmstartfenster. Führen Sie einen Kaltstart aus. |
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: |
JerkRange |
Enumerationswert: |
14 |
Beschreibung: |
Jerk ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_lrWsJerk wurde ein ungültiger Wert angelegt. |
Am Eingang i_lrWsJerkGc_lrMaxJerk muss ein Wert größer als 0 und kleiner oder gleich übergeben werden. |
- |
Am Eingang iq_stExt.xStartPositionSelect wurde TRUE und am Eingang iq_stExt.lrStartJerk ein ungültiger Wert angelegt wurde. |
Am Eingang iq_stExt.lrStartJerk muss ein Wert größer als 0 und kleiner oder gleich Gc_lrMaxJerk übergeben werden. Fahren Sie nicht auf eine Startposition, indem iq_stExt.xStartPositionSelect auf FALSE gesetzt wird. |
- |
Am Eingang iq_stExt.xStopPositionSelect wurde TRUE und am Eingang iq_stExt.lrStopJerk ein ungültiger Wert angelegt wurde. |
Am Eingang iq_stExt.lrStopJerk muss ein Wert größer als 0 und kleiner oder gleich Gc_lrMaxJerk übergeben werden. Fahren Sie nicht auf eine Stopposition, indem iq_stExt.xStopPositionSelect auf FALSE gesetzt wird. |
Enumerationsname: |
LencInvalid |
Enumerationswert: |
162 |
Beschreibung: |
Der verbundene logische Geber ist ungültig. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_lencEncoder wurde kein Geber angelegt. |
Dem Eingang iq_lencEncoder muss ein eigener logischer Geber übergeben werden. |
Enumerationsname: |
MasterMoved |
Enumerationswert: |
161 |
Beschreibung: |
Der Master hat sich bewegt. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Master hat sich während des Warmstarts bewegt. |
Es muss dafür gesorgt werden, dass sich der Master während der Warmstartbewegung nicht bewegt. |
Enumerationsname: |
NumberOfCamPointsRange |
Enumerationswert: |
121 |
Beschreibung: |
NumberOfCamPoints ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stMultiCamData.diNumberOfCamPoints wurde ein ungültiger Wert übergeben. |
Dem Eingang iq_stMultiCamData.diNumberOfCamPoints muss ein Wert größer als 0 und kleiner oder gleich SystemInterface.MAX_NO_OF_SEG + 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: |
ProfileMemoryFull |
Enumerationswert: |
127 |
Beschreibung: |
Der Speicher für Tabellen aus Systemprofilen ist voll. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Speicher für Systemprofile ist voll. |
Löschen Sie nicht mehr benötigte Profile mit der Funktion SystemInterface.FC_ProfileDelete. |
Enumerationsname: |
ProfileTableFull |
Enumerationswert: |
123 |
Beschreibung: |
Die Tabelle für Systemprofile ist voll. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die maximale Anzahl der Systemprofile wurde überschritten. |
Löschen Sie nicht mehr benötigte Profile mit der Funktion SystemInterface.FC_ProfileDelete. |
Enumerationsname: |
RangeK |
Enumerationswert: |
129 |
Beschreibung: |
K ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stMultiCamData.astCamPoint[ ].lrK wurde ein ungültiger Wert angelegt. |
Prüfen Sie die Werte für iq_stMultiCamData.astCamPoint[ ].lrK. |
Enumerationsname: |
RangeM |
Enumerationswert: |
130 |
Beschreibung: |
M ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang iq_stMultiCamData.astCamPoint[ ].lrM wurde ein ungültiger Wert angelegt. |
Prüfen Sie die Werte für iq_stMultiCamData.astCamPoint[ ].lrM. |
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. |
Enumerationsname: |
ShowCamPosition |
Enumerationswert: |
151 |
Beschreibung: |
Die Kurvenposition wird angezeigt. |
Am Ausgang q_lrPositionY wird die Kurvenposition angezeigt.
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: |
UnknownCamType |
Enumerationswert: |
126 |
Beschreibung: |
Der Kurventyp ist nicht bestimmbar. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Der Kurventyp eines Punktes iq_stMultiCamData.astCamPoint ist mit einem ungültigen Kurvenprofil belegt. |
Die Kurventypen etCamType aller verwendeten Kurvenpunkte am Eingang iq_stMultiCamData.astCamPoint müssen mit einem Element der Enumeration ET_CamType belegt werden. |
Enumerationsname: |
UnknownCsModeMaster |
Enumerationswert: |
164 |
Beschreibung: |
CsModeMaster nicht bestimmbar. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_etCsModeMaster wurde ein ungültiger Wert übergeben. |
Am Eingang i_etCsModeMaster muss ein Element der Enumeration ET_MultiCamCsModeMaster übergeben werden. |
Enumerationsname: |
UnknownCsModeSlave |
Enumerationswert: |
181 |
Beschreibung: |
CsModeSlave nicht bestimmbar. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_etCsModeSlave wurde ein ungültiger Wert übergeben. |
Am Eingang i_etCsModeSlave muss ein Element der Enumeration ET_MultiCamCsModeSlave übergeben werden. |
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: |
UnknownWsMode |
Enumerationswert: |
153 |
Beschreibung: |
WSMode ist nicht bestimmbar. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Am Eingang i_etWSMode wurde ein ungültiger Wert angelegt. |
Der Eingang i_etWSMode muss mit Elementen der Enumeration ET_MultiCamWsMode belegt werden. |
Enumerationsname: |
UserCamHasBeenDeleted |
Enumerationswert: |
326 |
Beschreibung: |
Ein anwenderdefiniertes Kurvenprofil wurde gelöscht. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Ein aktives Kurvenprofil wurde durch den Aufruf von SystemInterface.FC_ProfileDelete() gelöscht. |
Stellen Sie sicher, dass die Kurvenprofile bei der Ausführung verfügbar sind. |
Enumerationsname: |
VelRange |
Enumerationswert: |
11 |
Beschreibung: |
Vel ist außerhalb des gültigen Bereichs. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Die Warmstartgeschwindigkeit kann von der Achse nicht erreicht werden. |
Belegen Sie i_lrWsVel mit einem Wert, dessen Betrag kleiner ist als der Parameter MaxVel der Achse. |
- |
Die Geschwindigkeit der Startbewegung kann von der Achse nicht erreicht werden. |
Belegen Sie iq_stExt.lrStartVelocity mit einem Wert, dessen Betrag kleiner ist als der Parameter MaxVel der Achse. Setzen Sie iq_stExt.xStartPositionSelect auf FALSE, um keine Startbewegung auszuführen. |
- |
Die Geschwindigkeit der Stoppbewegung kann von der Achse nicht erreicht werden. |
Belegen Sie iq_stExt.lrStopVelocity mit einem Wert, dessen Betrag kleiner ist als der Parameter MaxVel der Achse. Setzen Sie iq_stExt.xStopPositionSelect auf FALSE, um keine Stoppbewegung auszuführen. |
Enumerationsname: |
WaitForNewCam |
Enumerationswert: |
155 |
Beschreibung: |
Es wird auf den nächsten Kurvenbefehl gewartet. |
Die Kurven werden in ihrer Auftragsreihenfolge verfahren.
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: |
WaitForWsStart |
Enumerationswert: |
148 |
Beschreibung: |
Warten auf ein Signal WsStart. |
Auf ein Signal am Eingang i_xWsStart wird mit der Warmstartbewegung begonnen.
Enumerationsname: |
WaitUntilCamFinished |
Enumerationswert: |
157 |
Beschreibung: |
Warten auf Kuvenende. |
Die Achse fährt die aktuelle Kurve zu Ende.
Enumerationsname: |
WaitUntilCamPositionReached |
Enumerationswert: |
160 |
Beschreibung: |
Warten, bis Kurvenposition erreicht. |
Die Achse wird auf ihre Position auf der Kurve verfahren.
Enumerationsname: |
WaitUntilCamStarted |
Enumerationswert: |
152 |
Beschreibung: |
Warten auf den Beginn der Kurve. |
Der Funktionsbaustein wartet darauf, dass die Kurve verfahren wird.
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 Funktionsbaustein muss weiterhin aufgerufen werden, bis er q_xActive = FALSE meldet.
Enumerationsname: |
WaitUntilFirstCamStarted |
Enumerationswert: |
154 |
Beschreibung: |
Warten, bis die erste Kurve begonnen hat. |
Der Funktionsbaustein wartet darauf, dass die erste Kurve gestartet wird.
Enumerationsname: |
WaitUntilStartPositionReached |
Enumerationswert: |
149 |
Beschreibung: |
Warten, bis die Startposition erreicht wurde. |
Die Achse wird auf ihre Startposition gefahren.
Enumerationsname: |
WaitUntilStopped |
Enumerationswert: |
159 |
Beschreibung: |
Warten, bis der Antrieb angehalten hat. |
Die Achse wird angehalten.
Enumerationsname: |
WaitUntilStopPositionReached |
Enumerationswert: |
156 |
Beschreibung: |
Warten, bis Stopposition erreicht wurde. |
Die Achse wird auf ihre Stopposition gefahren und bleibt dort stehen.
Enumerationsname: |
XFactorTooSmall |
Enumerationswert: |
122 |
Beschreibung: |
XFactor ist zu klein. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Zwei aufeinanderfolgende Kurvenpunkte iq_stMultiCamData.astCamPoint[ ].lrX liegen weniger als 0,1 Einheiten auseinander. |
Überprüfen Sie die Definition der Kurve und entfernen Sie gegebenenfalls zu kurze Kurvenprofile. |
Enumerationsname: |
YEqualCheckFailed |
Enumerationswert: |
158 |
Beschreibung: |
YEqualCheck ist fehlgeschlagen. |
Problem |
Ursache |
Lösung |
---|---|---|
- |
Wenn iq_stExt.xYEqualCheck = TRUE: Die Überprüfung, ob die neue Kurve direkt der alten Kurve folgt, war nicht erfolgreich. |
Gestalten Sie die neue Kurve so, dass ihr Anfang weniger als 0,0001 Einheiten vom Ende der alten Kurve abweicht. Deaktivieren Sie die Überprüfung mit der Einstellung iq_stExt.xYEqualCheck = FALSE. |
Bezeichnung |
Beschreibung |
---|---|
Die Methode registriert den internen Logger-Punkt im Anwendungslogger. |