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 accesslibraries/plcopen_motion/synchronization: cam and gear synchronization blockslibraries/plcopen_motion/coordinated_motion: group handles, transforms, and coordinated-motion blockslibraries/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¶
- Keep one shared
AXIS_REFper axis and one sharedAXES_GROUP_REFper group. - Instantiate each PLCopen function block once and call it every scan.
- Drive commands with
Execute/Enable; do not expect one-shot FB calls to retain behavior if you stop calling them. - Call
MC_Constants()once during initialization before you usePN_*ormcERR_*members. - 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 asAxis,Master,Slave,AxesGroup, orCamTable.VAR_INPUT: ordinary input parameters copied into the function block each scan, such asExecute,Enable,Position,Velocity, orBufferMode.VAR_OUTPUT: status and result values produced by the function block, such asDone,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 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_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.Enableis 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 isMC_Power->MC_Home-> wait forDone-> 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.
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; monitorBusy,Active, andDone.
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: UseInVelocityplus 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.
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_CommandedPositionvalue of typeINT. PN_SWLimitPos : INT:PN_SWLimitPosvalue of typeINT.PN_SWLimitNeg : INT:PN_SWLimitNegvalue of typeINT.PN_EnableLimitPos : INT:PN_EnableLimitPosvalue of typeINT.PN_EnableLimitNeg : INT:PN_EnableLimitNegvalue of typeINT.PN_EnablePosLagMonitoring : INT:PN_EnablePosLagMonitoringvalue of typeINT.PN_MaxPositionLag : INT:PN_MaxPositionLagvalue of typeINT.PN_MaxVelocitySystem : INT:PN_MaxVelocitySystemvalue of typeINT.PN_MaxVelocityAppl : INT:PN_MaxVelocityApplvalue of typeINT.PN_ActualVelocity : INT:PN_ActualVelocityvalue of typeINT.PN_CommandedVelocity : INT:PN_CommandedVelocityvalue of typeINT.PN_MaxAccelerationSystem : INT:PN_MaxAccelerationSystemvalue of typeINT.PN_MaxAccelerationAppl : INT:PN_MaxAccelerationApplvalue of typeINT.PN_MaxDecelerationSystem : INT:PN_MaxDecelerationSystemvalue of typeINT.PN_MaxDecelerationAppl : INT:PN_MaxDecelerationApplvalue of typeINT.PN_MaxJerkSystem : INT:PN_MaxJerkSystemvalue of typeINT.PN_MaxJerkAppl : INT:PN_MaxJerkApplvalue of typeINT.mcERR_None : WORD:mcERR_Nonevalue of typeWORD.mcERR_InvalidParameter : WORD:mcERR_InvalidParametervalue of typeWORD.mcERR_InvalidState : WORD:mcERR_InvalidStatevalue of typeWORD.mcERR_AxisGrouped : WORD:mcERR_AxisGroupedvalue of typeWORD.mcERR_GroupDisabled : WORD:mcERR_GroupDisabledvalue of typeWORD.mcERR_GroupNotReady : WORD:mcERR_GroupNotReadyvalue of typeWORD.mcERR_NotHomed : WORD:mcERR_NotHomedvalue of typeWORD.mcERR_NotPowered : WORD:mcERR_NotPoweredvalue of typeWORD.mcERR_BackendFault : WORD:mcERR_BackendFaultvalue of typeWORD.mcERR_KinematicNoSolution : WORD:mcERR_KinematicNoSolutionvalue of typeWORD.mcERR_KinematicSingularity : WORD:mcERR_KinematicSingularityvalue of typeWORD.mcERR_QueueFull : WORD:mcERR_QueueFullvalue of typeWORD.mcERR_NotSupported : WORD:mcERR_NotSupportedvalue of typeWORD. Usage notes: Call once during initialization and then reuse the publishedPN_*andmcERR_*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 triggeringMC_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 isMC_CamTableSelect->MC_CamIn-> wait forInSync.
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 likeMC_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