plcopen motion control an introduction

58
PLCopen ® for efficiency in automation PLCopen Motion Control an introduction Check the notes in the notes view

Upload: avani

Post on 23-Mar-2016

190 views

Category:

Documents


15 download

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 Presentation

TRANSCRIPT

Page 1: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

PLCopen Motion Control

an introduction

Check the notes in the notes view

Page 2: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

PLCopen Motion Control:

The software problem

Page 3: PLCopen Motion Control       an introduction

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

Page 4: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Managing Complexity

100 – 10,000 – 1mio – 100mio Lines of Code

Exponentially increasing complexity

Page 5: PLCopen Motion Control       an introduction

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

Page 6: PLCopen Motion Control       an introduction

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

Page 7: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Decompositionwith

SequentialFunction

ChartSFC

N Initialisation S1

N FillingS2

N HeatingS3

N FermentingS4

N HarvestingS5

N CleaningS6

Page 8: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Bottom-up after top-down

Top-

down

Bottom

up

First decompose – then fill it in

Page 9: PLCopen Motion Control       an introduction

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

Page 10: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Axis_Ref as Var_In_Out

FBAxis1

Axis_RefStructure

Page 11: PLCopen Motion Control       an introduction

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

Page 12: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Abstraction with one FB

FBAxis1

Axis_RefStructure

I/F

TaskManager

DriveConver-sion

Time or event driven

Page 13: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

and with 2 FBs

FB1Axis1

Axis_RefStructure

I/F Drive

TaskManager

Conver-sion

Time or event driven

FB2

Page 14: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Mechatronic solutions

Mechanical solution.

Control solution

Page 15: PLCopen Motion Control       an introduction

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)

Page 16: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Administrative Motion

SingleAxis

MultipleAxes

SingleAxis

MultipleAxes

Non-InterpolatedMoveAbsoluteMoveRelativeMoveSuperImposedMoveContinuousMoveVelocityHomeStop

PowerClearPendingActionsReadStatusReadAxisErrorReadParameterWriteParameterReadActualPosition

PositionProfileVelocityProfileAccelerationProfile

CamTableSelect CamInCamOutGearInGearOut

Part 1 – MC FBs

Page 17: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Administrative Motion

SingleAxis

MultipleAxes

SingleAxis

MultipleAxes

TorqueControlDigitalCamSwitch

TouchProbeAbortTriggerReadDigitalInputReadDigitalOutputWriteDigitalOutputSetPositionSetOverride

GearInPos

ReadActualVelocityReadActualTorque

Part 2 - Extensions

Page 18: PLCopen Motion Control       an introduction

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

Page 19: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Administrative Motion

SingleAxis

MultipleAxes

SingleAxis

MultipleAxes

LoadControlLoadSuperimposed

LimitLoadLimitMotion

LoadProfile

Part 6 – Fluid Power

Page 20: PLCopen Motion Control       an introduction

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

Page 21: PLCopen Motion Control       an introduction

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

Page 22: PLCopen Motion Control       an introduction

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

Page 23: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Timing Diagram

Page 24: PLCopen Motion Control       an introduction

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

Page 25: PLCopen Motion Control       an introduction

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

Page 26: PLCopen Motion Control       an introduction

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

Page 27: PLCopen Motion Control       an introduction

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

Page 28: PLCopen Motion Control       an introduction

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

Page 29: PLCopen Motion Control       an introduction

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.

Page 30: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Start-up procedure

Page 31: PLCopen Motion Control       an introduction

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

Page 32: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Part 4 – Coordinated Motion

Page 33: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Synchronized Motion items

SyncAxisToGroup

SyncGroupToAxis

TrackConveyorBelt

TrackRotaryTable

Page 34: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Synchronization of single axis to an axes group

Page 35: PLCopen Motion Control       an introduction

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

Page 36: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Tracking

Page 37: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Encapsulation

Page 38: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Labelling

Conveyor

LabelDriveProduct Detection

Product

Label

Sensor distance

Page 39: PLCopen Motion Control       an introduction

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

Page 40: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Possible improvements

Page 41: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Warehousing Example

Axis_X

Axi

s_Y

Axis_Z

Page 42: PLCopen Motion Control       an introduction

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)

Page 43: PLCopen Motion Control       an introduction

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)

Page 44: PLCopen Motion Control       an introduction

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

Page 45: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Encapsulation: Winding / Unwinding

rtorquetension

Page 46: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Dancer Control

LOAD CELL

M

M

DANCER

Page 47: PLCopen Motion Control       an introduction

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

Page 48: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

UDFB for Winding (csv)

Page 49: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Page 50: PLCopen Motion Control       an introduction

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

Page 51: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

PLCopenCombining Logic, Motion and Safety

Providing Structuring, Decomposition, Reuse and less training

Page 52: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Some words to the

Not-for-profit organization

Page 53: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Page 54: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

PLCopen - a world wide association

Office in Japan

Main Office in Europe

Office in North America Office in China

Page 55: PLCopen Motion Control       an introduction

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

Page 56: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

PLCopen – providing a suite of specifications

Page 57: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

Page 58: PLCopen Motion Control       an introduction

PLCopen®

for efficiency in automation

More Information...

www.PLCopen.org Free-of-Charge electronic Newsletter ‘PLCopening’ (in english)

email: [email protected]