Skip to content
Contact Get Started

Function Blocks

One block per row, with the variables it is called through. A block is called on the PLCopen interface: the axis, channel or group goes in as a reference, Execute or Enable starts it, and the answer comes back on the block’s own outputs rather than on the channel’s status.

The plain libraries come first. The packages after them are modules, so their blocks are in a project only when that module is.

BlockCalled onInputsOutputs
MC_JogAxis : AXIS_REFJogForward : BOOL, JogBackwards : BOOL, Mode : MC_JOG_MODE, Position : LREAL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREALDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
BlockCalled onInputsOutputs
MC_CamInMaster : AXIS_REF, Slave : AXIS_REFExecute : BOOL, CamTableId : MC_CAM_ID, StartMode : MC_START_MODE, MasterOffset : LREAL, SlaveOffset : LREAL, MasterScaling : LREAL, SlaveScaling : LREALDone : BOOL, Busy : BOOL, Active : BOOL, InSync : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_CamOutAxis : AXIS_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_CamTableSelectAxis : AXIS_REFExecute : BOOL, CamTable : MC_CAM_REF, CamTableId : MC_CAM_IDDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
BlockCalled onInputsOutputs
MC_BlockSearchChannel : CHANNEL_REFExecute : BOOL, LineNumber : UDINTDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_ChannelDisableChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_ChannelEnableChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_ChannelReadErrorChannel : CHANNEL_REFEnable : BOOLValid : BOOL, Error : BOOL, ErrorID : MC_ErrorCode
MC_ChannelReadStatusChannel : CHANNEL_REFEnable : BOOLValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, ErrorStop : BOOL, Disabled : BOOL, Stopping : BOOL, Standby : BOOL, Moving : BOOL, Homing : BOOL, ActualFeedRate : LREAL, ActualOverride : LREAL, ActualRapidOverride : LREAL, ActProgramLine : UDINT, CycleStarted : BOOL, FeedHold : BOOL, QueueBusy : BOOL, ItpFbState : FB_STATE
MC_ChannelResetChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_CycleStartChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_CycleStopChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_ExecuteReposChannel : CHANNEL_REFExecute : BOOL, SubprogramNumber : UDINTDone : BOOL, Busy : BOOL, Active : BOOL, Error : BOOL, ErrorID : WORD
MC_ExecuteSubprogramChannel : CHANNEL_REFExecute : BOOL, SubprogramNumber : UDINT, Staged : BOOLDone : BOOL, Busy : BOOL, Active : BOOL, Error : BOOL, ErrorID : WORD
MC_FeedHoldChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_FeedResumeChannel : CHANNEL_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_ProgramSelectChannel : CHANNEL_REFExecute : BOOL, ProgramName : STRING(63)Done : BOOL, Busy : BOOL, Active : BOOL, Error : BOOL, ErrorID : WORD, Result : E_ProgramSelectResult
MC_SetBlockDeleteChannel : CHANNEL_REFExecute : BOOL, Enable : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetChannelOverrideChannel : CHANNEL_REFExecute : BOOL, OverrideValue : LREALDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetDryRunChannel : CHANNEL_REFExecute : BOOL, Enable : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetMachineLockChannel : CHANNEL_REFExecute : BOOL, Enable : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetOperationModeChannel : CHANNEL_REFExecute : BOOL, Mode : UINTDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetOptionalStopChannel : CHANNEL_REFExecute : BOOL, Enable : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetSingleBlockChannel : CHANNEL_REFExecute : BOOL, Enable : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
SequentialChannelCommandHelperChannel : CHANNEL_REFExecute : BOOL, WaitForMacroCompletion : BOOLDone : BOOL, Busy : BOOL, Active : BOOL, Error : BOOL, ErrorID : WORD, SendCommand : BOOL
SequentialChannelStateHelperChannel : CHANNEL_REFExecute : BOOL, TargetState : MC_AXES_GROUP_STATE, AcceptAnyExcept : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, SendCommand : BOOL

MC_ProgramSelect.Result is an E_ProgramSelectResult:

ValueMeaning
PSR_NONEnot refused. On a channel error Result stays here and ErrorID carries the channel’s code
PSR_NO_MATCHno program carries the name
PSR_AMBIGUOUS_PROGRAMseveral programs carry it
PSR_AMBIGUOUS_CHANNELseveral channels, and none was named
PSR_CHANNEL_BUSYa program is running or held on the channel
PSR_NO_INTERPRETERno interpreter is bound to the channel
PSR_BUFFER_UNAVAILABLEthe channel’s command buffer is not available
PSR_LOAD_FAILEDthe kernel refused or could not parse the program
PSR_NOT_SERVEDthe program catalogue did not answer in time
BlockCalled onInputsOutputs
GroupSequentialExecutionHelperAxesGroup : AXES_GROUP_REFExecute : BOOLDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD, SendCommand : BOOL
MC_GroupDisableAxesGroup : AXES_GROUP_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_GroupEnableAxesGroup : AXES_GROUP_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_GroupHaltAxesGroup : AXES_GROUP_REFExecute : BOOL, Deceleration : LREAL, Jerk : LREAL, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_GroupResetAxesGroup : AXES_GROUP_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_GroupStopAxesGroup : AXES_GROUP_REFExecute : BOOL, Deceleration : LREAL, Jerk : LREAL, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_MoveLinearAbsoluteAxesGroup : AXES_GROUP_REFExecute : BOOL, Position : ARRAY[?..?] OF LREAL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREAL, CoordSystem : MC_COORD_SYSTEM, BufferMode : MC_BUFFER_MODE, TransitionMode : MC_TRANSITION_MODE, TransitionParameter : ARRAY[?..?] OF LREALDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_MoveLinearRelativeAxesGroup : AXES_GROUP_REFExecute : BOOL, Distance : ARRAY[?..?] OF LREAL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREAL, CoordSystem : MC_COORD_SYSTEM, BufferMode : MC_BUFFER_MODE, TransitionMode : MC_TRANSITION_MODE, TransitionParameter : ARRAY[?..?] OF LREALDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
BlockCalled onInputsOutputs
MC_HaltAxis : AXIS_REFExecute : BOOL, Deceleration : LREAL, Jerk : LREAL, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_HomeAxis : AXIS_REFExecute : BOOL, Position : LREAL, HomingMode : MC_HomingMode, BufferMode : MC_BUFFER_MODE, Options : ST_HomingOptions, bCalibrationCam : BOOLDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : UDINT
MC_MoveAbsoluteAxis : AXIS_REFExecute : BOOL, Position : LREAL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREAL, Direction : MC_DIRECTION, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_MoveAdditiveAxis : AXIS_REFExecute : BOOL, Distance : LREAL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREAL, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_MoveRelativeAxis : AXIS_REFExecute : BOOL, Distance : LREAL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREAL, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_MoveVelocityAxis : AXIS_REFExecute : BOOL, Velocity : LREAL, Acceleration : LREAL, Deceleration : LREAL, Jerk : LREAL, Direction : MC_DIRECTION, BufferMode : MC_BUFFER_MODEDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD, InVelocity : BOOL
MC_PowerAxis : AXIS_REFEnable : BOOL, EnablePositive : BOOL, EnableNegative : BOOLStatus : BOOL, Valid : BOOL, Error : BOOL, ErrorID : WORD
MC_ReadActualPositionAxis : AXIS_REFEnable : BOOLValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, Position : LREAL
MC_ReadActualTorqueAxis : AXIS_REFEnable : BOOLValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, Torque : LREAL
MC_ReadActualVelocityAxis : AXIS_REFEnable : BOOLValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, Velocity : LREAL
MC_ReadAxisErrorAxis : AXIS_REFEnable : BOOLValid : BOOL, Error : BOOL, ErrorID : MC_ErrorCode, AxisErrorID : MC_ServoErrorCode
MC_ReadAxisInfoAxis : AXIS_REFEnable : BOOLValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, HomeAbsSwitch : BOOL, LimitSwitchPos : BOOL, LimitSwitchNeg : BOOL, Simulation : BOOL, CommunicationReady : BOOL, ReadyForPowerOn : BOOL, PowerOn : BOOL, IsHomed : BOOL, AxisWarning : BOOL
MC_ReadBoolParameterAxis : AXIS_REFEnable : BOOL, ParameterNumber : INTValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, Value : BOOL
MC_ReadMotionStateAxis : AXIS_REFEnable : BOOL, Source : MC_SOURCEValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, ConstantVelocity : BOOL, Accelerating : BOOL, Decelerating : BOOL, DirectionPositive : BOOL, DirectionNegative : BOOL
MC_ReadParameterAxis : AXIS_REFEnable : BOOL, ParameterNumber : INTValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, Value : LREAL
MC_ReadStatusAxis : AXIS_REFEnable : BOOLValid : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD, ErrorStop : BOOL, Disabled : BOOL, Stopping : BOOL, Homing : BOOL, StandStill : BOOL, DiscreteMotion : BOOL, ContinuousMotion : BOOL, SynchronizedMotion : BOOL
MC_ResetAxis : AXIS_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetOverrideAxis : AXIS_REFEnable : BOOL, VelFactor : LREAL, AccFactor : LREAL, JerkFactor : LREALEnabled : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_SetPositionAxis : AXIS_REFExecute : BOOL, Position : LREAL, Relative : BOOL, ExecutionMode : MC_EXECUTION_MODEDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_StopAxis : AXIS_REFExecute : BOOL, Deceleration : LREAL, Jerk : LREALDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD
MC_WriteBoolParameterAxis : AXIS_REFExecute : BOOL, ParameterNumber : INT, Value : BOOL, ExecutionMode : MC_EXECUTION_MODEDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_WriteParameterAxis : AXIS_REFExecute : BOOL, ParameterNumber : INT, Value : LREAL, ExecutionMode : MC_EXECUTION_MODEDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
SequentialExecutionHelperAxis : AXIS_REFExecute : BOOLDone : BOOL, Busy : BOOL, Active : BOOL, CommandAborted : BOOL, Error : BOOL, ErrorID : WORD, SendCommand : BOOL
BlockCalled onInputsOutputs
MC_AddAxisToGroupAxesGroup : AXES_GROUP_REF, Axis : AXIS_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_RemoveAxisFromGroupAxesGroup : AXES_GROUP_REF, Axis : AXIS_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
MC_UngroupAllAxesAxesGroup : AXES_GROUP_REFExecute : BOOLDone : BOOL, Busy : BOOL, Error : BOOL, ErrorID : WORD
BlockCalled onInputsOutputs
BLINKENABLE : BOOL, TIMELOW : TIME, TIMEHIGH : TIMEOUT : BOOL
CTDCD : BOOL, LOAD : BOOL, PV : WORDQ : BOOL, CV : WORD
CTUCU : BOOL, RESET : BOOL, PV : WORDQ : BOOL, CV : WORD
CTUDCU : BOOL, CD : BOOL, RESET : BOOL, LOAD : BOOL, PV : WORDQU : BOOL, QD : BOOL, CV : WORD
FB_Alarm
FB_Arguments
FB_Message
FILTER_PT1IN : REAL, T : REAL, RESET : BOOLOUT : REAL
F_TRIGCLK : BOOLQ : BOOL
HYSTERESISIN : REAL, HIGH : REAL, LOW : REALQ : BOOL
LIN_TRAFOIN : REAL, IN_MIN : REAL, IN_MAX : REAL, OUT_MIN : REAL, OUT_MAX : REALOUT : REAL, ERROR : BOOL
PIDACTUAL : REAL, SET_POINT : REAL, KP : REAL, TN : REAL, TV : REAL, Y_MIN : REAL, Y_MAX : REAL, MANUAL : BOOL, Y_MANUAL : REAL, RESET : BOOLY : REAL, ERROR : REAL, LIMIT_H : BOOL, LIMIT_L : BOOL
RAMPIN : REAL, ASCEND : REAL, DESCEND : REAL, RESET : BOOLOUT : REAL
RSS : BOOL, R1 : BOOLQ1 : BOOL
R_TRIGCLK : BOOLQ : BOOL
SRS1 : BOOL, R : BOOLQ1 : BOOL
TOFIN : BOOL, PT : TIMEQ : BOOL, ET : TIME
TONIN : BOOL, PT : TIMEQ : BOOL, ET : TIME
TPIN : BOOL, PT : TIMEQ : BOOL, ET : TIME
ESELfunctionE : BOOL, VAL : REAL, DEF : REALreturns REAL: DEF while E, else VAL
SEL2functionG1 : BOOL, G2 : BOOL, IN0 : REAL, IN1 : REAL, IN2 : REAL, IN3 : REALreturns REAL: one of the four inputs, picked by G2 G1
BlockCalled onInputsOutputs
RTCIN : BOOL, PDT : DTQ : BOOL, CDT : DT
TIMEfunctionreturns TIME: the current system time

A CNC module, so this is in a project only when the module is.

BlockCalled onInputsOutputs
FB_MacroExecutorExecute : BOOLChannel : CHANNEL_REF, Enable : BOOL, SubprogramNumber : UDINT, Staged : BOOLBusy : BOOL, Done : BOOL, Error : BOOL, Blocked : BOOL
FB_ManualAxisControlAxis : AXIS_REFEnable : BOOL, Reset : BOOL, Request : E_AxisRequest, StepMode : E_StepMode, HomeExecute : BOOL, HomeSensor : BOOL, MotionAllowed : BOOL, MpgActive : BOOL, MpgDeltaDistance : LREALReady : BOOL, Error : BOOL, Homed : BOOL, HomeDone : BOOL

A CNC module, so this is in a project only when the module is.

BlockCalled onInputsOutputs
FB_QuadDecoderA : BOOL, B : BOOLCount : DINT
PackageVersion
CNC_AutoLevel1.0.0
CNC_Core1.0.0
CNC_Mpg1.0.0
CNC_Probing1.0.0
Motion_Applications1.0.0
Motion_Camming1.0.0
Motion_Channel1.0.0
Motion_Coordinated1.0.0
Motion_Core1.0.0
Motion_Group1.0.0
Standard1.0.0
System1.0.0