You are on page 1of 107

Introduction to Configuring an AADvance

Process Safety Solution

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.

Introduction to Configuring an AADvance Process Safety System

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

Before you begin


About this lab
The purpose of this lab is to introduce you to the AAdvance Process Safety System. You will first get an extremely
brief introduction to the physical architecture of the system and you will see that it is both very robust and flexible.
Then you will begin to explore the fundamentals of how the system is configured; including creation of variables
(tags), simple logic using two different languages, communications and multiple controllers. Several of the
configurable features of the I/O modules will be explored.
At the conclusion of this lab you should have a fundamental understanding of the structure of an AADvance Process
Safety System.

What You Will Accomplish In This Lab


As you complete the exercises in this hands-on session, you will:

Use AADvance Workbench to configure an AADvance project.

Download the project to the hardware and confirm functionality.

Expand the project to include a second controller.

Who Should Complete This Lab


This hands-on lab is intended for individuals who:

Are interested in an introduction to the AADvance platform.

This lab takes approximately 120 minutes to complete.

Tools & prerequisites


For this lab, we have provided you with the following materials that will allow you to complete the labs in this
workbook.

Hardware
AADvance trainer which includes:

2 processors

Digital input modules (duplex)

Digital output modules (duplex)

Analog input module (simplex)

Analog output module (simplex)

Software
This hands-on lab uses the following software:

AADvance 2.0 Workbench (Beta version)

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:

Words shown in bold italics (e.g.,


RSLogix 5000 or OK)

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.

Words shown in italics, enclosed in


single quotes (e.g., 'Controller1')

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).

Text in a gray box.

Text that appears in a gray box is supplemental information. Although it is not


required in order to complete the lab exercises, it may help you to better
understand a concept.

Note: If the mouse button is not specified in the text, you should click on the left mouse button.

Lab 1: AADvance System Overview (10 Min)


AADvance is an industrial control system that can be configured for non-redundant (fail-safe) and fault tolerant
control and safety applications. It is a scalable system consisting of different modules and interconnecting base units.
AADvance can be used for a wide variety of applications such as:
Critical process control
Emergency shutdown
Fire and gas detection/protection
Rotating machinery control
Burner management
Boiler and furnace control
Distributed monitoring and control

The main features of AADvance are:

Flexible modular construction using individual modules to build a system.

Operates as a stand-alone system or part of a larger distributed network.

Easily transforms from a non-redundant to a fault tolerant system.

I/O module expansion/additions without system interruption.

IEC 61508 certified system; reviewed and approved by TV.

Handles the commonly used IEC 61131 programming languages.

Supports industry standard protocols such as HART, Ethernet, Modbus RTU, Open Modbus TCP, CIP
and OPC.

3 of 107

General System Layout


The AADvance system consists of:

A processor base unit (that can hold up to three processor modules)

I/O base units (that can hold up to three I/O modules)

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:

Example System Layout

5 of 107

Internal Bus Structure


Internal communications between the processor and I/O modules are supported by command and
response buses that are routed through the processor and I/O base units.
The processor modules send commands to the I/O modules and process their returned responses. Each
I/O module has a dedicated response line back to the processors. An inter-processor link (IPL) provides the
communication links between dual or triple processor modules.

Internal Bus Structure

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.

Typical system configurations are covered in the following pages.

7 of 107

Non-Redundant, Fail Safe Architecture


Non-redundant modules will fail safe on the first detected fault and the process under control will
shut down.
This configuration meets SIL2 requirements (due to the single processor) and is suitable for low demand
mode applications with either de-energize or energize to trip outputs.
This configuration is also known as 1oo1D (one out of one voting, with diagnostics).

1oo1D Configuration

8 of 107

Dual Processors, Non-Redundant I/O

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).

1oo2D Processors, 1oo1D I/O Configuration

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

TMR Input and Processor, Fault Tolerant Output


Redundant I/O modules provide fault tolerance. Duplicated output modules also meet SIL3 requirements
for energize to trip outputs.
Input modules will degrade to 1oo2D on a first fault. They will degrade to 1oo1D on a second fault with no
time limit to repair.
Processor modules will degrade to 1oo2D on a first fault. They will degrade to 1oo1D on second module
fault and a processor must be replaced within the (Mean Time To Repair) assumed in the PFD (Probability
of Failure on Demand) calculations in order to maintain the SIL 3 rating.
Output modules will degrade to 1oo1D on the first fault and must be replaced within the MTTR assumed in
the PFD calculations (only for energize to trip outputs). There is no time limit for normally energized
applications.

TMR (2oo3D) Inputs & Processors, Fault Tolerant Output Configuration

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

Lab 2: AADvance Workstation Software (5 Min)


About this lab
In this lab the student will be introduced to the AADvance Process Safety System. Starting from scratch the student will create a
project, and within the project they will configure a controller with some very simple logic. They will check the logic using
simulation and will then download to the controller and test things on a real system. The project will then be extended to include
a second controller.
This lab is conducted within a VMWare Workstation v9.0 image. VMWare Workstation is virtual machine software that allows you
to emulate a PC on your host PC. This lab implements one VMWare image running currently on the lab PC.

The AADvance Workstation Software


Lets start by opening the AADvance software and getting acquainted with the layout.

1. Open AADvance workbench by double clicking on the icon.


The AADvance workbench is used to build control and safety programs. These programs can be distributed
across several hardware platforms (controllers).
The workbench is IEC 61131-3 compliant, offering four languages (ladder, function block, structured text,
and sequential function chart). Programs can be simulated and tested on the PC before downloading to
actual hardware.
2. The software opens. This is a Visual Studio application, so there are many dialog windows that can be
opened, moved, re-sized, docked, etc. Review the various windows that are opened by default.

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.

6. Close both Discovery windows.

16 of 107

Lab 3: Creating a New Project (5 Min)

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.

8. The New Project dialog window opens..

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

Lab 4: Configuring Controller 1 (15 Min)


You now have a basic project structure. In this lab you will rename the controller and create a very simple program
with a couple of variables (tags). You begin to become familiar with the windows within the workbench.
15. Right click on the Controller and select Rename.

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.

The icon indicates a ladder diagram (

) and the default name is Prog1.

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

Lab 5: Checking Logic using Simulation (5 Min)

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.

33. Using the pulldown, select Simulation.

This choice is noted in the second tool bar.

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.

40. Toggle back to the False 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.

42. Note the thunderbolt symbol in front of the controller (


) and program. This indicates that you own
the Workbench connection to this controller (real or simulated); this prevents multiple users from writing to a
single controller.

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

Lab 6: Adding More Logic using a Different Language (10 Min)

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.

45. Rename the new program to FBD_Logic.

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.

58. Select the controller and click on Simulate.

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.

62. Stop the Simulation and go back Online.

40 of 107

Lab 7: Adding I/O Hardware to the Controller (15 Min)


In lab 1 the hardware architecture was reviewed. In this lab you will add the hardware layout of your system
to your project.

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.

The module can detect a loss of


communications with the controller.
If communications is not reestablished
within the PST, then the module will
invoke the configured shutdown state.

Here is a listing of all the


available module status
variables.

44 of 107

71. Click on the Channels tab.

These are the default


variable names for each
channel. Shortly you will
assign a more meaningful
name to channel 01.

45 of 107

72. Click on the thresholds tab.

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.

Standard Digital Input Field Loop Circuit

Line Monitored Digital Input Field Loop Circuit

47 of 107

73. Right click on Channel 01 and select Wire Channel.

The Variable Selector window opens.

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.

Data Type filter removed.

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

78. Double click on Channel 01 to open the configuration window.

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).

Note that the Data Type and


Direction are different for the
DI and DO modules.

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

83. Examine the information available on the 9451 24 Vdc DO tab.

Here is a listing of all the


available module status
variables.

84. Examine the channels tab.

Channel 01 has the variable


you assigned. The other
channels have the default
variable names.

53 of 107

85. Examine the variables tab.

Status of the field power


supplies is provided.

86. Double click on DO Channel 1 to get to configuration details of this channel.

Examine the seven tag


elements associated with the
tag type T9K_DO_FULL

54 of 107

87. Click on the Advanced tab and check Use Advanced Settings.

88. Examine the selections available for the Shutdown State.

Default = Off

89. You can select whether to disable the line test or to leave the default (perform line test).

Default is to leave the line test


active.

90. Leave the Advanced Settings are their defaults of Off and No.

55 of 107

Lab 8: Setting up Communications (5 Min)


There are two Ethernet and two serial ports per processor. MODBUS, CIP and AADvance safety network
protocols are supported. For this lab we will use one Ethernet port.

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.

2. Expand the Ethernet area.

This is a default, non-usable


IP address. We will need to
give it a real address.

56 of 107

3. Double click on the [E1-1] connection.

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

Lab 9: Build and Download (15 Min)


Now that you have fully configured a project you can download it to the processors.
5. Right click on the Introduction_To_AADvance project and select Build all.
6. Click on the Output and Error List tabs.
Oops, we have a couple of errors to address. It appears they are in the LD_Logic.

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.

The filter is now turned off


showing all Local Variables.

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.

11. Double click on the direct coil instruction.


12. Using the same methodology, assign My_Output.DOP to the direct coil.

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.

15. Add in a suitable comment and then click OK.

62 of 107

16. Note the project is no longer unlocked.

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

Download to the controller


18. Right click on the project and select Download.

19. Select your controller by clicking on Area1_SIS and click Download.

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.

23. Go to the Equipment window and double click on AI channel 1.

Default EU scale is 0 100%


PV = 22% in this example
No line faults or discrepancies.
Logical/Physical/Locked will be covered later.
State relates to the threshold configuration.

65 of 107

24. Now double click on AI2.

PV = -24 (no input voltage)


Line fault is detected (no wiring)

25. Disconnect from the controller.

26. Checkout the project again and click OK.

66 of 107

27. Double click on AI module and then go to the Thresholds tab.

Note the description:


State description

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).

30. Right click on the project and select Build All.


31. Right click on the project and select Update.

32. Select the controller and click Update.

68 of 107

Download = wipe out the existing


program in the controller and
install this new one.
Update = keep running the existing
project and only make changes to
update to the new project.

33. Now click Continue, meaning check-in the project and then download.

34. Click OK.

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

35. Go back Online (connect).

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.

37. Now the Spy List window is open.

70 of 107

38. Open the Local Variables tab.

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

Now lets look at the locking feature.


40. Expand the structures of the two variables. Note the values of the variables.

41. Switch on DI1 and check My_Input again.

DI Logical Value and Physical


values are now both checked
Voltage is now high and the
channel state has changed.
Same for Digital Output (DOP)

72 of 107

42. Double click on the My_Input DI to open the Point configuration dialog box.

43. Change the lock to ON and click Write.

44. With DI1 ON check the readings again.

DI Logical Value and Physical


values are still both checked, as
they were before.

73 of 107

45. Now turn DI1 off and observe.

DI Logical Value remained


checked, while the Physical value
became unchecked.
Locking a variable locks it to the
configured value, making it
independent of the physical input.

Note that DO1 stayed ON even though DI 1 was turned off.

46. Disconnect from the controller.

74 of 107

Lab 10: Adding a Second Controller to the Project (5 Min)


We are building a complete process safety system which may have multiple controllers. They are all
configured within this project.
1. Check the Checked In / Checked Out status of your project it should be Checked Out. If it is not,
right click on the project and select Version Control > Check Out. Click OK to confirm that you are
checking out all of the listed elements.

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.

4. Right click on Programs and add a new FBD program.

5. Rename the program FBD_Logic_Area2.

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

Lab 11: Binding controllers to each other (10 Min)


With multiple controllers in the system there will probably be the need to transfer variables between the
controllers. This is done via the process of binding.

7. Build (compile) the Introduction_TO_AADvance project. (Right click on the project and select Build
All).

79 of 107

8. Go to the Communications tab.

9. Right click on Area1_SIS Bindings, select Add Controller Link and double click on Area2_SIS.

80 of 107

10. Expand the link and double click on Consume Mapping.

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

13. Now double click on With Area2_SIS (Not configured).

14. Check the box to indicate which Ethernet port of Area1_SIS should be used for the binding
communications.

15. Now go to communications on Area2_SIS and expand the Bindings folder.

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

18. Click Build All.

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

Lab 12: Creating a Function Block (10 Min)


Functions and function blocks are reusable pieces of code.
Functions have only one output, may not contain internal variables and are not retained in memory.
Function blocks can have more than one output, may contain internal variables and are retained in memory.
In other words, if a function is used 200 times, it will only be allocated space in memory once. If a function block is
used 200 times, it will be allocated memory space 200 times, each one storing the value(s) it solves.
There are many predefined functions and function blocks in the workbench. However, you may wish to create your
own user-defined functions and function blocks (e.g., a two-out-of-three voter with discrepancy alarms and time
delays).
Most functions and function blocks are created using the function block, structured text or ladder diagram editors.
1. Exit Simulation mode (Stop Simulation).
2. Right click on the Area1_SIS Function Blocks and select Add Function Blocks, then New FBD:
Function block Diagram.

86 of 107

3. Change the name of the function block from the default to AI_Condition.

4. Right click on AI-Condition and select Parameters.

5.

The window opens on right side, pull it to the middle and make it an appropriate size.

87 of 107

6.

Click on New Input.

7. Create an analog input as noted below.

88 of 107

8. Create two more inputs as shown below.

89 of 107

9. Click on New Output.

10. Create the three new outputs shown below:

90 of 107

91 of 107

11. Close that Parameters window and double click on the AI_Condition function block

The function block definition window opens

12. Drag in a variable and open the local variables. Assign AI_Input.PV to the variable

13. Finish defining the function block as shown below.

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

16. Assign inputs. Lets create a tank level input.

94 of 107

17. Now add an override button input.

18. Last, let input a constant for the override point.

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

22. Try the build again you should be OK now.

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.

24. Disconnect from your controller.

98 of 107

Lab 13: Sharing information with ControlLogix (10 Min)


Common Industrial Protocol (CIP) over Ethernet/IP enables AADvance controllers to exchange data with
ControlLogix controllers. The exchange of data uses the produce/consume method similar to the bindings
mechanism used by the AADvance controller.
You configure the exchange of data by defining a production variable (or structure) for one controller and a
corresponding consumption variable (or structure) for the other.
At runtime, the controller with the consumption variable pulls data from the controller with the production variable.
A production or consumption variable can contain up to 500 bytes.
You will need to create a CIP network in the Communications view of the workbench.
Note:

You can only use the CIP network to exchange data using producers and consumers.

The CIP network cannot be used for downloading to or monitoring a target.


Do not use the CIP network to exchange data between AADvance controllers; use bindings over an SNCP network
instead.

1. Click on the Communications tab.

2. Right click on CIP in Area1_SIS and select Add CIP Produce Link

99 of 107

3. Double click on With Any to open the communications window.

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

9. Change max connections to 2, just to limit connections.

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

Copyright 2013 Rockwell Automation, Inc. All rights reserved.

You might also like