FAQ

  • Can this be changed?
  • How can I check how many movements I can still send into the FB (functionblock)?
  • Is there a queue where I can see this status?

Answer:

The internal buffer currently contains 15 movements.
This is not limited per cycle, but globally.

When a movement is accepted, it is stored in this buffer.
Once it is completed or aborted, it is removed from the buffer again.

Aborting movements and stop/stops are handled separately.
They are (in most cases) accepted immediately.


Currently, it is not possible to check how many movements still fit into the buffer.
This can only be read from the 'CommandAccepted' output (FALSE => buffer is full).

In this case, you can continue to call the motion functionblock in the next cycles, until it returns 'CommandAccepted'.

  • When using the SMC3_BrakeControl FB, an error message SMC_WP_DRIVE_PARAMETER_NOT_MAPPED is given.
  • Drive documentation, for mapping drive parameters, may advise to manually override the brake control.
  • Using MC_WriteParameter, will get the same SMC_WP_DRIVE_PARAMETER_NOT_MAPPED error.

Answer:

MC_WriteParameter is used for writing SoftMotion parameters, which are different from SoE objects.

With the SoftMotion version 4.14.0.0 there will be a function block SMC_ParameterNumber_SoE that converts from an SoE object to a SoftMotion parameter number.


The conversion can also be done as follows:

VAR
    /// The IDN
    IDN : UINT;
    /// 2: Name, 3: Attribute, 4: Unit, 5: Minimum, 6: Maximum, 0 or 7: Value
    element : USINT;
    /// The data length in bytes (1, 2, or 4).
    /// Only used when writing a parameter.
    dataLength : USINT;
END_VAR

parameterNumber :=
    -TO_DINT(SHL(TO_DWORD(dataLength AND 16#7), 28) +
             SHL(TO_DWORD(element AND 16#7), 16) +
             IDN);

Alternatively, one can use the standard function blocks for writing SoE objects, like ETC_SoE_IDNWrite or ETC_SoE_IDNWrite4. 




  • No labels