RA Foundations Manual Part 2 V2
RA Foundations Manual Part 2 V2
RA Foundations Manual Part 2 V2
c
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 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 ........................................................................................................................................... 7
About this lab .................................................................................................................................................................................... 7
Tools & prerequisites ........................................................................................................................................................................ 7
Lab 6: Improving Efficiency Using Partial Import Online <30 minutes> .......................... 145
6.1 Code Library Example ............................................................................................................................................................ 145
6.2 Line Expansion Example ........................................................................................................................................................ 154
6.3 PIO Search and Replace Example ......................................................................................................................................... 170
Lab 9: Using a SD card with a Logix Controller <15 minutes> ........................................... 248
9.1 Opening an Existing Controller Project ................................................................................................................................... 249
9.2 Using code to list files and directories..................................................................................................................................... 250
9.2 Create a Directory ................................................................................................................................................................... 254
9.3 Create, Edit, and Delete a File ................................................................................................................................................ 255
9.4 Read Data from SD card......................................................................................................................................................... 257
9.5 Storing and Loading Recipe Data ........................................................................................................................................... 259
Lab 12: Extended Data Types and 64 Bit Math Instructions <5 Minutes> ...................... 288
12.1 V33 Data Type Enhancements ............................................................................................................................................. 289
Lab 13: Highly Integrated HART (HIH) <7 Minutes> ............................................................... 293
13.1 Highly Integrated HART ........................................................................................................................................................ 293
Important! Please be aware that it would take approximately 240 minutes (4 hours) to complete all the
sections in this lab manual! You do not need to complete all the sections and you do not need to do them in
order!
The intent of this lab to present a variety of topics for the user to select from; each lab section is independent so you can pick
and choose what you are interested in reviewing during the time available.
Important! Since this lab is intended to be run in different environments (see sub-section Logix Controller for
more details on lab setup options), understand that certain lab sections in this lab manual have been
adjusted to accommodate for those different environments. For specific details, please pay special attention
to any notes that will look similar to this one. [beginning with Important!]
Lab Files
This lab uses the following Logix Designer application files:
Lab 1: New Features in Version 32 and 33 Whats_New.ACD
Lab 12: Extended Data Types and 64 Bit Math Instructions ExtendedDataTypes_64BitMath.ACD
Socket Communication
C. Emulated Logix controller (FactoryTalk Logix Echo) with an HMI faceplate – local or cloud-based (e.g. onCourse)
This section will introduce some of the features that were added in version 32 and 33 of Studio 5000 Logix Designer.
Goals of this lab section:
Highlight new usability and workflow enhancements available in latest versions
Introduce Function Block Diagram (FBD) functions
Introduce Logix Tag-Based Alarms
Introduce ControlFLASH Plus
Show Studio 5000 version 32 data exchange capabilities
Additional new features introduced in version 33 can be reviewed in individual lab sections:
Lab 12: Extended Data Types and 64 Bit Math Instructions
Lab 13: Highly Integrated HART (HIH)
Lab 14: Automatic Diagnostics
Note: This same ACD file will be used for each section of this lab. So, keep it open until you are instructed to
close Studio 5000 Logix Designer.
7. Select the Enable Controller Web Pages check box to make the embedded controller web page
accessible and then click OK to accept the changes and close the dialog.
13. While holding the Ctrl key, click on more than one trend to select them similar to what is shown below; you
do not need to match the exact selection.
17. While holding the Shift key, select Trend_09. You will see this result:
18. Open at least 3 routines to populate the editor window similar to what is shown below. The exact routines
are not important. It’s only important that you open multiple routines.
19. Right-click on an open routine and select Close All But This:
You will see that all the open editor tabs are closed except for the selected item.
20. For the remaining sections, you will need to be online with the controller.
Select COMMUNICATIONSWho Active, expand the AB_ETHIP-1 driver and select the controller with
IP address 192.168.1.20.
Depending on your lab setup, the controller could be either a physical ControlLogix 5580 controller,
or ControlLogix 5580 Emulator (FactoryTalk Logix Echo).
23. There are now new download options that allow for greater user flexibility when downloading to a Logix
controller.
It may take a few minutes to download the project. Continue with the lab.
Important! The following few steps explain what you would see on the 4-character LCD display of the
controller while you are downloading a program to it.
If you run a version of lab with emulator (FactoryTalk Logix Echo), you will not be able to monitor the LCD
display during this lab.
You can either read through this section or skip to section Quick Watch.
When using hardware located in cloud, you should be able to watch the LCD display through a web cam.
25. For 5580 ControlLogix controllers, the 4-character scrolling status display is in the location highlighted
below.
When a project is downloading, it will display “Download in Progress” so that you can actively monitor the
download progress if you are physically local to the controller.
26. Open the Microsoft Edge web browser from the task bar.
27. In the URL field, enter the IP address of the controller: 192.168.1.20.
28. The default webpage is the embedded controller webpage which includes additional sections of Controller
Diagnostics and Status Indicators from previous firmware revisions. View the information that is provided
on the webpage
30. Once the download is complete, put the controller into RUN mode by selecting Yes in the window.
31. If not prompted, switch the controller to RUN mode by selecting Rem Prog and then Run Mode.
To make the pane larger hover over the top of the pane until you see the cursor change, left-click and drag up.
You may need to make the Watch pane larger and pin it, so it does not Auto Hide.
The Auto Hide option selector is found on the right side of the pane as highlighted in the image below.
If the window is auto hiding then you should toggle the selector. As shown, the window will not auto hide.
34. Enter the name MyWatch in the Quick Watch input box.
The Watch pane auto populated with the tags referenced in the routine.
36. Click on the row selector for the top row (with the tag Dime). Once the row selector is clicked the row will
highlight as shown.
38. Use the keyboard shortcut Ctrl+C OR right-click on a row selector and select Copy.
39. In the Watch pane drop-down, select MyWatch from the drop-down list.
Notice that the tags we added in MyWatch remain. You created a Watch by using a copy and paste to
populate the Watch fields.
Notice that MyWatch is still open and selectable in the Watch pane.
However, if you try to select MainProgram-QuickWatchSample you cannot because it is no longer open.
Quick Watch
Version 32 enhanced the Quick Watch functionality by including a drop-down selection for any open routine.
That also includes routines in a tear away outside of the main Logix Designer window. In past revisions, you
could only select the currently opened routine.
Notice that there are members that start with Spare_ indicating these are elements that have been reserved
for future use by whoever created the UDT.
The name of the member that you changed in the definition is reflected in the instances of the UDT.
48. Navigate to the Conveyor UDT definition (AssetsUser-DefinedConveyor), change the member
Spare_BIT_00 to Okay_To_Stop_Motor, and click OK.
49. Navigate to Controller Tags and find UDT_Rename. Again, notice that the member updated in the instance
of the UDT.
Both UDT members that were renamed were updated in the trend.
FBD Functions
52. The left side of the sheet includes some new FBD functions while the right side shows traditional FBD
instructions.
With the default zoom (100%) you will see all the FBD functions on this sheet. To see all the FBD
instructions on this sheet you would have to scroll down. Notice that the functions and instructions are
performing the same operations.
Compare:
Limit Test Function
Mask Equal Function
Not Equal Function
Not Equal Function
Greater Than Function
Greater Than Or Equal Function
Less Than Function
Less Than Or Equal Function
Boolean:
Boolean And Function
Boolean Or Function
Boolean Exclusive Or Function
Boolean Not Function
Additional 16 FBD functions were introduced in version 33, as listed below:
Compute/Math/Conversion:
Sine Function
Cosine Function
Tangent Function
Arcsine Function
Arccosine Function
Arctangent Function
Neutral Log Function
Log Base 10 Function
X to Power of Y Function
Radians to Degrees Function
Degrees to Radians Function
Truncate Function
Logical:
Bitwise AND Function
Bitwise OR Function
Bitwise Exclusive OR Function
Bitwise NOT Function
54. Compare the routing on screen to a similar layout that was created in version 31 shown below.
Wire jumps simplify the wire routing and make the FBD easier to read and interpret.
55. Navigate to the Controller at the top of the Controller Organizer, right-click and select Properties.
56. Select the Date/Time tab, click the Set Date, Time and Zone from Workstation button and click OK.
This sets the time in the controller so that the referenced times used later in the lab are accurate.
59. Fill in the alarm properties as noted below and click OK.
61. Check the box in the Use column for all the alarms you see.
The alarm that you created (LO) is in the list as well as 3 other alarms linked to TankTemp.
By checking the Use column we are enabling the alarms.
62. In the Alarms list, double-click the LO alarm that you just created.
63. The Alarm Properties dialog appears. Click on Editor button next to the Message text area.
64. We will add tag description of tag TankTemp to the alarm message:
In the Variable drop-down list choose Select Tag Extended Properties
Click on the three dots next to the Tag: and pick \LTBA.TankTemp
From the Extended Property drop-down list select Description
Click <- Add
67. Navigate to TasksMainTaskLTBA and open the Parameters and Local Tags.
Make sure you are on the Monitor tab in Parameters and Local Tags and change the Value column to 25.
68. Navigate to Alarm ManagerAlarms and open Alarms. Notice the change in the State column.
There is an indication that the specific alarm is active by the bell icon.
69. Navigate to TasksMainTaskLTBA and open the Parameters and Local Tags and update the value to
40.
Notice that icons are slightly different now. Let us look at the difference.
73. The Alarm State indicates Normal, Unacknowledged meaning that the alarm is no longer active, but it has
not been acknowledged.
74. Click the Acknowledge button and see the state change.
Note the other status information on this page including various times.
79. Click on the Name column to sort the column in descending order.
The Alarm List updates with items that contain the search string.
Alarm List
The Alarm List includes all tag-based alarms in the project. Use the Alarm List to view the status of alarms,
sort alarms, and enable and disable alarms.
In the lab we used the sorting and searching to narrow down the list of alarms. There is also the Show menu.
83. Read the rung descriptions for rungs 3, 4, and 5 and toggle SetHIHI, SetNormal and Ack_HI_HIHI.
Toggle the Set bits for rungs 3, 4, and 5 and notice how the XICs on rungs 1 and 2 update as you toggle the
various bits.
Notice ::THIS and \THIS were used to get different groupings of alarm information.
::THIS is for alarm attribute information for the whole controller.
\THIS is for alarm attribute information for the program. For this example, these values were the same
because all the Logix Tag-based Alarms were linked to TankTemp which is in this program.
84. When complete with this subsection you can close the Whats_New project. Do not need to save the
changes to the project file.
This sub section will introduce the flashing tool ControlFLASH Plus and demonstrate some new features including:
Updating multiple devices in the same operation
Firmware library management
Favorite capabilities
ControlFLASH Plus was originally introduced with the same FactoryTalk system components as version 31 of Logix Designer.
These controller groups are no longer listed by catalog number (1756-L*, 1769-L*, etc.) and appear at the
bottom of the ControlFLASH selection window. The new controller firmware groups include all the firmware
for the group in a single .dmk file.
You will not be using ControlFLASH in this lab subsection, but this is a common tripping point for
ControlFLASH users updating to version 31 and later controller firmware.
Flash Devices
1. Open ControlFLASH Plus from the desktop shortcut or Start menu item.
Note: As already mentioned in the introduction: If you work with a remote version of this lab, firmware
flashing operations have been disabled You can still follow the manual instructions, but you will not be able to
finish the actual operation of firmware write.
You will see an informational message “User not permitted to Flash”.
The tool uses a modern interface that utilizes tabs to organize activities.
A reminder: The window might contain less information if there is no internet connection:
4. The Network Browser will be active. Navigate to the location shown below (IP address 192.168.1.20 under
AB_ETHIP-1 driver) and highlight the Backplane until the modules in the chassis are populated.
5. Click OK once the Network Browser window displays the module in slot 6 (1756-OF8I).
Note: As already mentioned in the introduction: If you use a FactoryTalk Logix Echo version of the lab
(emulator), you will not see any I/O modules. You will not be able to perform the flashing operation, but you
can still follow the lab manual.
7. The Network Browser has enhanced capabilities including a Search feature that will filter results, in-window
driver configuration, level-based browsing and more.
A demonstration of these mentioned features are skipped for this section for time.
Click Cancel to close the Network Browser.
9. The next screen is a final acknowledgement before you begin the flash operation.
Put the controller into remote program mode by moving the controller keyswitch to PROG and then to REM
(a key is available with the demo hardware).
12. The flash should complete successfully, and you will see the Flash Results window.
The list under the Manage Firmware tab displays all the available firmware on the computer. For this lab, a very limited set of
firmware is on this PC. In a real-life environment, this list would likely be much larger.
Notice the input box gives the number of filtered devices out of the total list. It also gives a color indication in the device list to
emphasize that the list is filtered.
17. For one of the entries, hover over the File Path.
The tooltip displays the file path where the firmware is located.
This hyperlink opens an Explorer window to the file location of the selected firmware.
A reminder: ControlFLASH Plus needs internet connection to search and download firmware from PCDC. If
the internet is not accessible, the + Add Revisions choice will not be available. In such case, feel free to read
through this part the lab. You will be able to work again with Deleting Firmware Revisions on the next page.
23. Expand the 1756-L85E/B and select multiple firmware versions for download.
25. In order to finalize the firmware download, you would need to sign into PCDC with your account.
Click on Cancel to close the Download Center dialog
and then on Cancel again to close the Add Firmware Revisions dialog.
28. Check a box and select Delete in the lower right corner of the window.
Firmware Management
ControlFLASH Plus added the capability to manage firmware. You can view all the available firmware from
the Manage Firmware tab.
You can download firmware from PCDC within the user interface of ControlFLASH Plus.
Obsolete or unused firmware can be easily removed from your PC.
Clicking on the file path and managing the firmware files from Windows Explorer can be extremely useful
when doing bulk removal of firmware.
33. In the New Favorite List input box type DemoKitAnalog and press the enter key.
34. The Add Devices window appears. In the Filter by device input box, type 1756.
35. In the resulting list, check the box for the 1756-IF8I and 1756-OF8I modules as shown.
38. Navigate to the Flash Devices tab in the Flash To drop-down select the DemoKitAnalog entry.
The 1756-IF8I and 1756-OF8I are both selected and set to the firmware revision.
Favorites
Favorites are new in ControlFLASH Plus. You can create named lists of specific firmware revisions. The
favorite lists can be imported and exported.
Note: The exported lists do not include the firmware files. Those are not needed, because ControlFLASH
Plus is integrated with the Product Compatibility and Download Center (PCDC), thus allowing download of
the firmware files directly within the user interface of the tool.
Scenario – There was a recent PSA released for a several devices in your plant and you need to update all
the devices during your next shutdown. You create a favorite list with the updated revisions, browse your
network and select your favorite list. Now all the devices affected by the PSA are selected and ready to be
updated.
Good to know
Here are some items that you should know about ControlFLASH Plus:
Coexists with ControlFLASH – both tools can be installed on the same computer.
ControlFLASH Plus is the flashing tool of the future and it will be updated to include new features.
ControlFLASH will be maintained but no new features will be added.
Supports all firmware kit types – install-based (generally *.msi files) and file-based (*.dmk) firmware are both
supported with ControlFLASH Plus.
Seamless integration with FactoryTalk Security.
FREE SOFTWARE – like ControlFLASH, this tool is available for free on the PCDC.
Depending on internet connection availability and your actions, you may have noticed one of the following
during the lab:
Major release 2 of ControlFLASH Plus added direct integration into the Product Compatibility and Download
Center (PCDC). With an internet connection and your PDCD credentials, you can download firmware and
view relevant information (lifecycle status, release notes, PSAs, etc.) directly in ControlFLASH Plus
- The yellow indicator shows that internet connectivity is available and PCDC could be reached.
- The red indicator shows that the PC cannot connect to the PCDC server.
- The green indicator shows that you are logged into PCDC.
For more information on ControlFLASH plus refer to ControlFLASH Plus Quick Start Guide, (publication
CFP-QS001).
The list below shows various software packages involved with the Data Exchange that were used in making the videos:
Studio 5000 Logix Designer v32 Professional Edition
Studio 5000 Data Adapter Tool v1.00.00
EPLAN Electric P8 v 2.8
AutoCAD Electrical v 2018
For each workflow (AutoCAD Electrical and EPLAN), it is assumed that the viewer has a working knowledge of the 3 rd party
software. The videos cover the workflow and data exchange capabilities with Logix Designer and there is little to no overview of
the 3rd party tools in the video. For a novice user of the 3rd party tool, this lack of context could be confusing which is why it is
noted here.
1. The Data Exchange videos are in C:\Lab Files\_2_Advanced Logix\Lab 01 Whats New\DataExchange.
There are supplemental files (IO drawings and .ACD project) included on the lab image for the workflow shown in the video. See
location C:\Lab Files\_2_Advanced Logix\Lab 01 Whats New\DataExchange\AutoCAD_Supplemental for the files.
If viewing the IO drawings in Microsoft Edge (default program), using CTRL + mouse wheel is an effective
way to zoom and generally navigate the .PDF document.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will introduce some of the features that came with version 31 of Studio 5000 Logix Designer. These changes work
together to give you a large increase in usability. All of these changes are a result from customer input.
Goals of this lab section:
Get familiar with the updated Logix Designer user interface
Experience Structured Text Editor updates
Experience Function Block Diagram (FBD) updates
Note: This same ACD file will be used for each section of this lab. So, keep it open until you are instructed to
close Studio 5000 Logix Designer.
Now the Routine that you opened is shown in a separate window. Being limited to one monitor for this lab does not allow
you to experience the full capability of this feature. Any tab can be a separate window. Separate windows can be sized like
any other window and put onto separate monitors.
8. Open at least 5 additional routines (do more if you like) to fill the top bar with routines.
9. Click the down list button on the far right of the routines tabs. This will then bring up a list of all the routines
that are currently open.
Line Numbers
Line Numbers are now displayed on the left hand side of the routine display.
16. Tag cross references now include the structured text line number as well as the ladder rung number.
Many display items can be configured. Line numbers can be turned off, etc...
You will now see two yellow bars on the lines that you have added: lines 16 through 18. The yellow bars indicate that
changes have been made and that they have not been verified.
21. Now the change bar color is green indicating that the changes have been verified.
Tracked Changes color bars are removed when the routine is closed.
23. Click the “– box” to the left of if to contract the code region.
25. This will bring up a Tooltip that contains all the text that is hidden by the collapsed region.
The use of the #Region and #EndRegion syntax indicates a User Defined Region of code.
27. Use the box to the left of #Region to collapse the code region.
28. The Region syntax is now hidden, and the user only sees the + box and the description that was entered to
the right of #Region.
32. This is an example of a very large region that closes lines 37-68. Since this region is very large the tooltip is
not able to display all the text that is hidden.
Tooltips can be used to further explain what the placeholder tag is used for.
38. Replace bool_expression by typing ‘Product_Running’. You do not need to move the cursor before typing.
41. Experiment with code snippets for the other syntaxes. Type the first word or first few characters of the
syntax and then press Tab.
ELSEIF… THEN
CASE… OF
FOR… DO
WHILE… DO
REPEAT… UNTIL
46. Check the Include Header on Create checkbox. This will automatically create a header in any newly
created Structured Text Routine.
49. Create a new Structured Text Routine named STX_Header inside the Structured_Text Program.
You can see that Logix Designer has automatically created a header!
50. Open the new routine. See that Logix Designer has automatically created a header .
NOTE: String Literal Assignment and Comparison features are only applicable to:
- ControlLogix 5580
- CompactLogix 5380 & 5480
- It is not applicable to ControlLogix 5570 and CompactLogix 5370
56. The syntax Str_Product = ‘Chocolate Chip’ is an example of a String literal to String Comparison.
Note: The line numbers could be different then the captures shown for the STX_Code_Snippets routine
depending on your previous activity.
60. Type ‘if’ then press the TAB key. This will give you the if…then Code Snippet.
61. We will then replace the ‘bool_expression’ placeholder text with the following expression:
Str_Product = 'Sugar Cookie'
64. Go to or create a blank line above the if..endif structure you just created.
70. You have now added a user defined code region in the routine. Close the region.
73. The inline values are now displayed below the tags.
74. Close Studio 5000. If prompted to save the file respond with No.
Note: You can turn Inline Value Display Off in Workstation Options.
You can also hover over tags to see their value!
4. Once open, select COMMUNICATIONSWho Active, expand the AB_ETHIP-1 driver and select the
controller with IP address 192.168.1.20.
Depending on your lab setup, the controller could be either a physical ControlLogix 5580 controller,
or ControlLogix 5580 Emulator (FactoryTalk Logix Echo).
5. Select Download and acknowledge any other windows to start the download.
7. If not prompted, switch the controller to RUN mode by selecting Rem Prog and then Run Mode.
You can open other FBD Routines and experiment with changing operand values while online.
14. Double-click on the FBD routine Boiler1Sim. This will open FBD routine on Sheet 1 named Fuel.
15. Click on the Start Pending Routine Edits icon in the FBD toolbar.
17. From the Organize Sheets dialog box we can select a sheet name and use the mouse to move sheets up
or down to reorder them.
18. While moving the sheet, a green line will indicate where the sheet will be placed .
Note: The sheet number did not change. It will change to 3 after the OK button is clicked.
20. Click the OK button and verify that the sheets have be reordered.
The sheets have now been re-ordered! You can Use the Organize Sheets dialog box to move the order of other sheets in
this Project.
24. View the Errors window at the bottom of Logix Designer (use the scroll bar to scroll up to see warnings).
Note: You may need to make the Errors pane larger to see the same view.
Note: A call to a Routine would be one of the following instructions: JSR or FOR.
26. You can also cross reference each routine to search for calls.
Perform a cross reference for Lonely_Ladder_Routine.
27. In the results of the cross reference of Lonely_Ladder_Routine, you can see that nothing was found. This
indicates that no instructions reference Lonely_Ladder_Routine. Since no instructions reference the
Lonely_Ladder_Routine, no calls are being be made to execute logic in Lonely_Ladder_Routine.
From this online view of the Logix Designer ladder editor you will see green power rail on the right and left-hand sides of the
ladder rungs.
Note: This is the same green Power Rail display that has been used in all Logix versions.
Notice how this routine does not have a green power rail. As we saw in the Lonely Routine section of this lab, the
Lonely_Ladder_Routine is not being scanned by the Logix controller.
Note: The screen capture above was taken online. Since the routine is not being scanned, its power rails
look the same as you would see in an offline application.
34. Next, select the Test Accepted Program Edits button on the routine’s toolbar.
37. Now the routine AIC1131_O2_LAD is not being called by any programs in our online project.
Notice how this routine does not have a green power rail. As we saw in the Lonely Routine section of this lab,
AIC1131_02_LAD is not being scanned by the Logix controller.
Note: The screen capture above was taken online. Since the routine is not being scanned its power rails are
the same as an offline application.
39. Click the Untest Accepted Program Edits button on the routine toolbar.
41. Click Cancel Accepted Program Edits. Click Yes to the dialog that appears.
44. Using the buttons on the routine toolbar, accept and test the rung edit. Your rung should look like the one
below.
45. Now the routine AIC1131_O2_LAD is not being called by any programs in our online project.
48. Click the Untest Accepted Program Edits button on the routine toolbar. Click Yes to the dialog that
appears.
49. Click Cancel Accepted Program Edits. Click Yes to the dialog that appears.
As you can see, the updated workflow is much simpler and more intuitive!
58. Select the 6 Messages box and deselect the 4 Warnings box.
This will enable the status messages and toggle off the warnings.
63. Select the program Lonely_Routine in the Controller Organizer, right-click it, and select Verify.
64. Configure the error window to display the Errors and Warnings.
65. With the Error window active, hit F4 to cycle through the list. Shift + F4 moves backwards through the list.
As you move through the warnings on the list, the noted routine is highlighted.
When you got to the error on the list the routine that contained the error was automatically opened and the rung
selected.
This input box is an additional text-based filter for the Errors pane.
The Output Window added filter buttons in version 31. The filtering allows you to display a combination of
errors, warnings or messages. As noted in the lab, you can toggle the corresponding button to enable/disable
the displayed items. For example, to display the errors and messages, click the Errors and Messages
buttons.
Version 32 added the filter input box allowing you to filter on specific text.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will introduce a feature that was introduced in version 24 of Studio 5000® Logix Designer. You will be organizing the
project from Introduction to Program Parameters section into logical groups.
Goals:
Organize the Introduction to Program Parameters section project.
Understand the different options available within the Logical Organizer.
Note: The Controller Organizer is used to organize programs into a task structure that defines how the logic will be
executed. This view does not always present code modules in a logical format that is applicable to the machine or process
design. The Logical Organizer gives users a new way to group and view programs in an application. This can be extremely
helpful when viewing code modules that have been developed at the program level. The remainder of this section will walk
you through the Logical Organizer.
6. Right-click on the root folder (Logical Model Tank_Controller) and select Add New Folder…
Note: This folder will hold the simulation program used to fill and drain the tank.
Now that we have some folders created, let us move the programs around.
10. Click on the Station_1 folder and drag it to the Tank_Manager folder.
12. Click and drag Pump1 and Tank1 into the Station_1 folder.
Note: There are no changes to the Controller Organizer. Changes made in the Logical Organizer do not
change the organization in the Controller Organizer.
14. Open the Logical Organizer and select the Tank1 program.
Logix Designer will take you to the Tank1 program in the Controller Organizer.
Logix Designer will then take you to the Tank1 program in the Controller Organizer
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
Long gone are the days when a single controls engineer completed a project all by themselves. With today’s complex control
systems, it is not uncommon to have 2-5 engineers working on their specific parts of the project and chances are they are
working from different Logix Designer projects. Wouldn’t it be nice if you had a tool that could compare and merge these different
projects together and let you control the granularity to choose what parts of the projects to merge?
Since v17, the Compare Tool has been available to help you find differences in Logix projects. This tool is also available in
Studio 5000 with enhancements to accommodate the new features in as versions of Logix Designer are released. In this lab we
will cover the new compare and merge capabilities and then explore the ability to create a new merged file from the result of the
compare.
Note: At several points during this lab you will be prompted with:
Unless it is specifically stated, you do not need to save the compare projects.
Note: Also, you will be asked to close an in-application window. Close the window as indicated below.
This window allows you to pick the two projects you want to compare.
4. For the Right Content:, follow the same path and select the Line_Expansion.ACD file.
Notice the options provided. We will stay with the defaults here, but you could eliminate tag values and include descriptions
as part of the compare. You could also filter out some of the tags.
5. Click OK. The Compare Progress window will appear while the compare is occurring.
It may take a minute before the progress bar to start to populate and about two minutes for the compare process to
complete.
1. When the compare process is done, the Compare Results window will show where the differences were
found. You may need to expand the window and resize the Compare Results pane to make it large enough
to see everything like what is shown below. Alternatively, you can scroll through the results.
The left-most column, titled Compare Summary, shows the categories where differences were found. The middle and right
columns report how many differences were found in each category.
3. Double-click on Properties.
4. The difference is also highlighted in blue. In this case the only difference is the Controller Properties Name.
Note: If you want to see the differences in the Compare Summary, click the Summary folder in the left
column.
8. This shows the I/O Configuration from the completed ACD file. The EN2T is Red signifying it does not exist
in the L75_Project_Start.ACD file.
Remember! Red - Indicates items that exist in one project but not the other.
11. There are two other folders in the Summary window indicating other project differences: Tasks and Logical
Organizer View. Using what you have learned above, click on each different folder and observe what is
different.
Since version 6.10 of the Logix Designer Compare Tool we can compare project export files. This allows us to
compare exported programs, routines, rungs, AOIs, etc... In the example below, we will step you through the
comparison of two exported programs. Then you will have to opportunity to compare routines, rungs, and AOIs.
14. Start a new comparison by clicking on FileNewProject Compare in the top menu.
Note: Our open project files path is: C:\Lab Files\_2_Advanced Logix\Lab 04 Compare and Merge Tool\
If prompted, do not save.
15. For the Left Content: select the Pump1.L5X file using the path above.
16. For the Right Content: select the Pump2.L5X file using the path above.
21. The results below show the differences between the two Programs in red text. These differences are all on
the Program Parameter Connections.
Note: All files are in the C:\Lab Files\_2_Advanced Logix\Lab 04 Compare and Merge Tool\ folder.
Note: Not all the files have differences! Some of the differences may be different then what you expect
because these examples use Program Parameters.
Now that we have a comparison of the two files, we can use the merge feature to combine them.
1. To start the merge, click on the New Project Merge icon in the toolbar.
2. For the Left Content:, click the ellipsis button, navigate to the Lab 04 Compare and Merge Tool folder and
select the L75_Project_Start.ACD file using the path above.
3. For the Right Content: follow the same path and select the Line_Expansion.ACD file.
An Error pane may be displayed at the bottom on the window. Close it by clicking the X noted below.
Notice certain icon / boxes are checked. Refer to the table below for icon definition.
Blue text is from unresolved items. These items must be resolved to complete the Merge.
Black is for resolved items. All items must be resolved to complete the Merge.
Grayed out checkboxes indicate that the result of the merge will have items from both files.
6. The table below describes the meaning of the icons you will see in this comparison window.
8. Click on the right arrow next to the Tasks folder to expand the entry.
9. Notice that a navigation aid exists in the toolbar in the form of the home icon, an arrow and Tasks. Clicking
on the Home icon (house) will take us back to the original screen .
10. Check all three checkboxes in the left-hand column for MainTask, unnamed middle check box, and
Sim_Periodic.
12. Verify that all the Sim_Logic checkboxes are unchecked in the right column.
The unnamed box in the left-hand column must be checked to have the Sim_Logic box in the right column unchecked.
This unnamed box indicates that one of the tasks will not be merged. In this case it is Sim_Logic.
16. Check the: Pump2, Tank2 and Auto_Cycle2 checkboxes in the right column.
The blue text is from unresolved items. These items must be resolved to complete the Merge.
a. Auto_Cycle1
b. Pump1
c. Tank1
20. Verify the following check boxes in the right-hand column are checked:
a. Auto_Cycle2
b. Pump2
c. Simulation2
d. Simulation_Logic
e. Station_1
f. Station_2
g. Tank2
h. Tank_Manager
This configuration will keep the Auto_Cycle1, Pump1 and Tank1 from our L75_Project_Start.ACD. We will be
combining these items with the additional items from Line_Expansion.ACD in our new merged project.
23. Verify the items in the Resulting Project window. This is the bottom pane in the Merge Tool.
The Resulting Project window may be floating outside the Merge Tool window.
This pane shows which direction the merged items will be flowing. Using the key above, we can see that most of the items
will be taken from the right pane. If you made some changes, you would see those indicated in the directional arrows. For
example, if you click on Auto_Cycle1 we will see why the icon is the arrow.
Grayed out checkboxes indicate that the result of the merge will have items from both files.
24. Once the Merge project is set to your satisfaction, we can save it in any of 3 formats: ACD, L5K, or L5X.
25. Click the Save icon in the toolbar to begin the save.
If the window below is displayed your application still has merge items that you will need to resolve before the application
merge results can be saved. Go back to Merging Project Files section and resolve all remaining items with blue text.
29. Once the merge process is complete a message will be displayed showing that the merge is complete with
no error and no warnings.
Any errors or warnings in the new Merged ACD file will be show in the Error window.
You must confirm all merged project information prior to deploying the project in a product environment. We will confirm the
merged project in the following steps.
31. The Open Merge Result button will open the merged project in Logix Designer.
You may see some errors and warnings, but they are well documented and most likely the result of program connections
that are missing. Notice the merged program has a Tank2, Pump2, and Auto_Cyle2 Program along with an EN2T Module
in the local chassis.
33. Close Logix Designer and the Compare and Merge Tool without saving.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will introduce features that were first introduced in version 24 of Studio 5000 Logix Designer. This feature is
designed to extend the functionality of Logix Add-On Instructions (AOI).
In this section, you will learn the benefits of these new features. Examples will be given of how they can be used in your next
application. You will be using an existing program to conserve time.
This section will review an example using the Module predefined data type in an AOI. The example uses the Module
predefined data type and retrieved the module’s EntryStatus attribute. The EntryStatus attribute is analyzed to set
descriptive status bits for the module.
4. Select Download and acknowledge any other windows to start the download.
5. Put the controller into RUN mode by selecting Yes in the window.
6. In the Main Task, expand the program CommSts_Local and open the routine Slot03_ModSts.
A reminder: Depending on your lab setup, you might see Running, or Faulted status of the I/O module.
When using emulator (FactoryTalk Logix Echo), there is no physical hardware accessible, thus the Faulted
state will be active.
Note: The branch below the AOI_ModuleSts_V01 instruction is used only to show the values of the output of
the AOI without having to look them up in the Monitor Tags view.
9. Right-click the Digital_Input module in slot 3 under the I/O Configuration. Select Properties.
10. Select the Connection section. Check Inhibit Module. Then click on OK.
13. Now you can see that the Local_03_ModSts.Inhibited tag is True and the local
Local_03_ModSts.Running tag is False.
14. You can now remove the inhibit from the Digital_Input module in slot 3 in the I/O Configuration.
15. Go back to the Slot03_ModSts routine and verify that Local_03_ModSts.Inhibited tag is False and the
local Local_03_ModSts.Running (or Local_03_ModSts.Faulted when using emulator) tag is True.
16. Now, let us take a closer look at the linking of the module into the AOI. This linking is done by selecting the
module from the I/O Configuration.
17. Select rung 1 of the Slot03_ModSts routine. Press the Start Pending Rung Edits button in the toolbar on
top of the ladder viewer/editor window.
18. Double-click Digital_Input in the AOI to get the pull down to appear.
You can browse to another module using the I/O Configuration tree to select the module. Any module can be
selected. However, we can also choose to use program parameters of the Module datatype for code reuse.
Note: You might need to scroll up to see the program parameters in the pull-down window.
20. Open the Program Properties - CommSts_Local window by right-clicking on the program and selecting
Properties from the drop-down menu.
21. Select the Parameters tab and click IO_LocalSlot03. Now you can see the configuration of
IO_LocalSlot03 and how it links to the module in the I/O Configuration named Digital_Input.
Note: By using this method, we can have the same logic in many projects and just change the connection for
each use!
24. Click the Finalize All Edits in Program button. Select Yes to the dialog that appears.
25. Verify that this logic functions accordingly by inhibiting and un-inhibiting the module Digital_Input as you did
earlier.
26. Close Studio 5000 Logix Designer. If prompted to save the file respond with No.
Since SINT array indexes 0 and 1 contain the length, some additional logic is required to copy the Path
attribute output into the Message Datatype Path STRING member. The logic shown below from the
AOI_ModWho_V01 uses this logic. This logic only uses byte 0 which limits us to a maximum of 255
characters for our length. This should be more than enough for a real-world MESSAGE datatype Path.
The BTD copies the SINT path length from the SINT array to the LEN member of the String. The GSV
returns SINT’s, but the STRING datatype using a DINT for the LEN (length). Using the BTD we insure that
the value is not converted. The COP instruction copies the remaining data to the Path DATA member – the
string value of the message path. This time we are copying from SINT to SINT.
28. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 05 AOI Hardware Monitoring and open
Hardware_Monitoring_ModuleWho.ACD to open it in Logix Designer.
29. Once open, select COMMUNICATIONSWho Active, expand the AB_ETHIP-1 driver and select the
controller with IP address 192.168.1.20.
Depending on your lab setup, the controller could be either a physical ControlLogix 5580 controller,
or ControlLogix 5580 Emulator (FactoryTalk Logix Echo).
30. Select Download and acknowledge any other windows to start the download.
31. Put the controller into RUN mode by selecting Yes in the window.
32. In the MainTask, expand the program ModuleWho_Local and open the routine Slot03_ModWho.
Important! If you work with a lab setup based on controller emulator (FactoryTalk Logix Echo), the
remaining part of this lab section will not work as described. The program will not read any information about
the I/O module, as there is no physical hardware available.
You can still read and work through the rest of the section, you will just not get the same results.
35. This triggers AOI_Module_Who to go out and retrieve the Major_Firmware and Minor_Firmware revisions
from the linked module Digital_Input.
You can see the final values in the Local03_Major_Firmware and Local03_Minor_Firmware in Controller
Tags on the Monitor Tags tab.
Note: you may have to launch RSLinx Classic from the system tray in the lower right-hand corner of the
desktop.
38. From the screen that pops up, verify the values you have in Local01_Major_Firmware and
Local01_Minor_Firmware Logix controller scope tags.
The Major and Minor firmware revisions of your modules may be different than what is shown but the values
reported in the AOI_Module_Who_V01 instruction and RSLinx Classic will align.
40. Just like with the module in Slot 3, you can verify the results by bringing up the digital output module’s
Device Properties in RSLinx Classic.
41. Close Logix Designer. If prompted to save the project respond with No.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will cover how to use some of the features that where introduced in version 24 of Studio 5000 Logix Designer to
improve efficiency. We will be working in both the Controller and Logical Organizer windows. We will also be discussing the
Partial Import Online (PIO) functionality.
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 06 Improving Efficiency Using Partial Import Online
and double-click Tank_Supervisor.ACD and Tank_Controller.ACD to open them in Logix Designer.
3. Size the Logix Designer windows for Tank_Supervisor and Tank_Controller so they look like the screen
shot below so that they are side-by-side
(you can use key combination Win+ while having Tank_Supervisor project active).
4. Make sure you select the Controller Organizer for each application.
5. Select the 1756_IB16IF module in the Tank_Controller.ACD file and drag and drop it into the
Tank_Supervisor.ACD file. Make sure you drop it onto the 1756 backplane.
7. The I/O Configuration should look like the following screen shot in the Tank_Supervisor.ACD file.
10. Select the Tank_Manager folder in the Tank_Controller.ACD file and drag and drop it into the Logical
Organizer for the Tank_Supervisor.
It is easy and fast to drag and drop items between instances of Logix Designer. Many users will store their code libraries in
an ACD file for this purpose. The introduction of the Logical Organizer gives the user a much better visual representation of
a system or process and its components from a modular view.
11. We are finished with the Tank_Controller.ACD now. Minimize the Tank_Controller.ACD file,
but do not close it.
14. All programs should be in the “Unscheduled*” folder. Let’s create the periodic task for the Simulation Logic.
16. Enter Sim_Logic into the name. Leave everything else at the default value, and then click OK.
19. Drag and drop the selection into the MainTask task.
20. Drag and drop the Tank1 program into the MainTask task.
21. Drag and drop the Auto_Cycle1 program into the MainTask task.
Once complete the tasks should look like the following image.
You created this project from scratch extremely quickly using an ACD file that contains the same code modules (programs). This
is one major advantage to using modular coding design practices.
23. Select Download and acknowledge any other windows to start the download.
24. Put the controller into RUN mode by selecting Yes in the window.
25. Verify the application works as expected by going through the following steps.
Note: For the lab there are push buttons and lights. Depending on the lab format you use, these are
either on the physical demo box,
or within the FactoryTalk View ME application (HMI running on the desktop)
or
If the FactoryTalk View ME application is not running (you accidentally closed it, etc.), you can launch it by
double-clicking the Studio_5000_Logix_Labs.mer file found in the following location.
27. When the green light at DO0 is illuminated, the simulated Fill Pump is ON.
28. When the light at DO2 is illuminated, the simulated Drain Pump is ON.
29. The analog meter / voltmeter AO0 simulates the tank level. 0 volts means EMPTY, 10 volts indicates FULL.
30. Adjust the AI0 slider / knob to 5. The potentiometer slider / knob simulates the pump speed. As you adjust
the value higher, the pump speed will increase.
Note: You should notice the tank slowly filling and draining. As the voltmeter swings from left to right, the
DO0 light should be illuminated (filling). As the voltmeter swings from right to left, the DO2 light should be
illuminated (draining).
Note: The rate at which the tank is filling and draining should have increased.
32. Turn the DI4 toggle switch to the LEFT position. This will put the system into Manual Mode.
Note: The lights should both turn off. The voltmeter (i.e. the simulated level in the tank) should stop moving.
Since the system is now in manual mode, you must manually operate the fill and drain pumps.
33. Press and HOLD the green button at DI0. This will manually turn the fill pump ON.
Note: You should notice the green light will turn ON and the voltmeter will begin to increase. When the tank
is full, the green light should turn off even if the button remains depressed.
34. Press and HOLD the green button at DI2. This will manually turn the drain pump ON when the system is in
Manual Mode.
Note: You should notice the light will turn ON when it is pressed, and the voltmeter will begin to decrease.
When the tank is empty, the greenlight should turn off even if the button remains pressed.
39. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 06 Improving Efficiency Using Partial Import
Online\Library.
Note: This file is an export of the Simulation_1 program. We will be using the PIO functionality to import this
program into our application.
Note: This window allows us to see the details about the import. We can view and correct collisions as well
as make changes to connections.
Note: If a red flag appears in the yellow margin, it indicates that an item is flagged for review. The user
should investigate all flags prior to the import.
43. In the Configure Program Properties window, change the Final Name to Simulation2.
44. Click in the Description box. Clicking in a different box will accept the name change.
Notice how the Operation changed from Overwrite to Create.
This will schedule the Simulation2 program in the Sim_Logic periodic task.
46. The Configure Program Properties pane should look like the screen shot below.
48. In the Configure Connections window, scroll to the right to view the Final Connection column.
49. Click in the Operation box and select the drop-down. Select Disconnect for each connection.
All the changes to the import Simulation program have been made.
51. The Simulation_Logic folder should now have a new program called Simulation2.
Note: Additionally, you can left-click drag and drop components which will function similarly to copy and
paste. Using right-click drag and drop of components will give you a few more options on how the component
is pasted / imported
Note: This file is an export of the Station_1 folder. We will be using the PIO functionality to import this
program into our application.
Note: This will schedule all programs in the Station_2 folder in the MainTask.
a. Auto_Cycle1 Auto_Cycle2
b. Pump1 Pump2
c. Tank1 Tank2
This is where the PIO feature can really start to improve efficiency. The Configure Connection window will allow you to
make changes to connections in the parent program as well as all children programs that are within the parent program.
In this example, the Station_2 folder is the parent and the Pump2, Tank2, and Auto_Cycle2 programs are children. We will
have access to all connections from a single window. Since Station_2 must control an entirely different set of hardware, we
must make the applicable changes to several connections. The following steps will walk you through this process.
62. For the Final Connections that start with \Simulation1. update the text to \Simulation2.
Once complete with this step the Final Connection column should match the capture below.
Once complete with this step, the entries in Final Connection column that start with Local: should match
the capture below.
You might have noticed that there are parameters that use the same tag. This is called “fanning”. Fanning is when multiple
connections are configured to one tag/parameter.
We are not changing the connection for \Pump2.Inp_PumpSpeed. It will be connected to the same input as Station_1.
Verify that all final connections match the screen shot above.
The tag MSG_PLC5_Read can only have one connection. You will need to create a new Message tag to connect to the
‘Tank2.Pv_MSG_PLC5Read' parameter. The new message tag is not shown.
68. Once the import completes, the Tank_Manager folder should now have a new folder called Station_2.
Expand the Station_2 folder and verify that the programs imported successfully.
70. Select Download and acknowledge any other windows to start the download.
71. Put the controller into RUN mode by selecting Yes in the window.
Note:
Station 1 and Station 2 will share the same Pump Speed AI0 slider controls
If you work with a physical demo box, it might only have one AO voltmeter. In such case you will need to
monitor the Station 2 level by reading the output tag data in Logix Designer. Go to Controller Organizer, open
Controller Tags and expand Local:6:O.Ch[1].
When using remotely located hardware or emulator, Station 2 level can be monitored using AO1 in the HMI
application
74. When the light at DO1 is illuminated, the Fill Pump is ON.
75. When the light at DO3 is illuminated, the Drain Pump is ON.
76. The Local:6:O.Ch[1].Data tag / AO1 simulates the tank level. 0 indicates EMPTY,
30000 (tag value) / 10 V (AO1 reading) indicates FULL.
77. Adjust the AI0 slider / knob to 5. The potentiometer slider simulates the pump speed. As you turn the knob /
slider clockwise, the pump speed will increase.
Note: You should notice the tank slowly filling and draining. As the Local:6:O.Ch[1].Data / AO1 increases,
the DO1 light should be illuminated (filling). As the Local:6:O.Ch[1].Data / AO1 decreases, the DO3 light
should be illuminated (draining).
Note: The rate at which the tank is filling and draining should have increased.
79. Turn the DI5 switch to the LEFT position. This will put the system into Manual Mode.
Note: The green lights should both turn off. The Local:6:O.Ch[1].Data / AO1 should become a constant
value. Since the system is now in manual mode, you must manually operate the fill and drain pumps.
80. Press and HOLD the green button at DI1. This will manually turn the fill pump ON.
Note: You should notice the green light will turn ON and the Local:6:O.Ch[1].Data / AO1 increasing. When
the tank is full, the green light should turn off even if the button remains depressed.
81. Press and HOLD the green button at DI3. This will manually turn the drain pump ON.
Note: You should notice the green light will turn ON and the Local:6:O.Ch[1].Data / AO1 decreasing.
When the tank is empty, the green light should turn off even if the button remains depressed.
83. Close Studio 5000 Logix Designer. If prompted to save the file respond with No.
85. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 06 Improving Efficiency Using Partial Import Online
and double-click Tank_Supervisor_Section3.ACD to open in Logix Designer.
Note: Additionally, you can left-click drag and drop components which will function similarly to copy/paste.
Using right-click drag and drop of components will give you a few more options on how the component is
pasted / imported.
90. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 06 Improving Efficiency Using Partial Import
Online\Library.
Note: This window allows us to see the details about the import. We can view and correct collisions as well as make
changes to connections.
Note: If a red flag appears in the yellow margin it, indicates that an item is flagged for review. The user
should investigate all flags prior to the import.
94. In the Configure Program Properties window, change the Final Name to Simulation2.
95. Click in the Description box. Clicking in a different box will accept the name change.
Notice how the Operation changed from Overwrite to Create.
This will schedule the Simulation2 program in the Sim_Logic Periodic Task.
97. The Configure Program Properties window should look like the screenshot below.
In this example the Find / Replace has found the “1.” In the Final Connection \Pump1.Out_DrainPumpON.
Verify that you find \Pump1.Out_DrainPumpON before continuing.
103. Click Replace All and move the Find / Replace window to so that you can see the Final Connection
column.
The Final Connection column in the Configure Connections pane should match the capture below.
105. The Simulation_Logic folder should now have a new program called Simulation2.
108. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 06 Improving Efficiency Using Partial Import
Online\Library.
113. Select the Find/Replace… button and match the options with the screenshot below
Important: Make sure the Search current view only box is checked before continuing.
115. Close Find / Replace window and verify that the Final Name column was updated as shown below.
117. Select the Find/Replace… button and match the capture below
119. Close Find / Replace window and verify that the Final Name column was updated as shown below.
120. Select the Connections section from the Import Content: section.
123. Close Find / Replace window and verify that the Final Name column was updated in the portion shown
below.
124. Manually update the I/O Tags in the Configure Connections section to match the I/O shown below.
You can use the Find / Replace functionality for the I/O tags. Because of the small number of Find / Replace items (only
one or two) per replacement, manual updating was selected for this step.
126. In the Logical Organizer the Tank_Manager folder will now have a new folder called Station_2.
127. In the Controller Organizer new programs have been added for Auto_Cycle2, Pump2, Tank2 and
Simulation2.
128. Select COMMUNICATIONSWho Active, expand the AB_ETHIP-1 driver and select the controller with
IP address 192.168.1.20.
Depending on your lab setup, the controller could be either a physical ControlLogix 5580 controller,
or ControlLogix 5580 Emulator (FactoryTalk Logix Echo).
129. Select Download and acknowledge any other windows to start the download.
130. Put the controller into RUN mode by selecting Yes in the window.
Note:
Station 1 and Station 2 will share the same Pump Speed AI0 slider controls
If you work with a physical demo box, it might only have one AO voltmeter. In such case you will need to
monitor the Station 2 level by reading the output tag data in Logix Designer. Go to Controller Organizer, open
Controller Tags and expand Local:6:O.Ch[1].
When using remotely located hardware or emulator, Station 2 level can be monitored using AO1 in the HMI
application
133. When the light at DO1 is illuminated, the Fill Pump is ON.
134. When the light at DO3 is illuminated, the Drain Pump is ON.
135. The Local:6:O.Ch[1].Data tag / AO1 simulates the tank level. 0 indicates EMPTY,
30000 (tag value) / 10 V (AO1 reading) indicates FULL.
136. Adjust the AI0 slider / knob to 5. The potentiometer slider simulates the pump speed. As you turn the knob /
slider clockwise, the pump speed will increase.
Note: You should notice the tank slowly filling and draining. As the Local:6:O.Ch[1].Data / AO1 increases,
the DO1 light should be illuminated (filling). As the Local:6:O.Ch[1].Data / AO1 decreases, the DO3 light
should be illuminated (draining).
Note: The rate at which the tank is filling and draining should have increased.
138. Turn the DI5 switch to the LEFT position. This will put the system into Manual Mode.
Note: The green lights should both turn off. The Local:6:O.Ch[1].Data / AO1 should become a constant
value. Since the system is now in manual mode, you must manually operate the fill and drain pumps.
139. Press and HOLD the green button at DI1. This will manually turn the fill pump ON.
Note: You should notice the green light will turn ON and the Local:6:O.Ch[1].Data / AO1 increasing. When
the tank is full, the green light should turn off even if the button remains depressed.
140. Press and HOLD the green button at DI3. This will manually turn the drain pump ON.
Note: You should notice the green light will turn ON and the Local:6:O.Ch[1].Data / AO1 decreasing.
When the tank is empty, the green light should turn off even if the button remains depressed.
142. Close Studio 5000 Logix Designer. If prompted to save the file respond with No.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
Since applications often consist of many code modules, each module must have a means of interacting with other modules or
devices. This interaction is often referred to as the Linking Layer. Code Modules are linked together using clearly defined “inputs”
and “outputs” that are required for a module to complete its task. Once a code module’s inputs and outputs have been defined,
they can be linked to other modules using Connections.
Within the Logix environment, users can implement modular design techniques in several ways including the use of Routines,
Programs, and AOIs. Execution varies depending on the type of container used. i.e. scheduled (Programs) versus called (AOI’s
and Routines). Prior to version 24, if the application was segregated using programs, users were forced to use controller scoped
tags for the linking layer. Version 24 introduces a feature called Program Parameters. This feature allows the user to configure
program-to-program connections, without the use of controller scoped tags. The ability to define program-to-program interfaces
adds an additional level of Encapsulation for an improved modular programming environment.
This section will introduce several powerful features introduced in version 24 of Logix Designer. These features are designed to
provide a design environment that enables users to fully implement modular programming methodologies.
Program parameters define a data interface for Programs. Data sharing between Programs can be achieved either through pre-
defined connections between parameters or directly through a special notation. Unlike local tags, all program parameters are
publicly accessible outside of the program. Additionally, HMI external access can be specified on individual basis for each
parameter.
There are two types of parameters for Programs: standard parameters, which are Input and Output, and special usage
parameters, which are InOut and Public.
Input parameters: An Input parameter defines the data that is passed by value into the executing program. Because
Input parameters are passed by value, their values cannot change from external sources during the execution of the
program when connected to Output or Public parameters. An Input parameter supports a maximum of one connection
or InOut binding.
Output parameters: An Output parameter defines the data that is produced as a direct result of executing the
program. Because Output parameters are always passed by value, their values cannot change outside of the
execution of the Program nor can they be changed from other programs. Output parameters can be connected to one
or several Input and Public parameters or Controller scope tags.
InOut parameters: An InOut parameter represents a reference to data that can be used both as input and output
during the execution of a program. Because InOut parameters are always passed by reference, their values can
change from external sources during the execution of the program. An InOut parameter must be bound to exactly one
target including Input and Public parameters as well as Controller scope tags. Some restrictions apply when binding an
InOut to an Output parameter.
Public parameters: A Public parameter defines the data that is passed by value into a program or is produced by the
executing program. A Public parameter accepts several connections or InOut bindings (except for Controller scope
tags) and can function as a data concentrator or shared memory between programs.
In this section, you will learn how connections are made between code modules (Programs). We will cover existing and new
methods. We will primarily focus on how to create and connect Program Parameters (New in version 24). You will be using an
existing program to conserve time.
Notice that Program Tags are now Parameters and Local Tags. This change was required to reflect the addition
of Program Parameters. Additionally, the naming convention introduced for Programs in version 24 now matches
the naming convention used for Add-On Instructions (AOIs).
4. Highlight the tag Inp_DrainPumpPB. This is can be done by pressing the gray button to the left of the tag
name. You may need to expand the name column.
A Parameter must be “connected” to another Parameter or Controller Tag. For example, connecting an Output parameter to
an Input parameter will ensure that data is copied from the Output parameter to the Input on every scan. The screen shot
above indicates that this input parameter has no connections. The steps below will walk you through creating a connection.
This input parameter is for the Drain Pump Pushbutton input. It will be connected to the physical input point in the
Controller Tags.
7. Once you click in the box, click the gray browse button on the right.
8. Click the drop-down arrow when the tag selection pop-up appears.
11. Once you select the Local:3:I.PT[2].Data bit, the tag selection pop-up should look like the capture below.
If you know the exact tag name you can also enter it manually
We need to create one more Input connection. Let us create this connection by adding a connection column in
our tag database.
13. Click on the Edit Tags tab for the Pump1 Parameters and Local Tags.
14. Right-click on any one of the column headers. Select Toggle Column and then select Connection if not
checked.
At this point, you can click the gray browse button. This button will display the Connection Configuration screen. This
window would be required if more than one connection exists or must be configured. If only one connection exists or is
desired, you can click the drop-down arrow. This will display the tag selection pop-up. You can also just type the name of
the connection tag into the connection box. We are going to configure this connection through the Connection Configuration
Screen.
17. Click on the browse button to open the Connection Configuration Dialog Box.
23. In the Controller Organizer, right-click on the Tank1 Program and select Properties.
Note: There are several ways to configure connections. In the previous section, we used the Tag Properties
window. In this section we will use the Parameters Tab in the Program Properties window. Both methods are
available and can be used based on user preference.
The Parameters tab was introduced in version 24 of Logix Designer. This gives the user another way to see and configure
parameters and connections. (Do not worry about the Red “X” next to Pv_MSG_PLC5Read.)
25. Click in the Name box for the tag Out_VoltMeter. (DO NOT click on the graphic. See the note below
for more details).
Note: If you click the button next to the parameter name, it will allow you to view the tag parameters
members (bits). You will have to click the home icon (house) to return to the normal view.
If a red “X” appears next to this connection, it is possible that you typed the number “0” instead of the letter “O”.
Notice there is still a mark on Out_VoltMeter. This is because there is a data type mismatch with the parameter and
the selected tag.
28. Update the Out_VoltMeter datatype to REAL and click Apply in the Program Properties window.
For this application, the Auto_Cycle code module must be able to command the Drain and Fill pumps to run. The Pump
code module has been configured to have a public run command for both the Drain and Fill pumps. Since the
Auto_Cycle module must be connected to the Pump module, an output parameter must also be configured for both the
Drain and Fill pumps in the Auto_Cycle module. We will be configuring these connections as well as explore some of
the filter/search mechanisms throughout the next several steps .
30. In the Controller Organizer navigate to TasksMainTaskAutoCycle1 and open Parameter and Local
Tags.
So far, all connections that have been configured have been to Controller Tags (I/O). The next two connections will be
connections between two programs.
34. Click the drop-down arrow when the tag selection pop-up appears.
37. For the Show Parameters from other Program dropdown select Pump1.
The selections displayed are filtered to show Pump1 parameters that can be connected to an output parameter. All local
tags and parameters that would make invalid connections are not visible.
39. \Pump1.Cmd_PublicDrain is now in the tag pop-up. Click OK finalize this connection.
43. Click the drop-down arrow when the tag selection pop-up.
44. In the upper left corner of the parameter selection pop-up, enter PublicFill.
This filtering can be a quick way to parameters, especially if you know some key words in the tag name.
46. \Pump1.Cmd_PublicFill is now in the tag pop-up. Click OK finalize this connection
47. In the Controller Organizer navigate to TasksMainTaskTank1 and open Parameters and Local
Tags.
Let us assume this system has a PLC5 that is running remotely at the tank location. That PLC5 has several inputs that
gather leak detection status of the tank area. This application will retrieve the leak detection status from the PLC5
using a PLC5 Word Read MSG instruction. Message instructions must reside in the Controller Tags. An InOut
parameter can be used to connect directly to the Message instruction at the Controller scope. This provides an extra
layer of encapsulation. The following steps in this section will walk you through the process of connecting a Message
instruction to a program InOut parameter.
48. Highlight Pv_MSG_PLC5Read. This tag should have a mark which indicates an error.
49. In the Properties pane, click in the New Connection input box.
50. Once you click in the box, click the gray browse button on the right.
51. Click the drop-down arrow when the tag selection pop-up appears.
53. Scroll down in the list and double-click the MSG_PLC5_Read controller tag.
54. Press the OK button on the tag selection pop-up to finalize the connection.
If you look in the Parameters and Local Tags for Tank1, you will also see an input parameter named
Inp_LeakDetectionPLC5. Since Message instruction source and destination tags must also be at the controller scope,
we created an additional parameter to connect to the result (destination) of the Message instruction.
55. In the Controller Organizer navigate to TasksMainTaskAuto_Cycle1 and open Parameters and
Local Tags.
57. Click inside the usage box for Sts_AutoMode. Select the drop-down arrow and select Public Parameter.
This tag was originally configured as a Local Tag. It can easily be converted to a public parameter so other programs
can get access.
58. In the Properties pane, click in the New Connection input box.
59. Once you click in the box, click the gray browse button on the right.
61. Set Show Parameters from other Programs to Pump1 and complete the connection.
63. Double-click \Pump1.Inp_AutoMode and click OK in the tag selection pop-up to finalize the connection.
64. Follow similar steps as above for Sts_ManualMode. Set it to a Public Parameter. Connect it to parameter
\Pump1.Inp_ManualMode.
66. Verify Sts_AutoMode and Sts_ManualMode are configured as shown in the capture below.
The remaining steps will demonstrate how to connect to members of a parameter. We will also observe how to quickly
identify how many total connections are configured for a parameter.
67. In the Controller Organizer navigate to TasksMainTaskTank1 and open Parameters and Local
Tags.
Let us do a quick review of what we discussed earlier in the lab. You can quickly identify the number of connections for
the parameter and its members by looking at the numbers between the brackets. The example above indicates that 0
connections are made to the parent parameter, which is Val_LeakDetection.
However, 2 connections are made to one or more members of the parent parameter. In this example, that would mean
there are two connections to one or more of the 16 bits (INT data type) of Val_LeakDetection. Logix Designer (version
24 and higher) software will allow you to view all the connections to a given parameter in the parameters tab of the
program properties.
Let’s create another connection to a member of the Val_LeakDetection parameter.
69. In the Controller Organizer navigate to TasksMainTaskPump1 and open Parameters and Local
Tags.
72. Highlight Val_LeakDetection. Look at the Parameter Connections for this tag in the Properties window.
Note how the {0:2} changed to {0:3}.
77. The Connection column in the Parameters and Local Tags window will display the same information. You
may have to configure the Connection column to be visible.
78. Mouse over the connection box for the Val_LeakDetection Public Parameter.
The popup will show you all the connections that are configured for a given parameter.
Rungs 2 and 3 have errors because XIOs are not tied to anything. You are going to link them to parameters from
Tank1 program.
81. Click the drop-down arrow. Use the filters to find and select \Tank1.Sts_TankFull for the operand.
82. With similar steps above set the operand for the XIO on rung 3 to \Tank1.Sts_TankEmpty.
We want to make sure that we turn the pumps operate correctly when the tank is full or empty. You used direct
reference to acquire the value of the tank full status and tank empty status. The Auto_Cycle1 program can directly
access the value of the Sts_TankFull and Sts_TankEmpty parameters from the Tank program without creating a
connection.
No Errors or Warnings should be present. If the Error window is not visible, click Alt+1. Correct any errors.
86. Select Download and acknowledge any other windows to start the download.
87. Put the controller into RUN mode by selecting Yes in the window.
88. Verify the application works as expected by going through the following steps.
Note: For the lab there are push buttons and lights. Depending on the lab format you use, these are
either on the physical demo box,
or within the FactoryTalk View ME application (HMI running on the desktop)
or
If the FactoryTalk View ME application is not running (you accidentally closed it, etc.), you can launch it by
double-clicking the Studio_5000_Logix_Labs.mer file found in the following location.
90. When the green light at DO0 is illuminated, the simulated Fill Pump is ON.
91. When the light at DO2 is illuminated, the simulated Drain Pump is ON.
92. The analog meter / voltmeter AO0 simulates the tank level. 0 volts means EMPTY, 10 volts indicates FULL.
93. Adjust the AI0 slider / knob to 5. The potentiometer slider / knob simulates the pump speed. As you adjust
the value higher, the pump speed will increase.
Note: You should notice the tank slowly filling and draining. As the voltmeter swings from left to right, the
DO0 light should be illuminated (filling). As the voltmeter swings from right to left, the DO2 light should be
illuminated (draining).
Note: The rate at which the tank is filling and draining should have increased.
95. Turn the DI4 toggle switch to the LEFT position. This will put the system into Manual Mode.
Note: The lights should both turn off. The voltmeter (i.e. the simulated level in the tank) should stop moving.
Since the system is now in manual mode, you must manually operate the fill and drain pumps.
96. Press and HOLD the green button at DI0. This will manually turn the fill pump ON.
Note: You should notice the green light will turn ON and the voltmeter will begin to increase. When the tank
is full, the green light should turn off even if the button remains depressed.
97. Press and HOLD the green button at DI2. This will manually turn the drain pump ON when the system is in
Manual Mode.
Note: You should notice the light will turn ON when it is pressed, and the voltmeter will begin to decrease.
When the tank is empty, the greenlight should turn off even if the button remains pressed.
99. Close Studio 5000 Logix Designer. If prompted to save the file respond with No.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
Version 16 of RSLogix5000 Logix introduced the concept of reusable code objects called Add-On Instructions (AOI). Add-On
Instructions allow you to encapsulate your most used logic as sets of reusable instructions, like the built-in instructions already in
the Logix controllers. This saves you time by allowing you to easily re-use sets of your commonly used instructions in your
projects and promotes project consistency because commonly used algorithms will all work in the same manner, regardless of
who is implementing the project.
Add-On Instructions may be created using the standard ladder, function block diagram, and structured text
editors already available in Studio 5000 Logix Designer. Once created, an Add-On Instruction may then be
used in any of the Studio 5000 Logix Designer editors without any additional effort on your part.
Online troubleshooting of your Add-On Instructions is simplified by the provision of context views which allow
you to visualize the logic for your instruction for a specific instance of its use. Custom help for your
instructions makes it easier for users to have a successful application of the Add-On Instruction.
Finally, you can use the Add-On Instruction’s source protection capability to prevent unwanted changes to
your instruction and/or to protect your intellectual property.
In this lab, we will take all the conveyor code we were using in the previous lab and encapsulate it within a single Add-On
instruction. We will then use the Add-On instruction in another project to show how much time you can save with them. In this lab
you will:
Get an overview of AOI Basics
Create an AOI
Use an AOI
Apply signature to an AOI
Export / Import AOI with a signature
1. General Tab.
The General tab contains the information from when you first created the instruction. You can use this tab to update
the information. The description, revision, revision note, and vendor information is copied into the custom help for the
instruction. The revision is not automatically managed by the software. You are responsible for defining how it is used
and when it is updated.
2. Parameters
The Parameters define the instruction interface; how the instruction appears when used. The Parameter order defines
the order that the Parameters appear on the instruction call.
InOut tag values are not displayed even when Required and Visible is selected because they can be
configured as arrays – displaying arrays can consume excessive amounts of space.
Local Tags are hidden members private to the instruction. Local Tags are not visible outside the instruction and cannot
be referenced by other programs or routines.
4. Data Type
Parameters and Local Tags are used to define the data type that is used when executing the instruction. The software
builds the associated data type. The software orders the members of the data type that correspond to the Parameters
in the order that the Parameters are defined. Local Tags are added as hidden members .
5. Logic Routine
The Logic routine of the Add-On Instruction defines the primary functionality of the instruction. It is the code that
executes whenever the instruction is called. Shown below is the interface of an Add-On Instruction and its primary logic
routine that defines what the instruction does .
7. Change History
The Change History tab displays the creation and latest edit information that is tracked by the software. The By: fields
show who made the change based on the Windows username at the time of the change.
The Name, Revision, Description, and Parameter definitions are used to automatically build the Instruction help. Use
the Extended Description Text to provide additional Help documentation for the Add-On Instruction. The Instruction
Help Preview shows how your instruction will appear in the various languages, based on Parameters defined as
Required or Visible.
Currently, each conveyor code section is made up of one program and four routines. By using an AOI we can
reduce all of this to one custom instruction that can be used anywhere in the application.
11. Right-click on the Add-On Instructions folder and select New Add-On Instruction… from the drop-down
menu.
‘EnableIn’ and ‘EnableOut’ parameters are predefined and are added by default to each Add-On
Instruction. The ‘EnableIn’ is manipulated by factors unique to each language environment and can be used
for specialized functionality. This is an advanced topic and is beyond the scope of this lab. The ‘EnableOut’
generally follows the state of the ‘EnableIn’ but can be manipulated by user programming.
The Parameters tab is a tag database editor window for parameters specific to this Add-On Instruction with
the inclusion of definition specific fields:
‘InOut’ A parameter which is passed ‘by reference’ to the instruction (any data type including UDTs,
arrays, etc.)
‘Default’ allows the user to specify a default value for the associated parameter. This is the value the
parameter assumes when the instance tag for an instruction call is first created.
‘Req’ - A parameter which has been checked as ‘Required’ will force the user to enter a tag or make a FB
(Function Block) connection to this parameter when an instruction instance is used in a routine. This modifier
defines verification behavior in the languages as will be seen later. A ‘Required’ parameter is also ‘Visible’ by
default.
‘Vis’ - A parameter which has been checked as ‘Visible’ will be visible by default on the instruction when it is
used in a routine. Use of this modifier causes differing results depending upon the data type and the
language (LD, FB, ST, SFC) in which an instruction instance is used.
‘Description’ field is important because any information used here will be ‘passed through’ to any instruction
instance of the user program. This ‘self-documents’ the instruction for usage, units, etc.
‘External Access’ field determines whether the are Read/Write, Read Only, or no access (None) from
external applications such as HMI.
‘Can Be Null’ field was introduced in version 33. It allows an InOut parameter to be substituted in the
instance of the AOI with ‘0’ (no need to specify a tag, which is normally mandatory for the InOut parameter).
We will be copying and pasting code from an existing routine for this lab, but we need to create some new tags first.
Note: Parameters are Input, Output, and InOut tags only. Local tags are entered on a separate tab. Click
the Apply button to accept changes.
17. Click the Local Tags tab and enter the tags as shown.
20. From the Controller organizer locate the C_Start_Stop routine and double-click it to open it.
21. From the toolbar menu select Edit> Select All. This will select all the rungs in the routine.
23. Expand the Add-On Instructions folder if it is not already expanded in the Controller Organizer.
27. All the logic should now appear without any errors.
Note: Errors may occur if the tags were not typed in correctly in the definition of the AOI. A complete working
example is provided in the next step so don’t worry if errors exist at this point.
28. Close the file within Logix Designer using File Close. Respond with No if prompted to save the file.
29. Open AOI_Next.ACD located in C:\Lab Files\_2_Advanced Logix\Lab 08 AddOn Instructions folder.
This file has the completed Conveyor_Core AOI already completed for you. All three Routines that make up one
conveyor have been combined into one custom instruction.
30. Under AssetsAdd-On Instructions, expand the Conveyor_Core AOI until you can see
the Parameters and Local Tags.
This will open the definition so you can see all the tags that are now part of the instruction’s definition.
33. Notice which ones are marked REQ and VIS. This will determine how the instruction looks and acts once we
place it in an application.
You may want to make the Add-On Instruction Definition window larger for easier viewing.
35. You should see ten rungs (0-9) total in the AOI.
36. In the MainTask, open the Conveyor_1 routine located in the Conveyor program.
37. You should see a blank rung that we can add the AOI to.
38. Select the Add-On tab and then click the Conveyor button.
AOI tag structure: At this point the instruction behaves like any other Logix Designer instruction. It has inputs
and outputs that need to be defined and other parameters that need to be filled in – just like a Timer does.
The parameters with a single question mark (?) after them require a tag name to be entered. The parameters
with a double question mark (??) after them are tag value fields. These fields show the current values of
those parameters.
Data Type is Conveyor_Core. This is what we named our AOI. This follows the same conventions as any
other built in instruction in Logix. If this were a TON instruction, the Data Type would be Timer.
44. Double-click on the Motor_Overload_Input question mark and select Local:3:I.Pt[0].Data as shown:
45. Do the same for the rest of the AOI inputs, selecting the next sequential input points for each input in the
instruction, until all the question marks are gone.
48. Click on the Motor_Overload_Input operand and type My_Motor_Overload. After you accept it you should
see question marks for the value because the entered tag name does not exist yet.
49. Right-click on the new tag name and select New “My_Motor_Overload”.
50. Fill in the dialog as shown. Make sure you fill in the Alias For: as shown by using the pull-down menu and
selecting the correct I/O point.
51. Click Create to accept it. The instruction should now have your Alias filled in.
52. On the next rung below the AOI, create the logic pictured below to demonstrate how to access non-visible
tags from an AOI programmatically.
How do you know what the internal elements are named? The AOI follows the same conventions that any other instruction
does.
Tag Name
Parameter
53. Create a new routine named Conveyor_2 by right-clicking on the Conveyor program and then selecting
Add New Routine.
54. Fill out the dialog as shown specifying Function Block Diagram as the Type: and click OK button when
you are finished.
Note, the pins associated with parameters designated as Visible in the instruction definition are visible on the instruction by
default.
The data tag for the instruction Conveyor_Core_01 has already been created. This conforms to the behavior of any
instruction created in the function block environment.
The nubs on the input pins is an indication that this parameter requires a connection. The instruction will not successfully
verify until all “Required” parameters have connections.
57. Click the Input Reference (IREF) button six times as the AOI requires six inputs.
58. Drag the IREF’s to align roughly with the AOI inputs on the sheet and wire them to the
Motor_Overload_Input connectors.
59. Select the addresses for all the IREF’s as shown below for the required input points.
You could use an Alias here just like we did for the ladder instruction.
60. The instruction will now verify. Notice the “x” is gone from the upper left corner.
61. Continue working with AOI_Next.ACD file (this should be the file that you currently have open).
62. From the controller organizer in our Conveyor application, right-click on the Conveyor_Core AOI and select
Copy.
63. Open a second instance of Studio 5000 Logix Designer using the shortcut for Studio 5000 Logix Designer
64. Create a new project file by selecting New Project from the Launcher page.
Note: If you select Paste the copy may fail. “Paste With Configuration” opens the Partial Import Online
(PIO) dialog window which is different than just a Paste.
73. Close this instance of Logix Designer. Respond with No if prompted to save the file.
AOI Signatures allows the application developer to monitor changes to an AOI. The AOI signature value can be monitored to
record “version” of AOI that was created. Users can view AOIs with Signatures, but they will need to remove the Signature to edit
the AOI. Signatures will also need to be removed and reapplied when the Major revision of a project has changed.
Applying Signatures
Before we export the Conveyor_Core AOI, we will apply a signature to it. Then we will import it into a new ACD file.
75. In the Controller Organizer, navigate to the Conveyor_Core AOI. Double-click on the AOI to display its
properties. Navigate to the Signature tab, shown below.
AOIs with signatures cannot be modified. The AOI signature will need to be removed before the AOI can
be modified. There is no security associated with removing AOI signatures, so anyone can remove the
signature and change the AOI. But, if a new AOI signature is created it will not match the original
signature.
80. In the Controller Organizer, the icon for the Conveyor_Core AOI has now changed since a signature has
been added. The blue dot in the icon indicates that the AOI has a signature.
81. In the Controller Organizer, right-click the Conveyor_Core AOI and select Export Add-On Instruction… .
83. Set the window to save to C:\Lab Files\_2_Advanced Logix\Lab 08 AddOn Instructions AOI.
The Include all referenced Add-On Instructions and User-Defined Types checkbox in the Export AOI dialog box is
checked by default.
86. Create a new project file by selecting New Project from the Launcher page.
87. Select a Logix Controller. For this example, we selected a 1756-L85E. Enter the name AOI_LAB2.
89. Select Revision 32 of Logix Designer and click Finish. It may take a moment for Logix Designer to open.
91. Browse to Conveyor_Core.L5X file that you created above and click Open.
92. This will bring up the Partial Import Online (PIO) dialog box. Our operation is to create a new AOI in this new
application.
94. Now you can view the imported AOI in the new Logix Designer application.
96. Close both instances of Logix Designer using File Close. Respond with No if prompted to save the file.
Lab Summary
This lab shows that with Add-On Instructions, you can generate code in hours versus days. When you use
code segments repeatedly, you can simply place an AOI in your program instead of re-generating the code
again and again. We saw that we can develop complex code segments and ship them to customers that
need. We can apply signatures to AOIs that will allow customers to view and change the code inside, but
give us indication that something has changed.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
Important! The actions described in this lab section cannot be completed when working with physical
controller in remote location (e.g. onCourse with cloud hardware). This is because the section of the lab
would require you to physically interact with the SD card that is local to the remote controller.
This lab section can be completed when working with emulator (FactoryTalk Logix Echo).
If you are still interested in learning about how you can use a local SD card with a Logix controller, please
feel free to read through this lab section.
All Logix Controllers have a SD card slot designed to read and write data to a SD card. This allows critical process data or
recipes to be saved external to the memory of the controller. Custom message instructions are used to do file operations on the
SD card. The messages are used to create, write, read, and delete both files and directories on the SD card.
When working with local physical controller, request an instructor to load the SD card before starting the lab.
When working with emulator (FactoryTalk Logix Echo), the contents of the emulated SD card can be
accessed from the FactoryTalk Logix Echo Dashboard:
Start FactoryTalk Logix Echo Dashboard by double-clicking the desktop shortcut or Start menu item
Right-click the emulated controller in slot 0 – [00] CLX5580_slot00 Select View SD Card
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 09 Using a SD card with a Logix Controller and
double-click the project named SD_Read_Write.ACD to open it in Logix Designer.
3. Once open, select COMMUNICATIONSWho Active, expand the AB_ETHIP-1 driver and select the
controller with IP address 192.168.1.20.
Depending on your lab setup, the controller could be either a physical ControlLogix 5580 controller,
or ControlLogix 5580 Emulator (FactoryTalk Logix Echo).
4. Select Download and acknowledge any other windows to start the download.
5. Put the controller into RUN mode by selecting Yes in the window.
Note: SD card Logix functions are the same as the CompactFlash function(s) used in prior Logix controllers.
Note: All of the current Logix controllers use SD cards. An SD card comes shipped with every controller.
Note: Screen captures shown in this manual may differ slightly from what you seen when in your lab
instance. This is expected.
8. In CF_RW_functions.command member, set it to a value of 8. After the number is entered, press Enter on
the keyboard. This completes the write to the controller tag. It will disappear immediately .
9. Look at the value of CF_RW_Functions.result. When positive, it displays the number of files found. When
negative, an error has occurred performing an operation.
Note: You may have more or less files on your SD card than the number shown. If you have an issue that
results in a negative error value, please alert the instructor.
Note: The .command field clears automatically. You may have different or additional files on your SD card.
The 8 function is a list command. It is equivalent to a DOS ‘dir’ or Unix ‘s’ command. It lists all files and
directories. Using the ‘name’ member, you can search for specific file or directories. Simply set the tag
‘name’ to *o* and it will display all files with an ‘o’ in the name.
11. Enter a 1 in the command member. It will disappear and so will result and string values.
The 1 function is a clear command. It clears all values for arrays used to message the controller. It does not
send any messages to perform SD card operations.
You may need to expand the Value column in the tag browser to see the file attributes.
The ‘9’ function is useful for viewing files and their attributes including size.
13. Enter a 10 in the command member. It will disappear, and in the ‘string’ values, we see the list of
directories on the SD card.
14. Enter the text NewDirectory in the CF_RW_functions.name member (Click the browse button on the left
side of the field to bring up the string editor).
15. Set the Command value to 7. You have now created a directory called ‘NewDirectory’. To verify and see
this result, set the Command to 1 and then set Command to 10.
17. Set the Name member to mistake.tx. Set the REQ_Length to 235.
20. To verify this result set Command to 1 then to 8. You will see mistake.tx in list of files on the SD card.
21. Now we will rename this file since we have a mistake in the file extension. Set name member to mistake.tx.
Set the newname member to correctedmistake.txt.
24. To delete the file, Set Name member to correctedmistake.txt and Set the Command to 5.
25. Check the result and see that the file was deleted from the SD card. Set Command to 1 then to 8.
Now you will read data from the SD card and compare to how the file looks on a PC.
26. Fivek.txt is a repeating pattern of the alphabet. You can view the file in notepad by browsing to C:\Lab
Files\_2_Advanced Logix\Lab 09 Using a SD card with a Logix Controller\Files to be placed on SD
folder in windows explorer.
If using emulator (FactoryTalk Logix Echo), you can also review the file directly in the folder representing the
emulated SD card (as mentioned earlier at the beginning of the Lab)
27. Navigate to Studio 5000 Logix Designer and the controller tags window.
28. Set Name member to fivek.txt. Set REQ_Length member to 200 and the Command to 2.
29. Expand the CF_RW_functions.data array. If needed, set the Style to ASCII (ifnot already) of
CF_RW_functions.data array. Compare this to the data we see in Notepad.
31. Array elements 7-9 are now ‘X’, ’$r’, and ‘$I’. In Notepad, this corresponds to the end of the tenth line,
where control characters represent Carriage Return and Line Feed. The offset is the number of bytes from
the start of the file, where the code starts to read. Since all the lines in the text file are exactly 100
characters, that means just before the end of the tenth line.
32. In Studio 5000 Logix Designer, expand the Check_CFcode program and double-click to monitor the
Parameters and Local Tags.
33. Expand the active_recipe tag. You can leave the names or values provided or change them as you desire.
Note: Names and values where already populated. You can change them to verify that then are loaded on
the SD card in a later step.
34. Open the recipe_handling routine and trigger rung 0 (toggle the bit store_recipe2recipe1). It will
immediately reset back to 0.
35. Switch back to Controller Tags (CTRL+Tab) or double-click Controller Tags again to see that DN_Length
and Result are both equal to 216.
37. Open the recipe_handling routine and trigger rung 2 (toggle the bit load_recipe_from_recipe1).
38. Check the values by double-clicking on Parameters and Local Tags. The values were read back from the
recipe 1 file. The value will return to the original recipe values for Beer.
39. Open the Recipe_Handling routine and trigger rung 1 (toggle the bit store_recipe2recipe2).
41. Two extra files called recipe1 and recipe 2 have been created on the SD card.
Use of an industrial SD card is recommended (part number 1784-SD1; 1GB capacity or 1784-SD2; 2GB
capacity) for reading and writing data. One must make sure the card is formatted correctly to accept file reads
and writes. This open interface to read and write data provides the user a number ways in which to use this
feature.
Warning: The life expectancy of flash media is strongly dependent on the number of write cycles that are
performed. Even though flash media controllers use wear leveling, users should prevent frequent writes. This
is particularly important when logging data. The best approach is to log data to a buffer and write that buffer
data to the SD card.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
Important! Some of the actions described in this lab section cannot completed when working with
physical controller in remote location (e.g. onCourse with cloud hardware).
This lab section can be completed when working with emulator (FactoryTalk Logix Echo).
If you are still interested in learning about the Controller Change Log features, please feel free to read
through this lab section.
The Controller Change Logging feature allows a developer to implement controller level change management. A probable
scenario for implementation is for a machine developer, such as an OEM, who would like to understand what controller changes
occurred with a machine that has been put into service for a customer. To view the diagnostic information in the log file a user
removes the SD card then uses a SD card reader to view a log file in TSV (Tab Separated Variable) format on a PC.
The changes are logged to internal memory and include:
Download
Online edits occurred
Forces enabled/disabled
Mode changes (Program, Run)
Major faults
And more….
The Logix Controller will temporarily store up to 100 log entries in its internal memory which is separate from the user (Studio
5000 Logix Designer project) memory. When the Log file is 80% full in the controller, it can automatically write to a file on a SD
card or a user can force a write to the SD card using a message instruction. In the event of a power loss (without battery backup)
or a controller firmware update, the log files in the controller memory are erased.
In this section, you will view sample code that is provided as a resource with the Studio 5000 Logix Designer to develop an
understanding of how change management is configured.
When working with emulator (FactoryTalk Logix Echo), the contents of the emulated SD card can be
accessed from the FactoryTalk Logix Echo Dashboard:
Start FactoryTalk Logix Echo Dashboard by double-clicking the desktop shortcut or Start menu item
Right-click the emulated controller in slot 0 – [00] CLX5580_slot00 Select View SD Card
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 10 Controller Change Log and double-click the project
named Controller_Log.ACD to open it in Logix Designer.
You can find the project in this directory.
4. Select Download and acknowledge any other windows to start the download.
5. Put the controller into RUN mode by selecting Yes in the window.
6. Expand the Tasks folder in the Controller Organizer of the project tree to reveal the following
MainProgram and its associated routines.
9. Toggle the START bit by right-clicking the XIC and selecting Toggle Bit or select the XIC and press Ctrl-T
on rung 1. This starts the initialization routine preconfigured in the code that configures message
instructions for the proper slot number of the controller. This will ensure that all of the message instructions
will have the correct path.
10. Double-click to open the Counters routine. Each rung has a different Get System Value (GSV) or Set
System Value (SSV) associated with the Controller logging. Each of the GSV instructions works as
described below.
ControllerLogTotalEntryCount Number of entries added to the log since the last time the value
was reset.
ControllerLogUnsavedEntryCount Number of entries in the controller RAM not yet written to the SD
card.
Rungs 4 and 5 in the Counters routine allow us to programmatically set or reset the Modify execution Count
and Total Entry Count values via Set System Value (SSV) instructions.
11. Turn the controller key switch on the demo box to PROG (Program) mode. Now turn the key switch all the
way to RUN and then to REM (Remote), putting the controller in Remote Run mode. The
ControllerLogTotalEntryCount in Rung 1 is incremented by 2, because the change to Program mode is
logged and then change to Run mode is logged.
12. Leave the controller in Run mode and in the MainRoutine, toggle the START bit in rung 1 again.
Note: You will have to toggle each of the bits in the following steps to enable each Controller Log function.
Note: The WriteLog message will error out if no SD card exists in the controller.
14. Rung 2 is a message that can be used to turn on and off the automatic write to a SD card. Rung 3 is a GSV
that reads that status back. By setting the controller to Automatically Write Entries to the SD card, at 80% of
the controller’s internal memory the log entries will be automatically be copied to the SD card.
Using the MSG instruction to read back the results of a MSG to set a value is good programming practice. It
allows you to see that your configuration message was received.
15. Rungs 7 and 8 are to configure a custom log entry. In addition to the default types of changes that will be
logged automatically, a user is able to configure custom messages to be logged. In this case, Rung 7
triggers the CustomEntryFormatting subroutine which populates a tolerance value into a string. Rung 8 is
used to message the formatted string structure to the controller to be placed into the log file.
16. Custom Entry Logging will allow a user to setup a number of different entries to be triggered in the user
program. Parameter changes, I/O state changes, or custom process related alerts are examples of log
entries that could be useful to a programmer to troubleshoot or track important information for a system. The
log entries are limited to the ideas of the programmer.
17. Toggle the SendCustom bit by right-clicking the XIC and selecting Toggle Bit or select the XIC and press
Ctrl-T on Rung 8.
18. Open the MSG properties by clicking the ellipsis button on rung 8.
Note: CompactLogix controllers are always in slot 0, so if we were using CompactLogix controller, the path to
a would be always 1,0
All of the message instructions were setup by the program when we set the Start bit in the MainRoutine. If we
want to configure a message to point at a specific controller, then select the browse button and point it to our
controller.
This example will write to the controller log whenever there is an unsaved entry. With some simple rungs of
code, you can have a log created that saved to the SD card!
24. Right click and open the file ControllerLog_000.txt and/or the ControllerLogSampleExcel.xlsx file
contained in C:\Lab Files\_2_Advanced Logix\Lab 10 Controller Change Log folder.
Important! As mentioned at the beginning of this section, when working with physical controller, you may
not be able to retrieve the SD card from the controller and read it with the lab computer.
The files provided are replicas of what you might find after making the changes performed in the lab.
When working with emulator (FactoryTalk Logix Echo), the contents of the emulated SD card can be
accessed from the FactoryTalk Logix Echo Dashboard, as already explained in the introduction to this Lab.
The folder contains an example of a .TXT file (ControllerLog_000.TXT) and a sample excel file
(ControllerLogSampleExcel.xlsx)..
The top-left corner specifies the type of file, date of file, type of controller, serial number, and firmware revision of the
controller.
In each controller log entry, a sequential record number and time are recorded. An entry description details what
occurred. A windows PC username is associated with the workstation that the changes were made from. If the plant
software is using a FactoryTalk application, then a logged in FactoryTalk user is also tied to the change. Finally, any
extended information like the tolerance values for our custom machine out of tolerance message are shown.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
Integrated Drive Profiles are designed to save system development time and to make systems easier to maintain.
Testing of skilled engineers configuring drives in a timed, side-by-side comparison, Integrated Drive Profiles in RSLogix 5000
and Studio 5000 Logix Designer software can reduce drive system development time by as much as 70% compared to traditional
configuration.
This is achieved by:
Providing one software tool to configure the entire controller and drive system.
Configuring both controller and drive network connections from a single location – eliminating I/O mismatch errors.
Allowing the dynamic selection of drive parameters transmitted as network I/O – communicating only what is needed
for the application.
Auto-generating descriptive tag names – eliminating the need to enter individual tag descriptions.
Auto-generating respective tag data types – eliminating the need to convert from one data type to another.
Saving all drive configurations in the project file and in the controller – providing a single source of drive configuration
data.
Providing Copy & Paste capability when creating additional duplicate drives – reduces errors in configuration with
systems containing multiple identical drives.
Using the same easy-to-use drive configuration Wizards in the Connected Components Workbench, DriveTools SP,
and DriveExplorer software packages.
Systems using the Integrated Drive Profiles in RSLogix 5000 and Studio 5000 Logix Designer software are also easier to
maintain:
Drive diagnostics, faults, alarms and event information is integral to RSLogix 5000 and Studio 5000 Logix Designer
software.
Drive Tech Support Wizard can be run from RSLogix 5000 and Studio 5000 Logix Designer software to collect all
pertinent information about a drive, its peripherals, various software components, and PC operating system.
Drives can be flash updated from RSLogix 5000 and Studio 5000 Logix Designer software.
Having a single repository of drive configuration data in the controller project file reduces downtime by speeding drive
replacement.
Integrated Drive Profiles are "Add-On Profiles", independent of particular releases of RSLogix 5000 and Studio 5000 Logix
Designer software. Many are backward compatible to work with previous versions of the programming software as well, helping
to prevent obsolescence of the controller when newer drives are available.
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 11 Drives Integration into Logix Controller and
ouble-click the project named PowerFlex_Lab.ACD to open it in Logix Designer.
A pre-configured Studio 5000 Logix Designer software project has already been created for your convenience. The file will
be opened in the Logix Designer software after a few moments.
3. In the Controller Organizer, scroll down to the I/O Configuration section shown in the graphic below.
Open the Module Properties window for the drive by double-clicking
on the “PowerFlex 525-EENET PF525_Drive”.
One additional feature in Logix Designer is for setting up Automatic Device Configuration (ADC) for the drive.
The Add-On Profile for the PowerFlex 755 drive in the Logix Designer software provides a common look-and-feel to the
Connected Components Workbench software. This provides the same ability to upload, download, view, and compare drive
parameters, as well as access the Wizards. One additional feature in Logix Designer is for setting up Automatic Device
Configuration (ADC) for the drive.
7. The tools for the PowerFlex 755 are functionally grouped by category as shown below:
Within the Module Definition window, you can perform the following actions:
Set the Revision of the drive firmware, and set the Electronic Keying
Select the Drive Rating, Rating Options, and Drive Type
Create database files from the online drive or download database files from the web
Configure the input and output datalinks
Your window may be different from pictured image as demo boxes vary.
11. Click on ‘Connection Format’ to view/edit the input and output datalinks configured for the drive.
13. Create the contextual menu by right-clicking on the device and select “Copy”.
14. Select the Ethernet network and right-click to show the network menu. Select “Paste” from the list.
15. The new drive will appear. It will not have a valid IP address, but the name will be an incremented value of
the original drive.
Where do you think the drive configuration data gets stored? The drive configuration data for each node is
actually stored in your Logix Designer project! It also resides in the controller after the project is downloaded.
This provides a convenient local resource for a node’s configuration settings if the drive needs replaced. Just
connect to the controller, open the drive’s AOP, and download the configuration!
17. Find the tag for “PF525_Drive1:I” and expand it by clicking on the [+] next to the name. It may help to
change the width of the “Name” and “Value” columns to view the tag names and values more easily.
Descriptive tag names have been created for the configured drive, based on the module definition. The Drive Status bits
(BOOLs) are clearly defined as well as the “OutputFreq” and “OutputCurrent” (defined as one of the Input Datalinks). Note
that the proper data types are automatically used for every tag.
Descriptive tag names have been created for the drive again. The Logic Command bits (BOOLs) are clearly defined as well
as the “FreqCommand” value for applying a reference to the drive. The proper data types are automatically used for every
tag.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will introduce you to features that were introduced in versions 32 and 33 of Studio 5000® Logix Designer.
Goals:
Highlight new extended data types introduced in version 32 of Studio 5000 Logix Designer. These data types are
o UNSIGNED SHORT INTEGER (USINT)
o UNSIGNED DOUBLE INTEGER (UDINT)
o UNSIGNED INTEGER (UINT)
o UNSIGNED LONG INTEGER (ULINT)
o LONG REAL NUMBER (LREAL)
Note that
o These data types are only supported in the 5580, 5480 and 5380 family of controllers.
o Version 32 have limited 64-bit instruction support these new data types can only be used with compare,
compute and math instruction in version 32.
Highlight additional 64-bit instruction support added in version 33; move, logical and advanced math. In both Ladder
and Function Blocks (FBD).
The 64-bit math capabilities and extended data types enable more precise values in large calculations that no longer
require any user manipulation when dealing with extreme values. Large calculations, precision motion values, etc. are
now easier to define and calculate.
Highlight the ability to calculate more precise values with higher resolution.
Demonstrate increased flexibility to comply with open/third-party communications standards (e.g. HART)
In this sub section you will learn about new data types and instruction enhancements that were introduced in version 32 and
further developed with version 33.
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 12 Extended Data Types 64 Bit Math and open the
project named ExtendedDataTypes_64BitMath.ACD.
3. Once open, select COMMUNICATIONSWho Active, expand the AB_ETHIP-1 driver and select the
controller with IP address 192.168.1.20.
Depending on your lab setup, the controller could be either a physical ControlLogix 5580 controller,
or ControlLogix 5580 Emulator (FactoryTalk Logix Echo).
4. Select Download and acknowledge any other windows to start the download.
5. Put the controller into RUN mode by selecting Yes in the window.
7. Look at and compare the ranges between the NEW data types and the original data types. The ranges are
listed in the Tag descriptions as well as the supported controllers and version introduction.
9. In the Controller Organizer Double-Click on FunctionBlock_64BitMath to open the FBD routine. These
simple Function Blocks illustrate how you can take advantage of the new features to calculate more precise
values with higher resolution. Note all variables used are LREALs.
Notice the red arrow pointing to the Xf function and MUL instruction. Both blocks behave identically but the
new Xf (multiply) function occupies less physical space in the diagram and uses less controller memory.
This is another new feature introduced in V32 and enhanced in V33. There are several other similar
instructions like the Xf covering the most frequent mathematical operations. For full list of functions and
further details see subsection 1.2 Function Block Diagram (FBD) Enhancements of Lab 1.
11. Close Studio 5000 Logix Designer. If prompted to save the file respond with No.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will introduce some of the features and functionality recently introduced in Studio 5000® Logix Designer related to
Highly Integrated HART (HIH).
New features:
HIH is available in V32.02 and V33 of Studio 5000 Logix Designer.
HIH enables a smoother workflow using fewer software tools.
Ability to add a specific HART device directly to a channel of your 5094 HART module.
Allows users to directly browse to HART devices in the I/O tree.
Ability to directly get a HART device connection fault from I/O tree feedback.
Currently only available when using the 5094 I/O platform.
In this section you will be introduced to enhancements that improve the use of HART devices.
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 13 Highly Integrated HART and open the project
named HighlyIntegrated_HART.ACD.
4. Right Click on the HART network under the 5094-IF8IH and select New Module….
9. Right Click on the Rosemount_3095C device in the I/O tree and select Properties.
12. Scroll through the Available Commands. These are optional data points that can be configured in Studio
5000 that are specific to the exact HART device chosen. When these are added to the device’s
configuration they will automatically be returned by the HART device and placed in additionally created Input
tags with matching nomenclature. Use of these commands can greatly simplify your programming.
14. Close Studio 5000 Logix Designer. If prompted to save the file respond with No.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section will introduce some of the features and functionality recently introduced in Studio 5000® Logix Designer V33 related
to Automatic Hardware Diagnostics. To take advantage of all features you also need Factory Talk View SE V12.
Details:
Automatically create device diagnostic information between your Logix Designer program and your Factory Talk View
SE project.
Access of display and diagnostic information without additional programming that can automatically be displayed on
your HMI.
Diagnostic information automatically created for all devices in the I/O tree.
Factory Talk View SE will automatically be populated with device diagnostics events.
Available in the 5580, 5540 and 5530 family of controllers.
Supported by 1756, 5094, 1794 I/O platforms along with E300 overloads.
2. Navigate to C:\Lab Files\_2_Advanced Logix\Lab 14 Automatic Diagnostics and open the video file
named Automatic Diagnostics Demo.mp4.
Congratulations!
You have just finished this Lab
Click to Proceed to Contents
This section is not a “Lab” in that the exercises are not step-by-step. For most exercises, a Knowledgebase/Answer ID is
provided to act as the guide. Solution files and/or screenshots are included if needed.
Important! This exercise cannot be completed when working with emulated controller (FactoryTalk Logix
Echo), because the emulator does not support Socket Object (yet).
The application file and web application were adapted from QA1492 – 1756-EWEB Open Sockets Server Application sample
(local copy can be found in C:\Lab Files\_2_Advanced Logix\UnguidedExercises\SocketComms\References as
QA1492.mhtml). Once downloaded, toggle Next_Write[0] on Rung 5 (MainTask->MainProgram->RW_Messages)and note
the behavior in the EWEB Sockets Test Application window.
This exercise was primarily for awareness of ethernet socket communication capability of Logix controllers. Ethernet sockets
have many different uses and there are several examples (QA6396 – Example Add On Instructions for Sockets,
QA1185 – Sample Application for Ethernet module Sockets Feature) that can be customized to suit your application needs.