Professional Documents
Culture Documents
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.
Contents
Before you begin ............................................................................................................................................................................... 4
About this lab .................................................................................................................................................................................... 4
Tools & prerequisites ........................................................................................................................................................................ 4
Document Conventions..................................................................................................................................................................... 5
Lab 1: AADvance System Overview (10 Min) ................................................................................................................................... 3
Lab 2: AADvance Workstation Software (5 Min)............................................................................................................................. 14
Lab 3: Creating a New Project (5 Min) ............................................................................................................................................ 17
Lab 4: Configuring Controller 1 (15 Min) ......................................................................................................................................... 20
Lab 5: Checking Logic using Simulation (5 Min) ............................................................................................................................. 29
Lab 6: Adding More Logic using a Different Language (10 Min)..................................................................................................... 34
Lab 7: Adding I/O Hardware to the Controller (15 Min)................................................................................................................... 41
Lab 8: Setting up Communications (5 Min) ..................................................................................................................................... 56
Lab 9: Build and Download (15 Min) ............................................................................................................................................... 58
Lab 10: Adding a Second Controller to the Project (5 Min)............................................................................................................. 75
Lab 11: Binding controllers to each other (10 Min) ......................................................................................................................... 79
Lab 12: Creating a Function Block (10 Min).................................................................................................................................... 86
Lab 13: Sharing information with ControlLogix (10 Min) ................................................................................................................. 99
Hardware
AADvance trainer which includes:
2 processors
Software
This hands-on lab uses the following software:
Lab Files
This hands-on lab uses no lab files:
Document Conventions
Throughout this lab manual, we have used the following conventions to help guide you through the lab materials.
This style or symbol:
Indicates:
An item or button that you must click on, or a menu name from which you must
choose an option or command. This will be an actual name of an item that you
see on your screen or in an example.
An item that you must type in the specified field. This is information that you must
supply based on your application (e.g., a variable).
Note: When you type the text in the field, remember that you do not need to type
the quotes; simply type the words that are contained within them (e.g.,
Controller1).
Note: If the mouse button is not specified in the text, you should click on the left mouse button.
Supports industry standard protocols such as HART, Ethernet, Modbus RTU, Open Modbus TCP, CIP
and OPC.
3 of 107
I/O termination assemblies (that are inserted into the I/O base units)
Processor and I/O modules (that are inserted into the base units)
System Components
4 of 107
A processor base unit can support up to 8 I/O base units (up to 24 I/O modules) on its right side (Bus 1), and up to
the same number on its left side (Bus 2), for a total of 48 modules.
Module positions within the I/O base units are numbered from 01 to 24, the left most position being slot 01. Any
individual module position within the system is uniquely identified by the combination of its bus and slot number, for
example 1-01.
Expansion cables may be used to connect base units, as shown below:
5 of 107
6 of 107
Flexible Configurations
The AADvance system is flexible and scalable. Configurations range from non-redundant (fail-safe) to
triplicated fault tolerant.
Individual modules are designed as fail safe. Redundant modules are implemented for fault tolerance.
Processor Modules
A single processor module meets SIL 2 requirements. Redundant processor modules (two or more) meet
SIL 3 requirements. High demand applications which typically require continued operations even after a
module failure require the use of redundant processor modules.
Input Modules
Individual input modules meet SIL 3 requirements. Redundant modules are implemented for fault tolerance.
Output Modules
Individual output modules meet SIL 2 requirements in a normally de-energized application and SIL 3
requirements in a normally energized application. Redundant (dual) modules meet SIL 3 requirements in a
normally de-energized application and provide fault tolerance in a normally energized application.
Output modules incorporate dual redundant circuitry internally. A dual module configuration provides a
quad redundant output circuit arrangement.
7 of 107
1oo1D Configuration
8 of 107
Non-redundant I/O modules will fail safe on the first detected fault and the process under control will shut
down.
The processor modules will degrade to 1oo1D on the first fault and must be replaced within the MTTR
(Mean Time To Repair) assumed in the PFD (Probability of Failure on Demand) calculations in order to
maintain the SIL 3 rating.
This configuration is suitable for high as well as low demand mode applications and meets SIL3
requirements (SIL 2 for energize to trip outputs).
9 of 107
Dual Architecture
Redundant I/O modules provide fault tolerance. Duplicated output modules also meet SIL3 requirements
for energize to trip outputs.
Input modules will degrade to 1oo1D (fail safe configuration) on the first detected fail danger fault with no
time limit to repair.
Processor modules will degrade to 1oo1D on a module fault and must be replaced within the MTTR (Mean
Time To Repair) assumed in the PFD (Probability of Failure on Demand) calculations in order to maintain
the SIL 3 rating.
A failed output module used for a SIL3 energize to trip must be replaced within the MTTR assumed in the
PFD calculations. There is no time limit in normally energized applications.
This configuration is also known as 1oo2D (one out of two voting, with diagnostics).
Dual Configuration
10 of 107
11 of 107
Mixed Architecture
There can be a mixture of architectures and SILs within one system. The figure shows non-redundant and
dual I/O configurations with dual processors. Triplicated inputs and/or processors may also be included.
Mixed Architecture
12 of 107
Distributed Architecture
It is possible to locate I/O modules in separate systems and link the data using a network connection
certified for safety applications. The systems share variables using bindings, the concept is introduced in a
section of this lab.
Distributed Architecture
13 of 107
3. Open Tools >AADvance Discovery. This tool allows you to search out over Ethernet to detect what
AADvance systems are connected to your network.
14 of 107
4. On the Discovery screen you will see all controllers on your network. In this case we have found one
controller. The AADvance controllers are labeled as Type = Series 9000. Notice that the MAC address of
the controller is given as Controller ID.
15 of 107
5. Double click on the controller and a window with IP address details will be opened. Note the IP address
of your controller. From this window we could also change the IP address of the controller.
Note: The IP addresses and MAC ID are actually for the backplane that holds the processors, and not for
the processors themselves. Having an IP address in the base unit means that you can replace a faulty
processor module and install anew one without needing to set or load anything in the module.
The processor backplane has six (6) Ethernet ports that can be used for communications. The backplane
supports one (1) logic controller, which can consist of up to three (3) processors. Each processor has two
available Ethernet ports for communications.
16 of 107
Lets create a new project from scratch. It will be relatively simple in nature, but it will allow you to see the
fundamental aspects of configuring an AADvance system.
7. Click File > New Project.
17 of 107
9. Select Series 9000, which is AADvance, and type in an appropriate project name such
asIntroduction_To_AADvance (no spaces) and click OK.
Import:
Import an existing project from a different repository
Restore:
Restore an existing archived project
Series 9000: AADvance system
T6210 Proto: Future prototypes
10. The Application view shows the base structure of the project. By default you start with one controller (you
can have multiple controllers), a folder for data types and a folder for libraries. We will explore this in more
detail shortly.
11. At the bottom of the left window are three tabs: Application view, Communications view, and Equipment
view.
18 of 107
12. Click on Communications and expand the structure. Note all the various communication protocols that
are supported.
13. Click on the Equipment tab and expand the structure. Each controller supports two communication
buses for I/O communications.
14. Click on the Application view and expand it. We will concentrate on the Application View for the first part
of this lab.
19 of 107
16. Type in an appropriate new name Area1_SIS and hit Enter. Note that the small symbol in front of the
project and controller has changed to an open lock. This indicates that the project is now checked out and
being modified. This is a multi-user application; if you have the entire project checked out nobody else can
make changes at this time.
20 of 107
17. Click Yes to check this change into the repository. Click OK to complete.
Defining a Respository
AADvance uses a respository where is stores version control files containing the history for projects and
elements, You can choose to define a repository at any local or server (URL) location. AADvance creates
all necessary files in which to store the changes for projects and elements for the repository. The default
installation for the repository is the following:
C:Documents and Settings\All Users\All Users Documents\AADvance Respository
When opening projects, the available projects are those from the current repository.
18. The new name has been archived. Note that the symbol in front of both the project and the controller has
changed. You will now have to checkout whatever section of the project you need to modify.
21 of 107
19. Right click on Introduction_To_AADvance, select Version Control > Check Out.
22 of 107
Note: When you checkout an element of a project you automatically have control of all the sub-elements.
Version Control
You manage the changing elements of AADvance elements including projects, libraries, controllers,
programs, functions and function blocks by saving these to a version control repository. Saving these
elements to a control repository enables multiple users to work on the same solutions and project elements
at the same time as well as retrieve older versions of elements at a later time.
20. Click OK. You have now checked out the project, which includes the Area1_SIS controller sub-element
structure note the open lock in front of the headings.
23 of 107
21. Right click on Programs and select Add Programs > New LD: Ladder Diagram.
The four (4) most common
control languages are
supported.
22. Right click on Prog1 and select Rename. Type in an appropriate name, LD_Logic, and hit Enter.
24 of 107
23. Expand the program to see that there is a local variables folder.
Local variables: Used only within the local program
Variables:
Used by any of the programs within this controller.
24. Double click on the Local Variables. There are various parameters that can be defined for each variable.
We will stick to the basics; name, data type and attribute.
Variable Selector:
The variable selector displays the variables defined for an open program. From the variable selector you
can create, edit and delete variables at the controller level and at the program level.
25 of 107
25. Click in the open Name cell, type in My_Input. We will keep all the default settings for now. Click the
Enter key to complete the creation of the variable.
26. Create a second tag named My_Output. Be sure to click the Enter key.
27. Double click on the program LD_Logic. An empty rung appears in the central window. A toolbox window
opens which contains all the elements you will need to build your ladder logic.
Toolbox:
You can expand the multiple segments or tabs of the Toolbox. You can also scroll through the entire tree
within the Toolbox.
The Toolbox dispays icons for elements that you can add to programs. When shifting focus to a different
program, the current selection in the Toolbox shifts to the tab for the corresponding programming language.
26 of 107
28. Drag a Direct Contact instruction from the toolbox onto the left side of the rung. The Variable Selector
window opens. Note that the default filter for Type is BOOL since the software is anticipating that we will
use a BOOL variable for our direct contact.
The yellow attention icon
indicates that something is
not yet fully configured.
29. Double click on My_Input. It is now assigned to the instruction. The instruction is now fully configured and
the yellow attention icon has disappeared.
30. Click on the instruction to give it focus. There will be a green border around it. Now click on the space
bar. You will see the instruction toggle between the various contact options. Leave it as a direct contact.
31. Drag a Direct Coil from the toolbox onto the right side of the rung. From the Variable Selector, double
click on My_Output to assign the variable to the instruction.
27 of 107
32. Again select the instruction (direct coil) and see that hitting the space bar toggles between the various
coil options.
28 of 107
Now that we have created this incredibly complex logic, we should test it before we download it. All the
tools are present to create logic as sophisticated as you wish. This is an introductory lab, so our logic was
simple. Once you see how to do things you can get as sophisticated as you want.
Simulating an Application:
Simulating the running of an application signifies that virtual machines execute the code in the Window
platform instead of in a controller. The complier generates different code for simulation than for
downloading to a processor.
Before simulating an application, you need to build the code for the project and controllers. When starting
simulation you can start all controllers or start individual controllers. Simulation does use any physical
inputs or outputs.
34. On the upper tool bar, select Simulation > Start Simulation.
29 of 107
Note:
Start Simluation Now means that all controllers in the project will be simulated.
Start Simulation means all controllers will be listed and you can select which you want to simulate.
This window opens to allow you to define the scope of your simulation. Since we only have one controller at
this time the choice is pretty simple.
35. Click Simulate. The window shown below opens. Before simulation can be run the controller must be
compiled (built). Click Build all to compile the controller.
30 of 107
36. The build will take several seconds. Once completed, click on the Error List tab at the bottom and confirm
0 Errors. If you have errors see if you can figure out where you went wrong; if you are still puzzled then ask
for assistance.
37. Double click on the Direct Contact instruction. The dialog box shown below will open.
31 of 107
38. Click on FALSE to toggle it to TRUE and click Write. You are forcing the variable to be a 1.
39. You can now see how this complex logic is working. Blue is the 0 or false state and red is the 1 or
true state.
41. In the Application View double click on the Local Variables folder. By checking the Logical Value you can
toggle the value from here too.
32 of 107
43. From the top tool bar select Simulation > Stop Simulation.
Notice that the thunderbolt symbol goes away and the open lock returns.
33 of 107
We used ladder logic in the first program since we were dealing with Boolean logic. Lets switch to function
blocks to deal with some process variables.
44. Right click on Programs > Add Programs> New FBD: Function block Diagram.
Again there is an icon indicating the language being used and the default name is Prog1.
34 of 107
46. Expand FBD_Logic and double click on the Local Variables folder for FBD_Logic.
47. Create the variables shown below. Note that the Data Type should be REAL.
35 of 107
48. Double click on the FBD_Logic folder. The FBD sheet opens and again the toolbox appears; this time
with the appropriate tools for the function block language.
49. Drag a Variable onto the sheet. The Variable Selector window opens.
The yellow attention icon
indicates that something
is not yet fully configured.
50. Double click on Pressure_1 to assign it to the variable. The yellow attention icon now goes away since
there is now a variable assigned.
36 of 107
51. Add a second variable and make it Pressure_2. You are probably getting the hang of this now.
52. Drag a block onto the sheet. The block is added and the block selector window opens. The block is a
generic container for the instruction you assign to it.
53. Double click on Subtraction (first on the Block Selector list). The FBD sheet now appears as shown
below.
37 of 107
54. Click on the pins and tie the logic as shown below.
55. Note that you can click on the lines and re-route them as needed. Not really necessary for our limited
logic, but very handy when you have lots of blocks and connecting lines.
38 of 107
56. Add a last variable block and assign the Delta_P variable to it as shown below. Tie it back to the
subtraction instruction.
57. Lets use simulation again to check this logic. From the top tool bar select Start Simulation.
59. As before, we need to build or compile before we can simulate. Click Build all.
39 of 107
60. Note that the background has again changed to an off-white color to indicate a mode change. Also note
that values are now shown.
61. Using either the FDB_Logic Variable table or by double clicking on the variable instructions
themselves; test the logic.
40 of 107
63. Click onto the Equipment Tab. The Application tab allowed us to configure the application, the Equipment
tab will allow us to configure the hardware for this controller.
64. Expand the IO Bus 1 and right click on 01 Empty. Select Assign I/O Module.
41 of 107
65. The module selection window shows all the modules which can be selected.
66. Assign a 9402 DI module with a 9802 Duplex termination assembly to location 01 and click OK.
Note: The selection of Simplex vs Duplex vs Triplex does not affect the logic at all.
42 of 107
67. The module is now shown occupying locations [1,2]. If we had chosen simplex it would be shown as [1]
indicating that only slot 1 was occupied.
68. Complete your hardware assignments to match your actual hardware setup.
69. Double click on the DI module to see the individual channels and open the module configuration window.
43 of 107
70. Three tabs are presented; 9402 24 Vdc DI, Channels, and Thresholds. On the 9402 tab the Process Safety
Time (PST) is displayed. A selection box allows you to configure the module to inherit the Process Safety
Time from the controller or to set it for this individual I/O module.
44 of 107
45 of 107
Thresholds Explained:
The module determines the channel state and the line fault status (e.g., open circuit, on, off, short circuit,
etc.) by comparing the channel input voltage with defined threshold values. The default values are suitable
for non-line monitored inputs. Customized values can be entered when inputs must be line monitored.
The voltage pairs provide hysteresis for increasing and decreasing values to prevent chatter. For example,
using the values shown above, the voltage must increase above 5509 mV (5.509 volts) to enter state 3, and
must decrease below 4.990 volts to enter state 2.
46 of 107
The wiring diagram below show the standard and line monitored circuits for digital inputs.
47 of 107
74. Note that the default tab is Controller Variables and the default data type is T9K_DI_FULL. This is the data
type that is needed to be assigned to an actual digital input channel. Select the LD_Logic scope
variables. It does not appear that we have any variable of a suitable data type to assign to the DI channel.
48 of 107
75. Click on the open Name cell, this removes the filter and shows all local variables.
76. Using the pulldowns, modify the Data Type and Direction of the My_Input variable.
77. Hit the Enter key and the new My_Input variable is now assigned to channel 01.
49 of 107
79. Examine the six tag elements associated with the tag type T9K_DI_FULL.
50 of 107
80. Click on the Thresholds tab. The thresholds shown were inherited from the DI module settings. The
thresholds settings for channels can be set individually if the Use Custom Thresholds box is checked. For
this lab we will stay with the defaults.
81. Repeat the procedure to assign My_Output to channel 01 output (Data Type T9K_DO_FULL).
51 of 107
82. Double click on the DO module. This module also has three tabs: 9451 24 Vdc DO, Channels and
Variables.
52 of 107
53 of 107
54 of 107
87. Click on the Advanced tab and check Use Advanced Settings.
Default = Off
89. You can select whether to disable the line test or to leave the default (perform line test).
90. Leave the Advanced Settings are their defaults of Off and No.
55 of 107
1. Now we have to setup the correct communications path for our controller before we can download to it. Of
course we will go to the Communications tab to accomplish this.
56 of 107
4. Assign the correct IP address, based on what you saw using Discovery. If you dont remember just run
the Discovery tool again. Hit Enter to confirm the change.
57 of 107
58 of 107
7. Double clicking on the error takes you to the Application view and LD_Logic.
8. Double click on the Direct Contact instruction. As expected, the variable selector window opens with the
expected data type filter in place.
9. Click in the empty Name cell to cancel the filter and show all data types.
59 of 107
Now we can see the issue. Originally we created the BOOL variables to assign to this logic. Then when we
went to assign the variables to the I/O channels we had to modify the data types. That was fine for the I/O
chanels, but not for the logic.
10. Expand the My_Input variable and double click on the My_Input.DI element. The tag type
T9K_DI_FULL is not compatible with a direct contact instruction. But the element .DI is a BOOL and is
compatible.
Note: T9K_DI_FULL is a complete data structure for the channel and thus contains much more than just
the BOOL state of the input.
60 of 107
13. Try the build again. We should have everything right this time.
61 of 107
Version Control
Everything appears to be the way we want it for now. Lets check-in this version of our project before we
download. Actually, if we tried to download now we would be forced to do the check-in anyway. Only
projects that are in the repository can be downloaded.
14. Right click on the project, select Version Control and select Check In.
62 of 107
17. Right click on the project, select Version Control and Version History.
The complete history of the project is shown. Close this window when done reviewing.
63 of 107
Note: Once the download is complete, press the Reset button on the 2nd processor to synchronize
them.
64 of 107
20. Test your LD_Logic program using the DI1 toggle switch and watching the channel 1 LED on the digital
output module come on.
21. From the tool bar click Online, then Connect, select your controller and then click Connect again to
complete the connection. Open the LD_Logic program and observe the logic running from here too.
22. Look at the Analog Input module. The Channel 01 LED is green, but all the rest are amber. Why?
Since we have only wired up the first input the rest are in a state of fault.
65 of 107
66 of 107
28. Check the use custom threshold and change the thresholds as shown.
67 of 107
29. Lets look at one more setting, this one for DOs. Note that DO4 LED is amber. This indicates that there is
a line fault. Actually we just didnt wire up this channel. Double click on the channel 4 DO and select the
Advanced tab. Disable the line test (Yes).
68 of 107
33. Now click Continue, meaning check-in the project and then download.
Now channel AI2 should be green because we changed the ma level associated with State 1 (Open circuit).
Now DO5 should not be amber because we are no longer doing the line test.
69 of 107
Lets look at a few more features: creating a spy list and the ability to
lock/unlock variables.
36. Click on View, then select Watch and then select Create Spy List.
70 of 107
39. Drag and drop the two local variables into the spy list.
I know, not very exciting when you only have two variables. But when you have hundreds or thousands of
variables it is extremely helpful to create uniquely named spy lists for various areas or safety instrumented
functions (SIFs). When you need to look at an area in detail you just pull up the associated spy list and all
the variables you need are conveniently grouped together.
71 of 107
72 of 107
42. Double click on the My_Input DI to open the Point configuration dialog box.
73 of 107
74 of 107
75 of 107
2. Right click on the project and select Add > New Controller.
76 of 107
3. Since you know how to do this, rename the new controller Area2_SIS.
77 of 107
6. You are getting familiar with the system now. Create the following logic and variables.
You do not have a second controller, so you cant download the Area2_SIS. But I am sure you get the
concept.
78 of 107
7. Build (compile) the Introduction_TO_AADvance project. (Right click on the project and select Build
All).
79 of 107
9. Right click on Area1_SIS Bindings, select Add Controller Link and double click on Area2_SIS.
80 of 107
11. We are going to have the Sum variable from the Area2_SIS write its value (producer) to the Area1_SIS
variable Pressure_2 (consumer). Select the variables as shown.
81 of 107
12. Click ADD at the bottom of the window to complete the binding.
82 of 107
14. Check the box to indicate which Ethernet port of Area1_SIS should be used for the binding
communications.
83 of 107
16. Double click on With Area1_SIS - Not Configured. Check the box to indicate which Ethernet port of
Area2_SIS should be used for the binding communications.
17. Go to Simulation, then Start Simulation. Make sure both controllers are checked and click Simulate.
84 of 107
19. Go to the Area 2 FBD (FBD_Logic_Area2) and enter a value into one of the analogs.
20. Go to Area 1 FBD (FBD_Logic) and confirm the value was written to Pressure_2.
85 of 107
86 of 107
3. Change the name of the function block from the default to AI_Condition.
5.
The window opens on right side, pull it to the middle and make it an appropriate size.
87 of 107
6.
88 of 107
89 of 107
90 of 107
91 of 107
11. Close that Parameters window and double click on the AI_Condition function block
12. Drag in a variable and open the local variables. Assign AI_Input.PV to the variable
92 of 107
14. Now lets use our new function block. Open the FBD_Logic program.
15. Add a Block to the logic and assign your new function block AI_Condition. Note that the function
block you created was added to the list of blocks.
93 of 107
94 of 107
95 of 107
19. Now create our three BOOL outputs; tank level override, level trip and tank level fault.
96 of 107
20. Lets build (compile) our project. Right click on the project and select Build All.
21. We made tank level a fully structured analog input, but we forgot to connect it to an actual input channel.
Go ahead and wire it to the first analog input channel you know how to do it.
97 of 107
23. Check In your project, the Download to the controller. Then connect to it and test the AI_Condition
block logic using the analog input dial.
Note: Since there is no second controller to connect to there will be connection error messages.
Just ignore these and test your new function block.
98 of 107
You can only use the CIP network to exchange data using producers and consumers.
2. Right click on CIP in Area1_SIS and select Add CIP Produce Link
99 of 107
4. Check the E1-1 Ethernet port and hit Enter. Here you are selecting which ethernet port you want this
communications link to use.
100 of 107
5. Expand With Any and double click on CIP produce to open the variables window.
6. Click the Add Variable button to open the Variable Selector window.
101 of 107
7. Click in the blank name cell to open the controller variables, then click on tank level.
8. Double click at the right pointing arrow to create the produce variable.
102 of 107
Now this variable is being produced for the PlantPAx controllers in the Basic Process Control System
(BPCS) to use as needed.
Congratulations You have finished a brief introduction to the configuration features of the AADvance
Process Safety system.
Lab Completed.
AADvance, Allen-Bradley, LISTEN. THINK. SOLVE. and Rockwell Software are trademarks of Rockwell Automation, Inc.
Trademarks not belonging to Rockwell Automation are property of their respective companies.
103 of 107