Rockwell Automation 1756 ControlLogix, 1756 GuardLogix, 1769 CompactLogix, 1769 Compact GuardLogix, 1789 SoftLogix Original Instructions

...
Programming Manual

Logix 5000 Controllers Messages

Original Instructions
Logix 5000 Controllers Messages
personal injury or death, property damage, or economic loss.
Attentions help you identify a hazard, avoid a hazard, and recognize the consequence.
IMPORTANT
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.
temperatures.
for Personal Protective Equipment (PPE).

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
ATTENTION: Identifies information about practices or circumstances that can lead to personal injury or death, property damage, or economic loss.
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.
BURN HAZARD: Labels may be on or inside the equipment, for example, a drive or motor, to alert people that surfaces may reach dangerous
ARC FLASH HAZARD:
will cause severe injury or death. Wear proper Personal Protective Equipment (PPE). Follow ALL Regulatory requirements for safe work practices and
Labels may be on or inside the equipment, for example, a motor control center, to alert people to potential Arc Flash. Arc Flash
2 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
Change
Topic
Updated branding.
Throughout
Change
Topic
of 1.1 KB.
on page 13

Summary of changes

This manual includes new and updated information. Use these reference tables to locate changed information.
Grammatical and editorial style changes are not included in this summary.
Global changes
This table identifies changes that apply to all information about a subject in the manual and the reason for the change. For example, the addition of new supported hardware, a software design change, or additional reference material would result in changes to all of the topics that deal with that subject.
New or enhanced features
This table contains a list of topics changed in this version, the reason for the change, and a link to the topic that contains the changed information.
Updated Legal notices. Legal notices on page 8
Each unconnected buffers uses 1.2 KB of memory instead
Get or Set the Number of Unconnected Buffers
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 3
Summary of changes Controller messages
Manage multiple messages
Send a message to multiple controllers
Index

Table of Contents

Preface
Studio 5000 environment .......................................................................... 7
Additional resources ................................................................................... 7
Legal notices ................................................................................................ 8
Chapter 1
Introduction to Controller Messages ........................................................ 9
Supported data types .................................................................................. 9
Message Queue ...........................................................................................10
Cache list .....................................................................................................10
Unconnected buffers .................................................................................. 12
Guidelines ................................................................................................... 12
Get or set the number of unconnected buffers ........................................ 13
Get the number of unconnected buffers ............................................ 13
Set the number of unconnected buffers ............................................. 13
Convert between INTs and DINTs ............................................................ 15
Chapter 2
Introduction ............................................................................................... 17
Message manager logic ............................................................................. 17
Chapter 3
Introduction ............................................................................................... 21
Configure the I/O configuration .............................................................. 21
Define your source and destination elements ........................................ 22
Create the MESSAGE_ CONFIGURATION data type ............................ 22
Create the configuration array ..................................................................23
Get the size of the local array .................................................................... 24
Load the message properties for a controller .......................................... 25
Configure the message ............................................................................. 25
Step to the next controller ........................................................................ 26
Restart the sequence ................................................................................. 26
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 5
Resource
Description
at http://ab.rockwellautomation.com
and other certification details.
Studio 5000 environment
Additional resources

Preface

This manual shows how to program message (MSG) instructions to and from Logix 5000™ controllers. This manual is one of a set of related manuals that show common procedures for programming and operating Logix 5000 controllers.
For a complete list of common procedures manuals, refer to the
Logix 5000 Controllers Common Procedures Programming Manual, publication 1756- PM001.
The term Logix 5000 controller refers to any controller based on the Logix 5000 operating system.
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 Logix 5000™ controllers for discrete, process, batch, motion, safety, and drive-based solutions.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 7
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.
These documents contain additional information concerning related
Rockwell Automation products.
Industrial Automation Wiring and Grounding Guidelines, publication 1770-4.1
Product Certifications webpage, available
Provides general guidelines for installing a Rockwell Automation industrial system.
Provides declarations of conformity, certificates,
View or download publications at
http://www.rockwellautomation.com/literature
. To order paper copies of
Preface
Legal notices
technical documentation, contact the local Rockwell Automation distributor or sales representative.
Rockwell Automation publishes legal notices, such as privacy policies, license
agreements, trademark disclosures, and other terms and conditions on the
Legal Notices
page of the Rockwell Automation website.
End User License Agreement (EULA)
You can view the Rockwell Automation End User License Agreement (EULA) by opening the license.rtf file located in your product's install folder on your hard drive.
The default location of this file is:
C:\Program Files (x86)\Common Files\Rockwell\license.rtf.
Open Source Software Licenses
The software included in this product contains copyrighted software that is licensed under one or more open source licenses.
You can view a full list of all open source software used in this product and their corresponding licenses by opening the oss_license.txt file located your product's OPENSOURCE folder on your hard drive. This file is divided into these sections:
Components Includes the name of the open source component, its version number, and the type of license.
Copyright Text Includes the name of the open source component, its version number, and the copyright declaration.
Licenses Includes the name of the license, the list of open source components citing the license, and the terms of the license.
The default location of this file is:
C:\Program Files (x86)\Common Files\Rockwell\Help\<product name>\Release Notes\OPENSOURCE\oss_licenses.txt.
8 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
You may obtain Corresponding Source code for open source packages included in this product from their respective project web site(s). Alternatively, you may obtain complete Corresponding Source code by contacting Rockwell Automation via the Contact form on the Rockwell Automation website:
http://www.rockwellautomation.com/global/about­us/contact/contact.page. Please include "Open Source" as part of the request
text.
Example:
then execute a MSG instruction that sends data to another controller.
Description
Introduction to

Controller Messages

Supported data types
Chapter 1
Controller messages
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.
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.
For more information, see "Convert between INTs and DINTs on page 15
".
For complete details on programming a message instruction, see the LOGIX
5000 Controllers General Instruction Reference Manual, publication 1756-
RM003.
Execute a message (MSG) instruction If count_send = 1 and count_msg.EN = 0 (MSG instruction is not enabled)
This diagram shows how the controller processes MSG instructions.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 9
Chapter 1 Controller messages
the message remains enabled but is held until another controller scan.
If the MSG instruction
Then the MSG instruction
Description
The EW bit remains cleared.
The EW bit is set.
This type of message
And this communication method
Uses a connection
CIP with Source ID
Message Queue
Cache list
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 System-overhead time slice executes and the message is pulled from the throttle to the message queue.
Does not use a connection or the connection was not previously cached Uses an unconnected buffer to establish communication with the
Uses a connection and the connection is cached Does not use an unconnected buffer.
Communication occurs with the destination device.
destination device.
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.
&
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 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.
Depending on how you configure a MSG instruction, it may use a connection
to send or receive data.
CIP data table read or write Your option PLC-2, PLC-3, PLC-5, or SLC (all types) CIP
10 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
(1)
No
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
If you
Then
If you have this software version and firmware
Then you can cache
12.x or later
Up to 32 connections.
If the MSG instructions are to
And they are
Then
buffer.
EXAMPLE
Chapter 1 Controller messages
DH+ Yes
CIP generic Your option
(2)
Block-transfer read or write Yes
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.
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.
The controller has the following limits on the number of connections that you can cache.
revision
11.x or earlier Block transfer messages for up to 16 connections.
• Other types of messages for up to 16 connections.
If several messages go to the same device, the messages may be able to share a connection.
Different devices Each MSG instruction uses 1 connection. The same device, cached, and not a large
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.
The same device, cached, and a large connection Enabled simultaneously (same scan) Each MSG instruction uses 1 connection and 1 cached
Not enabled simultaneously All MSG instructions use 1 connection and 1 cached
buffer. They share the connection and the buffer.
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, 1756-EN2T) 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.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 11
Chapter 1 Controller messages
Term
Definition
Executes a MSG instruction that does not use a connection.
If all unconnected buffers are in use when an instruction leaves the message queue, an error occurs and data does not transfer.
Guideline
Details
The tag cannot be part of an array or a user-defined data type.
MSG tag as either a controller scope or a Program Local scope tag.
If your message is to a device that uses 16-bit integers,
Logix 5000 controllers execute more efficiently and use less memory when working with 32-bit
Unconnected buffers
Guidelines
To establish a connection or process unconnected messages, the controller uses an unconnected buffer.
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.
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 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.
As you plan and program your MSG instructions, follow these guidelines.
For each MSG instruction, create a control tag. Data type = MESSAGE
• Scope = controller
Keep the source and destination data at the controller scope.
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.
Cache the connection for those MSG instructions that execute most frequently, up 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.
A MSG instruction can access only tags that are in the Controller Tags folder (controller scope). Tip: On CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, and GuardLogix 5570 controllers, enter an MSG tag only as a controller scope tag. In versions 31 and later of the Logix Designer application, on CompactLogix 5380, CompactLogix 5480, ControlLogix 5580, Compact GuardLogix 5380, and GuardLogix 5580 controllers, enter an
integers (DINTs). See Convert Between INTs and DINTs on page 15.
Execution time is optimized when the controller does not open a connection each time the message executes.
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.
12 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
Keep the number of unconnected and uncached MSGs less
On this tab
For this item
Type or choose
Class
304
Instance
1
In this element
Enter
source_array
[2]
17
Communication
Path
1,
slot_number_of_controller
On this tab
For this item
Type or select
Get or set the number of
than the number of unconnected buffers.
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 "
Buffers on page 13".
Chapter 1 Controller messages
Get or Set the Number of Unconnected
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.2 KB of memory.
Get the number of unconnected buffers
Configuration Message Type CIP Generic
Service Type Custom Service Code 3
Attribute 0 Source Element
Source Length (bytes) 4 (Write 4 SINTs.) Destination Element
To determine the number of unconnected buffers that are currently available, configure a Message (MSG) instruction as follows.
source_array
source_array source_array
source_array
destination_array
destination_array[
where data type = SINT[4]
[0] 1 [1] 0
[3] 0
where data type = SINT[10] (Leave all values = 0.)
6] = current number of unconnected buffers
Set the number of unconnected buffers
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 13
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.
Configuration Message Type CIP Generic
Service Type Custom
Chapter 1 Controller messages
Class
304
Attribute
0
In this element
Enter
source_array
[2]
17
= 0.)
or for earlier Logix 5000 controllers: 1,
slot_number_of_controller
EXAMPLE
Set the number of unconnected buffers
then MSG instruction sets the number of unconnected buffers = Source_Array[4].
Service Code 4
Instance 1
Source Element
source_array
Source Length (bytes) 8 (Write 8 SINTs.) Destination Element
destination_array
Communication Path THIS
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)
source_array source_array
source_array source_array
source_array source_array source_array
where data type = SINT[8]
[0] 1 [1] 0
[3] 0 [4] Number of unconnected
buffers that you want.
[5] 0 [6] 0 [7] 0
where data type = SINT[6] (Leave all the values
14 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
Tag Name
Type
Description
UCB_Set
MESSAGE
Control tag for the MSG instruction.
buffers that you want.
Data from the
Buffer of INTs
DINTs for use in the
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
DINTs from the project
Buffer of INTs
Data for the Description
Convert between
INTs and DINTs
Source_Array SINT[8] Source values for the MSG instruction, including the number of unconnected
Chapter 1 Controller messages
In the Logix 5000 controller, use the DINT data type for integers whenever possible. Logix 5000 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
device
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.
Write 16-bit integers
DINT_Array[0]
INT_Buffer[0]
project
device
Word 1
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 15
DINT_Array[1]
DINT_Array[2]
INT_Buffer[1]
INT_Buffer[2]
Word 2
Word 3
Chapter 1 Controller messages
The MSG instruction writes the INTs from the temporary array to the device.
EXAMPLE
The FAL instruction sets DINT_Array = INT_Buffer. This converts the values to 32-bit integers (DINTs).
integers (INTs).
An FAL instruction converts the DINTs from the Logix 5000 controller to INTs.
If Msg_1.DN =1 (MSG instruction has read the data)
then reset the FAL instruction.
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).
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
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.
16 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
EXAMPLE
Message manner logic
Msg_Group.0 =1, which enables the first group of MSGs.
Introduction
Message manager logic
Chapter 2 Manage multiple messages

Chapter 2

Manage multiple messages
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.
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).
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.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 17
Chapter 2 Manage multiple messages
Msg_Group.1 = 1. This enables the next group of MSGs.
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.
Send the second group of MSGs If Msg_Group.1 changes from 0 -> 1 then
send Msg_2. send Msg_3.
18 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
Msg_Group.2 = 1. This enables the next group of MSGs.
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.
Chapter 2 Manage multiple messages
Send the next group of MSGs
If Msg_Group.1 changes from 0 -> 1 then
send Msg_2.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 19
IMPORTANT
If the message
Then the RemoteElement is the
Index for the asterisk [*].
In the Open Project dialog box, click MSG_To_multiple_Controllers.acd, and click Open.
Introduction
Configure the I/O
Chapter 3
Send a message to multiple controllers
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.
In the MESSAGE data type, the RemoteElement member stores the tag name or address of the data in the controller that receives the message.
Reads data Source element Writes data Destination element
If you use an asterisk [*] to designate the element number of the array, the value in provides the element number.
The Index
configuration
box is available only when you use an asterisk [*] in the Source Element or Destination Element. The instruction substitutes the value of
Tip: To copy the previous components from a sample project, take the following steps.
a. On the Help menu, click Quick Start. b. On the Quick Start window, in the left navigation pane, expand Controller Projects, and
click Open Sample Project.
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.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 21
Chapter 3 Send a message to multiple controllers
Message Path Browser
[0] 1756-CNB/x Local_CNB
Name of Remote Controller
Tag or Address of Data in Remote Controller
Tag in This Controller
Tag Name
Type
length
is the number of elements in the local array.
Define your source and
Create the MESSAGE_
Path: peer_controller
peer_controller
I/O Configuration
destination elements
2 [0] 1756-CNB/x chassis_b
[1] 1756-L55/x peer_controller
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.
local_array[0] local_array[1] local_array[2] local_array[3]
CONFIGURATION data type
22 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
2. Create the local_array tag, which stores the data in this controller.
local_array
data_type [length]
where:
data_type
such as DINT, REAL, or STRING.
is the data type of the data that the message sends or receives,
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.
Data Type: MESSAGE_CONFIGURATION
Description: Configuration properties for a message to another controller
Members
Name
Data Type
Style
Description
Tag Name
Type
Scope
1.Number indicates the number of controllers to send the message
Create the
Chapter 3 Send a message to multiple controllers
To store the configuration variables for the message to each controller, expand the Assets > Data Types folder, right-click User Defined, and select New Data Type to create the following user-defined data type.
Name: MESSAGE_CONFIGURATION
configuration array
Path STRING RemoteElement STRING
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.
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 23
message_config MESSAGE_CONFIGURATION[
number
(1)
]
Any
Chapter 3 Send a message to multiple controllers
Tag Name
Value
message_config
{…}
message_config[0].RemoteElement
Get the size of
2. In the message_config array, enter the path to the first controller that
3. In the message_config array, enter the tag name or address of the data
receives the message.
in the first controller to receive the message.
the local array
4. Enter the path and remote element for each additional controller.
message_config[0] {…}
message_config[0].Path
message_config[1] {…}
message_config[1].Path message_config[1].RemoteElement
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.
24 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
On this tab
If you want to
For this item
Type or select
Configuration
Read (receive) data from the other
Message Type
The read-type that corresponds to the other controllers
Destination Element
local_array[*]
Index
0
Load the message
Configure the message
properties for a controller
Chapter 3 Send a message to multiple controllers
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.
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.
controllers
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 25
The following table explains how to configure the message.
Source Element Tag or address that contains the data in the first controller Number Of Elements 1
Message Type The write-type that corresponds to other controllers
Chapter 3 Send a message to multiple controllers
Step to the next controller
Restart the sequence
Write (send) data to the other controllers
Communication Path Path to the first controller
Source Element local_array[*] Index 0
Number Of Elements 1 Destination Element Tag or address that contains the data in 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.
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.
26 Rockwell Automation Publication 1756-PM012I-EN-P - September 2020

Index

A
array
controller configuration 23
B
block transfer
guidelines 12
buffer
for unconnected messages 12, 13
C
Index
controller 9 convert between 16 and 32-bit data 15 example illustration 9 limits 10 manage multiple messages 17 processing 9 queue 10 to a single controller 9 to multiple controllers 21 unconnected buffer 12, 13
P
processing
message 9
Q
queue
message 10
cache
connection 10
communicate
message instruction 9 other controllers 9
connection
cache 10
controller
message properties 25 messages 9
D
data type
convert data 15 message configuration 22
G
guidelines
messages 12
T
tag
guidelines for messages 12 organize for message 9
L
ladder logic
manage messages 17
M
message
cache connection 10
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020 27
Technical Support Center
Find help with how-to videos, FAQs, chat, user forums, and product notification
rok.auto/support
Knowledgebase
Access Knowledgebase articles.
rok.auto/knowledgebase
Local Technical Support Phone Numbers Literature Library
Product Compatibility and Download Center
Rockwell Automation support
Use these resources to access support information.
updates.
Locate the telephone number for your country. rok.auto/phonesupport
Find installation instructions, manuals, brochures, and technical data publications. rok.auto/literature
(PCDC)
Get help determining how products interact, check features and capabilities, and find associated firmware.
rok.auto/pcdc
Documentation feedback
Your comments help us serve your documentation needs better. If you have any suggestions on how to improve our content, complete the form at rok.auto/docfeedback
.
Waste Electrical and Electronic Equipment (WEEE)
At the end of life, this equipment should be collected separately from any unsorted municipal waste.
Rockwell Automation maintains current product environmental information on its website at rok.auto/pec.
Allen-Bradley, expanding human possibility, Logix, Rockwell Automation, and Rockwell Software are trademarks of Rockwell Automation, Inc.
EtherNet/IP is a trademark of ODVA, Inc.
Trademarks not belonging to Rockwell Automation are property of their respective companies.
Rockwell Otomayson Ticaret A.Ş. Kar Plaza İş Merkezi E Blok Kat:6 34752, İçerenkÖy, İstanbul, Tel: +90 (216) 5698400 EEE YÖnetmeliğine Uy gundur
Rockwell Automation Publication 1756-PM012I-EN-P - September 2020
Supersedes Publication 1756-PM012H-EN-P - February 2018 Copyright © 2020 Rockwell A utomation Technologies, Inc. All Rights Rese rved. Printed in the U.S.A.
Loading...