MMF Derived Datatypes
(Original Document)
Overview
The following part describes the structure of the Derived Datatypes (DDT) used by the function blocks of the MMF family..
EFBs using DDTs
Usage of DDTs:
Type
Used by EFB
MMFBlock
MMF_USUB, MMF_ESUB, MMF_SUB, MMF_MOVE, MMF_JOG, MMF_INDX, CFG_SA, CFG_IA, CFG_RA, CFG_CS, CFG_FS, CFG_CP_F, CFG_CP_V, DRV_UPLD, DRV_DNLD, IDN_CHK, IDN_XFER, MMF_RST
MMFControlBits
MMF_BITS
MMFStatusBits
MMF_BITS
AXCfg
CFG_SA, CFG_IA, CFG_RA
CSCfg
CFG_CS
CPCfg
CFG_CP_F, CFG_CP_V
FSCfg
CFG_FS
MMFBlock
Elements of the MMFBlock Data Structure:
Element
Datatype
RingControl
UDINT
WatchDogCont
INT
Debug
INT
SubNumber
INT
AxisID
INT
Parameter1
UDINT
Parameter2
UDINT
Parameter3
REAL
Parameter4
REAL
Parameter
ARRAY [5..18] OF REAL
reserved
ARRAY [1..8] OF INT
SA1Control
UDINT
...
SA8Control
UDINT
IA1Control
UDINT
...
IA4Control
UDINT
CS1Control
UDINT
...
CS4Control
UDINT
FS1Control
UDINT
...
FS4Control
UDINT
USubNumber
INT
UAxisID
INT
UParameter1
UDINT
UParameter2
UDINT
UParameter3
REAL
UParameter4
REAL
RingStatus
UDINT
WatchDogStat
INT
NumberOfAxes
INT
FaultAxis
INT
FaultCode
INT
WarnAxis
INT
WarnCode
INT
SubNumEcho
INT
AxisIDEcho
INT
Error
INT
Return1
UDINT
Return2
REAL
Return3
REAL
RevNumber
INT
SA1Position
REAL
...
SA8Position
REAL
IA1Position
REAL
...
L
IA4Position
REAL
RA1Position
REAL
...
RA4Position
REAL
SA1Status
UDINT
...
SA8Status
UDINT
IA1Status
UDINT
...
IA4Status
UDINT
CS1Status
UDINT
...
CS4Status
UDINT
FS1Status
UDINT
...
FS4Status
UDINT
USubNumEcho
INT
UAxisIDEcho
INT
UError
INT
UReturn1
UDINT
UReturn2
REAL
UReturn3
REAL
MMFControlBits
Elements of the MMFControlBits Data Structure:
Element
Datatype
Description
CONTROL_CAPTURE
BOOL
Start the capturing of data into the data capture buffer.
BIT1
BOOL
CONTROL_ACQUIRE
BOOL
Acquire command of controlled axes and make them be linked to the MotionSet. The AXIS_IN_COMMAND MotionStatus bit is set if successful.
BIT3
BOOL
BIT4
BOOL
BIT5
BOOL
BIT6
BOOL
BIT7
BOOL
BIT8
BOOL
BIT9
BOOL
CONTROL_ENABLE
BOOL
Enable the controlled axes. The DRIVE_ENABLED MotionStatus bit is set if successful.
CONTROL_FOLLOW
BOOL
Turn following on for the FollowerSet or member of a FollowerSet. The AXIS_IS_LINKED MotionStatus bit is set when following is on.
CONTROL_RESUME
BOOL
Resume from a hold. The AXIS_HOLD MotionStatus bit is clear if the resuming starts.
BIT13
BOOL
BIT14
BOOL
CONTROL_CLEAR_FAULT
BOOL
Clear MotionFaults. The AXIS_SUMMARY_FAULT MotionStatus bit is clear if successful.
ALLOW_CAPTURE
BOOL
Stop the capturing of data into the data capture buffer.
BIT17
BOOL
ALLOW_ACQUIRE
BOOL
Release the controlled axes. The AXIS_IN_COMMAND MotionStatus bit is clear when released.
BIT19
BOOL
BIT20
BOOL
BIT21
BOOL
BIT22
BOOL
BIT23
BOOL
BIT24
BOOL
BIT25
BOOL
ALLOW_ENABLE
BOOL
Disable the controlled axes. The DRIVE_DISABLED MotionStatus bit is set when disabled.
ALLOW_FOLLOW
BOOL
Turn following off for FollowerSet or a member of a FollowerSet. The AXIS_IS_LINKED MotionStatus bit is clear when following is off.
ALLOW_RESUME
BOOL
ssue a hold to the controlled axes. The AXIS_HOLD MotionStatus bit is set when the motion profile is holding with 0 commanded speed.
ALLOW_MOVE
BOOL
Issue a halt. The AXIS_HALT MotionStatus bit is set when the halt process starts.
ALLOW_NOT_FASTSTOP
BOOL
Issue a fastStop command to the controlled axes. The AXIS_FASTSTOP MotionStatus bit is set.
ALLOW_NOT_FAULT
BOOL
Cause a user fault to occur. The AXIS_SUMMARY_FAULT MotionStatus bit is set.
MMFStatusBits
Elements of the MMFStatusBits Data Structure:
Element
Type
Description
RAMPING
BOOL
The commanded motion profile is accelerating or decelerating to a different speed.
STEADY
BOOL
The motion profile is commanding a steady speed.
STOPPING
BOOL
The commanded motion profile is decelerating to a stop. STOPPING is set until PROFILE_END is set. STOPPING remains set until IN_POSITION is set.
PROFILE_END
BOOL
The commanded motion profile has completed. The axis may still be settling until IN_POSITION is set or STOPPING is cleared. PROFILE_END is set when the axis is disabled. PROFILE_END is set after a halt is completed.
IN_POSITION
BOOL
The axis position is within the InPositionBand after the commanded motion profile has started STOPPING. The STOPPING bit is cleared as soon as PROFILE_END and IN_POSITION are both set. IN_POSITION is clear when the axis is disabled. IN_POSITION is valid after a halt is completed.
AXIS_HOMING
BOOL
The axis is performing a home function.
AXIS_HOMED
BOOL
The axis home function completed successfully. The axis position reading is referenced off the home position and is valid.
AXIS_NOT_FOLLOWING
BOOL
The drive is ignoring the controller's motion profile while it performs a special operation (for example, homing, fastStop, or EStop). This is not available on all SERCOS drives.
HOLDING
BOOL
The axis is in the process of holding or is holding the motion profile. The axis is either decelerating into the hold or is being commanded to hold position with 0 speed.
RESUMING
BOOL
The axis is in the process of resuming from holding the motion profile. The axis is accelerating back onto the motion profile. RESUMING is cleared when the original motion profile is being commanded.
DRIVE_ENABLED
BOOL
The drive is enabled with motor power. If the AXIS_READY bit is set, the axis may be commanded to move. If DRIVE_ENABLED is clear, the axis is enabling, disabling, or disabled.
DRIVE_DIAG
BOOL
This bit indicates if any SERCOS class 3 diagnostic bit has changed. The SERCOS Standard IDN 0013 retrieves the actual information. This bit is cleared when the class 3 diagnostic is read, but the SERCOS class 3 diagnostic bits themselves are unaffected by the SERCOS Standard IDN 0013.
DRIVE_WARNING
BOOL
This bit indicates if any SERCOS class 2 diagnostic bit has changed. The SERCOS Standard IDN 0012 retrieves the actual information. This bit and the SERCOS class 2 diagnostic bits themselves are cleared (and re-armed) by the SERCOS Standard IDN 0012.
DRIVE_FAULT
BOOL
This bit indicates if any SERCOS class 1 diagnostic bit has changed. The SERCOS Standard IDN 0011 retrieves the actual information. When SERCOS Standard IDN 0011 is called, this bit is not cleared. This bit and the SERCOS class 1 diagnostic bits themselves are cleared by the clearFault function.
DRIVE_DISABLED
BOOL
The drive is disabled and power has been removed from the motor. If this bit is clear, the drive is disabling, enabling, or enabled.
AXIS_SUMMARY_FAULT
BOOL
A servo drive DRIVE_FAULT, SERCOS communications fault (AXIS_COMM_OK clear), ALLOW_NOT_FAULT is clear, or a controller motion profile fault has occurred. Fault information is retrieved by issuing a getMotionFault function. A clearFault function resets the MotionFault information and clears the fault if possible. If the fault is not cleared, the AXIS_SUMMARY_FAULT bit is set again.
AXIS_COMM_OK
BOOL
The drive has successfully powered up and the communications between the motion controller and the drive are active.
AXIS_IS_LINKED
BOOL
The axis is an active part of an axis collection. The axis is responding to commands from a CoordinatedSet or FollowerSet.
AXIS_IN_COMMAND
BOOL
The axis will respond to motion commands.
AXIS_CAPTURE
BOOL
The axis is capturing data into its data capture buffer.
AXIS_AT_TARGET
BOOL
The axis position is within the InPositionBand of the target position of a move command. AXIS_AT_TARGET is set after the commanded motion profile has reached PROFILE_END and the axis position is within the InPositionBand of the target. AXIS_AT_TARGET is cleared when a new move command is issued. Unlike IN_POSITION, AXIS_AT_TARGET is not changed when the axis is disabled, nor is it set after a halt is completed unless the halted position reaches the original motion profile's target position.
AXIS_POS_LIMIT
BOOL
The commanded axis position is at or beyond the positive position limit. AXIS_POS_LIMIT is valid if the axis is DRIVE_ENABLED and AXIS_HOMED. An AXIS_SUMMARY_FAULT occurs when the commanded position first exceeds or equals the limit. A clearFault function with the axis still on the limit clears the fault but leaves the AXIS_POS_LIMIT set until the position is more negative than the limit. Moving the axis back into the limit will then generate another AXIS_SUMMARY_FAULT.
AXIS_NEG_LIMIT
BOOL
The commanded axis position is at or beyond the negative position limit. AXIS_NEG_LIMIT is valid if the axis is DRIVE_ENABLED and AXIS_HOMED. An AXIS_SUMMARY_FAULT occurs when the commanded position first exceeds or equals the limit. A clearFault function with the axis still on the limit clears the fault but leaves the AXIS_NEG_LIMIT set until the position is more positive than the limit. Moving the axis back into the limit will then generate another AXIS_SUMMARY_FAULT.
AXIS_WARNING
BOOL
The motion controller has detected a MotionWarning condition for the axis. Issue a getMotionWarning function and examine the result to determine the warnings.
BIT24
BOOL
Reserved
BIT25
BOOL
Reserved
DRIVE_REALTIME_BIT1
BOOL
DRIVE_REALTIME_BIT2
BOOL
AXIS_HOLD
BOOL
The motion axis is holding with a speed of 0 being commanded to the axis. This bit is similar to the HOLDING bit, but HOLDING is set while the axis is decelerating to a hold. AXIS_HOLD only comes on when the axis has stopped due to a hold function being issued. This bit is clear if any of the AXIS_HALT, AXIS_FAST_STOP, AXIS_HOMING, DRIVE_DISABLED, or AXIS_SUMMARY_FAULT bits is set, or the axis is an inactive axis with AXIS_IN_COMMAND clear.
AXIS_HALT
BOOL
The ALLOW_MOVE bit is clear in the MotionControl register. The axis will not accept move commands while this bit is clear. This bit is clear if any of the AXIS_FAST_STOP, AXIS_HOMING, DRIVE_DISABLED, or AXIS_SUMMARY_FAULT bits is set, or the axis is an inactive axis with AXIS_IN_COMMAND clear.
AXIS_FASTSTOP
BOOL
An axis is in the fastStop state. The bit is cleared when the fastStop state is exited as a result of a disableDrive function, axis fault, or enableDrive function. This bit is clear if any of the DRIVE_DISABLED, AXIS_SUMMARY_FAULT bits is set, or the axis is an inactive axis with AXIS_IN_COMMAND clear.
AXIS_READY
BOOL
The axis is ready to respond to a move command. The axis is active with AXIS_IN_COMMAND and DRIVE_ENABLED set, and AXIS_HOMING, AXIS_HOLD, AXIS_HALT, AXIS_FASTSTOP, AXIS_NOT_FOLLOWING, and AXIS_SUMMARY_FAULT are all cleared.
AXCfg
Elements of the AXCfg Data Structure:
Element
Datatype
Description
AxVersion
INT
This is the interface layout version of this data block for this motion axis type.
AxisId
INT
The axis ID for this motion axis object.
ConfigBit
INT
Bit pattern to configure axis features bit.
SercosAddress
INT
Address of the Axis.
Accel
REAL
Default acceleration (dau)
Decel
REAL
Default deceleration (dau)
AccelType
INT
Default AccelType
InPositionBand
REAL
Default inPositionBand (dpu)
EnablePosBand
REAL
Default enablePositionBand (dpu)
MaxRollover
REAL
Positive rolloverLimit (dpu)
MinRollover
REAL
Negative rolloverLimit (dpu)
MaxAccel
REAL
Maximum acceleration (dau)
MaxDecel
REAL
Maximum deceleration (dau)
MaxSpeed
REAL
Maximum speed (dvu)
MaxPos
REAL
Positive positionLimit (dpu)
MinPos
REAL
Negative positionLimit (dpu)
GearNumerator
REAL
Numerator of the gear ratio in axis default position units (dpu)
GearDenominator
REAL
Denominator of the gear ratio in drive units. For ImaginaryAxis and RemoteAxis objects, this must be in fbCount units.
AccelUnits
INT
Default acceleration units (AccelUnits) for the axis.
VelUnits
INT
Default velocity units (VelocityUnits) for this axis.
PosUnits
INT
Default position units (PositionUnits) for this axis.
FeedbackReg
UDINT
For RemoteAxis only. If AX_SERCOS_AXIS_REG is 0, then use this register address for reading the remote axis feedback counter.
FeedbackIDN
INT
CSCfg
Elements of the CSCfg Data Structure:
Element
Datatype
Description
AxVersion
INT
This is the interface layout version of this data block for this motion axis type.
AxisId
INT
The axis ID for this motion axis object.
ConfigBit
INT
Reserved
NumberinSet
INT
This specifies how many axes are members of this CoordinatedSet.
CAxisId
ARRAY [1..8] OF INT
The axis ID of the member n in the set.
(n = 1 ...8)
Accel
REAL
Default acceleration (dau)
Decel
REAL
Default deceleration (dau)
AccelType
INT
Default AccelType
MaxAccel
REAL
Maximum acceleration (dau)
MaxDecel
REAL
Maximum deceleration (dau)
MaxSpeed
REAL
Maximum speed (dvu)
AccelUnits
INT
Default acceleration units (AccelUnits) for the axis.
VelUnits
INT
Default velocity units (VelocityUnits) for this axis.
FSCfg
Elements of the FSCfg Data Structure:
Element
Datatype
Description
AxVersion
INT
This is the interface layout version of this data block for this motion axis type.
AxisId
INT
The axis ID for this motion axis object.
ConfigBit
INT
Reserved
NumberinSet
INT
This specifies how many axes are members of this CoordinatedSet.
MasterId
INT
The axis ID of master axis.
F
ARRAY [1..8] OF FSMember
Data of the member n in the set.
(n = 1 ...8)
FSMember
Elements of the FSMember Data Structure:
Element
Datatype
Description
AxisId
INT
Axis ID of the member
FollowerMode
INT
The follower mode of the member
CamOrNumerator
REAL
For camming: The camProfile number
For gearing: The numerator of the FollowerMode (dspu)
OffsetOrDenom
REAL
For camming: The masterOffset.
For gearing: The denominator of the FollowerMode (dmpu)
Trigger
REAL
The trigger position of the master (dmpu)
CPCfg
Elements of the CPCfg Data Structure:
Element
Datatype
Description
ProfileType
INT
CAM profile
INTerpType
INT
interpolation type
NumberOfCoords
INT
Number of coordinates
NumberOfPoINTs
INT
Number of table points
reserved
ARRAY [1..6] OF INT
MasterOffset
INT
Register offset number for start of first master position register block.
FollowerOffset
INT
Register offset number for the start of the first follower position register block.