700 likes | 1.24k Views
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 ?.
E N D
PLCopen Motion Control an introduction Check the notes in the notes view
Managing Complexity 100 – 10,000 – 1mio – 100mio Lines of Code Exponentially increasing complexity
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
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
Bottom-up after top-down First decompose – then fill it in Top- down Bottom up
Abstraction via Function Blocks MC_MoveAbsolute Axis Axis AXIS_REF AXIS_REF Done BOOL BOOL Execute Busy BOOL BOOL ContinuousUpdate REAL BOOL Active Position BOOL REAL CommandAborted Velocity BOOL Error REAL Acceleration WORD ErrorID REAL Deceleration Jerk REAL MC_DIRECTION Direction MC_BUFFER_MODE BufferMode
Axis_Ref as Var_In_Out Axis1 FB Axis_Ref Structure
Abstraction / HW Independence via Function Blocks Intelligent Drive Motor I/F Name Outputs Inputs E PWM Drive Motor I/F E Software View Hardware View Encapsulation / Information Hiding
Abstraction with one FB Drive Axis1 FB Time or event driven Task Manager Conver- sion Axis_Ref Structure I/F
and with 2 FBs Axis1 FB1 FB2 Time or event driven Task Manager Conver- sion Axis_Ref Structure I/F Drive
Mechatronic solutions Mechanical solution. Control solution
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 over40 products (check website for full list)
Administrative Motion Part 1 – MC FBs Single Multiple Single Multiple Axis Axes Axis Axes Non-Interpolated Power CamTableSelect MoveAbsolute CamIn ClearPendingActions MoveRelative CamOut ReadStatus MoveSuperImposed GearIn ReadAxisError MoveContinuous GearOut ReadParameter MoveVelocity WriteParameter Home ReadActualPosition Stop PositionProfile VelocityProfile AccelerationProfile
Administrative Motion Part 2 - Extensions Single Multiple Single Multiple Axis Axes Axis Axes TouchProbe TorqueControl GearInPos AbortTrigger DigitalCamSwitch ReadDigitalInput ReadDigitalOutput WriteDigitalOutput SetPosition SetOverride ReadActualVelocity ReadActualTorque
Administrative Motion Part 4 – MC FBs Coordinated Synchronized Coordinated AddAxisToGroup/ RemoveAxisFromGroup GroupHome SyncAxisToGroup UngroupAllAxes GroupStop SyncGroupToAxis GroupReadConfiguration GroupHalt TrackConveyorBelt GroupEnable / GroupDisable GroupInterrupt TrackRotaryTable SetKin/Cartesian/CoordinateTransform GroupContinue ReadKin/Cartesian/CoordinateTransform MoveLinearAbsolute GroupSetPosition / GroupReset MoveLinearRelative GroupReadActualPosition/Vel/Acc MoveCircularAbsolute GroupReadStatus/ReadError MoveCircularRelative PathSelect MoveDirectAbsolute GroupSetOverride MoveDirectRelative SetDynCoordTransform MovePath
Administrative Motion Part 6 – Fluid Power Single Multiple Single Multiple Axis Axes Axis Axes LimitLoad LoadControl LimitMotion LoadSuperimposed LoadProfile
Part 5 – Homing Procedures • Homing 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
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
Example - GearIn MC_GearIn Master Master AXIS_REF AXIS_REF Slave Slave AXIS_REF AXIS_REF InGear BOOL BOOL Execute CommandAborted BOOL RatioNumerator INT RatioDenominator Error UINT BOOL Acceleration REAL ErrorID WORD Deceleration REAL Jerk REAL
Start-up procedure Is independent of the architecture Consists of 3 commands: MC_Power MC_Home MC_Move….. To make any axis move.
Error Handling MoveAbsolute Axis Axis AXIS_REF AXIS_REF Done BOOL BOOL Execute BOOL REAL CommandAborted Position Busy BOOL Velocity REAL Active BOOL Acceleration REAL BOOL Error Deceleration REAL ErrorID WORD Jerk REAL MC_Direction Direction MC_BufferMode BufferMode • Error - Rising edge – error during execution of the FB • ErrorID - Error identification
Synchronized Motion items SyncAxisToGroup SyncGroupToAxis TrackConveyorBelt TrackRotaryTable
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