Incorrect status signal of the function block L_CamSetXAxisVelocity with negative master value

Which products are affected?
ESP-SPAC-CAM1 – Cam V2.0 software package (library LenzeCamControl1V0200.lib)

What does the response look like?
The status signal nState of the function block L_CamSetXAxisVelocity, which is connected to the global variable g_nVertShaftExtVelState of the cam template, indicates the status -11 ('resulting position change per cycle too great for synchronised stretching/compression').
In the cam template, this incorrectly output status message causes the error with the number 415 ('XYPosChangeLimit'). As a response to this error, the drive assumes the error status 'Fail QSP'.

When does the problem occur?
The problem occurs when the x-cycle is longer than 32767 [incr.] and
  • a negative master value (DFIN) is given in the case of direct master value specification (L_CamSetXAxisVelocity.bCwCcw = FALSE) or
  • a positive master value (DFIN) is specified and the inverted direction of rotation of the master value is preselected (L_CamSetXAxisVelocity.bCwCcw = TRUE) on the function block

Note:
In the cam template, the input variable L_CamSetXAxisVelocity.bCwCcw is controlled with the global variable g_bVertShaftExtVelCwCcw.

Diagnostics options?
The behaviour can be checked by the user specifying a negative speed value at the input variable L_CamSetXAxisVelocity.nDfIn_v which causes a position change that ends in the cycle jump (x = 0). This test can, for example, be performed using the function block L_CamExtrapolate. To do so, the input variable L_CamExtrapolate.dnPosIn_p is first described with a positive position and then with the position 0. Due to this position change, a negative speed is output with the output variable L_CamExtrapolate.nNOut_v which causes a position change to the cycle jump. The output variable L_CamExtrapolate.nNOut_v is assigned to the input variable nDfIn_v of the function block L_CamSetXAxisVelocity.

Short-term measures/recommendations?
To avoid the functional restriction described when it is necessary to work with a negative master value, you should adhere to the following procedure:

1. The master speed at the function block input L_CamSetXAxisVelocity.nDfIn_v (in the cam template at the global variable g_nVertShaftExt_v) must always have a positive sign when L_CamSetXAxisVelocity.bCwCcw = FALSE. If this is not the case, invert the master speed (for example through level inversion at the function block input L_CamSetXAxisVelocity.bCwCcw).
2. To achieve a negative passage of the x cycle, a downstream SUB-block must be used to subtract the output variable L_CamSetXAxisVelocity.dnXPosOut_p (see image below) from the current x cycle (input variable dnActXLength_p).
3. To do so, the network 1 has to be changed in the cam template in the POU 'UserProcessInput'. Instead of making a direct assignment, this is done by adding a SUB-block which is assigned the global variable g_dnVertShaftLengthAct_p (current x cycle) at the upper input. The global variable g_dnVertShaftClutchXOut_p (home position of the clutch) is applied to the lower input. The output of the SUB-block is assigned the global variable g_dnVertShaftCamDataIn_p (input position for the cam function block L_CamData). This ensures that the current position of the x cycle is subtracted from the x cycle length which in turn supplies the originally desired negative master value direction of rotation.
Evaluation:
The behaviour described leads to an incorrect status message for the function block L_CamSetXAxisVelocity. In connection with the cam template, this incorrect status message in turn leads to the error with the number 415 ('XYPosChangeLimit'), meaning that the drive assumes the error status 'Fail QSP'. An additional logic interconnection (see Short-term measures/recommendations) can be used to ensure that no incorrect status messages are issued.

URL for linking this AKB article: https://www.lenze.com/en-de/go/akb/200704167/1/
Formulario de contacto