FB_MultiCam - Allgemeine Informationen

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.3.0

Übernommen aus

-

Implementiert

-

Aufgabe

Kurvenbasierenden Bewegungsablauf ausführen.

Beschreibung

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 ereigniso­rientiert 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

G-SE-0068806.1.gif-high.gif

 

 

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 Leitgeberpo­sition i_lrInstantXLimMax übereinstimmen.

Die Nichtbeachtung dieser Anweisungen kann Sachschäden zur Folge haben.

InstantNewCam

G-SE-0068807.1.gif-high.gif

 

 

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_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

ET_MultiCamCsModeSlave

Kaltstartmodus der Slaveachse

i_etCsModeMaster

ET_MultiCamCsModeMaster

Kaltstartmodus des Leitgebers

i_etWsMode

ET_MultiCamWsMode

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

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_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

ST_ActualCamData

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

ST_MultiCamExt

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

ST_MultiCam

Information über den Kurvenverlauf.

Diagnosemeldungen

q_etDiag

q_etDiagExt

Enumerationswert

Beschreibung

OK

Disabled

9

Die POU ist deaktiviert.

OK

Initializing

4

Die POU wird initialisiert.

OK

ShowCamPosition

151

Die Kurvenposition wird angezeigt.

OK

WaitForNewCam

155

Es wird auf den nächsten Kurvenbefehl gewartet.

OK

WaitForStart

5

Warten auf Startbefehl.

OK

WaitForWsStart

148

Warten auf ein Signal WsStart.

OK

WaitUntilCamFinished

157

Warten auf Kuvenende.

OK

WaitUntilCamPositionReached

160

Warten, bis Kurvenposition erreicht.

OK

WaitUntilCamStarted

152

Warten auf den Beginn der Kurve.

OK

WaitUntilDisabled

8

Warten, bis die POU deaktiviert ist.

OK

WaitUntilFirstCamStarted

154

Warten, bis die erste Kurve begonnen hat.

OK

WaitUntilStartPositionReached

149

Warten, bis die Startposition erreicht wurde.

OK

WaitUntilStopped

159

Warten, bis der Antrieb angehalten hat.

OK

WaitUntilStopPositionReached

156

Warten, bis Stopposition erreicht wurde.

DriveConditionInvalid

DriveNotReady

10

Der Antrieb ist nicht bereit für Bewegungsbefehle.

InputParameterInvalid

AccRange

12

Acc ist außerhalb des gültigen Bereichs.

InputParameterInvalid

BoundaryConditionInvalid

125

Die Randbedingungen sind ungültig.

InputParameterInvalid

DecRange

13

Dec ist außerhalb des gültigen Bereichs.

InputParameterInvalid

DriveInvalid

3

Verbundener Antrieb ist ungültig.

InputParameterInvalid

JerkRange

14

Jerk ist außerhalb des gültigen Bereichs.

InputParameterInvalid

LencInvalid

162

Der verbundene logische Geber ist ungültig.

InputParameterInvalid

NumberOfCamPointsRange

121

NumberOfCamPoints ist außerhalb des gültigen Bereichs.

InputParameterInvalid

RangeK

129

K ist außerhalb des gültigen Bereichs.

InputParameterInvalid

RangeM

130

M ist außerhalb des gültigen Bereichs.

InputParameterInvalid

UnknownCamType

126

Der Kurventyp ist nicht bestimmbar.

InputParameterInvalid

UnknownCsModeMaster

164

CsModeMaster nicht bestimmbar.

InputParameterInvalid

UnknownCsModeSlave

181

CsModeSlave nicht bestimmbar.

InputParameterInvalid

UnknownWsMode

153

WSMode ist nicht bestimmbar.

InputParameterInvalid

VelRange

11

Vel ist außerhalb des gültigen Bereichs.

InputParameterInvalid

XFactorTooSmall

122

XFactor ist zu klein.

InputParameterInvalid

YEqualCheckFailed

158

YEqualCheck ist fehlgeschlagen.

SercosConditionInvalid

SercosNotInPhaseFour

19

Der Sercos-Bus befindet sich nicht in Phase 4.

UnexpectedProgramBehavior

ProfileAlreadyInUse

116

Das Profil wird bereits verwendet.

UnexpectedProgramBehavior

ProfileMemoryFull

127

Der Speicher für Tabellen aus Systemprofilen ist voll.

UnexpectedProgramBehavior

ProfileTableFull

123

Die Tabelle für Systemprofile ist voll.

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.

WarmStartConditionInvalid

DrivePositionOutOfWsWindow

150

Die Position des Antriebs ist außerhalb von WsWindow.

WarmStartConditionInvalid

MasterMoved

161

Der Master hat sich bewegt.

WarmStartConditionInvalid

UserCamHasBeenDeleted

326

Ein anwenderdefiniertes Kurvenprofil wurde gelöscht.

AccRange

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

BoundaryConditionInvalid

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.

DecRange

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

Disabled

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.

DriveInvalid

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.

DriveNotReady

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.

DrivePositionOutOfWsWindow

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.

Initializing

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.

JerkRange

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.

LencInvalid

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.

MasterMoved

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.

NumberOfCamPointsRange

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.

ProfileAlreadyInUse

Enumerationsname:

ProfileAlreadyInUse

Enumerationswert:

116

Beschreibung:

Das Profil wird bereits verwendet.

Problem

Ursache

Lösung

-

Das Bewegungsprofil wird bereits verwendet.

Überprüfen Sie die Bewegungsdaten.

ProfileMemoryFull

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.

ProfileTableFull

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.

RangeK

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.

RangeM

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.

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 SERCOS-Busparameter PhaseSet auf 4.

Überprüfen Sie den SERCOS-Bus auf Fehler.

ShowCamPosition

Enumerationsname:

ShowCamPosition

Enumerationswert:

151

Beschreibung:

Die Kurvenposition wird angezeigt.

Am Ausgang q_lrPositionY wird die Kurvenposition angezeigt.

UnexpectedFeedback

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.

UnknownCamType

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.

UnknownCsModeMaster

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.

UnknownCsModeSlave

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.

UnknownState

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.

UnknownWsMode

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.

UserCamHasBeenDeleted

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.

VelRange

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.

WaitForNewCam

Enumerationsname:

WaitForNewCam

Enumerationswert:

155

Beschreibung:

Es wird auf den nächsten Kurvenbefehl gewartet.

Die Kurven werden in ihrer Auftragsreihenfolge verfahren.

WaitForStart

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.

WaitForWsStart

Enumerationsname:

WaitForWsStart

Enumerationswert:

148

Beschreibung:

Warten auf ein Signal WsStart.

Auf ein Signal am Eingang i_xWsStart wird mit der Warmstartbewegung begonnen.

WaitUntilCamFinished

Enumerationsname:

WaitUntilCamFinished

Enumerationswert:

157

Beschreibung:

Warten auf Kuvenende.

Die Achse fährt die aktuelle Kurve zu Ende.

WaitUntilCamPositionReached

Enumerationsname:

WaitUntilCamPositionReached

Enumerationswert:

160

Beschreibung:

Warten, bis Kurvenposition erreicht.

Die Achse wird auf ihre Position auf der Kurve verfahren.

WaitUntilCamStarted

Enumerationsname:

WaitUntilCamStarted

Enumerationswert:

152

Beschreibung:

Warten auf den Beginn der Kurve.

Der Funktionsbaustein wartet darauf, dass die Kurve verfahren wird.

WaitUntilDisabled

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 Funktions­baustein muss weiterhin aufgerufen werden, bis er q_xActive = FALSE meldet.

WaitUntilFirstCamStarted

Enumerationsname:

WaitUntilFirstCamStarted

Enumerationswert:

154

Beschreibung:

Warten, bis die erste Kurve begonnen hat.

Der Funktionsbaustein wartet darauf, dass die erste Kurve gestartet wird.

WaitUntilStartPositionReached

Enumerationsname:

WaitUntilStartPositionReached

Enumerationswert:

149

Beschreibung:

Warten, bis die Startposition erreicht wurde.

Die Achse wird auf ihre Startposition gefahren.

WaitUntilStopped

Enumerationsname:

WaitUntilStopped

Enumerationswert:

159

Beschreibung:

Warten, bis der Antrieb angehalten hat.

Die Achse wird angehalten.

WaitUntilStopPositionReached

Enumerationsname:

WaitUntilStopPositionReached

Enumerationswert:

156

Beschreibung:

Warten, bis Stopposition erreicht wurde.

Die Achse wird auf ihre Stopposition gefahren und bleibt dort stehen.

XFactorTooSmall

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.

YEqualCheckFailed

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.

Methoden

Bezeichnung

Beschreibung

RegisterLoggerPoint

Die Methode registriert den internen Logger-Punkt im Anwendungslogger.