for efficiency in automation

Download Report

Transcript for efficiency in automation

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)
100%
80%
60%
40%
20%
0%
1970
1980
Mechanic
1990
Electric
Software
2000
®
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
Decomposition
S1
N
Initialisation
with
S2
N
Filling
Sequential
S3
N
Heating
Function
S4
N
Fermenting
Chart
S5
N
Harvesting
S6
N
Cleaning
SFC
PLCopen
for efficiency in automation
Bottom-up after top-down
First decompose – then fill it in
Top-
Bottom
down
up
®
PLCopen
for efficiency in automation
Abstraction via Function Blocks
MC_MoveAbsolute
AXIS_REF
BOOL
BOOL
REAL
REAL
REAL
REAL
REAL
MC_DIRECTION
MC_BUFFER_MODE
Axis
Execute
ContinuousUpdate
Position
Velocity
Acceleration
Deceleration
Jerk
Direction
BufferMode
Axis
Done
Busy
Active
CommandAborted
Error
ErrorID
AXIS_REF
BOOL
BOOL
BOOL
BOOL
BOOL
WORD
®
PLCopen
for efficiency in automation
Axis_Ref as Var_In_Out
Axis1
FB
Axis_Ref
Structure
®
PLCopen
for efficiency in automation
Abstraction / HW Independence via
Function Blocks
Software View
Hardware View
Encapsulation / Information Hiding
Inputs
Name
Intelligent Drive
I/F
Motor
Outputs
E
PWM
I/F
Drive
Motor
E
®
PLCopen
for efficiency in automation
Abstraction with one FB
Axis1
FB
Time or event driven
Task
Manager
Axis_Ref
Structure
Conversion
I/F
Drive
®
PLCopen
for efficiency in automation
and with 2 FBs
Axis1
FB1
FB2
Time or event driven
Task
Manager
Axis_Ref
Structure
Conversion
I/F
Drive
®
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
Part 1 – MC FBs
Single
Axis
Multiple
Axes
Single
Axis
Multiple
Axes
Non-Interpolated
Power
ClearPendingActions
CamTableSelect
MoveAbsolute
MoveRelative
CamIn
CamOut
ReadStatus
MoveSuperImposed
GearIn
ReadAxisError
MoveContinuous
GearOut
ReadParameter
MoveVelocity
WriteParameter
Home
ReadActualPosition
Stop
PositionProfile
VelocityProfile
AccelerationProfile
®
PLCopen
for efficiency in automation
Administrative
Motion
Part 2 - Extensions
Single
Axis
TouchProbe
AbortTrigger
ReadDigitalInput
ReadDigitalOutput
WriteDigitalOutput
SetPosition
SetOverride
ReadActualVelocity
ReadActualTorque
Multiple
Axes
Single
Axis
TorqueControl
DigitalCamSwitch
Multiple
Axes
GearInPos
®
PLCopen
for efficiency in automation
Administrative
Motion
Part 4 – MC FBs
Coordinated
Coordinated
Synchronized
AddAxisToGroup/ RemoveAxisFromGroup
UngroupAllAxes
GroupReadConfiguration
GroupHome
GroupStop
SyncAxisToGroup
SyncGroupToAxis
GroupHalt
TrackConveyorBelt
GroupEnable / GroupDisable
GroupInterrupt
TrackRotaryTable
SetKin/Cartesian/CoordinateTransform
ReadKin/Cartesian/CoordinateTransform
GroupContinue
GroupSetPosition / GroupReset
GroupReadActualPosition/Vel/Acc
GroupReadStatus/ReadError
PathSelect
GroupSetOverride
SetDynCoordTransform
MoveLinearAbsolute
MoveLinearRelative
MoveCircularAbsolute
MoveCircularRelative
MoveDirectAbsolute
MoveDirectRelative
MovePath
®
PLCopen
for efficiency in automation
Administrative
Motion
Part 6 – Fluid Power
Single
Axis
LimitLoad
LimitMotion
Multiple
Axes
Single
Axis
LoadControl
LoadSuperimposed
LoadProfile
Multiple
Axes
®
PLCopen
for efficiency in automation
Part 5 – Homing Procedures
Homing Procedures
l HomeAbsoluteSwitch, HomeLimitSwitch, HomeBlock, HomeReferencePulse,
HomeReferencePulseSet, HomeDistanceCoded, HomeDirect, HomeAbsolute
Homing Step Function Blocks
l FBs: MC_StepAbsoluteSwitch, MC_StepLimitSwitch, MC_StepBlock,
MC_StepReferencePulse, MC_StepDistanceCoded
l Finalizing: MC_HomeDirect, MC_HomeAbsolute, MC_FinishHoming
l Homing on-the-fly: MC_StepReferenceFlyingSwitch,
MC_StepReferenceFlyingRefPulse, MC_AbortPassiveHoming
®
PLCopen
for efficiency in automation
Part 3 – User Guidelines
Shows 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
FB1
MoveVelocity
Axis
K
10
Execute InVelocity
Velocity
FB3
FB2
MoveVelocity
MoveVelocity
Axis
L
Axis
M
Execute InVelocity
InVel.
Execute InVelocity
20
Velocity
0
Velocity
®
PLCopen
for efficiency in automation
Timing
Diagram
®
PLCopen
for efficiency in automation
Example – Multiple FBs on 1 axis - FBD
FB2
FB1
MC_MoveVelocity
MC_MoveVelocity
Axis
K
Execute
10
Velocity
FB3
AND
InVelocity
L
20
MC_MoveVelocity
Axis
Axis
Execute
Execute
Velocity
0
InVelocity
M
Velocity
InVelocity
®
PLCopen
for efficiency in automation
Example with SFC
K = true
V:= 10; E := TRUE;
InVelocity = TRUE
MC_MoveVelocity
Axis X
E := FALSE;
E
Execute
InVelocity
L = TRUE
V:= 20; E := TRUE;
V
Velocity
InVelocity = TRUE
E := FALSE;
M = TRUE
V:= 0; E := TRUE;
InVelocity =TRUE
E := FALSE;
K, L, M are Boolean Variables
Y
®
PLCopen
for efficiency in automation
Example - GearIn
MC_GearIn
AXIS_REF
AXIS_REF
BOOL
INT
UINT
REAL
REAL
REAL
Master
Slave
Execute
RatioNumerator
RatioDenominator
Acceleration
Deceleration
Jerk
Master
Slave
InGear
CommandAborted
Error
ErrorID
AXIS_REF
AXIS_REF
BOOL
BOOL
BOOL
WORD
®
PLCopen
for efficiency in automation
GearIn
First
Second
GearIn
MyMaster
MySlave
Master
Master
Slave
Slave
Execute
1
100
100
1
GearIn
Ratio
InGear
Execute
CommandAborted
2
Acceleration
Error
100
Acceleration
Error
Deceleration
ErrorID
100
Deceleration
ErrorID
Jerk
1
Ratio
InGear
Jerk
CommandAborted
®
PLCopen
for efficiency in automation
GearIn
1
First.Execute
t
0
1
First.InGear
t
0
Ratio
Reached
1
Second.Execute
t
0
1
Second.InGear
t
0
Ratio
Reached
MySlave.Velocity
t
®
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
MoveAbsolute
AXIS_REF
BOOL
REAL
REAL
REAL
REAL
REAL
MC_Direction
MC_BufferMode
Axis
Execute
Position
Velocity
Acceleration
Deceleration
Jerk
Direction
BufferMode
Axis
Done
CommandAborted
Busy
Active
Error
ErrorID
AXIS_REF
BOOL
BOOL
BOOL
BOOL
BOOL
WORD
Error
- Rising edge – error during execution of the FB
ErrorID
- Error identification
®
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 for press application
MC_PathGearInMaster
Robot1
Press Motion
Robot2
Robot Motion
®
PLCopen
for efficiency in automation
Tracking
®
PLCopen
for efficiency in automation
Encapsulation
®
PLCopen
for efficiency in automation
Labelling
Label
Product Detection
LabelDrive
Product
Conveyor
Sensor distance
®
PLCopen
for efficiency in automation
The labelling program
MC_MoveRelative
MC_MoveRelative
LabelDrive
TON
Product
Detection
IN
PT
Q
ET
Axis
Execute
LabelLength
Delay
SensorDistance
Axis
Done
Position
Busy
Velocity
Active
Acceleration
DIV
CommandAborted
Deceleration
Error
Jerk
ErrorID
Direction
Velocity
Buffermode
MC_MoveVelocity
MC_MoveVelocity
Conveyor
Start
Axis
Axis
Execute
InVelocity
Velocity
Active
Busy
Acceleration
Deceleration
Jerk
Direction
Buffermode
CommandAborted
Error
ErrorID
®
PLCopen
for efficiency in automation
Possible improvements
®
PLCopen
for efficiency in automation
Warehousing Example
Axis_Y
Axis_Z
A
_
xi s
X
®
PLCopen
for efficiency in automation
Application Program (1/2)
MoveToPalletX
MC_MoveAbsolute
Axis_X
Pos_X
40.0
Axis
Axis
Execute
Done
Position
Busy
Velocity
MC_MoveRelative
Active
Acceleration
CommandAborted
Deceleration
Start
ForkInPallet
Axis_Z
Error
Jerk
Execute
1000.0
20.0
ErrorID
Direction
Buffermode
Axis
Execute
Pos_Y
40.0
Done
Busy
Velocity
Active
Acceleration
Deceleration
Direction
Buffermode
Deceleration
Buffermode
Axis
Position
Jerk
Busy
Active
Direction
MC_MoveAbsolute
CommandAborted
Error
ErrorID
Done
Velocity
Jerk
MoveToPalletY
Axis
Position
Acceleration
AND
Axis_Y
Axis
CommandAborted
Error
ErrorID
®
PLCopen
for efficiency in automation
Application Program (2/2)
ForkLift
ForkOutWithPallet
MC_MoveRelative
Axis_Y
100.0
10.0
Axis
MC_MoveAbsolute
Axis
Execute
Done
Position
Busy
Velocity
Active
Axis
Axis_Z
Axis
Execute
0.0
20.0
Done
Position
Busy
Velocity
Active
Acceleration
CommandAborted
Acceleration
Deceleration
Error
Deceleration
Jerk
ErrorID
CommandAborted
Error
Jerk
Direction
Direction
Buffermode
Buffermode
ErrorID
MoveToDeliveryX
MC_MoveAbsolute
Axis_X
Axis
Execute
Axis
0.0
Position
Busy
40.0
Velocity
Active
Acceleration
Deceleration
Jerk
AND
Done
CommandAborted
Error
MoveToDeliveryY
ErrorID
Direction
Buffermode
Finished
MC_MoveAbsolute
Axis_Y
Axis
Execute
0.0
40.0
Axis
Done
Position
Busy
Velocity
Active
Acceleration
Deceleration
Jerk
Direction
Buffermode
CommandAborted
Error
ErrorID
®
PLCopen
for efficiency in automation
Alt. Application Program
MoveToPallet
MC_MoveLinearAbsolute
XYZLifter
Start
Pos_X, Pos_Y, 0
40.0
AxisGroup
Done
Positions
Busy
Velocity
Active
CommandAborted
TransitionMode
Error
TransitionParameter
ErrorID
AxisGroup
0, 0, 1000
20.0
BlendingNext
TMCornerDistance
100
Execute
Done
Positions
Busy
Velocity
Active
BufferMode
TransitionParameter
Positions
Busy
TransitionMode
TransitionParameter
Active
CommandAborted
Error
ErrorID
AxisGroup
0, 0, 0
40.0
BlendingNext
TMCornerDistance
100
AxisGroup
Execute
Done
Positions
Busy
Velocity
BufferMode
TransitionMode
TransitionParameter
Active
CommandAborted
Error
ErrorID
Finished
AxisGroup
Done
Positions
Busy
Velocity
Active
BufferMode
TransitionMode
TransitionParameter
ErrorID
MC_MoveLinearAbsolute
AxisGroup
Done
BufferMode
Error
MoveToDelivery
Execute
Velocity
Execute
0, 100, 0
20.0
Aborting
TMNone
CommandAborted
TransitionMode
MC_MoveLinearRelative
0, 0, -1000
20.0
Aborting
TMNone
AxisGroup
AxisGroup
ForkOutWithPallet
AxisGroup
MC_MoveLinearRelative
MC_MoveLinearRelative
AxisGroup
Execute
BufferMode
LiftPallet
ForkInPallet
CommandAborted
Error
ErrorID
®
PLCopen
for efficiency in automation
Encapsulation: Winding / Unwinding
torque
tension
r
®
PLCopen
for efficiency in automation
Dancer Control
M
M
DANCER
LOAD CELL
®
PLCopen
for efficiency in automation
Graphical representation of FB
PS_Wind_csv
AXIS_REF
BOOL
REAL
REAL
PS_Direction
REAL
REAL
REAL
REAL
REAL
Axis
Enable
Velocity
SpoolRadius
Direction
Min_S_Radius
Max_S_Radius
Acceleration
Deceleration
Jerk
Axis
Busy
InVelocity
Error
ErrorID
AXIS_REF
BOOL
BOOL
BOOL
WORD
®
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 specifications
A suite of implementations
A suite of suppliers
A very fast growing suite of users
A suite of advantages
®
PLCopen
for efficiency in automation
PLCopen
Combining 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
Main Office in Europe
Office in North America
Office in China
Office in Japan
PLCopen
®
for efficiency in automation
Organization
PLCopen
for efficiency in automation
General Meeting, BOM, MD
TC1
TC2
TC3
TC4
TC5
TC6
PC1
TECHNICAL
PC2
PC3
PC4
PROMOTIONAL
COMMITTEES
PC5
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]
®