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

PLCopen Motion Control an introduction

Mar 23, 2016

Download

Documents

Avani

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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]