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: evdwal@PLCopen.org ®
© Copyright 2025