Você está na página 1de 46

Applying Modular Design Concepts to Structured

Machine Program Development




















For Classroom Use Only!

Important User Information

This documentation, whether, illustrative, printed, online or electronic (hereinafter Documentation) is intended for use only as
a learning aid when using Rockwell Automation approved demonstration hardware, software and firmware. The Documentation
should only be used as a learning tool by qualified professionals.

The variety of uses for the hardware, software and firmware (hereinafter Products) described in this Documentation, mandates
that those responsible for the application and use of those Products must satisfy themselves that all necessary steps have been
taken to ensure that each application and actual use meets all performance and safety requirements, including any applicable
laws, regulations, codes and standards in addition to any applicable technical documents.

In no event will Rockwell Automation, Inc., or any of its affiliate or subsidiary companies (hereinafter Rockwell Automation) be
responsible or liable for any indirect or consequential damages resulting from the use or application of the Products described in
this Documentation. Rockwell Automation does not assume responsibility or liability for damages of any kind based on the
alleged use of, or reliance on, this Documentation.

No patent liability is assumed by Rockwell Automation with respect to use of information, circuits, equipment, or software
described in the Documentation.

Except as specifically agreed in writing as part of a maintenance or support contract, equipment users are responsible for:
properly using, calibrating, operating, monitoring and maintaining all Products consistent with all Rockwell Automation
or third-party provided instructions, warnings, recommendations and documentation;
ensuring that only properly trained personnel use, operate and maintain the Products at all times;
staying informed of all Product updates and alerts and implementing all updates and fixes; and
all other factors affecting the Products that are outside of the direct control of Rockwell Automation.

Reproduction of the contents of the Documentation, in whole or in part, without written permission of Rockwell Automation is
prohibited.

Throughout this manual we use the following notes to make you aware of safety considerations:

Identifies information about practices or circumstances
that can cause an explosion in a hazardous environment,
which may lead to personal injury or death, property damage, or economic loss.



Identifies information that is critical for successful application and understanding of the product.



Identifies information about practices or circumstances that can lead to personal injury or death, property
damage, or economic loss. Attentions help you:
identify a hazard
avoid a hazard
recognize the consequence


Labels may be located on or inside the drive to alert people that dangerous voltage may be present.





Labels may be located on or inside the drive to alert people that surfaces may be dangerous temperatures.








3 of 46
Applying Modular Design Concepts to Structured Machine Program Development
Cont ent s
Before you begin ........................................................................................................................................... 4
About this lab .................................................................................................................................................................................... 4
Tools & prerequisites ........................................................................................................................................................................ 4
Exercise 1 Verify Machine Functionality .................................................................................................... 5
Operate the Washing Machine ......................................................................................................................................................... 5
Exercise 2 Modular Ladder ........................................................................................................................ 6
Washing Machine Logic .................................................................................................................................................................... 6
Verifying Application Changes ........................................................................................................................................................ 11
Exercise 3 Structured Ladder .................................................................................................................. 15
Washing Machine Logic .................................................................................................................................................................. 15
Verifying Application Changes ........................................................................................................................................................ 19
Exercise 4 Traditional Ladder .................................................................................................................. 22
Washing Machine Logic .................................................................................................................................................................. 22
Simulation Logic .............................................................................................................................................................................. 30
Verifying Application Changes ........................................................................................................................................................ 31
Exercise 5 Device Level Modularity ......................................................................................................... 34
Device Driver Logic ....................................................................................................................................................................... 34
Verifying Application Changes ........................................................................................................................................................ 43


4 of 46
Before you begin
It is expected that prior to beginning this lab, users are equipped with a basic knowledge of Programmable Logic Controllers and
associated programming environments. Users must be familiar with the RSLogix5000 programming software and be able to
navigate the software as well as edit /create ladder logic utilizing basic ladder instructions. .
About this lab
In the following lab exercises, the participant will assume the role of an engineer for a company that designs and produces
washing machines. The current project is to upgrade an existing model of washer to incorporate a Variable Frequency Drive
(VFD) in the design. The VFD will replace the existing motor starter, which will result in higher efficiency and reduced wear on
the motor.
As engineers with various programming backgrounds were involved in the development of the original programs, there are three
distinct programs that require updates. While functionally identical, these programs are examples of traditional ladder, structured
ladder, and modular ladder. Each exercise will guide the participant through the upgrade process to illustrate the efforts required
to perform program updates to accommodate the new design into each of the programs.
The final task will require the participant to replace an AOI designed to control a single-acting solenoid valve with an AOI
developed to operate a double-acting solenoid valve.
This lab takes approximately 50 minutes to complete.
Tools & prerequisites
Required Software
RSLogix5000 v21
SoftLogix5800 v21
FactoryTalk View ME Station v7.0
Required Files
Exercise 1-5
WashingMachine_Start.mer User Interface
Exercise 2
WashingMachine_ModularLadder.ACD Start File
Module_DriveControl_VFD.L5X Import File
Exercise 3
WashingMachine_StructuredLadder.ACD Start File
Exercise 4
WashingMachine_TraditionalLadder.ACD Start File
Exercise 5
WashingMachine_Modular_DD.ACD Start File
Sol_SolenoidValve_DA.L5X Import File

5 of 46
Exercise 1 Verify Machine Functionality
Operate the Washing Machine

1. Select a wash temperature and cycle type and start the machine.
Observe the Active Operation perform both Wash cycle and Rinse cycle
Observe the Active Step in each cycle change as the machine cycles






Water Temperature Selection
Wash / Rinse
Cycle Control
Start / Stop / Pause
Cycle Selection Regular / Delicate
Cycle Status

6 of 46
Exercise 2 Modular Ladder
Washing Machine Logic
The Modular Ladder example is a highly organized method of programming designed to provide the programmer(s) a significant
amount of flexibility to meet varying application needs and limit the amount of repetitive effort required. The procedural control is
separated from the device control; and the procedural and device controls are each subdivided further.
The Cycle Procedure controls the entire machine processing control. It has been divided into two Sub Procedures, a Wash
Procedure and a Rinse Procedure. This division allows the programmer(s) to build the Cycle Procedure by choosing when to
call these Sub Procedures. This example only calls each Sub Procedure once, but it could easily be adapted to add a PreWash
or an Extra Rinse by calling the Wash or Rinse a second time. These Sub Procedures are similarly subdivided into a sequencing
of Module Procedures to control functions of each Module. These procedural controls use a common interface defined by a
state model. That model defines a common set of states of the procedure and transition commands, as well as a defined
transition path to and from each state. The calling procedure simply outputs the desired transition command and monitors the
state.
The device control for the machine has been broken into Modules which consist of devices grouped to perform a specific
machine function. Each device consists of all of the inputs and outputs for the component, and Device Driver logic is written to
monitor the inputs and manipulate the outputs. An interface of device commands, parameters, and status is defined to allow
interaction with the Module Procedure(s) for the Module that uses that device. A generic naming convention allows similar
devices to be interchanged within the Module.



With a modular approach defining how modules are communicated with, the Import/Export
features in RSLogix5000 can be leveraged to quickly update modules to change
functionality!

1. Open the Lab Files folder on the desktop.

2. Double click on the file WashingMachine_ModularLadder.ACD.


7 of 46
3. In the Controller Organizer, navigate to the program folder Module_DriveControl

4. Locate the routine called DeviceDriver_MotorControl and double-click to open the routine.

5. Note the code inside the DeviceDriver_MotorControl routine is written to support the existing motor starter used
on the washer. (No Edits Required)


8 of 46
6. Importing a new module:
With the project open, right-click on the MainTask folder and select Import Program
.
7. Navigate to the desktop folder Lab Files and locate the *.L5X module import.


9 of 46
8. Because this module supports the new VFD hardware, select Overwrite to overwrite existing module upon
import.
Do not select OK until Step 11 - Proceed to next step

9. In the Content List on the left, select Program Tags.
Note:
Tags existing in both modules will be overwritten
Tags existing in only the new module will be created
Tags existing in only the old module will be deleted



10 of 46
10. In the Content List on the left, select Routines.
Note:
Routines existing in both modules will be overwritten
Routines existing in only the new module will be created

11. Select OK to import the module


11 of 46
Verifying Application Changes
1. In the Controller Organizer, navigate to the program folder Module_DriveControl

2. Locate the routine called DeviceDriver_MotorControl and double-click to open the routine.

3. Verify the device driver code is now different to support the VFD control. (No Edits Required)



12 of 46
4. Download the modified application to the SoftLogix5800 controller.
In RSLogix5000 use the Communication Dropdown menu to select Who Active


5. Navigate to the 1789-L60/A SoftLogix Controller and select Download


13 of 46
6. If prompted, confirm the download request.

7. After the download is complete, verify the processor is in Run Mode.


14 of 46
8. Using the HMI, verify the machine cycles properly by starting a cycle and monitoring the status.


Machine Upgrade Edit Summary:
Modular Example:
Number of Rungs Edited 0 of 357, or 0 % of Rungs in the project were modified
Number of Modules Imported 1, including required tag, rung, and routine adds and edits
Leveraging the ability to separate code into different program folders in addition to functional separation of
code using routines and adding a defined mechanism to facilitate communication between modules greatly
reduced the complexity of making changes to the hardware on the washing machine.
A defined code structure allows for parallel code developments; in this case the ability to engineer hardware
specific modules that can be imported easily into applications using the import / export capabilities provided
by the RSLogix5000 software environment.

15 of 46
Exercise 3 Structured Ladder
The Structured Ladder example is a linear execution method; though it organizes the code into logical function groups for
initializing, input monitoring, procedural execution, and output manipulation. A method of interface is defined so the inputs are
used to define the procedure operating parameters and step transitions and the outputs are manipulated based on the active
step of the procedure. This allows the input and output devices to be changed without requiring change to the procedural logic,
and the procedure can be changed with minimal changes to the inputs or outputs routines.




Washing Machine Logic
1. Open the Lab Files folder on the desktop.

2. Double click on the file WashingMachine_StructuredLadder.ACD.

3. With the project open, expand the Main Program program folder and open the program tag database.


Inputs Outputs
Cycle
Procedure
Input Devices
Operator
Inputs
Output Devices
Display
Outputs
Transitions Step Values
Parameters

16 of 46
4. Add the following tags to the tag database:
Out_Drive_Start BOOL
Out_Drive_Stop BOOL
Par _Drive_HighSpeed DINT
Par _ Drive_LowSpeed DINT
Out_Drive_SpeedReference INT

5. Return to the Controller Organizer and open the routine R04_Outputs.


17 of 46
6. Edit Rung 3 Drive/Motor Speed Selection
Replace the existing output with MOV instructions to move High Speed / Low Speed values to the VFD speed reference
If Cfg_AgitateSpeed Then MOV Par_Drive_HighSpeed / Out_Drive_SpeedReference
If not Cfg_AgitateSpeed then MOV Par_Drive_LowSpeed / Out_Drive_SpeedReference


Device Specific Control has been separated into routine R04_Outputs so that changes to hardware
devices can be made separate from operational logic

18 of 46
7. Add (insert) new Rung 7 Drive/Motor Start Control
Add the following rung to provide Start command to the VFD based on appropriate step in the cycle.
EQU CycleSequence = 30
EQU CycleSequence = 70
EQU CycleSequence = 110
EQU CycleSequence = 150
OTE Out_Drive_Start

8. Add (insert) new Rung 8 Drive/Motor Stop Control
Add the following rung to assert a Stop command to the VFD based on appropriate step in the cycle.
NEQ CycleSequence = 30
NEQ CycleSequence = 70
NEQ CycleSequence = 110
NEQ CycleSequence = 150
OTE Out_Drive_Stop


19 of 46
Verifying Application Changes
1. Download the modified application to the SoftLogix5800 controller.
In RSLogix5000 use the Communication Dropdown menu to select Who Active


2. Navigate to the 1789-L60/A SoftLogix Controller and select Download


20 of 46
3. If prompted, confirm the download request.

4. After the download is complete, verify the processor is in Run Mode.


21 of 46
5. Using the HMI, verify the machine cycles properly by starting a cycle and monitoring the status.


Machine Upgrade Edit Summary:
Structured Ladder:
Number of Rungs Edited 1 of 65, or 1.5 % of Rungs in the project were modified
Number of Rungs added 2
Simply leveraging the ability to separate code into different routines and adding a minimal amount of
intermediate logic significantly reduced the complexity of making changes to the hardware on the washing
machine.

Modular Example:
Number of Rungs Edited 0 of 357, or 0 % of Rungs in the project were modified
Number of Modules Imported 1, including required tag, rung, and routine adds and edits
Leveraging the ability to separate code into different program folders in addition to functional separation of
code using routines and adding a defined mechanism to facilitate communication between modules greatly
reduced the complexity of making changes to the hardware on the washing machine.
A defined code structure allows for parallel code developments; in this case the ability to engineer hardware
specific modules that can be imported easily into applications using the import / export capabilities provided
by the RSLogix5000 software environment.


22 of 46
Exercise 4 Traditional Ladder
Washing Machine Logic
The traditional ladder example uses a very linear execution scheme. Much like a true relay panel, each output is set based on
Boolean logic evaluations of the state of input devices, intermediate coils, and other output devices. The logic is not separated
with respect to what the machine is doing as compared to what it is using to do it, so often a simple change in either a given
device or the order in which the devices are used often results in significant changes throughout the program.








1. Open the Lab Files folder on the desktop.

2. Double click on the file WashingMachine_TraditionalLadder.ACD.

3. With the project open, expand the Main Program program folder and open the program tag database.


Inputs
Sequencing
Outputs
Timers
Input Devices
Operator
Inputs
Display
Outputs
Output Devices

23 of 46
4. Add the following tags to the tag database:
Inp_Drive_Active BOOL
Out_Drive_Start BOOL
Out_Drive_Stop BOOL
Par _Drive_HighSpeed DINT
Par _ Drive_LowSpeed DINT
Out_Drive_SpeedReference INT

5. Return to the Controller Organizer and open the Main Routine.

6. Edit Rung 5 Start / Stop Control
Add two XIOs to the upper branch of the rung-in condition with the following tags
XIO - Out_Drive_Start
XIO - Out_Drive_Stop



24 of 46
7. Edit Rung 6 Cycle Reset Controls
Add 2 output branches for the VFD controls
OTU - Out_Drive_Start
XIC Inp_Drive_Active, OTE Out_Drive_Stop



8. Edit Rung 9 Cycle Parameters Regular Cycle
The output to the motor starter must be replaced with the appropriate VFD Speed command
MOV Par_Drive_HighSpeed / Out_Drive_SpeedReference



25 of 46
9. Edit Rung 10 Cycle Parameters Delicate Cycle
MOV Par_Drive_LowSpeed / Out_Drive_SpeedReference


10. Edit Rung 11 Initialize Cycle Controls
When a cycle begins, cycle data must first be set / reset. Add 2 unlatch bits for drive start / stop.
OTU - Out_Drive_Start
OTU - Out_Drive_Stop


26 of 46
11. Edit Rung 15 Agitation Control
Add a branch to latch the drive start bit when agitation begins.
OTL - Out_Drive_Start


12. Edit Rung 17 Agitation Dwell
Add branch to remove the start command and assert the stop command
OTL - Out_Drive_Stop
OTU - Out_Drive_Start



27 of 46
When the Agitation Dwell is complete, the asserted stop command must be removed.
OTU - Out_Drive_Stop




28 of 46
13. Edit Rung 20 Spin Control
Like the agitation control, the Spin Control logic must be updated to reflect the hardware change as well.
OTL - Out_Drive_Start

14. Edit Rung 22 Spin Dwell
Add branch to remove the start command and assert the stop command
OTL - Out_Drive_Stop
OTU - Out_Drive_Start



29 of 46
When the Spin Dwell is complete, the asserted stop command must be removed.
OTU - Out_Drive_Stop


15. Add (insert) New Rung 25 Cycle Pause
To support the Cycle Pause functionality, an additional rung must be added.
XIC Cmd_CycleRun
XIC Inp_PausePB
OTU Out_Drive_Start
XIC Inp_Drive_Active
OTE Out_Drive_Stop


30 of 46
Simulation Logic
1. In the Controller Organizer, locate and open the Simulation Logic Routine.


2. Locate Rung 6 and Insert New Rung Simulation Logic
To support the simulation, an additional rung must be added.
XIC Out_Drive_Start
XIC Inp_Drive_Active
XIO S:FS (First Scan)
XIO Out_Drive_Stop
OTE Inp_Drive_Active



31 of 46
Verifying Application Changes
1. Download the modified application to the SoftLogix5800 controller.
In RSLogix5000 use the Communication Dropdown menu to select Who Active


2. Navigate to the 1789-L60/A SoftLogix Controller and select Download


32 of 46
3. If prompted, confirm the download request.

4. After the download is complete, verify the processor is in Run Mode.


33 of 46
5. Using the HMI, verify the machine cycles properly by starting a cycle and monitoring the status.


Machine Upgrade Edit Summary:
Traditional Ladder:
Number of Rungs Edited 10 of 25, or 40 % of Rungs in the project were modified
Number of Rungs added 1

Structured Ladder:
Number of Rungs Edited 1 of 65, or 1.5 % of Rungs in the project were modified
Number of Rungs added 2
Leveraging the ability to separate code into different routines and adding a minimal amount of intermediate
logic significantly reduced the complexity of making changes to the hardware on the washing machine.

Modular Example:
Number of Rungs Edited 0 of 357, or 0 % of Rungs in the project were modified
Number of Modules Imported 1, including required tag, rung, and routine adds and edits
Leveraging the ability to separate code into different program folders in addition to functional separation of
code using routines and adding a defined mechanism to facilitate communication between modules greatly
reduced the complexity of making changes to the hardware on the washing machine.
A defined code structure allows for parallel code developments; in this case the ability to engineer hardware
specific modules that can be imported easily into applications using the import / export capabilities provided
by the RSLogix5000 software environment.

34 of 46
Exercise 5 Device Level Modularity
Device Driver Logic
With multiple valves used on the washing machine, there will be multiple instances of control code. On this washing machine,
there are valves for both the hot water control and cold water control. The control code is shown below:






35 of 46
For devices that use common control code, Add-On-Instructions (AOI) can be developed to encapsulate common functionality of
a device. Below is an AOI that controls a single-acting solenoid valve. By creating the AOI, the developer has now defined the
programmers interface to the device. Common command / status attributes between AOIs for control of similar valves will
make the implementation of different hardware an easy task.



Using Add-On-Instructions simplifies:
- Adding additional devices
- Updating existing device control logic when a device changes


36 of 46
1. Open the Lab Files folder on the desktop.

2. Double click on the file WashingMachine_Modular_DD.ACD.

3. In the Controller Organizer, navigate to the program folder Module_FillControl.

4. Locate the routine called DeviceDriver_ColdWaterValve and double-click to open the routine.


37 of 46
5. Note the code inside the DeviceDriver_ColdWaterValve routine. The control code for the single acting solenoid
valve has been encapsulated in an Add-On-Instruction (AOI).

6. Changing the Device Driver code to accommodate a change to a double acting valve type:
With the project open, right-click on the Add-On-Instructions folder and select Import Add-On-Instruction.
.
7. Navigate to the desktop folder Lab Files and locate the *.L5X AOI import.


38 of 46
8. Because this AOI does not yet exist in the project, ensure the operation is set to Create and select OK

9. Once the import is complete, locate the Add-On-Instruction folder in the controller organizer and verify the AOI
SOL_SolenoidValve_DA has been imported:



39 of 46
10. In the Controller Organizer, navigate to the program folder Module_FillControl.

11. Locate the routine called DeviceDriver_ColdWaterValve and double-click to open the routine.


12. Double-Click on the instruction name and change to SOL_SolenoidValve_DA; then hit enter to accept changes.


40 of 46
13. You should now see the double acting solenoid AOI on the rung:

14. Right-Click the control tag and select Edit.

15. In the Tag Properties dialogue box, change the data type to SOL_SolenoidValve_DA and select OK.


41 of 46
16. When prompted, click OK to acknowledge the change to the tag data structure.

17. Note that the description now correctly describes the Add-On-Instruction:

18. Because the double-acting solenoid will require an output to both open and close the valve, an additional output
tag must be created for closing the valve. Type in the following text in the field for parameter Out_SV_Close as
shown below and hit Enter.


42 of 46
19. Right-Click on the text and select New.

20. When the New Tag dialog box appears select Create.


43 of 46
Verifying Application Changes
1. Download the updated application to the SoftLogix5800 controller.
In RSLogix5000 use the Communication Dropdown menu to select Who Active


2. Navigate to the 1789-L60/A SoftLogix Controller and select Download


44 of 46
3. If prompted, confirm the download request.

4. After the download is complete, verify the processor is in Run Mode.


45 of 46
5. Using the HMI, verify the machine cycles properly by starting a cycle and monitoring the status.



When combined with a defined, modular code structure designed to separate physical device control
from the specific application procedures, encapsulating code in an AOI provides significant
advantages:
- Simplify machine hardware changes
- Accelerate technology adoption
- Finite in functionality, device control code can be tested separate from machine code


46 of 46
Publication XXXX-XX###X-EN-P Month Year Copyright 2013 Rockwell Automation, Inc. All rights reserved.
Supersedes Publication XXXX-XX###X-EN-P Month Year

Você também pode gostar