Logix5000 Controllers Produced and Consumed Tags · Produce a Tag Follow these steps to create a...
Transcript of Logix5000 Controllers Produced and Consumed Tags · Produce a Tag Follow these steps to create a...
Logix5000 Controllers Produced and Consumed Tags
Catalog Numbers 1756 ControlLogix 1756 GuardLogix 1768 Compact GuardLogix 1769 CompactLogix 1789 SoftLogix PowerFlex with DriveLogix
Programming Manual
Important User InformationSolid state equipment has operational characteristics differing from those of electromechanical equipment Safety Guidelines for the Application Installation and Maintenance of Solid State Controls (publication SGI-11 available from your local Rockwell Automation sales office or online at httpwwwrockwellautomationcomliterature) describes some important differences between solid state equipment and hard-wired electromechanical devices Because of this difference and also because of the wide variety of uses for solid state equipment all persons responsible for applying this equipment must satisfy themselves that each intended application of this equipment is acceptable
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
Allen-Bradley Rockwell Automation Logix5000 RSLogix 5000 ControlLogix CompactLogix GuardLogix PowerFlex DriveLogix FlexLogix SoftLogix and TechConnect are trademarks of Rockwell Automation
Inc
Trademarks not belonging to Rockwell Automation are property of their respective companies
WARNINGIdentifies 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
IMPORTANT Identifies information that is critical for successful application and understanding of the product
ATTENTIONIdentifies 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
SHOCK HAZARDLabels may be on or inside the equipment for example a drive or motor to alert people that dangerous voltage may be present
BURN HAZARDLabels may be on or inside the equipment for example a drive or motor to alert people that surfaces may reach dangerous temperatures
Summary of Changes
Introduction The release of this document contains new information
New Information New information is marked by change bars in the side column as shown to the right
Section Change
Chapter 1 Section includes procedures for setting requested packet interval (RPI) range limitations and defaults to improve acceptance between producing and consuming tags on multicast connections Scenarios show how the RPI is negotiated between the producer and consumer
3Publication 1756-PM011C-EN-P - October 2009 3
Summary of Changes
Notes
4 Publication 1756-PM011C-EN-P - October 2009
Table of ContentsPreface Purpose of This Manual 7
Chapter 1Produce and Consume a Tag Introduction 9
Controllers and Networks that Support ProducedConsumed Tags 9Connection Requirements of a Produced or Consumed Tag 10Organize Tags for Produced or Consumed Data 11
Adjust for Bandwidth Limitations 12Produce a Tag 13Create a Consumer Tag 15
Additional Steps for a PLC-5C Controller 18RPI Limitations and Negotiated Default 20Set RPI Limits Default for Producer Tag 21
Unicast Connection Options 23Set Up the Consumer Tag 24Verify Consumed Tag Acceptance 26Produced and Consumed RPI Scenarios 28
Scenario 1 28Scenario 2 29Scenario 3 30Scenario 4 31
1769-L2x and 1769-L3x RPI Limits 32RPI IO Faults 33
Chapter 2Produce a Large Array Introduction 35
Produce a Large Array 36
Index
5Publication 1756-PM011C-EN-P - October 2009 5
Table of Contents
Notes
6 Publication 1756-PM011C-EN-P - October 2009
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Important User InformationSolid state equipment has operational characteristics differing from those of electromechanical equipment Safety Guidelines for the Application Installation and Maintenance of Solid State Controls (publication SGI-11 available from your local Rockwell Automation sales office or online at httpwwwrockwellautomationcomliterature) describes some important differences between solid state equipment and hard-wired electromechanical devices Because of this difference and also because of the wide variety of uses for solid state equipment all persons responsible for applying this equipment must satisfy themselves that each intended application of this equipment is acceptable
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
Allen-Bradley Rockwell Automation Logix5000 RSLogix 5000 ControlLogix CompactLogix GuardLogix PowerFlex DriveLogix FlexLogix SoftLogix and TechConnect are trademarks of Rockwell Automation
Inc
Trademarks not belonging to Rockwell Automation are property of their respective companies
WARNINGIdentifies 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
IMPORTANT Identifies information that is critical for successful application and understanding of the product
ATTENTIONIdentifies 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
SHOCK HAZARDLabels may be on or inside the equipment for example a drive or motor to alert people that dangerous voltage may be present
BURN HAZARDLabels may be on or inside the equipment for example a drive or motor to alert people that surfaces may reach dangerous temperatures
Summary of Changes
Introduction The release of this document contains new information
New Information New information is marked by change bars in the side column as shown to the right
Section Change
Chapter 1 Section includes procedures for setting requested packet interval (RPI) range limitations and defaults to improve acceptance between producing and consuming tags on multicast connections Scenarios show how the RPI is negotiated between the producer and consumer
3Publication 1756-PM011C-EN-P - October 2009 3
Summary of Changes
Notes
4 Publication 1756-PM011C-EN-P - October 2009
Table of ContentsPreface Purpose of This Manual 7
Chapter 1Produce and Consume a Tag Introduction 9
Controllers and Networks that Support ProducedConsumed Tags 9Connection Requirements of a Produced or Consumed Tag 10Organize Tags for Produced or Consumed Data 11
Adjust for Bandwidth Limitations 12Produce a Tag 13Create a Consumer Tag 15
Additional Steps for a PLC-5C Controller 18RPI Limitations and Negotiated Default 20Set RPI Limits Default for Producer Tag 21
Unicast Connection Options 23Set Up the Consumer Tag 24Verify Consumed Tag Acceptance 26Produced and Consumed RPI Scenarios 28
Scenario 1 28Scenario 2 29Scenario 3 30Scenario 4 31
1769-L2x and 1769-L3x RPI Limits 32RPI IO Faults 33
Chapter 2Produce a Large Array Introduction 35
Produce a Large Array 36
Index
5Publication 1756-PM011C-EN-P - October 2009 5
Table of Contents
Notes
6 Publication 1756-PM011C-EN-P - October 2009
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Summary of Changes
Introduction The release of this document contains new information
New Information New information is marked by change bars in the side column as shown to the right
Section Change
Chapter 1 Section includes procedures for setting requested packet interval (RPI) range limitations and defaults to improve acceptance between producing and consuming tags on multicast connections Scenarios show how the RPI is negotiated between the producer and consumer
3Publication 1756-PM011C-EN-P - October 2009 3
Summary of Changes
Notes
4 Publication 1756-PM011C-EN-P - October 2009
Table of ContentsPreface Purpose of This Manual 7
Chapter 1Produce and Consume a Tag Introduction 9
Controllers and Networks that Support ProducedConsumed Tags 9Connection Requirements of a Produced or Consumed Tag 10Organize Tags for Produced or Consumed Data 11
Adjust for Bandwidth Limitations 12Produce a Tag 13Create a Consumer Tag 15
Additional Steps for a PLC-5C Controller 18RPI Limitations and Negotiated Default 20Set RPI Limits Default for Producer Tag 21
Unicast Connection Options 23Set Up the Consumer Tag 24Verify Consumed Tag Acceptance 26Produced and Consumed RPI Scenarios 28
Scenario 1 28Scenario 2 29Scenario 3 30Scenario 4 31
1769-L2x and 1769-L3x RPI Limits 32RPI IO Faults 33
Chapter 2Produce a Large Array Introduction 35
Produce a Large Array 36
Index
5Publication 1756-PM011C-EN-P - October 2009 5
Table of Contents
Notes
6 Publication 1756-PM011C-EN-P - October 2009
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Summary of Changes
Notes
4 Publication 1756-PM011C-EN-P - October 2009
Table of ContentsPreface Purpose of This Manual 7
Chapter 1Produce and Consume a Tag Introduction 9
Controllers and Networks that Support ProducedConsumed Tags 9Connection Requirements of a Produced or Consumed Tag 10Organize Tags for Produced or Consumed Data 11
Adjust for Bandwidth Limitations 12Produce a Tag 13Create a Consumer Tag 15
Additional Steps for a PLC-5C Controller 18RPI Limitations and Negotiated Default 20Set RPI Limits Default for Producer Tag 21
Unicast Connection Options 23Set Up the Consumer Tag 24Verify Consumed Tag Acceptance 26Produced and Consumed RPI Scenarios 28
Scenario 1 28Scenario 2 29Scenario 3 30Scenario 4 31
1769-L2x and 1769-L3x RPI Limits 32RPI IO Faults 33
Chapter 2Produce a Large Array Introduction 35
Produce a Large Array 36
Index
5Publication 1756-PM011C-EN-P - October 2009 5
Table of Contents
Notes
6 Publication 1756-PM011C-EN-P - October 2009
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Table of ContentsPreface Purpose of This Manual 7
Chapter 1Produce and Consume a Tag Introduction 9
Controllers and Networks that Support ProducedConsumed Tags 9Connection Requirements of a Produced or Consumed Tag 10Organize Tags for Produced or Consumed Data 11
Adjust for Bandwidth Limitations 12Produce a Tag 13Create a Consumer Tag 15
Additional Steps for a PLC-5C Controller 18RPI Limitations and Negotiated Default 20Set RPI Limits Default for Producer Tag 21
Unicast Connection Options 23Set Up the Consumer Tag 24Verify Consumed Tag Acceptance 26Produced and Consumed RPI Scenarios 28
Scenario 1 28Scenario 2 29Scenario 3 30Scenario 4 31
1769-L2x and 1769-L3x RPI Limits 32RPI IO Faults 33
Chapter 2Produce a Large Array Introduction 35
Produce a Large Array 36
Index
5Publication 1756-PM011C-EN-P - October 2009 5
Table of Contents
Notes
6 Publication 1756-PM011C-EN-P - October 2009
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Table of Contents
Notes
6 Publication 1756-PM011C-EN-P - October 2009
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Preface
Purpose of This Manual This manual shows how to configure and use produced and consumed tags 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 see the Logix5000 Controllers Common Procedures Programming Manual publication 1756-PM001
The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system such as
bull CompactLogix controllers
bull ControlLogix controllers
bull DriveLogix controllers
bull FlexLogix controllers
bull SoftLogix5800 controllers
7Publication 1756-PM011C-EN-P - October 2009 7
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Preface
Notes
8 Publication 1756-PM011C-EN-P - October 2009
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1
Produce and Consume a Tag
Introduction A Logix5000 controller lets you produce (broadcast) and consume (receive)
system-shared tags
Controllers and Networks that Support ProducedConsumed Tags
These combinations support produced and consumed tags
Controller_2
Controller_3
Controller_4
Consumed Tag
Consumed Tag
Consumed Tag
Controller_1
Produced Tag
Term Definition
Produced tag A tag that a controller makes available for use by other controllers Multiple controllers can simultaneously consume (receive) the data A produced tag sends its data to one or more consumed tags (consumers) without using logic
Consumed tag A tag that receives the data of a produced tag The data type of the consumed tag must match the data type (including any array dimensions) of the produced tag The RPI of the consumed tag determines the period at which the data updates
This controller Can produce and consume tags over this network
Backplane ControlNet EtherNetIP
SLC 500 X
PLC-5 X
1769 CompactLogix X X
1768 CompactLogix X
ControlLogix X X X
DriveLogix X X
FlexLogix X X
SoftLogix5800 X X X
9Publication 1756-PM011C-EN-P - October 2009 9
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
For two controllers to share produced or consumed tags both controllers must be attached to the same network (such as a ControlNet or EthernetIP network) You cannot bridge produced and consumed tags over two networks
Connection Requirements of a Produced or Consumed Tag
Produced and consumed tags each require connections As you increase the number of controllers that can consume a produced tag you also reduce the number of connections the controller has available for other operations like communication and IO
Each produced or consumed tag uses these connections
IMPORTANT If a consumed-tag connection fails all of the other tags being consumed from that remote controller stop receiving new data
This Type of Tag Uses This Many Connections
Produced tag number_of_consumers + 1
Consumed tag 1
EXAMPLE Connection Requirements of a Produced or Consumed Tag
bull A FlexLogix controller producing a tag for 5 controllers (consumers) uses 6 connectionsbull A ControlLogix controller producing 4 tags for 1 controller uses 8 connections
ndash each tag uses 2 connections (1 consumer + 1 = 2)ndash 2 connections per tag x 4 tags = 8 connections
bull Consuming 4 tags from a controller uses 4 connections (1 connection per tag x 4 tags = 4 connections)
10 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Organize Tags for Produced or Consumed Data
As you organize your tags for produced or consumed data (shared data) follow these guidelines
Guideline Details
Create the tags at the controller scope
You can share only controller-scoped tags
Use one of these data types
bull DINT
bull REAL
bull Array of DINTs or REALs
bull User-defined
bull To share other data types create a user-defined data type that contains the required data
bull Use the same data type for the produced tag and corresponding consumed tag or tags
To share tags with a PLC-5C controller use a user-defined data type
To This Then
Produce Integers Create a user-defined data type that contains an array of INTs with an even number of elements such as INT[2] (When you produce INTs you must produce two or more)
Only one REAL value
Use the REAL data type
More than one REAL value
Create a user-defined data type that contains an array of REALs
Consume Integers Create a user-defined data type that contains these members
Data Type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
Limit the size of the tag to 500 bytes bull If you must transfer more than 500 bytes create logic to transfer the data in packets
bull If you produce the tag over a ControlNet network the tag may need to be less than 500 bytes See Adjust for Bandwidth Limitations on page 12
Use the highest permissible RPI for your application
If the controller consumes the tag over a ControlNet network use a binary multiple of the ControlNet network update time (NUT) For example if the NUT is 5 ms use an RPI of 5 10 20 40 ms and so forth
Combine data that goes to the same controller
If you are producing several tags for the same controller group the data
bull into one or more user-defined data types (This uses less connections than producing each tag separately)
bull according to similar update intervals (To conserve network bandwidth use a greater RPI for less critical data)
For example you could create one tag for data that is critical and another tag for data that is not as critical
Publication 1756-PM011C-EN-P - October 2009 11
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Adjust for Bandwidth Limitations
When you share a tag over a ControlNet network the tag must fit within the bandwidth of the network
bull As the number of connections over a ControlNet network increases several connections including produced or consumed tags may need to share a network update time (NUT)
bull Since a ControlNet network can pass only 500 bytes in one NUT the data of each connection must be less then 500 bytes to fit into the NUT
Depending on the size of your system you may not have enough bandwidth on your ControlNet network for a tag of 500 bytes If a tag is too large for your ControlNet network make one or more of these adjustments
Adjustment Description
Reduce your network update time (NUT) At a faster NUT less connections have to share an update slot
Increase the requested packet interval (RPI) of your connections
At higher RPIs connections can take turns sending data during an update slot
For a ControlNet bridge module (CNB) in a remote chassis select the most efficient communication format for that chassis
Are most of the modules in the chassis non-diagnostic digital IO modules
Then select this communication format for the remote CNB module
Yes Rack Optimization
No None
The Rack Optimization format uses an additional 8 bytes for each slot in its chassis Analog modules or modules that are sending or getting diagnostic fuse timestamp or schedule data require direct connections and cannot take advantage of the rack optimized form Selecting lsquoNonersquo frees up the 8 bytes per slot for other uses such as produced or consumed tags
Separate the tag into two or more smaller tags
1 Group the data according to similar update rates For example you could create one tag for data that is critical and another tag for data that is not as critical
2 Assign a different RPI to each tag
Create logic to transfer the data in smaller sections (packets)
See Produce a Large Array on page 35
12 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Produce a Tag Follow these steps to create a producer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
3 In the Controller Tags window right-click the tag that you want to be a producer and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 In the Name box type the name of the produced tag
5 From the Type pull-down menu choose Produced
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller is the producer
Publication 1756-PM011C-EN-P - October 2009 13
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
The Connection button becomes active when either Produced or Consumed is chosen from the pull-down menu
6 Click Connection (at the right-hand side of the Type pull-down menu)
The Produced Tag Connection dialog box appears to let you enter the number of controllers that will consume (receive) the tag
7 In the Max Consumers box enter a value
8 Click OK
IMPORTANT The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using RSLogix 5000 programming software version 18 This button accesses the Advanced Options dialog box to set the RPI range limitation negotiated default or unicast connection See page 20 for detailsand procedures
14 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Create a Consumer Tag Follow these steps to create a consumer tag
1 Open the RSLogix 5000 programming software and select a controller
2 In the Controller Organizer IO Configuration folder add the controller that is producing the data (the other Logix5000 controller or PLC-5C controller)
3 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
You can produce only controller-scoped tags
4 In the Controller Tags window right-click the tag that will consume the data and then choose Edit (name of tag) Properties
The Tag Properties dialog box appears
IMPORTANT A controller can have both producing and consuming tags but a producer cannot consume its own data The local controller is the consumer and the remote controller isthe producer
Publication 1756-PM011C-EN-P - October 2009 15
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
5 In the Name box type the name of the consumed tag
6 From the Type pull-down menu choose Consumed
The Connection button becomes active when either Consumed or Produced is chosen from the pull-down menu
7 Specify the data type
8 Click Connection to define the consumed tag
9 Do the following on the Consumed Tag Connection dialog box
bull Select the controller that produces the data
bull Type the name or instance number of the remote produced data
If the producing controller is
Then the data type should be
Logix5000 controller Same data type as the produced tag
PLC-5C controller User-defined data type with these members
Data type Description
DINT Status
INT[x] where x is the output size of the data from the PLC-5C controller (If you are consuming only one INT omit x)
Data produced by a PLC-5C controller
If the producing controller is Then type or select
Logix5000 controller Tag name of the produced tag
PLC-5C controller Message number from the ControlNet configuration of the PLC-5C controller
16 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
bull Type or select the requested packet interval (RPI) for the connection
10 Click OK
11 If you consume the tag over a ControlNet network use RSNetWorx for ControlNet software to schedule the network
IMPORTANT Consuming controllers have additional setup to allow its consuming tags to use an RPI provided by a producing controller See page 24 for details
Publication 1756-PM011C-EN-P - October 2009 17
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Additional Steps for a PLC-5C Controller
If you are sharing data with a PLC-5C controller do the following
Action Details
In the ControlNet configuration of the PLC-5C controller schedule a message
If the PLC-5C controller
This Then in RSNetWorx software
Produces Integers In the ControlNet configuration of the PLC-5C controller insert a Send Scheduled Message
Consumes Integers Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter the number of integers in the produced tag
REALs Do these steps in the ControlNet configuration of the PLC-5C controller
A Insert a Receive Scheduled Message
B In the Message size enter two times the number of REALs in the produced tag For example if the produced tag contains10 REALs enter 20 for the Message size
If the PLC-5C controller consumes REALs reconstruct the values
When you produce REALs (32-bit floating-point values) for a PLC-5C controller the PLC-5C controller stores the data in consecutive 16-bit integers
bull The first integer contains the upper (leftmost) bits of the value
bull The second integer contains the lower (rightmost) bits of the value
bull This pattern continues for each floating-point value
18 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
This example shows how to reconstruct a REAL (floating-point value) in the
PLC-5C controller
EXAMPLE Reconstruct a floating point value
The two MOV instructions reverse the order of the integers as the integers move to a new location Because the destination of the COP instruction is a floating-point address it takes two consecutive integers for a total of 32 bits and converts them to a single floating-point value
42354
Publication 1756-PM011C-EN-P - October 2009 19
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
RPI Limitations andNegotiated Default
Controllers using RSLogix 5000 software version 18 and later can be programmed to enhance the requested packet interval (RPI) acceptance between producing and consuming tags within specified limitations for multicast connections A producing controller verifies that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and may provide an RPI (default) to the consuming controller
This optional default RPI applies only if the consuming controller is set up to allow its consumed tags to use an RPI provided by the producer You can choose to not use the default value However you will have to manually change a rejected RPI to make the value within the limitation settings for theproduced tag
Controllers that are using RSLogix 5000 software version 17 or earlier will continue to use current functionality that is an incoming RPI of a consuming controller will be accepted by the producer No default RPI is offered by the producing controller The packet intervals of existing connections from other consumers could be sped up on multicast connections
The RPI limitations (the range set on the produced tag) and the default process applies only to multicast connections on unscheduled networks This feature is unavailable for controllers on the ControlNet network or unicast connections Scheduled bandwidths on the ControlNet network transmit critical data at pre-determined intervals of time
IMPORTANT 1769-L2x and 1769-L3x controllers have additional RPI information See page 32 for details
IMPORTANT RPI limits and default values are not supported for safety tags and AXIS tags AXIS produced tags are produced at a rate equal to the Coarse Update Period of the associated motion group Safety produced tags are produced at a rate specified by the Safety Task Period
20 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Set RPI Limits Defaultfor Producer Tag
Follow these steps to establish RPI limitations (range) and default values if you are setting up a producing tag for multicast connections
See page 23 if you are setting up a unicast connection
1 On the Produced Tag Connections dialog box click Advanced
Refer to Produce a Tag on page 13 to see an example of the dialog box
The Advanced Options dialog box appears when you click Advanced There are two connection optionsmdashmulticast and unicastmdashon the dialog box with different functionality
IMPORTANT A unicast connection between a consumer and producer controller is the default on the Advanced Options dialog box Multicast connections can be changed to a produced tag whether or not the box is checked The checkbox dictates only whether this produced tag can accept a unicast connection The consuming controller determines if the connection is unicast
Publication 1756-PM011C-EN-P - October 2009 21
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
2 Complete the Advanced Options dialog box
3 Click OK
The Produced Tag Connections dialog box reappears
4 Click OK
Multicast Connection Options
Minimum RPI Use the default of 02 ms
Maximum RPI Use the default of 5368709 ms
Provide Default RPI to Consumerfor Out-of-Range Requests
Check the box to allow a producing tag to provide an RPI to a consuming tag whenever a consuming tag has an RPI that is outside the range of the producing tag The consumer then connects with the RPI provided by the producer if set up for this functionality
If the box is blank the producing controller will not return to the consumer an RPI value that is within the producerrsquos RPI range
Default RPI Type a value that the producer will provide to the consumer when the consumerrsquos RPI falls outside the range of the producerrsquos RPI settings The above box must be checked for the producer to provide the default
Unicast Connection Options See page 23
IMPORTANT The RPI Limits configuration which is disabled when online must be within
bull minimum RPI 0196 ms
bull maximum RPI 536870911 ms
bull default RPI configurable within the minimummaximum range
bull 1769-L2x and 1769-L3x controllers see page 32 for additional instructions
The RPI limits apply only to multicast connections on unscheduled networks This functionality is not supported on the ControlNet network
22 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Unicast Connection Options
Unicast connections are point-to-point connections between a producing controller and consuming controller no multiple connections You do not have to enter a minimum or maximum RPI range or default value for this type of connection
The Allow Unicast Consumer Connections box at the bottom of the Advanced Options dialog box defaults with a check mark Click OK to complete setting up the producing tag
Publication 1756-PM011C-EN-P - October 2009 23
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Set Up the Consumer Tag The Consuming controller must be set up to allow its consumed tags to accept an RPI provided by the producer Follow these steps to access the Controller Properties dialog box
1 In the Controller Organizer right-click a controller that has been set up with a consuming tag and choose Properties
The Controller Properties dialog box appears with the General tab as the default
2 Click the Advanced tab
3 Check Allow Consumed Tags to Use RPI Provided by Producer
24 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
4 Click OK
IMPORTANT The checkbox that activates rsquoRPI Provided by Producerrsquo is disabled online This box must be checked for the RPI negotiation to succeed If the box is not checked the consuming controller will not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producerrsquos configured RPI range As a result an out-of-range RPI request will result in a failed connection
Publication 1756-PM011C-EN-P - October 2009 25
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Verify Consumed Tag Acceptance
When a consuming controller accepts a default RPI by a producing controller you can verify the acceptance and the RPI value on the Consumed Tag Connection dialog box You must be online to complete the following procedures
1 Open the RSLogix 5000 programming software and select a controller that is set up with a consuming tag
2 In the Controller Organizer right-click the Controller Tags folder and choose Edit Tags
3 In the Controller Tags window right-click a consuming tag and choose Edit (name of tag) Properties
The Tag Properties dialog box appears
4 Click Connection (at the right-hand side of the Type pull-down menu)
26 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
The Consumed Tag Connection dialog box appears with a flag to the right of the RPI field to indicate the consuming controller has accepted an RPI provider by the producer The time interval of the RPI also is indicated
The RPI that had been requested by the consuming controller is dimmed This lets you view the time interval the consuming controller had requested and the RPI provided by the producing controller
5 Click Cancel to exit
Publication 1756-PM011C-EN-P - October 2009 27
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Produced and Consumed RPI Scenarios
The following scenarios explain how producing and consuming tags exchange RPI for controllers by using RSLogix programming software version 18 and earlier
Scenario 1
The RPI is within range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The consuming controller is brought online with an RPI configured at 3 ms The producer accepts the RPI requested by the consuming tag All controllers on the multicast connection will be increased to 3 ms for the API which is the interval the data is actually being produced
RSLogix 5000 software version 18 The consuming controller is brought online with an RPI configured at 3 ms The producing controller verifies the requested RPI by the consumer is within the RPI limits set up for the producer Since the request is within the range the producing controller accepts the RPI of the consumer
Actual Packet Interval (API) = 3 ms
RPI = 3 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
TIP If you use all the default settings of version 18 you have the same behavior as version 17 and earlier
28 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Scenario 2
The RPI is outside the range of the producing controllerrsquos RPI LimitsThere is no default RPI that is set up for the producing controller
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0111 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer and there is no default set up a 0111 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is not set up to provide a default RPI so a 0111 error message is reported that the connection failed You must re-enter an RPI that is within the range configured for the producer because there is no RPI default negotiation with the consumer
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI - ms
Error 0111
TIP See RPI IO Faults on page 33 for an explanation of the error messages
Publication 1756-PM011C-EN-P - October 2009 29
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Scenario 3
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller But the networkpath contains a bridge that blocks the negotiated RPI to prevent aninterruption to other controllers on the network
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer but the consumer controller is not set up to accept a default RPI from the producer The negotiated RPI is disabled to prevent an interruption to the multicast connection A 0112 error message is reported and you must re-enter an RPI within the range of the producerrsquos limits
RPI = 1 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
Negotiation Disabled
TIP See RPI IO Faults on page 33 for an explanation of the error messages
30 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
Scenario 4
The RPI is outside the range of the producing controllerrsquos RPI LimitsA default RPI is set up for the producing controller The consumer isset up to accept the RPI provided by the producer
RSLogix 5000 software version 17 and earlier The RPI requested by the consumed tag is not within the range of the producer The connection is rejected and a 0112 error is reported that the connection failed You must re-enter an RPI that is within the range configured on the produced tag If a version 17 consumer is trying to connect with a version 18 producer and the RPI is outside the range of the producer a 0112 error reports the connection failed
RSLogix 5000 software version 18 The RPI requested by the consumed tag is not within the RPI limitation range of the producer The producer is configured to provide an RPI default The producer sends the default RPI to the consumer The consumer is set up to accept the RPI provided by the producer The connection is successful and the multicast connection accepts the new RPI of 5 ms
RPI = 1 ms= 5 ms
Produced Tag
Minimum RPI 2 msMaximum RPI 8 msDefault RPI 5 ms
Error 0112 Default RPI = 5 ms
API = 5 ms
Negotiation Enabled
Publication 1756-PM011C-EN-P - October 2009 31
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
1769-L2x and 1769-L3xRPI Limits
All controllers with the exception of the CompactLogix 1769-L2x and 1769-L3x controllers produce data in packet intervals ranging from 0196hellip536870911 ms The 1769-L2x and 1769-L3x controllers produce only in packet intervals of 2 4 8 16 32 64 128 256 512 or 1024 ms
You are not confined to entering these exact values when configuring an RPI limitation range and default RPI for the 1769-L2x and 1769-L3x controllers However if an unsupported packet interval is entered then the RSLogix 5000 programming software may override the unsupported packet interval with a supported packet interval When this occurs the new lsquoeffectiversquo value is displayed separately next to the unsupported value that was entered
Similar to other controllers the 1769-L2x and 1769-L3x controllers will verify that the RPI of incoming connections are within the produced tag settings If the consuming tagrsquos RPI falls outside the configured range a producing controller will reject the incoming RPI and then provide an RPI (default) to the consuming controller
For the 1769-L2x and 1769-L3x controllers the Effective Minimum RPI when present is used to determine the fastest packet interval allowed by the tag When the Effective Default RPI is present it is the largest packet interval (slowest rate) at which negotiated connections will be produced for the tag
The effective RPI limit values are presented with a flag on the Advanced Options dialog box to indicate that RPI limits are set to values other than what you entered
IMPORTANT The producing and consuming controllers must be set up to allow the consumed tags to use an RPI provided by the producer
See RPI Limitations and Negotiated Default and Set Up the Consumer Tag for procedures to set up the producer and consumer tags to accept a negotiated default RPI
32 Publication 1756-PM011C-EN-P - October 2009
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce and Consume a Tag Chapter 1
RPI IO Faults The table provides a description of error messages for situations where an RPI is not accepted
Scenario Description Software Version
IO Fault Message
RPI of consumed tag is not within the range of the producer Producer does not support RPI negotiation or is not configured to provide a default RPI to the consumer
Any (Code 0111) Requested Packet Interval (RPI) out of range
RPI of consumed tag is not within the range of the producer Producer is returning default RPI Consumer does not support negotiation or is not configured to accept RPI from producer
18 (Code 0112) Requested Packet Interval (RPI) out of range
17 and earlier (Code 0112) Unknown Error
RPI of consumer is out of range but producer provides a default RPI and consumer can accept default RPI Network path contains bridge that does not support extended error information
18 (Code 0112) Requested Packet Interval (RPI) out of range Producer provided RPI blocked by the network path
RPI of consumer is out of range but producer provides a default RPI and consumer can accept RPI provided by producer Network path contains scheduled NUT
18 (Code 0112) Requested Packet Interval (RPI) out of range Cannot use producer provided RPI over a path containing a scheduled network
Publication 1756-PM011C-EN-P - October 2009 33
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 1 Produce and Consume a Tag
Notes
34 Publication 1756-PM011C-EN-P - October 2009
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter 2
Produce a Large Array
Introduction The Logix5000 controller can send as many as 500 bytes of data over a single scheduled connection This corresponds to 125 DINT or REAL elements of an array To transfer an array of more than 125 DINTs or REALs use a producedconsumed tag of 125 elements to create a packet of data You can then use the packet to send the array piecemeal to another controller
When you send a large array of data in smaller packets you must be sure that the transmission of a packet is complete before the data is moved into the destination array
bull Produced data over the ControlLogix backplane is sent in 50 byte segments
bull Data transmission occurs asynchronous to a program scan
The logic that this section includes uses an acknowledge word to make sure that each packet contains new data before the data moves to the destination array The logic also uses an offset value to indicate the starting element of the packet within the array
Because of the offset and acknowledge elements each packet carries 123 elements of data from the array as depicted below
Array
0Packet
OffsetAcknowledge
ArrayPacket
OffsetAcknowledge
Producer Consumer
ProducerConsumer Data Elements
35Publication 1756-PM011C-EN-P - October 2009 35
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter Summary of Changes Produce a Large Array
In addition the array must contain an extra 122 elements In other words it must be 122 elements greater than the greatest number of elements that you want to transfer
bull These elements serve as a buffer
bull Because each packet contains the same number of elements the buffer prevents the controller from copying beyond the boundaries of the array
bull Without the buffer this would occur if the last packet contained fewer than 123 elements of actual data
Produce a Large Array Follow these steps to produce a large array
1 In the Controller Tags folder of the controller project that produces the
array create these tags
2 Convert array_ack to a consumed tag
3 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
4 In the array_size tag enter the number of elements of real data
The value of x from step 3 minus the 122 elements of buffer
5 Create or open a routine for the logic that will create packets of data
P Tag Name Type
array_ack DINT[2]
X array_packet DINT[125]
For Specify
Controller Name of the controller that is receiving the packet
Remote Tag Name array_ack
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
array_size DINT
array_transfer_time DINT
array_transfer_time_max DINT
array_transfer_timer TIMER
36 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce a Large Array Chapter Summary of Changes
6 Enter this logic
When the offset value in array_ack[0] is not equal to the current offset value but array_ack[1] equals -999 the consumer has begun to receive a new packet so the rung moves -999 into the last element of the packet The consumer waits until it receives the value -999 before it copies the packet to the array This guarantees that the consumer has new data
When the offset value in array_ack[0] is equal to the current offset value the consumer has copied the packet to the array so the rung checks for more data to transfer If the offset value plus 123 is less than the size of the array there is more data to transfer so the rung increases the offset by 123 Otherwise there is no more data to transfer so the rung resets the offset value logs the transfer time and resets the timer In either case the rung uses the new offset value to create a new packet of data appends the new offset value to the packet and clears the acknowledge element of the packet (packet[124])
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EN
DN
Timer On DelayTimer array_transfer_timerPreset 10000000Accum 0
TON
Not EqualSource A array_ack[0]
0Source B array_packet[123]
0
NEQEqualSource A array_ack[1]
0Source B -999
EQUMoveSource -999
Dest array_packet[124]0
MOV
EqualSource A array_ack[0]
0Source B array_packet[123]
0
EQUCompareExpression (array_ack[0] + 123) lt array_size
CMPAddSource A array_packet[123]
0Source B 123
Dest array_offset0
ADD
CompareExpression (array_ack[0] + 123) gt= array_size
CMPClearDest array_offset
0
CLR
MoveSource array_transfer_timerACC
0Dest array_transfer_time
0
MOV
RESarray_transfer_timer
Copy FileSource array[array_offset]Dest array_packet[0]Length 123
COPMoveSource array_offset
0Dest array_packet[123]
0
MOVClearDest array_packet[124]
0
CLR
44947
Publication 1756-PM011C-EN-P - October 2009 37
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter Summary of Changes Produce a Large Array
7 In the Controller Tags folder of the controller project that consumes the
array create these tags
8 Convert array_packet to a consumed tag
9 In either the Controller Tags folder or the tags folder of the program that will contain the logic for the transfer create these tags
10 Create or open a routine for the logic that will move the data from the packets to the destination array
11 Enter this logic
If the current transfer time is greater than the maximum transfer time update the maximum transfer time This maintains a record of the longest time to transfer data
Greater Than (AgtB)Source A array_transfer_time
0Source B array_transfer_time_max
0
GRTMoveSource array_transfer_time
0Dest array_transfer_time_max
0
MOV
P Tag Name Type
X array_ack DINT[2]
array_packet DINT[125]
For Specify
Controller Name of the controller that is sending the packet
Remote tag name array_packet
Both controllers use the same name for this data
Tag Name Type
array DINT[x] where x equals the number of elements to transfer plus 122 elements
array_offset DINT
38 Publication 1756-PM011C-EN-P - October 2009
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Produce a Large Array Chapter Summary of Changes
When the offset value in array_packet[123] is different than the offset value in array_ack[0] the controller has begun to receive a new packet of data so the rung checks for the value of -999 in the last element of the packet
If the last element of the packet equals -999 the controller has received an entire packet of new data and begins the copy operation
bull The offset value moves from the packet to array_offsetbull The COP instructions copy the data from the packet to the destination array starting at the offset valuebull The offset value moves to array_ack[0] which signals that the copy is completebull Array_ack[1] resets to zero and waits to signal the arrival of a new packet
If the last element of the packet is not equal to -999 the transfer of the packet to the controller may not be complete so -999 moves to array_ack[1] This signals the producer to return the value of -999 in the last element of the packet to verify the transmission of the packet
Not EqualSource A array_packet[123]
0Source B array_ack[0]
0
NEQEqualSource A array_packet[124]
0Source B -999
EQUMoveSource array_packet[123]
0Dest array_offset
0
MOV
Copy FileSource array_packet[0]Dest array[array_offset]Length 123
COP
MoveSource array_packet[123]
0Dest array_ack[0]
0
MOV
ClearDest array_ack[1]
0
CLR
Not EqualSource A array_packet[124]
0Source B -999
NEQMoveSource -999
Dest array_ack[1]0
MOV
44948
Publication 1756-PM011C-EN-P - October 2009 39
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Chapter Summary of Changes Produce a Large Array
Transferring a large array as smaller packets improves system performance over other methods of transferring the data
bull Fewer connections are used than if you broke the data into multiple arrays and sent each as a produced tag For example an array with 5000 elements would take 40 connections (5000125=40) by using individual arrays
bull Faster transmission times are achieved than if you used a message instruction to send the entire array
ndash Messages are unscheduled and are executed only during the lsquosystem overheadrsquo portion of the Logix5550 execution Therefore messages can take a fairly long time to complete the data transfer
ndash You can improve the transfer time by increasing the system overhead time slice but this diminishes the performance of the continuous task
40 Publication 1756-PM011C-EN-P - October 2009
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Index
Aadjust
bandwidth limitations 12array
defining data packets 35
Bbandwidth
adjust limitations 12
Ccommunicate
other controllers 9connection
produced or consumed tag 10consumed tag
connection requirements 10create 15organize 11
consumercreating tag 15RPI scenarios 28using producer RPI 24verifying RPI 26
ControlNetbandwidth limits 12
createconsumed tag 15produced tag 13
Ddefault
RPI 20
Eerror messages
RPI 33
IIO faults 33
LL2x controller
RPI limits 32L3x controller
RPI limits 32limitations
bandwidth 12RPI 20
PPLC-5C
share data 18produced tag
connection requirements 10create 13organize 11
producercreating tag 13RPI scenarios 28
RRPI
IO faults 33limitations setting default 20
Sscenarios
RPI acceptance 28
Ttag
array 36consume 15consumer RPI verification 26consumer using producer RPI 24creating consumer 15creating producer 13organize produced and consumed tags 11produce 13
Publication 1756-PM011C-EN-P - October 2009 41
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Index
Notes
42 Publication 1756-PM011C-EN-P - October 2009
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Publication 1756-PM011C-EN-P - October 2009 42Supersedes Publication 1756-PM011B-EN-P - July 2008 Copyright copy 2009 Rockwell Automation Inc All rights reserved Printed in the USA
Rockwell Automation Support
Rockwell Automation provides technical information on the Web to assist you in using its products At
httpwwwrockwellautomationcomsupport you can find technical manuals a knowledge base of FAQs technical and
application notes sample code and links to software service packs and a MySupport feature that you can customize to make the
best use of these tools
For an additional level of technical phone support for installation configuration and troubleshooting we offer TechConnect
support programs For more information contact your local distributor or Rockwell Automation representative or visit
httpwwwrockwellautomationcomsupport
Installation Assistance
If you experience an anomoly 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
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
Documentation Feedback
Your comments will help us serve your documentation needs better If you have any suggestions on how to improve this
document complete this form publication RA-DU002 available at httpwwwrockwellautomationcomliterature
United States or Canada 14406463434
Outside United States or Canada
Use the Worldwide Locator at httpwwwrockwellautomationcomsupportamericasphone_enhtml or contact your local Rockwell Automation representative
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
- 1756-PM011C-EN-P Logix5000 Controllers Produced and Consumed Tags Programming Manual
- Summary of Changes
-
- Introduction
- New Information
-
- Table of Contents
- Preface
-
- Purpose of This Manual
-
- 1- Produce and Consume a Tag
- 2- Produce a Large Array
- Index
-
- A
- B
- C
- D
- E
- I
- L
- P
- R
- S
- T
-
- Back Cover
-
Introduction_Catagory Types
Print Spec Sheet
JIT Printing Specifications | RA-QR005D-EN-P - 4032009 | ||||||||||||||||||||||||||||||||
Printing Specification | YOUR DATA HERE | Instructions | NO | ||||||||||||||||||||||||||||||
(required) Category | D6 | Select Print Category ABC or D from category list on Introduction_Catagory Types tab | 11rdquo x 17rdquo | LOOSE -Loose Leaf | YES | Pre-sale Marketing | TOP | ||||||||||||||||||||||||||
(required) Finished Trim Size Width | 85rdquo x 11rdquo | 85rdquo x 11rdquo | PERFECT - Perfect Bound | A1 | LEFT | ||||||||||||||||||||||||||||
(required) Publication Number | 1756-PM011C-EN-P | Sample 2030-SP001B-EN-P | 3rdquo x 5rdquo | SADDLE - Saddle Stitch | A2 | RIGHT | CORNER | ||||||||||||||||||||||||||
Use Legacy Number | NO | YES or NO | 18rdquo x 24rdquo Poster | PLASTCOIL - Plastic Coil (Coil Bound) | A4 | BOTTOM | SIDE | ||||||||||||||||||||||||||
Legacy Number if applicable | Sample Legacy Number 0160-533 | 24rdquo x 36rdquo Poster | STAPLED1 -1 position | A3 | |||||||||||||||||||||||||||||
Publication Title | Logix5000 Controllers Produced and Consumed Tags Programming Manual | Sample ElectroGuard Selling Brief | 36rdquo x 24rdquo Poster | STAPLED1B - bottom 1 position | A5 | ||||||||||||||||||||||||||||
(required) Business Group | Marketing Commercial | As entered in DocMan | 4rdquo x 6rdquo | STAPLED2 - 2 positions | A6 | ||||||||||||||||||||||||||||
(required) Cost Center | 19021 | As entered in DocMan - enter number only no description Example - 19021 | CMKMKE CM Integrated Arch - 19021CMKMKE Market Access Program - 19105 | 475rdquo x 7rdquo (slightly smaller half-size) | THERMAL - Thermal bound (Tape bound) | A7 | |||||||||||||||||||||||||||
BindingStitching | SADDLE - Saddle Stitch | Review key on right | Saddle-Stitch Items All page quantities must be divisible by 420 sheets max on 20 (text and cover) 20 sheets = 80-page pub16 sheets max on 20 (text) and 90 (cover) 16 sheets = 64-page pubPerfect Bound Items475 sheets max on 20 no cover 475 sheets = 950-page pub470 sheets max wcover 90 index unless indicated otherwise) 470 sheets = 940-page pubCoil Bound Items400 sheets max of 20 (if adding cover deduct equivalent number of pages to equal cover thickness) (90 index unless indicated otherwise) 400 sheets = 800-page pubTape Bound Items125 sheets max on 20 no cover 125 sheets = 250-page pub120 sheets max wcover (90 index unless indicated otherwise) 120 sheets = 240-page pubDouble Wire Bound Items250 sheets max on 20 (if adding cover deduct equivalent number of pages to equal cover thickness) (90 index unless indicated otherwise) 250 sheets = 500-page pub | 475rdquo x 775rdquo | THERMALO - Thermal Bound (Tape bound - offline) | A8 | |||||||||||||||||||||||||||
(required) Page Count of Publication | 44 | Total page count including cover | 55rdquo x 85rdquo (half-size) | Wire O - Double Wire Bound (offline) | A9 | ||||||||||||||||||||||||||||
Paper Stock Color | White is assumed For color options contact your vendor | 6rdquo x 4rdquo | Post Sale Technical Communication | ||||||||||||||||||||||||||||||
Number of Tabs Needed | 5 tab in stock at RR Donnelley | 7385rdquo x 9rdquo (RSI Std) | B1 | ||||||||||||||||||||||||||||||
Stitching Location | SIDE | Blank Corner or Side | 825rdquo x 10875rdquo | B2 | |||||||||||||||||||||||||||||
Drill Hole YESNO | YES | All drilled publications use the 5-hole standard 516 inch-size hole and a minimum of frac14 inch from the inner page border | 825rdquo x 11rdquo (RA product profile std) | B3 | |||||||||||||||||||||||||||||
Glue Location on Pad | Glue location on pads | 8375rdquo x 10875 | B4 | ||||||||||||||||||||||||||||||
Number of Pages per Pad | Average sheets of paper 25 50 75100 Max | 9rdquo x 12rdquo (Folder) | B5 | ||||||||||||||||||||||||||||||
Ink Color | One color assumes BLACK 4 color assume CMYK Indicate PMS number herehellip | A4 (8 frac14rdquo x 11 frac34rdquo) (210 x 297 mm) | Catalogs | ||||||||||||||||||||||||||||||
Used in Manufacturing | NO | A5 (583rdquo x 826rdquo) (148 x 210 mm) | C1 | ||||||||||||||||||||||||||||||
Comments | C2 | ||||||||||||||||||||||||||||||||
Part Number | NA | JIT POD | |||||||||||||||||||||||||||||||
D1 | |||||||||||||||||||||||||||||||||
D2 | |||||||||||||||||||||||||||||||||
D3 | |||||||||||||||||||||||||||||||||
D4 | |||||||||||||||||||||||||||||||||
D5 | |||||||||||||||||||||||||||||||||
D6 | |||||||||||||||||||||||||||||||||
D7 | |||||||||||||||||||||||||||||||||
D8 | |||||||||||||||||||||||||||||||||
D9 |
This tab summarizes Rockwell Automation Global Sales and Marketing preferred printing standards It also provides guidance on whether a publication should be released as JIT (print on demand) or if it requires an RFQ for offset printingFind your publication type in the first section below Use the assigned Printing Category information to determine the standard print specifications for that document type The Printing Categories are defined below the Publication Type section Note there may be slightly different print specifications for the categories depending on the region (EMEA or Americas)For more information on Global Sales and Marketing Printing Standards see publication RA-CO004 in DocMan | |||||||||||||
Publication Type and Print Category | |||||||||||||
Publication Type | Off Set Print Category Spec (See table below) | JIT Spec (See table below) | Description | Order Min | Order Max | Life Cycle Usage Release Option | |||||||
AD | NA - Puttman | NA | Advertisement Reprint Colour | NA | NA | Presale Internal | |||||||
AP | A3 | D2 | Application Solution or Customer Success Story | 5 | 100 | Presale External | |||||||
AR | NA | NA | ArticleEditorialByline | NA | NA | Presale Internal | |||||||
News Release (press releases should not be checked into DocMan or printed) | |||||||||||||
AT | B3 B4 | D5 | Application Techniques | 5 | 100 | Presale External | |||||||
BR | A2 Primary A1 | NA | Brochures | 5 | 100 | Presale External | |||||||
CA | C2 Primary C1 | NA | Catalogue | 1 | 50 | Presale External | |||||||
CG | NA | NA | Catalogue Guide | 1 | 50 | Presale External | |||||||
CL | NA | NA | Collection | 5 | 50 | Presale External | |||||||
CO | A5 A6 A9 | D5 | Company Confidential Information | NA | NA | NA Confidential | |||||||
CP | E-only | E-only D5 | Competitive Information | 5 | 50 | NA Confidential | |||||||
DC | E-only | E-only | Discount Schedules | NA | NA | Presale Internal | |||||||
DI | A1 A3 | NA | Direct Mail | 5 | 100 | Presale Internal | |||||||
DM | NA | NA | Product Demo | 5 | 50 | Presale Internal | |||||||
DS | B3 | D5 | Dimensions Sheet | 1 | 5 | Post External | |||||||
DU | B3 | D5 | Document Update | 1 | 5 | Post External | |||||||
GR | B2 | D6 | Getting Results | 1 | 5 | Post External | |||||||
IN | B3 | D5 | Installation instructions | 1 | 5 | Post External | |||||||
LM | NA | NA | Launch KitMaterials | 5 | 50 | Presale Internal | |||||||
PC | B3 | D5 | Packaging Contents | ||||||||||
PL | E-only Primary B3 | E-only | Price List | 5 | 50 | Presale Internal | |||||||
PM | B2 | D6 | Programming Manual | 1 | 5 | Post External | |||||||
PP | A3 | D1 | Product Profile NOTE Application Solutions are to be assigned the AP pub type | 5 | 100 | Presale External | |||||||
QR | B2 Primary B3 B5 | D5 D6 | Quick Reference | 1 | 5 | Post External | |||||||
QS | B2 Primary B3 B5 | D5 D6 | Quick Start | 1 | 5 | Post External | |||||||
RM | B2 | D5 D6 | Reference Manual | 1 | 5 | Post External | |||||||
RN | B3 | D5 | Release Notes | 1 | 5 | Post External | |||||||
SG | B1 Primary B4 | D5 D6 | Selection Guide Colour | 5 | 100 | Presale External | |||||||
SG | B2 | D5 D6 | Selection Guide BW | 5 | 100 | Presale External | |||||||
SP | A1 A2 A3 A4 | NA | Service ProfileSales Promotion NOTE Service profiles are to be assigned the PP pub type | 5 | 100 | Presale Internal | |||||||
SR | B2 B3 | D5 D6 | Specification Rating Sheet | 5 | 100 | Presale External | |||||||
TD | B2 Primary B3 B4 B5 | D5 D6 | Technical Data | 5 | 100 | Presale External | |||||||
TG | B2 B3 | D6 | Troubleshooting Guide | 1 | 5 | Post External | |||||||
UM | B2 Primary B4 | D6 | User Manual BW | 1 | 5 | Post External | |||||||
WD | B3 | D5 | Wiring Diagrams Dwgs | 1 | 5 | Post Internal | |||||||
WP | B3 Primary B5 | D5 | White Paper | 5 | 100 | Presale External | |||||||
Pre-sale Marketing | All paper in this category is White Brightness 85 or better Opacity 87 or better | ||||||||||||
Category | Color Options | AP EMEA Paper Requirements | Canada LA US Paper Requirements | ||||||||||
A1 | 4 color | 170gsm 2pp | 100 gloss cover 100 gloss text | ||||||||||
A2 | 4 color | 170gsm folded 4pp | 100 gloss cover 80 gloss text | ||||||||||
A3 | 4 color | Cover 170gsm with Body 120gsm gt 4pp | 80 gloss cover 80 gloss text | ||||||||||
A4 | 2 color | 80 gloss cover 80 gloss text | |||||||||||
170gsm Silk ndash 120gsm Silk | |||||||||||||
A5 | 2 color | 80 gloss cover 80 matt sheet text | |||||||||||
170gsm Silk ndash 120gsm Silk | |||||||||||||
A6 | 1 color | 170gsm Silk ndash 120gsm Silk | 80 gloss cover 80 matt sheet text | ||||||||||
A7 | 4 color cover | 10 Point Cover C2S | |||||||||||
2 color text | Category being deleted | 50 matte sheet text | |||||||||||
Selection Guide | |||||||||||||
A8 | 4 color cover | Category being deleted | 50 matte sheet text self cover | ||||||||||
2 color text | |||||||||||||
Selection Guide | |||||||||||||
A9 | 2 color | 100gsm bond | 50 matte sheet text self cover | ||||||||||
Selection Guide | |||||||||||||
Post Sale Technical Communication | |||||||||||||
Category | Color Options | AP EMEA Paper Requirements | Canada LA US Paper Requirements | ||||||||||
B1 | 4 color cover | 270gsm Gloss 100gsm bond | 10 Point Cover C2S | ||||||||||
2 color text | 50 matte sheet text | ||||||||||||
B2 | 1 color | 60 Cover | |||||||||||
160gsm Colortech amp 100gsm Bond | 50 matte sheet text | ||||||||||||
B3 | 1 color | 50 matte sheet text self cover | |||||||||||
100gsm bond | |||||||||||||
B4 | 2 color | 60 Cover | |||||||||||
160gsm Colortech amp 100gsm Bond | 50 matte sheet text | ||||||||||||
B5 | 2 color | 50 matte sheet text self cover | |||||||||||
100gsm bond | |||||||||||||
Catalogs | |||||||||||||
Category | Color Options | AP EMEA Paper Requirements | Canada LA US Paper Requirements | ||||||||||
C1 | 4 color cover | 270gsm Gloss 90gsm silk | 10 Point Cover C2S | ||||||||||
4 color text | 45 Coated Sheet | ||||||||||||
C2 | 4 color cover | 270gsm Gloss 80gsm silk | 10 Point Cover C2S | ||||||||||
2 color text | 32-33 Coated Sheet | ||||||||||||
JIT POD | |||||||||||||
Category | Color Options | AP EMEA Paper Requirements | Canada LA US Paper Requirements | ||||||||||
D1 | 4 color | 170gsm white silk | 80 gloss cover coated 2 sides | ||||||||||
D2 | 4 color | 120gsm white silk | 80 gloss text coated 2 sides self cover | ||||||||||
D3 | 4 color | Cover 170gsm with Body 120gsm | 80 gloss cover 80 gloss text coated 2 sides | ||||||||||
D4 | 1 color | 160gsm tab | 90 index | ||||||||||
D5 | 1 color | 80gsm bond | 20 bond self cover | ||||||||||
D6 | 1 color | Cover 160gsm tab with Body 80gsm bond | 90 index 20 bond | ||||||||||
D7 | 2 color | 160gsm tab | 90 index | ||||||||||
D8 | 2 color | 80gsm bond | 20 bond self cover | ||||||||||
D9 | 2 color | Cover 160gsm tab with Body 80gsm bond | 90 index 20 bond | ||||||||||
D10 | Combination 4 color cover with 2 color body | Cover 160gsm with Body 80gsm | 90 index 20 bond |
Print Spec Sheet
JIT Printing Specifications | RA-QR005D-EN-P - 4032009 | ||||||||||||||||||||||||||||||||
Printing Specification | YOUR DATA HERE | Instructions | NO | ||||||||||||||||||||||||||||||
(required) Category | D6 | Select Print Category ABC or D from category list on Introduction_Catagory Types tab | 11rdquo x 17rdquo | LOOSE -Loose Leaf | YES | Pre-sale Marketing | TOP | ||||||||||||||||||||||||||
(required) Finished Trim Size Width | 85rdquo x 11rdquo | 85rdquo x 11rdquo | PERFECT - Perfect Bound | A1 | LEFT | ||||||||||||||||||||||||||||
(required) Publication Number | 1756-PM011C-EN-P | Sample 2030-SP001B-EN-P | 3rdquo x 5rdquo | SADDLE - Saddle Stitch | A2 | RIGHT | CORNER | ||||||||||||||||||||||||||
Use Legacy Number | NO | YES or NO | 18rdquo x 24rdquo Poster | PLASTCOIL - Plastic Coil (Coil Bound) | A4 | BOTTOM | SIDE | ||||||||||||||||||||||||||
Legacy Number if applicable | Sample Legacy Number 0160-533 | 24rdquo x 36rdquo Poster | STAPLED1 -1 position | A3 | |||||||||||||||||||||||||||||
Publication Title | Logix5000 Controllers Produced and Consumed Tags Programming Manual | Sample ElectroGuard Selling Brief | 36rdquo x 24rdquo Poster | STAPLED1B - bottom 1 position | A5 | ||||||||||||||||||||||||||||
(required) Business Group | Marketing Commercial | As entered in DocMan | 4rdquo x 6rdquo | STAPLED2 - 2 positions | A6 | ||||||||||||||||||||||||||||
(required) Cost Center | 19021 | As entered in DocMan - enter number only no description Example - 19021 | CMKMKE CM Integrated Arch - 19021CMKMKE Market Access Program - 19105 | 475rdquo x 7rdquo (slightly smaller half-size) | THERMAL - Thermal bound (Tape bound) | A7 | |||||||||||||||||||||||||||
BindingStitching | SADDLE - Saddle Stitch | Review key on right | Saddle-Stitch Items All page quantities must be divisible by 420 sheets max on 20 (text and cover) 20 sheets = 80-page pub16 sheets max on 20 (text) and 90 (cover) 16 sheets = 64-page pubPerfect Bound Items475 sheets max on 20 no cover 475 sheets = 950-page pub470 sheets max wcover 90 index unless indicated otherwise) 470 sheets = 940-page pubCoil Bound Items400 sheets max of 20 (if adding cover deduct equivalent number of pages to equal cover thickness) (90 index unless indicated otherwise) 400 sheets = 800-page pubTape Bound Items125 sheets max on 20 no cover 125 sheets = 250-page pub120 sheets max wcover (90 index unless indicated otherwise) 120 sheets = 240-page pubDouble Wire Bound Items250 sheets max on 20 (if adding cover deduct equivalent number of pages to equal cover thickness) (90 index unless indicated otherwise) 250 sheets = 500-page pub | 475rdquo x 775rdquo | THERMALO - Thermal Bound (Tape bound - offline) | A8 | |||||||||||||||||||||||||||
(required) Page Count of Publication | 44 | Total page count including cover | 55rdquo x 85rdquo (half-size) | Wire O - Double Wire Bound (offline) | A9 | ||||||||||||||||||||||||||||
Paper Stock Color | White is assumed For color options contact your vendor | 6rdquo x 4rdquo | Post Sale Technical Communication | ||||||||||||||||||||||||||||||
Number of Tabs Needed | 5 tab in stock at RR Donnelley | 7385rdquo x 9rdquo (RSI Std) | B1 | ||||||||||||||||||||||||||||||
Stitching Location | SIDE | Blank Corner or Side | 825rdquo x 10875rdquo | B2 | |||||||||||||||||||||||||||||
Drill Hole YESNO | YES | All drilled publications use the 5-hole standard 516 inch-size hole and a minimum of frac14 inch from the inner page border | 825rdquo x 11rdquo (RA product profile std) | B3 | |||||||||||||||||||||||||||||
Glue Location on Pad | Glue location on pads | 8375rdquo x 10875 | B4 | ||||||||||||||||||||||||||||||
Number of Pages per Pad | Average sheets of paper 25 50 75100 Max | 9rdquo x 12rdquo (Folder) | B5 | ||||||||||||||||||||||||||||||
Ink Color | One color assumes BLACK 4 color assume CMYK Indicate PMS number herehellip | A4 (8 frac14rdquo x 11 frac34rdquo) (210 x 297 mm) | Catalogs | ||||||||||||||||||||||||||||||
Used in Manufacturing | NO | A5 (583rdquo x 826rdquo) (148 x 210 mm) | C1 | ||||||||||||||||||||||||||||||
Comments | C2 | ||||||||||||||||||||||||||||||||
Part Number | NA | JIT POD | |||||||||||||||||||||||||||||||
D1 | |||||||||||||||||||||||||||||||||
D2 | |||||||||||||||||||||||||||||||||
D3 | |||||||||||||||||||||||||||||||||
D4 | |||||||||||||||||||||||||||||||||
D5 | |||||||||||||||||||||||||||||||||
D6 | |||||||||||||||||||||||||||||||||
D7 | |||||||||||||||||||||||||||||||||
D8 | |||||||||||||||||||||||||||||||||
D9 |