The Input ContinuousUpdate

Like described in the previous chapter, the input Execute triggers a new movement. With a rising edge of this input the values of the other Function Block inputs are defining the movement. Until version 1.1 there was the general rule that a later change in these input parameters does not affect the ongoing motion.

Nevertheless, there are numerous application examples, where a continuous change of the parameters are needed. The user could retrigger the input Execute of the Function Block, but this complicated the application.

Therefore, the input ContinuousUpdate has been introduced. It is an extended input to all applicable Function Blocks. If it is TRUE, when the Function Block is triggered (rising Execute), it will - as long as it stays TRUE – make the Function Block use the current values of the input variables and apply it to the ongoing movement. This does not influence the general behavior of the Function Block nor does it impact the single axis state diagram. In other words it only influences the ongoing movement and its impact ends as soon as the Function Block is no longer Busy or the input ContinuousUpdate is set to FALSE.

Note

It can be that certain inputs like BufferMode are not really intended to change every cycle. However, this has to be dealt with in the application, and is not forbidden in the specification

If ContinuousUpdate is FALSE with the rising edge of the input Execute, a change in the input parameters is ignored during the whole movement and the original behavior of previous versions is applicable. The ContinuousUpdate is not a retriggering of the input Execute of the Function Block. A retriggering of a Function Block which was previously aborted, stopped, or completed, would regain control on the axis and also modify its single axis state diagram. Opposite to this, the ContinuousUpdate only effects an ongoing movement. Also, a ContinuousUpdate of relative inputs (e.g. Distance in MC_MoveRelative) always refers to the initial condition (at rising edge of Execute).

Example

  • MC_MoveContinuousRelative is started at Position 0 with Distance 100, Velocity 10 and ContinuousUpdate set TRUE. Execute is Set and so the movement is started to position 100.
  • While the movement is executed (let the drive be at position 50), the input Distance is changed to 130, Velocity 20.
  • The axis will accelerate (to the new Velocity 20) and stop at Position 130 and set the output Done and does not accept any new values.