MC_LimitLoad (FB)

FUNCTION_BLOCK MC_LimitLoad

This function block activates a limitation of the load values provided by an axis.

../../../../../_images/plcopen.png

This may be torque, force, pressure or differential pressure. The measures taken to keep the limits are vendor specific; switching between load and motion control depends on the external load conditions of the axis. The function block sets the ‘Busy’ output when the limiting measures are stand-by on the axis. The ‘Active’ output is set, when the limiting measures are active on the axis.

Use Case Rational

The function block MC_LimitLoad is intended to provide overload protection for a process in terms of driving forces, torque or pressures during motion (e.g. mould protection in injection moulding machines). If load values on the axis exceed the given limit, appropriate measures are taken to keep this limit, implying that the motion will not be following the programmed path but now depends on the load conditions. However, the ‘Active’ output of the MC_MoveXXX will stay TRUE in this case, following the modified PLCopen definition “The ‘Active’ output indicates that the function block has control of the path generation for the axis”. This is despite the fact that, physically, only the load-conditions or the movement of an axis can be independently controlled with set values. With actual load below programmed limit, the programmed motion will proceed. The Function block can be applied in different scenarios which could be e.g.

  • A more centralized application in terms of a “protection mode”, where the complete motion is load limited. In this case the function block would be enabled independently from the motion program itself.

  • A more decentralized application in terms of additional functionality during the motion program. In this case the function block would be activated by and within the motion program itself. An application example is the mould protection scenario mentioned above, restricting the limiter activity to a certain phase of the programmed motion. Ensuring that limits are only supervised e.g. while one certain MC_MoveXXX has primary control on the axis can be achieved by enabling MC_LimitLoad by the ‘Active’ output of the MC_MoveXXX. In this way the limitation is only activated when the MC_MoveXXX takes control on the axis for the first time and is deactivated when the MC_MoveXXX loses control on the axis by ‘Done’, ‘CommandAborted’ or ‘Error’.

Note

If this block is used during a discrete (positioning) or synchronous movement, the axis will not reach the planned position

Note

This function block should not be used together with MC_LoadControl function block.

Note

Issuing MC_LimitLoad does not cause a motion of the axis itself. It is meant to work in parallel to a motion command. It is not guaranteed that activity of the limiting measures will be seen by the function block: a short pulse of the limited quantities could be over before the next Function Block cycle occurs.

Note

Use just one instance of this block per load axis, because the “Enable” has to define clearly if the functionality is activated. It is not foreseen to interrupt an instance by another of the same type, so the behavior is undefined.

InOut:

Scope

Name

Type

Comment

Input

Enable

BOOL

Allows function block to modify (clamp) a motion command

Load

LREAL

Value of the maximum applicable load on the axis (Torque, force or pressure in technical unit [u])

Direction

MC_Direction

Supported direction: Positive, negative, current, default. The direction determines if just positive or negative load values are to be limited, or both (default)

Output

Busy

BOOL

The function block is not finished. Output is independent of Axis status

Active

BOOL

Indicates that the function block has influence on the axis

Error

BOOL

Signals that error has occurred within function block

ErrorID

AC500_MotionControl.ERROR_ID

Error identification. For error details refer to enumeration ERROR_ID from AC500_MotionControl library

Inout

Load_Axis

Load_Ref

Reference to axis