copyright © 2005 rockwell automation, inc. all rights reserved. 1 power programming v2.1 kevin...
TRANSCRIPT
Copyright © 2005 Rockwell Automation, Inc. All rights reserved. 1
Power Programming V2.1
Kevin Miller, SYDDarryl Jacobs, Rockwell Automation
2 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
What is Power Programming?
• Clear and consistent structure– Easy to follow program example.– Application note to guide you through a program example.
• State Model programming– Pack ML State Model as “Behavioral Model for machine”
• Standardized Tags– Pack Tags are used to provide raw efficiency data.
Axi
s E
na
ble
d C
on
dit
ion
Axi
s E
na
ble
d C
om
ma
nd
3 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
What can Power Programming do for you?
• Save time• Save money• Allow you to reuse modules in future projects• Make troubleshooting easier in all machines in which you use
modular code -- no matter the customer or application• Provide a quicker return on investment
4 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
So many standards, so little time!
Business Planning & LogisticsPlant Production Scheduling,Operational Management, etc
ManufacturingOperations & Control
Dispatching Production, Detailed ProductionScheduling, Reliability Assurance, ...
BatchControl
MotionControl
ContinuousControl
Level 4
Level 3
Levels2,1,0
IEC 61131Fieldbus
Equipment Control
Intelligent Devices
ISA 88IEC 61512OPCPackML*
ISA 95
Adapted from: ISA-95.00.01-2000
Automation
ERP
MES
DiscreteControl
* PackML Model is in development
5 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Rockwell Automation has assembled the right tools for the job
• The application engineer’s toolbox:– Functional specifications– Program structure examples– State models– Machine control templates– Axis routine module templates
We call it:Power Programming
6 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Power Programming is:
• Integrated– Provides interoperability with plant-wide systems through Logix– Provides standard animated diagram showing the various machine states arranged in a
flow diagram
From shop floor to top floor, you and your applications down the line, will know exactly what is going on with each of your applications, no matter where you are in the plant or which application you’re looking at -- only one play book required
7 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
RA Power Programming
Machine Logic
State Logic
Notice the consistent structure, between the Machine program and the Line Program. The Machine Logic is the routine that the Hardware I/O is connected to, E-Stops and permissive. This structure was reused for line connections to individual machines.
The Same State Logic was used, there are NO differences between these routine (Except one is written in ladder and the other is a SFC for illustration of different programming techniques.
8 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
RA Power Programming
9 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
How PhaseManager fits into ISA-88 (S88) batch control model
Recipe
Procedure Formula Values
Unit Procedures
Operations
Phases
All the instructions to make a product. (For example, Tomato Soup Recipe)
SFC(s) defining the order in
which the phases run. Can be
collapsed to just a Procedure.
Lowest level of recipe control.
(Add Water)
Defines product-specific recipe values. (Use 200
gallons water)Consists of
Consist of
Consist of
Support ISA-88 Phase State Model.
RSBizWare Batch provides Batch Management for this part for complex
batches OR an SFC routine in the controller can be the entire Procedure
for a simple batch.
PhaseManager in the controller provides the state logic framework for phases and enforces the state model.
10 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Controller Organizer View
• Phases are created and scheduled at the task level (similar to Programs)• Phase state routines are created within a phase
– Can be written in any language
Equipment Phases added in Task View
Phase Scoped Tags Folder and Control Tags are
automatically generated.
Not all States need to be implemented – only those implemented are shown
Phases can be unscheduled
11 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Programs compared to Phases
• 1 Main Routine per program• Main is called each time task executes• Main calls other subroutines based on user
Logic• Monitor code within routine to determine
what is executing
• “- ing” routines act like main routines– Aborting, Holding, Resetting, Restarting, Running, and
Stopping
• Execution determined by phase sequencer (RSBizWare Batch or application code)
• Phase monitor tool to see which routine is executing
Program PhaseRSBizWare BatchApplication Code
Batch Sequencer
12 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Equipment Phase Backing Tag
• A controller-scopedequipment phase backing tag is created by RSLogix 5000 automatically
• Tag’s name matches equipment phase name
– Makes code easier to read• Allows users to debug
and monitor equipmentphase’s execution
• Tag is accessible via HMIscreens
• Additionally, it provides self-documenting code by leveraging the descriptionpass-through functionality
Equipment PhaseBacking tag
13 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Create Phase State Routine
• Phase State routines are just like “Normal” routines except:– Have a fixed name– Are executed according to the state machine rules
• State names chosen from a list of valid states:
– Restarting– Running– Holding– Resetting– Stopping– Aborting
• Just like “Normal” routines, state routines can be implemented in any available language
– Ladder Diagram– Sequential Function Chart– Function Block Diagram– Structured Text
Select equipment phase state
Select equipment phase state
language
14 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Physical Model
Vertical Form Seal Machine
Process Cell
Unit
Equipment Module
Control Module
15 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
OEM benefits
• Scalability– Uses the same straightforward terminology no
matter the size of your machine
• Design efficiencies– Reusability
• Standardized, modular code development improves time to market– Improves design quality– Reduces errors– Uses best practices– Training costs can be focused
• allows you to easily match what customer is already using because of standardized code
• common interface minimizes customer resistance to a different brand of machine (e.g., Siemens can be migrated to A-B easily)
• Simplified maintenance– Standardized code allows allows for simplified troubleshooting – Less training required if all of the machines behave the same way
16 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
The right tools for the job
• The application engineer’s toolbox:– State models– Functional specifications– Modular code use examples– Machine program structure examples
We call it:Power Programming
17 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Let’s take a lesson
• Observe what has taken place in batch with regard to defined standards and powerful tools to model, create, and monitor systems.
• Motion Control and Packaging is undergoing some of the same development.
• Generally the end customer needs are well defined; – Access to efficiency information. – Maintainable code or a great support contract.– Highest performance possible from the machine.– Low cost of integration of machine into facility.– A clean intuitive HMI.
18 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Times are Changing
The packaging world has gone from (Line shaft) to (some servos) and (Integrated servo motion) machines. increased complexity of the control system required to run these machines compel technology providers to provide a more structured approach to integrating these control systems. In the end we would like to have a method available to integrate our systems with consistent tags, and data.
Cam
19 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
What RA is doing to help
• Rockwell Automation is continually pursuing and incorporating what you need to be successful
– active on industry committees to keep abreast of emerging practices and technology
– incorporating new industry technology and trends to provide the right tools
IEC 61131Fieldbus
Adapted from: ISA-95.00.01-2000
BatchControl
Levels2,1,0
Equipment Control
Intelligent DevicesAutomation
* PackML Model is in development
ContinuousControl
DiscreteControl
MotionControl
ISA 88IEC 61512OPC*PackML
– creating integrated, modular programming to provide:• A modular format• A consistent structure• State models• Consistent terminology
20 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
PackML
• Covers– Auto Mode State Model (S88
derived)– Data Definitions (Pack Tags)
• Assists – Derive efficiency information through
Pack Tags– Maintenance & Trouble Shooting
through common approach in Machine Sequence
– Consistent data format makes integration go smoother, adoption of a OEM machine is easier.
21 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
How Power Programming Helps You
• Allows you to view HMI using a machine state model
22 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
OEM benefits
• Design efficiencies– Reusability
• Modular code development improves time to market– Improves design quality, and reduces errors– Uses best practices
– Scalability • allows you to easily match what customer is already using because of standardized code• Uses the same straightforward terminology no matter the size of your machine• Common interface minimizes customer resistance to a different brand of machine (e.g., Siemens can be
migrated to A-B easily)
– Simplified maintenance• Standardized code allows allows for simplified troubleshooting • Less training required
23 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
End user benefits
• Simplified maintenance– Easier machine integration.– Quicker upgrades and on-site changes
• Less downtime – Standardization means easier troubleshooting– Lower training costs– Reduced changeover time
• Production– Greater machine interoperability– Higher efficiencies– Standardized efficiency reporting– Lower operator training costs
24 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Rapid Application Development
Develop quickly Control Applications by reusing libraries of standard Logix program objects that contain all the data and code required to control every device in the plant floor
When you reuse code multiple times in one program:
C Programmers = InstancesAutomation Desktop =
SubsystemsISA S88 = Equipment Modules
Machine builders = Sections
Reusable code is sometimes referred to as:
C Programmers = ClassesAutomation Desktop = TemplatesISA S88 = Equipment Modules
Machine builders = Sections
25 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Visio Version of state model
Draw ing Title:
Creation Date:
File Name:
Auto State Diagram Rev1.0
January 15, 2003
AutoStateModel.vsd
STOPPED1) System powered.2) All Axes Off (Feedback Off)3) Axes must be homed andrepositioned before running.
State=1
ABORTING1) Axes Individually commandedto stop (no coordination)2) After Stopping Axes DisableFeedback.
State=256
READY1) Starting FunctionsComplete2) Axes Geared/Cammed3) Master NOT running
State=4
STANDBY1) Machine armed forproduce conditions tocommence motion.
State=8
HELD1) Holding CommandCompleted2) Axes Remain active.
State=128
HOLDING1) Coordinated stop initiatedon master.2) All axes remain geared orcammed
State=64
ProduceCondition
sMet
ProduceCondition
sBecome
False
StartComman
d
InitializeProcessComplet
e
STARTING1) Axes faults are cleared2) Axes are enabled, Homed& moved to start positions3) Gearing/Cams initialized4) Master not Started
State=2
ABORTED1) All Axes Off (Feedback Off)2) Axes must be homed andrepositioned before running.3) Fault indications remainfor review by operator
State=512
StopProcessComplet
e
Fault
HoldingProcessComplet
e
FaultHoldCommand
FaultFault
FaultFault
Fault
STOPPING1) Stop Initiated on Master2) Once Master Stops All axescommanded to stop anddisable feedback.
State=32
StopCommand
InitializeComman
d
StopCommand
AbortingProcessComplete
StartCommand
StopCommand
From Producing
To
Sto
ppin
g
StopCommand
PRODUCING1) Master Started2) All axes performing automotion3) Bars being packaged
State=16
HoldComman
d
Auto State Model Diagram
StopCommand
StopCommand
Auto Mode InitiatedBY Operator
(START AUTO)
State Transitions
Initialize CommandStart CommandStop CommandHold Command
Initialize Process CompleteStart Process CompleteStop Process CompleteHold Process CompleteProduce ConditionsFault
26 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
States and Transitions
For this state TransitionExampleLook for Example
Stopped
Stopping
Held
Holding
Aborted
Aborting
Producing
Standby
Ready
Starting
Machine powers up in stoppedstate, or from pressing the
Stop Button
1) System powered.2) All Axes Off (Feedback Off)3) Axes must be homed before running.
State=1
--> Ready--> Stopping--> Aborting
Initilaize push button transition
1) Axes faults are cleared2) Axes enabled, Homed & moved to start position.3) Gearing/Cams initialized4) Master not Started
State=2
How is this machine initalzed
1) Starting Functions Complete2) Axes Geared/Cammed3) Master NOT running
State=4
1) Machine armed for produce conditions to commence motion.
State=8
1) Coordinated stop initiated on master.2) All axes remain geared or cammed
State=64
1) Axes Individually commanded to stop (no coordination)2) After Stopping Axes Disable Feedback.
State=256
1) Master Started2) All axes performing auto motion3) Bars being packaged
State=16
1) Holding Command Completed2) Axes Remain active.
State=128
1) Stop Initiated on Master2) Once Master Stops All axes commanded to stop and disablefeedback.
State=32
Automatic transition when allaxes have completed starting
functions.
This means someone haspressed the Start button.
Making Product.
Cycle stopping and disablingthe machine.
This is a Pause or Holdcommand indicating it will cycle
stop and servos will remainactive.
A major fault has occurred,stopping functions comencing.
Machine is stopped axesdisabled.
Held with Servos Active
--> Starting
--> Standby--> Stopping--> Aborting
--> Producing--> Holding--> Stopping--> Aborting
--> Standby--> Holding--> Stopping--> Aborting
--> Stopped--> Aborting
--> Held--> Aborting
--> Standby--> Stopping--> Aborting
--> Aborted
--> Stopped
Initialize completes successfullyStop PB transition
Fault active
Start PB TransitionStop PB transition
Fault active
Produce Conditions MetHold PB transitionStop PB transition
Fault active
Produce Conditions go awayHold PB transitionStop PB transition
Fault active
Stop PB transitionFault active
Holding functions completeFault active
Start PB TransitionStop PB transition
Fault active
Fault active
Stop PB transition
27 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Program Flow Diagram
R02Machine
Conditions
R04Auto State
Init PB pressed
R06Auto StateCommand
EM1...n (machine sections) OR
CM1...n(axis, actuator etc)
sequencecommandcomplete
R07Section
Conditions
CM1...n(axis, actuator
etc)
In our example project, we use the Start pushbutton, twice.If in the Stopped state when pressed, we consider it an st.initialize command.
If in the Ready state when pressed, we consider it a st.start command.
R02_Machine_Conditions
This routine gets status fromeach axis program, or ControlModule to validate that thecommanded state of eachrequest was reached. Thesewe call conditions, we haveissued the command and waitfor the conditions to be truebefore continuing.
R07_Section_Conditions
When in Stopped state and st.initialize the commanded state will transitioninto Starting state.
R04_Auto_State
When in Starting state there is a sequence of operations that take place;SectionCommands.Enable when All_enable_Done (meaning all axeswithin that section are emabled) the next sequence is initiatedSectionCommands.Home and so on until all required starting functions arecomplete.Then st.init_PC is returned (meaning State.Initialize Process Complete)
R06_Auto_State_Command
Note: st.xxx instructions are StateTransitions, and only used to drive the
states of the PackML State model in R04.
This example illustrates Initialization operation of this program, because it is the firstsequence that is commanded from the stopped state..
Machine.AutoState = Stopped
First time throughMachine.AutoState = Starting
When st.init_pcMachine.AutoState = Ready st.Init_pc
28 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Pseudo Code to Program View
In our example project, we use the Start pushbutton, twice.If in the Stopped state when pressed, we consider it an st.initialize command.
If in the Ready state when pressed, we consider it a st.start command.
R02_Machine_Conditions
When in Stopped state and st.initialize the commanded state will transitioninto Starting state.
R04_Auto_State
When in Starting state there is a sequence of operations that take place;SectionCommands.Enable when All_enable_Done (meaning all axeswithin that section are emabled) the next sequence is initiatedSectionCommands.Home and so on until all required starting functions arecomplete.Then st.init_PC is returned (meaning State.Initialize Process Complete)
R06_Auto_State_Command
Note: st.xxx instructions are StateTransitions, and only used to drive the
states of the PackML State model in R04.
Axi
s E
nab
led
Co
nd
itio
n
Axi
s E
nab
led
Co
mm
and
29 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
How to integrate using base code
30 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
How to qualify its use
1. Clear Structure– Local tags in main program– Sub routines
• MachineConditions• AutoStateCommands, AutoState, SectionConditions
2. State Model
3. Built in data structure• UDT Pack Tags
How to know if someone is using Power Programming? If you have these three elements from our program sample you are using it.
31 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Steps
Artistic code-Generally fast executing
-Often difficult to follow-always requires further integrations work
Power Programming-PML State Model
-Clear Structure-Best Practices-Pack Tags 2.0
Advanced Code-Cam Builder
-Higher Performance-Appnotes/Sample Code
Stepping up in technology and structure.
Take a look at where we are today and where we are heading…
Hand build one of a kind code.
State Models introduced, use of structure
32 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
A walk through Initialization
R02Machine
Conditions
R04Auto State
Init PB pressed
R06Auto StateCommand
EM1...n (machine sections) OR
CM1...n(axis, actuator etc)
sequencecommandcomplete
R07Section
Conditions
CM1...n(axis, actuator
etc)
In our example project, we use the Start pushbutton, twice.If in the Stopped state when pressed, we consider it an st.initialize command.
If in the Ready state when pressed, we consider it a st.start command.
R02_Machine_Conditions
This routine gets status fromeach axis program, orControl Moule to validatethat the commanded stateof each request wasreached. These we callconditions, we have issuedthe command and wait forthe conditions to be truebefore continuing.
R07_Section_Conditions
When in Stopped state and st.initialize the commanded state willtransition into Starting state.
R04_Auto_State
When in Starting state there is a sequence of operations that take place;SectionCommands.Enable when All_enable_Done (meaning all axeswithin that section are emabled) the next sequence is initiatedSectionCommands.Home and so on until all required starting functionsare complete.Then st.init_PC is returned (meaning State.Initialize Process Complete)
R06_Auto_State_Command
Note: any st.xxx instructions are StateTransitions, and only used to drive thestates of the PackML State model in
R04.
Axi
s E
nab
led
Co
nd
itio
n
Axi
s E
nab
led
Co
mm
and
33 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
From a customer
• Q The PACKML automatic mode state model provides an excellent framework or structure for organizing and developing machine control applications.
• A Consider Power Programming with Pack ML a behavioral model for a machine, or discrete process, ie. Starting= Initialize= do whatever you have to do to get ready.
• Q I am curious to know if you are aware of any OEMs or users who have adopted the PACKML automatic mode state model in there automation specifications.
• A I am aware of many of our OEM's that we have had this discussion with, and sometimes it breaks down when we get to adoption, I am working on specifying what "using Power Programming" means. I have pretty much boiled it down to 3 elements, PackML state model, State Transitions routine, Pack Tags 2.0. Beyond those basics the "artistry" of the OEM come back into play. We provide the basic structure, Model, Structure, consistent Data.
• Q Also, in your opinion, do you feel or have you seen that the PACKML automatic mode state model & PowerProgramming have lead to significant re-use of code?
• A I can speak for many of the Rockwell Applications Engineers when I tell you we use it as our "starter code". From and OEM-centric point of view, it would be wise to reuse good structure and proven code for their machines also. I have been evangelizing the benefits of code reuse for some time now, and believe the message is coming across loud and clear.
• Q Do you find that the PACKML automatic mode state model useful for rapid development of machine functional requirements? • A Sure, we have used is as the foundation of the behavior model. See the Visio file attached to the examples available at
ab.com/powerprogramming.
• Q Please let us know what your experience or knowledge is with respect to adoption of the PACKML automatic mode state model in company standards, practices or specifications.
• A Many of our customers are attempting to specify Pack ML, and we are presenting a more integrated solution with Power Programming as the 3 elements I discussed earlier, and some example code to get them going. This goes far beyond the PackML state model, and goes more into program structure.
34 Copyright © 2005 Rockwell Automation, Inc. All rights reserved.
Resources
• Power Programming Website www.ab.com/powerprogramming
• PackML OMAC Website www.packml.org
Copyright © 2005 Rockwell Automation, Inc. All rights reserved. 35
Thanks for your attention