Skip to content

PLCopen Motion

PLCopen Motion support covers standard motion terminology, the truST-supported function-block subset, and the proof path from example axis to project validation.

Use Libraries first for package/project ownership. Use Libraries And Motion examples for the smallest runnable motion-shaped project.

Use PLCopen Motion OOP when the project should expose axis objects, command objects, and PLCopen OOP properties instead of only the classic function-block call surface.

Library Guide

This guide is the user-facing reference manual for the PLCopen Motion packages shipped with truST. It follows the same documentation intent users expect from library manuals such as OSCAT: each public type and each public function block is documented as a named API surface, not just listed in a coverage table.

If you want a worked project first, start with the reference example in examples/plcopen_motion_single_axis_demo. That project explains how the single-axis demo is wired and why the scan loop is written the way it is.

Package Layout

  • libraries/plcopen_motion/single_axis_core: single-axis motion, readbacks, and parameter access
  • libraries/plcopen_motion/synchronization: cam and gear synchronization blocks
  • libraries/plcopen_motion/coordinated_motion: group handles, transforms, and coordinated-motion blocks
  • libraries/plcopen_motion/homing: advanced homing-step blocks

Dependency Setup

Add the package you need to your project trust-lsp.toml. A minimal single-axis project typically starts with:

[project]
vendor_profile = "codesys"
include_paths = ["src"]
stdlib = "iec"

[dependencies]
PLCopenMotionSingleAxis = { path = "../../libraries/plcopen_motion/single_axis_core", version = "0.1.0" }

Library Usage Rules

  1. Keep one shared AXIS_REF per axis and one shared AXES_GROUP_REF per group.
  2. Instantiate each PLCopen function block once and call it every scan.
  3. Drive commands with Execute/Enable; do not expect one-shot FB calls to retain behavior if you stop calling them.
  4. Call MC_Constants() once during initialization before you use PN_* or mcERR_* members.
  5. Use the readback blocks continuously when your state machine depends on live status, position, or error state.

How To Read The Function Block Interfaces

  • VAR_IN_OUT: caller-owned handles or payloads passed by reference, such as Axis, Master, Slave, AxesGroup, or CamTable.
  • VAR_INPUT: ordinary input parameters copied into the function block each scan, such as Execute, Enable, Position, Velocity, or BufferMode.
  • VAR_OUTPUT: status and result values produced by the function block, such as Done, Busy, Active, Error, ErrorID, and readback values.

Single-axis core

Classic PLCopen Part 1 axis-control blocks. These are the normal starting point for one axis with power, homing, moves, stops, readbacks, and parameter access.

Public Data Types

AXIS_REF

Public handle for one motion axis. You keep one of these per axis and pass it by VAR_IN_OUT into the axis-related function blocks. Fields:

  • AxisId : UDINT: Stable public identifier for the axis in your application.
  • InternalIndex : UINT: Runtime registry slot used directly by the library implementation. Bind it to a configured Phase A slot in 0..31; out-of-range values are not normalized.

MC_BUFFER_MODE

Controls whether a command aborts the current motion, waits in a queue, or blends with adjacent motion commands. Values:

  • mcAborting: Abort the currently active command and start the new command immediately.
  • mcBuffered: Queue the new command behind the active command.
  • mcBlendingLow: Blend using the lower transition velocity policy.
  • mcBlendingPrevious: Blend using the previous command velocity.
  • mcBlendingNext: Blend using the next command velocity.
  • mcBlendingHigh: Blend using the higher transition velocity policy.

The current deterministic Phase A single-axis FBs publish all four mcBlending* values for source compatibility but reject them with mcERR_NotSupported. Use mcAborting or mcBuffered in this profile.

MC_DIRECTION

Selects how directional motion commands choose travel direction. Values:

  • mcPositiveDirection: Travel in the positive direction.
  • mcShortestWay: Choose the shortest path supported by the axis model.
  • mcNegativeDirection: Travel in the negative direction.
  • mcCurrentDirection: Continue using the current motion direction.

MC_EXECUTION_MODE

Controls how parameter, transform, and set-position style commands are applied. Values:

  • mcImmediately: Apply immediately when accepted.
  • mcDelayed: Delayed execution mode. The current shipped profile rejects unsupported delayed paths.
  • mcQueued: Queue behind already active/accepted work where supported.

MC_SOURCE

Chooses whether a readback or synchronization calculation uses commanded, set, or actual values. Values:

  • mcCommandedValue: Use the commanded/planned value.
  • mcSetValue: Use the setpoint value.
  • mcActualValue: Use the measured/actual value.

MC_AXIS_STATUS

Public axis-state enum used by the library state machine and exposed by status FBs. Values:

  • mcErrorStop: Axis is in error stop.
  • mcDisabled: Axis is disabled.
  • mcStandstill: Axis is powered and not moving.
  • mcHoming: Axis is performing a homing action.
  • mcStopping: Axis is stopping.
  • mcDiscreteMotion: Axis is in discrete point-to-point motion.
  • mcContinuousMotion: Axis is in continuous/velocity motion.
  • mcSynchronizedMotion: Axis is currently synchronized to another motion source.

Function Block Reference

MC_Power

Enable or remove power-stage permission for one axis. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Status : BOOL: Current achieved power/enabled state.

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Call every scan. Enable is level-sensitive; the block is not a one-shot command.

MC_Home

Run the basic PLCopen homing command and declare the homed position when the sequence completes. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Position : REAL: Target or reference position value.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Typical sequence is MC_Power -> MC_Home -> wait for Done -> move commands.

MC_Stop

Force an immediate stop sequence for one axis. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use for emergency or immediate stop handling. It does not rely on buffered blending behavior. If the deterministic kernel reaches zero velocity on the accepting invocation, Done is TRUE and Busy is FALSE while the axis remains in Stopping until Execute goes FALSE.

MC_Halt

Request a halt while preserving buffered-motion semantics. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when you want a controlled halt that still participates in the PLCopen buffering model.

MC_MoveAbsolute

Move one axis to an absolute target position. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • Position : REAL: Target or reference position value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • Direction : MC_DIRECTION: Requested travel direction policy.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Keep calling the block every scan after the rising edge; monitor Busy, Active, and Done.

MC_MoveRelative

Move one axis by a relative distance. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • Distance : REAL: Relative distance value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use buffered mode when you want this command to queue behind another motion command.

MC_MoveAdditive

Add a relative distance onto the current commanded target. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • Distance : REAL: Relative distance value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when the next target should be relative to the current commanded path rather than the actual position.

MC_MoveVelocity

Run one axis in velocity mode. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • Direction : MC_DIRECTION: Requested travel direction policy.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • InVelocity : BOOL: TRUE when the commanded velocity is reached.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use InVelocity plus readback FBs when your state machine needs confirmation that the commanded velocity has been reached.

MC_MoveContinuousAbsolute

Run an absolute move that aims to leave the segment with a requested end velocity. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • Position : REAL: Target or reference position value.
  • EndVelocity : REAL: Requested velocity at the end of the move segment.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • Direction : MC_DIRECTION: Requested travel direction policy.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • InEndVelocity : BOOL: TRUE when the commanded end-velocity condition is reached.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when segment-to-segment transitions need a non-zero end velocity.

MC_MoveContinuousRelative

Run a relative move that aims to leave the segment with a requested end velocity. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • Distance : REAL: Relative distance value.
  • EndVelocity : REAL: Requested velocity at the end of the move segment.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • InEndVelocity : BOOL: TRUE when the commanded end-velocity condition is reached.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use for relative segments that should leave the segment with a specific end velocity.

MC_SetPosition

Overwrite the current position reference without commanding a move. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Position : REAL: Target or reference position value.
  • Relative : BOOL: If TRUE, interpret the position as a relative offset.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use carefully; this changes the reference position rather than commanding a travel path.

MC_SetOverride

Apply velocity, acceleration, and jerk scaling factors. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • VelFactor : REAL: Velocity override factor.
  • AccFactor : REAL: Acceleration override factor.
  • JerkFactor : REAL: Jerk override factor. VAR_OUTPUT:

  • Enabled : BOOL: TRUE while the override function is active.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Keep the block enabled while you want the override factors applied.

MC_ReadActualPosition

Read the actual position from the library axis state. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Position : REAL: Target or reference position value.

MC_ReadActualVelocity

Read the actual velocity from the library axis state. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Velocity : REAL: Requested velocity.

MC_ReadActualTorque

Read the actual torque from the library axis state. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Torque : REAL: Reported torque value.

MC_ReadStatus

Read the high-level PLCopen axis-state bits. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • ErrorStop : BOOL: TRUE when the axis is in error stop.
  • Disabled : BOOL: TRUE when the axis or group is disabled.
  • Stopping : BOOL: TRUE when the axis or group is stopping.
  • Homing : BOOL: TRUE when the axis or group is homing.
  • Standstill : BOOL: TRUE when the axis or group is standing still.
  • DiscreteMotion : BOOL: TRUE during discrete point-to-point motion.
  • ContinuousMotion : BOOL: TRUE during continuous/velocity motion.
  • SynchronizedMotion : BOOL: TRUE during synchronized motion.

MC_ReadMotionState

Read motion-phase flags such as accelerating or constant velocity. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • Source : MC_SOURCE: Requested value source. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • ConstantVelocity : BOOL: TRUE while velocity is constant.
  • Accelerating : BOOL: TRUE while the object is accelerating.
  • Decelerating : BOOL: TRUE while the object is decelerating.
  • DirectionPositive : BOOL: TRUE when motion is in the positive direction.
  • DirectionNegative : BOOL: TRUE when motion is in the negative direction.

MC_ReadAxisInfo

Read axis readiness, switch states, homed state, and warnings. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • HomeAbsSwitch : BOOL: Current absolute-home/reference switch state.
  • LimitSwitchPos : BOOL: Current positive limit switch state.
  • LimitSwitchNeg : BOOL: Current negative limit switch state.
  • Simulation : BOOL: TRUE when the axis is in simulated mode.
  • CommunicationReady : BOOL: TRUE when the backend communication path is ready.
  • ReadyForPowerOn : BOOL: TRUE when the axis is ready to be powered.
  • PowerOn : BOOL: TRUE when the axis power stage is on.
  • IsHomed : BOOL: TRUE when the axis is homed.
  • AxisWarning : BOOL: TRUE when the axis reports a warning state.

MC_ReadAxisError

Read the current axis error code. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • AxisErrorID : WORD: Current axis-level error code.

MC_Reset

Clear axis errors and leave error stop. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_ReadParameter

Read one numeric parameter from the axis parameter surface. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • ParameterNumber : INT: Parameter identifier to read or write. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Value : REAL: Value being read or written.

MC_ReadBoolParameter

Read one boolean parameter from the axis parameter surface. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • ParameterNumber : INT: Parameter identifier to read or write. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Value : BOOL: Value being read or written.

MC_WriteParameter

Write one numeric axis parameter. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ParameterNumber : INT: Parameter identifier to read or write.
  • Value : REAL: Value being read or written.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Standard read-only numeric parameter numbers may be initialized only while the axis is Disabled with no active or queued command. Later writes fail with mcERR_InvalidState.

MC_WriteBoolParameter

Write one boolean axis parameter. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ParameterNumber : INT: Parameter identifier to read or write.
  • Value : BOOL: Value being read or written.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_Constants

Publish standardized parameter numbers and shipped motion error constants. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • none VAR_INPUT:

  • none VAR_OUTPUT:

  • PN_CommandedPosition : INT: PN_CommandedPosition value of type INT.

  • PN_SWLimitPos : INT: PN_SWLimitPos value of type INT.
  • PN_SWLimitNeg : INT: PN_SWLimitNeg value of type INT.
  • PN_EnableLimitPos : INT: PN_EnableLimitPos value of type INT.
  • PN_EnableLimitNeg : INT: PN_EnableLimitNeg value of type INT.
  • PN_EnablePosLagMonitoring : INT: PN_EnablePosLagMonitoring value of type INT.
  • PN_MaxPositionLag : INT: PN_MaxPositionLag value of type INT.
  • PN_MaxVelocitySystem : INT: PN_MaxVelocitySystem value of type INT.
  • PN_MaxVelocityAppl : INT: PN_MaxVelocityAppl value of type INT.
  • PN_ActualVelocity : INT: PN_ActualVelocity value of type INT.
  • PN_CommandedVelocity : INT: PN_CommandedVelocity value of type INT.
  • PN_MaxAccelerationSystem : INT: PN_MaxAccelerationSystem value of type INT.
  • PN_MaxAccelerationAppl : INT: PN_MaxAccelerationAppl value of type INT.
  • PN_MaxDecelerationSystem : INT: PN_MaxDecelerationSystem value of type INT.
  • PN_MaxDecelerationAppl : INT: PN_MaxDecelerationAppl value of type INT.
  • PN_MaxJerkSystem : INT: PN_MaxJerkSystem value of type INT.
  • PN_MaxJerkAppl : INT: PN_MaxJerkAppl value of type INT.
  • PN_TRUST_VendorBool0 : INT: truST vendor BOOL parameter 1000; defaults to FALSE and has no motion-kernel side effect.
  • mcERR_None : WORD: mcERR_None value of type WORD.
  • mcERR_InvalidParameter : WORD: mcERR_InvalidParameter value of type WORD.
  • mcERR_InvalidState : WORD: mcERR_InvalidState value of type WORD.
  • mcERR_AxisGrouped : WORD: mcERR_AxisGrouped value of type WORD.
  • mcERR_GroupDisabled : WORD: mcERR_GroupDisabled value of type WORD.
  • mcERR_GroupNotReady : WORD: mcERR_GroupNotReady value of type WORD.
  • mcERR_NotHomed : WORD: mcERR_NotHomed value of type WORD.
  • mcERR_NotPowered : WORD: mcERR_NotPowered value of type WORD.
  • mcERR_BackendFault : WORD: mcERR_BackendFault value of type WORD.
  • mcERR_KinematicNoSolution : WORD: mcERR_KinematicNoSolution value of type WORD.
  • mcERR_KinematicSingularity : WORD: mcERR_KinematicSingularity value of type WORD.
  • mcERR_QueueFull : WORD: mcERR_QueueFull value of type WORD.
  • mcERR_NotSupported : WORD: mcERR_NotSupported value of type WORD. Usage notes: Call once during initialization and then reuse the published PN_* and mcERR_* members.

Synchronization

Master/slave cam and gear blocks built on top of the single-axis handle types.

Public Data Types

MC_START_MODE

Defines how a synchronization command starts relative to the master axis. Values:

  • mcAbsolute: Synchronize using absolute master positioning.
  • mcRelative: Synchronize using relative positioning.
  • mcRampIn: Ramp into synchronization.

MC_SYNC_MODE

Defines how MC_GearInPos reaches synchronization. Values:

  • mcShortest: Reach sync with the shortest path policy.
  • mcCatchUp: Catch up to the master.
  • mcSlowDown: Slow down to reach synchronization.

MC_CAM_ID

Identifier for a selected cam table. Underlying type: UINT

MC_CAM_REF

Inline cam-table payload containing master/slave point pairs and table metadata. Fields:

  • CamId : MC_CAM_ID: Identifier of the cam table.
  • NumberOfPairs : UINT: Number of valid master/slave point pairs in the table.
  • IsAbsolute : BOOL: Whether the cam positions are absolute values.
  • MasterPosition0 : REAL: Master-axis position for pair 0.
  • MasterPosition1 : REAL: Master-axis position for pair 1.
  • MasterPosition2 : REAL: Master-axis position for pair 2.
  • MasterPosition3 : REAL: Master-axis position for pair 3.
  • MasterPosition4 : REAL: Master-axis position for pair 4.
  • MasterPosition5 : REAL: Master-axis position for pair 5.
  • MasterPosition6 : REAL: Master-axis position for pair 6.
  • MasterPosition7 : REAL: Master-axis position for pair 7.
  • SlavePosition0 : REAL: Slave-axis position for pair 0.
  • SlavePosition1 : REAL: Slave-axis position for pair 1.
  • SlavePosition2 : REAL: Slave-axis position for pair 2.
  • SlavePosition3 : REAL: Slave-axis position for pair 3.
  • SlavePosition4 : REAL: Slave-axis position for pair 4.
  • SlavePosition5 : REAL: Slave-axis position for pair 5.
  • SlavePosition6 : REAL: Slave-axis position for pair 6.
  • SlavePosition7 : REAL: Slave-axis position for pair 7.

Function Block Reference

MC_CamTableSelect

Select the cam profile a slave axis will use. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Master : AXIS_REF: Master axis handle.
  • Slave : AXIS_REF: Slave axis handle.
  • CamTable : MC_CAM_REF: Cam table payload passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Periodic : BOOL: TRUE when the cam table should wrap periodically.
  • MasterAbsolute : BOOL: Treat master positions as absolute values.
  • SlaveAbsolute : BOOL: Treat slave positions as absolute values.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CamTableID : MC_CAM_ID: Identifier of the selected cam table. Usage notes: Select the cam table before triggering MC_CamIn.

MC_CamIn

Enter cam synchronization between master and slave. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Master : AXIS_REF: Master axis handle.
  • Slave : AXIS_REF: Slave axis handle. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • MasterOffset : REAL: Offset applied to the master value.
  • SlaveOffset : REAL: Offset applied to the slave value.
  • MasterScaling : REAL: Scaling factor applied to the master value.
  • SlaveScaling : REAL: Scaling factor applied to the slave value.
  • MasterStartDistance : REAL: Distance before the sync point where synchronization begins.
  • MasterSyncPosition : REAL: Master position used as the sync reference.
  • StartMode : MC_START_MODE: Synchronization start mode.
  • MasterValueSource : MC_SOURCE: Source used for the master axis value.
  • CamTableID : MC_CAM_ID: Identifier of the selected cam table.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • InSync : BOOL: TRUE when synchronization is reached.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • EndOfProfile : BOOL: TRUE when the selected cam profile reached its end. Usage notes: A typical flow is MC_CamTableSelect -> MC_CamIn -> wait for InSync.

MC_CamOut

Leave cam synchronization. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Slave : AXIS_REF: Slave axis handle. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GearIn

Start geared motion between master and slave. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Master : AXIS_REF: Master axis handle.
  • Slave : AXIS_REF: Slave axis handle. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ContinuousUpdate : BOOL: Allows the command parameters to be refreshed while the command is active where the profile supports it.
  • RatioNumerator : INT: Gear ratio numerator.
  • RatioDenominator : UINT: Gear ratio denominator.
  • MasterValueSource : MC_SOURCE: Source used for the master axis value.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • InGear : BOOL: TRUE when gearing is established.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use with one master and one slave that already share valid axis handles.

MC_GearOut

Leave geared motion. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Slave : AXIS_REF: Slave axis handle. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GearInPos

Synchronize a slave to a master at specified sync positions. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Master : AXIS_REF: Master axis handle.
  • Slave : AXIS_REF: Slave axis handle. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • RatioNumerator : INT: Gear ratio numerator.
  • RatioDenominator : UINT: Gear ratio denominator.
  • MasterValueSource : MC_SOURCE: Source used for the master axis value.
  • MasterSyncPosition : REAL: Master position used as the sync reference.
  • SlaveSyncPosition : REAL: Slave position used as the sync reference.
  • SyncMode : MC_SYNC_MODE: Synchronization approach policy.
  • MasterStartDistance : REAL: Distance before the sync point where synchronization begins.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • StartSync : BOOL: TRUE when the sync approach has started.

  • InSync : BOOL: TRUE when synchronization is reached.
  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when synchronization must happen at explicit master/slave positions rather than immediately.

Coordinated motion

Group-level handles, position payloads, transforms, and coordinated move blocks.

Public Data Types

AXIS_REF

Public handle for one motion axis. You keep one of these per axis and pass it by VAR_IN_OUT into the axis-related function blocks. Fields:

  • AxisId : UDINT: Stable public identifier for the axis in your application.
  • InternalIndex : UINT: Runtime registry slot used by the library implementation.

MC_BUFFER_MODE

Controls whether a command aborts the current motion, waits in a queue, or blends with adjacent motion commands. Values:

  • mcAborting: Abort the currently active command and start the new command immediately.
  • mcBuffered: Queue the new command behind the active command.
  • mcBlendingLow: Blend using the lower transition velocity policy.
  • mcBlendingPrevious: Blend using the previous command velocity.
  • mcBlendingNext: Blend using the next command velocity.
  • mcBlendingHigh: Blend using the higher transition velocity policy.

MC_EXECUTION_MODE

Controls how parameter, transform, and set-position style commands are applied. Values:

  • mcImmediately: Apply immediately when accepted.
  • mcDelayed: Delayed execution mode. The current shipped profile rejects unsupported delayed paths.
  • mcQueued: Queue behind already active/accepted work where supported.

MC_SOURCE

Chooses whether a readback or synchronization calculation uses commanded, set, or actual values. Values:

  • mcCommandedValue: Use the commanded/planned value.
  • mcSetValue: Use the setpoint value.
  • mcActualValue: Use the measured/actual value.

AXES_GROUP_REF

Public handle for one coordinated-motion group. Fields:

  • GroupId : UDINT: Stable public identifier for the group.
  • InternalIndex : UINT: Runtime registry slot used by the library implementation.

AXIS_ID

Public axis identifier used by group readback blocks. Underlying type: UDINT

AXES_GROUP_ID

Public group identifier used by group readback blocks. Underlying type: UDINT

IDENT_IN_GROUP_REF

Stable member name used when adding an axis to a group and reading group configuration. Underlying type: STRING[63]

MC_COMMAND_ID

Identifier for a queued or active coordinated-motion command. Underlying type: UINT

MC_GROUP_PARAMETER

Supported group parameter names for group parameter read/write blocks. Values:

  • mcDynamicsMode: Group dynamics mode parameter.
  • mcTransitionReferencePoint: Transition reference-point parameter.

MC_TRANSITION_PARAMETER

Additional numeric parameter used by transition/blending modes. Underlying type: REAL

MC_KIN_REF

Handle for a kinematic transform profile. Underlying type: UINT

MC_COORD_SYSTEM

Coordinate-space selector for group readback, transforms, and moves. Values:

  • mcACS: Axis coordinate system.
  • mcMCS: Machine coordinate system.
  • mcWCS: World coordinate system.
  • mcPCS: Product coordinate system.
  • mcFCS: Fixture coordinate system.
  • mcTCS: Tool coordinate system.

MC_DYNAMICS_MODE

Defines whether dynamics values are interpreted as absolute values or percentages. Values:

  • mcAbsolute: Interpret dynamics as absolute values.
  • mcPercentage: Interpret dynamics as percentages of reference/default dynamics.

MC_TRANSITION_MODE

Defines the transition/blending model between coordinated moves. Values:

  • mcTMNone: No transition blending.
  • mcTMStartVelocity: Blend using start velocity.
  • mcTMConstantVelocity: Blend using constant velocity.
  • mcTMCornerDistance: Blend using a corner-distance rule.
  • mcTMMaxCornerDeviation: Blend using a max-corner-deviation rule.

MC_TRANSITION_VELOCITY

Defines the velocity policy at a coordinated-motion transition. Values:

  • mcTVZero: Use zero transition velocity.
  • mcTVLow: Use the lower velocity.
  • mcTVPrevious: Use the previous segment velocity.
  • mcTVNext: Use the next segment velocity.
  • mcTVHigh: Use the higher velocity.

MC_TRANSITION_REFERENCE

Defines whether a transition references the start or end of a segment. Values:

  • mcStartPoint: Reference the segment start point.
  • mcEndPoint: Reference the segment end point.

MC_ORIENTATION_MODE

Defines how orientation is handled during coordinated motion. Values:

  • mcLinear: Linearly interpolate orientation.
  • mcJointInterpolated: Interpolate in joint space.
  • mcFixed: Hold orientation fixed.
  • mcPathBased: Derive orientation from the path.

MC_COMMAND_STATE

Readback state for one coordinated-motion command. Values:

  • mcAccepted: Command has been accepted but may not be active yet.
  • mcActive: Command is the active motion command.

MC_GROUP_STATUS

Public group-state enum used by coordinated-motion readback blocks. Values:

  • mcGroupErrorStop: Group is in error stop.
  • mcGroupDisabled: Group is disabled.
  • mcGroupStandby: Group is enabled and waiting.
  • mcGroupHoming: Group is homing.
  • mcGroupStopping: Group is stopping.
  • mcGroupMoving: Group is moving.

MC_CART_REF

Cartesian position/orientation payload. Fields:

  • X : REAL: Translational X component.
  • Y : REAL: Translational Y component.
  • Z : REAL: Translational Z component.
  • RX : REAL: Rotational component around X.
  • RY : REAL: Rotational component around Y.
  • RZ : REAL: Rotational component around Z.

MC_COORD_REF

Coordinate-transform payload with the same field shape as MC_CART_REF. Fields:

  • X : REAL: Translational X component.
  • Y : REAL: Translational Y component.
  • Z : REAL: Translational Z component.
  • RX : REAL: Rotational component around X.
  • RY : REAL: Rotational component around Y.
  • RZ : REAL: Rotational component around Z.

MC_CONFIG_DATA

Configuration flags that accompany Cartesian positions. Fields:

  • ConfigValid : BOOL: TRUE when the configuration flags are valid.
  • Shoulder : BOOL: Configuration flag for the shoulder branch.
  • Elbow : BOOL: Configuration flag for the elbow branch.
  • Wrist : BOOL: Configuration flag for the wrist branch.

MC_TURN_INFO

Auxiliary turn information for articulated systems. Fields:

  • ATurns : ARRAY[1..4] OF SINT: Auxiliary turn counters for additional axes.

MC_CART_POS_REF

Cartesian position payload including pose, configuration, turn info, and auxiliary axes. Fields:

  • Tcp : MC_CART_REF: Cartesian TCP pose.
  • Cfg : MC_CONFIG_DATA: Configuration flags.
  • TurnInfo : MC_TURN_INFO: Turn information for articulated systems.
  • AuxiliaryAxes : ARRAY[1..4] OF REAL: Auxiliary-axis positions.

MC_AXES_POS_REF

Axis-space position payload. Fields:

  • Axes : ARRAY[1..4] OF REAL: Axis-space position array.

MC_POS_REF

Combined Cartesian and axis-space position payload. Fields:

  • C : MC_CART_POS_REF: Cartesian representation.
  • A : MC_AXES_POS_REF: Axis-space representation.

MC_DISTANCE_REF

Relative-distance payload for group relative moves. Underlying type: MC_POS_REF

MC_SWLIMIT

Positive and negative software limits for one group member. Fields:

  • SWLimitPos : REAL: Positive software limit.
  • SWLimitNeg : REAL: Negative software limit.

MC_GROUP_SWLIMITS

Array of software-limit pairs for the group. Underlying type: ARRAY[1..4] OF MC_SWLIMIT

Function Block Reference

MC_AddAxisToGroup

Attach an axis to a coordinated-motion group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference.
  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • IdentInGroup : IDENT_IN_GROUP_REF: Stable group-member identifier. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Call once per member during group setup before enabling or moving the group.

MC_RemoveAxisFromGroup

Detach one named axis from a group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • IdentInGroup : IDENT_IN_GROUP_REF: Stable group-member identifier. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_UngroupAllAxes

Remove every axis from a group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupReadConfiguration

Read one configured member of a group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • IdentInGroup : IDENT_IN_GROUP_REF: Stable group-member identifier.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Axis : AXIS_REF: Shared axis handle passed by reference.
  • AxisID : AXIS_ID: Returned public axis identifier.

MC_ReadAxisGroupInfo

Read the group membership information for one axis. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference.
  • AxesGroupID : AXES_GROUP_ID: Returned public group identifier.
  • IdentInGroup : IDENT_IN_GROUP_REF: Stable group-member identifier.

MC_GroupEnable

Enable the coordinated-motion group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Enable the group after all required members and transforms are configured.

MC_GroupDisable

Disable the coordinated-motion group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupPower

Apply power permission to the whole group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Status : BOOL: Current achieved power/enabled state.

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use this like MC_Power, but for the whole group handle.

MC_GroupReadStatus

Read the high-level coordinated-motion group state. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • GroupMoving : BOOL: TRUE while the group is moving.
  • GroupHoming : BOOL: TRUE while the group is homing.
  • GroupErrorStop : BOOL: TRUE while the group is in error stop.
  • GroupStandby : BOOL: TRUE while the group is ready and idle.
  • GroupStopping : BOOL: TRUE while the group is stopping.
  • GroupDisabled : BOOL: TRUE while the group is disabled.

MC_GroupReadError

Read the current group error code. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • GroupErrorID : WORD: Current group error code.

MC_GroupReset

Clear group errors. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupReadPosition

Read current group position in the requested coordinate system. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • Source : MC_SOURCE: Requested value source. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Position : MC_POS_REF: Target or reference position value.

MC_GroupReadVelocity

Read current group velocity in the requested coordinate system. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • Source : MC_SOURCE: Requested value source. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Velocity : ARRAY[1..4] OF REAL: Requested velocity.
  • PathVelocity : REAL: Resulting path velocity.

MC_GroupReadAcceleration

Read current group acceleration in the requested coordinate system. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • Source : MC_SOURCE: Requested value source. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Acceleration : ARRAY[1..4] OF REAL: Requested acceleration.
  • PathAcceleration : REAL: Resulting path acceleration.

MC_GroupReadMotionState

Read detailed motion flags and the active command ID for the group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Tracking : BOOL: TRUE when the group is in a tracking state.
  • InSync : BOOL: TRUE when synchronization is reached.
  • InPosition : BOOL: TRUE when the group is in position.
  • Standstill : BOOL: TRUE when the axis or group is standing still.
  • ConstantVelocity : BOOL: TRUE while velocity is constant.
  • Accelerating : BOOL: TRUE while the object is accelerating.
  • Decelerating : BOOL: TRUE while the object is decelerating.
  • ActiveCommandID : MC_COMMAND_ID: Identifier of the current active command.

MC_GroupReadParameter

Read one group parameter. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • ParameterNumber : MC_GROUP_PARAMETER: Parameter identifier to read or write. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Value : REAL: Value being read or written.

MC_GroupWriteParameter

Write one group parameter. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • ParameterNumber : MC_GROUP_PARAMETER: Parameter identifier to read or write.
  • Value : REAL: Value being read or written.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupReadSWLimits

Read the configured software limits for the group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • LimitValues : MC_GROUP_SWLIMITS: Software-limit payload.

MC_GroupWriteSWLimits

Write the configured software limits for the group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • LimitValues : MC_GROUP_SWLIMITS: Software-limit payload.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_SetKinTransform

Select a kinematic transform profile for the group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • KinTransform : MC_KIN_REF: Kinematic transform handle.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_SetCartesianTransform

Set a Cartesian transform by explicit translation and rotation fields. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • TransX : REAL: Translation in X.
  • TransY : REAL: Translation in Y.
  • TransZ : REAL: Translation in Z.
  • RotAngle1 : REAL: First rotation angle.
  • RotAngle2 : REAL: Second rotation angle.
  • RotAngle3 : REAL: Third rotation angle.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_SetCoordinateTransform

Set a Cartesian transform by a MC_COORD_REF payload. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • CoordTransform : MC_COORD_REF: Coordinate-transform payload.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_ReadKinTransform

Read the currently selected kinematic transform. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • KinTransform : MC_KIN_REF: Kinematic transform handle.

MC_ReadCartesianTransform

Read the current Cartesian transform fields. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • TransX : REAL: Translation in X.
  • TransY : REAL: Translation in Y.
  • TransZ : REAL: Translation in Z.
  • RotAngle1 : REAL: First rotation angle.
  • RotAngle2 : REAL: Second rotation angle.
  • RotAngle3 : REAL: Third rotation angle.

MC_ReadCoordinateTransform

Read the current coordinate transform payload. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CoordTransform : MC_COORD_REF: Coordinate-transform payload.

MC_GroupSetPosition

Overwrite the group position reference. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Position : MC_POS_REF: Target or reference position value.
  • Relative : BOOL: If TRUE, interpret the position as a relative offset.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • ExecutionMode : MC_EXECUTION_MODE: Execution policy for the write/set operation. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_MoveLinearAbsolute

Run a linear absolute coordinated move. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Position : MC_POS_REF: Target or reference position value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command.
  • TransitionVelocity : MC_TRANSITION_VELOCITY: Transition velocity policy.
  • TransitionMode : MC_TRANSITION_MODE: Transition/blending mode.
  • TransitionParameter : MC_TRANSITION_PARAMETER: Additional transition parameter.
  • OrientationMode : MC_ORIENTATION_MODE: Orientation interpolation mode. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command. Usage notes: Use when path following matters and the move should be linear in the selected coordinate system.

MC_MoveLinearRelative

Run a linear relative coordinated move. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Distance : MC_DISTANCE_REF: Relative distance value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command.
  • TransitionVelocity : MC_TRANSITION_VELOCITY: Transition velocity policy.
  • TransitionMode : MC_TRANSITION_MODE: Transition/blending mode.
  • TransitionParameter : MC_TRANSITION_PARAMETER: Additional transition parameter.
  • OrientationMode : MC_ORIENTATION_MODE: Orientation interpolation mode. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command. Usage notes: Use when the target is expressed as a relative delta rather than an absolute point.

MC_MoveDirectAbsolute

Run a direct absolute coordinated move. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Position : MC_POS_REF: Target or reference position value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command.
  • TransitionVelocity : MC_TRANSITION_VELOCITY: Transition velocity policy.
  • TransitionMode : MC_TRANSITION_MODE: Transition/blending mode.
  • TransitionParameter : MC_TRANSITION_PARAMETER: Additional transition parameter.
  • OrientationMode : MC_ORIENTATION_MODE: Orientation interpolation mode. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command. Usage notes: Use when a direct move is acceptable and path linearity is not required.

MC_MoveDirectRelative

Run a direct relative coordinated move. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Distance : MC_DISTANCE_REF: Relative distance value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command.
  • TransitionVelocity : MC_TRANSITION_VELOCITY: Transition velocity policy.
  • TransitionMode : MC_TRANSITION_MODE: Transition/blending mode.
  • TransitionParameter : MC_TRANSITION_PARAMETER: Additional transition parameter.
  • OrientationMode : MC_ORIENTATION_MODE: Orientation interpolation mode. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command. Usage notes: Relative version of the direct coordinated move.

MC_GroupHome

Home a coordinated-motion group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Position : MC_POS_REF: Target or reference position value.
  • CoordSystem : MC_COORD_SYSTEM: Coordinate system used by the command or readback.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupStop

Stop the whole group immediately. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupHalt

Halt the group while preserving buffered semantics. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAccepted : BOOL: TRUE when the command has been accepted.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupWaitTime

Insert a timed wait command into the group command stream. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Duration : TIME: Requested dwell time.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command. Usage notes: Useful for inserting dwell periods into a buffered group-motion sequence.

MC_GroupSetOverride

Apply group-wide override scaling factors. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • VelFactor : REAL: Velocity override factor.
  • AccFactor : REAL: Acceleration override factor.
  • JerkFactor : REAL: Jerk override factor. VAR_OUTPUT:

  • Enabled : BOOL: TRUE while the override function is active.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_TransformPosition

Transform one position payload between coordinate systems. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • InputPosition : MC_POS_REF: Position to transform.
  • InputCoordSystem : MC_COORD_SYSTEM: Coordinate system of the input position.
  • OutputCoordSystem : MC_COORD_SYSTEM: Coordinate system requested for the output position. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command.
  • OutputPosition : MC_POS_REF: Transformed position payload.
  • SingularPosition : BOOL: TRUE when the position is singular or near-singular. Usage notes: Use for coordinate conversion or preflight checks before issuing a group move.

MC_GroupReadCommandInfo

Read tracking/progress information for one coordinated-motion command. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid.

  • CommandID : MC_COMMAND_ID: Identifier assigned to the accepted command. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • CommandState : MC_COMMAND_STATE: Returned state of the tracked command.
  • ElapsedDuration : TIME: Elapsed command time.
  • RemainingDuration : TIME: Estimated remaining command time.
  • RemainingDistance : REAL: Estimated remaining path distance.
  • Progress : REAL: Normalized command progress value.
  • InfoID : WORD: Additional informational code.
  • WarningID : WORD: Additional warning code. Usage notes: Use when you need progress or timing feedback for long-running group commands.

MC_GroupWriteReferenceDynamics

Write the reference dynamics used by the group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupReadReferenceDynamics

Read the reference dynamics used by the group. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.

MC_GroupWriteDefaultDynamics

Write the default group dynamics values. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_GroupReadDefaultDynamics

Read the default group dynamics values. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • AxesGroup : AXES_GROUP_REF: Shared group handle passed by reference. VAR_INPUT:

  • Enable : BOOL: Level-sensitive enable input. Keep it TRUE while you want the block active or the readback valid. VAR_OUTPUT:

  • Valid : BOOL: TRUE when the readback outputs are valid this scan.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.

Homing

Part 5 homing toolkit blocks for step-by-step homing procedures beyond the basic MC_Home block.

Public Data Types

MC_HOME_DIRECTION

Direction selector used by the advanced homing step blocks. Values:

  • mcPositiveDirection: Travel in the positive direction.
  • mcNegativeDirection: Travel in the negative direction.
  • mcSwitchPositive: Determine direction from a positive switch interpretation.
  • mcSwitchNegative: Determine direction from a negative switch interpretation.

MC_SWITCH_MODE

Defines how a switch or reference signal is interpreted during homing. Values:

  • mcOn: Trigger when the signal is ON.
  • mcOff: Trigger when the signal is OFF.
  • mcRisingEdge: Trigger on a rising edge.
  • mcFallingEdge: Trigger on a falling edge.
  • mcEdgeSwitchPositive: Trigger on the positive-direction edge rule.
  • mcEdgeSwitchNegative: Trigger on the negative-direction edge rule.

MC_REF_SIGNAL_REF

Reference-signal payload containing the signal state and optional metadata. Fields:

  • Signal : BOOL: Current signal state.
  • PositionStamp : REAL: Position sampled with the signal.
  • MarkerCode : UINT: Optional marker/reference code.

Function Block Reference

MC_StepAbsoluteSwitch

Run a homing step that finishes when an absolute reference signal matches the requested switch mode. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Direction : MC_HOME_DIRECTION: Requested travel direction policy.
  • SwitchMode : MC_SWITCH_MODE: Reference-switch evaluation mode.
  • ReferenceSignal : MC_REF_SIGNAL_REF: Reference signal payload.
  • Velocity : REAL: Requested velocity.
  • SetPosition : REAL: Position to stamp into the axis when the homing step finishes.
  • TorqueLimit : REAL: Torque limit used during the homing step.
  • TimeLimit : TIME: Maximum allowed homing-step time.
  • DistanceLimit : REAL: Maximum allowed homing-step travel distance.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Usually one part of a larger homing recipe.

MC_StepLimitSwitch

Run a homing step that finishes when the selected limit switch matches the requested mode. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Direction : MC_HOME_DIRECTION: Requested travel direction policy.
  • LimitSwitchMode : MC_SWITCH_MODE: Limit-switch evaluation mode.
  • Velocity : REAL: Requested velocity.
  • SetPosition : REAL: Position to stamp into the axis when the homing step finishes.
  • TorqueLimit : REAL: Torque limit used during the homing step.
  • TimeLimit : TIME: Maximum allowed homing-step time.
  • DistanceLimit : REAL: Maximum allowed homing-step travel distance.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Choose the direction and switch mode so the step matches your machine hardware.

MC_StepBlock

Run a homing step that detects a block/hard-stop condition. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Direction : MC_HOME_DIRECTION: Requested travel direction policy.
  • Velocity : REAL: Requested velocity.
  • SetPosition : REAL: Position to stamp into the axis when the homing step finishes.
  • DetectionVelocityLimit : REAL: Velocity threshold used to detect a block condition.
  • DetectionVelocityTime : TIME: Time window for the block-detection velocity threshold.
  • TorqueLimit : REAL: Torque limit used during the homing step.
  • TimeLimit : TIME: Maximum allowed homing-step time.
  • DistanceLimit : REAL: Maximum allowed homing-step travel distance.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when a hard-stop or torque-detection style homing step is required.

MC_StepReferencePulse

Run a homing step that finishes on a reference pulse. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Direction : MC_HOME_DIRECTION: Requested travel direction policy.
  • ReferenceSignal : MC_REF_SIGNAL_REF: Reference signal payload.
  • Velocity : REAL: Requested velocity.
  • SetPosition : REAL: Position to stamp into the axis when the homing step finishes.
  • TorqueLimit : REAL: Torque limit used during the homing step.
  • TimeLimit : TIME: Maximum allowed homing-step time.
  • DistanceLimit : REAL: Maximum allowed homing-step travel distance.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when your axis hardware provides a dedicated reference pulse.

MC_StepDistanceCoded

Run a homing step that relies on distance-coded movement. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Direction : MC_HOME_DIRECTION: Requested travel direction policy.
  • Velocity : REAL: Requested velocity.
  • TorqueLimit : REAL: Torque limit used during the homing step.
  • TimeLimit : TIME: Maximum allowed homing-step time.
  • DistanceLimit : REAL: Maximum allowed homing-step travel distance.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_HomeDirect

Directly mark an axis as homed at a chosen position. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • SetPosition : REAL: Position to stamp into the axis when the homing step finishes.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use when an external mechanism has already established the absolute position.

MC_HomeAbsolute

Finish homing by using the current absolute reference. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code.

MC_FinishHoming

Complete the final move after the earlier homing steps have found the reference. Type: FUNCTION_BLOCK VAR_IN_OUT:

  • Axis : AXIS_REF: Shared axis handle passed by reference. VAR_INPUT:

  • Execute : BOOL: Command trigger input. Use a rising edge to request a new command, then keep calling the FB every scan.

  • Distance : REAL: Relative distance value.
  • Velocity : REAL: Requested velocity.
  • Acceleration : REAL: Requested acceleration.
  • Deceleration : REAL: Requested deceleration.
  • Jerk : REAL: Requested jerk.
  • BufferMode : MC_BUFFER_MODE: PLCopen buffering/blending mode for the command. VAR_OUTPUT:

  • Done : BOOL: TRUE when the requested command has completed successfully.

  • Busy : BOOL: TRUE while the command is accepted and still in progress.
  • Active : BOOL: TRUE while this FB owns the currently active motion command.
  • CommandAborted : BOOL: TRUE when the command was aborted by another accepted command or stop condition.
  • Error : BOOL: TRUE when the FB reports an error.
  • ErrorID : WORD: Current FB error code. Usage notes: Use as the closing step after earlier homing steps locate the reference.

Example And Further Reading

  • Example walkthrough: examples/plcopen_motion_single_axis_demo/README.md
  • Coverage matrix: docs/specs/coverage/plcopen-motion-coverage.md
  • Performance-only material: examples/plcopen_motion_single_axis_benchmarks/README.md