plcopen motion control an introduction
DESCRIPTION
PLCopen Motion Control an introduction. Check the notes in the notes view. PLCopen Motion Control: The software problem. Managing Complexity. 100 – 10,000 – 1mio – 100mio Lines of Code. Exponentially increasing complexity. Why Structured Software Development ?. - PowerPoint PPT PresentationTRANSCRIPT
PLCopen®
for efficiency in automation
PLCopen Motion Control
an introduction
Check the notes in the notes view
PLCopen®
for efficiency in automation
PLCopen Motion Control:
The software problem
PLCopen®
for efficiency in automation
Percentage of Software development costs in production systems (source: McKinsey)
0%
20%
40%
60%
80%
100%
1970 1980 1990 2000
Mechanic Electric Software
PLCopen®
for efficiency in automation
Managing Complexity
100 – 10,000 – 1mio – 100mio Lines of Code
Exponentially increasing complexity
PLCopen®
for efficiency in automation
Why Structured Software Development ?
Software = key to system quality: errors cost money
Increased requirements: 100 lines of codes now 10,000 lines or even 100,000
Not a one-man job - but a team with different know how and background
Commissioning, Installation, Maintenance, and Improvements essential phases
PLCopen®
for efficiency in automation
Modern Software Development Process Defined in several clearly separated phases - project
definition
Top-down approach
Multiple disciplines involved
Multiple people involved
Different backgrounds
Based on Functional Requirements
PLCopen®
for efficiency in automation
Decompositionwith
SequentialFunction
ChartSFC
N Initialisation S1
N FillingS2
N HeatingS3
N FermentingS4
N HarvestingS5
N CleaningS6
PLCopen®
for efficiency in automation
Bottom-up after top-down
Top-
down
Bottom
up
First decompose – then fill it in
PLCopen®
for efficiency in automation
Abstraction via Function Blocks
MC_MoveAbsoluteAXIS_REF Axis Axis AXIS_REF
BOOL Execute DoneBOOL
REAL PositionBOOLREA
LVelocity CommandAborted
WORDREAL Acceleration
BOOL
REAL DecelerationREAL Jerk
MC_DIRECTION Direction
ErrorErrorID
ContinuousUpdate
BufferMode
BusyActive
BOOL
MC_BUFFER_MODE
BOOL
BOOL
PLCopen®
for efficiency in automation
Axis_Ref as Var_In_Out
FBAxis1
Axis_RefStructure
PLCopen®
for efficiency in automation
Abstraction / HW Independence via Function Blocks
Software View
InputsName
Outputs
Hardware View
I/F Intelligent Drive Motor
E
Drive Motor
E
PWM
I/F
Encapsulation / Information Hiding
PLCopen®
for efficiency in automation
Abstraction with one FB
FBAxis1
Axis_RefStructure
I/F
TaskManager
DriveConver-sion
Time or event driven
PLCopen®
for efficiency in automation
and with 2 FBs
FB1Axis1
Axis_RefStructure
I/F Drive
TaskManager
Conver-sion
Time or event driven
FB2
PLCopen®
for efficiency in automation
Mechatronic solutions
Mechanical solution.
Control solution
PLCopen®
for efficiency in automation
Status PLCopen Motion Control Part 1 – Function Blocks for Motion Control Part 2 – Extensions Part 3 – User Guidelines Part 4 – Coordinated Motion Part 5 – Homing procedures Part 6 – Fluid Power (hydraulics) Around 30 companies certified with over
40 products (check website for full list)
PLCopen®
for efficiency in automation
Administrative Motion
SingleAxis
MultipleAxes
SingleAxis
MultipleAxes
Non-InterpolatedMoveAbsoluteMoveRelativeMoveSuperImposedMoveContinuousMoveVelocityHomeStop
PowerClearPendingActionsReadStatusReadAxisErrorReadParameterWriteParameterReadActualPosition
PositionProfileVelocityProfileAccelerationProfile
CamTableSelect CamInCamOutGearInGearOut
Part 1 – MC FBs
PLCopen®
for efficiency in automation
Administrative Motion
SingleAxis
MultipleAxes
SingleAxis
MultipleAxes
TorqueControlDigitalCamSwitch
TouchProbeAbortTriggerReadDigitalInputReadDigitalOutputWriteDigitalOutputSetPositionSetOverride
GearInPos
ReadActualVelocityReadActualTorque
Part 2 - Extensions
PLCopen®
for efficiency in automation
GroupHome GroupStop GroupHalt GroupInterrupt GroupContinue MoveLinearAbsoluteMoveLinearRelative
AddAxisToGroup/ RemoveAxisFromGroup UngroupAllAxes GroupReadConfiguration GroupEnable / GroupDisableSetKin/Cartesian/CoordinateTransform
MoveCircularAbsolute MoveCircularRelative MoveDirectAbsolute
SyncAxisToGroup SyncGroupToAxis TrackConveyorBelt TrackRotaryTable
ReadKin/Cartesian/CoordinateTransform
GroupSetOverride
GroupSetPosition / GroupResetGroupReadActualPosition/Vel/Acc GroupReadStatus/ReadError
SetDynCoordTransform MoveDirectRelative MovePath
Administrative MotionPart 4 – MC FBs
PathSelect
Coordinated Coordinated Synchronized
PLCopen®
for efficiency in automation
Administrative Motion
SingleAxis
MultipleAxes
SingleAxis
MultipleAxes
LoadControlLoadSuperimposed
LimitLoadLimitMotion
LoadProfile
Part 6 – Fluid Power
PLCopen®
for efficiency in automation
Part 5 – Homing ProceduresHoming Procedures
HomeAbsoluteSwitch, HomeLimitSwitch, HomeBlock, HomeReferencePulse,
HomeReferencePulseSet, HomeDistanceCoded, HomeDirect, HomeAbsolute
Homing Step Function Blocks FBs: MC_StepAbsoluteSwitch, MC_StepLimitSwitch, MC_StepBlock,
MC_StepReferencePulse, MC_StepDistanceCoded
Finalizing: MC_HomeDirect, MC_HomeAbsolute, MC_FinishHoming
Homing on-the-fly: MC_StepReferenceFlyingSwitch,
MC_StepReferenceFlyingRefPulse, MC_AbortPassiveHoming
PLCopen®
for efficiency in automation
Part 3 – User GuidelinesShows examples for ease-of-use
Shows user-derived Function Blocks
Shows higher level encapsulation (e.g. Winding)
Stresses the creation of own FB libraries
Uses FBD, LD, and ST
82 pages in total
Not a training guideline
PLCopen®
for efficiency in automation
Example – Multiple FBs on 1 axis - LD
MoveVelocity
Execute
Velocity
FB1 FB2
K
10
MoveVelocity
Execute
Velocity 20
L MInVel.
Axis Axis
FB3MoveVelocity
Execute
Velocity
Axis
InVelocity InVelocity InVelocity
0
PLCopen®
for efficiency in automation
Timing Diagram
PLCopen®
for efficiency in automation
Example – Multiple FBs on 1 axis - FBD
FB2 FB3
20
L
0
FB1
MC_MoveVelocity
K Execute
Velocity InVelocity10 AND
MC_MoveVelocity
Execute
MC_MoveVelocity
Execute
AxisAxisAxis
InVelocity InVelocityVelocity Velocity
M
PLCopen®
for efficiency in automation
Example with SFCK = true
InVelocity = TRUE
L = TRUE
M = TRUE
K, L, M are Boolean Variables
V:= 10; E := TRUE;
E := FALSE;
E := FALSE;
E := FALSE;
V:= 20; E := TRUE;
V:= 0; E := TRUE;
InVelocity = TRUE
InVelocity =TRUE
E
V
Y
Axis X
MC_MoveVelocity
Velocity
Execute InVelocity
PLCopen®
for efficiency in automation
Example - GearInMC_GearIn
AXIS_REF Master Master AXIS_REF
BOOL Execute InGear BOOL
BOOLINT RatioNumerator CommandAborted
WORDUINT RatioDenominator
BOOL
REAL AccelerationError
ErrorID
SlaveSlaveAXIS_REF AXIS_REF
REAL DecelerationREAL Jerk
PLCopen®
for efficiency in automation
GearIn
SecondFirst
MyMaster
GearIn
MySlave Slave
Deceleration ErrorID
100
Master
Ratio
Acceleration
InGear
Error
Jerk1
100
1
100
2
100
1
CommandAborted
Execute
GearIn
Slave
Deceleration ErrorID
Master
Ratio
Acceleration
InGear
Error
Jerk
CommandAborted
Execute
PLCopen®
for efficiency in automation
First.Execute
MySlave.Velocity
First.InGear
RatioReached
1
1
0
0
Second.Execute
Second.InGear
RatioReached
1
1
0
0
t
t
t
t
t
GearIn
PLCopen®
for efficiency in automation
Start-up procedure
Is independent of the architecture
Consists of 3 commands:
MC_Power
MC_Home
MC_Move…..
To make any axis move.
PLCopen®
for efficiency in automation
Start-up procedure
PLCopen®
for efficiency in automation
Error Handling
Error - Rising edge – error during execution of the FB
ErrorID - Error identification
MoveAbsolute
AXIS_REFAxis Axis AXIS_REF
BOOL Execute Done BOOLREAL Position BOOLREAL Velocity
CommandAborted
WORD
REAL AccelerationBOOLREAL Deceleration
REAL JerkMC_Direction Direction
ErrorErrorID
BufferModeMC_BufferMode
BOOLBusyBOOLActive
PLCopen®
for efficiency in automation
Part 4 – Coordinated Motion
PLCopen®
for efficiency in automation
Synchronized Motion items
SyncAxisToGroup
SyncGroupToAxis
TrackConveyorBelt
TrackRotaryTable
PLCopen®
for efficiency in automation
Synchronization of single axis to an axes group
PLCopen®
for efficiency in automation
Synchronization of an axes group to a single axis MC_PathGearInMaster for press application
Axis
Execute
Axis
Done
MC_MoveAbsolute
Press Motion(Single Axis Motion)
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
AxisGroup
MasterAxis
AxisGroup
MasterAxisMC_PathGearInMaster
Robot Motion(Axis Group Motion)
Execute
RatioNumerator
Active
CommandAborted
Jerk
RatioDenominator
InGear
CoordSystem
Acceleration
Deceleration Error
ErrorID
Buffermode
Busy
Robot1 Robot2
PLCopen®
for efficiency in automation
Tracking
PLCopen®
for efficiency in automation
Encapsulation
PLCopen®
for efficiency in automation
Labelling
Conveyor
LabelDriveProduct Detection
Product
Label
Sensor distance
PLCopen®
for efficiency in automation
The labelling program
Conveyor
LabelDrive
Axis
Execute
Axis
InVelocity
MC_MoveVelocity
MC_MoveVelocity
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
Product Detection
TONINPT
QET
Velocity
Start
SensorDistanceDIV
Axis
Execute
Axis
Done
MC_MoveRelative
MC_MoveRelative
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
LabelLength
Delay
PLCopen®
for efficiency in automation
Possible improvements
PLCopen®
for efficiency in automation
Warehousing Example
Axis_X
Axi
s_Y
Axis_Z
PLCopen®
for efficiency in automation
Axis
Execute
Axis
Done
MC_MoveAbsolute
MoveToPalletX
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
Axis
Execute
Axis
Done
MC_MoveAbsolute
MoveToPalletY
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
AND
Axis_X
Axis_Y
Axis_Z
Start 1000.0
Pos_X40.0
Axis
Execute
Axis
Done
MC_MoveRelative
ForkInPallet
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
20.0
Pos_Y40.0
Application Program (1/2)
PLCopen®
for efficiency in automation
Axis
Execute
Axis
Done
MC_MoveRelative
ForkLift
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
Axis_Y
100.0
Axis
Execute
Axis
Done
MC_MoveAbsolute
ForkOutWithPallet
Position
Velocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
Axis_Z
0.0
Axis_X AND Finished
0.0
0.0
10.0 20.0
40.0
Axis
Execute
Axis
Done
MC_MoveAbsolute
MoveToDeliveryX
PositionVelocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
40.0
Axis_Y Axis
Execute
Axis
Done
MC_MoveAbsolute
MoveToDeliveryY
PositionVelocity Active
CommandAborted
Jerk
Direction
Busy
Buffermode
Acceleration
Deceleration Error
ErrorID
Application Program (2/2)
PLCopen®
for efficiency in automation
Alt. Application Program
XYZLifterStart
Pos_X, Pos_Y, 020.040.0
AxisGroup
Execute
AxisGroup
Done
MC_MoveLinearAbsolute
MoveToPallet
Positions
Velocity Active
CommandAborted
Busy
Error
ErrorID
AxisGroup
Execute
AxisGroup
Done
MC_MoveLinearRelative
ForkInPallet
Positions
Velocity Active
CommandAborted
Busy
Error
ErrorID
0, 0, 100020.0
AxisGroup
Execute
AxisGroup
Done
MC_MoveLinearRelative
LiftPallet
Positions
Velocity Active
CommandAborted
TransitionParameter
Busy
BufferMode
TransitionMode Error
ErrorID
0, 100, 0
20.0
AxisGroup
Execute
AxisGroup
Done
MC_MoveLinearRelative
ForkOutWithPallet
Positions
Velocity Active
CommandAborted
Busy
Error
ErrorID
0, 0, -1000 0, 0, 040.0
AxisGroup
Execute
AxisGroup
Done
MC_MoveLinearAbsolute
MoveToDelivery
Positions
Velocity Active
CommandAborted
Busy
Error
ErrorID
Finished
TransitionParameter
BufferMode
TransitionMode
TransitionParameter
BufferMode
TransitionMode
TransitionParameter
BufferMode
TransitionMode
TransitionParameter
BufferMode
TransitionMode
AbortingTMNone
BlendingNextTMCornerDistance
100
AbortingTMNone
BlendingNextTMCornerDistance
100
PLCopen®
for efficiency in automation
Encapsulation: Winding / Unwinding
rtorquetension
PLCopen®
for efficiency in automation
Dancer Control
LOAD CELL
M
M
DANCER
PLCopen®
for efficiency in automation
Graphical representation of FB
PS_Wind_csv AXIS_REF Axis Axis AXIS_REF
BOOL Enable Busy BOOL REAL Velocity InVelocity BOOL REAL SpoolRadius Error BOOL
PS_Direction Direction ErrorID WORD REAL Min_S_Radius REAL Max_S_Radius REAL Acceleration REAL Deceleration REAL Jerk
PLCopen®
for efficiency in automation
UDFB for Winding (csv)
PLCopen®
for efficiency in automation
PLCopen®
for efficiency in automation
PLCopen Motion Control
A suite of specificationsA suite of implementations
A suite of suppliersA very fast growing suite of users
A suite of advantages
PLCopen®
for efficiency in automation
PLCopenCombining Logic, Motion and Safety
Providing Structuring, Decomposition, Reuse and less training
PLCopen®
for efficiency in automation
Some words to the
Not-for-profit organization
PLCopen®
for efficiency in automation
PLCopen®
for efficiency in automation
PLCopen - a world wide association
Office in Japan
Main Office in Europe
Office in North America Office in China
PLCopen®
for efficiency in automation
Organization
TECHNICAL PROMOTIONALCOMMITTEES
PLCopenfor efficiency in automation
T C1 T C2 T C3 T C4 T C5 T C6 P C 1 PC 2 P C 3 P C 4 P C 5
G en e ral M e etin g , BO M , M D
PLCopen®
for efficiency in automation
PLCopen – providing a suite of specifications
PLCopen®
for efficiency in automation
PLCopen®
for efficiency in automation
More Information...
www.PLCopen.org Free-of-Charge electronic Newsletter ‘PLCopening’ (in english)
email: [email protected]