0% found this document useful (0 votes)
216 views34 pages

Logix5000 Controllers Messages: Programming Manual

Msg

Uploaded by

Trupti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
216 views34 pages

Logix5000 Controllers Messages: Programming Manual

Msg

Uploaded by

Trupti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Programming Manual

Logix5000 Controllers Messages


Catalog Numbers 1756-L1, 1756-L55, 1756-L61, 1756-L62, 1756-L63, 1769-L31, 1769-L32C, 1769L32E, 1769-L35CR, 1769-L35E, 1789-L60, PowerFlex 700S/SE

Important user information


Read this document and the documents listed in the additional resources section about installation, configuration, and operation of
this equipment before you install, configure, operate, or maintain this product. Users are required to familiarize themselves with
installation and wiring instructions in addition to requirements of all applicable codes, laws, and standards.
Activities including installation, adjustments, putting into service, use, assembly, disassembly, and maintenance are required to be
carried out by suitably trained personnel in accordance with applicable code of practice. If this equipment is used in a manner not
specified by the manufacturer, the protection provided by the equipment may be impaired.
In no event will Rockwell Automation, Inc. be responsible or liable for indirect or consequential damages resulting from the use or
application of this equipment.
The examples and diagrams in this manual are included solely for illustrative purposes. Because of the many variables and
requirements associated with any particular installation, Rockwell Automation, Inc. cannot assume responsibility or liability for
actual use based on the examples and diagrams.
No patent liability is assumed by Rockwell Automation, Inc. with respect to use of information, circuits, equipment, or software
described in this manual.
Reproduction of the contents of this manual, in whole or in part, without written permission of Rockwell Automation, Inc., is
prohibited.
Throughout this manual, when necessary, we use notes to make you aware of safety considerations.
WARNING: 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.
ATTENTION: 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, and recognize the consequence
Important:

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

Labels may also be on or inside the equipment to provide specific precautions.


SHOCK HAZARD: Labels may be on or inside the equipment, for example, a drive or motor, to alert people that dangerous voltage may be
present.
BURN HAZARD: Labels may be on or inside the equipment, for example, a drive or motor, to alert people that surfaces may reach dangerous
temperatures.
ARC FLASH HAZARD: Labels may be on or inside the equipment, for example, a motor control center, to alert people to potential Arc Flash. Arc
Flash will cause severe injury or death. Wear proper Personal Protective Equipment (PPE). Follow ALL Regulatory requirements for safe work
practices and for Personal Protective Equipment (PPE).

Allen-Bradley, Rockwell Software, Rockwell Automation, and TechConnect are trademarks of Rockwell Automation, Inc.
Trademarks not belonging to Rockwell Automation are property of their respective companies.

Summary of changes
The following table contains the changes made to this revision.
Change

Topic

Updated sample project folder location.

Introduction (on page 23)

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Table of contents
Preface

Studio 5000 environment ..................................................................................... 7


Additional resources............................................................................................... 8

Chapter 1
Controller messages

Introduction ............................................................................................................ 9
Supported data types .............................................................................................. 9
Message queue ....................................................................................................... 10
Cache list ................................................................................................................ 11
Unconnected buffers............................................................................................ 12
Guidelines .............................................................................................................. 13
Get or set the number of unconnected buffers ................................................ 14
Get the number of unconnected buffers ................................................... 14
Set the number of unconnected buffers .................................................... 15
Convert between INTs and DINTs ................................................................. 16

Chapter 2
Manage multiple messages

Introduction .......................................................................................................... 19
Message manager logic ......................................................................................... 19

Chapter 3
Send a message to multiple
controllers

Introduction .......................................................................................................... 23
Configure the I/O configuration....................................................................... 24
Define your source and destination elements .................................................. 24
Create the MESSAGE_ CONFIGURATION data type ............................ 25
Create the configuration array ........................................................................... 26
Get the size of the local array .............................................................................. 28
Load the message properties for a controller ................................................... 28
Configure the message ......................................................................................... 29
Step to the next controller................................................................................... 29
Restart the sequence ............................................................................................. 30

Index

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Preface
This manual shows how to program message (MSG) instructions to and from
Logix5000 controllers. This manual is one of a set of related manuals that show
common procedures for programming and operating Logix5000 controllers.
For a complete list of common procedures manuals, refer to the Logix5000
Controllers Common Procedures Programming Manual, publication 1756PM001.
The term Logix5000 controller refers to any controller that is based on the
Logix5000 operating system.

Studio 5000 environment

The Studio 5000 Automation Engineering & Design Environment combines


engineering and design elements into a common environment. The first element is
the Studio 5000 Logix Designer application. The Logix Designer application is
the rebranding of RSLogix 5000 software and will continue to be the product to
program Logix5000 controllers for discrete, process, batch, motion, safety, and
drive-based solutions.

The Studio 5000 environment is the foundation for the future of


Rockwell Automation engineering design tools and capabilities. The Studio 5000
environment is the one place for design engineers to develop all elements of their
control system.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Preface

Additional resources

These documents contain additional information concerning related Rockwell


Automation products.
Resource

Description

Industrial Automation Wiring and Grounding Guidelines,


publication 1770-4.1

Provides general guidelines for installing a Rockwell


Automation industrial system.

Product Certifications webpage, available at


http://ab.rockwellautomation.com

Provides declarations of conformity, certificates, and other


certification details.

You can view or download publications at


http://www.rockwellautomation.com/literature. To order paper copies of
technical documentation, contact your local Rockwell Automation distributor or
sales representative.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Chapter 1

Controller messages

Introduction

This section describes how to transfer (send or receive) data between controllers
by executing a message (MSG) instruction. It explains cache connections and
buffers so you can correctly program the controller.

Supported data types

The following data types are supported when sending CIP messages.

SINT

INT

DINT

LINT

REAL

In addition, you can send a message with any structure type that is predefined,
module-defined, or user-defined.
See Convert between INTs and DINTs (on page 16) for more information on
INTs and DINTs.
For complete details on programming a message instruction, see the Logix5000
Controllers General Instruction Reference Manual, publication 1756-RM003.
Example: Execute a Message (MSG) Instruction
If count_send = 1
and count_msg.EN = 0 (MSG instruction is not enabled)
then execute a MSG instruction that sends data to another controller.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Chapter 1

Controller messages

This diagram shows how the controller processes MSG instructions.

Description
The controller scans the MSG instruction and its rung-condition-in goes true. The message passes to a throttle that
has 16 positions. If the throttle is full, the message remains enabled but is held until another controller scan.
The System-overhead time slice executes and the message is pulled from the throttle to the message queue.
If the MSG instruction

Then the MSG instruction

Does not use a connection or the connection was not


previously cached

Uses an unconnected buffer to establish


communication with the destination device.

Uses a connection and the connection is cached

Does not use an unconnected buffer.

Communication occurs with the destination device.

Message queue

10

The message queue holds up to 48 MSG instructions, including those that you
configure as a block-transfer read or block-transfer write. When the queue is full,
an instruction tries to enter the queue on each subsequent scan of the instruction,
as shown in the following illustration.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Controller messages

Chapter 1

Description
The controller scans the MSG instruction.
The rung-condition-in for the MSG instruction is true.
The EN bit is set.
The MSG instruction attempts to enter the queue but 16 throttle positions exist. If all 16 are filled and a
17th message is executed, the message is enabled.
The EW bit remains cleared.
&

The controller scans the MSG instruction.


The rung-condition-in for the MSG instruction is false.
The EN bit remains set.
The MSG instruction attempts to pass through the throttle, but no open positions exist yet.
The EW bit remains cleared.
The controller scans the MSG instruction.
The MSG instruction attempts to enter the queue. This time the throttle position is open and the message
can pass to the message queue.
The EW bit is set.

Cache list

Depending on how you configure a MSG instruction, it may use a connection to


send or receive data.
This type of message

And this communication method

CIP data table read or write


PLC-2, PLC-3, PLC-5, or SLC (all types)

Uses a connection
Your option(1)

CIP
CIP with Source ID

No

DH+

Yes

CIP generic

Your option(2)

Block-transfer read or write

Yes

(1)

CIP data table read or write messages can be connected or unconnected. However for most applications, it is recommended you
leave CIP data table read or write messages connected.

(2)

CIP generic messages can be connected or unconnected. However for most applications, it is recommended you leave CIP generic
messages unconnected, unless you want to use the Large Connection option.

If a MSG instruction uses a connection, you have the option to leave the
connection open (cache) or close the connection when the message is done
transmitting.
If you

Then

Cache the connection

The connection stays open after the MSG instruction is done. This
optimizes execution time. Opening a connection each time the
message executes increases execution time.

Do not cache the connection

The connection closes after the MSG instruction is done. This frees up
that connection for other uses.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

11

Chapter 1

Controller messages

The controller has the following limits on the number of connections that you can
cache.
If you have this software version and
firmware revision

Then you can cache

11.x or earlier

Block transfer messages for up to 16 connections.


Other types of messages for up to 16 connections.

12.x or later

Up to 32 connections.

If several messages go to the same device, the messages may be able to share a
connection.
If the MSG instructions are to
Different devices

And they are

Then

The same device, cached, and not a


large connection

The same device, cached, and a large


connection

Each MSG instruction uses 1 connection.

Enabled simultaneously (same scan)

Each MSG instruction uses 1 connection


and 1 cached buffer.

Not enabled simultaneously

All MSG instructions use 1 connection


and 1 cached buffer. They share the
connection and the buffer.

Enabled simultaneously (same scan)

Each MSG instruction uses 1 connection


and 1 cached buffer.

Not enabled simultaneously

All MSG instructions use 1 connection


and 1 cached buffer. They share the
connection and the buffer.

Example: Share a connection


If the controller alternates between sending a block-transfer read message and a block-transfer write
message to the same module, then together the messages count as one connection. Caching both
messages counts as one on the cached buffer.
If the controller sends 10 cached connected messages to the same bridge module (for example, 1756EN2T) where 7 utilize a standard connection (large connection unchecked) and 3 utilize a large connection,
then the 7 standard connection messages all utilize one cached connection. The 3 large connection
messages all utilize another cached connection. In total, the 10 messages use 2 cached connections.

Unconnected buffers

To establish a connection or process unconnected messages, the controller uses an


unconnected buffer.
Term

Definition

Unconnected buffer

An allocation of memory that the controller uses to process unconnected communication. The
controller performs unconnected communication when it:
Establishes a connection with a device, including an I/O module.
Executes a MSG instruction that does not use a connection.

12

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Controller messages

Term

Chapter 1

Definition
The controller can have 10 to 40 unconnected buffers.
The default number is 10.
To increase the number of unconnected buffers, execute a MSG instruction that reconfigures the
number of unconnected buffers.
Each unconnected buffer uses 1.2 KB of memory.
If all unconnected buffers are in use when an instruction leaves the message queue, an error
occurs and data does not transfer.

If a MSG instruction uses a connection, the instruction uses an unconnected


buffer when it first executes to establish a connection. If you configure the
instruction to cache the connection, it no longer requires an unconnected buffer
once the connection is established.

Guidelines

As you plan and program your MSG instructions, follow these guidelines.
Guideline

Details

For each MSG instruction, create a control


tag.

Data type = MESSAGE


Scope = controller
The tag cannot be part of an array or a user-defined data type.

Keep the source and destination data at the


controller scope.

A MSG instruction can access only tags that are in the Controller Tags
folder (controller scope).

If your message is to a device that uses 16-bit Logix5000 controllers execute more efficiently and use less memory when
integers, such as a PLC-5 or SLC 500
working with 32-bit integers (DINTs).
controller, and it transfers integers (not
See "Convert between INTs and DINTs (on page 16).
REALs), use a buffer of INTs in the message
and DINTs throughout the project.
Execution time is optimized when the controller does not open a
Cache the connection for those MSG
instructions that execute most frequently, up connection each time the message executes.
to the maximum number permissible for your
controller revision.
If you want to enable more than 16 MSGs at
one time, use a management strategy to
ensure some MSG instructions are not
delayed entering the queue.

To guarantee the execution of each message, use one of these options:


Enable each message in sequence.
Enable the messages in groups.
Program a message to communicate with multiple devices.
Program logic to coordinate the execution of messages.

Keep the number of unconnected and


uncached MSGs less than the number of
unconnected buffers.

The controller can have 10 to 40 unconnected buffers. The default number


is 10.
If all unconnected buffers are in use when an instruction leaves the
message queue, an error occurs, the data is not transferred.
You can increase the number of unconnected buffers (up to 40),
provided you continue to adhere to the previous guideline.
To increase the number of unconnected buffers, see Get or set the
number of unconnected buffers (on page 14).

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

13

Chapter 1

Controller messages

Get or set the number of


unconnected buffers

To determine or change the number of unconnected buffers, use a MSG


instruction.

The range is 10 to 40 unconnected buffers.

The default number is 10.

Each unconnected buffers uses 1.1 KB of memory.

Get the number of unconnected buffers


To determine the number of unconnected buffers that are currently available,
configure a Message (MSG) instruction as follows.
On this tab

For this item

Type or choose

Configuration

Message Type

CIP Generic

Service Type

Custom

Service Code

Class

304

Instance

Attribute

Source Element

source_array where data type = SINT[4]


In this element

Enter

source_array[0]

source_array[1]

source_array[2]

17

source_array[3]

Source Length (bytes)

4 (Write 4 SINTs.)

Destination Element

destination_array where data type = SINT[10] (Leave all values = 0.)


destination_array[6] = current number of unconnected buffers

Communication Path

14

1, slot_number_of_controller

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Controller messages

Chapter 1

Set the number of unconnected buffers


As a starting value, set the number of unconnected buffers equal to the number of
unconnected and uncached messages enabled at one time plus 5. The additional 5
buffers provide a cushion in case you underestimate the number of messages that
are enabled at once.
To change the number of unconnected buffers of the controller, configure a
Message (MSG) instruction as follows.
On this tab

For this item

Type or select

Configuration

Message Type

CIP Generic

Service Type

Custom

Service Code

Class

304

Instance

Attribute

Source Element

source_array where data type = SINT[8]


In this element

Enter

source_array[0]

source_array[1]

source_array[2]

17

source_array[3]

source_array[4]

Number of unconnected buffers that you


want.

source_array[5]

source_array[6]

source_array[7]

Source Length (bytes)

8 (Write 8 SINTs.)

Destination Element

destination_array where data type = SINT[6] (Leave all the values = 0.)

Communication Path

1, slot_number_of_controller

Example: Set the number of unconnected buffers


If S:FS = 1 (first scan)
then set the number of unconnected buffers for the controller.
Source_Array[0] = 1
Source_Array[0] = 1
Source_Array[1] = 0
Source_Array[2] = 17
Source_Array[3] = 0
Source_Array[4] = 12 (The number of unconnected buffers that you want. In this example, we want 12
buffers.)
If UCB_Set.EN = 0 (MSG instruction is not already enabled)
then MSG instruction sets the number of unconnected buffers = Source_Array[4].
Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

15

Chapter 1

Controller messages

Convert between INTs and


DINTs

Tag Name

Type

Description

UCB_Set

MESSAGE

Control tag for the MSG instruction.

Source_Array

SINT[8]

Source values for the MSG instruction, including the number of


unconnected buffers that you want.

In the Logix5000 controller, use the DINT data type for integers whenever
possible. Logix5000 controllers execute more efficiently and use less memory
when working with 32-bit integers (DINTs).
If your message is to a device that uses 16-bit integers, such as a PLC-5 or SLC 500
controller, and it transfers integers (not REALs), use a buffer of INTs in the
message and DINTs throughout the project. This increases the efficiency of your
project.
Read 16-bit integers

Data from the


device

Buffer of INTs

DINTs for use in the


project

Word 1

INT_Buffer[0]

DINT_Array[0]

Word 2

INT_Buffer[1]

DINT_Array[1]

Word 3

INT_Buffer[2]

DINT_Array[2]

Description
The Message (MSG) instruction reads 16-bit integers (INTs) from the device and stores them in a
temporary array of INTs.
A File Arith/Logical (FAL) instruction converts the INTs to DINTs for use by other instructions in your
project.
16

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Controller messages

Chapter 1

Write 16-bit integers

DINTs from the project

Buffer of INTs

Data for the


device

DINT_Array[0]

INT_Buffer[0]

Word 1

DINT_Array[1]

INT_Buffer[1]

Word 2

DINT_Array[2]

INT_Buffer[2]

Word 3

Description
An FAL instruction converts the DINTs from the Logix5000 controller to INTs.
The MSG instruction writes the INTs from the temporary array to the device.
Example: Read integer values from a PLC-5 controller
If Condition_1 = 1
and Msg_1.EN = 0 (MSG instruction is not enabled)
then read 3 integers from the PLC-5 controller and store them in INT_Buffer (3 INTs).

If Msg_1.DN =1 (MSG instruction has read the data)


then reset the FAL instruction.
The FAL instruction sets DINT_Array = INT_Buffer. This converts the values to 32-bit integers (DINTs).

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

17

Chapter 1

Controller messages

Example: Write integer values to a PLC-5 controller


If Condition_2 = 1
then reset the FAL instruction.
The FAL instruction sets INT_Buffer = DINT_Array. This converts the values to 16-bit integers (INTs).

If Control_2.DN = 1 (FAL instruction has converted the DINTs to INTs)


and Msg_2.EN = 0 (MSG instruction is not enabled)
then write the integers in INT_Buffer (3 INTs) to the PLC-5 controller.

18

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Chapter 2

Manage multiple messages

Introduction

You can use ladder logic to send groups of message (MSG) instructions in
sequence.

To be processed, each MSG instruction must enter the message queue.

The queue holds 48 MSGs.

If more than 16 MSGs are enabled at one time, the message throttle
prevents some of the messages from entering the message queue. If this
occurs, the MSG is held until room exists on the queue for the controller to
process the MSG. On each subsequent scan of the MSG, it checks the queue
to see if room exists.

The message manager logic lets you control the number of MSGs that are enabled
at one time and enable subsequent MSGs in sequence. In this way, MSGs enter
and exit the queue in order and do not need to wait for room on the queue to
become available.

Message manager logic

The message manager logic sends three groups of MSGs. Use as many groups as
needed to include all your MSGs.
The Msg_Group tag controls the enabling of each MSG.

The tag uses the DINT data type.

Each bit of the tag corresponds to a group of MSGs. For example,


Msg_Group.0 enables and disables the first group of MSGs (group 0).

Example: Message manner logic


To make the example easier to follow, each group contains only two MSGs. In your project, use more MSGs in
each group, such as five.
Initialize the logic
If S:FS = 1 (first scan)
then initialize the MSGs:
Msg_Group = 0, which disables all MSGs.
Msg_Group.0 =1, which enables the first group of MSGs.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

19

Chapter 2

Manage multiple messages

Restart the sequence


If the MSGs in group 2 (last group) are currently enabled (Msg_Group.2 = 1)
and Msg_4 is in the state of done or error
and Msg_5 is in the state of done or error
then restart the sequence of MSGs with the first group:
Msg_Group.2 = 0. This disables the last group of MSGs.
Msg_Group.0 = 1. This enables the first group of MSGs.

Send the first group of MSGs


If Msg_Group.0 changes from 0 -> 1 then
send Msg_0.
send Msg_1.
Because a MSG instruction is a transitional instruction, it executes only when its rung-condition-in changes
from false to true.

Enable the second group of MSGs


If the MSGs in group 0 are currently enabled (Msg_Group.0 = 1)
and Msg_0 is in the state of done or error
and Msg_1 is in the state of done or error
then:
Msg_Group.0 = 0. This disables the current group of MSGs.
Msg_Group.1 = 1. This enables the next group of MSGs.

20

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Manage multiple messages

Chapter 2

Send the second group of MSGs


If Msg_Group.1 changes from 0 -> 1 then
send Msg_2.
send Msg_3.

Enable the next group of MSGs


If the MSGs in group 1 are currently enabled (Msg_Group.1 = 1)
and Msg_2 is in the state of done or error
and Msg_3 is in the state of done or error
then:
Msg_Group.1 = 0. This disables the current group of MSGs.
Msg_Group.2 = 1. This enables the next group of MSGs.

Send the next group of MSGs


If Msg_Group.1 changes from 0 -> 1 then
send Msg_2.
send Msg_3.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

21

Chapter 3

Send a message to multiple controllers

Introduction

You can program one message instruction to communicate with multiple


controllers. To reconfigure a MSG instruction during runtime, write new values
to the members of the MESSAGE data type.
Important: In the MESSAGE data type, the RemoteElement member stores the tag name or address of the data in the
controller that receives the message.
If the message

Then the RemoteElement is the

Reads data

Source element

Writes data

Destination element

If you use an asterisk [*] to designate the element number of the array, the value in
number.

provides the element

The Index box is available only when you use an asterisk [*] in the Source Element or Destination Element. The
instruction substitutes the value of Index for the asterisk [*].
Tip:

To copy the previous components from a sample project, take these steps.
A. On the Help menu, click Quick Start.
B. On the Quick Start window, in the left navigation pane, expand Controller Projects, and then click Open
Sample Project.
C. In the Open Project dialog box, click MSG_To_multiple_Controllers.acd, and click Open.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

23

Chapter 3

Send a message to multiple controllers

Configure the I/O


configuration

Although not required, it is recommended that you add the communication


modules and remote controllers to the I/O configuration of the controller. This
makes it easier to define the path to each remote controller.
For example, once you add the local communication module, the remote
communication module, and the destination controller, clicking Browse lets you
select the destination.
Message Path Browser
Path: peer_controller
peer_controller
I/O Configuration
[0] 1756-CNB/x Local_CNB
2 [0] 1756-CNB/x chassis_b
[1] 1756-L55/x
peer_controller

Define your source and


destination elements

An array stores the data that is read from or written to each remote controller.
Each element in the array corresponds to another remote controller.
1. Use the following worksheet to organize the tag names in the local and
remote controllers.
Name of Remote Controller

Tag or Address of Data in


Remote Controller

Tag in This Controller


local_array[0]
local_array[1]
local_array[2]
local_array[3]

24

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Send a message to multiple controllers

Chapter 3

2. Create the local_array tag, which stores the data in this controller.

Create the MESSAGE_


CONFIGURATION data type

Tag Name

Type

local_array

data_type [length]
where:
data_type is the data type of the data that the message sends or receives, such as
DINT, REAL, or STRING.
length is the number of elements in the local array.

Create a user-defined data type to store the configuration variables for the message
to each controller.

Some of the required members of the data type use a string data type.

The default STRING data type stores 82 characters.

If your paths or remote tag names or addresses use less than 82 characters,
you have the option of creating a new string type that stores fewer
characters. This lets you conserve memory.

To create a string type, click File > New Component > String Type.

If you create a string type, use it in place of the STRING data type.

To store the configuration variables for the message to each controller, create the
following user-defined data type.

Data Type: MESSAGE_CONFIGURATION


Name: MESSAGE_CONFIGURATION
Description: Configuration properties for a message to another controller
Members
Name

Data Type
Path

STRING

RemoteElement

STRING

Style

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Description

25

Chapter 3

Send a message to multiple controllers

Create the configuration


array

Store the configuration properties for each controller in an array. Before each
execution of the MSG instruction, your logic loads new properties into the
instruction. This sends the message to another controller.

1. To store the configuration properties for the message, create the following
array.
Tag Name

Type

Scope

message_config

MESSAGE_CONFIGURATION[number](1)

Any

(1)

Number indicates the number of controllers to send the message

2. In the message_config array, enter the path to the first controller that
receives the message.

26

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Send a message to multiple controllers

Chapter 3

Example:
Type the path to the remote controller.
OR
Click Browse and browse to the remote
controller.

3. In the message_config array, enter the tag name or address of the data in the
first controller to receive the message. Enter the path and remote element
for each additional controller.

4. Enter the path and remote element for each additional controller.
Tag Name

Value

message_config

{}

message_config[0]

{}

message_config[0].Path
message_config[0].RemoteElement
message_config[1]

{}

message_config[1].Path
message_config[1].RemoteElement

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

27

Chapter 3

Send a message to multiple controllers

Get the size of the local


array

The SIZE instruction:

Counts the number of elements in local_array.

Counts the number of elements in Dimension 0 of the array. In this case,


that is the only dimension.

Local_array_length (DINT) stores the size (number of elements) of local_array.


This value tells a subsequent rung when the message is sent to all controllers and to
start with the first controller again.

Load the message


properties for a controller

1. The XIO instruction conditions the rung to continuously send the message.
2. The first COP instruction loads the path for the message. The value of
index determines which element the instruction loads from message_config.
The instruction loads one element from message_config.
3. The second COP instruction loads the tag name or address of the data in
the controller that receives the message. The value of index determines
which element the instruction loads from message_config. The instruction
loads one element from message_config.

28

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Send a message to multiple controllers

Configure the message

Chapter 3

The following table explains how to configure the message.

On this tab

If you want to

For this item

Type or select

Configuration

Read (receive) data from


the other controllers

Message Type

The read-type that corresponds to the other


controllers

Source Element

Tag or address that contains the data in the first


controller

Number Of Elements 1

Write (send) data to the


other controllers

Destination Element

local_array[*]

Index

Message Type

The write-type that corresponds to other


controllers

Source Element

local_array[*]

Index

Number Of Elements 1

Communication

Step to the next controller

Destination Element

Tag or address that contains the data in the first


controller

Path

Path to the first controller

Cache Connections

Clear the Cache Connections check box (more


efficient since this procedure continuously changes
the path of the message)

After the MSG instruction sends the message, the following actions occur.
1. The first ADD instruction increments the index. This lets the logic load the
configuration properties for the next controller into the MSG instruction.
2. The second ADD instruction increments the LocalIndex member of the
MSG instruction. This lets the logic load the value from the next controller
into the next element of local_array.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

29

Chapter 3

Send a message to multiple controllers

Restart the sequence

When the index equals the local_array_length, the controller sends the message to
all other controllers.
1. The first CLR instruction sets the index equal to 0. This lets the logic load
the configuration properties for the first controller into the MSG
instruction and start the sequence of messages again.
2. The second CLR instruction sets the LocalIndex member of the MSG
instruction equal to 0. This lets the logic load the value from the first
controller into the first element of local_array.

30

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

Index
A
array
controller configuration 26

B
block transfer
guidelines 13
buffer
for unconnected messages 12, 14

C
cache
connection 11
communicate
message instruction 9
other controllers 9
connection
cache 11
controller
message properties 28
messages 9

M
message
cache connection 11
controller 9
convert between 16 and 32-bit data 16
example illustration 9
limits 10
manage multiple messages 19
processing 9
queue 10
to a single controller 9
to multiple controllers 23
unconnected buffer 12, 14

P
processing
message 9

Q
queue
message 10

D
data type
convert data 16
message configuration 25

T
tag
guidelines for messages 13
organize for message 9

G
guidelines
messages 13

L
ladder logic
manage messages 19

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014

31

Rockwell Automation support


Rockwell Automation provides technical information on the web to assist you in using its products. At
http://www.rockwellautomation.com/support you can find technical and application notes, sample code, and links to software
service packs. You can also visit our Support Center at https://rockwellautomation.custhelp.com for software updates, support chats
and forums, technical information, FAQs, and to sign up for product notification updates.
In addition, we offer multiple support programs for installation, configuration, and troubleshooting. For more information, contact
your local distributor or Rockwell Automation representative, or visit http://www.rockwellautomation.com/services/online-phone.

Installation assistance
If you experience a problem within the first 24 hours of installation, review the information that is contained in this manual. You can
contact Customer Support for initial help in getting your product up and running.
United States or Canada

1.440.646.3434

Outside United States or Canada

Use the Worldwide Locator available at http://www.rockwellautomation.com/locations, or contact your local Rockwell
Automation representative.

New product satisfaction return


Rockwell Automation tests all of its products to ensure that they are fully operational when shipped from the manufacturing facility.
However, if your product is not functioning and needs to be returned, follow these procedures.
United States

Contact your distributor. You must provide a Customer Support case number (call the phone number above to obtain one) to
your distributor to complete the return process.

Outside United States

Please contact your local Rockwell Automation representative for the return procedure.

Documentation feedback
Your comments will help us serve your documentation needs better. If you have any suggestions on how to improve this document,
complete the feedback form, publication RA-DU002.

Rockwell Automation Publication 1756-PM012F-EN-P - October 2014


Supersedes Publication 1756-PM012E-EN-P - November 2012

Copyright 2014 Rockwell Automation, Inc. All rights reserved. Printed in the U.S.A.

You might also like