Sunteți pe pagina 1din 376

RSLogix 5000

Level 3: Project
Development

Student Manual

Important User Information


This documentation, whether, illustrative, printed, online or electronic (hereinafter Documentation) is intended for
use only as a learning aid when using Rockwell Automation approved demonstration hardware, software and firmware.
The Documentation should only be used as a learning tool by qualified professionals.
The variety of uses for the hardware, software and firmware (hereinafter Products) described in this Documentation,
mandates that those responsible for the application and use of those Products must satisfy themselves that all necessary
steps have been taken to ensure that each application and actual use meets all performance and safety requirements,
including any applicable laws, regulations, codes and standards in addition to any applicable technical documents.
In no event will Rockwell Automation, Inc., or any of its affiliate or subsidiary companies (hereinafter Rockwell
Automation) be responsible or liable for any indirect or consequential damages resulting from the use or application of
the Products described in this Documentation. Rockwell Automation does not assume responsibility or liability for
damages of any kind based on the alleged use of, or reliance on, this Documentation.
No patent liability is assumed by Rockwell Automation with respect to use of information, circuits, equipment, or
software described in the Documentation.
Except as specifically agreed in writing as part of a maintenance or support contract, equipment users are responsible for:

properly using, calibrating, operating, monitoring and maintaining all Products consistent with all Rockwell
Automation or third--party provided instructions, warnings, recommendations and documentation;

ensuring that only properly trained personnel use, operate and maintain the Products at all times;
staying informed of all Product updates and alerts and implementing all updates and fixes; and
all other factors affecting the Products that are outside of the direct control of Rockwell Automation.
Reproduction of the contents of the Documentation, in whole or in part, without written permission of Rockwell
Automation is prohibited.
Throughout this manual we use the following notes to make you aware of safety considerations:
Identifies information about practices or circumstances
that can cause an explosion in a hazardous environment,
which may lead to personal injury or death, property
damage, or economic loss.

Identifies information that is critical for successful


application and understanding of the product.

Identifies information about practices or circumstances


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

Important User Information


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.

Comment Form

Email: ratps@ra.rockwell.com
or Fax:

440.646.4425

Page 1 of
Date:

Contact Information:
Name:
Company and Location:
Phone:

Email:

Comments (include lesson title, if applicable):


Course or Product Name (Important):

Page 2

Table of Contents

Introduction
Course Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Course Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Who Should Attend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Meeting Course Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Student Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hands-On Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Certificate Candidates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration and Programming Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ControlLogix/RSLogix 5000 Curriculum Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I
I
I
II
II
III
IV
IV
IV
V
V

Lessons
Updating Logix5000 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Updating Module Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercise: Updating Logix5000 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Creating and Organizing a New RSLogix 5000 Project . . . . . . . . . . . . . . . . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Project Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Default Project Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a New Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Continuous Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Watchdog Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1- 1
1--1
1--1
1--1
1--1
1--1
1--3
1--3

1- 5
1--5
1--6
1--8
1--8

2- 1
2--1
2--1
2--1
2--1
2--1
2--2
2--2
2--3
2--3

ii

Table of Contents

Inhibited Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adjusting a Program Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actual Program Scan Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Overhead Timeslice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Asynchronous Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Project Organization Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Project Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verifying Tasks, Programs, and Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--4
2--4
2--5
2--5
2--6
2--8
2--8
2--9
2--10
2--11
2--11
2--12
2--12
2--13
2--13

Exercise: Creating and Organizing a New RSLogix 5000 Project . . . . . . . . . . . . . . . 2- 15


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Creating a Periodic Task in an RSLogix 5000 Project . . . . . . . . . . . . . . . . . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Task Type Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Periodic Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Periodic Task Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Project Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Periodic Task Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scan Time Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Periodic Task Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Periodic Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Periodic Task and Continuous Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Multiple Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Equal Priorities (Timeslicing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2--15
2--17
2--18
2--18

3- 1
3--1
3--1
3--1
3--1
3--2
3--2
3--3
3--4
3--4
3--5
3--6
3--6
3--6
3--7
3--7
3--7
3--8
3--8
3--9
3--9

Table of Contents

iii

Exercise: Creating a Periodic Task in an RSLogix 5000 Project . . . . . . . . . . . . . . . . 3- 11


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Organizing Data in an RSLogix 5000 Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Controller Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Memory Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tag Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tag Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining an Alias Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produced and Consumed Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating an Array of Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Array Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Three Dimensional Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Array Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Numeric Element Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Numeric Element Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Numeric Element Addressing for Multiple Dimensions . . . . . . . . . . . . . . . . . . . . . . .
Variable Element Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Variable Element Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Numeric Bit Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Numeric Bit Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variable Bit Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Variable Bit Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Array Addressing Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verifying Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitoring and Editing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitor Tags Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tags and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitoring and Editing Tag Values through a Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Ladder Logic Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Function Block Diagram Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitoring and Editing Tag Values in the Watch Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3--11
3--12
3--14
3--14

4- 1
4--1
4--1
4--1
4--1
4--2
4--3
4--4
4--4
4--5
4--5
4--5
4--6
4--6
4--7
4--7
4--8
4--8
4--9
4--9
4--9
4--9
4--10
4--10
4--10
4--10
4--11
4--11
4--11
4--11
4--11
4--12
4--12
4--12
4--12
4--13
4--13
4--14
4--15

iv

Table of Contents

Quick Watch Tag Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Persistent Quick Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitor Data in RSLinx Classic Professional Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Your Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Access Control Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Your Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4--15
4--16
4--17
4--17
4--17
4--17
4--18
4--18
4--18

Exercise: Organizing Data in an RSLogix 5000 Project . . . . . . . . . . . . . . . . . . . . . . 4- 19


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Creating a User-Defined Data Type in an RSLogix 5000 Project . . . . . . . . . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a User-Defined Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: User-Defined Data Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Arrays and User-Defined Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User-Defined Data Type Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User-Defined Data Type Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examples: User-Defined Data Type Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting and Importing User-Defined Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project . . . . . . . .


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ASCII Mnemonic Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4--19
4--21
4--21
4--21
4--22
4--22
4--25

5- 1
5--1
5--1
5--1
5--1
5--2
5--3
5--3
5--3
5--3
5--4
5--5
5--5

5- 7
5--7
5--9
5--10
5--10

6- 1
6--1
6--1
6--1
6--2

Table of Contents

Configuring Ladder Logic Quick Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Copying and Reusing Ladder Logic Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Copied Ladder Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Other Short-Cuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verifying a Project or a Project Component Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Online Safety Warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Performing Online Ladder Logic Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Finalize Edits Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Edit Zone Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Online Editing in a Multiple-User Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6--2
6--2
6--3
6--4
6--4
6--4
6--5
6--6
6--7
6--8
6--9
6--9

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project 6- 11
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Communicating with a Local 1756-I/O Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Electronic Keying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Exact Match Keying Prevents Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Compatible Keying Prevents Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Compatible Keying Allows Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Disabled Keying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Asynchronous I/O Update Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Digital Module Multicasting Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPI (Requested Packet Interval) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
COS (Change of State) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: RPI and COS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analog Module Multicasting Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RTS (Real Time Sampling Rate) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Output States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagnostic Latching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6--11
6--13
6--14
6--14

7- 1
7--1
7--1
7--1
7--1
7--2
7--2
7--3
7--3
7--4
7--4
7--4
7--4
7--5
7--5
7--5
7--6
7--6
7--7
7--8
7--9
7--10

Exercise: Communicating with a Local 1756-I/O Module . . . . . . . . . . . . . . . . . . . . . 7- 11


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7--11
7--13

vi

Table of Contents

Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Configuring a Logix5000 Controller to Produce and Consume Data . . . . . . . . . . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scheduled Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produced and Consumed Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produced and Consumed Tag Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Produced Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding a Controller to an I/O Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Consumed Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tag Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produced and Consumed Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produced Tag Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Produce/Consume Tag RPI Limits Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7--14
7--14

8- 1
8--1
8--1
8--1
8--1
8--2
8--2
8--3
8--4
8--4
8--6
8--7
8--7
8--8
8--10
8--10

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data . . . . . 8- 11


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network . . . .


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EtherNet/IP Network Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Overview of IP Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Private IP Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Subnets and Subnet Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How a Subnet Mask Operates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration Overview and Software Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding an EtherNet/IP Module and Controller to an I/O Configuration . . . . . . . . . . . . . . . . . . .
Produced and Consumed Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8--11
8--13
8--13
8--14
8--16
8--16
8--18

9- 1
9--1
9--1
9--1
9--1
9--2
9--3
9--3
9--4
9--4
9--5
9--6
9--6
9--6
9--7
9--7

Table of Contents

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP


Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vii

9- 9
9--9
9--11
9--12
9--12

Communicating with a 1756-I/O Module over an EtherNet/IP Network . . . . . . . . . . . 10- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Effect of RPI on EtherNet/IP Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Effect of RPI on EtherNet/IP Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Communications Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: No Rack Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Rack--optimized Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10--1
10--1
10--1
10--1
10--1
10--2
10--2
10--2
10--3
10--4

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network . . . . 10- 5


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10--5
10--6
10--8
10--8

Creating an Event Task in an RSLogix 5000 Project . . . . . . . . . . . . . . . . . . . . . . . . . 11- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Task Type Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event Task Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Project Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event Task Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consumed Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Input Data State Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1756 Local and Remote Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quick-Response Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Short-Duration Input Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronized-Execution Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Single Bit Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Input Data State Change -- Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . .
Automatic Output Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11--1
11--1
11--1
11--1
11--2
11--2
11--2
11--3
11--3
11--4
11--4
11--5
11--5
11--5
11--6
11--6
11--6
11--7
11--7

viii

Table of Contents

Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scan Time Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event Task Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Event Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IOT Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UID/UIE Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CPS Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11--8
11--9
11--9
11--9
11--10
11--10
11--11
11--12
11--12

Exercise: Creating an Event Task in an RSLogix 5000 Project . . . . . . . . . . . . . . . . . 11- 13


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11--13
11--13
11--14
11--16
11--16
11--18
11--20
11--20
11--21
11--23

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV


Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12- 1
What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitoring Controller System Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GSV/SSV Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Source or Destination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: GSV Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: SSV Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Status Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Controller Status Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arithmetic Status Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fault Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Non-Recoverable Major Fault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recoverable Major Fault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recoverable Major Fault Processing: Level 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fault Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Controller Fault Handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recoverable Major Fault Processing: Level 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12--1
12--1
12--1
12--1
12--2
12--2
12--2
12--2
12--3
12--4
12--5
12--5
12--6
12--6
12--6
12--7
12--7
12--8
12--8
12--8
12--9

Table of Contents

Multiple Recoverable Major Faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Common Major Faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minor Fault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ix

12--10
12--10
12--10
12--12
12--12

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV
Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12- 13
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12--13
12--14
12--14
12--15
12--15
12--17
12--18
12--18
12--19
12--22

Programming a BTD Instruction in an RSLogix 5000 Project . . . . . . . . . . . . . . . . . . 13- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
BTD Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Your Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13--1
13--1
13--1
13--3
13--3
13--3
13--4
13--4

Exercise: Programming a BTD Instruction in an RSLogix 5000 Project . . . . . . . . . . 13- 5


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Status Attribute for the Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13--5
13--5
13--6
13--8
13--8

Configuring a Logix5000 Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unscheduled Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Messages to Logix5000 Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Messages to Other Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuring a Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14--1
14--1
14--1
14--1
14--1
14--2
14--2

Table of Contents

Read, Write, and Block Transfer Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Creating and Entering a Numeric Communications Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CIP Generic Message Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14--3
14--4
14--4
14--5
14--6
14--6

Exercise: Configuring a Logix5000 Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14- 7


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14--7
14--9
14--9
14--11
14--12
14--12
14--14

Developing an Add-On Instruction in Ladder Diagram . . . . . . . . . . . . . . . . . . . . . . . 15- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add-On Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example of an Add-On Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
An Add-On Instruction Uses a Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Parts of the Definition of an Add-On Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Local Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routine Type Control Editable in AOI Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changes to the Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Add-On Instruction Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Planning the Parameters of an Add-On Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Your Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Language for the Logic Routine of the Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Organization of the Logic Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optional Scan Mode Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deciding If You Need an EnableInFalse Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Your Turn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Accessing Parameters via Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Editing an Add-On Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting and Importing an Add-On Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15--1
15--1
15--1
15--1
15--2
15--3
15--4
15--5
15--5
15--6
15--7
15--8
15--9
15--9
15--9
15--9
15--10
15--10
15--10
15--11
15--12
15--12
15--12
15--12
15--13
15--13
15--14
15--14

Table of Contents

Online Safety Warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Referenced Add--On Instructions and User-Defined Data Types . . . . . . . . . . . . . . . . . . . . . . .
Example: When Not To Include Referenced Add-On Instructions and User-Defined Data Types
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating an Add-On Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enter the General Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enter the Definition Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Create the Parameters and Local Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Looking for Previously Developed Add-On Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Search the Sample Code Library (samplecode.rockwellautomation.com) . . . . . . . . . . . . . . . . .
Example of Search Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Detect_Jam Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xi

15--15
15--16
15--16
15--16
15--17
15--17
15--17
15--18
15--18
15--19
15--19
15--19
15--19
15--20
15--20
15--20
15--20

Exercise: Developing an Add-On Instruction in Ladder Diagram . . . . . . . . . . . . . . . 15- 21


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15--21
15--22
15--23
15--23
15--24
15--27
15--27
15--28
15--30
15--30
15--31
15--31
15--31
15--31
15--33

Managing RSLogix 5000 Project Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
File Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting a .acd Project File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importing a .l5k Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importing a .l5x XML File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiple Backup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compare Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16--1
16--1
16--1
16--1
16--2
16--3
16--4
16--5
16--5

xii

Table of Contents

Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16--6
16--6

Exercise: Managing RSLogix 5000 Project Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 16- 7


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16--7
16--9
16--10
16--10

Allocating Connections in a Logix5000 System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connection Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conserving Connections by Grouping Produced Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: Connection Requirements for Tags vs. an Array . . . . . . . . . . . . . . . . . . . . . . . . . . .
Message Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17--1
17--1
17--1
17--1
17--1
17--2
17--2
17--3
17--3
17--4

Exercise: Allocating Connections in a Logix5000 System . . . . . . . . . . . . . . . . . . . . 17- 5


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17--5
17--5
17--6
17--6

Integrated Practice Developing an RSLogix 5000 Project . . . . . . . . . . . . . . . . . . . 18- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18--1

Exercise: Integrated Practice Developing an RSLogix 5000 Project . . . . . . . . . . . 18- 3


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18--3
18--8
18--10
18--10

Optional Lessons
Configuring Logix5000 Controllers to Share Data over a ControlNet Network . . . . . 19- 1
What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Key Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ControlNet Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19--1
19--1
19--1
19--1
19--1

Table of Contents

Cable System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scheduled Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unscheduled Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Information Exchange on the ControlNet Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Network Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NUT (Network Update Time) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: NUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SMAX (Scheduled Maximum Node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: SMAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UMAX (Unscheduled Maximum Node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: UMAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Media Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Update Intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RPI (Requested Packet Interval) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
API (Actual Packet Interval) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example: RPI and API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configuration Overview and Software Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding a ControlNet Module and Controller to an I/O Configuration . . . . . . . . . . . . . . . . . . . .
Produced and Consumed Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scheduling a New ControlNet Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xiii

19--3
19--4
19--4
19--4
19--5
19--5
19--5
19--6
19--6
19--7
19--7
19--8
19--8
19--9
19--9
19--9
19--10
19--10
19--11
19--11
19--11
19--14
19--14

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet


Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19- 15
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........................................................................
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19--15
19--15
19--17
19--18
19--18

Communicating with a 1756-I/O Module Over a ControlNet Network . . . . . . . . . . . . 20- 1


What You Will Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
When You Will Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ControlNet Remote I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Heres How . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Demonstration Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20--1
20--1
20--1
20--1
20--2
20--2

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network . . . . . 20- 3


Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How Did You Do? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exercise A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20--3
20--4
20--6
20--6

xiv

Table of Contents

Appendices
I/O Wiring Diagrams For The Assembly Application . . . . . . . . . . . . . . . . . . . . . . . . . A- 1
Slot 0 -- 1756-OB16D Digital Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slot 2 -- 1756-IB16D Digital Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slot 4 -- 1756-OB16D Digital Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
........................................................................
Slot 7 -- 1756-OF6VI Analog Output Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slot 8 -- 1756-IF6I Analog Input Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A--1
A--2
A--3
A--3
A--4
A--5

ControlLogix Workstation I/O Device Assignments . . . . . . . . . . . . . . . . . . . . . . . . . B- 1


Local I/O Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B--2

Node Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C- 1

Course Overview

Course Overview

Course Purpose

Upon completion of this course, given a functional specification for


an RSLogix 5000 application, you will be able to develop a project
to meet the requirements of the specification.
This course covers tasks common to the following controllers, which
all use the Logix5000 control engine, or operating system:
ControlLogix controllers

CompactLogix controllers
SoftLogix controllers
DriveLogix controllers
This course builds upon your knowledge of common controller terms
and operation and your experience with basic ladder logic
programming.
This course presents a deeper understanding of project development
tasks that are common to all Logix5000 controllers. Such tasks
include organizing tasks and routines, organizing controller data,
configuring modules, and sharing data.
You will also use Producer/Consumer technology to multicast input
and output devices, share data between controllers, and control
remote I/O.

Who Should Attend

Individuals who need to develop RSLogix 5000 projects for any


Logix5000 controller should attend this course.
Activity: Introduce yourself, say the company you work for, and tell
the instructor and others what you hope to take away from this
course.

Course Overview

II

Prerequisites

To successfully complete this course, the following prerequisites are


required:
Ability to perform basic Microsoft Windows tasks
Completion of the RSLogix 5000 Level 1: ControlLogix System
Fundamentals course (Course No. CCP146), or completion of the
RSTrainer for ControlLogix Fundamentals computer-based
training course (9393-RSTCLX), or knowledge of common
controller terms and operation

Completion of the RSLogix 5000 Level 2: Basic Ladder Logic

Programming course (Course No. CCP151) or the ability to write


basic ladder logic with common instructions, such as bit, timer,
counter, move, and comparison instructions
Question: Is everyone comfortable with these skills?

Agenda

This course consists of the following lessons:


Day 1

15 minutes
20 minutes (40 minutes with optional
exercise)
90 minutes
60 minutes
160 minutes
30 minutes

Course Overview
Updating Logix5000 Firmware
Creating and Organizing a New RSLogix 5000 Project
Creating a Periodic Task in an RSLogix 5000 Project
Organizing Data in an RSLogix 5000 Project
Creating a User-Defined Data Type in an RSLogix 5000 Project

Day 2
60 minutes
185 minutes
90 minutes
90 minutes

Entering, Editing, and Verifying Ladder Logic in an


RSLogix 5000 Project
Communicating with a Local 1756-I/O Module

Configuring a Logix5000 Controller to Produce and Consume


Data
Configuring Logix5000 Controllers to Share Data over an
EtherNet/IP Network
(continued)

Course Overview

III

Day 3
45 minutes

Communicating with a 1756-I/O Module over an EtherNet/IP


Network

120 minutes
90 minutes

Creating an Event Task in an RSLogix 5000 Project


Retrieving and Setting Logix5000 Controller Status Values with
GSV/SSV Instructions

60 minutes
105 minutes

Programming a BTD Instruction


Configuring a Logix5000 Message
Day 4

90 minutes
40 minutes
60 minutes
225 minutes
120 minutes
65 minutes

Developing an Add-On Instruction in Ladder Diagram


Managing RSLogix 5000 Project Files
Allocating Connections in a Logix5000 System
Integrated Practice -- Developing an RSLogix 5000 Project
Optional: Configuring Logix5000 Controllers to Share Data over
a ControlNet Network

Optional: Communicating with a 1756-I/O Module Over a


ControlNet Network

Meeting Course Objectives

The following course structure is generally used to help you


understand the content and activities:
One lesson is devoted to each task.
Typical lesson includes most or all of these sections:

-----

What You Will Learn -- lesson objectives


Before You Begin -- preparatory material
Heres How -- demonstration of procedures
Exercise - opportunity to perform new skills, often in a
hands-on lab environment
-- How Did You Do? -- where to go for feedback on
performance
-- Answers -- answers to exercises
Integrated practices provide an opportunity to perform tasks using
the skills obtained during the training.

IV

Course Overview

Student Materials

To enhance and facilitate your learning experience, the following


materials are provided as part of the course package:
Student Manual, which contains the topical outlines and
exercises. Use this manual to follow presentations, take notes, and
work through your exercises.

RSLogix 5000 and Logix5000 Procedures Guide, which provides

all of the steps required to complete basic RSLogix 5000 software


tasks that are common to all Logix5000 hardware platforms. By
following the procedures in this job aid, you can immediately
apply what is learned in the course to your own job.
Logix5000 Controllers Design Considerations Reference Manual,
which contains guidelines for designing a Logix5000 application.
Logix5000 Documentation Reference Guide, which contains
several relevant technical publications. This searchable, electronic
resource contains the most frequently referenced programming
information and is a quick and efficient on-the-job resource.
Reference: Your instructor will show you these job aids now.

Hands-On Exercises

Throughout this course, you will have the opportunity to practice the
skills you have learned through a variety of hands-on exercises.
These exercises focus on the skills introduced in each lesson.
You will also have the opportunity to combine and practice several
key skills by completing an integrated practice.
To complete the exercises and the integrated practice, you will use a
ControlLogix hardware workstation. Because the basic skills taught
in the course apply to all Logix5000 platforms, you can apply what
you have learned to the specific platform that you use in your plant.

Certificate Candidates

If you are a candidate for a Certificate Exam, you must:


Take notes
Ask questions for clarification

Follow along with demonstrations using the job aids


Complete all labs

Tip "

The Certificate Exam questions are scenario--based and may require


you to understand information from all of these areas.
To study for the exam, you must keep all class materials and your
written notes.

Course Overview

Configuration and
Programming Examples

The configuration and programming examples shown in this course


are intended solely for purposes of example.
You will have different requirements associated with your
application. You must verify that the necessary steps have been
taken to meet all performance and safety requirements.
Reference: See the Important User Information in your Student
Manual for more details.

ControlLogix/RSLogix
5000 Curriculum Map

After completing this training, you may be interested in one or more


of the following courses:
RSLogix Level 4: PhaseManager Project Design
[CCP711, 1 day]
RSLogix 5000 Level 4: Motion Programming Using Ladder Logic
[CCN142, 3 days]
GuardLogix Application Development [SAF-LOG101, 2 days]
Reference: See the curriculum map in the front of your Student
Manual for a complete listing of available ControlLogix/RSLogix
5000 courses.

VI

Course Overview

Lesson
Note that this lesson briefly reviews
prerequisite concepts before presenting
the firmware piece. Tailor this lesson as
needed.

What You Will Learn

Updating Logix5000 Firmware


After completing this lesson, you should be able to update module
firmware.

When You Will Do This


You will perform these tasks in the following situations:
You will need to update module firmware:
-- When installing a brand new ControlLogix controller
-- When upgrading to a newer version of RSLogix 5000
software to ensure hardware and software remain in lockstep

Before You Begin

Review

The PowerPoint presentation


contains hidden slides that can
be used to conduct the review.

Activity: Your instructor will briefly review uploading,


downloading, and going online to a controller.

Topics include keyswitch positions;


uploading, downloading, and going
online; and interpreting a
communications path.

Updating Module Firmware

State that customers can obtain the


required revision levels at the
support.rockwellautomation.com/support
website for ControlFLASH.
Note that a minimum of one
communications device is required
to update modules. Serial
communications can be
used, but data transfers
at the slowest rate.
Method
ControlFLASH Utility

AutoFlash Function

To use all of the features of a new revision of RSLogix 5000


software, controller and servo module firmware must be in lock-step
with software.
The firmware loaded in Logix5000 controllers and
motion modules must match the version of
RSLogix 5000 software you are using.

There are three methods available for updating module firmware:


How Used
Standalone tool (can be
launched manually or through
RSLogix 5000 software).
Integrated with RSLogix 5000
software. It automatically
checks firmware during project
download.

Devices Supported
Controllers, communication
modules, I/O modules,
SERCOS drives, and other
devices.

Communication Supported
Valid CIP path to device being
updated (includes serial,
DeviceNet, ControlNet,
EtherNet/IP).

(Continued)

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


FW3sb56r

1--2

Updating Logix5000 Firmware

Method

Firmware Supervisor

How Used

Integrated on the controller


CompactFlash card and runs
without user intervention.

Devices Supported
Supports local and remote
devices that:
Are in the I/O tree and
configured as Exact Match.
Support firmware upgrades
via ControlFLASH.
Are at a hardware revision
that supports the firmware
stored for that device.

Communication Supported

Supports all communication


paths to devices in the
controller I/O tree that also
support ControlFLASH.

When updating a modules firmware, note the


following key points:
Updating a module will delete the current
module contents.
Updating module firmware temporarily disables
the module from controlling other devices.
Evaluate what portion(s) of a process the
module may control before starting an update.
Interrupting an update by disabling
communications or removing the module from
the chassis may damage the module.

Do not backflash a 1756-I/O modules


firmware from firmware revision 3.x to 2.x.
Attempting to backflash or downgrade the
modules firmware will irreversibly damage the
module. You must return modules damaged by an
attempt to backflash to firmware 2.x to Rockwell
Automation.

Do not flash a 1756-I/O modules firmware


from firmware revision 2.x to 3.x. Attempting to
flash a modules firmware will irreversibly
damage the module.

Do not backflash 1756-SOE (Sequence of


Events) modules at firmware revision 1.6 to
revision 1.5 or earlier. Backflashing SOE
modules at firmware revision 1.6 may cause the
SOE module to stop working and require that the
module be returned for repair.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


FW3sb56r

Updating Logix5000 Firmware

Tip "

Heres How
IMPORTANT: When performing
Exercise A, be sure to run the
Quick Start video for the
students on the overhead. This
will eliminate the need for
earphones or the distraction of
overlapping audio during the exercise.

1--3

If you have questions regarding the compatibility of RSLogix 5000


software with specific controllers or hardware modules, contact your
local distributor or Rockwell Automation Technical Support.
To update module firmware.
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the steps below and the information
on the Demonstration Checklist to help
guide you during the demonstration:
IMPORTANT: Before performing this
demonstration, ensure that the controller
in slot 3 of your demonstration
workstation has been back-flashed to
a firmware version below version 17.
Use the FW3_1756R_DEM1.acd file to
download and go online to the controller
in Slot 1.

Pay attention to these critical aspects of the demonstration:


-

Download the first project and go online.

Download the second project to the controller.

What happens when the project is downloaded?

How is this situation resolved?

What tools are available for flashing module firmware?

Use the FW3_1756R_DEM2.acd file to


download to the controller in slot 3.
When the firmware revision mismatch
occurs, show students how the
automatic firmware update feature
works.
Important: Emphasize that flashing
firmware will not be practiced in the lab.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


FW3sb56r

1--4

Updating Logix5000 Firmware

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


FW3sb56r

Exercise: Updating Logix5000 Firmware

1--5

Exercise: Updating Logix5000


Firmware
Exercise A

In this exercise, you will practice updating Logix5000 firmware.


Activity: As a group, you will view the Update a Modules
Firmware Quick Start tutorial. The steps below will help you access
the file for later review or independent practice.

This exercise uses RSLogix 5000 Start Pages to


demonstrate the controller flashing procedure. Do
not perform this procedure on the workstation
unless authorized to do so. Failure to correctly
perform this procedure can make the controller
inoperable.

Context:
Before flash updating the new ControlLogix controllers you recently
received, you will review the proper flash update procedure and
answer the corresponding questions.
Directions:
1. If it is closed, open RSLogix 5000 software.
2. View the Start Page.
3. Click the Learning Center tab.
4. From the How Do I? menu, select the Maintain folder.
5. View the Update a Modules Firmware tutorial.

Tip "

Although the video focuses on the CompactLogix platform, the basic


steps can be applied to any Logix5000 controller that supports flash
download.
6. Which modules must always be in lock-step with the version of
RSLogix 5000 you are using?

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


FW3e56r

1--6

Exercise: Updating Logix5000 Firmware

7. When is a maintainer most likely to update other modules (I/O,


communications, etc.)?

8. What tool can be used to update module firmware?

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


FW3e56r

Exercise: Updating Logix5000 Firmware

Rev. August 2012

1--7

E 2012 Rockwell Automation, Inc. All rights reserved.


FW3e56r

1--8

Exercise: Updating Logix5000 Firmware

Answers

Exercise A
6. Your controllers, motion modules, and SERCOS drives all must
match the version of RSLogix 5000 software you are using.
7. A maintainer is most likely to update other module firmware
when replacing a failed module.
8. The ControlFLASH tool can be used to update module
firmware.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


FW3e56r

Lesson

Creating and Organizing a New


RSLogix 5000 Project
What You Will Learn
Important: This lesson covers the
default project organization. Periodic
tasks and event tasks are covered in
separate lessons.

Stress that deleting project components


is not as simple as selecting delete from
a right-click menu. Because deleting can
be done online, it is a more detailed
procedure.
Note that the use of tasks and programs
is a major difference from RSLogix 5 and
500 softwares.

Before You Begin


Note that .l5k text files are part of a
separate lesson.

After completing this lesson, you should be able to:


Create a new RSLogix 5000 project file
Modify controller properties

Create a program and routine


Adjust a program schedule
Copy and reuse programs and routines
Delete a routine, program, and task
Verify tasks, programs, and routines

When You Will Do This


Before you enter the logic for your application, you have to
configure the tasks, programs, and routines that will run the logic.

Key Terms
Project/Project File: The RSLogix 5000 software file used to store
all programming and configuration information for a Logix5000
controller.

Project Organization
State that the multitasking system is like
32 separate PLC-5 controllers that take
turns controlling.
Note that task execution is based on
priorities that are assigned by the user.
This will be discussed in detail later.

Rev. August 2012

A Logix5000 controller is a preemptive, multitasking controller with


the following characteristics:
Is single-threaded in that only one task will be active at a time
Has the ability to interrupt an executing task, switch to a different
task, then return control back to the original task when the
interrupting task is complete

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

2--2

Creating and Organizing a New RSLogix 5000 Project

Clarify that tasks and programs are


organizing elements (like folders in
Windows Explorer). Routines contain the
actual ladder logic.

To maximize these multitasking capabilities, the following


containers are available to organize an RSLogix 5000 project:
Task: A scheduling mechanism for executing its scheduled
programs.

Program: A set of related routines and tags.


Routine: A set or sequence of executable code.
Default Project Structure
By default, there is one task, program, and routine created in each
new project:
When reviewing this graphic, note the
following elements:
1. Each task can be divided into
programs based on function, area,
or some other attribute.
2. Each program can have as many
routines as memory allows. One
routine must be defined as the main
routine and the rest will be
subroutines.

Tip "

Default Structure
and Names

The names and properties of these components can be modified to


suit your application.

Creating a New Task


A task triggers the execution of its scheduled programs. The
following table outlines the type of tasks that are available:
If students are familiar with PLC-5
controllers, relate the periodic task to an
STI.

Important: Remind students that


periodic and event tasks are only
mentioned here as an overview. This
topic is presented in more detail in a
later lesson.

E 2012 Rockwell Automation, Inc. All rights reserved.

Task Type

Usage

Continuous

A task that runs continuously but can be interrupted by


periodic or event tasks (default task type).

Periodic

A task that executes regularly at a user-specified rate.


When called, it will interrupt any lower priority tasks.

Event

A task that is triggered only when a specific event


occurs. When called, it will interrupt any lower priority
tasks.

Icon

Rev. August 2012


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

? If a ControlLogix controller has one


continuous task and 4 periodic, how
many event tasks could it have?
Answer: 27 (27+4+1=32)

? If a DriveLogix controller has zero

2--3

Reference: Logix5000 Controllers Design Considerations,


1756--RM094
1. Find the Logix5000 Controller Comparison tables at the front of
the manual.

continuous tasks and 4 periodic, how


many event tasks could it have?

2. Compare the number of tasks you can have in various controllers.

Answer: 4 (4+4 = 8)

Continuous Task

Compare this to the program files in an


RSLogix 5 or 500 project.

A continuous task has the following characteristics:


Is a background task that executes any time other operations, such
as periodic or event tasks, are not executing

Note that self-triggered means that as


soon as it ends, the task begins again. It
also means that the routine does not
have to be called (activated).

Operates in a self-triggered mode (automatically restarts after

If students are familiar with Basic


programming, compare this to
programming a Goto 10 statement in the
last line.

By default, has the lowest priority (one lower than the lowest

each completion)
Can be interrupted by a periodic or event task
periodic or event task)

Only ONE task can be continuous


Watchdog Timers

Note that the watchdog timer in a PLC-5


processor is for the entire controller.
Here, the watchdog timer is set for each
task.

Tip "
Point out that the last scan and max
scan can be viewed online. In a different
lesson, students will learn to monitor the
scan times using ladder logic
instructions.

A watchdog timer monitors the execution of a task. The timer is


started when a task is initiated and stops when all programs within
the task have executed.
A watchdog timer continues to run even if a task is interrupted, so
its important that the watchdog timer is set to a large enough value.
Ensure that the time period is longer than the sum
of the execution time of all the programs assigned
to the task. If the controller detects that a periodic
task trigger occurs for a task that is already
operating, a minor fault occurs.

If a watchdog timer reaches its configured preset, a


major fault occurs. Depending on the controller
fault handler, the controller may shut down.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

2--4

Creating and Organizing a New RSLogix 5000 Project

To inhibit a task:

Inhibited Task

1. Inhibit all tasks except one.

The following icon in the Controller Organizer indicates that the task
has been prevented from executing by a user option or instruction:

2. Run the project and monitor the


execution of the active task.
3. When the task meets the
requirements of the system, repeat
the process, testing a different task.

Inhibited Task

Tip "
State that tasks can also be inhibited or
uninhibited using SSV instructions.

Mention that for information on


equipment phases, attend the
PhaseManager course.

This inhibit option can be used to test, diagnose, or start up a project.


If a task is inhibited, the controller still pre-scans
the task when the controller transitions from
Program to Run or Test mode.

Creating a Program
A program is the second level of scheduling within a project. A
program has the following characteristics:
Each task can schedule up to 100 programs.

When a task is triggered, its programs execute in sequence from


the first scheduled to the last scheduled.

Programs within a task can access input and output data directly
from controller-scoped memory:
Code within any program can modify controller-scoped data.

Code within a program can also modify program-scoped data:


-- Code within one program cannot access or modify the data
that is local to a different program.
The Create New Program button is shown in the following graphic:
Optional Toolbar
Create New Program

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

2--5

Adjusting a Program Schedule


Mention that the entire schedule can be
viewed in the Task Properties dialog
box. Otherwise, programs can be quickly
scheduled or unscheduled in the
Controller Organizer.

Programs can be scheduled in a specific task or left unscheduled:


Original equipment manufacturers may create one project and
then schedule or unschedule a program depending on the
equipments required functionality.

Note that these methods will be


demonstrated in the Heres How section.

Maintenance or field service technicians may create

Add that unscheduled programs do not


use any scan time.

troubleshooting programs that are left unscheduled until needed


to test a project.

The following example shows a program schedule:


Adjust Order

Program
Schedule

Unscheduled
Programs

Actual Program Scan Time


The software can display the maximum scan time and the last scan
time in microseconds for a selected program:
Scan time is based on the number and type of instructions.
These values are execution times for the program and do not
include any time spent waiting for other programs or tasks.

State that a Compute instruction will


take longer than using simple multiply
and divide instructions.
Note that the GSV instructions that are
used to monitor program time are
presented in a different lesson. Tip

Rev. August 2012

These values are for display only.

"

Values can also be monitored using specific instructions in code.

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

2--6

Creating and Organizing a New RSLogix 5000 Project

Creating a Routine
A routine provides the executable code, or decision-making
instructions, for a project. Each routine contains a set of elements for
a specific programming language:
Ladder Logic -- suited for relay or discrete applications
Function Block Diagram -- suited for continuous process and
drives control applications

Note that ladder logic is the most


common language used.

Sequential Function Chart -- suited for motion or batch

applications or concurrent applications where more than one state


is active at one time. Also suitable for sequential applications
such as assemble or packaging machines.
Structured Text -- suited for complex math or array applications
or for programs converted from other projects created in
high-level languages like C

Tip "

The availability of these languages will depend on the options that


have been selected and installed.
A routine can be assigned as one of the following types:
Main Routine: A routine that executes automatically when the
controller triggers the associated task and program:

-- Can be of any language


-- Is marked with a 1 in the Controller Organizer
Fault Routine: A routine that is configured to execute when the

controller finds an instruction-execution fault within any routines


in the associated program:
-- Is marked with a yellow triangle in the Controller Organizer
Subroutine: A routine that is called by another routine:

-- Is called by a JSR (Jump to Subroutine) instruction in the


main routine or another subroutine (conditioned or
unconditioned)
-- Returns to the other routine when complete or if a condition is
met

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

Stress that routines are not listed in the


order of execution. JSR instructions
determine the order of the subroutine
execution.

2--7

The main routine is always listed first, followed by a fault routine (if
any), and then all subroutines in alphabetical order:

For troubleshooting, mention that you


can create a cross-reference report that
lists all JSR instructions that call a
subroutine and their locations in the
ladder logic. This will be presented in a
different lesson.

Main Routine

Ladder Logic Routine

Fault Routine
Subroutines

Structured Text Routine


Sequential Function
Chart Routine

Function Block
Diagram Routine

In the graphic point out the 1 on the


main routine.

The following is an example of subroutine structure:


When the conditions are met, the main routine
calls the Level subroutine.
Example Ladder Logic in the Main Routine

Subroutine

If necessary, define a nested routine as


a subroutine that is activated from within
another subroutine.
Note that cross-reference reports are
part of the Documenting and Searching
For Ladder Logic Components lesson.

Rev. August 2012

The Create New Routine button is shown in the following graphic:


Optional Toolbar
Create New Routine

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

2--8

Creating and Organizing a New RSLogix 5000 Project

Program Control Instructions


Note that if there are no input
parameters, control passes from the
JSR instruction to the first rung of the
subroutine.

When enabled, the ladder logic JSR instruction directs the logic
execution to the specified subroutine and, if needed, passes
parameters to the subroutine:
Numeric, structured parameters, and BOOL data type tags can be
passed.
The SBR (Subroutine) instruction receives the input parameters and
copies their values into the specified tags:
The optional SBR instruction identifies the tags that store the
incoming parameters.
The RET (Return) instruction ends the subroutine and, if needed,
returns parameters to the JSR instruction:
-- Use the RET instruction only if you are returning parameters
to the JSR instruction.

System Overhead Timeslice


Note that the system overhead timeslice
is located in the Advanced tab of the
Controller Properties dialog box.

Add that because the serial port is in the


controller, it affects controller operation.
If necessary, review RIUP.

In the graphic, point out that the far right


area is used for overhead functions. If
there are no functions, the time is
available for the continuous task.
If there is no continuous task, then the
system overhead timeslice is irrelevant.
Note that 20% is the default.

The user-configurable system overhead timeslice determines the


percentage of controller time that is available for the following
background functions:
Communicating with programing devices and programming
software
Messaging

Bridging communications from the controllers serial port to


other devices via the backplane
Re-establishing and monitoring I/O connections (RIUP
conditions)

The system overhead timeslice percentage does not affect executing


periodic or event tasks:
Controller Execution Time

Time for Periodic or Event Tasks


Time for the Continuous Task %
System Overhead
Timeslice Percentage

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

Mention in step one that the data is


multicast to the backplane then received
by the controller.
Chalk Talk: If students have a PLC or
SLC background, you may want to draw
the PLC/SLC scan diagram on the board
for comparison.
When reviewing the diagram, explain the
following steps based on the experience
of the class and the lessons already
covered:
1. Each rung of ladder logic (code) is
scanned.

2--9

Asynchronous Updates
Asynchronous: Actions that occur independently of each other and
lack a regular pattern.
In Logix5000 controllers, I/O values update asynchronously with the
execution of code:
1. Input modules multicast their data to the backplane at the RPI rate
set in the modules.
2. The code is scanned and the output tags are updated immediately
after the execution of each output instruction.

2. As higher numbered rungs are


3. Values are sent to the output modules at the RPI rate and at the
scanned, the inputs may change and
end of each task.
therefore, the outputs may change
as reflected in the tag
database image.
Tip " The automatic output processing that occurs at the end of a task can
3. The RPI is the rate at which the user
configures the output modules to
update.

be disabled in the properties of the task.

Because of the update process, input devices may change state within
one program scan and at a different rate than the program scan:

Single Scan
Physical Device Data is
received by the input card
RPI Rate

Rung
100

COS

Rung
250

Tag is set or cleared in controller

Optional

RPI Rate

Rev. August 2012

Rung
400

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

2--10

Relate the organizational tips to an


example compressor assembly project:
S

The project has three assembly


machine stations in the first
controller; therefore, an Assembly
task is created.

Each station (press, stake, and


weld) becomes a program in the
Assembly task. Instead of having a
separate controller run the machine
at each station, one controller runs
them all.

Each program has a control routine


for the machine. A main routine is
used to call the control routine (and
any future routines).

If available, give examples of naming


conventions and how they are
constructed.

Give students a few minutes to


read the section.

Project Organization Best Practices


To efficiently organize a project:
Divide the process into functional groups or sections that
represent one or more facets of the process:

-- Sequence of related actions that operators perform


-- Group of related process events
-- Machine or machine sections
Divide each program into routines, where each routine represents
one or more facets of the program:

-- Specific process within the program


-- Section of application code that could be hidden to facilitate
troubleshooting
-- Function that occurs at several instances during the program
-- A main routine that will call up the subroutines of the program
Create and apply plant naming conventions for tasks, programs,
routines, and tags.
Reference: Logix5000 Controllers Design Considerations,
1756--RM094
1. Go to the Divide Logic into Tasks, Programs, Routines, and
Add--On Instructions chapter.
2. Go to the Decide When to Use Tasks, Programs, and Routines
section.
3. Briefly read the information on when to use a task, program, or
routine.

Have each student do this on


their own. Then go over the
answers as a group.

Activity: For each of the situations below, decide if you would


separate the logic at the task, program, or routine level. Check the
appropriate box:

For this situation

Program

A. A conveyor line uses a series of diverters to sort packages. Each diverter uses
identical logic.

Task

B. You only need to update your analog devices every 250 ms, but you must update
your discrete devices every 20 ms.

Routine

C. The logic for a conveyor performs these functions: initialize, run, return status
information, handle faults.

Task

D. A grinding application monitors an over--current sensor on the feed motor. If the


sensor trips, the operation needs to immediately abort to prevent the stone from
shattering.

Routine

E. A mixing tank uses a combination of 2--state devices to mix juice:

Separate the logic at this level


Task
Program Routine

Several valves open and close to add wet and dry ingredients.
A single--speed motor mixes the ingredients.
An outlet valve opens to drain the tank.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

2--11

Example: Project Organization


Note that the organization of this project
is not very different from a typical PLC-5
project.

In this example, a paper mill converted a time-tested PLC-5


ladder logic project into an RSLogix 5000 project. All of the
logic was placed in one continuous task and follows the basic
default project structure:

Single Continuous Task


Similar to Traditional
Controller Project

Select tool windows can now


be docked in RSLogix 5000s
main window, float on top of
the window, or become an
Auto Hide tool window.
This applies to:

Program
Main Routine

S
S
S
S
S

Subroutines

Controller Organizer
Errors
Search results
Watch
Start page

Verifying Tasks, Programs, and Routines


Mention that the verification process is
similar to the RSLogix 5 and 500
process with the addition of tag
verification.

After organizing your controller project, you can verify it. In this
process, the software looks for errors such as unassigned routines.
The following buttons are available to verify the entire controller
project or routine:
Standard Toolbar

Verify Open Routine

Rev. August 2012

Verify
Controller

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

2--12

Creating and Organizing a New RSLogix 5000 Project

Errors or warnings found in the verification process are displayed in


the Output window:
Double-Click to
Go to the Error
or Warning or
Press F4

Heres How
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final
exam, you must demonstrate Tip
all lesson objectives using
the proper job aids.

To access video-based help files:


Follow along as your instructor demonstrates this procedure.

"

There are many video-based help files to assist in everything from


development of an RSLogix 5000 project to maintaining one.

Use the steps below to help guide you


during the demonstration:
Access the files through the Help menus
Learning Center How Do I section.
Show one or two examples of the video
help. You can stop them after a few
moments. This is just to show how the
system works. If Lesson 20 will be used,
skip this Heres How.

Example

E 2012 Rockwell Automation, Inc. All rights reserved.

Access the files through the Help menus Learning Center How Do
I section:

Rev. August 2012


TS2sb56r

Creating and Organizing a New RSLogix 5000 Project

2--13

For example, under Controller Projects you would find subjects on


creating and downloading projects. Under Maintain you would find
information on clearing faults or searching.

Heres How

To perform the following tasks:


Create a new RSLogix 5000 project file

Modify controller properties


Create a program and routine
Adjust a program schedule
Copy and reuse programs and routines
Delete a routine, program, and task
Verify tasks, programs, and routines

Activity: As your instructor demonstrates these procedures, follow


along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the steps below to help guide you
during the demonstration:
Create a new RSLogix 5000 project.
When demonstrating the listed
procedures, point out the following
items:

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Revision must match the major firmware revision of the


controller

The MainTask, MainProgram, and


MainRoutine

Initial name of the project file

The Main Routine Assignment


drop-down list

What happens if you change the name of the controller


or the name of the project file

The max scan time

Which name shows up in RSWho

The System Overhead Timeslice


option

Once you pick the firmware revision for a project, you


cannot change it to a lower revision

Task, program, and routine hierarchy

Where you assign a main routine for a program

How to see the maximum scan time of a task

Where you change the system overhead timeslice value

" The copying and reusing programs


and routines procedure is part of the
Copying and Reusing Project
Components procedure in the
Procedures Guide.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2sb56r

2--14

Creating and Organizing a New RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2sb56r

Exercise: Creating and Organizing a New RSLogix 5000 Project

2--15

Exercise: Creating and Organizing


a New RSLogix 5000 Project
Exercise A

In this exercise, you will practice creating and organizing a new


RSLogix 5000 project.
Context:
You are familiar with the systems hardware and software
components. You are now ready to create a new RSLogix 5000
project file to hold your programming and configuration information.
You are also ready to organize the project and direct the execution of
the code.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. From the Help Menu open the Learning Center:
A. Select the How Do I tab.
B. Select Controller Projects.
C. View the Video Create a New Project.
D. Remember as you go through the additional lab and steps that
the Help system is there to assist you in your work.
2. Create a new RSLogix 5000 project file for the controller in slot 1
of your workstation. Give it this name: Paint.
3. Modify the following controller properties:
A. For an anticipated increase in communications, change the
system overhead timeslice to 25%.
4. Rename the Main Task as Paint.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2e56r

2--16

Exercise: Creating and Organizing a New RSLogix 5000 Project

5. Create the following programs and routines:


Task
Paint
(This task
automatically
restarts when it
is done.)
The watchdog
timer value must
be 600 ms.

Programs

Routines

Purpose

Paint_line_1
(Rename the
MainProgram)

MainRoutine

Ladder that enables the


subroutine

Paint_Control

Ladder that controls the


paint gun

MainRoutine

Ladder that enables the


subroutine

Paint_Control

Ladder that controls the


paint gun

MainRoutine

Ladder that enables the


subroutine

Paint_Control

Ladder that controls the


paint gun

Paint_line_2

Paint_line_3

6. Copy the Paint_line_3 program (with all of its contents).


7. Paste the copied program into the Paint task and change its name
to Paint_line_4.
8. Adjust the program schedule in the Paint task so that the
programs execute in this order:
A. Paint_line_3
B. Paint_line_1
C. Paint_line_2
D. Paint_line_4
9. Delete the Paint_line_4 program (and all of its contents).

Tip "

Remember that all elements must be unassigned and removed first.


10. Verify the tasks, programs, and routines and correct any errors.
11. Save the project file.

Tip "

Another programmer was assigned to create and organize the project


for the controller in slot 3 for a quality check. Although this is not
the paint line, you still want to follow the same style and conventions
for easy troubleshooting.
12. Open the TS2_1756r_A1.acd file.
13. Examine all properties of the tasks (continuous and periodic),
programs, and routines programmed in the project.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2e56r

Exercise: Creating and Organizing a New RSLogix 5000 Project

2--17

14. Which task is periodic?

15. Which task is continuous?

16. In which order do the programs in the continuous task execute?

17. What are the subroutines in the Station_4_Quality program?

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2e56r

2--18

Exercise: Creating and Organizing a New RSLogix 5000 Project

Answers

Exercise A
3.
A. The System Overhead Time Slice is configured on the
Advanced tab of the Controller Properties dialog box.
5. The main routine for a program is assigned on the
Configuration tab of the program properties dialog box:

7. The tasks, programs, and routines entered in the Paint project


are shown in the following graphic:

Watchdog Timer
Set to 600 ms

Assigned as
Paint_line_3
Main Routine

Assigned as
Paint_line_1
Main Routine

Assigned as
Paint_line_2
Main Routine

Assigned as
Paint_line_4
Main Routine

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2e56r

Exercise: Creating and Organizing a New RSLogix 5000 Project

2--19

9. To delete the Paint_Line_4 program, you must perform the


following actions:
A. Unassign MainRoutine as the main routine.
B. Delete the MainRoutine and the Paint_Control routines.
C. Unschedule the program.
D. Delete the program.
14. Record_Shift_Number, identified by the clock icon, is the
periodic task:

15. Assembly, identified by the round arrow icon, is the continuous


task.

16. The programs in the continuous task execute in this order:


A. Common
B. Station_4_Quality
C. Station_5_Palletize
17. The Station_4_Quality program contains the following
subroutines:

Check
Data_Logging
Reject

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TS2e56r

2--20

Exercise: Creating and Organizing a New RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TS2e56r

Lesson

Creating a Periodic Task in an


RSLogix 5000 Project
What You Will Learn

After completing this lesson, you should be able to:


Determine the period (rate) for a periodic task
Create a periodic task

When You Will Do This


If you have logic you want to run at a specific time period, create a
period task for it.

Before You Begin

Task Type Review


A task triggers the execution of its scheduled programs. The
following table outlines the type of tasks that are available:

If students are familiar with PLC-5 or


SLC 500 controllers, relate the periodic
task to an STI (Selectable Timed
Interrupt).

Rev. August 2012

Task Type

Usage

Continuous

A task that runs continuously but can be interrupted by


periodic or event tasks.

Periodic

A task that executes regularly at a user-specified rate.


When called, it will interrupt any lower priority tasks.

Event

A task that is triggered only when a specific event


occurs. When called, it will interrupt any lower priority
tasks.

Icon

E 2012 Rockwell Automation, Inc. All rights reserved.


PERsb56r

3--2

Creating a Periodic Task in an RSLogix 5000 Project

Periodic Task
Add that a task that is 8 ms in duration
and is executed every 8 ms will block all
other tasks of lower priority from
executing.

Fault Example: If a periodic task


executes every 8 ms and it is 11 ms in
duration, the controller will fault.

Tip "

A periodic task has the following characteristics:


Is triggered by the controller at a regular, repeated time interval
determined by the user

Always interrupts and suspends the continuous task


May interrupt other periodic or event tasks with a lower priority

level:
-- An interrupted task does not shift its start time.
-- An interrupted task will stop mid-instruction.
When executing, scans all assigned programs once from top to
bottom
After a single scan, an output update is triggered and controller is
returned to the interrupted task at the point it was interrupted
Like a continuous or event task, periodic tasks require at least one
program and one routine.
Example: Periodic Task Use
Periodic tasks are selected for processes that require accurate and
deterministic execution:
Check pressure on a machine at regular intervals
Correct a PID loop at regular intervals

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PERsb56r

Creating a Periodic Task in an RSLogix 5000 Project

3--3

Example: Project Organization


Note that this project takes advantage of
some of the Logix5000 organizational
elements.

In this example, the motion application includes two periodic


tasks to ensure execution at specific time intervals:

Periodic Task
(with Times
in Names)

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PERsb56r

3--4

Creating a Periodic Task in an RSLogix 5000 Project

Periodic Task Properties


The user--defined properties for each periodic task determine when
the task is executed:
In the graphic, point out that the period
is when the task starts and not how
long it takes.
Start Interval
Priority Level

Important
Priority
Information

Period
The period determines the start interval for the task:
The trigger time range is 1 ms (millisecond) to 2000 seconds.

The default is 10 ms.


If a periodic task retriggers before the task is
done, a minor fault will occur.

The rate at which a periodic task is triggered


determines the period in which the logic is executed
and the data is manipulated within the task. Data
outputs established by the programs in a task retain
their values until the next execution of the task or
until they are manipulated by another task.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PERsb56r

Creating a Periodic Task in an RSLogix 5000 Project

3--5

Priority
Each periodic and event task in a controller has a priority level that
determines which task executes when multiple tasks are triggered:
Priorities are assigned by the user.

Clarify that the lower number (1) gives


the task a higher priority or importance.

There are 15 levels of priority, with 1 being the highest priority

and 15 being the lowest:


-- A task with a higher priority will execute first (i.e., 1 before 3)

Note that the fastest or shortest task will


not necessarily be the highest priority.

Task priorities are relative:


-- If there are only three tasks, priorities of 6, 7, and 8 will

Clarify that this means the continuous


task automatically has the lowest priority.
A user cannot configure the priority for a
continuous task.

function the same as priorities of 1, 2, and 3.


Although no priority level is assigned, the motion task is always
the highest priority.
Although no priority level is assigned, the continuous task is
always one priority level lower than all other tasks.

Highest Priority

Motion Task
Trend

Point out that periodic and event tasks


use the same priority scale/levels.
Therefore, whichever task has the
highest priority executes first, regardless
of the task type.

Event or Periodic Task - Priority 1 . . .


Event or Periodic Task - Priority 5 . . .
Event or Periodic Task - Priority 10 . . .
Event or Periodic Task - Priority 15 . . .
Lowest Priority

Rev. August 2012

Continuous Task

E 2012 Rockwell Automation, Inc. All rights reserved.


PERsb56r

3--6

Creating a Periodic Task in an RSLogix 5000 Project

Scan Time Values


Note that this system creates slightly
more overhead, as the controller writes
the I/O updates after each rung is
scanned and does not wait until all of the
rungs are scanned.

When executing, the software displays the maximum scan time and
the last scan time in microseconds for the selected task in the Task
Properties dialog box:

Online Properties
Length of Execution

Periodic Task Execution


The period and the priority assigned to each task determine the task
execution.
Execution time is based on:
The amount of code in a project
The complexity of the code

Processor speed
Example: Periodic Task
In the graphic, point out that the rate is
when the task starts and not how long
it takes.

Task Execution Every 20 ms

In the following example, the periodic task is triggered every


20 ms:
5 ms

0 ms

20 ms

40 ms

60 ms

80 ms

Task (Duration of 5 ms)

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PERsb56r

Creating a Periodic Task in an RSLogix 5000 Project

3--7

Example: Periodic Task and Continuous Task


The following example shows how the periodic task interrupts
and suspends the continuous task:
Periodic Task Execution Every 20 ms
5 ms
Continuous Task
0 ms

60 ms

40 ms

20 ms

80 ms

Continuous Task Interrupted for 5 ms

Example: Multiple Tasks


The following example shows how a periodic task interrupts and
suspends the continuous task and another periodic task:
Task A is triggered every 20 ms and has a priority of 3.
Task B is triggered every 22 ms and has a priority of 1.
Therefore, task B will interrupt task A:
22 ms

Task B (Every 22 ms) Priority 1


Task A (Every 20 ms) Priority 3

44 ms

66 ms

88 ms

Continuous Task
0 ms

20 ms

60 ms

40 ms

80 ms

? How many periodic or event tasks

Two tasks can be assigned the same priority. If this occurs, the tasks
will timeslice, or alternate execution, in 1 ms intervals.

Answer: There can be up to 32 periodic


or event tasks (or 31 if there is a
continuous task). However, there are
only 15 levels of priority. (Use this
difference to lead into the discussion on
timeslicing).

Example: Equal Priorities (Timeslicing)

and how many levels of priority can


there be in a ControlLogix project?

The following example shows how two tasks of equal priority


will timeslice:
Task A, Priority 3
Task B, also Priority 3

0 ms

Rev. August 2012

Tip "

1 ms 2 ms 3 ms

4 ms 5 ms

Timeslicing takes slightly more time than having different priorities.


E 2012 Rockwell Automation, Inc. All rights reserved.
PERsb56r

3--8

Creating a Periodic Task in an RSLogix 5000 Project

Heres How

To determine the period (rate) for a periodic task.


1. Note the watchdog timer value.
2. Subtract the required time for the continuous task.
3. Subtract the time of any existing periodic tasks.
4. Divide the time remaining by the time it takes the new periodic
task to execute.
5. Divide the total time allowed by the number of times you want
the second task to execute.

Example

Determining the Period (Rate) for a Periodic Task.


1. Note the watchdog timer value: 450 ms.
2. Subtract the required time for the continuous task: 450--300 =
150.
3. Subtract the time the existing periodic task takes: 150--90=60
90 ms comes from the following calculation:
Executes every 50 ms, or 9 times in 450 ms.
9 times executed * 10 ms each time = 90 ms.
4. Divide the time remaining by the time it takes the second periodic
task to execute: 60 / 20 = 3
5. Divide the total time allowed by the number of times you want
the second task to execute: 450 / 3 = 150

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PERsb56r

Creating a Periodic Task in an RSLogix 5000 Project

Heres How

3--9

To create a periodic task.


Activity: As your instructor demonstrates this procedure, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project.
When demonstrating the task, point out
the following items:
S

The routines within one periodic task


enables the slot 0 outputs while the
other disables them

Pay attention to these critical aspects of the demonstration:


-

Location of the procedure in the job aid

Period and priority of the task

Max scan time (when online)

In Run mode, you can verify when


the task execute by the lights on the
workstation

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PERsb56r

3--10

Creating a Periodic Task in an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PERsb56r

Exercise: Creating a Periodic Task in an RSLogix 5000 Project

3--11

Exercise: Creating a Periodic Task


in an RSLogix 5000 Project
Exercise A

In this exercise, you will practice creating and configuring a periodic


task in an RSLogix 5000 project.
Context:
You have already created an RSLogix 5000 project file to hold your
programming and configuration information. You are ready to add a
task that will execute on a regular basis.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. What type of application would require a periodic task?

2. Open the PER_1756r_A1.acd file.


3. Review the following information about your project:
Existing periodic task
at priority 2. Takes
about 20 ms and
executes every 50 ms.
Main task takes about
300 ms.

4. You want your new periodic task to have a higher priority than
the Existing_Periodic task. What priority number will you assign
for your task based on the previous information?

5. If your new periodic task was assigned the same priority as


Existing_Periodic task, what would happen if the tasks
attempted to execute simultaneously?

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PERe56r

3--12

Exercise: Creating a Periodic Task in an RSLogix 5000 Project

6. Review the following application requirements:

Your goal is to execute the new task every 150 ms.


The new task must have a higher priority than
Existing_Periodic task.

7. Create a periodic task named Quality configured for the priority


and rate necessary to meet the application requirements.
8. Add the unscheduled program Quality_Monitor to the program
schedule of your new periodic task.
9. Download your project to the controller and go online.
10. Place the controller in Run or Remote Run mode.
11. What happens when the controller is placed in Run or Remote
Run mode?

12. If the controller experiences a watchdog fault while in Run or


Remote Run modes, how could the configuration of the periodic
task be changed to prevent this fault?

13. Clear the Major Fault from the Controller Properties dialog box.
14. Configure the Quality task to have a rate of 250 ms.
15. Place the controller in Run or Remote Run mode.
16. In the Task Properties window for the Main Task, verify that the
maximum scan time is not greater than the watchdog of 500ms.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


PERe56r

Exercise: Creating a Periodic Task in an RSLogix 5000 Project

Rev. August 2012

3--13

E 2012 Rockwell Automation, Inc. All rights reserved.


PERe56r

3--14

Exercise: Creating a Periodic Task in an RSLogix 5000 Project

Answers

Exercise A
1. Any type of application that requires accurate and deterministic
control would be an appropriate response.
4. The only priority higher than 2 is 1.
5. If periodic tasks of the same priority attempt to execute
simultaneously, the tasks will timeslice execution in 1 ms
intervals.
7. Your New Task dialog box should look similar to the following
example:

11. Your controller should experience a major fault when the


controller is placed in Run or Remote mode. This is due to the
Main Task watchdog time expiring.
12. Increasing the period (rate) of the periodic task will reduce the
frequency the periodic task executes. Even a periodic task with
contains little code can fault a watchdog timer if executed
frequently enough. Another option would be to increase the
watchdog timer for the continuous task.
16. Your Task Properties window should look similar to the
following example (scan times will vary):

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PERe56r

Lesson

Organizing Data in an
RSLogix 5000 Project
What You Will Learn

After completing this lesson, you should be able to:


Create a tag
Define an alias tag

Create an array of tags


Verify tags
Monitor and edit data
When You Will Do This
As you develop your logic, you will have to define tags, aliases, and
arrays to efficiently store your data.

Before You Begin

Controller Memory
Traditional controllers have data files, such as Timer or Integer,
where groups of the same types of data are stored together.

For example, a PLC-5 processor has a


pre-created timer file, where all timers
are stored together.

There are no such pre-defined data files in a Logix5000 controller.


Users must define the memory in a Logix5000 controller by creating
tags.
Tag: An area of controller memory where data from devices,
calculations, faults, etc. is stored. Each area is given a unique name:

Verify that students have an


understanding of bit, byte, and word
lengths. If not, spend some time
reviewing these terms:
S

Bit: The smallest unit of data


represented by the digits 0 and 1.

Byte: A string of 8 bits operated on


as one unit.

Word: A unit of memory in a


controller composed of 16 individual
bits or two bytes that are treated as
one unit.

Drive_Speed Data
Controller Memory

Remind students that the individual bits


of a byte or word can also be monitored
or addressed.

Start Data

Sensor Data

Emphasize that the graphic depicts only


a portion of the controller memory. Note
that in the graphic each line represents a
bit, or the smallest unit of memory.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--2

Organizing Data in an RSLogix 5000 Project

Data Types
Add that the data type maps out the data
just as it does in a PLC-5, SLC 500, or
other processor.

Data Type: The definition of how many bits, bytes, or words of data
a tag will use. The data type is based on the source of the
information.

Note that a tag is similar to the symbolic


address in a PLC-5 or SLC 500
controller. The main difference is that
tags are stored in the controller, where
symbols are stored in the computer only.

Pre-Defined Data Types: Commonly used memory sizes or


structures that are already defined in the software.

Indicate that BOOL, SINT, INT DINT,


and REAL data types are called atomic
data types.

Note that the DINT data type is the main


data type. More details will be presented
later in the lesson.

Atomic Data Type: A simple data type made of one piece of data:
Data Type

Definition

BOOL

A single bit where 1 = on and 0 = off (e.g., the state of a


discrete device such as a pushbutton or sensor)

SINT

A short integer (8 bits) between --128 and +127

INT

An integer or word (16 bits) between --32,768 and +32,767


(e.g., PLC-5r data)

DINT

A double integer (32 bits), used to store a base integer number


in the range of --2,147,483,648 to +2,147,483,647 (e.g., serial
number)

LINT

A 64-bit signed integer data type used to represent wall clock


time

REAL

A 32-bit floating point value (e.g., an analog value such as a


potentiometer value)

STRING

A data type that holds character data (e.g., Car or this is


text.

Using these definitions, tags for the given devices require the
following data types:

Controller Memory

Drive_Speed Data
DINT, or 32 Bits

Start Data
BOOL, or 1 Bit

E 2012 Rockwell Automation, Inc. All rights reserved.

Sensor Data
BOOL, or 1 Bit

Rev. August 2012


TA2sb56r

Organizing Data in an RSLogix 5000 Project

4--3

Structure: A more complex data type that is made up of several


pieces of data. E.g., a TIMER data type is made up of a combination
of DINTs and BOOLs:

Relate this to a timer relay where there


is on/off data as well as a preset value.

Tip "

Give an example, such as the


TOTALIZER data type, which is used
with the TOTALIZER function block. The
data type contains a member for each
parameter of the function block.

Data Type

Definition

COUNTER

Increasing or decreasing total

TIMER

Increasing time total (milliseconds)

CONTROL

Length and position for file level instructions

MESSAGE

Control structure for a message instruction

There are other less common, pre-defined data types that are used to
store specific data for function block instructions or motion
instructions.
Module Defined Data Types: Data types used for hardware data,
such as I/O tags.

Memory Allocation
The minimum memory allocation for a tag of any type is a DINT
(double integer or 32 bits). A DINT is the main Logix5000 data type.

Add that a DINT is often called a D word


or a double word.

When data is assigned by the user, the controller assigns the next
available DINT(s) of memory to any data type.
When data types such as BOOL, SINT, and INT are assigned to a
tag, the controller still consumes a full DINT (four bytes) but only
fills part of it:

Use the graphic to review the definitions


of BOOL, SINT, INT, DINT, and REAL.
After describing each data type, point
out the unused area.

Minimum Memory Allocation of 1 DINT


31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Unused Memory

BOOL

Rev. August 2012

SINT
INT

Data
Type

Used Memory

DINT
REAL

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--4

Organizing Data in an RSLogix 5000 Project

Add that students will learn how to


create these components in the next
lesson.

To efficiently use memory for BOOLs, SINTs, or


INTs, an array or a user-defined data type should
be created.

A controller stores tags as they are created and as they fit into
controller memory.

Tags of the same data type are not necessarily stored together in
memory.

Tag Scope
Add that for program-scoped tags,
behind the scenes, the program name
becomes a prefix for each tag name.
This is how tags with the same names in
different programs are kept separate.

Mention that if tags are correctly scoped,


ladder logic that uses the program tags
can be reused in different programs
without changing tag names.
Note that the I/O tags listed in the table
are the tags that are automatically
created when a module is configured.
This does not refer to any alias tags that
might be created.
Mention that the scope dictates the tags
folder in which you will create the tag.

Tags can be created at two different scopes:


Controller-Scoped: Tags, such as I/O tags, that are available to
every task and program within a project.
Program-Scoped: Tags that are only available to the program to
which they are associated.
Scope requirements for specific tags are outlined in the following
table:
To use a tag . . .

In more than one program within the project


To produce or consume data (share it with other
controllers)

Controller-scoped

In a message instruction or with a PanelViewt 1000C


terminal
In only one program (and it is not a message
instruction or a produced or consumed tag)

Note that tags can be defined through a


dialog box or through the Edit Tags
worksheet. The worksheet may be faster
when creating multiple tags.

Creating a Tag

Direct students to the Description entry


in the Glossary of the Procedures Guide
for the description rules.

Style
Data Access Control (optional)
Description (optional)

Note that alias tags will be presented


later in this lesson.

Then select this scope . . .

That is generated when an I/O module is configured


(I/O status, data, etc.)

Program-scoped

To create a tag, the following parameters must be defined:


Tag Name
Data Type

Note that the Monitor Tags tab is for


viewing data that is active in the
controller.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2sb56r

Organizing Data in an RSLogix 5000 Project

4--5

The parameters are defined in the Edit Tags tab of the Tags window:

Tag

Filter

Another Name
for the Tag

Operand Descriptions
Data Type

Wildcard Filter

Data Access
Control

Display
Style

Icon Indicating
Controller-Scoped
Tags

White = Editable
Field
Editing View

State that tag names are not


case-sensitive. However, case
may help with readability.

Tag Name

Tip "

Have the students turn to the Glossary


of the procedures guide. Review the
naming conventions.

Naming conventions are listed in the Name entry in the Glossary


of the Procedures Guide.
Creating controller-scoped tags and
program-scoped tags with the same names can
cause confusion.

Note that these naming conventions


apply to most components in an
RSLogix 5000 project.

Data Type
Tags can be created using the following data types:
Any pre-defined data type

Any user-defined data type


Style
State that data from a BCD thumbwheel
could be viewed in the hexadecimal
radix.

Style is the display radix for each data type:


For certain data types, the style can be changed to a different
display radix. E.g., the default style for a tag of the DINT data
type is decimal:

-- The style for DINT tags can be changed to binary, octal,


decimal, or hexadecimal.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--6

Organizing Data in an RSLogix 5000 Project

Defining an Alias Tag


Alias Tag: An additional name for a tag (or other alias tag):
The tags refer to the same area of memory.
Tell students that if a base tag is used as
an address, any corresponding alias
tags will not be displayed.
State that if the base tag is used directly
in an instruction, that is all that is shown.
Compare this to calling someone by
their name instead of their employee
number, or referring to a
Tip
module by a name instead
of a part number.

"

The tags, therefore, reflect the same values and changes.


Base Tag: The tag to which the alias refers (i.e., the tag where data is
actually stored).
If an alias tag is used as the address for an instruction, the alias tag is
always displayed.
When programming, it may be confusing to sometimes use an alias
tag and other times directly use the tag to which the alias refers.

In the following graphic, trace the chain


Alias tags are commonly used to rename I/O tags that are generated
of alias tags, beginning with Start. When
with complex naming structures:
you reach Alias_4, it will be easier to
explain Base tags.
Alias Tag Name
What the Tag is an Alias for (e.g., an I/O Tag)
If this lesson is part of a standard
school, state that students will
learn how to configure I/O
modules and interpret the
generated I/O tags in the
Communicating with a
Local 1756 I/O Module lesson.
Base or Original Tag
(If There is a Chain of Alias Tags)

Note that the hierarchy of alias tags is


available in the cross--reference report
for a tag. This can be a very helpful
troubleshooting tool.

Use caution in developing applications that utilize


multiple alias tags for the same base tag.

You cannot create a program-scoped alias tag for a


controller-scoped tag of the same name.

Note that there is a separate lesson that


presents the steps for these tasks.
If students are familiar with producing
and consuming tags, point out that the
setup in RSLogix 5000 software is the
same. For Ethernet, the producing
controller is connected to a remote
1756-ENET or 1756-ENBT module.

E 2012 Rockwell Automation, Inc. All rights reserved.

Produced and Consumed Tags


The following controller-scoped tags can be created to share data
between controllers:
Produced Tag: A tag that is shared with other controllers over
the backplane or a control network, such as ControlNett or
EtherNet/IPt.
Consumed Tag: A tag that holds the value of a produced tag that
is received from another controller over the backplane or a
control network.
Rev. August 2012
TA2sb56r

Organizing Data in an RSLogix 5000 Project

4--7

Creating an Array of Tags


Note that an array that is a member of
user-defined data type can only have
one dimension.

Array: A numerically indexed sequence of elements of the same


data type. An array tag occupies a contiguous section of memory in
the controller with each element in sequence. Arrays can have one,
two, or three dimensions.
Element: A single position within an array.

Note that the array Part[40] will have


elements of Part[0] to Part[39].
Point out that you can create an alias
tag for each element of an array. For
example, Cold_Timer might be an alias
for TIMER [34].

Example: Array
To make INT records for 6 parts, a one-dimensional array of INTs
is created:
1 DINT (32 Bits)

Relate this to PLC-5 data, where N7:0 to


N7:9 is a one-dimensional array of
integer data types.

1 INT

Note that if maintenance personnel who


will work on the project are used to
working with PLC-5 controllers, you can
create an array named T4. Each
element, e.g., T4[11], will look similar to
a PLC-5 timer, with brackets instead of a
colon.

Point out that if you create an array tag


from the Tags Editor window, and
manually enter the brackets and
numbers, the first value entered in the
brackets becomes the X value. The
second number entered is Y and the
third is Z.
Note that if you enter the dimensions
from the Tags Properties window Dim0
becomes Z if you create a three
dimensional array. Depending on how
the tag is created you could end up with
two different results.

? What is a structure?
Answer: A data type made up of a
mixture of other data types, such as a
timer (with a mix of DINTS and BOOLS).

Rev. August 2012

Part_Data[1]

Part_Data[0]

Part_Data[3]
Part_Data[5]

Part_Data[2]
Part_Data[4]

The elements in the array occupy memory in order. The array always
starts at 0 and extends to the number of elements minus 1.
An array in the Tags window is shown in the following graphic:
Array of 6 (0- 5) INTs

Same Data Type

Single Element

An array must be created with the following rules in mind:


An array can have up to three dimensions unless it is a part of a
UDT, where then it can have only one dimension.
An array can be of one data type only. Arrays support the
following data types:
-- Any pre-defined data types except Axis data types, Message,
or Motion_Group
-- A user-defined data type
E 2012 Rockwell Automation, Inc. All rights reserved.
TA2sb56r

4--8

Organizing Data in an RSLogix 5000 Project

Tip "

Data of the same type is not automatically grouped in memory. To


store all timers together, create an array of timer tags.

Array Storage
Relate this to a Microsoft Excel
worksheet where one dimension is a
column, two dimensions are rows and
columns (a standard worksheet), and
three dimensions are several pages of
rows and columns.
One Dimension

Arrays can have up to three dimensions and store data in the


following manner:
Two Dimensions

Three Dimensions

Example: Three Dimensional Array


Add that an array might include data
sorted by shift number, part type, and
part number. Note that data might also
be stored by shift, day, and week. Or, x
and y coordinates (for retrieving a part in
storage).

A three dimensional array might store the following data:


Part Number

Part Number, Size

Part Number, Size, Color

Note that each square is an element.


Note that in memory, the first dimension
will not increment until the second
dimension reaches its upper limit.

= Part Number 2, Size 3, Color 0

Ask students to determine the total


number of elements in each of the part
number arrays.

Tip "

E 2012 Rockwell Automation, Inc. All rights reserved.

To determine the total number of elements in an array, multiply the


number of elements in each dimension.
A tag uses a DINT (32 bits) even if it is smaller (8 bits). To conserve
data, put 32 BOOLs, four SINTs, or two INTs into an array.

Rev. August 2012


TA2sb56r

Organizing Data in an RSLogix 5000 Project

4--9

Array Addressing
Note that this section presents the
formats for array addresses. Entering
the addresses will be presented in the
Entering, Editing, and Verifying Ladder
Logic in an RSLogix 5000 Project
lesson.

In an array, the following can be addressed:


A numeric element (fixed)

A variable element
A numeric bit
A variable bit
Numeric Element Addressing

Note that the number or expression in


the brackets is the subscript. Point out
the square brackets that enclose the
element number. Remind students that
the elements begin with 0 (zero).

To access a specific array element (e.g., one DINT in an array of


DINTs), use the following address format:

Note that the subscript is the value or


expression in the square brackets.

Example: Numeric Element Addressing

Tip "

ArrayName[Element Number]

PartData[3]
This reference is fixed because the element value of 3 will not
change.
Data that is stored in two- and three-dimensional arrays can be
addressed using the same format. Additional dimensions are
separated by commas, as outlined in the following table:
Number of
Dimensions

Format

Example

Array_name[0]

Part[3]

Array_name[1, 0]

Part[2,4]

Array_name[2, 1, 0]

Part[3,5,1]

Example: Numeric Element Addressing for Multiple Dimensions


Array=
Part[8]

Part[8,6]

Part[8,6,4]

Part[4,5,2]

Part[2]

Rev. August 2012

Part[1,3]

Part[2,3,0]

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--10

Organizing Data in an RSLogix 5000 Project

Variable Element Addressing


Add that this is similar to indirect
addressing in PLC-5 programming.

To change the array element that your logic references, use a tag or
expression to point to the element, using the following address
format:
ArrayName[Tag or Expression]
Example: Variable Element Addressing
Part[SerialNumber]
Part[SerialNumber*5]

In the last example, add that if


position1= 7, and position2 = 3, then the
part value is 4.

Part[Position1--Position2]
You can use the following mathematical operators in an expression
to specify an array element:
Operator

Description

Add

--

Subtract/Negate

Multiply

Divide

And

And

Frd

BCD to integer

Not

Complement

Or

Or

Tod

Integer to BCD

Sqr

Square root

Xor

Exclusive or

As an example, state that if


Position1--Position2=48 and the array is
an array of only 40, a major fault will
occur.

Any array value that you enter must be within


the boundaries of the specified array.
Instructions that view arrays as a collection of
elements generate a major fault if a value
exceeds its corresponding dimension.
Numeric Bit Addressing

State that the delimiter before the bit is a


period.

A bit within one element of an array can be addressed using the


following address format:
ArrayName[Element Number].Bit

Note that the example addresses the


second bit in tag element 1 of the part
array.

Example: Numeric Bit Addressing


Part[1].2
Mix_Timer[5].DN

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2sb56r

Organizing Data in an RSLogix 5000 Project

4--11

Variable Bit Addressing


To dynamically change the value of a bit, use the following address
format:
ArrayName[Element Number].[Tag or Expression]
Example: Variable Bit Addressing
Part[SerialNumber].[Position1--Position2]
Array Addressing Summary
Point out that a period signifies a bit or a
member. A tag without a period is the
whole address.

The following table presents a summary of the array address types,


formats, and examples:
Type

Format

Example

Numeric
element

ArrayName[Element Number]

Part[5]

Variable
element

ArrayName[Tag]

Station[Position]

ArrayName[Expression]

Station[Position+5]

Numeric
bit

ArrayName[Element].Bit

Part[5].15

Variable
bit

ArrayName[Element Number].[Tag]
ArrayName[Element Number].[Expression]

Part[Index].[MyIndex]
Part[Index].[MyIndex+31]

Verifying Tags
Mention that the verification process is
similar to the RSLogix 5 and 500
process with the addition of tag
verification.

After tags are entered, they can be verified. In this process, the
software looks for tag errors.
Errors found in the verification process are displayed in the Output
window:

Double-click to
Go to the Error or
Press F4

In the Tag window, tags with errors are also marked with an

State that BOOL data types can now be


toggled in the Monitor tags window
(right-click the tag value or press
[CTRL]+T).

Rev. August 2012

Monitoring and Editing Data


Tags values can be monitored and edited online through the Tags
window or certain instructions.

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--12

Organizing Data in an RSLogix 5000 Project

Point out the various unlabeled elements


of the spreadsheet, including the rows,
cells, columns, etc.
Mention that operand descriptions will
appear with the tag in logic if configured
to do so.
Right- Click to
Hide/Show
Columns

Monitor Tags Tab


The Monitor Tags tab is a direct view of a controllers memory:
Scope of Current
Collection

Tag and Members

Data Type
Blue
Operand Descriptions
Arrow
(up to 512 characters)

Value in
Controller
Expand to See
Structure Members or
Bits within the Tag
Monitoring View

A blue arrow at the top of a column signifies that


a change to any value in this column will
immediately take effect in the controller when you
press Enter or click another cell.

Stress that finding tags is a key step in


monitoring. The way in which tags are
filtered can help limit the number of tags
displayed. If used improperly, it can also
hide required tags.

Tags and Members


Tags of the same data type are not automatically displayed together
in the Monitor Tags tab:
Tags can be displayed alphabetically (default mode).
Tags can be sorted and filtered (e.g., show DINT tags only).

Tags can be filtered with wildcards (filtered based on their name

or description in addition to their scope, type, and classification).


Tags that are structures (TIMER, etc.) can be expanded to display
members.
Display Style
State that data from a BCD thumbwheel
could be viewed in the hexadecimal
style.

The Style parameter controls how data is displayed for certain tags.
Example:
The default style for a tag of the INT data type is decimal. This
can be changed to binary, octal, decimal, or hexadecimal.

Tip "
E 2012 Rockwell Automation, Inc. All rights reserved.

Style is for display only; it does not affect how data is stored in the
controller.
Rev. August 2012
TA2sb56r

Organizing Data in an RSLogix 5000 Project

4--13

When online, only the tag name, style, and


description can be changed.

From the Tag Properties View window you can monitor a tags
properties, document, toggle values or Force. The Window can also
be docked, or set to auto hide, using the Auto Hide button
located in the banner:
Tag Properties
View Window

Docked or Auto
Hide Button
Tag
Information

Tag Value and


Force Mask

Stress the difference between editing the


tag (e.g., tag name) and changing the
tag data, such as the preset.
In this ladder logic example, point out
that values can be monitored and certain
values, such as timer presets, can be
edited.

Monitoring and Editing Tag Values through a Routine


Tag values can be monitored and sometimes edited online through
instructions in routines:
Example: Ladder Logic Routine
Tag values can be monitored through the corresponding
parameters of an instruction:

Blue Arrow: Change will


Immediately Take Effect
in the Controller

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--14

Organizing Data in an RSLogix 5000 Project

Example: Function Block Diagram Routine


Note that only the parameters with a
checkmark in the Vis column (Visibility)
are displayed on the function block.

Visible function block parameters can be monitored through the


instructions. Others can be monitored through the Properties
dialog box:

Parameter
Names

Parameter
Values

Parameter
Data Types

Parameter
Description (Up to
128 Characters)

Visibility
Enabled

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2sb56r

Organizing Data in an RSLogix 5000 Project

Note that the Watch tab is accessed


from the View menu.

4--15

Monitoring and Editing Tag Values in the Watch Tab


The Watch tab displays all tags referenced by an active routine of
any type. Values can be monitored or edited:

Refresh Structured
Text Data

Changing Values

Force

Create a
Custom
Monitor

Tag Scope

Because structured text values cannot be


monitored in the programming language, the
Watch tab is extremely useful when monitoring a
structured text routine online.

? Who has used Custom Data

Monitors in RSLogix 500 software?

The Watch tab does not update as you make edits


to a structured text routine. It is updated when you
verify the routine.

Quick Watch Tag Monitor


Note that the custom list of tags allows
you to see only select tags while viewing
code. This helps you avoid the searching
and scrolling necessary with the
Tags monitor.

Rev. August 2012

The Quick Watch Tag Monitor allows you to assemble a custom list
of tags to monitor:
Tags from the controller-scope

Tags from the open routine

Tip "

You can drag tags from the open routine editor to the Quick Watch
Tag Monitor.

Tip "

The tags are maintained in the monitor only while the project is
open.

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2sb56r

4--16

Organizing Data in an RSLogix 5000 Project

Persistent Quick Watch


Features of Persistent Quick Watch include:
Enables creation of named tag groups (Quick Watch Lists)
-- Tags can be added via drag-and-drop from routine(s), from tag
editor/monitor or manually selected via tag browser
Improves ease-of-use and simplifies maintenance
Lists can be easily selected for debugging purposes during
integration or operation and are persistent within the
RSLogix 5000 project:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2sb56r

Organizing Data in an RSLogix 5000 Project

Heres How

4--17

To perform the following tasks:


Create a tag
Define an alias tag

Create an array of tags


Verify tags
Monitor and edit data
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project.

Monitoring data in RSLinx isnt an


objective of the lesson but it is useful for
the exercise and student.
Note that an RSLinx Classic activation
file is required to access the data table
monitor.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Using array dimensions text boxes

Structure of a created array (in the Monitor Tags list)

Show and Toggle Columns options in the Edit Tags


windows

Using grid to pick a bit

Monitor Data in RSLinx Classic Professional Software


Tags can also be monitored (but not edited) in RSLinx Classic
Professional software.

Read-Only Values

Your Turn
Rev. August 2012

Now its your turn. Do Exercise A and return here when youre done.
E 2012 Rockwell Automation, Inc. All rights reserved.
TA2sb56r

4--18

Organizing Data in an RSLogix 5000 Project

Data Access Control

Mention that External Access Control


does not apply to Module Defined tags
or aliases to them.

The data access properties of a tag is used to control how people and
programs access the tag at run-time:
Use External Access to control how an external application, such
as an HMI, historian, or OPC data server, can access a tag:
-- Arrays -- Top level only; UDTs -- by member
-- Possible values are:
-- Read/Write: External applications can both read and
modify the tags value
-- Read Only: External applications can read the tags value,
but not modify it
-- None: External applications can neither read nor write the
tags value
Use Constant to control how controller logic can access a tag:
-- When this attribute is set, the tags value cannot be changed
programmatically
Data Access Control Selections are shown in the following graphic:

Tags Window

Data Access
Control Selections
User-Defined
Data Type

Mention that if a tags external access is


set to None, the tag will not show up in
other application browsers.
Note that if a tag is set to Constant and
a program instruction tries to write a
value to the tag, this would appear as an
error when verifying the project.

Your Turn
E 2012 Rockwell Automation, Inc. All rights reserved.

Data Access Control Benefits


These options give you a way to protect data from being accidentally
or intentionally written to. They can also speed-up HMI creation by
reducing the number of tags that are visible while browsing the
controller from the HMI development environment.
Now its your turn. Do Exercise B.

Rev. August 2012


TA2sb56r

Exercise: Organizing Data in an RSLogix 5000 Project

4--19

Exercise: Organizing Data in an


RSLogix 5000 Project
Exercise A

In this exercise, you will practice the following tasks:


Creating a tag
Defining an alias tag

Creating an array of tags


Verifying tags
Monitoring and editing data
Context:
Sample code to test your production line has been developed. This
code was written before your hardware installation. The hard-wired
addresses were not known when the code was created. You now need
to create base and alias tags and an array of tags so that the code will
function properly.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the TA2_1756r_A1.acd file.
2. Review your project and verify the tags referenced in the
MainRoutine of the Line_1 program have not been created.
3. Create a new tag with the following properties:
Name: Stop_Motor
Type: Base
Data Type: BOOL
Scope: Program (Line_1)
4. Create a new alias tag with the following properties:
Name: Start_Motor
Type: Alias
Alias For: Local:2:I.Data.0
Scope: Program (Line_1)
5. Create a new alias tag with the following properties:
Name: Motor_On
Type: Alias
Alias For: Local:0:O.Data.0
Scope: Program (Line_1)

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2e56r

4--20

Exercise: Organizing Data in an RSLogix 5000 Project

6. Create a new tag with the following properties:


Name: Motor_Time
Type: Base
Data Type: TIMER
Scope: Program (Line_1)
7. Within the Program Tags monitor, enter 10,000 for the
Motor_Time.PRE member of the Motor_Time tag.
8. Create a new alias tag with the following properties:
Name: Motor_Speed
Type: Alias
Alias For: Local:8:I.Ch0Data
Scope: Program (Line_1)
9. Create a new alias tag with the following properties:
Name: Speed_Out
Type: Alias
Alias For: Local:7:O.Ch0Data
Scope: Program (Line_1)
10. Create a single-dimension array that will be used to store the
system date and time. This array requires a separate element for
the system year, month, day, hour, minute, seconds, and
microseconds. Configure the array with the following properties:
Name: ClockTime
Type: Base
Data Type: DINT
Array Dimension 0: 7 elements
Scope: Controller
External Access: Read only
11. Download your project to the controller in slot 1 of your
workstation.
12. Place the controller in Run or Remote Run mode.
13. How could the individual members of this UDT be set so they
would not be accessible from any other application?

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2e56r

Exercise: Organizing Data in an RSLogix 5000 Project

4--21

14. Verify you properly created and aliased your tags by performing
the following actions:
A. Press DI0 and observe DO0 indicator light turn on.
B. Adjust pot AI0 and confirm potentiometer AO0 updates in
value while the motor is enabled.
C. Confirm that after ten seconds indicator DO0 turns off.
D. Monitor the ClockTime array and verify the tag is populating
with system date and time information.

Tip "

The system date and time may not be current.


15. Go offline and close your project.

How Did You Do?

Turn to the Answers section.

Exercise B

In this exercise, you will practice setting a tags external access


option, and verify the setting.
Context:
You have created and organized a project file for your production
lines. You now want to protect certain tags from outside access.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the TA2_1756r_B1.acd file.
2. Download your project to the controller in slot 1.
3. Make sure your processor is in Run mode.
4. Monitor the ClockTime tag in RSLinx software and make sure
some of the data is changing.
5. Return to the RSLogix 5000 software and go offline.
6. In the Controller tags, set the ClockTime tags external access to
None.
7. Download your project to the controller in slot 1.
8. Is the ClockTime tag visible in RSLinx software?

How Did You Do?


Rev. August 2012

Turn to the Answers section.


E 2012 Rockwell Automation, Inc. All rights reserved.
TA2e56r

4--22

Exercise: Organizing Data in an RSLogix 5000 Project

Answers

Exercise A
3. Your Stop_Motor tag should have the following properties:

4. Your Start_Motor tag should have the following properties:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2e56r

Exercise: Organizing Data in an RSLogix 5000 Project

4--23

5. Your Motor_On tag should have the following properties:

6. Your Motor_Time tag should have the following properties:

7. Your Motor_Time tag should be configured similar to the


following example:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2e56r

4--24

Exercise: Organizing Data in an RSLogix 5000 Project

8. Your Motor_Speed tag should have the following properties:

9. Your Speed_Out tag should have the following properties:

10. Your ClockTime tag should have the following properties:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2e56r

Exercise: Organizing Data in an RSLogix 5000 Project

4--25

13. Set the external access to none.


14.
D. Your ClockTime tag should contain data in each member of
the array like the following example:

Exercise B
6. After setting the ClockTime tags external access to None, your
screen should appear similar to the following:

8. No, the ClockTime tag is not visible. Your screen should appear
similar to the following:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


TA2e56r

4--26

Exercise: Organizing Data in an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


TA2e56r

Lesson

Creating a User-Defined Data Type


in an RSLogix 5000 Project
What You Will Learn

After completing this lesson, you should be able to:


Create a user-defined data type
Export and import user-defined data types

When You Will Do This


As you develop your logic, you will typically take advantage of
user--defined data types to organize your data.

Before You Begin

Creating a User-Defined Data Type

Add that in RSLogix 5000 software,


timers have some additional bits.
Note that in a PLC-5 controller, T4:5 has
its memory defined using the TIMER
template.
Data Type

Some predefined data types, such as a TIMER, are structures of


several different data types:

Mixed
Data
Types

Members of a
TIMER Data Type

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


UDTsb56r

5--2

Creating a User-Defined Data Type in an RSLogix 5000 Project

Review: An element is one part of an


array.
A member is one part of a data type.

User-Defined Data Type: A structure created by a user to group


data in an application.
Member: One defined data type within the structure.
Example: User-Defined Data Type

Chalk Talk: Before showing the next


slide, have the students help you make
a list of the members that might go into
the user-defined data type for the tank
example. Have the students select the
data type of each member.

There are several identical tanks in a plant. Each tank stores data
for the following values:

Temperature
Steam Valve State
Time over Temperature
Level

Add that this is a more efficient use of


memory than creating a single BOOL for
the steam valve, as the single BOOL
would use a DINT (32 bits) by itself.

To store this data, a user-defined data type can be created. The


data type is a template for storing the information:

Size
Members of
Tank Structure

Provide other examples, including


examples of recipe parameters and
storage data types.

External
Access
Settings

A tag for each tank can be created using this user-defined data
type.

Note that creating an array is easier than


creating 20 individual tags.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


UDTsb56r

Creating a User-Defined Data Type in an RSLogix 5000 Project

Note that in this scenario, the


user-defined data type is created first,
and then the array of tags is created.

5--3

Example: Arrays and User-Defined Data Types


If there are 25 tanks (5 rows of 5), a programmer can make an
array of tags that uses a user-defined data type:

Tank [0,0]

Total Array = [5,5]

One Specific Element = Tank[1,3]

User-Defined Data Type Parameters

Stress that arrays embedded within a


user-defined data type can only have
one dimension.

Note that memory size is updated after


each member is added and accepted in
the softwares Edit Data Type dialog box.
Chalk Talk: On the board, write the
following data types in order: BOOL,
DINT, and then a BOOL. Discuss how
this structure would take more memory
than the DINT followed by both BOOLs.
Add some additional examples.

Note that this is similar to how you


address TIMER members in other
projects (T4.EN or T4.TT).
State that the delimiter is a period.

To create a user-defined data type, you must define the following


parameters for each member:
A name of up to a maximum of 40 characters

A display style
A description (optional)
One of the following data types:
-- Any pre-defined data type
-- Another user-defined data type
-- Single-dimension array of any pre-defined data types
-- Single-dimension array of any user-defined data types
The memory required by a user-defined data type depends on the
number of members, the data type for each member, and how the
members are organized.
User-Defined Data Type Addressing
Just as you addressed TIMER members in other projects (T4.EN or
T4.TT), you can address members of a user-defined structure using
the following addressing structure:
Tag.Member
Examples: User-Defined Data Type Addressing

Point out that the last example contains


a structure (Load_Info) that is embedded
in the user-defined data type.

SystemTimer.Pre
WaterTank.Level
Input_Location.Load_Info.Height

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


UDTsb56r

5--4

Creating a User-Defined Data Type in an RSLogix 5000 Project

Exporting and Importing User-Defined Data Types


Exporting and importing allows you to have more flexibility in your
programming and creates a user-defined data that:
Is easy to deploy

Creates reusable programming code


When you export a user-defined data type to an .L5X file, the file
contains the definition and any references to the project.

Export a UDT
using a .L5X File

Importing a user-defined data type allows you to perform several


edits in one operation.
When you import a user-defined data type, you can:
Import offline or online (including Remote Run mode)

Import into the same project or different one


Create a new user-defined data type
Update an existing user-defined data type
Import a UDT
into the same or
new project
Specify final
name

E 2012 Rockwell Automation, Inc. All rights reserved.

Obtain
collision
information

Rev. August 2012


UDTsb56r

Creating a User-Defined Data Type in an RSLogix 5000 Project

Heres How

5--5

To perform the following tasks:


Create a user-defined data type
Export and import user-defined data types
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the steps below to help guide you
during the demonstration:
Open the Start Pages and use the
following tools to demonstrate each task:

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Location of the procedures in the Start Pages

How Do I " Tags, Data Types &


Other Data " Create a
User-Defined Type

Difference between a user--defined data type and an


array

Whats New " Import Online Programs, Routine and Instructions

If the Start Pages are unavailable or


if students prefer, use the
CCP143_1756r_DEM2.acd project.

Overwriting a user--defined data type with a newer


version

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


UDTsb56r

5--6

Creating a User-Defined Data Type in an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


UDTsb56r

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project

5--7

Exercise: Creating a User-Defined


Data Type in an RSLogix 5000
Project
Exercise A

In this exercise, you will practice the following tasks:


Create a user-defined data type

Export and import user-defined data types


Context:
You have just created and organized a project file for your line 1
production line. You are now ready to develop code for a second,
identical, production line. Your application requires that you store
each production lines output information in user-defined tags.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the UDT_1756r_A1.acd file.
2. Create a UDT named Motor_Status with the following
members:
Name

Data Type

Active

BOOL

Fault

BOOL

ProcessTime

DINT

MotorSpeed

REAL

3. Create a new tag with the following properties:


Name: Line_1
Type: Base
Data Type: Motor_Status
Scope: Controller
4. Open MainRoutine within the Line_1 program.
5. Modify rung 4 so that member Line_1.Active is the operand of
the OTE instruction.
6. Modify rung 5 so that member Line_1.ProcessTime is the
Destination operand of the Move instruction.
7. Modify rung 6 so that member Line_1.MotorSpeed is the
Destination operand of the Move instruction.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


UDTe56r

5--8

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project

8. Create a new tag with the following properties:


Name: Line_2
Type: Base
Data Type: Motor_Status
Scope: Controller
9. Open MainRoutine within the Line_2 program.
10. Modify rung 4 so that member Line_2.Active is the operand of
the OTE instruction.
11. Modify rung 5 so that member Line_2.ProcessTime is the
Destination operand of the Move instruction.
12. Modify rung 6 so that member Line_2.MotorSpeed is the
Destination operand of the Move instruction.
13. Download your project to the controller in slot 1 of your
workstation.
14. Place the controller in Run or Remote Run mode.
15. Verify you properly created your UDT tags by monitoring them
and confirming they update in value when Lines 1 and 2 are
operating.
16. Export the Motor_Status user-defined data type project
component.
17. Go offline.
18. Open the UDT_1756r_A2.acd file.
19. Import the Motor_Status user-defined data type project
component into the UDT_1756r_A2.acd project.
20. From the Import Collision dialog box, click Collision Details.
21. What information changed in the imported UDT?

22. Click Close.


23. Overwrite the existing Motor_Status UDT and keep the same
final name.
24. Click OK.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


UDTe56r

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project

5--9

25. Create a new tag with the following properties:


Name: Line_3
Type: Base
Data Type: Motor_Status
Scope: Controller
26. Open MainRoutine within the Line_3 program.
27. Modify rung 4 so that member Line_3.Active is the operand of
the OTE instruction.
28. Modify rung 5 so that member Line_3.ProcessTime is the
Destination operand of the Move instruction.
29. Modify rung 6 so that member Line_3.MotorSpeed is the
Destination operand of the Move instruction.
30. Download your project to the controller in slot 1 of your
workstation.
31. Place the controller in Run or Remote Run mode.
32. Verify you properly created your UDT tags by monitoring them
and confirming they update in value when Line 3 is operating.
33. Go offline and close your projects.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


UDTe56r

5--10

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project

Answers

Exercise A
2. Your Motor_Status UDT should look similar to the following
example:

7. Rungs 4--6 of the MainRoutine in the Line_1 program should


now look similar to the following example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


UDTe56r

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project

5--11

12. Rungs 4--6 of the MainRoutine in the Line_2 program should


now look similar to the following example:

21. The data type size and the structure changed.

23. You should have configured the imported UDT as follows:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


UDTe56r

5--12

Exercise: Creating a User-Defined Data Type in an RSLogix 5000 Project

29. Rungs 4--6 of the MainRoutine in the Line_3 program should


now look similar to the following example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


UDTe56r

Lesson
Note that this lesson briefly reviews
some concepts from the prerequisite
course before presenting more
advanced concepts such as Quick Keys.
Tailor this lesson as needed.

What You Will Learn


Poll the students to see how many have
experience using a Windows-based
programming software from their job, or
pre-requisite classes.
Pace this lesson based on the general
experience level of your class.
Describe which method you personally
find to be fastest and/or easiest when
entering ladder logic.

Before You Begin


Review the first two methods if needed.
Students should be familiar with these.

Entering, Editing, and Verifying


Ladder Logic in an RSLogix 5000
Project
After completing this lesson, you should be able to:
Enter and edit ladder Logic using ASCII mnemonics

Configure ladder logic quick keys


Copy and reuse ladder logic components
Verify a project or a project component (online)
When You Will Do This
Once you have laid out your task and program structure and defined
your data types, you can begin to develop your ladder logic.

Entering and Editing Ladder Logic Components


The RSLogix series of software offers the ability to enter or edit
ladder logic using the following basic methods:
Dragging method
Right-click/Insert key
The RSLogix series of software also offers faster methods for more
proficient programmers:
ASCII mnemonic editing

Quick keys

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2sb56r

6--2

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

ASCII Mnemonic Editing


State that ASCII stands for the American
Standards Code for Information
Exchange.

ASCII mnemonics are text codes that represent instructions and


ladder logic elements:
ASCII Text
Entry Line
Graphical
Ladder
Logic

Read each mnemonic in the graphic and


show the corresponding graphical
element.
Note that unlike RSLogix 5 and 500
software, in RSLogix 5000 the ASCII line
is not highlighted by default and
therefore more difficult to accidentally
erase.

In the graphic, note the following items:


The mnemonics are entered, followed by the tag to be operated
on or a ? or a space.
Start and end points for branches can also be entered:

-- BST (Branch start)


-- NXB (Next Branch)
-- BND (Branch End)
Configuring Ladder Logic Quick Keys

Point out that Quick Keys are enabled in


the Options for the Ladder Editor. This
step is included in the procedure in the
Procedures Guide.

To quickly enter instructions and other ladder logic elements using


single keyboard keys, assign quick keys:
Quick keys for several common instructions including XIC, XIO,
and OTE are already assigned.
Quick keys must be enabled to be used.

Copying and Reusing Ladder Logic Components


Describe examples of real applications,
such as auto production lines, where
common machine cells are repeated.

E 2012 Rockwell Automation, Inc. All rights reserved.

If ladder logic contains program-scoped tags, the ladder logic can be


easily copied and reused in different programs without changing the
tag names.

Rev. August 2012


EN2sb56r

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

6--3

Example: Copied Ladder Logic


Because the programs are local, the same ladder logic and the
tags (e.g., Station_Timer) can be copied to all programs.

Same
Program_Scoped
Tag Name

Different Program
Same
Program_Scoped
Tag Name
Easy Copy and Paste

The tags within the program are commonly alias


tags for different I/O points.

Remember that controller-scoped tags are shared


by all programs. Be careful when accessing the
same controller-scoped tag from different
routines.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2sb56r

6--4

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

Other Short-Cuts
These additional methods will also make you a more efficient
programmer:
RSLogix 5000 software also offers the ability to open a second
instance of the software:

-- This allows you to easily copy and paste ladder logic between
two open files.
For ladder logic and structured text, you can save instruction
defaults:
-- These defaults are saved to the computer and apply to all
projects opened on the computer.
State that up to four instances of the
software can be opened at one time.

Verifying a Project or a Project Component Online

Note that you can also copy from one


file, close the file, open a different file,
and then paste into the other file. The
copied information is maintained
on the clipboard.

Modifying code online can help you quickly make changes without
stopping production.
Online Safety Warning
When editing ladder logic online, keep the following warning in
mind:

Describe any real-world situations that


you are aware of in which online editing
caused extensive damage in a plant.

? Define offline and online?


Answer: Offline means that the
workstation (computer) is displaying a
copy of the project stored in the
computer memory only. Online means
that the workstation (computer) is
displaying and changing copy of the
project stored in the controller memory.

Add that the Online graphic is animated


in any online mode.
Also note that the left and right power
rails are illuminated in green in the
online mode to indicate that the ladder
logic is being executed.
E 2012 Rockwell Automation, Inc. All rights reserved.

Use extreme caution when entering or editing


ladder logic or data, forcing values, or making other
changes online that will affect the control of
devices. Mistakes can cause unintended machine
motion or loss of process control, possibly injuring
personnel and damaging equipment. Before
performing procedures online, complete these safety
precautions:

Determine if changes must be made online.


Verify that your company permits online
entering and editing.

Assess how machinery will respond to changes.


Check proposed changes for accuracy.
Notify all personnel of the changes.
Verify that you are online to the correct
controller.

Because changes in any online mode can affect


machine and process control, before entering
ladder logic, verify the current communications
mode using the Online toolbar.
Rev. August 2012
EN2sb56r

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

6--5

Performing Online Ladder Logic Edits


Editing ladder logic elements online requires different steps in
different modes:
State that the additional online steps are
another reason that online editing is
slower and more difficult. The extra
steps are in place for user safety.

When editing in
this mode . . .

You must perform the


following actions . . .

Routine(s) edits exist only in the


computer. Necessary when changing
an existing rung, but not necessary to
add a new rung.
The project is examined for errors.
Verification can be done separately or
automatically if you skip to the Accept
edits step.
The revised routine(s) are transferred
to the controller.
Routine(s) edits exist only in the
computer. Necessary when changing
an existing rung, but not necessary to
add a new rung.
The project is examined for errors.
Verification can be done separately or
automatically if you skip to the Accept
edits step.
The revised routine(s) are transferred
to the controller but the previous
program continues to execute.
The revised routine(s) executes,
controlling the physical outputs, but the
previous program still exists in the
controller. You can return to the
previous program using Untest edits.
The previous routine(s) language is
discarded and the revised program
continues executing.

Start edits

Tell students that the Verify edits step


can be considered optional since the
verification process will automatically
take place with the Accept edits step.

Online in the Remote


Program mode

Verify edits

Accept edits

Start edits

State that accept puts the change into


the controller memory.

Verify edits

Online in the Remote


Run mode

Important: Stress the difference


between controller Remote Test mode
(outputs set according to Program mode
state) and the Test edits step in Verify,
Accept, Test, Assemble (outputs
scanned and set using the program).
Program mode state is set in the output
module configuration.

If students are interested, review the


names of all of the buttons during the
demonstration using the Tooltips.

Description . . .

Accept edits

Test edits

Assemble edits

Online verification buttons can be used to complete this process:


Standard Toolbar
Verify
Controller

Verify Open Routine

Single-Rung Options

Program-Level Options

Online Edit Toolbar


Cancel Pending Rung Edit

Tip "
Rev. August 2012

Finalize Edits Option

Use tooltips to identify the buttons.


E 2012 Rockwell Automation, Inc. All rights reserved.
EN2sb56r

6--6

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

For the invalid data type error, clarify


that a tag of the DINT data type cannot
be used in an XIC bit instruction unless it
is specified to the bit level (e.g., DINT.0
and not just DINT).

When verifying, the software looks for the following errors:


Improper instruction placement
Improper or incomplete addressing

Tags with an invalid data type for the instruction (mismatches)


Improper tag creation
Empty rungs
Shorted branches (reported in error tab as a warning)
Duplicate destructive bits (reported in error tab as a warning)

Point out that this option can be enabled


using ToolsOptions.

The duplicate destructive bit option looks for


instructions that modify the same bit. This
includes instructions such as OTE, ONS, OSF,
and OSR instructions in ladder logic. This option
is enabled by default.

Mention that this is known as duplicate


OTE detection in PLC/SLC processors.
Note that this also includes bits used in
other languages, such as OREFs in
FBD, bits in transitions in SFCs, and bit
assignments in ST.

Presence of Always False Instruction (AFI) (reported in error tab


as a warning)

Presence of forces (reported in error tab as a warning)


Note that this is an option found
in the ToolsOptions dialog box.

Auto Rung Verification: An option that can be enabled to


automatically verify a rung.
Errors found in the verification process are displayed on the Errors
tab of the Output window:

Double-Click to
Go to the Error or
Press F4

Finalize Edits Option


Point out some benefits of this option:
S

Fewer steps required to go from


change to running code

Reduces system startup time by


eliminating delays

Compare these benefits to some of the


inherit risks.

E 2012 Rockwell Automation, Inc. All rights reserved.

The Finalize Edits option allows you to complete online edits in one
step.
For equipment and personnel safety, the full
sequence of steps (verify, accept, test, assemble)
should be used as it requires the programmers to
check the steps and test them before assembling
them in the controller. The Finalize Edits option
should be reserved for changes that will not impact
safety.

Rev. August 2012


EN2sb56r

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

6--7

Edit Zone Markers


Poll the students to see if they are aware
of online editing policies in their own
companies.

When you start editing online, a duplicate rung is displayed:

Edit Rung

Original Rung
(Active in Controller)

Rung numbers after the edit are temporarily


changed while the edit rung is being modified.

Mention that an asterisk : on any


instruction, tab, etc., indicates that the
element has been edited but not yet
accepted.

During the editing and verifying process edit zone markers indicate
the type of edit that is being performed:
Once the edit in Remote Run mode is accepted
into the controller memory, the markers change to
uppercase letters.

Note that these markers are the same


as the edit markers in RSLogix 5 and
500 software.
Point out that for reference, this
information is in the Procedures Guide
Glossary under the term Edit Zones.

The following table summarizes the zone markers and their


meanings:
Zone Marker
e
Lowercase

Uppercase (in
controller
memory)

Rev. August 2012

Description

i
r
I
R
D

Rung of ladder logic that is currently edited within


the computer RAM
Rung of ladder logic that is to be inserted
Rung of ladder logic that is to be replaced
Rung of ladder logic that will be inserted
Rung of ladder logic that is going to be replaced by
the rung directly above it
Rung of ladder logic that is marked for deletion

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2sb56r

6--8

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

Online Editing in a Multiple-User Environment


RSLogix 5000 software allows more than one user to be online with
the same controller at the same time:
Each user has an up-to-date view of the controller data

Changes made by one user are immediately seen by all other


users.

Two programmers may be online


to the same controller during
commissioning or if a controller
has a large main routine with multiple
blocks of code (i.e., each block of code
controls a different machine in a
system).
Online Toolbar

Question: In what situations might two programmers be online to


the same controller?
Status icons in the Online toolbar and bottom-right corner of the
screen show if multiple users are editing an online project:
Bottom Right
Corner of Screen

Selected

Controller Unlocked
Controller Locked
Controller Locked by Another User
Project Changed by Another User

Keep the following points in mind about editing ladder logic when
multiple users are online:
A common best practice is to lock the controller:

-- This ensures only one person can be making edits to the logic
at one time.
If more than one programmer must be making changes at the
same time, carefully coordinate your work so changes arent
being made to the same routine at the same time:
-- Edits to a routine by one programmer can wipe out pending
edits by other users.
If possible, avoid having two programmers working on different
routines in the same program:
-- The routine edit commands (Accept, Test, Untest, Assemble,
and Cancel) are performed on a program basis.
-- Executing one of these commands affects another users edits,
causing potential loss of work.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EN2sb56r

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

Heres How

6--9

To enter ladder logic by performing the following tasks:


Enter and edit ladder Logic using ASCII mnemonics
Configure ladder logic quick keys

Copy and reuse ladder logic components


Verify a project or a project component (online)
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project during the demonstration:
" To copy and reuse rungs,
instructions, and branches, refer to
the Copying and Reusing Project
Components procedure.

Rev. August 2012

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Entering logic using the ASCII text editor

Online verification buttons

Locking the controller

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2sb56r

6--10

Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EN2sb56r

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

6--11

Exercise: Entering, Editing, and


Verifying Ladder Logic in an
RSLogix 5000 Project
Exercise A

In this exercise, you will practice entering, editing, and verifying


ladder logic in an RSLogix 5000 project.
Context:
You have been asked to add the ladder logic that will be used to
control the sequential portion of your application to an existing
project.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the EN2_1756r_A1.acd file.
2. Download the project and then change the controller to Remote
Run mode.
3. Lock the controller to prevent other users from making online
changes to your project.
4. Open SecondaryRoutine and perform the following actions:
A. Using any method you choose, create the following ladder
logic:
If the value from AI0 is greater than 500, turn on DO0.
B. Assign the existing AI0 and DO0 tags to the logic
components.
C. Verify the rung (online).
D. Test the operation by setting analog input 0 (AI0) to a value
over 500.
E. Check that digital output 0 (DO0) turns on. If not, return and
modify your work.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2e56r

6--12

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

F. Use the ASCII mnemonic editing method to enter the


following rung:

G. What does your ASCII text entry line look like for this rung?
(What syntax did you use?)

H. Save and accept the edits and test for proper operation of this
rung.
I. Test the operation by setting analog input 0 (AI0) to a value
between 100 and 200.
J. Check that digital output 0 (DO1) turns on. If not, return and
modify your work.
K. Once your work is correct, turn analog input 0 all the way to
the left to shut off the light.
L. Copy the rung you created in step 4. A. and reuse it to
program the following logic, modifying the rung as
necessary:
If the value from AI0 exceeds 700, turn on DO2.
M. Save the edits.
N. Test the operation by setting analog input 0 (AI0) to a value
over 700.
O. Check that digital output 2 (DO2) turns on. If not, return and
modify your work.
P. Enable the quick keys.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EN2e56r

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

6--13

Q. Configure the F5 key to be the RUNG (Start of Rung -- End


of Rung) command.
R. Using the quick key method, create the following logic and
necessary tags:
If DO0 has been on for three seconds, turn on DO3. If DO0
is turned off, DO3 turns off as well.
S. Save and accept the edits and test for proper operation of
your rung.
T. Are any of these cases where you could use the Finalize Edits
option? Why or why not?

5. When you are finished editing the program, unlock the controller.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2e56r

6--14

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

Answers

Exercise A
4.
A. The rung should look similar to the following example:

G. BST LIM 100 AI0 200 NXB EQU AI0 300 BND OTE DO1
L. The rung should look similar to the following example:

P. To enable the quick keys, from the Tools menu, perform the
following actions:

-- Select Options Ladder Editor.


-- Select the Enable Quick Key check box.
-- Select the Show Quick Key Configuration check box.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EN2e56r

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

6--15

Q. To assign F5 as the SOR command, perform the following


actions:

-- On the Workstation Options Ladder Editor window, click


the Configure button.
-- Scroll to F5 and then double-click _Free.
-- From the drop-down list, select Rung.

R. The rungs should look similar to the following example:

T. The Finalize Edits option should only be used when there is


no safety concern. If this indicator light is not a safety-related
indicator, the Finalize Edits option could be used.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EN2e56r

6--16

Exercise: Entering, Editing, and Verifying Ladder Logic in an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EN2e56r

Lesson

Communicating with a Local


1756-I/O Module
What You Will Learn

After completing this lesson, you should be able to manually add a


1756-I/O module to an I/O configuration.

When You Will Do This


You can add your I/O modules to your project before, during, or after
you develop your application logic. At some point though, you have
to add the I/O modules so you can link your logic to specific devices.
Reference: RSLogix 5000 and Logix5000 Procedures Guide
1. Find the Adding a Local or Remote 1756--I/O Module to an I/O
Configuration procedure in your procedures guide.
2. Briefly read the Get Ready steps.
In this lesson youll focus on
adding local modules.

Question: What does the term local I/O mean? Remote I/O?
Question: When do you usually add I/O modules to your projects?

Point out that in this lesson youll


manually add the modules.

Before You Begin

Question: Are the modules usually installed at that point? Do you


usually have access to them?

Electronic Keying
Before you add an I/O module, plan your electronic keying:

Electronic Keying
and Revision Level

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2sb56r

7--2

Communicating with a Local 1756-I/O Module

If you have already presented the


Troubleshooting Logix5000 Analog I/O
Module Problems lesson, the discussion
on electronic keying, keying attributes,
keying examples, and disabled keying
can be skipped.

The electronic keying feature:


Automatically compares the expected module (as shown in the
I/O Configuration tree) to the physical module before I/O
communications begin

Helps prevent communications to a module that does not match


the type and revision expected
Determines if and how an electronic keying check is performed
Typically, three keying options are available:
Exact Match
Compatible Keying
Disable Keying

Tip "

The compatible keying option is the default selection.


Keying Attributes
Electronic keying is based on these attributes:
Vendor
Product Type

Product Code
Major Revision
Minor Revision
Example: Exact Match Keying Prevents Communication

Module Configuration
Vendor = Allen-Bradley
Product Type = Digital Input Module
Catalog Number = 1756-IB16D
Major Revision = 3
Minor Revision = 1

Communication is Prevented

Physical Module
Vendor = Allen-Bradley
Product Type = Digital Input Module
Catalog Number = 1756-IB16D
Major Revision = 3
Minor Revision = 2

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


IO2sb56r

Communicating with a Local 1756-I/O Module

7--3

Example: Compatible Keying Prevents Communication

Module Configuration
Vendor = Allen-Bradley
Product Type = Digital Input Module
Catalog Number = 1756-IB16D
Major Revision = 3
Minor Revision = 3

Communication is Prevented
Physical Module

Vendor = Allen-Bradley
Product Type = Digital Input Module
Catalog Number = 1756-IB16D
Major Revision = 3
Minor Revision = 2

Example: Compatible Keying Allows Communication

Module Configuration
Vendor = Allen-Bradley
Product Type = Digital Input Module
Catalog Number = 1756-IB16D
Major Revision = 2
Minor Revision = 1

Communication is Allowed
Physical Module
Vendor = Allen-Bradley
Product Type = Digital Input Module
Catalog Number = 1756-IB16D
Major Revision = 3
Minor Revision = 2

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2sb56r

7--4

Communicating with a Local 1756-I/O Module

Disabled Keying
With Disabled Keying, I/O communication may occur with a module
other than the type specified in the I/O Configuration tree with
unpredictable results.
We generally do not recommend using Disabled Keying.
Be extremely cautious when using Disabled
Keying; if used incorrectly, this option can lead to
personal injury or death, property damage, or
economic loss.

Asynchronous I/O Update Review


Point out that this is different from other
controllers that have an input scan, then
a program scan (code), and then an
output scan within the operating cycle.

In Logix5000 controllers, I/O values update asynchronously with the


execution of code:
1. Input modules multicast their data to the backplane at the RPI rate
set in the modules.
2. The code is scanned and the output tags are updated immediately
after the execution of each output instruction.
3. Values are sent to the output modules at the RPI rate and at the
end of each task.

Tip "

The automatic output processing that occurs at the end of a task can
be disabled in the properties of the task.

Digital Module Multicasting Rates


Note that these values must be set in
the initial configuration but can be
adjusted at any time.

The multicasting of digital I/O data is affected by the rates selected


during module configuration:
RPI (Requested Packet Interval)

COS (Change of State)


RPI (Requested Packet Interval)
The RPI controls the following actions:
Specifies the time that elapses before the module multicasts the
current data in the on-board memory:

-- 200 microseconds (.2 ms) -- 750 ms

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


IO2sb56r

Communicating with a Local 1756-I/O Module

7--5

COS (Change of State)


When the COS option is enabled for digital I/O, data transfer occurs
whenever a specified terminal changes state (transitions from on to
off or off to on):
All data is multicast whenever one point changes state.
To clarify, state that COS multicasts
module data on any change of state and
RPI multicasts module data at a
specified time.

Point out that the input data is changing


within the scan of the logic.

An RPI for digital I/O must be specified whether


or not the COS option is enabled. Data will be
multicast at the RPI rate whether or not a change
of state occurs.

Example: RPI and COS

Single Scan
Physical Device Data is
received by the input card
Rung
RPI Rate
100

COS

Tag is set or cleared in controller

Rung
250

Optional

RPI Rate

Rung
400

Analog Module Multicasting Rates


Note that analog module multicasting
rates are different from digital modules
that multicast based on RPI or COS
parameters.

The multicasting of analog data is affected by the rates selected


during module configuration:
RPI -- This parameter works in the same manner as it does for a
digital module

Note that RTS is actually set on a


different screen, but is discussed now
with RPI.

RTS -- (Real Time Sampling Rate)

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2sb56r

7--6

Communicating with a Local 1756-I/O Module

RTS (Real Time Sampling Rate)


The RTS instructs a module to perform the following operations:
Scan all of the input channels and store the data in the on-board
memory

Multicast the updated channel data and other status data to the
backplane of the local chassis

Tip "

RPI multicasts the current contents of the on-board memory. RTS


scans the inputs prior to multicasting.

Output States
For output modules, output states during specific situations can be
set on the Configuration tab:
Output States During
Program Mode
Output States During
Fault Mode

Output State During


Communication Failure
in Program Mode
Output States are Set Per Point

Example: An application that includes a


hot oven might set a fan output to on
during Program, Test, or Fault mode.

E 2012 Rockwell Automation, Inc. All rights reserved.

Operators and other personnel should be aware of the configured


output states for these situations:
Program Mode: Sets the physical output devices to either on,
off, or hold during specific situations:
-- Program or Remote Program mode
-- Remote Test mode
-- During a major recoverable fault
Fault Mode: Sets the physical output devices to either on, off, or
hold during a major non-recoverable fault.

Rev. August 2012


IO2sb56r

Communicating with a Local 1756-I/O Module

7--7

Diagnostics
On the Configuration screen of the wizard, the following other
parameters must be defined:
Diagnostic Features

I/O Points

? How are diagnostic modules


identified in the part number?

Answer: The part number has a D as


the suffix, e.g., 1756-IB16D.

Depending on the module, 1756 digital and analog diagnostic I/O


modules have the following diagnostic features:
Open Wire Detection: Open wire detection senses removed or
disconnected field wiring on an input module:
A leakage resistor must be placed across the contacts of an input
device.

The modules must detect minimum leakage current or a


point-level fault is sent to the controller.

Field Power Loss Detection: When field power to a module is lost,


a point-level fault is sent to the controller.
No Load Detection: Senses the absence of field wiring or a missing
load from each output point in the off state only.
Field Side Output Verification: Indicates that the code changes are
accurately represented on the power side of a switching device (i.e.,
the output is on when it is commanded to be on).
Note that the pulse test is typically
performed during commissioning or
troubleshooting.

Rev. August 2012

Pulse Test: Briefly sends a signal that verifies the output without
energizing the load.

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2sb56r

7--8

Communicating with a Local 1756-I/O Module

Mention that fault data can be monitored


in controller tags for each module. To
create a status window, collect fault data
in a user-defined structure.
Add that latching can help you see
where a fault occurred even if the cause
of the fault has already been cleared
(e.g., if the fault occurred and cleared
overnight).
Note that diagnostic modules require the
most configuration. The workstation
modules are diagnostic. This will give
students the most practice. All other
modules are just subsets.

Note that resetting the module manually


is done by individual points. There is no
reset all points option.
For a standard course, note that the CIP
message instruction that resets the
diagnostics will be presented in the
Configuring a Message in an
RSLogix 5000 Project lesson.
If the Diagnostic Latching parameter in
the configuration is not set, the fault bit
will clear when the source problem is
removed.

E 2012 Rockwell Automation, Inc. All rights reserved.

Point-Level Electronic Fusing: To prevent too much current from


flowing through a module, certain digital modules have internal
electronic fusing. The fuses are cleared when one of the following
actions occurs:
A message instruction in the software resets the fuse.

A power cycle resets the fuse.


Diagnostic Latching
If any of the diagnostic faults are detected, the following events
occur:
The fault data is multicast to all controllers.
The I/O module LED displays a fault.

A fault bit is latched and can be examined in the tags list.


Even if the cause of an error has been cleared, the fault will remain
set until one of the following actions occurs:
The fault bit is manually reset in the I/O Module Properties dialog
box.

A message instruction in a ladder logic routine resets the latch.


A power cycle resets the output module.
You cannot enter a 0 into the I/O fault tag to
reset it.

Turn off the diagnostics for I/O points that will


not be wired. Otherwise, the LED fault lights on
the module will be active for unused I/O points,
possibly confusing maintenance personnel who do
not know that the points are unused.

Rev. August 2012


IO2sb56r

Communicating with a Local 1756-I/O Module

Heres How

7--9

To plan your electronic keying decisions for the module.


Reference: RSLogix 5000 and Logix5000 Procedures Guide
1. Make sure you are still at the Adding a Local or Remote
1756--I/O Module to an I/O Configuration procedure in your
procedures guide.
2. Find the Manually Add an I/O Module section of the procedure.

Give students several situations.


Have them use the decision table
to determine which keying option
to use.

3. Briefly read through the decision table for planning your


electronic keying decision.
Activity: Whos got the lowest rev?
You have decided to use compatible keying in your project. Consider
the rest of the I/O modules in your classroom as possible
replacements. Determine the lowest revision level for each module:
1. Find the I/O wiring diagrams in the back of this manual.
2. Go to your workstation and open RSLinx software.
3. Browse to the backplane of your workstation.
4. Right--click the first module in the chassis and click Device
Properties.
5. Write the revision level for the module on its wiring diagram.
6. Repeat steps 4. and 5. for the rest of the I/O modules in the
chassis.
7. Compare your results with the rest of the class and determine the
lowest revision for each catalog number of module. Write that
number on the modules wiring diagram, circle it, and plan to use
it in the exercise at the end of this lesson.
Result: When you are done, you should have a decision on which
revision level to use for each of your I/O modules.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2sb56r

7--10

Communicating with a Local 1756-I/O Module

Heres How
IMPORTANT: To meet IACET
CEU requirements and fully
prepare certificate students for
the final exam, you must
demonstrate all lesson objectives
using the proper job aids.

To manually add a 1756-I/O module to an I/O configuration.


Reference: RSLogix 5000 and Logix5000 Procedures Guide
Talk your instructor through the steps in your procedures guide while
he or she demonstrates them.

To demonstrate:
1. Open the
CCP143_1756r_DEM3.acd project.
2. Have students talk you through
adding a digital module.
3. Have student talk you through
adding an analog input module.
4. Have student talk you through
adding an analog output module.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Where to clear diagnostics for unused points

Where to set analog scaling and alarm values

Where to set clamping limits

How to confirm communication is OK after you download


the project

Where to find tags for point data, channel data, point


faults, and alarms

Where to reset latched diagnostics

Rev. August 2012


IO2sb56r

Exercise: Communicating with a Local 1756-I/O Module

7--11

Exercise: Communicating with a


Local 1756-I/O Module
Exercise A

In this exercise, you will practice adding and configuring local


1756-I/O modules to the I/O Configuration of an RSLogix 5000
project.
Directions:
1. Review the partial I/O list below for your application:

Device

Tag (Alias)

Slot

Chan

Min / Off

Max / On

IO2_1756r_A1

12

24 VDC Sink

No Part

Part

CH0_Analog_Input

Conveyor

0--10 VDC

0.0

100.0

Press and Stake


Pressure Indicator

CH0_Analog_Meter

Conveyor

0--10 VDC

0.0

100.0

Weld Pressure
Transmitter

CH1_Analog_Input

Conveyor

0--10 VDC

0.0

1000.0

Weld Pressure
Indicator

CH1_Analog_Meter

Conveyor

0--10 VDC

0.0

1000.0

Conveyor Motor
Starter

Conveyor

Conveyor

24 VDC
Source

Conveyor Start
Pushbutton

Start

Conveyor

24 VDC Sink

Start

Conveyor Stop
Pushbutton

Stop

Conveyor

24 VDC Sink

Stop

Press Actuator

Station_Output

Station_1_Press

24 VDC
Source

Press
Command

Stake Actuator

Station_Output

Station_2_Stake

24 VDC
Source

Stake
Command

Part Present
Photoeye

Part_Sensor

Press and Stake


Pressure
Transmitter

Scope

Signal

Start
Command

2. Review the partial alarm list below for your application:


Slot

Chan

Part Present Photoeye

Device

Part_Sensor_PointFlt

Conveyor

12

24 VDC Sink

Point Fault

Conveyor Start Pushbutton

Start_PointFlt

Conveyor

24 VDC Sink

Point Fault

Conveyor Stop Pushbutton

Stop_PointFlt

Conveyor

24 VDC Sink

Point Fault

Conveyor Motor Starter

Conveyor_PointFlt

Conveyor

24 VDC Source

Point Fault

Press and Stake Pressure


Transmitter

Alarm_High

Station_1_Press

0--10 VDC

>60

Press and Stake Pressure


Transmitter

Alarm_Low

Station_1_Press

0--10 VDC

<40

Weld Pressure Indicator

Alarm_High

Station_2_Weld

0--10 VDC

>600

Weld Pressure Indicator

Alarm_Low

Station_2_Weld

0--10 VDC

<400

Rev. August 2012

Alarm (Alias tag)

Scope

Signal

Trip

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2e56r

7--12

Exercise: Communicating with a Local 1756-I/O Module

3. Open the IO2_1756r_A1.acd file.


4. Add these modules to your projects I/O Configuration. Use the
I/O list, alarm list, wiring diagrams, and your class notes for any
additional information you need:

Slot

Suggested module name

Assembly_Digital_Outputs

System_Digital_Inputs

Assembly_Pressure_Meters

Assembly_Pressure_Sensors

5. Convert these tags to aliases for correct data:

CH0_Analog_Input
CH1_Analog_Meter
CH1_Analog_Input
CH0_Analog_Meter

6. Convert the tags on the alarm list to aliases for the correct fault or
alarm bits.
7. Save your project and download it to the controller.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


IO2e56r

Exercise: Communicating with a Local 1756-I/O Module

7--13

8. Test the application and verify that it meets the requirements


below. Correct any problems you find:
Requirement

Test / verification method

No I/O module faults.

Visually check the controller and I/O Configuration folder.

No point--level faults for any unused I/O points.

Visually check the front of each digital I/O module.

CH0_Analog_Input shows the range of values.

Monitor the tag in logic and confirm that its minimum and
maximum values match the I/O list specification.

CH0_Analog_Meter shows the range of values.

Monitor the tag in logic and confirm that its minimum and
maximum values match the I/O list specification.

CH1_Analog_Input shows the range of values.

Monitor the tag in logic and confirm that its minimum and
maximum values match the I/O list specification.

CH1_Analog_Meter shows the range of values.

Monitor the tag in logic and confirm that its minimum and
maximum values match the I/O list specification.

High and low alarms for Press and Stake Pressure Transmitter
trip on specified limits.

Monitor the alarm bits in logic and confirm they turn on at the
specified limits.

High and low alarms for Weld Pressure Transmitter trip on


specified limits.

Monitor the alarm bits in logic and confirm they turn on at the
specified limits.
A. Remove the terminal block of the digital output module and
confirm the Conveyor_Flt bit turns on.
B. Replace the terminal block.

Conveyor_Flt bit turns on for any point fault of the conveyor


equipment.

C. Reset any latched diagnostic bits.


D. Remove the terminal block of the digital input module and
confirm the Conveyor_Flt bit turns on.
E. Replace the terminal block.
F. Reset any latched diagnostic bits.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2e56r

Exercise: Communicating with a Local 1756-I/O Module

7--14

Answers

Exercise A
4. The complete I/O configuration for the should look like this:

Only these points need diagnostics:

Only points 0 to 5 are wired to


devices. Faults for points 6 to 15
are not set. Otherwise, faults will
be indicated on the module
LEDs.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


IO2e56r

Exercise: Communicating with a Local 1756-I/O Module

7--15

You should have configured the analog outputs like this:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2e56r

7--16

Exercise: Communicating with a Local 1756-I/O Module

You should have configured the analog inputs like this:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


IO2e56r

Exercise: Communicating with a Local 1756-I/O Module

7--17

5. Your analog aliases should look like this:

6. Your alarm aliases should look like this:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


IO2e56r

7--18

Exercise: Communicating with a Local 1756-I/O Module

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


IO2e56r

Lesson

Configuring a Logix5000 Controller


to Produce and Consume Data
What You Will Learn
Note that in the lesson, data will be
produced and consumed over the
backplane. While this might not be as
common as producing and consuming
them over a network, it will allow
students to practice sharing data before
going into the details of the ControlNet
or EtherNet/IP network.
Add that a separate lesson is available
for sharing data between controllers
over a ControlNet or EtherNet/IP
network.

Before You Begin

?What type of data would be

considered time-critical for your


application?

Note that sharing unscheduled data with


a MSG instruction is presented in a
separate lesson.

After completing this lesson, you should be able configure a


Logix5000 controller to produce and consume data by performing
the following tasks:
Configure a produced tag

Add a controller to an I/O configuration


Configure a consumed tag
Set RPI limits for a produced/consumed tag
When You Will Do This
Use produced and consumed tags when you want to share data
between controllers.

Scheduled Data
Scheduled Data: Information that is sent across a control-level
network, such as ControlNet or EtherNet/IP, on a regular basis. This
data has the following characteristics:
Is time critical, such as I/O status and control interlocking data
Has top priority in information exchange

Occurs in the same time frame during every data transmission


interval
Can be any of the following:

-- Data from an I/O module


-- Peer-to-peer interlocking data of controllers
To control I/O or produce and consume tags in a
Logix5000 ControlNet application, data must be
scheduled.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3sb56r

8--2

Configuring a Logix5000 Controller to Produce and Consume Data

Produced and Consumed Tags


In the graphic, point out that the Total
tag is available to any other controller on
the backplane.
Note that the tag is still multicast. To
reach two controllers, it does not have to
be passed to one (like a message) then
be passed to another.

Produced Tag: Scheduled data (controller-scoped tag) that is


published (multicast) by a controller and available to one or more
other controllers:
Total

Consumed Tag: A tag whose value comes from a remote controller.


The local controller is the consumer, and the remote controller is the
producer. Consumed tags are always at controller scope.

Produced and Consumed Tag Requirements


Note that these are the 32-bit data
types.
Add that 500 bytes equals 125 DINTs or
250 INTs.

E 2012 Rockwell Automation, Inc. All rights reserved.

Data that meets the following requirements can be shared by


controllers without using messages:
Tag that is 32 bits or larger (e.g., DINT, REAL, TIMER,
COUNTER, etc.), an array of these data types, or user-defined
data type
Data that is less than or equal to 500 bytes

Rev. August 2012


PC3sb56r

Configuring a Logix5000 Controller to Produce and Consume Data

Remind students that this is the tag


being sent.

8--3

Configuring a Produced Tag


In the Tag Properties dialog box, you can configure a tag to be
produced:

Produce Option

Data Access
Options

Highest Possible
Number of
Consumers

Rev. August 2012

Advanced
Settings

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3sb56r

8--4

Configuring a Logix5000 Controller to Produce and Consume Data

Adding a Controller to an I/O Configuration

Note that this is the name of the


controller and not the project (if
different).
Note that the I/O Configuration identifies
if the tag is being produced locally or
over a network (and which network).

To share data, a path is created by adding the producing controller to


the I/O configuration of the consuming controller and defining the
following parameters:
Name of the producing controller
Slot number

Revision (major and minor):


-- Electronic keying is compatible.
Optional:
-- Description
-- Major fault option
-- Inhibit option

Local Controllers

Add that the consumed tag can be


created or it can be an existing tag that
is modified.

Configuring a Consumed Tag


A controller can only consume a single tag once.
Setting up more than one consumed tag in the
same controller results in unpredictable
controller-to-controller communications.

If a consumed tag connection faults, all other tags


being consumed from the producing controller
will also stop receiving data.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PC3sb56r

Configuring a Logix5000 Controller to Produce and Consume Data

8--5

A consumed tag is also defined in the Tag Properties dialog box:


In the graphic, point out that
the RPI is per tag and not
controller.
Name of the Consumed Tag

Mention that you must be offline or


online in Program mode to
change the RPI.
Consumed Option

Mention that RPI in relation


to the ControlNet network will be
detailed in a
different lesson.

Source Controller
(as Named in the I/O
Configuration)
Exact Name of the Produced
Tag in the Producing Controller

Rev. August 2012

The Amount of Time


Between Updates of the
Data

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3sb56r

Configuring a Logix5000 Controller to Produce and Consume Data

8--6

Tag Names
Point out that this is not the consumed
tag name.

Tip "

The Remote Data (source tag name) must be exactly the same as the
produced tag name in the producing controller.
For accuracy, the source project should be opened and the tag names
should be copied:

Producer

Consumer

Same

Note that consumed tag names do not


require naming conventions through the
software. However, your plant may opt
to use naming conventions to make
troubleshooting easier.
Emphasize that if structures are the
same size but different layout, data from
the first member in structure A (e.g., a
REAL) will incorrectly transfer to the first
member in the other structure B (e.g., a
DINT).

If a user-defined structure is produced, there must


be a structure with the identical size and layout in
the consuming controller. To ensure accuracy,
copy the structures between projects.

Producer
DINT
DINT
BOOL
TIMER

Producer
DINT
DINT
BOOL
TIMER
E 2012 Rockwell Automation, Inc. All rights reserved.

Data

Consumer
TIMER
BOOL
DINT
DINT

Data

Consumer
DINT
DINT
BOOL
TIMER
Rev. August 2012
PC3sb56r

Configuring a Logix5000 Controller to Produce and Consume Data

8--7

Produced and Consumed Arrays


BOOL, SINT, and INT arrays can be indirectly produced and
consumed by performing the following actions:
Create a user-defined data type containing a single member:

-- Make the single member an array of the desired type


Copy this user-defined data type to both controllers
Produce and consume tags of this data type
In addition, you can produce/consume an array of INTs to/from a
PLC-5C controller over a ControlNet network by performing the
following actions:
Define a user-defined data type with two members:
-- Name the first member Status and assign it a DINT data type
-- Make the second member an array of INTs

Produced Tag Optimization


Note that a separate lesson reviews the
number of connections consumed by
produced and consumed tags.

The number (and not size) of consumed tags is totaled and counted
against the number of connections a system can support.
To limit the number of connections used, consider
grouping data into an array or a user-defined data
type and producing only that array or structure.

A produced or consumed tag cannot be greater


than 500 bytes (250 INTs or 125 DINTs).

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3sb56r

8--8

Configuring a Logix5000 Controller to Produce and Consume Data

Tell the students that when the RPI


request from a consumer is
out-of-range, an automatic negotiation
will allow the consumer to connect to the
producer by using the default RPI value
configured for the produced tag.
RPI negotiation status will be reported to
the user via the Consumed Tag
Connection dialog.

Produce/Consume Tag RPI Limits Check


If someone types a wrong RPI value for a consumed tag, it could
overload the network and halt production. To prevent this, you can:
Define a range of acceptable RPI values for each connection.

Define a default RPI value for out-of-range RPIs:

Minimum, Maximum and


Default values can be modified
Offline only.

Produced Tag Values

Set Min and Max


RPI Range
Set Default RPI

Consumer RPI of 2ms


is out of range.

E 2012 Rockwell Automation, Inc. All rights reserved.

Consumer RPI would


get set to the default
value of 10ms.

Rev. August 2012


PC3sb56r

Configuring a Logix5000 Controller to Produce and Consume Data

8--9

Configure the consuming controller to use the default RPI:

Advanced Tab

Enable RPI
Negotiation Here

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3sb56r

8--10

Configuring a Logix5000 Controller to Produce and Consume Data

Heres How

To configure a Logix5000 controller to share data across the


backplane by performing the following tasks:
Configure a produced tag
Add a controller to an I/O configuration

Configure a consumed tag


Set RPI limits for a produced/consumed tag
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM4.acd
project during the demonstration.
Use the CCP143_1756r_DEM5.acd file
to download to the controller in slot 3.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Produced check box in the Edit Tags window

Produced For default (2)

Values in both controllers when the produced value


changes

Tags filter to show produced or consumed tags only

Rev. August 2012


PC3sb56r

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

8--11

Exercise: Configuring a Logix5000


Controller to Produce and
Consume Data
Exercise A

In this exercise, you will practice configuring Logix5000 controllers


to produce and consume data across the backplane.
Context:
You have programmed the complete projects for the controller in slot
1 and the controller in slot 3. To exchange interlocking data between
the controllers, you must configure the controllers to produce and
consume data across the backplane.
Tank level information must be produced from the controller in slot
1 and consumed by the controller in slot 3:

Producer

Consumer

When you see underlined text, refer to the related procedure or


information in your job aid.
Directions:
1. Open the PC3_1756r_A1.acd file.
2. What scope must tags be in order to be produced or consumed?

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3e56r

8--12

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

3. Which data types can be produced?

4. Create a new tag with the following properties:


Name: Tank_Level
Type: Produced
Connection: 4 Consumers
Data Type: DINT
Set tag to allow Unicast Consumer Connections
5. Verify the project and correct any errors.
6. Save the project.
7. Download the project to the controller in slot 1.
8. Place the controller in the Remote Run mode.
9. Minimize RSLogix 5000 software.
10. Open a second instance of RSLogix 5000 software.
11. Open the PC3_1756r_A2.acd file.
12. To configure the consumed tag, perform the following actions:
A. Create a path by adding the producing controller in slot 1 to
the I/O configuration of the project (name the controller
Producing_Controller.)
B. Create a tag named Slot1_Tank_Level with the following
properties:

-- Select the appropriate data type to consume the data from the
Tank_Level tag in the slot 1 controller.

-- Configure the Slot1_Tank_Level tag to consume the data


from the Tank_Level tag in the slot 1 controller.

-- The consumed tag data must be received by the controller in


slot 3 every 2 ms.
13. Download the project to the controller in slot 3.
14. Place the controller in the Remote Run mode.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PC3e56r

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

8--13

15. Verify that the data from the controller in slot 1 is being
consumed by the controller in slot 3 by performing the following:
Open the Controller Tags editor for the project in slot 1 and
enter a value of 300 for the Tank_Level tag.
Confirm that 300 is now the value of the Slot1_Tank_Level
tag in the slot 3 project.
16. Go offline and close both projects.

How Did You Do?

Turn to the Answers section.

Exercise B

In this exercise, you will practice configuring Logix5000 controllers


to produce and consume data from a user-define data type across the
backplane.
Context:
To exchange interlocking data between the controllers, you must
configure the controllers to produce and consume UDT data across
the backplane.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the PC3_1756r_B1.acd file.
2. Configure the Controller_Status tag to be produced for 2
consumers.
3. Verify the project and correct any errors.
4. Save the project.
5. Download the project to the controller in slot 1.
6. Place the controller in Remote Run mode.
7. Minimize RSLogix 5000 software.
8. Open a second instance of RSLogix 5000 software.
9. Open the PC3_1756r_B2.acd file

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3e56r

8--14

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

10. To configure the consumed tag, perform the following actions:


Create a path by adding the producing controller in slot 1 to
the I/O configuration of the project.
Copy the UDT from the producing controller and paste it into
the consuming controller.
Create a new tag named Slot1_Controller_Status that will
consume the data from the Controller_Status tag in the slot 1
controller.

Tip "

Controller_Status is a tag that uses a user-defined data type. To be


shared correctly, the UDT in the consuming controller must be set up
in the same order as the UDT in the producing controller.
11. Download the project to the controller in slot 3.
12. Place the controller in the Remote Run mode.
13. Monitor the consumed tag.
14. Verify that the data from the controller in slot 1 is being
consumed by the controller in slot 3.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


PC3e56r

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

Rev. August 2012

8--15

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3e56r

8--16

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

Answers

Exercise A
2. Tags must be controller-scoped to be produced or consumed.
3. Data types that can be produced would include REAL, DINT,
and user-defined data types.
4. The following configurations are required for the Tank_Level
tag:

12.
A. The following is an example of how the I/O Configuration
should look in the slot 3 controller:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PC3e56r

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

8--17

B. The following configurations are required for the


Slot1_Tank_Level tag in the slot 3 controller project:

Data Type in the Consumed


tag must match Data Type in
the Produced tag.

The tag name here must match


the name of the produced tag
in the Producing Controller.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3e56r

8--18

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

Exercise B
2. The following configurations are required for the
Controller_Status tag:

10. You should first copy the Status UDT from the producing
controllers project into the consuming controllers project:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PC3e56r

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

8--19

The following configurations are required for the


Slot1_Controller_Status tag in the slot 3 controller project:

Data Type in the Consumed


tag must match Data Type in
the Produced tag.

The tag name here must match


the name of the produced tag
in the Producing Controller.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


PC3e56r

8--20

Exercise: Configuring a Logix5000 Controller to Produce and Consume Data

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


PC3e56r

Lesson

Configuring Logix5000 Controllers


to Share Data over an EtherNet/IP
Network
What You Will Learn
Important: If this lesson is part of a
national school and you are using
ControlNet for remote data sharing, this
lesson can be skipped.

After completing this lesson, you should be able to:


Add an EtherNet/IP module to an I/O configuration

Add a controller to an I/O configuration


When You Will Do This
Use the procedures in this lesson when you have to pass interlock
data between controllers over an EtherNet/IP network.

Before You Begin

EtherNet/IP Network Overview


Ethernet Network: A high speed, information network designed
primarily for communications between computers and peripheral
devices:
Is widely accepted and has become the defacto standard for
information networks
Can be used with a wide range of devices available from many
different vendors
Was widely used in office networks for decades and now is used
on the plant floor as well

Allows data to be easily exchanged between the plant floor and

? Who owns or controls EtherNet/IP?


Answer: Technically, no one owns it;
however, EtherNet/IP is a trademark of
ControlNet International under license
by ODVA (Open DeviceNet Vendor
Association).

Rev. August 2012

office networks

EtherNet/IP (Industrial Protocol) Network: An Ethernet network


that uses CIP (Common Industrial Protocol) at the application layer
of the OSI model, enabling interconnectivity with other networks
that use CIP at the application layer.
CIP (Common Industrial Protocol): The application layer of the
OSI (open system interconnection) model that enables I/O control
over an EtherNet/IP network. This layer also bridges EtherNet/IP
devices with devices on networks such as ControlNet and DeviceNet
that also use CIP at the application layer.

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTsb56r

9--2

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

Overview of IP Addresses
Let the students know that their will be a
brief discussion on private IP addresses
later in this lesson.

Tell the students that every Rockwell


Automation/Allen-Bradley
Ethernet/EtherNet/IP product has a MAC
address in the form
00:00:BC:XX:XX:XX.
Inform the students that a devices MAC
address is also referred to as the
devices Hardware Address or Ethernet
Address.

? How many possible Ethernet

devices/components can Rockwell


Automation manufacture?

IP (Internet Protocol) Address: A user-defined software address


assigned to a device on an Ethernet network that identifies the
network and the node. An IP address is a 32-bit address that is
normally grouped into 4 bytes for ease of communication and
understanding (e.g., 10.88.244.130).
MAC (Media Access Control) Address: A static address that is
factory-assigned to an Ethernet and/or EtherNet/IP device. This
address is a unique 6-byte address - each digit is a hex number -- that
is embedded in the circuitry of every device that is on an EtherNet/IP
network:

MAC Address (also referred to


as a modules Ethernet address)

Answer: 166 (=16,777,216).

IP addresses are easy-to-use and remember notations for the user to


employ in communication networks:
Devices use their hardware addresses to communicate with each
other.

Each device converts its hardware address to an IP address before


it transmits a message on the network.
As devices communicate with each other, they store information
in their memory that identifies a hardware device with its IP
address.

Ethernet networks support many different types of protocols,


including TCP/IP:
TCP/IP is not limited to an EtherNet/IP network.
EtherNet/IP addresses are used to communicate between devices
on different protocols.

The different protocols that devices use to communicate on are


transparent to the user at the network layer of the OSI model.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTsb56r

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

Inform students that they should obtain a


list of available private IP addresses
from their IT department before
randomly using one. The ability to reuse
an IP number extends between different
enterprises but not necessarily within a
subnet.

9--3

Private IP Addresses
There are a finite number of IP addresses that have been designated
as private IP addresses. The private IP addresses prohibit message
traffic from being routed to the Internet thereby avoiding conflicts
that would otherwise arise whenever two or more enterprises used
the same IP address:
Class

Private IP Addresses

10.0.0.0 -- 10.255.255.255

172.16.0.0 -- 172.31.255.255

192.168.0.0 -- 192.168.255.255

The advantages of using private IP addresses include:


Readily available for anyone to use at anytime (i.e., you do not
need to register these addresses or obtain approval from an
Internet registry prior to implementing them)

Simultaneous usage by multiple companies thereby allowing

users to create their own private network


Easily expandable number of networks and end devices a user can
employ (thereby addressing the concern of having an insufficient
number of IP addresses)
Inform the students that they will be
shown how to identify if two devices are
on the same network later in this lesson.
This section may confuse your students.
Network administrators are often
stymied by this topic.
If pressed for additional information,
refer them to the Internet. Entering the
terms subnet or subnet mask into their
favorite search engine will reward them
with a plethora of information. The
search results will provide them
background information, subnet
calculators, and web and classroom
learning opportunities.

Subnets and Subnet Masks


Subnet Mask: An address that enables distinction between networks
by masking IP address bits that denote the same network and
exposing bits that denote different networks:
Networks are often divided up into smaller units called subnets.
Network administrators create subnets as a management tool:

-- Routes packets to the appropriate subnetwork based on IP


addresses
-- Easier to monitor the health of the entire network
-- Minimizes effort required to troubleshoot and isolate problems
-- Capable of isolating users based on:
-- Geography
-- Departments
-- Media protocols
-- Communication needs (e.g., plant floor I/O vs office
email).
Plant environment communications benefit when plant floor
communications operate on a separate subnet from the office
communications:

-- Accommodates timeliness of operations


-- Enhances system maintenance and upgrade options
-- Adds levels of security.
Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTsb56r

9--4

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

? How would using subnets on a plant

floor assist your companys operations?


Answer: Subnets would make it
possible to isolate different plant floor
operations (e.g., welding, milling) from
each other and from the
office/administrative systems. This
allows one operation to be shut down
without directly impacting the whole
plant. Subnets will reduce the risk of
security threats (e.g., Trojan horse
attacks).

? How many of you have ever

programmed an MVM instruction? How


does it work?

Subnet masks allow for two devices to determine whether or not they
exist on the same subnet:
If two devices are on the same subnet, they are able to
communicate directly with one another.

If two devices are on different subnets, the data must first be sent

to a router before the targeted device receives the data sent by the
source device.

How a Subnet Mask Operates


A subnet mask, like an IP address, is a 32-bit address that is
normally grouped into 4 bytes for ease of communication and
understanding:

Typical Subnet Mask


Inform the students that a subnet mask
operates in a manner similar to an MVM
255.255.XXX.XXX
instruction; hopefully they will be able to
translate some of that familiarity when
identifying if two IP addresses are on the
same subnet.
Binary Equivalent: 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . x x x x x x x x . x x x x x x x x
Consecutive 1s Represent Network Portion of IP Address

A subnet mask uses the 1s to do a bit-by-bit comparison of two IP


addresses to see if the devices associated with the IP address are on
the same subnet:
As long as the IP address bits match each other (independent of
the subnet mask value) whenever there is a corresponding 1 in
the subnet mask, the devices are on the same subnet.

If the network portions:


-- Match up, the devices communicate directly with each other.
-- Dont match up, they are on separate networks and then
communicate through a router (commonly referred to as a
gateway).
Example
Compare the EtherNet/IP addresses of two devices and determine
if they are on the same subnet:
EtherNet/IP Address: 165.88.73.129
EtherNet/IP Address: 165.88.74.187
Subnet Mask: 255.255.240.0

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTsb56r

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

9--5

Converting these decimal values to their binary equivalent yields:


EtherNet/IP Address: 1 0 1 0 0 1 0 1 . 0 1 0 1 1 0 0 0 . 0 1 0 0 1 0 0 1 . 1 0 0 0 0 0 0 1
EtherNet/IP Address: 1 0 1 0 0 1 0 1 . 0 1 0 1 1 0 0 0 . 0 1 0 0 1 0 1 0 . 1 0 1 1 1 0 1 1
Subnet Mask:
11111111.11111111.11110000.00000000

Corresponding bits match


each other; therefore,
these two devices are on
the same subnet.

Compare the same two EtherNet/IP addresses of two devices


using a different subnet mask and determine if they are on the
same subnet:
EtherNet/IP Address: 165.88.73.129
EtherNet/IP Address: 165.88.74.187
Subnet Mask: 255.255.255.0

Converting these decimal values to their binary equivalent yields:


EtherNet/IP Address: 1 0 1 0 0 1 0 1 . 0 1 0 1 1 0 0 0 . 0 1 0 0 1 0 0 1 . 1 0 0 0 0 0 0 1
EtherNet/IP Address: 1 0 1 0 0 1 0 1 . 0 1 0 1 1 0 0 0 . 0 1 0 0 1 0 1 0 . 1 0 1 1 1 0 1 1
Subnet Mask:
11111111.11111111.11111111.00000000

Corresponding bits do not match each other; therefore,


these two devices are not on the same subnet.

? What are some reasons you may

want to expand your network? Contract


it?
Answer: Isolate devices, processes,
and enhance security. Limiting the
number of subnets you have increases
the likelihood that two devices can
communicate directly with each other.
This may reduce the number of routers
you must purchase, maintain, and
monitor.
Gateways are glorified routers that
control the flow of data between external
networks and an enterprises internal
network.

As demonstrated by these examples, it is possible to expand (or


contract) the network environment by changing the subnet masks
associated with the devices on a network.
Gateways
Gateways: Nodes on a network that act as entrance and exit portals
between external networks:
Data packets being shared between internal and external devices
must pass-through at least one gateway in establishing
communications.

Gateways often act as a firewall and protect the resources of a


private network from users from other networks.

Gateways may have more than one IP address associated with


them -- one for internal users and one for external users.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTsb56r

9--6

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

Default Gateway: The router (gateway) to which all remote packets


must be sent in order to be routed to their final destination (i.e., if
two devices are not on the same network, the packet will be sent to
the gateway).
Gateway Address: The IP address of a devices default gateway.

Configuration Overview and Software Interfaces


Note that this section is a general
introduction to the flow of configuration
procedures. The step-by-step details
and software demonstrations will be
presented in the Heres How section. If
this lesson is part of a national school,
add that remote I/O will be discussed in
a different lesson.
Encourage students to ask any
remaining questions from the
Configuring a Logix5000 Controller to
Produce and Consume Data lesson.

To share data across an EtherNet/IP network, it is necessary to


complete the following procedures:
1. Create the required produced tag.
2. In the controller that is consuming the data, perform the following
actions:
A. Add the local EtherNet/IP module to the I/O configuration.
B. Add the remote EtherNet/IP module to the I/O configuration.
C. Add the producing controller to the I/O configuration.
D. Create the required consumed tags.

Note that the controller was also added


to the project to share data when
producing and consuming tags across
the backplane. However, the controller is
now added under the remote ENBT.
Add that it is not necessary or even
possible to add the controller running the
project to the configuration.

Adding an EtherNet/IP Module and Controller to an I/O


Configuration
The following graphic is an example of a remote EtherNet/IP module
and remote controller added to an I/O configuration in
RSLogix 5000 software:

Local EtherNet/IP Module


Remote EtherNet/IP Module
Remote (Producing) Controller

Produced and Consumed Tags


Note that the produced and consumed
tags are created just as they were
created for transfers over the backplane.
E 2012 Rockwell Automation, Inc. All rights reserved.

Data that is shared over an EtherNet/IP network must be transferred


using produced tags and received (stored) in consumed tags.
Rev. August 2012
ENTsb56r

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

Heres How

9--7

To perform the following tasks:


Add an EtherNet/IP module to an I/O configuration
Add a controller to an I/O configuration
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the steps below to help guide you
during the demonstration:
Be sure to use the
CCP143_1756R_DEM6.acd file and
CCP143_1756R_DEM7.acd file. When
demonstrating the listed procedures, be
sure to point out the following items:

Rev. August 2012

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Parent--child relationship of the EtherNet/IP and the


controller that you add to the I/O configuration

Produced and consumed tags that you create

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTsb56r

9--8

Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTsb56r

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

9--9

Exercise: Configuring Logix5000


Controllers to Share Data over an
EtherNet/IP Network
Exercise A

In this exercise, you will practice configuring a local Logix5000


controller to share data with a remote Logix5000 controller over an
EtherNet/IP network.
Context:
You have finished programming and testing a complete project for a
production line. To increase productivity, the plant has set up a
second production line. The second production line needs to receive
(consume) the Pressure data from the first assembly line over an
EtherNet/IP network.

Production Line 2

Production Line 1

EtherNet/IP Network
Consumed

n Produced

In this exercise, you will share data with the other workstation on
your EtherNet/IP network. One controller will produce data and the
other will consume the data.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the ENT_1756r_A1.acd file (the producer controller.)
2. Create a user-defined data type called Station_Data that will
store the following information from the local controller:

Rev. August 2012

Member

Data type

Description

AI0

REAL

Analog Input channel 0

AI1

REAL

Analog Input channel 1

DI

DINT

Digital Inputs

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTe56r

9--10

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

3. Create a controller scoped tag called Local_Station_Data with


the following properties:
Uses the Station_Data data type
Produced for 1 controller
4. Enter ladder logic to copy your analog channel 0 data and channel
1 data as well as your discrete input data to the respective
members of the Local_Station_Data tag.
5. Verify the project, correct any errors, and download the project to
the local controller in slot 1.
6. Place the controller in slot 1 in Remote Run mode.
7. Open the ENT_1756r_A2.acd file (the consumer controller.)

Tip "

This project will be downloaded to the controller in slot 3 of the


remote workstation after you have completed the configuration.
8. Add the following modules to the I/O configuration (review
workstation configuration for appropriate IP addresses):
A. Add the local (relative to the projects controller)
EtherNet/IP module to the I/O configuration.
B. Nested under the local EtherNet/IP module, add the remote
EtherNet/IP module to the I/O configuration.
C. Nested under the remote EtherNet/IP module, add the
controller in slot 1 of the remote workstation to the I/O
configuration and call it Producer_Controller.
9. Copy the Station_Data UDT from the ENT_1756r_A1 project
file into the ENT_1756r_A2 project file.
10. Consume the Local_Station_Data tag from the
Producer_Controller by performing the following actions:
Create a controller scoped tag called Remote_Station_Data
that uses the Station_Data data type.
Configure Remote_Station_Data as a consumed tag with a
rate of 100 ms.
11. Enter ladder logic to copy the Remote_Station_Data tag to your
analog channel 0 and analog channel 1 outputs.
12. Write the logic so that each of the green buttons pushed on your
workstation will light the corresponding light on the remote
workstation.
13. Verify the project, correct any errors, and download the project to
the remote consumer controller in slot 3.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTe56r

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

9--11

14. To verify that each production line is correctly configured to


share data, complete the following actions:
A. Verify that moving your analog channel 0 to the middle
position moves the analog channel 0 meter on the remote
workstation to its middle position.
B. Verify that moving your analog channel 1 to the middle
position moves the analog channel 1 meter on the remote
workstation to its middle position.
C. Verify that pushing the first four discrete buttons on your
workstation light the corresponding lights on the remote
workstation.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTe56r

9--12

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

Answers

Exercise A
2. The user-defined data type should look similar to the following
example:

3. The tag created should look similar to the following example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTe56r

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

9--13

4. Your ladder logic should look similar to the following example:

8. The I/O configuration should look similar to the following


example:

9. The Station_Data UDT should now be found in the


EN2_1756r_A2 project:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTe56r

9--14

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

10. The consumed tag should look similar to the following


example:

11. Your ladder logic should look similar to the following example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTe56r

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

9--15

12. Your ladder logic should look similar to the following example:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


ENTe56r

9--16

Exercise: Configuring Logix5000 Controllers to Share Data over an EtherNet/IP Network

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


ENTe56r

Lesson

10

Communicating with a 1756-I/O


Module over an EtherNet/IP
Network
What You Will Learn

After completing this lesson, you should be able to add a remote


1756-I/O module to an I/O configuration for communication over an
EtherNet/IP network.

When You Will Do This


Just like with local modules, you can add remote I/O modules at any
point in your development process.
Have students find their
procedures guide and use it for
the steps below. Give them a few
minutes to read the procedures
guide.
Point out that in this lesson youll
manually add remote modules.

Before You Begin


Have students find the manual
and use it for the steps below.
Give them a few minutes to read
the guidelines.

Reference: RSLogix 5000 and Logix5000 Procedures Guide


1. Find the Adding a Local or Remote 1756--I/O Module to an I/O
Configuration procedure in your procedures guide.
2. Briefly read the Get Ready steps.

Effect of RPI on EtherNet/IP Communication


Reference: Logix5000 Controllers Design Considerations,
1756--RM094
1. Go to the Communication with I/O chapter.
2. Go to the Guidelines to Specify an RPI Rate for I/O Modules
section.
3. Notice the guideline on how RPI affects change--of--state
communication over an EtherNet/IP network.

Point out that this also applies to the


RTS of an analog module.

Rev. August 2012

Example: Effect of RPI on EtherNet/IP Communication


If a digital input module uses an RPI = 100 ms, the
EtherNet/IP module sends module data immediately on receiving it
if another data packet was not sent within the last 25 ms.

E 2012 Rockwell Automation, Inc. All rights reserved.


RI2sb56r

10--2

Communicating with a 1756-I/O Module over an EtherNet/IP Network

Communications Formats
Give students a few minutes to
read the benefits and
considerations of each, and then
ask the questions.

Reference: Logix5000 Controllers Design Considerations,


1756--RM094
1. Go to the Communication Formats for I/O Modules section.
2. Briefly read the benefits and considerations of direct and
rack--optimized connections.
Question: Which type of connection uses more network resources?
Question: What is the advantage of a rack--optimized connection?

Point out that you can still have


direct connections with modules
even if the chassis has a
rack--optimized connection.

Heres How
Give students a few minutes to
read the guidelines.

Question: Which type of connection do you need to use if you want


diagnostic data from a module?
To decide which rack connection setting to use.
Reference: Logix5000 Controllers Design Considerations,
1756--RM094
1. Go to the Guidelines to Manage I/O Connections section.
2. Briefly look over the I/O Connection Guidelines.
Example: No Rack Connection
Suppose you have a remote 17--slot chassis with these modules:
1 EtherNet/IP module

15 analog input or output modules


1 digital input module
In this case, set the remote EtherNet/IP modules Rack Connection
setting to None. Choose a direct connection format when you
configure each I/O module.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


RI2sb56r

Communicating with a 1756-I/O Module over an EtherNet/IP Network

10--3

Example: Rack--optimized Connection


Suppose you have a remote 10--slot chassis with these modules:
1 EtherNet/IP module
1 analog input module

1 fused output module


5 non--diagnostic digital input modules
2 non--fused digital output modules
In this case, set the remote EtherNet/IP modules Rack Connection
setting to Rack Optimization. Choose a direct connection format for
each analog and fused output module. Choose a rack--optimized
format for the rest of the modules.
Have each student do this on
their own. Then go over the
answers as a group.

Activity: For each situation below, decide which rack connection


setting to use and check the appropriate box:

Situation

None

Rack Connection setting


Rack
None
Optimization

A. Remote 10--slot chassis with:


1 EtherNet/IP module
2 analog input modules
6 diagnostic digital input modules
2 non--fused diagnostic output modules

Rack Optimization

B. Remote 13--slot chassis with:


1 EtherNet/IP module
2 analog input modules
7 non--diagnostic digital input modules
3 non--fused diagnostic output modules

Rack Optimization

C. Remote 13--slot chassis with:


2 EtherNet/IP modules
6 non--diagnostic digital input modules
3 non--fused diagnostic output modules
2 empty slots for future expansion

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


RI2sb56r

10--4

Communicating with a 1756-I/O Module over an EtherNet/IP Network

Heres How
IMPORTANT: To meet IACET
CEU requirements and fully
prepare certificate students for
the final exam, you must
demonstrate all lesson objectives
using the proper job aids.

To manually add a remote 1756-I/O module to an I/O configuration


for communication over an EtherNet/IP network.
Reference: RSLogix 5000 and Logix5000 Procedures Guide
Talk your instructor through the steps in your procedures guide while
he or she demonstrates them.

To demonstrate:
1. Continue with either the
CCP143_1756R_DEM6.acd file or
CCP143_1756R_DEM7.acd project.
2. Have students talk you through
adding a remote module using a
direct connection.
3. Have students talk you through
adding a remote module using a
rack optimization connection.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Tag names of the data for the remote module

Rack Connection setting of the remote EtherNet/IP


module if you want a rack--optimized connection

You must be offline to change the Rack Connection


setting of the remote EtherNet/IP module.

The software automatically creates alias tags for the


packet of rack optimization data.

Rev. August 2012


RI2sb56r

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network

10--5

Exercise: Communicating with a


1756-I/O Module over an
EtherNet/IP Network
Exercise A

In this exercise, you will practice configuring a Logix5000 controller


to communicate with a 1756-remote I/O module over an EtherNet/IP
network.
Context:
You have programmed a complete project. As a safety feature for
plant personnel, you want to program an output light to be on when
the production line is active. Because you have used your available
I/O points in the local chassis, you must add a remote chassis to
accommodate the additional I/O requirements. You are now ready to
configure the controller to communicate with the 1756-remote I/O
module over an Ethernet I/P network.
The setup of the remote output is shown in the following graphic:
Production
Line Active

Local
Chassis

Ethernet I/P Network

Remote
Chassis

When you see underlined text, refer to the related procedure or


information in your job aid.
Directions:
1. Download the Blank.acd file to the controller in slot 3.
2. Open the RI2_1756r_A1.acd file.
3. Add the local and remote EtherNet/IP modules to the project I/O
configuration (review your workstation configuration for the
appropriate IP address.)
4. Add and configure the remote output module in slot 4.
5. Add the local input module that is in slot 2 to your I/O
configuration. You will also be owning this module.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


RI2e56r

10--6

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network

6. Make a new tag, DI12, an alias tag for bit 12 of the local digital
input card in slot 2.
7. Make a new tag, DO11, an alias tag for bit 11 of the the remote
digital output card in slot 4
8. Enter the following ladder logic in your MainRoutine:

9. Download the project to the controller in slot 1 of the


local chassis.
10. Test the project and verify that you have correctly configured the
remote I/O by performing the following actions:
A. Start the conveyor by energizing workstation label DI12.
B. Verify that the remote I/O light DO11 on the other
workstation is on.
C. Turn off DI12 and verify that the remote I/O light on the
other workstation is off.
D. When the project functions correctly, go offline.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


RI2e56r

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network

Rev. August 2012

10--7

E 2012 Rockwell Automation, Inc. All rights reserved.


RI2e56r

10--8

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network

Answers

Exercise A
3. Your main configuration screen for the local EtherNet/IP
module in slot 6 should look similar to the example (The
modules IP address will vary depending on your workstation
setup.):

The remote EtherNet/IP module is added to the I/O


Configuration by right-clicking the Ethernet network icon
displayed below the local EtherNet/IP module:

(Continued)

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


RI2e56r

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network

10--9

Your main configuration screen for the remote EtherNet/IP


module in slot 6 should look similar to the example (The
modules IP address will vary depending on your workstation
setup.):

4. Add the remote output module by right-clicking the backplane


displayed beneath the remote EtherNet/IP module:

Your main configuration screen for the remote output module in


slot 4 should look similar to the example:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


RI2e56r

10--10

Exercise: Communicating with a 1756-I/O Module over an EtherNet/IP Network

5. Your main configuration screen for the local input module in


slot 2 should look similar to the example:

Your completed I/O Configuration within the Controller


Organizer should look similar to the following:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


RI2e56r

Lesson

11

Creating an Event Task in an


RSLogix 5000 Project
What You Will Learn

After completing this lesson, you should be able to create an event


task in an RSLogix 5000 project.

When You Will Do This


Use an event task when you have logic you want to execute
whenever a specific condition occurs.

Before You Begin

Task Type Review


A task triggers the execution of its scheduled programs. The
following table outlines the type of tasks that are available:

If students are familiar with other


controllers, relate the event task to a PII
(PLC) or DII (SLC) task.

Rev. August 2012

Task Type

Usage

Continuous

A task that runs continuously but can be interrupted by


periodic or event tasks.

Periodic

A task that executes regularly at a user-specified rate.


When called, it will interrupt any lower priority tasks.

Event

A task that is triggered only when a specific event


occurs. When called, it will interrupt any lower priority
tasks.

Icon

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTsb56r

11--2

Creating an Event Task in an RSLogix 5000 Project

Event Task
Note that the fastest or shortest task will
not necessarily be the highest priority.
In the graphic, point out that an event
task icon has a forward arrow because
the task executes once based on a
certain conditional event.
Also, note that like a continuous task or
periodic task, an event task contains
programs, tags, and routines.

An event task is a task that performs a certain function only when


triggered by a specified event:
Each task is assigned a trigger.

Each task is assigned a priority level. When triggered, the event

task interrupts any lower priority tasks (other event, continuous,


or periodic tasks).

Once initiated, all programs assigned to the event task are


executed or scanned once from top to bottom.

Upon completion, control returns to the task that was interrupted,


at the point in which it was interrupted.

Benefits

Note that event tasks can provide an


alternate, more effective way of
balancing the need for high-speed
processing with CPU performance.

Event tasks offer the following benefits:


Improve performance and reduce costs because tasks execute
only when needed
Reduce the amount of code a controller must scan on a regular
basis

Free up CPU resources for other operations


Provide faster throughput and improved loop-closure times,
which translate to higher production output

Tip "

Like a continuous or periodic task, event tasks require at least one


program and one routine.
Event Task Use
Event tasks are selected for processes that should only run when
needed, typically on an infrequent basis.
Perform an operation when a part is rejected

Execute a process when a certain count or time is achieved

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTsb56r

Creating an Event Task in an RSLogix 5000 Project

11--3

Example: Project Organization


Note that this project takes advantage of
some of the Logix5000 organizational
elements.

In this example, the event task is triggered only when the packing
tape is low:

Event Task

Event Task Properties


In the graphic, point out that the trigger
option is where the user chooses how
the event task will be enabled. Tell
students that this means event tasks will
only execute if the required trigger has
occurred.

The properties for each event task determine when the task is
executed:

Enables the Task


Specific Data for Triggers
such as Consumed Tag
Data Arrival or 1756 Module
Input State Change
Timeout Value

All other properties are the same


as those for periodic tasks.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTsb56r

11--4

Creating an Event Task in an RSLogix 5000 Project

Trigger
The following triggers can initiate an event task:

Note that the Motion Group Execution


event task permits a specialized
algorithm to be synchronized with the
motion group processing. Since the
planner is always a higher priority than
the event task, this event always occurs
when the planner is complete. This
allows you to use specialized control
algorithms to override the normal motion
loop processing.

Note that a physical device determines


the location and triggers Axis
Registration tasks on the off-to-on
transition of these inputs.

To triggers an event task when . . .

Select this trigger type . . .

A consumed tag changed value or its sequence


count just changed

Consumed Data State Change

COS input data on an input module has changed or


its sequence count changed

Module Input Data State Change

An event instruction goes true

EVENT instruction only


" This code specifies the task to
trigger. It is programmed outside
of the event task.

The motion planner executed

Motion Group Execution

The high speed registration input 1 on the motion


card or drive has fired trapping the current axis
position

Axis Registration 1

The high speed registration input 2 on the motion


card or drive has fired trapping the current axis
position

Axis Registration 2

The axis has crossed the assigned watch position.


A watch point is a software-based position that
serves as the trigger for the event

Axis Watch

The triggers that are supported depend on the


controller type.

Multiple controllers can simultaneously


consume the same produced tag.

This technique lets you use smaller,


more modular controllers in flexible
manufacturing cells. You can reconfigure
the cells while avoiding the
interlock-wiring issues that would
otherwise exist.

Consumed Tag
Because a controller produces and consumes data asynchronous to
the execution of its control program, the program may begin
processing with a mixture of old and new data.
Event tasks provide a way to synchronize data exchange to ensure
that a consuming controller receives all of the data before processing
begins:
After the producing controller loads the data into its produced tag,
the controller initiates an IOT (immediate output) instruction.

The consuming controller simply configures an event task to look


for the trigger via the consumed tag.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTsb56r

Creating an Event Task in an RSLogix 5000 Project

11--5

This technique provides the following advantages:


Automates the data detection processing for the consumer
Eliminates complex handshaking code

Improves the transfer rate


Coordinates the operations of multiple controllers in a distributed
system

? For digital modules, what is the

difference between RPI and COS?


The RPI sends data at a pre-configured
rate. COS sends data from a
digital input when the module
has detected that changes
have occurred (off-to-on, on-to-off, or
both). When any point configured for
COS changes state, the module
multicasts its data for all points.

Tip "

?For analog modules, what is the


difference between RPI and RTS?
RTS (Real Time Sample Rate)
specifies when an analog
module scans its channels and
multicasts data.

Example: Module input data state


change is valuable for applications such
as packaging and material handling,
where detection of a package by an
input sensor must be processed quickly
to drive an output solenoid to manipulate
or divert product.
Poll the class to find out who is using
remote I/O in their application.

Initiates code in the distributed controllers (consumers) based on


an event in a master controller (producer):

-- Eliminates data change detection overhead


-- Simplifies programming
Module Input Data State Change
Certain 1756 input modules support module input state change.
Refer to your module documentation for details.
Upon receipt of the information from a module, the controller
initiates the event task and executes the application code:
Saves valuable execution time by avoiding the need for the
controller to poll the inputs and perform COS (change-of-state)
detection

Captures and processes multiple events without additional CPU


overhead

1756 Local and Remote Options


Remote input modules can be used to trigger an event:
Input modules used to initiate an event task are generally in the
same chassis as the controller that needs to respond to the event.

Input modules can be placed in a remote chassis connected via a

ControlNet or EtherNet/IP network. The associated


communications module connecting the remote I/O must support
input events.

Point out that for many applications, the


benefit of reducing the CPU loading
overrides the need for speed.

Each network adds additional delays.

Quick-Response Events
Example: A packaging line requires a
label each time a product is detected.
Because of the speed with which
product moves by the labeler, an event
task is the only way to guarantee that
every load is detected and labeled.

Quick-Response Event: The delay between the input change and


the control of an output must be minimized:
Controls an output based on receipt of an input
Isolates code to ensure that execution is not impacted by long
continuous task scan times

Works for applications such as material handling, packaging,


gluing

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTsb56r

11--6

Creating an Event Task in an RSLogix 5000 Project

Short-Duration Input Events


With a short-duration event, the input
could change state once and then
change back again faster than the
normal scan of the continuous or
periodic task.

Example: In a bottling line, a sensor


detects an improperly capped bottle that
must be rejected. Because of the high
speed of the line, an event task is the
only way to detect the reject and
respond to it.

Short-Duration Input Event: An input whose duration is shorter


than the normal scan of the controller but the event does not occur
very often.
For short-duration input events, an event task performs the
following:
Executes an operation based on a short-duration (pulsed) input

Ensures capture of inputs that turn on and off faster than the
continuous task scan time

Works for applications such as encoder inputs, position sensing,


proximity devices

Synchronized-Execution Event
Example: Synchronized-execution
event tasks work for applications such
as packaging, process loops, drive
control loops

Synchronized-Execution Event: Typically used with analog data,


where the arrival of new data triggers an operation:
Each analog module has its own internal sample period for
converting analog input signals to digital floating values.

An asynchronous loop can exist between the receipt of new input


values and the execution of the code for the loop.

This discrepancy means that PID calculations


execute with stale data, which could result in
calculation errors.

With an event task, you can synchronize the PID calculation to the
arrival of flow transmitter data to avoid this potential error.
Throughput depends on module type, input
voltage, module temperature, filter and response
time settings, backplane size and loading, and
controller type.

Single Bit Triggers


A task can be triggered on a single bit change even when the task
configuration level is for the entire input module:
1. Access the Change of State options for the input module.
2. Select only the bit transition you want to trigger the event. By
default all transitions are enabled.
3. If there is more than one transition you want to monitor, use code
in the event task to find out what changed.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTsb56r

Creating an Event Task in an RSLogix 5000 Project

11--7

Change of State options are found on the Configuration tab of the


Module Properties dialog box:

Sends Data
When the
Input
Changes
from Off to
On and On
to Off

Module Input Data State Change -- Design Considerations

At the time of printing, the modules with


the best response times are
1756-IB32/B digital module and
1756-IF4FXOF2F analog module.

The following checklist will help you efficiently use input triggers:
- Limit the number of other modules that are in the same chassis
as the event module and controller. Additional modules
increase the potential for backplane delays.
- For digital inputs, restrict the triggering input to a single point
on the module. Disable COS for the other points. When you
enable COS, all inputs on the module trigger a single event,
increasing the chance of a task overlap.
- In general, set the priority of your event task as the highest
priority.
- Increasing the number of event tasks increases the load on the
CPU, increasing the chance of a task overlap.
- Choose modules with the best current response times.

Automatic Output Processing


Review the wording of this option.
Selecting it will actually disable (not
enable) automatic output processing.

Rev. August 2012

To reduce task overhead, verify the disable automatic output


processing . . . option is selected and use an IOT instruction in a
routine.

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTsb56r

11--8

Creating an Event Task in an RSLogix 5000 Project

Priority

If you already covered this topic in the


Periodic Task lesson, briefly review it
here.

Each periodic and event task in a controller has a priority level that
determines which task executes when multiple tasks are triggered:
Priorities are assigned by the user.

There are 15 levels of priority, with 1 being the highest priority

and 15 being the lowest:


-- A task with a higher priority will execute first (i.e., 1 before 3)

Clarify that the lower number (1) gives


the task a higher priority or importance.
Note that the fastest or shortest task will
not necessarily be the highest priority.

Task priorities are relative:


-- If there are only three tasks, priorities of 6, 7, and 8 will

Clarify that this means the continuous


task automatically has the lowest priority.
A user cannot configure the priority for a
continuous task.

function the same as priorities of 1, 2, and 3.


Although no priority level is assigned, the motion task is always
the highest priority.
Although no priority level is assigned, the continuous task is
always one priority level lower than all other tasks:

Highest Priority

Motion Task
Trend

Point out that periodic and event tasks


use the same priority scale/levels.
Therefore, whichever task has the
highest priority executes first, regardless
of the task type.

Event or Periodic Task - Priority 1 . . .


Event or Periodic Task - Priority 5 . . .
Event or Periodic Task - Priority 10 . . .
Event or Periodic Task - Priority 15 . . .
Lowest Priority

E 2012 Rockwell Automation, Inc. All rights reserved.

Continuous Task

Rev. August 2012


EVTsb56r

Creating an Event Task in an RSLogix 5000 Project

If you already covered this topic in the


Periodic Task lesson, briefly review it
here.

11--9

Scan Time Values


When executing, the software displays the maximum scan time and
the last scan time in milliseconds for the selected task in the Task
properties dialog box:

Online Properties
Length of Execution

Event Task Timeout


Setting this option will trigger a task within a specified period of
time if the required event does not occur:
This timer is reset and started when the task is completed.
This is not the same as a periodic task.
These instructions are explained on the
following pages. For more detailed
information on how these instructions
impact event tasks, see the online Help.

Event Instructions
The following instructions impact event tasks:
IOT (Immediate Output)
UID/UIE (User Interrupt Disable/Enable)

CPS (Copy Synchronize)

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTsb56r

11--10

Creating an Event Task in an RSLogix 5000 Project

IOT Instruction
An IOT instruction causes a value to be sent immediately, thus
improving response latency:
Can operate on a produced tag or an output module tag

Causes value to be sent, thus improving response latency


Avoids having to wait for another RPI to initiate an output update
On a produced tag, permits you to trigger a task in the consuming
controller:

Triggers the Task in the


Consumer

UID/UIE Instructions
These instructions work together to prevent a small number of
critical rungs from being interrupted by other tasks:
UID instruction prevents higher-priority tasks from interrupting
the current task but does not disable execution of a fault routine
or the Controller Fault Handler.

UIE instruction enables other tasks to interrupt the current task:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTsb56r

Creating an Event Task in an RSLogix 5000 Project

11--11

CPS Instruction
This instruction is considered part of the
File/Misc. group of instructions. It can be
found on the File tab of the Language
Elements toolbar.

The CPS instruction copies the value(s) in the Source to the values in
the Destination:
Performs double buffering of values and manages interrupts/event
tasks:

-- Operation cannot be interrupted by another task.


Reduces the need for application handshaking
Avoids mixture of old/new data

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTsb56r

11--12

Creating an Event Task in an RSLogix 5000 Project

Heres How

To create an event task.


Activity: As your instructor demonstrates this procedure, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project during the demonstration.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedure in the job aid

Trigger for the event task

Timeout option

Automatic output processing option

Rev. August 2012


EVTsb56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

11--13

Exercise: Creating an Event Task in


an RSLogix 5000 Project
Exercise A

In this exercise, you will practice the basic steps for creating an
event task.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the EVT_1756r_A1.acd project.
2. Create a new Event task with the following properties:
Name: Alarms
Trigger: EVENT Instruction Only
Priority: 5
Watchdog: 100 ms
3. Add the unscheduled Alarm_Control program to your new
Event tasks program schedule.
4. Open the MainRoutine within the MainProgram of the
Continuous task.
5. Create a rung of ladder that will momentarily trigger execution of
the Alarms Event task when DI12 (Local:2:I.Data.12,
program-scoped tag) is enabled.
6. Save your project.
7. Verify you correctly configured your Event task by performing
the following:
A. Download the project to the controller in slot 1.
B. Change the controller operating mode to Remote Run.
C. Toggle selector switch DI12 and confirm the output lights on
your workstation begin to flash.
8. Close your project.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--14

Exercise: Creating an Event Task in an RSLogix 5000 Project

Exercise B

In this exercise, you will practice creating an event task.


Context:
The width of the roll of tape used in the palletizing station is
measured by an optical sensor. Two alarms must be generated for the
operator when the tape is below a certain width. On the standard
workstation, these inputs and outputs appear as shown:

Active Only When Tape is Low

DI12

DI13

DI14

DI15

When on (right), DI15 indicates that


the tape is low.

When you see underlined text, refer to the related procedure or


information in your job aid.
Directions:
1. Open the EVT_1756r_B1.acd project.
2. Download this project to the controller in slot 1.
3. Change the controller operating mode to Remote Run.
4. Minimize the project.

Tip "

The assembly stations are now running.


5. Open the EVT_1756r_B2.acd project.
6. Configure the local input module to enable change of state (COS)
for bit 15 when it transitions from off to on.
7. Create a new event task named Tape_Low that will trigger when
DI15 (Local:2:I.Data.15) is turned on:

Configure the new tasks trigger to be data state change from


the local input module Local:2:I.
The existing periodic task has a priority level of 5. Your new
event task is more critical than the Clean_Conveyor task.
Configure the tasks priority to meet this requirement.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTe56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

11--15

8. In the space below, list your tasks from highest priority to lowest
priority according to the values assigned:

Tip "

So far, this is a simple application with only a few short tasks and
little task overhead.
9. In the event task, create a new program named
Low_Tape_Alarms.
10. Create a ladder diagram routine named Alarm_Control within
the program.
11. Assign Alarm_Control as the main routine of the
Low_Tape_Alarms program.
12. Make the controller-scoped tag Alarm_1 an alias for
Local:4:O.Data.10.
13. Make the controller-scoped tag Alarm_2 an alias for
Local:4:O.Data.11.
14. Enter the ladder logic to enable two alarm lights when the task is
active: Alarm_1 and Alarm_2. Put these on an unconditional
rung.
15. Save your project.
Before performing Step 16., turn the bottom row
of inputs (selector switches) off (to the left).

16. Check the operation of this event task by performing the


following steps:

Tip "

Two outputs (DO10 and DO11) should turn on as a visual indication


that the event occurred and the task was scanned. The task should be
scanned only when the tape is low (DI15 = 1).
A. Download your file to the controller in slot 3.
B. Change the controller operating mode to Remote Run.
C. On the workstation, start your conveyor by pressing the start
button (workstation label DI0).

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--16

Exercise: Creating an Event Task in an RSLogix 5000 Project

D. A low tape measurement has not yet been indicated. Did


outputs DO10 and DO11 turn on?

E. Enable any of the other pushbuttons or switches (except


DI15).
F. Did DO10 and DO11 turn on?

G. To indicate that the width of the tape is now low, set DI15 to
the right.
H. Did DO10 and DO11 turn on?

How Did You Do?

Turn to the Answers section.

Exercise C

In this exercise, you will practice creating an event task and


configuring an event instruction.
Context:
According to the functional specification, a task is required that will
inform the operator when a high percentage (3%) of the total parts
has been rejected. On the standard workstation, these inputs and
outputs appear as shown:
Reject Alarm (Flashes Only
When Percentage of
Rejected Parts is Greater
than or Equal to 3)

When you see underlined text, refer to the related procedure or


information in your job aid.
Directions:
1. Open the EVT_1756r_C1.acd project.
2. Download this project to the controller in slot 1.
3. Change the controller operating mode to Remote Run.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTe56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

Tip "

11--17

The assembly stations are now running.


4. Minimize the project.
5. Open the EVT_1756r_C2.acd project.
6. Open MainRoutine of the Station_4_Quality program in the
Quality task. Look over rung 4. This is the rung that evaluates the
percent of rejected parts.

Contains the
percent of
rejects created.

7. Create a new event task named Reject_Percent that is triggered


by an Event instruction. This task is higher priority than the
periodic task.
8. Create a program in the task that will group the data and code
related to the reject alarms. Name the program Reject_Alarms.
9. Create and assign a main routine named Alarm_Control.
10. Enter ladder logic that will enable the alarm light DO6
(Local:4:O:Data.6) when the task is scanned. If you have time,
make the alarm light flash.
11. Turn off DI12, DI13, DI14, and DI15 on the workstation.
12. After the task is set up, enter the code necessary to enable the task
when the Percent_Rejected tag value is greater than or equal to
3. Enter this logic in the Station_4_Quality MainRoutine, rung
5.
13. Download this project to the controller in slot 3.
14. Set both analog inputs to 0 in order to create poor quality parts.
15. Change the controller operating mode to Remote Run.
16. On the workstation, start your conveyor by pressing the start
button (DI0).
17. To introduce a new part into the system, toggle the part sensor
switch (DI12) from left to right and then back to left.
You will see the first assembly station, Press, is active (DO3).

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--18

Exercise: Creating an Event Task in an RSLogix 5000 Project

18. When the station light (DO3) is off, toggle the part sensor switch
from left to right and then back to left.
Now there are two parts moving down the conveyor. You will see
two stations, Press and Stake active (DO3 and DO4).
19. When both station lights are off, toggle the part sensor switch
(DI12) from left to right and then back to left.
Now you will see all three assembly stations Press, Stake, and
Weld, activate.

Tip "

When the first part has reached station four it will be evaluated for
quality. A part will be rejected if the pressure values are out of range
(40% to 60% is acceptable).
20. Monitor the ladder logic that you entered to enable the event task.

Tip "

This ladder logic should be in the main routine of the


Station_4_Quality program in the Quality task.

Tip "

As soon as the Parts_Rejected value is greater than or equal to 3,


the reject light will be enabled/flashing.
21. Continue to toggle selector switch DI12 as the Press, Stake, and
Weld lights go off until the reject light (DO6) is flashing or on.
22. Go offline with the controller and close the project.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


EVTe56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

Rev. August 2012

11--19

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--20

Exercise: Creating an Event Task in an RSLogix 5000 Project

Answers

Exercise A
2. Your task should contain the following information:

3. Your Alarms task program schedule should now look similar to


the following:

5. Your rung of logic should look similar to the following


example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTe56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

11--21

Exercise B
6. Your Enable Change of State options should look like the
following example:

Sends Data When the


DI15 Changes from Off to
On.

7. Your task should contain the following information:

The input module is


identified.
This task is more important
than the others; therefore, it
has a lower priority number.
The task takes approximately
45 ms to execute, so the
watchdog timer value is set to 100
ms.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--22

Exercise: Creating an Event Task in an RSLogix 5000 Project

8. The tasks have the following priorities:

Tape_Low is the most important task. It should have a


priority value of 4 or less.

The Clean_Conveyors task has a priority value of 5.


The Continuous task automatically has the lowest priority.
9. Your program should contain the following information:

10. Your routine should contain the following information:

15. The logic you created should look similar to the following:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTe56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

11--23

16.
D. No, outputs DO10 and DO11 did not turn on.
F. No, outputs DO10 and DO11 did not turn on.
H. Yes, outputs DO10 and DO11 did turn on.

Exercise C
7. Your task should contain the following information:

With this trigger,


there is no tag
required.

8. Your program should contain the following information:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--24

Exercise: Creating an Event Task in an RSLogix 5000 Project

9. Your routine should contain the following information:

Tip "

Any routine type could be used.


10. The following ladder logic will flash the alarm light when the
task is enabled. To simply turn the alarm light on without
flashing it, program rung 1 only, without the input instruction:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTe56r

Exercise: Creating an Event Task in an RSLogix 5000 Project

11--25

12. The following code will enable the task when the
Percent_Rejected value is more than (or equal to) 3:

Static Value

Rev. August 2012

Program Control
Instruction

E 2012 Rockwell Automation, Inc. All rights reserved.


EVTe56r

11--26

Exercise: Creating an Event Task in an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


EVTe56r

Lesson

12

Retrieving and Setting Logix5000


Controller Status Values with
GSV/SSV Instructions
What You Will Learn

After completing this lesson, you should be able to:


Retrieve and set a controller status value using GSV (Get System
Value) and SSV (Set System Value) instructions
Assign a fault routine

When You Will Do This


Poll students to see how many of them
are familiar with PLC-5 or SLC 500
status files.

Before You Begin


Poll students to see how many of them
are familiar with PLC-5 or SLC 500
status files.
Add that by removing the status files, the
controller can perform more efficiently
because it does not have to update
status files when it is not required.
Point out that these instructions are not
available in function block diagram or
sequential function chart languages.

Mention that by default, the GSV and


SSV instructions are part of the
Input/Output tab on the RSLogix 5000
Instruction toolbar.

Rev. August 2012

With Logix5000 controllers, you use GSV and SSV instructions to


access controller status values.

Monitoring Controller System Data


Unlike other controllers, a Logix5000 controller does not constantly
monitor controller system data and update status files.
A Logix5000 controller stores controller system data in structures
called objects.
Objects are monitored and changed using specific ladder logic and
structured text instructions:
GSV (Get System Value) Instruction: An instruction used to
monitor specific controller system data.
SSV (Set System Value) Instruction: An instruction used to set
specific controller system data.
Use the GSV/SSV instructions carefully. Changes
to objects storing controller system data or based on
controller system data can cause unintended
controller operation that may injure personnel and
damage equipment.

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2sb56r

12--2

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

To clarify, state that the object class is


the general category, the instance name
is the specific occurrence, and the
attribute is the specific piece of data.

GSV/SSV Parameters

Note that the source and destination are


similar to the source and destination in a
MOV instruction.

Instance
Attribute
Source (SSV) or destination (GSV)

GSV/SSV instructions operate on the values for these parameters:


Class

Class
Show students examples of object
classes in the Online Help.

The class is the category or type of object that is accessed:

Category

Instance
Note that this is one reason that naming
I/O modules with a descriptive name
(using purpose or location, for example)
is beneficial.

If more than one project component relates to the class selected, an


instance must be selected:

Specific Instance Name

Specific Component

? How would the This option help

Select THIS to identify the current task,


program, or routine. The instruction can then be
easily reused.

programmers work more efficiently?

Answer: The same code can be copied


to another task, program, or routine and
still function properly without further edit.

Attribute
Note that not all attributes are able to be
retrieved and set.

The attribute is the particular property or value that is retrieved or


set:

Property to Monitor

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2sb56r

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--3

Source or Destination
Add that the layouts of the required
source or destination data types are
detailed in the documentation reference
guide and in the online Help system.

A source contains values that will be set by an SSV instruction. A


destination stores the values that are retrieved by a GSV instruction:

Storage Tag for Value

The destination tag data type must match the size


and layout of the source as specified in the Help
system.

If the tag is a user-defined data type or an array of


data, select the correct member of the user-defined
data type or element of the array:

User-Defined Data Type Based on Data


Structure in the Help System

The first member of


the tag (Year) must
be selected.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2sb56r

12--4

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Example: GSV Instruction


GSV instructions can be used to retrieve information about
program scan time:

Tag

User-Defined
Data Type

In the example instructions, point out the


CIP object class and the CIP object
name and then the attribute name. Note
that these instructions are not
conditioned.

This example shows how to retrieve status information from a


program class. The specified program is named DISCRETE:
One GSV instruction retrieves the value of the last scan time.
The other GSV instruction retrieves the value of the max scan
time.

Both instructions place the data in different members of a


user-defined structure named Discrete_Info.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2sb56r

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--5

Example: SSV Instruction


The following is an example of an SSV instruction:

Add that this method can also be used


to enable or disable an I/O module,
which is similar to inhibiting bits within a
PLC-5 controller.
In the example instructions, point out the
object class and the object name and
then the attribute name.

In this example, an SSV instruction is used to enable or disable a


program.
Based on the value moved into the Discrete_Progr_Flag tag, the
appropriate value is placed in the disable flag attribute of the
program named DISCRETE.

Status Flags
Stress that most controller values are
accessed using GSV and SSV
instructions.

Controller status and arithmetic status flags can also be examined for
specific data.

Note that flags are not base tags.


Programmers will never see or create
alias tags for them.

Most controller configuration and status values are accessed using


the GSV and SSV instructions. There is also a set of status and
arithmetic flags that can be accessed directly in relay instruction
operands.
These flags are not base tags and you cannot
create alias tags for them.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2sb56r

12--6

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Controller Status Flags


Limited controller status can be examined using the following
controller status flags:
This status flag . . .

Is set after the . . .

First scan

S:FS

First normal scan of the routines in the current program

Minor fault

S:MINOR

Generation of an instruction-execution minor fault by program


execution

Arithmetic Status Flags


Add that for on-the-job reference, the
status flags are listed in the
documentation reference guide.

Mention that a non-recoverable fault is


often called a hardware fault.

Arithmetic status flags can be used to view the results of an


arithmetic operation:
This status flag . . .

Is set when the . . .

Overflow

S:V

Value being stored cannot fit into the destination because it is


either greater than the maximum value or less than the
minimum value for the destination

Zero

S:Z

Instructions destination value is zero [0]

Sign

S:N

Instructions destination value is negative

Carry

S:C

Instruction generated a carry

Fault Types
The controller detects three main categories of faults:
Non-recoverable major fault
Recoverable major fault

Minor fault

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2sb56r

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Mention that a non-recoverable fault is


often called a hardware fault.

12--7

Non-Recoverable Major Fault


Non-Recoverable Major Fault: A fault within the controller that is
severe enough to shut it down.

Note that students should have a basic


understanding of digital I/O configuration
from the fundamentals course or
equivalent experience. More in-depth
information is available in the
Troubleshooting Discrete I/O Modules
lesson.
Mention in controllers with older
firmware (version 13 or earlier), a
non-recoverable fault is indicated
by a solid red OK LED.

The following changes take place in the system:


Outputs change to the Fault Mode state set in the I/O
configuration.
The controller clears the project from its memory.

Depending on your controller and firmware, the controller OK


LED turns flashing red or solid red.
The word Faulted is displayed in the Online toolbar.

Flashing Red
(Solid in Some Controllers)

Recoverable Major Fault


Note that the major fault types and
codes and the minor fault types and
codes can be found in the Help system
and the appendices of the Procedures
Guide.

Recoverable Major Fault: A fault that is severe enough to shut


down the controller if the condition is not cleared.
A recoverable major fault can be of two categories:
Instruction execution
Other errors:

-- Power loss
-- Loss of critical I/O
-- Array subscript errors

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2sb56r

12--8

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Recoverable Major Fault Processing: Level 1


When a recoverable major fault first occurs, the following changes
take place in the system:
A major fault bit is set in the controller.

Any user-programmed fault routines are executed:


-- Program-level fault routine
-- Controller-fault handler
Fault Routine
Tell students that the fault routine is
created in the program and assigned.
Additionally, a GSV instruction can be
used to retrieve the fault code and store
it in a tag.
Remind students that non-instruction
level faults include I/O faults, task
watchdog faults, etc.
Add that for non-instruction faults, no
program fault routines are called.

? How do you access another routine

Each program can have its own fault routine:


The controller executes the programs fault routine when an
instruction-related fault occurs.
If a fault is cleared, the routine continues executing at the
instruction immediately after the one that caused the fault:

-- The controller does not enter Fault mode.


A fault routine normally contains logic to identify a fault and
sometimes clear it:
Fault Routine Icon

from the main routine?

Answer: Program a JSR instruction to


call the specified routine (subroutine)
from the main routine.
Fault Routine Code

Elements 0 to 1: 64-Bit Timestamp


Element 2: Fault Type (Lower 16 Bits) and Code (Upper 16 Bits)
Elements 3 to 10: Fault-Dependent
Information

Controller Fault Handler


Each project contains a Controller Fault Handler folder. A
programmer may add one optional program to it.
A controller fault handler executes in the following situations:
When a recoverable major fault is not related to an instruction

When a program fault routine does not exist or could not clear an
instruction-related fault

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2sb56r

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Note that the programming language


works in the same manner as the
programming in a fault routine.

12--9

At minimum, a main routine must be created and assigned:

Program
Main Routine
Subroutine

Recoverable Major Fault Processing: Level 2


If the controller fault handler does not exist or cannot clear the
recoverable major fault, the controller enters Fault mode and shuts
down:
Outputs change to the configured output state for Program mode.

The controller OK LED flashes red.


The word Faulted is displayed in the Online toolbar:

Logix5563

Flashing Red

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2sb56r

12--10

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Multiple Recoverable Major Faults


Remind students that the fault
information is displayed on the Major
Faults tab of the Controller Properties
dialog box.

With multitasking capabilities, a controller can handle as many as 32


simultaneous recoverable major faults.
If multiple recoverable major faults are reported, the following
actions take place:
The controller processes the faults in the order that they occur.

If any of the faults are not cleared by the controller fault handler,

Remind students that a watchdog fault


occurs if the sum of the execution times
for all programs in a task is greater than
the watchdog value.

the controller goes into Fault mode:


-- The fault that was not cleared and up to two additional faults
are logged.
-- This information can be viewed via the Major Faults tab in the
controller properties.
If over 32 major faults occur at the same time, the controller goes
into Fault mode:
-- The first three major faults are logged into the controller fault
log.
If a watchdog fault occurs a second time in the same logic scan,
the controller enters Fault mode, whether or not the controller
fault handler clears the fault.

Common Major Faults


Common major faults include:
Required I/O connection has failed
Array subscript is too big

A timer has a negative preset or accumulated value


Task watchdog timer has expired
Others
Minor Fault
Minor Fault: A fault that is not severe enough to shut down the
controller:
Low battery
Serial port problems

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2sb56r

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--11

With a minor fault, the following changes take place in the system:
The program scan and normal I/O control continues.
The controller OK LED remains solid green.

A minor fault bit is set.

Logix5563

Normal
Operating
State

Solid Green

A minor fault may only be detected if


programming language is written to monitor it or
if you monitor the Minor Faults tab in the
Controller properties.

A minor fault does not affect application


operation. However, clearing a minor fault may
improve scan time.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2sb56r

12--12

Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Heres How

To perform the following tasks:


Retrieve and set a controller status value using GSV and SSV
instructions
Assign a fault routine
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project during the demonstration.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Object and Attribute information found in the Help


system

Fault Routine Assignment drop-down list

Rev. August 2012


GS2sb56r

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--13

Exercise: Retrieving and Setting


Logix5000 Controller Status Values
with GSV/SSV Instructions
Exercise A

In this exercise, you will practice retrieving controller status data.


Context:
You have completed and tested your project. You would like to test
your fault routine to verify it works correctly. For troubleshooting
purposes, you want to retrieve the maximum scan time for each
program in the project.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the GS2_1756r_A1.acd file.
2. Download your project to the controller in slot 1.
3. Place the controller in Remote Run mode.
4. The controller has faulted because the logic in rung 3 of the Main
routine of the Conveyor program is attempting to place a value in
an element of an array that does not exist. Clear the fault from
within the Controller Properties dialog box.
5. Assign the Conveyor_Fault routine as the fault routine of the
Conveyor program.
6. Place the controller in Remote Run mode and verify the fault has
been corrected.
7. What instruction could be used to retrieve the maximum scan
time of a program?

8. In the MainRoutine of the Conveyor program, create the ladder


logic required to retrieve the maximum scan time for the
Conveyor program. Store this information in an existing program
tag named Max_Scan_Time.

Tip "

Rev. August 2012

Search Help for the MAXSCANTIME attribute for help configuring


your logic.

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2e56r

12--14

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

9. Modify your ladder logic so that the rung could be copied to any
program and still retrieve the max scan time without additional
modification.
10. Copy the Max_Scan_Time tag and the ladder logic into the main
routines of the other three programs.
11. Verify and save your project.
12. To test your work, verify that a scan time is recorded in each of
the four ladder logic instructions.

How Did You Do?

Turn to the Answers section.

Exercise B

In this exercise, you will practice retrieving controller status data and
store this information in a user-defined data type.
Context:
Using the project in the controller in slot 3, you want to record shift
numbers based on controller status data. You are now ready to
retrieve the current controller wall clock value.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the GS2_1756r_B1.acd file.
2. Based on the WallClockTime Date/Time information in the Help
system, create a user-defined data type called DateTime that will
store the current wall clock time.
3. Create a tag called Wall_Clock that uses the DateTime data type
that you just created.
4. Open the MainRoutine of the Shift_Calculation program in the
Periodic Task.
5. Draft the ladder diagram required to retrieve the current clock
time from the controller and store it in the Wall_Clock tag.

Tip "

Be sure to select the correct member in the Wall_Clock tag.


6. In the Shift_Calculation program tags, create a new DINT tag
called Shift_Number.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2e56r

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Tip "

12--15

Shift times are calculated using the following parameters. 24-hour


times are used:
If the time is Between (Limited to). . .

The Shift Number Is . . .

14:59

15

22:59

23

6:59

7. In the Shift_Calculation MainRoutine, enter the logic required to


move the correct shift number into the Shift_Number tag based
on the current Wall_Clock.Hour time.
8. Save your project.
9. Download your project to the controller in slot 3.
10. Place the controller in the Remote Run mode.
11. Verify that the current shift is correctly calculated in the ladder
logic.
12. Monitor the Wall_Clock tag to see the values changing for all
members of the structure.

How Did You Do?

Turn to the Answers section.

Exercise C

In this exercise, you will practice retrieving controller status data and
assigning a fault routine.
Context:
You must program a fault routine that will capture a controllers
major fault record and clear the fault record. You must develop logic
that faults the controller to test the fault routine.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the GS2_1756r_C1.acd file.
2. Create a user-defined data type named MajorFaultRecord with
the following elements:
Name

Rev. August 2012

Data Type

TimeLow

DINT

TimeHigh

DINT

Type

INT

Code

INT

Info

DINT[8]
E 2012 Rockwell Automation, Inc. All rights reserved.
GS2e56r

12--16

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

3. Create two new controller-scoped tags using the


MajorFaultRecord data type:
Capture
Clear
4. In the Controller Fault Handler folder within the Controller
Organizer create a new program name ProgramFaults.
5. Create a new routine within ProgramFaults named
Capture_Clear_Faults.
6. Assign Capture_Clear_Faults as the main routine of the
ProgramFaults program.
7. Open the Capture_Clear_Faults routine.
8. Add a GSV instruction that will store the MajorFaultRecord of
any program that calls this fault handler routine in the
Capture.TimeLow tag.
9. Add a SSV instruction that will use the Clear.TimeLow tag to
clear the MajorFaultRecord of any program that calls this fault
handler routine.
10. Configure the existing Clear_Fault tag as an enabling condition
for the SSV instruction.
11. Open the MainRoutine in the MainProgram of the MainTask.
12. Add the following logic to the MainRoutine:

Tip "

This logic will generate a controller fault by placing an invalid value


into the Timer tag preset when selector switch 12 is enabled.
13. Verify your project.
14. Download to the controller in slot 1 and place your controller in
Remote Run.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2e56r

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--17

15. Verify the project is working correctly by performing the


following:
A. Enable selector switch DI12.
B. Verify the controller faults.
C. Monitor the Capture tag and confirm it is populated with data
from the MajorFaultRecord.
D. Access Controller Properties and clear the fault.
E. Enable selector switch DI13.
F. Place the controller in Remote Run mode.
G. Confirm the controller does not enter a faulted state.
H. Go offline and close your project.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2e56r

12--18

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Answers

Exercise A
4. The fault can be cleared by selecting the Clear Majors button
from within the Controller Properties dialog box:

5. Assign the Conveyor_Fault routine from the Configuration tab


within the Program Properties dialog box:

7. The Get System Value (GSV) instruction retrieves controller


system data including the maximum scan time for a program.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2e56r

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--19

8. Based on the memory structure of the MaxScanTime attribute, a


program-scoped DINT tag was created in the Conveyor
program and the following ladder logic was programmed:

9. Because the THIS instance name was used, the ladder logic
could easily be copied to the three machine stations.

Exercise B
2. The following user-defined data type was created to store the
date/time information in a readable form:

Help System Information:

The data type must be the same order as the


date/time information or data will be stored
incorrectly.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2e56r

12--20

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

3. A tag named Wall_Clock (of the DateTime data type) was


created to store the retrieved wall clock values:

5. The following ladder logic was entered to retrieve the date/time


information and set the shift number:

This is a tag of a
user-defined
data type named
DateTime.

E 2012 Rockwell Automation, Inc. All rights reserved.

The first element of the


address (Year) must be
selected.

Rev. August 2012


GS2e56r

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--21

7. The following logic could be used to move the correct shift


number into the Shift_Number tag based on the current
Wall_Clock.Hour time:

Time Between 7 and 14:59

Time Between 15 and 22:59

Time Between 23 and 6:59

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2e56r

12--22

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

Exercise C
2. The structure of your MajorFaultRecord data type should be
configured similar to the following:

3. You should have added the following controller-scoped tags:

6. Your Controller Fault Handler folder should now look similar to


the following:

8. Your GSV instruction should be configured similar to the


following:

Use the first member


of the Capture tag

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2e56r

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

12--23

9. Your SSV instruction should be configured similar to the


following:

10. The rung you placed the SSV instruction on should now look
similar to the following:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


GS2e56r

12--24

Exercise: Retrieving and Setting Logix5000 Controller Status Values with GSV/SSV Instructions

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


GS2e56r

Lesson

13

Programming a BTD Instruction in


an RSLogix 5000 Project
What You Will Learn

After completing this lesson, you should be able to program a Bit


Field Distribute (BTD) instruction in an RSLogix 5000 project.

When You Will Do This


Sometimes groups of bits within a value have a specific meaning. A
BTD instruction lets you extract those bits so they are easier to use.

Before You Begin


Mention that if the length of the bit field
extends beyond the destination (Dest),
the instruction does not save the extra
bits. Any extra bits do not wrap to the
next word but instead are dropped.

BTD (Bit Field Distribute) Instruction


A BTD instruction copies specified bits from the Source, shifts the
bits to the appropriate position, and writes the bits into the
destination (Dest).
When enabled, a BTD instruction copies a group of bits in the
following manner:
The group of bits is identified by the Source value bit (lowest bit
number of the group) and the length (number of bits to copy).

The destination (Dest) bit identifies the lowest bit number to start
with in the destination (Dest).
The Source value remains unchanged.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


BTDsb56r

13--2

Programming a BTD Instruction in an RSLogix 5000 Project

The following example copies 6 bits to a different location in the


same tag:

Destination (Dest) Bit

Source Bit

value_1
Before BTD
Instruction
value_1
After BTD
Instruction

The shaded boxes show the bits that changed in value_1.

AFTER MOVE:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


BTDsb56r

Programming a BTD Instruction in an RSLogix 5000 Project

Heres How

To program a BTD instruction.

Example

BTD Instruction

13--3

This example gets status information about an I/O module and uses a
BTD instruction to make the information easier to use:
1.

2.

3.
4.
5.

To show why you are using bits 12 to 15:


1. Click the GSV instruction.
2. Press F1.
3. Scroll through the help and click the
GSV/SSV Objects link. It is near the
end of the Description section.

1. The GSV instruction gets status information about some part of


the system.
2. In this example, the GSV instruction gets the status of the I/O
module in slot 2 of the workstation.
3. Bits 12 to 15 give the status of the module.

4. Click the MODULE link.

4. The BTD instruction extracts bits 12 to 15 and stores them in a


separate tag.

Remove the I/O module from the


chassis and point out the change in the
status value.

5. It is now a lot easier to use the status information. If the value is


not 4, there is a problem.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


BTDsb56r

13--4

Programming a BTD Instruction in an RSLogix 5000 Project

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the BTD_1756R_DEM1.acd file for
your demonstration.
After you demonstrate, ask each key
point as a question and have the
students tell you what they noticed.

Your Turn

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Which side of the bit pattern is the first bit

At what number the source or destination bit starts

Now its your turn. Complete Exercise A.

Rev. August 2012


BTDsb56r

Exercise: Programming a BTD Instruction in an RSLogix 5000 Project

13--5

Exercise: Programming a BTD


Instruction in an RSLogix 5000
Project
Exercise A

Practice programming a Bit Field Distribute (BTD) instruction.


Context:
Suppose you need to know the physical position of the controllers
keyswitch. You already have a GSV instruction that gets the status
attribute for the controller. You want to make it easier to read the
position of the keyswitch.
Status Attribute for the Controller
The status attribute for the controller provides the following
information. You want only the keyswitch position.
Bits
Bits 3--0
Bits 7--4

Bits 11--8

Bits 13--12

Bits 15--14

Bit Pattern

Meaning
Reserved

0000
0001
0010
0011
0100
0101
0110
0111
0001
0010
0100
1000
01
10
11
01
10

reserved
flash update in progress
reserved
reserved
flash is bad
faulted
run
program
recoverable minor fault
unrecoverable minor fault
recoverable major fault
unrecoverable major fault
keyswitch in run
keyswitch in program
keyswitch in remote
controller is changing modes
debug mode if controller is in Run
mode

When you see underlined text, refer to the related procedure or


information in your job aid.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


BTDe56r

13--6

Exercise: Programming a BTD Instruction in an RSLogix 5000 Project

Directions:
1. Open the BTD_1756R_A1.acd project file.
2. Open MainRoutine.

The MainRoutine has a GSV instruction that retrieves the Status


attribute of the controller. The instruction stores the value in the
Controller_Status tag.
3. Extract the bits for the keyswitch position from the
Controller_Status tag and put them in their own tag. The
Controller_Status tag is an INT data type so create an INT tag to
store the keyswitch bits.
4. Download the project to slot 1 of your workstation.
5. Put the controller in Run mode.
6. Change the position of the keyswitch and check your work:
If you turn the keyswitch to . . .

The status value should be . . .

RUN

REM

7. Save the project.


8. Go offline.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


BTDe56r

Exercise: Programming a BTD Instruction in an RSLogix 5000 Project

Rev. August 2012

13--7

E 2012 Rockwell Automation, Inc. All rights reserved.


BTDe56r

13--8

Exercise: Programming a BTD Instruction in an RSLogix 5000 Project

Answers

Exercise A
3. The following graphic shows how to set up the BTD
instruction:

Rung 0

The GSV instruction that retrieves the Status attribute of the


controller and stores it in the Controller_Status tag.

Rung 1

The BTD instruction copies bits 12 and 13 (length = 2) of the


Controller_Status tag. It puts them in bits 0 and 1 of the
Keyswitch_Position tag.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


BTDe56r

Lesson

14

Configuring a Logix5000 Message


What You Will Learn
Remind students how this is different
than the data they sent earlier across a
ControlNet network. Stress the
difference between produced and
consumed tags (scheduled with RPI)
and messages (unscheduled).
Poll students to find out if they have
programmed messages for any other
types of controllers.

After completing this lesson, you should be able to:


Configure a message (read, write, and CIP generic)
Create and enter a numeric communications path

When You Will Do This


Here are some situations when you may need to use a Message
(MSG) instruction:
Send data to other Logix5000 controllers

Send data to PLC-5 and SLC 500 processors


Reset faulted 1756-I/O modules

Before You Begin

Remind students that deterministic data


is data that arrives at the same time
interval.
Stress that scheduled data, such as
control and I/O data, is given highest
priority on the ControlNet network. Other
information, such as programming or
upload and download operations, does
not interfere with the transport of control
and I/O data.

? How is scheduled data sent?

Unscheduled Data
Unscheduled Data: Non-deterministic information that is not time
critical. This type of data has the following characteristics:
Transmits after all scheduled data has been sent
Can be any of the following:

-- Connection establishment
-- Programming data (uploads and downloads)
-- Ladder-initiated, peer-to-peer messaging data (MSG
instruction)

Answer: Using produced and consumed


tags (locally and over a Control
network).

Messages to Logix5000 Controllers

Note that PLC-5 and SLC 500


controllers require Integer data.

A message is unscheduled data that is exchanged over a


communications network. When using a message to send data to or
from a Logix5000 controller, keep in mind the following rules:
Both the source and destination tags must be controller-scoped.
The source and destination tags cannot be Axis, Message, or
Motion_Group tags.

Array elements and structure members cannot be specified:


-- Use an alias tag to send these types of data.
A portion of an array cannot be transferred:
-- Send the entire array using the array name, or send one
element of an array using an alias tag.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2sb56r

14--2

Configuring a Logix5000 Message

Messages to Other Controllers


A Logix5000 controller can also send a message to communicate
with the following controllers:
A PLC-5 controller

An SLC 500 controller


A PLC-3 controller
A PLC-2 controller
Configuring a Message
To configure a message to any controller or module, the following
items must be completed in this order:
1. Add the destination controller to the I/O configuration (optional).

Remind students that in other


controllers, the data file is already
created. In this controller, you must
define the memory area with a tag.

2. Create a controller-scoped tag of the message data type.


3. Along with any ladder logic conditions, program a message
(MSG) instruction with the new tag as the message control tag.
4. Configure the MSG instruction.
In the graphic, point out that the
Message tag is the main operand in the
MSG instruction.

The flow of the configuration process is shown in the following


graphic:

1. Add the Destination Controller

2. Create a Tag of the


Message Data Type

3. Program an
MSG Instruction
4. Configure the
MSG Instruction

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


MS2sb56r

Configuring a Logix5000 Message

Mention that complete demonstration


including how to select the values used
in the dialog box will be presented in the
Heres How demonstration.

14--3

To continuously enable a message, condition the message with an


XIO instruction that examines the message control word enable bit:

Note that the message is continuous as


long as the task is active and the routine
is enabled.
Add that when using a message for fault
finding, use a pushbutton to enable the
rung. This will allow the entire message
code to be displayed.

Read, Write, and Block Transfer Parameters


The following is an example of a configuration screen for a read
message:

Note that RSLogix 5000, version 10 and


higher, provides many enhancements for
sharing data with SLC 500 controllers.

To configure a read, write, or block transfer message, the following


parameters must be configured:
Source Element: The tag or logical address currently containing
the data to be transferred:

Note that a read instruction helps


identify the source of the data. Writes do
not identify the destination.

-- For a read message type, the source element is the address of

Example: The tag timer1 is one element


that consists of one timer structure.

the data you want to read in the target device. Use the
addressing syntax of the target device.
-- For a write message type, the source tag is the tag of the data
in the Logix5000 controller that you want to send to the target
device.
Number of Elements: The number of elements to be transferred.
The number of elements you read/write depends on the type of
data you are using.
Destination Element: The tag or logical address to which the
data will be transferred:

-- For a read message type, the destination tag is the tag in the
Logix5000 controller where the data being read from the
target device will be stored.
-- For a write message type, the destination element is the
address in the other device (remote device) where the data will
be written.
Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2sb56r

14--4

Configuring a Logix5000 Message

Cache Connections: A bit that instructs the controller to

Note that entering a numeric path is


included in the Procedures Guide. A
detailed example is also included.

maintain or close the connection after a message has executed:


-- Because initiating a message increases scan time, for a
continuous message, enable the cache bit.
-- For a message that is infrequently sent, disable the cache bit.
Path:
-- Select a module or port in the I/O configuration using the
Browse feature.
-- If the module is not available in the network tree, create and
enter a numeric path.

Creating and Entering a Numeric Communications Path


Review the path rules in the Procedures
Guide.

Tip "
Point out the following in the address:
S

1 represents the path out the


backplane of the controller.

ENET_Module is the name of the


selected module.

2 represents the Ethernet


port.

The IP address is the IP address of


Tip "
the destination module.

1 represents the path from the


destination module to the controller
across the backplane.

3 represents the slot number of the


destination controller.

Note that a CIP message can send


configuration information to a module
that can be conditioned by an operator
input.

E 2012 Rockwell Automation, Inc. All rights reserved.

The numeric path rules are provided in the Glossary of the


Procedures Guide. Turn to the Glossary and review the rules now.
A combination of module name and numeric paths can be used:

1, ENET_Module, 2, 130.151.138.104, 1, 3
Numeric Communications Path
Module Name

Programmatic reconfiguration of the communications path, node


address, parameters, and source/destination permits one message to
target multiple devices, reducing the number of messages in a
project.

CIP Generic Message Parameters


A CIP generic message is used to:
Transfer a block of data between Logix5000 controllers
Send configuration data from a Logix5000 controller to an I/O
module:
-- Perform a pulse test on a digital output module
-- Reset electronic fuses on a digital output module
-- Reset latched diagnostics on a digital input or output module
-- Reset latched status on an analog module
Perform a device reset or Device Who operation
Perform custom operations

Rev. August 2012


MS2sb56r

Configuring a Logix5000 Message

Note that a hex code for the Service


type is not always required as of
RSLogix 5000 software, version 10.

14--5

The following is an example of a configuration screen for a CIP


generic message:

To configure a CIP generic message, the following parameters must


be defined:
Service Type: The type of service to be performed on the module
(e.g., resetting latched diagnostics or performing a pulse test).
Depending on the service, some of the following Hex codes may
be required:
Note that these names were changed to
match the Class, Instance, and Attribute
Names of DeviceNet objects (for
DeviceNet explicit messaging).
Mention that logical address refers to an
address in a controller other than a
Logix5000 controller.
Point out that with RSLogix 5000
software, version 10 or higher,
programmatic bumpless reconfiguration
of an I/O module allows you to
reconfigure I/O module settings without
resetting the outputs, providing better
control of I/O.

Tip "

-----

Service code: Category of service to be performed.


Class: The I/O module type.
Instance: Message type ID.
Attribute: The attribute to be reset (such as latched status on
an analog module).
Source Element: The tag or logical address currently containing
the data to be transferred.
Source Length: The number of elements to be transferred.

Destination: The tag or logical address to which the data will be


transferred.

Additional information on Service Type can be found in the


Procedures Guide.

Message Execution
Have the students open the
Documentation Reference Guide.
Review the MSG bits and their functions.
Point out the information on MSG error
codes.
Note that the enhanced message debug
tools also provide error codes that
reduce ambiguity in error messages.

Rev. August 2012

While online, message errors can be identified in RSLogixt 5000


software:
A message that is not received will not have the .DN bit set.
Error codes can be found in the configuration dialog box:

-- Enhanced message debug tools identify which module


generated the run-time error code.

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2sb56r

14--6

Configuring a Logix5000 Message

Heres How

To perform the following tasks:


Configure a message (read, write, and CIP generic)
Create and enter a numeric communications path
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project during the demonstration.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

How to open the Message Configuration dialog box

Cache Connections option

Rev. August 2012


MS2sb56r

Exercise: Configuring a Logix5000 Message

14--7

Exercise: Configuring a Logix5000


Message
Exercise A

In this exercise, you will practice configuring a message that is sent


from one Logix5000 controller to another Logix5000 controller.
Context:
You are part of a team that programmed a Logix5000 compressor
assembly line. This line is running successfully; therefore, you have
set up an identical production line. These lines are connected by a
network. To keep track of daily production, you want the master
controller to read the production total from the other line. You are
now ready to send a message from a Logix5000 controller to another
Logix5000 controller.
The plant setup is shown in the following graphic:
Remote Line

Network
Local Line

When you see underlined text, refer to the related procedure or


information in your job aid.
Directions:
1. Open the MS2_1756r_A2.acd file.
2. Download the project to the controller in slot 3 of the remote
workstation.
3. Place the controller in Remote Run mode.
4. Open the MS2_1756r_A1.acd file.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2e56r

14--8

Exercise: Configuring a Logix5000 Message

5. To select the controller in the communication path in the message


configuration, add the controller in slot 3 of the remote
workstation to the I/O configuration of the project:
Add a local communications module (the CNB or ENBT) to
the I/O Configuration
Add the remote communications module
Add the remote controller in slot 3, name it
Remote_Controller.
6. In the Conveyor program, create a ladder diagram routine named
Count_Total.
7. In the Conveyor program Main Routine, program a JSR
instruction to access the Count_Total routine.
8. At what scope must a message control tag be created?

9. Create a message control tag for the message execution called


Count_Message.
10. In the Count_Total routine, write ladder logic that enables a
message instruction when DI7 is pressed.

Tip "

Create a tag named Read_Remote_Total and make it an alias for


DI7.
11. Configure the message instruction as follows:
The message uses the Count_Message message control tag.
The message type is CIP Data Table Read.

When DI7 is pressed, the message reads the value of

Count_Passed.ACC from the controller in slot 3 of the


remote station.

Tip "

The timer value (Count_Passed.ACC) is a DINT.

The message stores the value in a new tag called


Count_Passed_Line_2.

Tip "

Be sure that you have created the Count_Passed_Line_2 tag in your


application.
12. Identify the communication path in the communications
configuration of the MSG instruction.
13. Save the project.
14. Download the project to the controller in slot 1.
15. Change the controller operating mode to Remote Run.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


MS2e56r

Exercise: Configuring a Logix5000 Message

14--9

16. Test your system by performing the following actions and placing
a check in each completed box:
Press DI7.
Monitor the Count_Passed_Line_2 tag.
Record the value: _____________________
At the other production line (workstation) create one or
more new parts.
To create a new part, toggle DI12 from the left then to the right.

Tip "

Press DI7 on the remote workstation and verify that the


value of the Count_Passed_Line_2 tag increases.
Using the other production line, create 1 more new part.
Press DI7 again and verify that the value of the
Count_Passed_Line_2 tag increases again.

How Did You Do?

Turn to the Answers section.

Exercise B

In this exercise, you will practice configuring a CIP Generic


message.
When you see underlined text, refer to the related procedure or
information in your job aid.
Context:
During operation, you want the controller to monitor the part sensor
input for an open-wire condition. If an open-wire condition exists,
you want the controller to turn on an alarm light. When the condition
is cleared, you want the operator to unlatch the module fault bits
using a reset pushbutton.
Directions:
1. Open the MS2_1756r_B1.acd file.
2. Verify the project and correct any errors.
3. Create a control tag for the message execution called
Part_Sensor_Reset_Message.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2e56r

14--10

Exercise: Configuring a Logix5000 Message

4. In the I/O Diagnostics routine in the Common program, enter


the following ladder logic (the tags have already been created):

5. Make the Part_Sensor_Fault tag an alias tag for an open wire


fault on the part sensor (bit 12 of the input card in slot 2).
6. Read the ladder logic to gain an understanding of its purpose.
A. If the Part Sensor device has an open-wire fault, a pilot light
is illuminated.
B. If the operator pushes the reset button, a message is sent to
reset the module and turn off the light.
7. Create a controller-scoped tag named Part_Fault_Source of
DINT data type.
8. Modify the value of Part_Fault_Source tag so that each bit
within the tag has a value of 1.

Tip "

Entering a value of - 1 in the Part_Fault_Source tag will set each bit


to a value of 1.
9. Configure the message to reset the input module in slot 2.
Message Type: CIP Generic
Service Type: Reset Latched Diagnostics (O)
Source Element: Part_Fault_Source
Communications Path: Input module in slot 2

Tip "

For help, go to the Reset Latched Diagnostics on a Digital Module


procedure within online Help.
10. Download the project to the controller in slot 3 and then place the
controller in the Remote Run mode.
11. To test the application, perform the following actions:
A. To simulate the open-wire fault for the part sensor, unlock
the module wiring arm on the input module in slot two and
then remove the wiring arm.
B. Verify that the operator alarm (DO7) is on.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


MS2e56r

Exercise: Configuring a Logix5000 Message

14--11

C. Verify that the diagnostic fault lights for the module are on
and that the fault tags each contain a 1.
D. Replace the wiring arm.
E. Acknowledge the alarm and reset the module by pressing
pushbutton DI6.
F. Verify that the module LEDs and the alarm light are reset.
G. Go offline.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2e56r

14--12

Exercise: Configuring a Logix5000 Message

Answers

Exercise A
5. The I/O configuration for an EtherNet/IP network should
appear as follows:

Local Comm Module

Remote Comm Module


Message Source

7. Your JSR instruction should be configured similar to the


following example:

8. The message execution tag must be controller-scoped.


10. The ladder logic that initiates the messages should appear as
follows:

New Tag of the MESSAGE Data Type

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


MS2e56r

Exercise: Configuring a Logix5000 Message

14--13

11. The Configuration tab should appear as follows:

Count_Passed_Line_2 is a new tag that must be created.

The Communication tab should appear as follows:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


MS2e56r

14--14

Exercise: Configuring a Logix5000 Message

Exercise B
If your project is not functioning correctly, verify that you have
completed the following actions:
- Created a controller-scoped tag of the message type for the
message instruction
- Made the Part_Sensor_Fault tag an alias tag for
Local:2:I.OpenWire.12
- Created a source tag (DINT) with each reset value bit set to 1
- Created the ladder logic in the routine and configured the
MSG instruction
- Selected the input module in the Communications tab
The following alias tags and configurations were completed:
Alias for an
Open-Wire Fault
on the Part
Sensor

Input Module Selected on


the Communications Tab

E 2012 Rockwell Automation, Inc. All rights reserved.

Controller-Scoped Message Control Tag

Rev. August 2012


MS2e56r

Lesson

15

Developing an Add-On Instruction


in Ladder Diagram
What You Will Learn
Mention that you can also protect an
add-on instruction so that people cant
change its logic and local data. Or you
can hide the logic and local data
completely. Protecting an add-on
instruction is outside the scope of this
lesson.

Tip "

After completing this lesson, you should be able to:


Plan the parameters of an add-on instruction
Decide if you need an EnableInFalse routine

Create an add-on instruction


Use an add-on instruction in a routine
Monitor the values and logic of an add-on instruction
Export and import an add-on instruction

Use RSLogix 5000 software to learn more. Go to Help > Learning


Center > Whats New.

When You Will Do This


Explain that add-on instructions are
similar to subroutines. Point out the
advantages and tradeoffs of add-on
instructions as you go along.

Use add-on instructions to save development time by making your


code more modular, re-usable, and easy to use:
Encapsulate your most commonly used logic as instructions,
similar to the controllers built-in instructions

Re-use the instructions in any of your projects


Monitor an instruction and see its logic as it executes, even when
you use the instruction multiple times in a project

Before You Begin

Add-On Instructions
Add-On Instruction: An instruction that you build from the built-in
instructions in the controller. An add-on instruction:
Is similar to a subroutine

Lets you encapsulate a routine of logic and use it as an instruction

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--2

Developing an Add-On Instruction in Ladder Diagram

Explain that an add-on instruction


executes similar to a subroutine. You
give it inputs, execute some code, and
get outputs.

Example of an Add-On Instruction


This add-on instruction checks for jammed product at the entry gate
of a conveyor:

The instruction reads the state of a photoeye at the


entrance of a conveyor.

If the photoeye is on too long, it means that product


is jammed. When that happens, the instruction turns
on the Jammed bit.

When you execute the add-on instruction, it executes its logic:

The Detect_Jam instruction executes


this logic.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

15--3

An Add-On Instruction Uses a Definition


Point out that with a subroutine you
need a copy of it in each program that
uses the subroutine.

Add-on instructions are global in nature. You first create a definition


for the instruction. Then you enter instances of it into any of your
programs:

This is the definition for the instruction.


Its the template for each instance.

Rev. August 2012

These are instances of the instruction.

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--4

Developing an Add-On Instruction in Ladder Diagram

Key Parts of the Definition of an Add-On Instruction


The definition of an add-on instruction contains parameters, local
tags, and logic:
Parameters and local tags are the data that the instruction uses.

Logic is the code that the


instruction uses. Its
comprised of one routine.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

15--5

Parameters
When you create an add-on instruction, you set up parameters for the
instruction:

Parameter: A value or values that you give to an add-on instruction


or get back from it. Parameters create the interface to the code of the
instruction.
Here are some examples:
Configuration values such as set points and timer presets

Commands such as start, stop, and reset


Input values from devices
Output values for devices
Status and health values such as done or faulted

Parameters reduce programming time and complexity.


Local Tags
When you create an add-on instruction, you can also set up local
tags:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--6

Developing an Add-On Instruction in Ladder Diagram

Compare this to a subroutine. A


subroutine may show you more data
than you really need to see. This makes
it more difficult to monitor and
troubleshoot.

Local Tag: An intermediate or storage value that an add-on


instruction uses as it executes. It is a value that you dont need to see
or use outside of the instruction.
Here are some examples of local tags:
Timers and counters
Storage arrays

Bits that store the sum of several input conditions


Results of intermediate calculations
You can Alias a Local tag (or one of its members) to an input or
output parameter. In this way, the local tag can be easily
monitored/ modified outside of the AOI.
Routine Type Control Editable in AOI Definition
You can change the programming language of the Logic routine after
you develop the instruction. Keep in mind that changing the
language deletes the existing routine and replaces it with an empty
routine in the new language. This is helpful if you want to develop
several AOIs with similar interfaces but different languages for the
logic.
You can change the language type through the General tab of the
AOI:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

15--7

Changes to the Definition


If you change the definition, it ripples through all the instances of the
instruction in your project:

Suppose you add a parameter to the


definition.

It ripples through each instance of the instruction.

In version 17 and earlier, if you change a default


value for a parameter or local tag, it doesnt
change existing instances of the instruction. They
keep their current values.
Starting with version 18, you can choose to send
changes you make to default values of a definition
to all its instances in the project.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--8

Developing an Add-On Instruction in Ladder Diagram

Mention that default value changes can


also be done in:
S

Context menu
(Controller Organizer only)

Data Monitor

Logic Editor

Watch Pane

Change the default values within the Local Tags tab:

Add-On Instruction Design Considerations

? What happens to logic in a

When a rung of ladder logic contains an add-on instruction, the


following actions occur during each scan:
Data for each input parameter is passed to the instruction.
If the rung-in condition is true, the instructions Logic routine is
executed.
If the rung-in condition is false, the instructions Logic routine is
skipped.

Tip "

subroutine if the JSR rung is False?


Answer: Logic is not scanned and
values in the subroutine remain
unchanged.

Version 18 improves the false scan times of AOIs that arent using an
EnableInFalse routine. See Knowledgebase ID #53903 for ways to
improve the false scan time if you need to use an EnableInFalse
routine.

Tell students the same thing would


happen if an AOIs rung-in condition is
False. So if actions need to occur (like
resetting a timer or counter, unlatching a
bit,) when the rung goes False you could
add an EnableInFalse routine.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

Heres How
Keep the visuals open.

Example
Relate this to a real system. It could
have many gates, all of which use the
same logic to detect a jam.

15--9

To plan the parameters of an add-on instruction:


Activity: As your instructor demonstrates this procedure, follow
along in the associated job aid(s).

Planning the Parameters of an Add-On Instruction


Suppose you want an instruction that checks for jammed product and
looks like this:

Here are the parameters and local tags for the instruction:
Value

Use?

Required?

Visible?

n Input parameter

D. State of the photoeye that detects the product

E. How long to let the photoeye stay on before the instruction flags a jam. You
want to be able to configure this value.

F. Flag that there is a jam. You want to see this and use it in your application
code.

G. Timer that times how long the photoeye is on. You really dont care about
the accumulated value.

Your Turn

Output parameter

Local tag

n

n

n

n Input parameter


Output parameter

Local tag

Input parameter

n Output parameter


Local tag

Input parameter

Output parameter

n Local tag

Now its your turn. Do Exercise A and return here when youre done.

Tell the students to stay at their desk


and do the exercise. They dont need
the workstation for it. Review the
answers when theyre done. Then
continue with the lesson.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--10

Developing an Add-On Instruction in Ladder Diagram

Before You Begin

After you plan the parameters for an add-on instruction, you have to
make these decisions about its logic:
Language for the Logic routine
Organization of the Logic routine

Optional scan mode routines


Language for the Logic Routine of the Instruction
You can program the Logic routine of an add-on instruction in any of
these languages:
Ladder diagram
Function block diagram

Structured text
You can use the instruction in any language, regardless of which
language you use for the Logic routine.

Organization of the Logic Routine


If the students ask, tell them that theres
no defined limit to the levels of nested
instructions. It seems to be around 62
instructions deep. Theyll get a major
fault, stack overflow, if they go too deep.

You cant call subroutines within an add-on instruction. You can


organize the logic of an add-on instruction in two ways:
Put all the logic in one routine
Nest smaller add-on instructions within a larger add-on
instruction
Heres an example of nested instructions:

Main Instruction That


Controls a Conveyor

Sub-Activities, Such
as Starting the Motor
and Watching for Jams

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

15--11

Optional Scan Mode Routines


The controller executes the Logic routine of an add-on instruction
like this:
When this happens . . .

1.

Controller goes to Run mode.

2.

EnableIn parameter of the add-on


instruction is true

3.

EnableIn parameter of the add-on


instruction is false

4.

The last scan of a step of an SFC


thats configured for automatic reset

The controller . . .

Notes

Prescans the Logic routine

As a general rule, prescan executes instructions as if all


conditions are false.
Some instructions dont follow the general rule. See the
documentation for the instruction.

Executes the Logic routine

EnableIn is true in these situations:


Ladder diagram when the rung conditions are true.
Function block diagram True by default.
Structured text Always true.

Doesnt execute or stops executing


the Logic routine

EnableIn is false in these situations:


Ladder diagram when the rung conditions are false.
Function block diagram when you write a zero to the
EnableIn parameter.
Structured text Never. EnableIn is always true.

Postscans the Logic routine

As a general rule, postscan executes instructions as if all


conditions are false.
Some instructions dont follow the general rule. See the
documentation for the instruction.

You can add routines to an add-on instruction that take additional


actions during various scan situations:

The add-on instructions Prescan routine executes one


time after the main program prescan. It executes
according to its logic conditions.
The Postscan routine executes one time after the main
program postscan. It executes according to its logic
conditions.
The EnableInFalse routine executes when conditions
are false.

? What happens to logic in a

subroutine if the JSR rung is False?


Answer: Logic is not scanned and
values in the subroutine remain
unchanged.
Tell students the same thing would
happen if an AOIs rung--in condition is
False. So if actions need to occur (like
resetting a timer or counter, unlatching a
bit,) when the rung goes False you could
add an EnableInFalse routine.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--12

Developing an Add-On Instruction in Ladder Diagram

Heres How
Keep the visuals open. Present the
decision. Then apply it to the example.

To decide if you need an EnableInFalse routine:


Ask this question:
Do you need to clear datyes
a or do other reset actions when rung conditions are false?
Yes Use an EnableInFalse routine.

No You dont need an EnableInFalse routine.

Example

Deciding If You Need an EnableInFalse Routine


Suppose your add-on instruction uses a non-retentive timer, like this:

And suppose you want to reset the timer when Conveyor_Running is


off. In that case, use an EnableInFalse routine to reset the timer.

Your Turn

Now its your turn. Do Exercise B and return here when youre done.

Tell the students to stay at their desk


and do the exercise. They dont need
the workstation for it. Review the
answers when theyre done. Then
continue with the lesson.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

Before You Begin

15--13

Once you have your general design, its time to create and test the
definition. To do that, youll need to be familiar with:
Accessing parameters via logic
Editing the instruction

Exporting and importing


Accessing Parameters via Logic
When you define the parameters, RSLogix 5000 software puts them
into an add-on-defined data type. Use that data type as the first tag
(main operand) in each instruction:

Point out that this is similar to accessing


the data of a timer or counter.

To access a parameter via logic, use this address format:


Add-On-Defined_Tag.Parameter
For example, use this address to read the value of the jammed bit:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--14

Developing an Add-On Instruction in Ladder Diagram

Editing an Add-On Instruction


Point out that this is one advantage of
subroutines over add-on instructions.
You can edit a subroutine online.

If you need to change the logic of an add-on instruction, you must go


offline and edit the definition. You cant:
Edit the logic of an add-on instruction while online

Edit just a single instance of the instruction


Exporting and Importing an Add-On Instruction
Compare this to a subroutine. You can
export a subroutine only if you wrote it in
ladder diagram.

You can export an add-on instruction to an .l5x file or import an


instruction into a project via an .l5x file:

Export
Import

When you import an add-on instruction, it changes


any existing instances of the instruction in your
project. Before you import an instruction, identify
the changes. After you import the instruction, check
that each instance of the instruction executes
correctly.

Tip "

E 2012 Rockwell Automation, Inc. All rights reserved.

Beginning with version 17 of RSLogix 5000, you can import a new


add-on instruction while online to a running controller.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

15--15

Online Safety Warning


When performing any tasks online, keep the following warning in
mind:
Describe any real-world situations that
you are aware of in which online editing
caused extensive damage in a plant.

? Define offline and online?


Answer: Offline means that the
workstation (computer) is displaying a
copy of the project stored in the
computer memory only. Online means
that the workstation (computer) is
displaying and changing copy of the
project stored in the controller memory.

Use extreme caution when entering or editing


ladder logic or data, forcing values, or making other
changes online that will affect the control of
devices. Mistakes can cause unintended machine
motion or loss of process control, possibly injuring
personnel and damaging equipment. Before
performing procedures online, complete these safety
precautions:

Determine if changes must be made online.


Verify that your company permits online entering
and editing.

Also note that the left and right power


rails are illuminated in the Run and
Remote Run modes to indicate that the
ladder logic is active in the controller.
Add that the Online graphic is animated
in any online mode.

Rev. August 2012

Assess how machinery will respond to changes.


Check proposed changes for accuracy.
Notify all personnel of the changes.
Verify that you are online to the correct controller.

Because changes in any online mode can affect


machine and process control, before importing
add-on instructions, verify the current
communications mode using the Online toolbar.

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--16

Developing an Add-On Instruction in Ladder Diagram

Referenced Add--On Instructions and User-Defined Data Types

You have to decide how to handle Referenced Add- On


Instructions and User- Defined Data Types.

Example: When Not To Include Referenced Add-On Instructions


and User-Defined Data Types
Suppose you have three add-on instructions that nest a fourth
add-on instruction inside them. And suppose you want to change
the nested add-on instruction. Youll only have to change it once
if you dont include it in the export file. Otherwise, you have to
change it in each instruction that uses it.

Heres How
IMPORTANT: To meet IACET
CEU requirements and fully
prepare certificate students for
the final exam, you must
demonstrate all lesson objectives
using the proper
job aids.
Use AOIL_1756R_DEM1.acd for
the rest of the demonstration.

To create an add-on instruction:


Activity: As your instructor demonstrates this procedure, follow
along in the associated job aid(s).

Tip "

Youve already done the first part of this procedure when you
planned the parameters for the instruction.

The project already has the


workstation tags that you need.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

Example

15--17

Creating an Add-On Instruction


This example builds an add-on instruction that checks for jammed
product at the entry gate of a conveyor:
The instruction turns on its Jammed bit if the photoeye at the gate
is on for too long.
Youll be able to set how long to wait before signaling a jam.
Enter the General Properties

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--18

Developing an Add-On Instruction in Ladder Diagram

You can copy this logic from the


Detect_Jam_Routine in the
Unscheduled Programs folder.

Enter the Definition Logic

When youre done, click the Help tab of


the definition and show the finished
instruction.

Create the Parameters and Local Tags

Input Parameter
DINT
Not Required
Input Parameter
BOOL
Required

Not Visible
Local Tag

Output Parameter
BOOL
Not Required
Visible

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Developing an Add-On Instruction in Ladder Diagram

Example

15--19

Looking for Previously Developed Add-On Instructions


You can look for previously developed Add-On Instructions that may
fit your applications within the Rockwell website.

If you have time, show the Video


Faceplate/Add--On Instruction Sets to
the class.

Search the Sample Code Library


(samplecode.rockwellautomation.com)

Fill in the following:


Product Family
Product

Technologies

Example of Search Result

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILsb56r

15--20

Developing an Add-On Instruction in Ladder Diagram

Heres How
Add the example below to the project.
Then use the maintained switched on
the workstation to simulate a jam. Make
sure to show the instructions logic as it
executes.

To perform the following tasks:


Use an add-on instruction in a routine
Monitor the values of an add-on instruction

Monitor the logic of an add-on instruction


Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Example
Point out that youre seeing the data for
this instance. This would be more
difficult if this were a subroutine with
multiple calls to it. The data may be
constantly changing to reflect each call.

Using the Detect_Jam Instruction


In this example, the Detect_Jam instruction continually checks for
jammed product at Gate_DI12.
If PE_DI12 = on for > 10 s, then Gate_DI12.Jammed = on.
If Gate_DI12.Jammed = on, then light DO2 = on.

Heres How
IMPORTANT: To meet IACET
CEU requirements and fully
prepare certificate students for
the final exam, you must
demonstrate all lesson objectives
using the proper job aids.

To perform the following tasks:


Export an add-on instruction

Import an add-on instruction


Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Use the steps below to help guide


you during the demonstration:
1. Export the instruction.
2. Create a new project.
3. Import the instruction into the
project.
E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILsb56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

15--21

Exercise: Developing an Add-On


Instruction in Ladder Diagram
Exercise A

In this exercise, you will practice planning the parameters for an


add-on instruction that starts and stops a motor.
Context:
You want an instruction that starts and stops a single-speed motor
like a seal-in start/stop circuit. You want it to look like this:

Pushbutton that stops the motor


Pushbutton that starts the motor
Contact for the motor

Fault bit for the motor

You also want the option to do the following actions based on the
application:
Jog the motor
Set a fault if the auxiliary contact of the motor doesnt open or
close within a specified time
Directions:
For each of the values in the following table, check whether youll
use it as an input parameter, output parameter, or local tag. Also
check if it will be required or visible. Use the context information to
help you decide.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--22

Exercise: Developing an Add-On Instruction in Ladder Diagram

Value

Use?

A. State of the pushbutton that starts the motor

B. State of the pushbutton that stops the motor

C. State of the pushbutton that jogs the motor. You want the option to use a
jog pushbutton or not use one based on the application.
D. Bit that stores the combined status of the start and stop inputs. The
instruction uses this bit and the jog input to determine whether to run the
motor.

E. Bit that signals the motor to start

F. State of the motors auxiliary contact. It signals the instruction that the
motor is running. You want the option to use the auxiliary contact or not
based on the application.
G. Timeout value in milliseconds to wait for the auxiliary contact to open or
close. The instruction signals a fault if the contact doesnt open or close
within this time. Youll use the auxiliary contact for some applications but
not others. You also want to be able to set the timeout value based on the
application.
H. Bit that tells the instruction that youre using the auxiliary contact of the
motor. You dont want to have to set this bit. Youll set up the instructions
logic to control this bit based on whether or not theres a timeout value.
I. Fault bit that shows you that the auxiliary contact timed out and the motor
didnt start or stop as commanded

J. Timer that creates a timeout for the auxiliary contact. You can easily write
code to move the timeout value from above into the timers preset value.

K. Bit that youll turn on to clear the fault bit. You want to option to use it or not.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Input parameter

Output parameter

Local tag

Required?

Visible?

Turn to the Answers section.

Rev. August 2012


AOILe56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

Exercise B

15--23

In this exercise, you will practice deciding if an add-on instruction


needs an EnableInFalse routine.
Directions:
For the situations below, decide if you need an EnableInFalse routine
for the add-on instruction.
1. You plan to execute the instruction all the time and wont use any
input conditions to disable it, like this:

Do you need an EnableInFalse routine?

Yes
No

2. The instruction controls a motor. You plan to execute the


instruction conditionally, like this:

Do you need an EnableInFalse routine?

How Did You Do?

Rev. August 2012

Yes
No

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--24

Exercise: Developing an Add-On Instruction in Ladder Diagram

Exercise C

In this exercise, you will practice creating and using an add-on


instruction.
Context:
In Exercise A, you made some decisions about the parameters for a
motor starter instruction. Now develop the instruction in
RSLogix 5000 software and verify that it works correctly.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the AOIL_1756R_C1.acd project file.
2. Create the definition for the add-on instruction:
Property

Value

Name

Motor_Starter

Description

Starts and stops a motor

Type

Ladder diagram

Open Logic Routine

Yes

Open Definition

Yes

3. Open the Start_Stop_Motor_Routine in the unscheduled


programs folder:

4. Copy all the rungs from the Start_Stop_Motor_Routine and paste


them into the Logic routine of the Motor_Starter instruction.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILe56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

15--25

The Logic routine of the Motor_Starter instruction should look


like this:

5. Create these parameters and local tags for the Motor_Starter


instruction:
Name

Usage

Alias for

Data type

Description

Stop

Input parameter

BOOL

Enter the tag that gives the stop command for the motor.

Start

Input parameter

BOOL

Enter the tag that gives the start command for the motor.

Jog

Input parameter

BOOL

Jog command for the motor. To jog the motor, turn on this bit.
To stop the jog, turn off this bit.

AuxContact

Input parameter

BOOL

Auxiliary contact of the motor. Make sure you set the


FaultTime. Otherwise, this input doesnt do anything.

ClearFault

Input parameter

BOOL

To clear the fault of the motor, turn on this bit.

Out

Output parameter

BOOL

Output command to the motor starter. If on, the motor starts. If


off, the motor stops.

Fault

Output parameter

BOOL

If on, the motor didnt start or stop.

Fault_Time

Input parameter

DINT

Enter the time (ms) to wait for the auxiliary contact to open or
close. The Fault bit turns on when that time is up.

RunCommand

Local tag

BOOL

CheckAuxContact

Local tag

BOOL

FaultTimer

Local tag

TIMER

Rev. August 2012

Fault_Timer.PRE

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--26

Exercise: Developing an Add-On Instruction in Ladder Diagram

6. Click the Help tab of the instructions definition to see how the
instruction looks.
It should look like this:

7. Verify the routine and correct any errors.


8. Enter an instance of the Motor_Starter instruction into the
MainRoutine of the MainProgram:
Create this tag. Use the Motor_Starter
data type.

Assign these tags. Theyre already


created for you.

Where this tag . . .

Is tied to this workstation device . . .

And simulates . . .

DI12_Stop

Switch DI12

Stop pushbutton for the motor

DI0_Start

Pushbutton DI0

Start pushbutton for the motor

DO1_Motor

Light DO1

Motor

9. Save the project.


10. Download the project to the controller in slot 1 of your
workstation.
11. Put the controller in Run mode.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILe56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

15--27

12. Test the operation of Motor_Starter_01:


Do this . . .

And check that this happens . . .

A. Turn on DI12

Nothing. This simulates the normally closed


position of the stop pushbutton.

B. Press DI0

DO1 turns on the motor starts.

C. Turn off DI12

DO1 turns off the motor stops.

D. Turn on DI12

Nothing. This simulates the normally closed


position of the stop pushbutton.

13. Add a rung of logic that lets Motor_Starter_01 read the state of
DI13_Aux_Contact. This simulates using the auxiliary contact of
the motor.
14. Add a rung of logic that turns on DO2_Fault if the fault bit of
Motor_Starter_01 turns on.
15. Set the Fault_Time parameter of Motor_Starter_01 to 1000 ms.
Make sure you set the Fault_Time for this
instance of the instruction. Dont change the
definition.
16. Test that Motor_Starter_01 sets its fault bit if the auxiliary
contact of the motor doesnt close:
Do this . . .

And check that this happens . . .

A. Make sure DI12 is on.

Nothing. This simulates the normally closed position of the stop pushbutton.

B. Press DI0 and then immediately turn on DI13.

DO1 turns on the motor starts.

C. Turn off DI12 and then immediately turn off DI13.

DO1 turns off the motor stops.

D. Turn on DI12.

Nothing. This simulates the normally closed position of the stop pushbutton.

E. Press DI0 but leave DI13 turned off.

DO1 turns on the motor gets the command to start.


DO2 turns on the motor didnt start.
DO1 turns back off the instruction clears the start command.

F. Go to the properties of Motor_Starter_01 and clear


the Fault bit.

DO2 turns off.

How Did You Do?

Turn to the Answers section.

Exercise D

In this exercise, you will practice exporting and importing an add-on


instruction.
Context:
In Exercise C, you made made an add-on instruction that controls a
motor. Now export the instruction and import it into another project.
When you see underlined text, refer to the related procedure or
information in your job aid.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--28

Exercise: Developing an Add-On Instruction in Ladder Diagram

Directions:
1. Export the Motor_Starter instruction.
2. Close the RSLogix project but leave RSLogix 5000 software
open.
3. Open the AOIL_1756R_D2.acd project file.
4. Import the Motor_Starter instruction.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


AOILe56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

Rev. August 2012

15--29

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--30

Exercise: Developing an Add-On Instruction in Ladder Diagram

Answers

Exercise A

Value

Use?

A. State of the
pushbutton that
starts the motor

n Input parameter

B. State of the
pushbutton that
stops the motor

n Input parameter

C. State of the
pushbutton that jogs
the motor

n Input parameter

D. Bit that stores the


combined status of
the start and stop
inputs.
E. Bit that signals the
motor to start

Output parameter

Local tag

Output parameter

Local tag

Output parameter

Local tag

Input parameter

Output parameter

G. Timeout value in
milliseconds to wait
for the auxiliary
contact to open or
close.
H. Bit that tells the
instruction that
youre using the
auxiliary contact of
the motor.

n Output parameter

n

n

Its an input parameter because you pass this value


into the instruction. Make it required so you can
assign the tag for the pushbutton directly to the
parameter. All required parameters are also visible.

Its an input parameter because you pass this value


into the instruction. Its not required or visible
because you want the option to use it or not based
on the application.

This is a storage bit that the instructions logic sets


based on other parameters. Make it a local tag
since you dont need to access it.

n

Its an output parameter because the instruction


returns this value based on input conditions. Make
it required so you can assign the tag for the motor
directly to the parameter.

Its an input parameter because you pass this value


into the instruction. Its not required or visible
because you want the option to use it or not based
on the application.

Its an input parameter because you want to be


able to set the timeout value based on the
application.

Its an internal storage bit. Theres no need to


access it.

n

The instruction returns this value. Its visible but not


required because you only want to see its state on
the instruction. You dont want to have to assign it
to a tag.

Theres no need to access the timer.

You want to be able to see it, but you also dont


want to have to use it.

n

n

n

Local tag

n Input parameter


Output parameter

Local tag

n Input parameter


Output parameter

Local tag

Input parameter

Output parameter

n Local tag

Input parameter

Local tag

J. Timer that creates a


timeout for the
auxiliary contact

Input parameter

Output parameter

n Output parameter

Reason
Its an input parameter because you pass this value
into the instruction. Make it required so you can
assign the tag for the pushbutton directly to the
parameter. All required parameters are also visible.

Input parameter

I. Fault bit that shows


you that the auxiliary
contact timed out

K. Bit that youll turn on


to clear the fault bit

Visible?

n Local tag

F. State of the motors


auxiliary contact.

Required?

n Local tag
n Input parameter


Output parameter

Local tag

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILe56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

15--31

Exercise B
1. No, you dont need an EnableInFalse routine. The Logic routine
will execute all the time since the rung condition will always be
true.
2. Yes, you need the EnableInFalse routine if you use input
conditions to make the rung false. In that case, use the
EnableInFalse routine to reset outputs. Otherwise, the motor
could be left running even when the rung goes false.

Exercise C
2. The New Add-On Instruction dialog box should look like this:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--32

Exercise: Developing an Add-On Instruction in Ladder Diagram

5. The Motor_Starter parameters should look like this:

The local tags of the Motor_Starter instruction should look like


this:

13. The logic must write the value of DI13_Aux_Contact to the


AuxContact parameter of Motor_Starter_01:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILe56r

Exercise: Developing an Add-On Instruction in Ladder Diagram

15--33

14. The logic must read the value of Motor_Starter_01.Fault:

15. Open the properties for Motor_Starter_01 and enter 1000 into
Fault_Time:

Exercise D
4. The Add-On Instructions folder should look like this:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


AOILe56r

15--34

Exercise: Developing an Add-On Instruction in Ladder Diagram

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


AOILe56r

Lesson

16

Managing RSLogix 5000 Project


Files
What You Will Learn

After completing this lesson, you should be able to manage


RSLogix 5000 project files by performing the following tasks:
Export a .acd project file

Import a .l5k text file


Import a .l5x XML file
When You Will Do This
Export an RSLogix 5000 project file when you want to back it up or
save it for future use. Once you export it , you have to import it to
use it again.

Before You Begin

File Storage
RSLogix 5000 projects can be stored using the following file
formats:
.acd -- a standard file format
.l5k -- an exported text file

.l5x -- an exported XML file

Tip "

Rev. August 2012

In any format, the entire project, including tags, documentation,


ladder logic, etc. is contained in a single file.

E 2012 Rockwell Automation, Inc. All rights reserved.


FI2sb56r

16--2

Managing RSLogix 5000 Project Files

Exporting a .acd Project File

Add that some other software packages


divide the components of a single
project into separate files. In either
format, the entire project, including tags,
documentation, ladder logic, etc. is
contained in a single file.

Using a Windowsr save procedure, a project is stored as a .acd


file:

Mention that saving is just a standard


Windows saving procedure. Other
standard windows procedures, such as
copying files, can be found in an
appendix in the Procedures Guide.

Save

Bottling.acd

Because RSLogix 5000 projects contain tag


names, the .acd files can be large.

Add that you should not open a project


from a floppy disk or CD-ROM. By
default, the software will attempt to save
the file back to the disk, which will not
work.

You cannot directly save a .acd file to a disk:

If you attempt to do so, you will receive an

error message indicating insufficient space on


the disk, regardless of the size of the project
file.
To save to a disk, a project file must be saved
to the hard drive and then copied to a disk.

When copying files from a CD-ROM,


they will be marked Read-Only. To
make the files useable, you must first
copy them to the hard drive or network.
Then you must clear the Read Only
check box in the file properties.
Note that in RSLogix 5000 software,
version 10, the export process was
optimized to reduce the amount of time
required to perform a Save As
operation. Programs that contain a
large quantity of tags with comments
should have a significant decrease in the
time required for exporting.
Note that the original .acd file is still
maintained as a separate file.
Note that the .l5k file is close in
size to a file that is compressed
using the WinZip utility.

Tip "

Mention that when importing, if a file with


the same name already exists, you will
overwrite it.
Mention that .l5x files can also be used
to import and export project components
such as routines, programs, phases,
add-on instructions, and UDTs.

E 2012 Rockwell Automation, Inc. All rights reserved.

Using the Windows Save As procedure, a .acd file can be exported


as a .l5k file, or text representation of the data for an entire project:

Bottling.acd

Export
(Save As)

Bottling.l5k - Export File


Original File Is Maintained

A .l5k project file is much smaller than a .acd file.


A .acd file can also be exported as a .l5x file, or XML-tagged code
of the data for an entire project:

Bottling.acd

Export
(Save As)

Bottling.l5x - XML File


Original File Is Maintained

Rev. August 2012


FI2sb56r

Managing RSLogix 5000 Project Files

16--3

Importing a .l5k Text File


To be used, a .l5k file must be imported. The original .l5k file will
remain and a separate .acd project file will be created:

Bottling.l5k

Import
(Open)

Bottling.acd - Import File


(Original File Is Maintained)

Although you can change the extension of a


project file through Windows Explorer, this is not
recommended. To convert a file, use the
import/export functions.

The required Import/Export version for


RSLogix 5000 version 19 is 2.10. This version
can be modified and saved in older text files:

RSLogix 5000 Software Version

Import/Export Version

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


FI2sb56r

16--4

Managing RSLogix 5000 Project Files

Importing a .l5x XML File


To be used, a .l5x file must be imported. The original .l5x file will
remain and a separate .acd project file will be created:

Bottling.l5x

Import
(Open)

Bottling.acd - Import File


(Original File Is Maintained)

The .l5x file contains the project file in XML format, as shown in the
following graphic:

XML project files can only be imported into


projects created with RSLogix 5000 version 17 or
above.

If students are familiar with


Tip "
add-on instructions, mention
that starting with v.16, add-on
instructions could be imported/exported
using .l5x files.
E 2012 Rockwell Automation, Inc. All rights reserved.

The .l5x file allows users to manipulate the application source using
text editing tools; build tools to auto-generate projects; and extract or
merge code fragments to build new projects.
Rev. August 2012
FI2sb56r

Managing RSLogix 5000 Project Files

16--5

Multiple Backup Files


Call out the benefits of this feature:
S

Allows you to back out of unwanted


changes by moving to an earlier file

Reduces likelihood of lost work from


disk or file corruption

Tip "
Note that the Compare tool must be
installed and launched separately from
the main software. It is available on the
RSLogix 5000 software CD-ROM
(version 12 or later).
Add that the report can be saved as an
HTML file or XML file.

Rev. August 2012

By default, the software automatically saves incremental backup


project (.acd) files:
A backup file is created each time a Save operation is selected.

The quantity of files is configurable.


The default is 3.

Files are stored in the same location as the original.

Compare Tool
This tool allows you to perform project-to-project comparisons:
Project structure

Tags and user-defined data types


Programming logic
Data values (optional)

Tip "

This tool can only be used for .acd files created in version 10 or later.

Tip "

The report can be saved as an HTML file or XML file.

E 2012 Rockwell Automation, Inc. All rights reserved.


FI2sb56r

16--6

Managing RSLogix 5000 Project Files

Heres How

To manage RSLogix 5000 project files by performing the following


tasks:
Export a .acd project file
Import a .l5k text file
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the CCP143_1756r_DEM2.acd
project during the demonstration.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Directory where the export and import files can be found

Files of Type drop down list

How to examine files sizes using Windows Explorer

Rev. August 2012


FI2sb56r

Exercise: Managing RSLogix 5000 Project Files

16--7

Exercise: Managing RSLogix 5000


Project Files
Exercise A

In this exercise, you will practice managing RSLogix 5000 project


files.
Context:
You need to save and store a copy of an original HVAC file for
future reference.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the FI2_1756r_A1.acd file.
2. Examine some of the file to become familiar with its contents.
3. Export the project file as a .l5k file.
4. Export the project as a .l5x file.

Tip "

Save the project using the same name. Save it in the default project
directory.
5. Open Windowsr Explorer.
6. Locate the RSLogix 5000 software default project directory.
7. From the View drop-down list or using the toolbar icon shown
below, select Details so that the file sizes and dates of the projects
are displayed.

8. Under the Size column, compare the sizes of the FI2_1756R_A1


standard file (.acd) the text file (.l5k), and the XML file (.l5x).

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


FI2e56r

16--8

Exercise: Managing RSLogix 5000 Project Files

9. What are the file sizes?

10. From Windows Explorer, open the .l5k file.


11. In the text file, list the following elements:
A. RSLogix 5000 software version:

B. Import/Export version:

C. Major revision:

D. Minor revision:

E. Chassis size:

12. How would you find the elements listed in Step 11. using the .acd
file?

13. Which file would be easier for you to modify?

14. Close the file.


15. Open a new instance of RSLogix 5000 and import the .l5k file.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


FI2e56r

Exercise: Managing RSLogix 5000 Project Files

16--9

16. Open the .l5x file to see how its structure is different from the .l5k
text file.
17. Open a new instance of RSLogix 5000 and import the .l5x file.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


FI2e56r

16--10

Exercise: Managing RSLogix 5000 Project Files

Answers

Exercise A
9. The approximate size of the .acd file is 400KB. The
approximate size of the .l5k file is 20KB. The approximate size
of the .l5x file is 65KB.
11. The text file uses this format:

RSLogix 5000 Software Version

Import/Export Version
Major Revision

Major Revision
Chassis Size

Minor Revision

12. Using the .acd file, you can find the RSLogix 5000 software
version from the Help menu. The Major revision, minor
revision, and chassis size information can be accessed using the
Controller Properties feature. The import/export version is not
viewable from the .acd file.
13. For some, RSLogix 5000 .acd files may be easier to modify
because of the graphical nature. For others, text files may be
easier to modify. XML files can offer more flexibility when
reusing code. Remember that text files and XML files cannot be
downloaded directly to a controller.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


FI2e56r

Lesson

17

Allocating Connections in a
Logix5000 System
What You Will Learn

After completing this lesson, you should be able to allocate


communications connections in a Logix5000 system by performing
the following actions:
Determine the number of connections used by a Logix5000
controller
Conserve the number of connections used by a Logix5000
controller

Check connections in RSLogix 5000 with the Task Monitor tool


When You Will Do This
Depending on the size of your system, you may need to consider
how you allocate connections to stay within limits.

Before You Begin


Clarify that a connection is a completed
communications link and not a physical
connection on a network.

Connections
A connection is an established communications link between two
devices or components in a Logix5000 system. Connections may
take many forms, including the following:
Controller to I/O (local or remote)
Controller to communications modules

Produced tag controller to consumed tag controller


Message source controller to message destination
Connection Limits
Have students find the manual
and use it for the steps below.
Give them a few minutes to look
through the tables.

Reference: Logix5000 Controllers Design Considerations,


1756--RM094
1. Go to the Logix5000 Controller Resources chapter.
2. Go to the Controller Connections section.
3. Briefly read the tables on connection limits for controllers and
communication modules.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CO2sb56r

17--2

Allocating Connections in a Logix5000 System

Conserving Connections by Grouping Produced Data


To minimize the number of produced tags and therefore the number
of connections, data can be grouped into an array or a user-defined
structure and then produced.

When reviewing the table, note if the


producer used 250 produced and
consumed connections, there would be
no room for I/O modules.

? What is an array?
Answer: A numerically indexed
sequence of tags, for example,
Size[3,5].

? What is a user-defined structure?


Answer: A data type (similar to a timer)
made of members different data types.
The user-defined data type is also
referred to as a user-defined structure.

? Could you make an array within this


data type?

Answer: Yes. You can embed a


one-dimensional array of certain data
types (such as Dint) within a
user-defined data type. Here you could
make an array of four Dints for the
Height, Width, W_Flag, and L_Flag.

The array or user-defined structure must be less


than 500 bytes.

Example: Connection Requirements for Tags vs. an Array


Producing 5 individual tags for two consumers each requires 15
connections, as shown in the following table:
Source Tags

Produced Tags

Connections

Height (Dint)

Height

3 (1 tag plus 2 consumers)

Width (Dint)

Width

Weight (Real)

Weight

W_Flag (Dint)

W_Flag

L_Flag (Dint)

L_Flag

3
15 connections

Producing 1 user-defined data type requires only 3 connections,


as shown in the following table:
Load_Info User-Defined Data Type
Source Tags
Height (Dint)
Width (Dint)
Weight (Real)
W_Flag (Dint)
L_Flag (Dint)

Produced Tag
Load_Info (user-defined
data type made of source
tags)

Connections

3 (1 tag plus 2 consumers)

3 connections

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CO2sb56r

Allocating Connections in a Logix5000 System

17--3

Message Connections
Note that the cache bit is set or cleared
in the Message Configuration dialog
box, which is accessed through the
ellipses button in the MSG instruction.
Note that opening a new connection for
each message execution increases
execution time.

Some types of messages always require a connection. Other


messages (such as a CIP messages) maintain the connection based on
the configuration of the cache bit:
Clear the cache bit for infrequent messages. This closes the
connection when not in use and frees it for other operations.
Set the cache bit for continuous messages.

Continuous
Connection

Heres How
IMPORTANT: To meet IACET
CEU requirements and fully
prepare certificate students for
the final exam, you must
demonstrate all lesson objectives
using the proper job aids.

To determine the number of connections used by a Logix5000


controller.
Reference: Logix5000 Controllers Design Considerations,
1756--RM094
1. Go to the Determine Total Connection Requirements section.

To demonstrate, tally the connections for


an example system this way:

2. Briefly read the tables for local and remote connection tallies.

1. Describe a device and its quantity


and have the students determine the
connection type and total connection
from the tables.

3. Use the tables to tally the connections for an example system


your instructor gives you.

2. Continue giving them examples of


devices and quantities until youve
tallied the connections for your
example system.
3. Count the tallies to determine the
total connections fro the system.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CO2sb56r

17--4

Allocating Connections in a Logix5000 System

Heres How

To check connections in RSLogix 5000 with the Task Monitor tool.

IMPORTANT: To meet IACET CEU


requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Use the steps below to help guide you
during the demonstration:
1.

From the tools menu select


Logix5000 Task Monitor.

2.

Under Communications select


Monitor.

3.

From the RSWho screen select


the processor you want to monitor.

4.

From the Logix5000 task Monitor


Screen select the Networking Tab.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CO2sb56r

Exercise: Allocating Connections in a Logix5000 System

17--5

Exercise: Allocating Connections


in a Logix5000 System
Exercise A

In this group exercise, you will practice allocating connections used


by a Logix5000 controller.
You have just completed a basic project. You now need to determine
the number of connections used by the controller in slot 1.
Refer to the CO2_1756r_A1.acd file and the following key points:

There are 4 local modules and 1 remote I/O module.


There is 1 local and 1 remote ControlNet communication module.
There are 2 produced tags:
-- Initialize System (produced for 1 local and 1 remote
controller)
-- Station_Data_For_Quality (produced for 1 local controller)
There is 1 consumed tag: Stations_Off_Quality.

There are 2 messages (1 Data Table Read and 1 CIP Generic).


Directions:
1. Tally the connections for the controller.
2. Producing 6 individuals tags for two consumers each requires 18
connections. How could the number of connections be reduced to
3?

3. Using direct connections, 2 connections are used to communicate


with 2 remote 1756 digital I/O modules and 1 remote ControlNet
communication module. If the communication format was
changed to Rack optimization, how many connections would be
established?

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


CO2e56r

17--6

Exercise: Allocating Connections in a Logix5000 System

Answers

Exercise A
1. Your answer should be similar to the following example:
Connection Type

Device Quantity

Connections per
Module

Total
Connections

Local I/O module (direct connections)

SERCOS Motion module

Local ControlNet communication module

Local EtherNet/IP communication module

Local DeviceNet communication module

Local DH+/Remote I/O communication module

Local DH--485 communication module

RSLogix 5000 software access to controller

Remote ControlNet communication module

Remote EtherNet/IP communication module

Other remote communication adapter

Remote I/O modules (direct connections)

Produced tags

--

--

--

Produced tag and first consumer

Each additional consumer

Consumed tags

Connected message (CIP Data Table Read/Write and DH+)

Block-transfer message

0
14

2. Grouping the data into an array or user-defined data type would


reduce the number of connections to 3 (1 tag plus 2 consumers).
3. Rack optimization would consolidate the connections into a
single connection. Data would be sent at one rate specified by
the ControlNet module.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CO2e56r

Lesson

18

Integrated Practice Developing


an RSLogix 5000 Project
What You Will Learn

After completing this lesson, you should be able to:


Modify the default task, program, and routine
Add a local 1756-I/O module to an I/O configuration

Rev. August 2012

Create a tag in the Edit Tags list


Define alias tags
Draft simple ladder logic
Enter and edit ladder logic components
Verify a project
Select and change a controllers operating mode
Download a project to a Logix5000t controller
Create an event task
Copy and reuse ladder components
Modify a communications path
Create a communications path
Configure a controller to produce and consume data

E 2012 Rockwell Automation, Inc. All rights reserved.


INPsb56r

18--2

Integrated Practice Developing an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPsb56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

18--3

Exercise: Integrated Practice


Developing an RSLogix 5000
Project
Exercise A

In this exercise, you will practice skills used in developing an


RSLogix 5000 project.
Context:
You have completed and tested the basic project for Line_A. Now
you have been asked to duplicate this logic for Line_B.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Open the INP_1756r_A1.acd file.

Tip "

If you are using a ControlNet network, open the INP_1756r_A3.acd


file.
2. Add an analog output module to slot 7 of the I/O configuration.
The following table outlines the parameters for the module:
Scaling
Catalog
Number

Channel

High Signal

High Eng.

Low Signal

Low Eng.

10.0

10.0

0.0

0.0

10.0

10.0

0.0

0.0

0
OF6VI
(0--10V)
1

Alarms

Limits

High High
High
Low
Low Low
----

High
Clamp

------

Low
Clamp
10
--10
10
--10

3. Modify the configuration of the local and remote communication


modules within the I/O Configuration to match the configuration
of your workstations.
4. From within the tag editor of the Line_A program, create a
program-scoped tag named Meter. This tag should be an alias for
the channel 0 analog output data.
Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--4

Exercise: Integrated Practice Developing an RSLogix 5000 Project

5. Draft ladder logic in the Process_Order routine that will move


the accumulated value of the Order_Counter tag into the new
Meter tag.
6. Edit the XIO instruction in rung 3 of the Process_Order routine
and change it to an XIC instruction.
7. Create a Line_B program.
8. Copy the program-scoped tags from the Line_A program and
paste them into the Line_B program.
9. Copy the routines from the Line_A program and paste them into
the Line_B program.
10. Configure the MainRoutine as the main routine in the Line_B
program.
11. For these slot 1 program-scoped tags, re-assign the alias
information to the correct I/O points based on the following chart:
Routine Name

E 2012 Rockwell Automation, Inc. All rights reserved.

Tag Name

LineA I/O Point


(Line_A Program)

LineB I/O Point


(Line_B Program)

Read_Order

Read_Order

Local:2:I.Data.0

Local:2:I.Data.4

Process_Order

Apply_Paint

Local:0:O.Data.3

Local:0:O.Data.4

Process_Order

Meter

Local:7.O.Ch0Data

Local:7.O.Ch1Data

Process_Order

Order_In_Progress

Local:0:O.Data.0

Local:0:O.Data.1

Process_Order

Process_Order

Local:2:I.Data.1

Local:2:I.Data.5

Process_Order

Shrink_Wrap

Local:4.O.Data.6

Local:4.O.Data.7

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

Tip "

Devices on the standard workstation are arranged and wired in the


following manner:

DI0
DO0

DI1
DO3

DI2
DO6

DI4
DO1

DI5
DO4

DI6
DO7

AI0

AO0

Analog Meter

Analog Meter

Digital Outputs
Analog Outputs

Label

Description

Slot

I/O Tag

DI4
DI5
DO1
DO4
DO7

Digital Input 4
Digital Input 5
Digital Output 1
Digital Output 4
Digital Output 7

2
2
0
0
4

Local:2:I.Data.4
Local:2:I.Data.5
Local:0:O.Data.1
Local:0:O.Data.4
Local:4:O.Data.7

AO1

Analog Output 1

Local:7:O.Ch1Data

Tip "

Analog Input
AI1

AO1

Digital Inputs

18--5

Analog Input

I/O Tag for Alternate Wiring

This chart lists controller-scoped base tags (no alias information) in


the slot 1 controller:
Program Name

Routine Name

Tag Name

Line_A

Read_Order

MSG_Read_LineA

Line_B

Read_Order

MSG_Read_LineB

Line_A

Read_Order

Order_QuantityA

Line_B

Read_Order

Order_QuantityB

12. Cross-reference the MSG_Read_LineA tag and go to the rung


within the Line_B program that uses this tag.
13. Modify the message instruction on the rung you identified in the
previous step by performing the following:
Configure the control tag MSG_Read_LineB as the message
control tag for this instruction.
Configure the message type to be a CIP Data Table Read.
Configure Order_QuantityB as the Source and Destination
Element for the message instruction.
Configure the communication path to point to the controller in
slot 3 of the remote workstation.
14. Within the same rung as the message instruction, make the
Order_QuantityB tag the source tag for the move instruction.
Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--6

Exercise: Integrated Practice Developing an RSLogix 5000 Project

15. Within the same rung as the message instruction, change the
operand of the XIC instruction that utilizes the
MSG_Read_LineA.DN tag to the MSG_Read_LineB.DN tag.
16. Cross-reference the MSG_Read_LineA tag and go to the rung
within the Line_A program that utilizes this tag.
17. Modify the communications path of the MSG_Read_LineA
message control tag to point to the remote controller in slot 3
18. Verify your changes and correct any errors.
19. Download the project to the controller in slot 1.
20. Place the controller in Remote Run mode.

Tip "

If you are using ControlNet, you may need to reschedule the


network.
21. Open another instance of RSLogix 5000 software.
22. Import the INP_1756r_A2.l5k file.
23. Create the Order_QuantityB tag and make it an alias for AI1.
24. Save your work and download the INP_1756r_A2.acd file to the
controller in slot 3 of the remote workstation.
25. To test your work, verify that the Line_A program of the project
functions as follows:

B
C, H

D
E

F
G

Remote
Workstation
Analog Meter

Analog Meter

Analog Input

Analog Input

A. Set the potentiometer in the remote workstation to the desired


order quantity (the range is 0 to 10).
B. Push the Read Order button (DI0) of the local workstation.
C. The Order_In_Progress (DO0) light in the local workstation
should now be on.
D. Push the Process_Order button (DI1) in the local
workstation.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

18--7

E. The Apply_Paint light (DO3) should go on and off the


number of times you have requested from the
Order_Quantity potentiometer in the remote workstation.
F. Each time a part is painted, the Meter should increment.
G. When all parts have been painted, the Shrink_Wrap light
(DO6) should go on for two seconds.
H. Once the Shrink_Wrap has been applied, the
Order_In_Progress (DO0) light should turn off.
26. To test your work, verify that the Line_B program of the project
functions as follows:

B
C, H

D
E

Analog Meter

G
F

Analog Input
A

Analog Meter

Remote
Workstation

Analog Input

A. Set the potentiometer in the remote workstation to the desired


order quantity (the range is 0 to 10).
B. With the controller in slot 3 of the remote workstation pulled
out of the chassis, push the Read_Order button (DI4) of the
local workstation. Explain why the Order_In_Progress light
in the local workstation does not go on:

C. Now insert the controller back into slot 3 and push the
Read_Order button again. The Order_In_Progress light
should now be on.

Tip "

You may need to re-download the INP_1756r_A2.acd file to the


controller in slot 3 if the project was lost while the controller was
removed. If this is the case, press Read_Order button (DI4) again.
D. Push the Process_Order button (DI5).

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--8

Exercise: Integrated Practice Developing an RSLogix 5000 Project

E. The Apply_Paint light should go on and off the number of


times you have requested from the Order_Quantity
potentiometer in the remote workstation.
F. Each time a part is painted, the Meter should increment.
G. When all parts have been painted, the Shrink_Wrap light
should go on for two seconds.
H. Once the Shrink_Wrap has been applied, the
Order_In_Progress (DO0) light should turn off.
27. The shrink wrap roll must be measured continuously so that if it
is low, it can be re-filled immediately. A photoeye (at DI8) is in
place to detect sufficient width on the roll. If this sensor goes on,
the event task must be triggered. Configure this new event task
named Refill_Shrink_Wrap in the slot 1 controller.

Tip "

Continue using the existing INP_1756r_A1.acd or INP_1756r_A3


file.
28. When the event task executes, it must increment a tag that tracks
the number of times the event task has executed. This tag is called
Event_Task_Count. Program the necessary logic for this in the
MainRoutine inside the MainProgram of the Event task you
created.
29. Produce the Event_Task_Count tag from the slot 1 controller,
and consume it from the slot 3 controller.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

Rev. August 2012

18--9

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--10

Exercise: Integrated Practice Developing an RSLogix 5000 Project

Answers

Exercise A
2. The main configuration screens for the analog module are
shown in the following graphics:

(Continued)

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

Rev. August 2012

18--11

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--12

Exercise: Integrated Practice Developing an RSLogix 5000 Project

4. The tag properties for Meter should look like the following
example:

5. The following ladder logic was entered to move the


accumulator value into the Meter tag:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

18--13

6. The rung should look similar to the following example:

9. The Tasks folder within the Controller Organizer should like


similar to the example below:

10. MainRoutine should now be the main routine for the Line_B
program:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--14

Exercise: Integrated Practice Developing an RSLogix 5000 Project

11. Your Line_B Program Tags editor should now look similar to
the following:

12. You should find the MSG_Read_LineA tag located on rung 0


of the Read_Order routine within the Line_B program:

13. Your message instruction should now have MSG_Read_LineB


as the message control tag:

(Continued)

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

18--15

Your message instruction configuration should look similar to


the following:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--16

Exercise: Integrated Practice Developing an RSLogix 5000 Project

15. The rung with the message instruction in the Line_B program
should be configured similar to the following:

17. Your MSG_Read_LineA tag should be configured as follows:

23. Your Order_QuantityB tag should be configured similar to the


following:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

18--17

26.
B. The Order_In_Progress light will not come on if the
controller in slot 3 is removed because the logic tests for the
done bit of a message instruction to that controller in slot 3.
If the controller is not there, the done bit will not go high.
27. The following examples show the event task configuration and
the Shrink_Wrap_Low tag alias information:

28. Your ladder logic should be similar to the example below:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--18

Exercise: Integrated Practice Developing an RSLogix 5000 Project

29. The following example shows the produced tag in the slot 1
controller:

The following example shows the slot 3 I/O configuration for


an EtherNet/IP network:

(Continued)

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Exercise: Integrated Practice Developing an RSLogix 5000 Project

18--19

The following example shows the slot 3 I/O configuration for a


ControlNet network:

Tip "

Your ControlNet node numbers may vary based on network


configuration.
The following example shows the consumed tag in the slot 3
controller:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


INPe56r

18--20

Exercise: Integrated Practice Developing an RSLogix 5000 Project

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


INPe56r

Optional Lesson

19

Configuring Logix5000 Controllers


to Share Data over a ControlNet
Network
What You Will Learn
Important: If this lesson is part of a
national school and you are using
EtherNet/IP for remote data sharing, this
lesson can be skipped.
Stress that ControlNet and EtherNet/IP
are two Logix5000 networks designed to
share data between multiple controllers
in remote chassis or between a
controller and I/O in remote chassis.
Note that 1756-remote I/O will be
introduced in a separate lesson.

Before You Begin

After completing this lesson, you should be able to:


Add a ControlNet communication module to an I/O configuration

Add a controller to an I/O configuration


Schedule a new ControlNet network
When You Will Do This
Use the procedures in this lesson when you have to pass interlock
data between controllers over an ControlNet network.

Key Terms
The following terms are defined as they relate to a ControlNet
network in a Logix5000 system:

Remind students that the ControlNet


network is the technology of the
backplane in a network.

Determinism: The ability to reliably predict when data will be


delivered.
Repeatability: Transfer times that are constant and unaffected by
devices connecting to or leaving the network.

In the graphic, review the devices on the


ControlNet network. Cite specific
examples.

Producer/Consumer Model: A communications network model in


which nodes on a network can simultaneously receive the same data
from a single source.
ControlNet Network: A communications network used for
transmitting time-critical and non-time critical data on the same link.

ControlNet Nodes
Note that the 1784-PCICS card is used
for computers with faster processing
speeds.
If you do not have these cards available
but there is a Logix5000 system on the
network with an EtherNet/IP card, you
can use EtherNet/IP as a bridge to the
ControlNet network when working with
RSNetWorx for ControlNet software.

The physical ControlNet network in a Logix5000 system can contain


the following nodes:
A 1784-KTCX15 or 1784-PCIC(S) card to access the network
from a desktop computer

A 1784-PCC (PCMCIA) card to access the network from a laptop


computer
A configured ControlNet module in a Logix5000 chassis

ControlNet-compatible devices
Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2sb56r

19--2

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Common nodes that are connected to a ControlNet network using a


cable system are shown in the following graphic:
Computer

ControlLogix System

ControlLogix System

ControlNet Network
VersaView
Operator Interface

PLC-5/40C Controller

CompactLogix
System

ControlLogix System

Over a ControlNet network, a Logix5000 controller can share data


with the following controllers:
Another Logix5000 controller (remote)

A CompactLogix controller
A PLC-5C processor
An SLC 500 processor
There can be up to 99 nodes on a ControlNet network. Nodes on a
ControlNet network must meet the following requirements:
Nodes must be in the range of 1 to 99.

Node numbers cannot be duplicated.


Node zero is invalid.
Lowest keeper-capable node number (the keeper) in the system

receives information from RSNetWorx for ControlNet software:

-- The keeper is not a master.


-- The keeper only grants access to the network.
-- The keeper maintains the ControlNet schedule.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2sb56r

19--3

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Cable System
Point out each component of the
ControlNet cable system connecting
workstations in the classroom. If you
have a repeater, show it to the students.

Nodes on the ControlNet network must be connected using a


ControlNet cable system. The following graphic is an example of a
ControlNet cable system and some of its components:
Trunk Cable
Section Connectors

Segment

Tap

Terminator
Repeater

Node

Note that the components of the


ControlNet network are carefully
selected by the network designers to
accommodate the current (and future)
needs of the network. Exceeding the
length of cable or the number of taps
may cause degradation of the signal and
eventual failure.
Note that repeaters do not just amplify
the signals, they recreate them (and
therefore add some latency). Repeaters
can be purchased to create
coax-to-coax, coax-to-fiber, or
fiber-to-fiber links.

This cable system contains the following basic components:


Taps with no minimum spacing requirements

Cable connectors
Trunk cable:
-- RG-6 coax cable or special-use cable
-- 1000 m with 2 devices and 250 m with 48 devices
-- Each tap subtracts 16.3 m from allowable segment length
-- Flexible topology including bus, tree, and/or star
Terminators
Repeaters, depending on the design
Up to 99 nodes can be connected on a ControlNet
network. 48 nodes can exist on one segment; after
48, a repeater must be used.

Note that ControlNet is a proven


network. Most problems occur in the
installation or configuration.

Tip "

Show the front of a ControlNet


module. Point out the channel A and B
connectors and the RJ45 port.

Rev. August 2012

Cable system design and installation is extremely


important. Most complications with ControlNet
networks can be linked to the network installation.

The cable system is used for permanent nodes. An RJ45 port is


available to connect a computer to the ControlNet module without
breaking a connection or adding a new node to the cable system.
E 2012 Rockwell Automation, Inc. All rights reserved.
CN2sb56r

19--4

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Tip "
Note that this document is part of the
Logix5000 Documentation Reference
Guide.

For more information on the ControlNet cabling system, refer to the


ControlNet Coax Cable System Planning and Installation Manual.

Network Services
The ControlNet networks function is to transmit the following two
types of information on the same link:
Scheduled (time-critical data)
Unscheduled (non-time critical data)
Scheduled Service
Data that is sent across a network on a regular basis is transmitted as
scheduled data. This data has the following characteristics:
Is time critical, such as I/O status and control interlocking data

?What type of data would be

considered time critical for your


application?

Has top priority in information exchange


Occurs in the same time frame during every data transmission
interval

Can be any of the following:


-- Data from an I/O module
-- Peer-to-peer interlocking data of controllers

Tip "

Components that have an associated RPI (Requested Packet Interval)


send data as scheduled data.
To control I/O or produce and consume tags in a
Logix5000 application, scheduled data is required.

Unscheduled Service
Stress that scheduled data, such as
control and I/O data, is given highest
priority on the ControlNet network. Other
information, such as programming or
upload and download operations, does
not interfere with the transport of control
and I/O data.

Non-deterministic data that is not time critical is transmitted as


unscheduled data. This type of data has the following characteristics:
Transmits after all scheduled data has been sent

Can be any of the following:


-- Connection establishment
-- Ladder-initiated, peer-to-peer messaging data (using a
Message instruction)

-- Programming data (uploads and downloads)

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2sb56r

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--5

Information Exchange on the ControlNet Network


Note that this is an overview of the data
transfer process. Details will be given
later in the lesson.
Clarify that this is a ControlNet data
exchange not a message (MSG)
instruction.

The following graphic shows the transfer of information over the


ControlNet network using the Producer/Consumer model:
Establish
Connection
A producer sends a
message to the target
consumer by using a
network address.

Note that the node number is part of the


CID. The source and destination
information is encoded in the CID.

Chalk Talk: To help students learn the


many acronyms in this lesson, keep a
running list on the end of the board.
After learning a new acronym, have the
students supply short descriptions to
define the new acronym.

Communication

Close
Connection

If the node needs


the data, messages
are then consumed.

The connection is
closed.

The following statements describe information exchange on the


ControlNet network:
Data sent by a producer will contain a numeric identifier called a
CID (Connection ID):
-- This ID is created automatically when a ControlNet node is
connected to the network.
Nodes that have been configured to recognize a particular CID
consume the data.

Access to the network is controlled by a time-slice algorithm.


Network Parameters

Note that this section serves as an


introduction to the parameters. Entering
these parameters using RSNetWorx for
ControlNet software will be presented
later in this lesson.

To schedule the network for information exchange, values for the


following network parameters must be selected:
NUT

SMAX (Scheduled Maximum node)


UMAX (Unscheduled Maximum node)
Media Redundancy
NUT (Network Update Time)

Add the term NUT to the acronym list on


the board. Ask the students for a short
definition.
Note that the NUT represents the
aspects of determinism and repeatability
that set the ControlNet network apart
from other networks.
Add the term NUI to the acronym list on
the board. Ask the students
for a short definition.

Rev. August 2012

The NUT is the repeatable base time at which the network transmits
data (scheduled, unscheduled, and maintenance data). The NUT has
the following characteristics:
A configuration of 2 to 100 milliseconds is possible for the NUT.
The value of the NUT includes peer-to-peer, digital, and analog
data.
Data cannot be transferred faster than the NUT.

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2sb56r

19--6

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Tip "

One occurrence of the NUT is referred to as a NUI (Network Update


Interval).
Example: NUT
The priority of data transfer is shown in the following graphic:

? What will happen during the second


NUI shown?

Answer: Data will be transmitted again


in priority order.

NUT
Scheduled
Operations

Unscheduled
Operations

Maintenance Update
(Guardband)

Note that the maintenance update


includes diagnostics and
communications.

...

...

With the given guidelines in mind, the graphic illustrates that:


Scheduled data is transmitted first, followed by unscheduled
data and then maintenance data.
When the NUT has occurred, the transmissions start over.
SMAX (Scheduled Maximum Node)
Add the term SMAX to the acronym list
on the board. Ask the students for a
short definition.
Mention that it is inefficient to schedule a
computer. Instead, assign computers
your highest node numbers.

State that for an efficient network, node


numbers should be assigned
sequentially starting at 1. The maximum
scheduled node should be set to the
highest number node that will need to
transmit scheduled data.

E 2012 Rockwell Automation, Inc. All rights reserved.

The SMAX is the maximum node number (1 to 99) that can transmit
and receive data during the scheduled portion of the NUT. Keep in
mind the following guidelines when determining the SMAX value:
Nodes at or below the maximum scheduled node transmit every
NUT in the same sequential order (i.e., 1, 2, 3, then 1, 2, 3 . . .).

All nodes sending time-critical data should be at or below the

SMAX.
Each node falling under SMAX can transmit up to 510 bytes of
data during its turn:
-- More than 500 bytes can be sent by one node. However, only
500 bytes can be transferred at one slot time.
-- The bandwidth in this portion of the NUT is reserved and
configured in advance to support real-time data transfer.
-- The boundary for the scheduled portion of the NUT will move
depending on the use of bandwidth.
Slot time is the calculated time a node will wait for a missing
address before taking its turn to transmit:
-- Slot time is based on the physical attributes of the network
including the cable length and the number of repeaters.
Rev. August 2012
CN2sb56r

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--7

Example: SMAX
Here is the order of scheduled data transfer:
NUT

1
3

4...n

1
3

4...n

4...n

...

...
SMAX

? Ask students to why it is inefficient


not to assign nodes sequentially?

Answer: Because nodes will wait for


other nodes to transmit. E.g., node five
will wait the entire slot times for nodes
one to four to transmit even if they are
not assigned.

Slot Time

With the given guidelines in mind, the graphic illustrates that:


The first network update interval (NUI) shows nodes (numbers)
falling below SMAX sending scheduled messages.
The second NUI shows the nodes below SMAX sending
messages again starting over from the first scheduled node to
SMAX.
The third NUI shows a node (2) missing from the network.
Therefore, node 3 will wait one time slot before it transmits data.
UMAX (Unscheduled Maximum Node)

Add the term UMAX to the acronym list


on the board. Ask the students for a
short definition.

? What type of data might be included


in the unscheduled portion of the NUT?

Answer: Unscheduled data can include


connection establishment, peer-to-peer
messaging data, programming, and
ladder-initiated communications.
Note that the 1784-KTCX15 driver node
number default is set high, at 99.
Suggest that students change this to a
lower node number. Remind students
that as with all node numbers that
transmit and receive unscheduled data,
the driver/computer node number must
fall under the UMAX.

Rev. August 2012

The UMAX is the maximum ControlNet node number that can


transmit and receive unscheduled data. Keep in mind the following
guidelines when determining the value of the UMAX:
The time remaining after the scheduled and maintenance portions
of the NUT is allotted for unscheduled operations.

The right to transmit first in the unscheduled portion of the NUT


rotates one node number per NUI (i.e., 1, 2, 3, then 2, 3, 4 . . .).
The unscheduled portion of the NUT may not provide enough
time for every node to transmit data during every NUT.
A node will repeat transmission if there is time left in the NUT.

Nodes above the UMAX cannot communicate on


the network. Leave room for laptops to attach
using the RJ45 port. The added slot time will only
affect the unscheduled service.

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2sb56r

19--8

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Time-critical data must not be included in the


unscheduled portion of the NUT, as it may not
have the opportunity to be sent every NUT.

Example: UMAX

? If UMAX was reached in the second


NUI, which node would transmit
unscheduled data first in the
third NUI?

Here is the rotating order of unscheduled data transfer:


NUT

Answer: Node 1.
In the graphic, point out that
if time remains after the
UMAX is reached, the
remaining time starts over
with node one (scheduled . .
nodes).

8
9

9
10
11

1
2
10
3
11
12

...

UMAX

Point out in the graphic that node 7


transmits first in the first NUI, node 8
transmits first in the second NUI, and
node 9 transmits first in the third NUI.

Note that to send data over 500 bytes in


chunks, frame numbers are assigned to
the data.

With the given guidelines in mind, the graphic illustrates that:


The opportunity to transmit is passed on a rotating basis.
In the third NUI, UMAX is reached. The remaining
unscheduled time is now available to additional nodes on a
sequential basis starting with node 1.
An unscheduled message can transmit only 500
bytes per slot time. If the message is more than
500 bytes, the data will resume transmission on its
next turn.

The same node can transmit both scheduled and


unscheduled data. For example, the controller
might produce a tag (scheduled) and send a
message (unscheduled).

Media Redundancy

Add that all nodes on a network must be


the same. That is, one node cannot be
set for channel A and another node set
for channel B.
E 2012 Rockwell Automation, Inc. All rights reserved.

The network must be configured for one of the following media


redundancy options:
A only, for one cable system using channel A
B only, for one cable system using channel B

A and B, for redundant media


Rev. August 2012
CN2sb56r

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--9

To ensure optimization of data transfer, an


accurate representation of the media used on the
network should be defined in RSNetWorx for
ControlNet software.

Update Intervals
The configured or requested node transmit time may be different
than the actual transmit time, as described in the following intervals:
RPI (Requested Packet Interval)

API (Actual Packet Interval)


RPI (Requested Packet Interval)
Add the term RPI to the acronym list on
the board. Ask the students for a short
definition.

Clarify that the RPI tells the modules


when to multicast its data.

The RPI is a user-specified rate that is supplied when an I/O module


or ControlNet module is configured. The RPI defines how long the
module will wait before multicasting its data.
When determining the value of the RPI to enter in the I/O
configuration, note the following:
Each node may have different requirements for sending data
within the NUT.

It is inefficient to send all data at the same rate.


A node can support more than one rate depending on the data
being sent.

RPI must be greater than or equal to the NUT.


API (Actual Packet Interval)
Add the term API to the acronym list on
the white board. Ask the students for a
short definition.

The API is the actual resulting interval. It can be described as


follows:
This rate is based on the NUT and is less than or equal to the RPI.
This rate supports values that are binary multiples (1, 2, 4, 8, 16,
32, 64, 128) of the NUT.
ControlNet networks will always meet or beat the RPI:

-- If the RPI is 20 ms and the nut is 8 ms, the API will be 16 ms


(faster) because it cannot release at 20 ms.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2sb56r

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--10

Example: RPI and API


After reviewing the graphic and the
corresponding statements, ask the
students to determine the API for the
following RPI rates:
1. 100 ms

Answer: 64 ms

2. 31 ms

Answer: 16 ms

3. 2 ms

Answer: 2 ms

After reviewing RPI and API, test the


students understanding of the first half
of the lesson, including the following key
concepts:
S

Producer/Consumer model

NUT, SMAX, UMAX, RPI, and API

Having a good understanding of the


parameters of the ControlNet network is
required to begin examining the software
interfaces and configuration steps.
Break: Note that the introduction of the
ControlNet network concepts ends here.
This is a good place to take a short
break if necessary.

The requested transmit time versus the actual transmit time is


illustrated in the following graphic:
NUT = 2 ms
RPI for discrete data = 10 ms
2 ms

2 ms

API for discrete data = 8 ms

2 ms

2 ms

2 ms
Data

Data
Interval 1

Interval 2

Interval 3

Interval 4

Interval 5

The example illustrates the following points:


Discrete data has an RPI of ten milliseconds.
The software generates an API of eight milliseconds (eight is
the closest binary multiple that is less than ten).
The data is sent every four NUTs.

Configuration Overview and Software Interfaces


Note that this section is a general
introduction to the flow of configuration
procedures. The step-by-step details
and software demonstrations will be
presented in the Heres How section. If
this lesson is part of a national school,
add that remote I/O will be discussed in
a different lesson.
Encourage students to ask any
remaining questions from the
Configuring a Logix5000 Controller to
Produce and Consume Data lesson.
Note that the connection will be made
through a ControlNet or Ethernet
network.

To schedule the ControlNet network in order to share data, it is


necessary to complete the following procedures:
1. Create the required produced tag.
2. In the controller that is consuming the data, perform the following
actions:
A. Add the local ControlNet module to the I/O configuration.
B. Add the remote ControlNet module to the I/O configuration.
C. Add the producing controller to the I/O configuration.
D. Create the required consumed tags.
3. Schedule the ControlNet network.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2sb56r

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Note that the controller was also added


to the project to share data when
producing and consuming tags across
the backplane. However, the controller is
now added under the remote CNB.
In the graphic, point out that the remote
module is node 2.

19--11

Adding a ControlNet Module and Controller to an I/O


Configuration
The following graphic is an example of a remote ControlNet module
and remote controller added to an I/O configuration in
RSLogix 5000 software:

Add that it is not necessary or even


possible to add the controller running the
project to the configuration.

Local ControlNet Module


Remote ControlNet Module
Remote (Producing) Controller

Produced and Consumed Tags


Note that the produced and consumed
tags are created just as they were
created for transfers over the backplane.

Data that is shared over a ControlNet network must be transferred


using produced tags and received (stored) in consumed tags.
As with I/O modules, when configuring consumed
tags, select an RPI that is greater than the NUT.

Scheduling a New ControlNet Network


RSNetWorx for ControlNet software schedules a network and
connects the local controller to any controllers or I/O modules in a
remote chassis by performing the following actions:
Create a graphical representation of your network configuration
and configure the parameters that define your network.
Analyze all of the intended traffic for the network and then
determine if the requested amount of traffic is possible.
Display the current percentage of capacity as well as the
percentage of capacity that added traffic will cause:
-- The user can then decide whether to adjust the requested
traffic or schedule it.
Download to network.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2sb56r

19--12

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Point out that the procedure for


scheduling a ControlNet network is
detailed in the Procedures Guide. Note
that the steps will be demonstrated in
the Heres How section.

To read the connected nodes on the network and build a network


diagram, an online connection must be established using RSNetWorx
for ControlNet software:

Online Option
Enable Edits
Option

Online Bandwidth
Percentages

Network
Diagram

The online Average Scheduled Bandwidth


percentage should not exceed 50% or 60%.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2sb56r

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Using the values in the Pending side of


the graphic, review the following terms:
S

NUT -- Data updates every 5 ms.

SMAX -- Up to 9 controllers or other


scheduled devices.

UMAX -- Up to 24 programming or
other nonscheduled devices.

Current Online
Values

Note that the ControlNet scheduling


information is saved in a .xc
configuration file.

19--13

After going online, the NUT, SMAX, UMAX, and redundancy


parameters are configured in RSNetWorx for ControlNet software:

Pending
Changes

Each time an additional device is added to a


scheduled network or an RPI value is changed, the
ControlNet network must be rescheduled.

A controller must be in Program mode to be


scheduled.

? What other main function

Tip "

requires RSLinx Classic software?

RSNetWorx software communicates with the controller through


RSLinx Classic software.

Answer: Drivers are configured in


RSLinx Classic software.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2sb56r

19--14

Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Heres How

To configure a local Logix5000 controller to share data with a


remote Logix5000 controller over a ControlNet network by
performing the following tasks:
Add a ControlNet module to an I/O configuration

Add a controller to an I/O configuration


Schedule a new ControlNet network
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Be sure to use the
CCP143_1756R_DEM6.acd file and
CCP143_1756R_DEM7.acd file.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Parent--child relationship of the ControlNet and the


controller that you add to the I/O configuration

Produced and consumed tags that you create

Number of scheduled (SMAX) and the number of


unscheduled (UMAX) nodes

Values of the ControlNet network after it is configured

Rev. August 2012


CN2sb56r

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--15

Exercise: Configuring Logix5000


Controllers to Share Data over a
ControlNet Network
Exercise A

In this exercise, you will practice configuring a local Logix5000


controller to share data with a remote Logix5000 controller over a
ControlNett network.
Context:
You have finished programming and testing a complete project for a
production line. To increase productivity, the plant has set up a
second production line. The second production line needs to receive
(consume) the Pressure data from the first assembly line over a
ControlNet network.

Production Line 2

Production Line 1

ControlNet Network
Consumed

n Produced

When you see underlined text, refer to the related procedure or


information in your job aid.
In this exercise, you will share data with the other workstation on
your ControlNet network. Node 1 will produce data and node 2 will
consume the data.
Directions:
1. Open the CN2_1756r_A1.acd file (the producer controller.)
2. Create a user-defined data type called Station_Data that will
store the following information from the local controller:

Rev. August 2012

Member

Data type

Description

AI0

REAL

Analog Input channel 0

AI1

REAL

Analog Input channel 1

DI

DINT

Digital Inputs

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2e56r

19--16

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

3. Create a controller scoped tag called Local_Station_Data with


the following properties:
Uses the Station_Data data type
Produced for 1 controller
4. Enter ladder logic to copy your analog channel 0 data and channel
1 data as well as your discrete input data to the respective
members of the Local_Station_Data tag.
5. Verify the project, correct any errors, and download the project to
your local controller in slot 1.
6. Place the controller in slot 1 in Remote Run mode.
7. Open the CN2_1756r_A2.acd file (the consumer controller.)

Tip "

This project will be downloaded to the controller in slot 3 of the


remote workstation after you have completed the configuration.
8. Add the following modules to the I/O configuration (review
workstation configuration for appropriate node addresses):
A. Add the local (relative to the projects controller) ControlNet
module to the I/O configuration.
B. Nested under the local ControlNet module, add the remote
ControlNet module to the I/O configuration.
C. Nested under the remote ControlNet module, add the
controller in slot 1 of the remote workstation to the I/O
configuration and call it Remote_Controller.
9. Copy the Station_Data UDT from producer and paste it to the
consumer.
10. Consume the Local_Station_Data tag from the
Remote_Controller by performing the following actions:
Create a controller scoped tag called Remote_Station_Data
that uses the Station_Data data type.
Configure Remote_Station_Data as a consumed tag with a
rate of 100 ms.
11. Enter ladder logic to copy the Remote_Station_Data tag to your
analog channel 0 and analog channel 1 outputs.
12. Write the logic so that each of the green buttons pushed on your
workstation will light the corresponding light on the remote
workstation.
13. Verify the project, correct any errors, and download the project to
the remote consumer controller in slot 3.

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2e56r

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--17

Do not schedule the ControlNet network until


both lines have downloaded the ladder logic.
14. When both production lines are ready, take turns scheduling the
ControlNet network.
15. To verify that each production line is correctly configured to
share data, complete the following actions:
A. Verify that moving your analog channel 0 to the middle
position moves the analog channel 0 meter on the remote
workstation to its middle position.
B. Verify that moving your analog channel 1 to the middle
position moves the analog channel 1 meter on the remote
workstation to its middle position.
C. Verify that pushing the first four discrete buttons on your
workstation light the corresponding lights on the remote
workstation.

How Did You Do?

Rev. August 2012

Turn to the Answers section.

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2e56r

19--18

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

Answers

Exercise A
2. The user-defined data type should look similar to the following
example:

3. The tag created should look similar to the following example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2e56r

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--19

4. Your ladder logic should look similar to the following example:

8. The I/O configuration should look similar to the following


example:

The node addresses of


your ControlNet
modules will vary based
on your setup
The slot 1 controller

9. The Station_Data UDT should now be found in the


CN2_1756r_A2 project:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2e56r

19--20

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

10. The consumed tag should look similar to the following


example:

11. Your ladder logic should look similar to the following example:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2e56r

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

19--21

12. Your ladder logic should look similar to the following example:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


CN2e56r

19--22

Exercise: Configuring Logix5000 Controllers to Share Data over a ControlNet Network

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


CN2e56r

Optional Lesson

20

Communicating with a 1756-I/O


Module Over a ControlNet Network
What You Will Learn
Note that in the prerequisite ControlNet
lesson, students learned to schedule a
ControlNet network. In this lesson,
students will practice rescheduling an
existing network, a common and
important task.

After completing this lesson, you should be able to:


Add a remote 1756-I/O module to an I/O configuration
Reschedule an existing ControlNett network

When You Will Do This


RSLogix 5000 software lets you add your I/O configuration to the
project before, during, or after you develop your application logic.
Do this task when:
Your I/O modules are connected to the controller by a ControlNet
network, and
Your system is installed or you have drawings and specifications
that outline to location and configuration of your I/O modules

Before You Begin

ControlNet Remote I/O


Configuring remote I/O using a ControlNet network requires the
following tasks to be performed:
1. Add the local and remote ControlNet module to an I/O
configuration.

In the standard school, note that the


ControlNet network was previously
scheduled. This lesson will provide an
opportunity to reschedule the network -a common and important action.

2. Add a remote 1756-I/O module to an I/O configuration.


3. Schedule the ControlNet network.
Here is a summary of when the data updates:

If data is multicast in the same


chassis

For this remote module

If data Is transferred across a ControlNet network


The RPI only determines when the owner controller receives the data
over the network.

Digital Input

RPI and COS values define when the


module multicasts data within its own
chassis.

Digital Output

N/A

An output receives data from the owner-controller only at the RPI rate.

Analog Input

The RPI and RTS rates define when the


module multicasts data within its own
chassis.

The RPI only determines when the owner- controller receives the data
over the network.

Analog Output

N/A

An output receives data from the owner-controller only at the RPI rate.

Rev. August 2012

" The timing may not coincide with the exact value of the RPI;
however, the owner-controller will receive data at least as often as
the RPI.

E 2012 Rockwell Automation, Inc. All rights reserved.


RC2sb56r

20--2

Communicating with a 1756-I/O Module Over a ControlNet Network

Heres How

To perform the following tasks:


Add a remote 1756-I/O module to an I/O configuration
Reschedule an existing ControlNet network
Activity: As your instructor demonstrates these procedures, follow
along in the associated job aid(s).

Demonstration Checklist
IMPORTANT: To meet IACET CEU
requirements and fully prepare
certificate students for the final exam,
you must demonstrate all lesson
objectives using the proper job aids.
Continue with the RSLogix 5000 project
you used for sharing data over a
ControlNet network.
Note that if you saved the demonstration
file from the Configuring Logix5000
Controllers to Share Data over a
ControlNet Network lesson, it is not
required to configure the remote I/O
module.

E 2012 Rockwell Automation, Inc. All rights reserved.

Pay attention to these critical aspects of the demonstration:


-

Location of the procedures in the job aid

Parent-child relationship with the ControlNet module and


the remote modules

Module configuration, including the multicasting rates

Resulting module tags

Rev. August 2012


RC2sb56r

20--3

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

Exercise: Communicating with a


1756-I/O Module Over a ControlNet
Network
Exercise A

In this exercise, you will practice configuring a Logix5000 controller


to communicate with a 1756-remote I/O module and reschedule the
ControlNet network.
Context:
You have programmed a complete project. As a safety feature for
plant personnel, you want to program an output light to be on when
the production line is active. Because you have used your available
I/O points in the local chassis, you must add a remote chassis to
accommodate the additional I/O requirements. You are now ready to
configure the controller to communicate with the 1756-remote I/O
module.
The setup of the remote output is shown in the following graphic:
Production
Line Active

Production Line

Local
Chassis

Tip "

ControlNet Network

Remote
Chassis

In this exercise, you will share data with another workstation on a


ControlNet network. Your workstation will be the local chassis. The
other workstation will be the remote chassis.
When you see underlined text, refer to the related procedure or
information in your job aid.
Directions:
1. Download the Blank.acd file to the controller in slot 3.
2. Open the RC2_1756r_A1.acd file.
3. Add the local and remote ControlNet modules to the project I/O
configuration.
4. Add and configure the remote output module in slot 4. You will
be owning this module, which is located in the remote chassis.

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


RC2e56r

20--4

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

5. Add the local input module that is in slot 2 to your I/O


configuration. You will also be owning this module.
6. Make a new tag, DI12, an alias tag for bit 12 of the local digital
input card in slot 2.
7. Make a new tag, DO11, an an alias tag for bit 11 of the remote
digital output card in slot 4.
8. Enter the following ladder logic in your MainRoutine:

9. Download the project to the controller in slot 1 of the


local chassis.
Do not reschedule the ControlNet network until
the projects have been downloaded to both the
local and remote controllers.

10. When both lines are ready, reschedule the ControlNet network.
11. Test the project and verify that you have correctly configured the
remote I/O by performing the following actions:
A. Start the conveyor by energizing DI12.
B. Verify that the remote I/O light DO11 on the other
workstation is on.
C. Turn off DI12 and verify that the remote I/O light on the
other workstation is off.
D. When the project functions correctly, go offline.

How Did You Do?

E 2012 Rockwell Automation, Inc. All rights reserved.

Turn to the Answers section.

Rev. August 2012


RC2e56r

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

Rev. August 2012

20--5

E 2012 Rockwell Automation, Inc. All rights reserved.


RC2e56r

20--6

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

Answers

Exercise A
3. Your main configuration screen for the local ControlNet module
in slot 5 should look similar to the example (The ControlNet
node number will vary depending on your workstation setup.):

The remote ControlNet module is added to the I/O


Configuration by right-clicking the ControlNet network icon
displayed below the local ControlNet module:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


RC2e56r

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

20--7

Your main configuration screen for the remote ControlNet


module in slot 5 should look similar to the example (The
ControlNet node address will vary depending on your
workstation setup.):

4. Add the remote output module by right-clicking the backplane


displayed beneath the remote ControlNet module:

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


RC2e56r

20--8

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

Your main configuration screen for the remote output module in


slot 4 should look similar to the example:

5. Your main configuration screen for the local input module in


slot 2 should look similar to the example:

(Continued)

Your completed I/O Configuration within the Controller


Organizer should look similar to the following:

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


RC2e56r

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

20--9

10. If you did not receive the appropriate system response after
rescheduling the ControlNet network, verify that you have
completed the following actions:
- Set the SMAX to be equal to the highest number node that
can use scheduled time on the network
- Set the UMAX to be equal to the highest number node that
can use unscheduled time on the network
- Reschedule the network if any changes were made after the
first rescheduling

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


RC2e56r

20--10

Exercise: Communicating with a 1756-I/O Module Over a ControlNet Network

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


RC2e56r

Appendix

I/O Wiring Diagrams For The


Assembly Application
Slot 0 - 1756-OB16D Digital Output Module
WORKSTATION
LABEL
DEVICE
RED

+DC- 0
+DC- 0
+DC- 0
+DC- 0
+DC- 0
+DC- 0
+DC- 0

OUT- 0

DO0

OUT- 1

DO1

OUT- 2

10

OUT- 3

DO3

STATION OUTPUT (PRESS)

12

OUT- 4

DO4

STATION OUTPUT (STAKE)

11

OUT- 5

DO5

STATION OUTPUT (WELD)

6
8

14
16

+DC- 1

30

GND- 1
GND- 1
Not Used

32

BLACK

GND- 0
+DC- 1
+DC- 1
+DC- 1
+DC- 1
+DC- 1
+DC- 1

CONVEYOR

DO2

18
20
22
24
26
28

34
36

BLACK

RED

APPLICATION
OUTPUT

- GREEN PILOT LIGHT


- AMBER PILOT LIGHT

- RED PILOT LIGHT

24VDC

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


WDAa56r

A--2

I/O Wiring Diagrams For The Assembly Application

Slot 2 - 1756-IB16D Digital Input Module


WORKSTATION
DEVICE

BLACK

BLACK

GND- 0
GND- 1
GND- 1
GND- 1

10

12

11

IN- 4
IN- 5

14

13

IN- 6

GND- 1
GND- 2
GND- 2
GND- 2
GND- 2
GND- 3
GND- 3
GND- 3

16

15

18

17

20

19

22

21

IN- 7
IN- 8
IN- 9
IN- 10

24

23

26

25

28

27

30

29

GND- 3
GND- 3
NOT USED

32

31

34

33

IN- 11
IN- 12
IN- 13
IN- 14
IN- 15
NOT USED

36

35

NOT USED

DI0
DI1
DI2
DI3
DI4
DI5
DI6
DI7
DI8
DI9
DI10
DI11
DI12

APPLICATION
OUTPUT

+24VDC

START

PART SENSOR FAULT RESET


READ REMOTE TOTAL
STOP

PART SENSOR

DI13
DI14
DI15

BLACK

BLACK

IN- 0
IN- 1
IN- 2
IN- 3

GND- 0
GND- 0
GND- 0

LABEL

- NORMALLY OPEN PUSHBUTTON


- SELECTOR SWITCH

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


WDAa56r

I/O Wiring Diagrams For The Assembly Application

A--3

Slot 4 - 1756-OB16D Digital Output Module


RED

+DC- 0
+DC- 0
+DC- 0
+DC- 0
+DC- 0
+DC- 0
+DC- 0

2
4
6

8
12
13

GND- 0
+DC- 1
+DC- 1
+DC- 1
+DC- 1
+DC- 1
+DC- 1
+DC- 1

16

15

18

17

GND- 1
GND- 1
NOT USED

32

BLACK

14

22

21

24

23

OUT- 11

19

G
A
R
G
A
R

DO6
DO7
DO8
DO9
DO10
DO11

PART SENSOR FAULT INDICATOR


STATION OUTPUT (REJECT)
STATION OUTPUT (PALLETIZE)
LINE ACTIVE

26
28
30

34
36

BLACK

RED

OUT- 6
OUT- 7
OUT- 8
OUT- 9
OUT- 10

20

APPLICATION
OUTPUT

WORKSTATION LABEL
DEVICE

10

- GREEN PILOT LIGHT


- AMBER PILOT LIGHT

- RED PILOT LIGHT

+24VDC

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


WDAa56r

I/O Wiring Diagrams For The Assembly Application

A--4

Slot 7 - 1756-OF6VI Analog Output Module


WORKSTATION
DEVICE

AO1 (Channel 1)

AO0
Return

WORKSTATION
DEVICE
OUT- 1

OUT- 0

NOT USED

NOT USED

RTN- 1

RTN- 0

OUT- 3

OUT- 2

NOT USED

10

NOT USED

RTN- 3

12

11

RTN- 2

NOT USED

14

13

NOT USED

OUT- 5

16

15

OUT- 4

NOT USED

18

17

NOT USED

RTN- 5

20

19

RTN- 4

E 2012 Rockwell Automation, Inc. All rights reserved.

AO0 (Channel 0)

AO1
Return

Rev. August 2012


WDAa56r

I/O Wiring Diagrams For The Assembly Application

A--5

Slot 8 - 1756-IF6I Analog Input Module


+10VDC

+10VDC
WORKSTATION
DEVICE

AI1
(Channel 1)

AI1
Return

Rev. August 2012

WORKSTATION
DEVICE

IN- 1/V

IN- 0/V

IN- 1/I

IN- 0/I

RET- 1

RET- 0

IN- 3/V

IN- 2/V

IN- 3/I

10

IN- 2/I

RET- 3

12

11

RET- 2

NOT USED

14

13

NOT USED

IN- 5/V

16

15

IN- 4/V

IN- 5/I

18

17

IN- 4/I

RET- 5

20

19

RET- 4

AI0
(Channel 0)

AI0
Return

E 2012 Rockwell Automation, Inc. All rights reserved.


WDAa56r

A--6

I/O Wiring Diagrams For The Assembly Application

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


WDAa56r

Rev. August 2012

DI6

DI5

DI11
DO11
DI15

DI10
DO8
DI14

DO5
DI13

DI12

DO10

DI7

DI3
DO9

DI9

DO4

DO6

DO3

DO7

DI2

DI1

Outputs (6- 11 in Slot 4)

DI8
DO2

DI4
DO1

DI0
DO0

Outputs (0- 5 in Slot 0)

Inputs Run Left to Right (All Wired to Slot 2)

Ch01 Analog
Meter Output

Ch00 Analog
Meter Output

Ch01 Analog
Meter Input

Ch00 Analog
Meter Input

Appendix

ControlLogix Workstation I/O


Device Assignments

The following standard ControlLogix workstation inputs and outputs


are used in this course (Local I/O tags are listed on the next page):

E 2012 Rockwell Automation, Inc. All rights reserved.


WI3a56r

B--2

ControlLogix Workstation I/O Device Assignments

Local I/O Tags

The devices used in the workstation have the following I/O base
tags:
Module

Digital Input
wired to Slot 2

Digital Output
wired to Slot 0

Digital Output
wired to Slot 4

E 2012 Rockwell Automation, Inc. All rights reserved.

Workstation Device
DI0
DI1
DI2
DI3
DI4
DI5
DI6
DI7
DI8
DI9
DI10
DI11
DI12
DI13
DI14
DI15
D00
D01
D02
D03
D04
D05
D06
D07
D08
D09
D010
D011

I/O Base Tag


Local:2:I.Data.0
Local:2:I.Data.1
Local:2:I.Data.2
Local:2:I.Data.3
Local:2:I.Data.4
Local:2:I.Data.5
Local:2:I.Data.6
Local:2:I.Data.7
Local:2:I.Data.8
Local:2:I.Data.9
Local:2:I.Data.10
Local:2:I.Data.11
Local:2:I.Data.12
Local:2:I.Data.13
Local:2:I.Data.14
Local:2:I.Data.15
Local:0.O.Data.0
Local:0.O.Data.1
Local:0.O.Data.2
Local:0.O.Data.3
Local:0.O.Data.4
Local:0.O.Data.5
Local:4:O.Data.6
Local:4:O.Data.7
Local:4:O.Data.8
Local:4:O.Data.9
Local:4:O.Data.10
Local:4:O.Data.11

Rev. August 2012


WI3a56r

Appendix

Node Assignments
If you are in an environment with multiple workstations on a
ControlNet or EtherNet/IP network, ask your network specialist to
supply the following information:
EtherNet or EtherNet/IP
Network
Workstation
Number

1756-ENBT IP Address

ControlNet Network
1756-CNB
or
1756- CN2
Node
Address*

1784- PCICS
Card Node
Address

1784- PCC
Card Node
Address

1784-KTCX15 Interface
Card

10

Rev. August 2012

E 2012 Rockwell Automation, Inc. All rights reserved.


NO3a56r

C--2

Node Assignments

E 2012 Rockwell Automation, Inc. All rights reserved.

Rev. August 2012


NO3a56r

The following are trademarks of Rockwell Automation, Inc.:


1336 FORCE
1336 PLUS
ControlBus
Data Highway Plus
DriveTools
Flex
Logix5000
PanelBuilder
PLC-5
PowerFlex
RSLinx
RSView
SCANPort
SoftLogix

1336 IMPACT
CompactLogix
ControlLogix
DH+
FactoryTalk
FlexLogix
Logix5550
PanelView
PHOTOSWITCH
RediSTATION
RSLogix
RSNetWorx
SLC
Ultra

EtherNet/IP and ControlNet are trademarks of ControlNet International Ltd.


DeviceNet is a trademark of the Open DeviceNet Vendor Association, Inc. (ODVA).
The following are registered trademarks of Microsoft Corporation:
MS-DOS
Windows

PowerPoint
Windows NT

IBM is a registered trademark of International Business Machines Corporation.


Pentium is a registered trademark of Intel Corporation.
All other trademarks are the property of their respective holders and are hereby acknowledged.

Catalog Number ABT-CCP143-TSM -- August 2012


Supersedes Catalog Number ABT-CCP143-TSM - June 2012
E 2012 Rockwell Automation, Inc. All rights reserved. Printed in USA