Betrifft welche Produkte?
ESP-SPAC-CAM1 (Bibliotheken Kurvenscheibe), Versionsstände bis einschließlich V2.0
Wie sieht die Reaktion aus?
Das Statussignal
nState des Funktionsblocks
L_CamSetXAxisVelocity, das mit der globalen Variable
g_nVertShaftExtVelState des Cam-Templates verbunden ist, meldet den Status -11 ('resultierende Positionsänderung pro Zyklus zu groß für synchronisiertes Dehnen/Stauchen') zurück.
Im Cam-Template führt diese fehlerhaft ausgegebene Statusmeldung zum Fehler mit der Nummer 415 ('XYPosChangeLimit'. Als Reaktion auf diesen Fehler geht der Antrieb in den Fehlerzustand 'Fail QSP'.
Wann tritt das Problem auf?
Das Problem tritt auf, wenn die x-Taktlänge größer ist als 32767[incr.] ist und
- bei direkter Leitwertvorgabe (L_CamSetXAxisVelocity.bCwCcw = FALSE) der Leitwert (DFIN) negativ vorgegeben wird oder
- der Leitwert (DFIN) positiv vorgegeben wird und am Funktionsblock die Drehsinninvertierung des Leitwertes vorgewählt ist (L_CamSetXAxisVelocity.bCwCcw = TRUE)
Info: Im Cam-Template wird die Eingangsvariable
L_CamSetXAxisVelocity.bCwCcw mit der globalen Variable
g_bVertShaftExtVelCwCcw angesteuert.
Diagnosemöglichkeiten?
Das Verhalten kann geprüft werden, indem der Anwender einen negativen Geschwindigkeitswert an der Eingangsvariable
L_CamSetXAxisVelocity.nDfIn_v vorgibt, der eine Positionsänderung hervorruft, die im Taktsprung (x = 0) endet. Für diesen Test kann z.B. der Funktionsbaustein
L_CamExtrapolate verwendet werden. Hierzu wird die Eingangsvariable
L_CamExtrapolate.dnPosIn_p zunächst mit einer positiven Position beschrieben und danach mit der Position 0. Aufgrund dieser Positionsänderung wird an der Ausgangsvariable
L_CamExtrapolate.nNOut_v eine negative Geschwindigkeit ausgegeben, die eine Positionsänderung auf den Taktsprung hervorruft. Die Ausgangsvariable
L_CamExtrapolate.nNOut_v weist man der Eingangsvariable
nDfIn_v des Funktionsblocks
L_CamSetXAxisVelocity zu.
Kurzfristige Maßnahmen/Empfehlungen?
Um die unter Reaktion aufgeführte Funktionseinschränkung zu umgehen, wenn man mit einem negativen Leitwert arbeiten muss, ist wie folgt vorzugehen:
1. Die Leitgeschwindigkeit am Funktionsblockeingang
L_CamSetXAxisVelocity.nDfIn_v (im Cam-Template an der globalen Variable
g_nVertShaftExt_v) muss bei
L_CamSetXAxisVelocity.bCwCcw = FALSE stets positives Vorzeichen aufweisen. Falls dies nicht der Fall ist, invertieren Sie die Leitgeschwindigkeit
(z.B. durch Pegelinvertierung am Funktionsblockeingang L_CamSetXAxisVelocity.bCwCcw).
2. Um dennoch einen negativen Durchlauf des x-Taktes zu erreichen, muss mittels eines nachgeschalteten SUB-Bausteins die Ausgangsvariable
L_CamSetXAxisVelocity.dnXPosOut_p von der aktuellen x-Taktlänge (Eingangsvariable
dnActXLength_p) subtrahiert werden (siehe Bild unten). Hierzu muss im Cam-Template in der POU 'UserProcessInput' das Netzwerk 1 verändert werden: Dazu fügen Sie anstatt der direkten Zuweisung einen SUB-Baustein ein, den Sie am oberen Eingang mit der globalen Variable
g_dnVertShaftLengthAct_p (aktuelle x-Taktlänge) belegen. Am unteren Eingang wird die globale Variable
g_dnVertShaftClutchXOut_p (Ausgangsposition der Kupplung) angelegt. Der Ausgang des SUB-Bausteines wird mit der globalen Variable
g_dnVertShaftCamDataIn_p (Eingangsposition für den Kurvenfunktionsblock
L_CamData) belegt. Dadurch wird erreicht, dass die aktuelle Position des x-Taktes von der x-Taktlänge abgezogen wird und so der ursprünglich gewünschte negative Leitwert-Drehsinn entsteht.
Bewertung:
Das beschriebene Verhalten führt zu einer fehlerhaften Statusmeldung für den Funktionsblock
L_CamSetXAxisVelocity. In Verbindung mit dem Cam-Template führt diese fehlerhaften Statusmeldung zu dem Fehler mit der Nummer 415 ('XYPosChangeLimit') und der Antrieb geht in den Fehlerzustand 'Fail QSP'. Über eine zusätzliche Logigverschaltung (siehe
Kurzfristige Maßnahmen/Empfehlungen) kann sichergestellt werden, dass es zu keiner fehlerhaften Statusmeldung kommt.
