Programming Manual Logix 5000 Produced and Consumed Tags Catalog Number 1756 ControlLogix, 1756 GuardLogix, 1768 Compact GuardLogix, 1769 CompactLogix, 1789 SoftLogix, PowerFlex with DriveLogix
Important user information Read this document and the documents listed in the additional resources section about installation, configuration, and operation of this equipment before you install, configure, operate, or maintain this product. Users are required to familiarize themselves with installation and wiring instructions in addition to requirements of all applicable codes, laws, and standards.
Summary of Changes This manual contains new and updated information. This table contains the changes made to this revision. Summary of Changes Topics Updated tag properties dialog box graphic. Produce a Tag on page 12 Updated tag properties dialog box graphic, added the connection status. Create a Consumer Tag on page 14 Updated Controller properties dialog box. Set Up the Consumer Tag on page 21 Updated Tag properties dialog box.
Table of contents Preface Studio 5000 environment ..................................................................................... 7 Additional resources............................................................................................... 7 Chapter 1 Produce and Consume a Tag Introduction ............................................................................................................ 9 Controllers and networks that support produced/consumed tags ................
Preface This manual details how, with a Logix5000 controller, to produce and consume system-shared tags and produce a large array. This manual is one of a set of related manuals that show common procedures for programming and operating Logix5000 controllers. For a complete list of common procedures manuals, refer to the Logix5000 Controllers Common Procedures Programming Manual, publication 1756-PM001. The term Logix5000 controller refers to any controller that is based on the Logix5000 operating system.
Preface Resource Description Product Certifications webpage, available at http://ab.rockwellautomation.com Provides declarations of conformity, certificates, and other certification details. You can view or download publications at http://www.rockwellautomation.com/literature. To order paper copies of technical documentation, contact your local Rockwell Automation distributor or sales representative.
Chapter 1 Produce and Consume a Tag A Logix5000 controller lets you produce (broadcast) and consume (receive) system-shared tags. Introduction 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.
Chapter 1 Produce and Consume a Tag This controller Can produce and consume tags over this network Backplane ControlNet X 1768 CompactLogix ControlLogix X DriveLogix SoftLogix5800 EtherNet/IP X X X X X X X For two controllers to share produced or consumed tags, both controllers must be attached to the same network, such as a ControlNet or Ethernet/IP network. You cannot bridge produced and consumed tags over two networks.
Produce and Consume a Tag Guideline Chapter 1 Details 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.
Chapter 1 Produce and Consume a Tag Adjustment Description Reduce your 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.
Produce and Consume a Tag Chapter 1 4. In the Tag Properties dialog box, in the Name box, type the name of the produced tag. 5. From the Type list, click Produced. The Connection button becomes active when you choose either Produced or Consumed. 6. Click Connection. The Produced Tag Connection dialog box appears. You can enter the number of controllers to consume (receive) the tag.
Chapter 1 Produce and Consume a Tag 7. In the Max Consumers box, enter a value. Important: The Advanced button on the right-hand side of the Produced Tag Connection dialog box appears only for controllers using version 18 and later of the application. This button opens the Advanced Options dialog box to set the RPI range limitation, negotiated default, or unicast connection. See Additional steps for a PLC-5C controller on page 17 for details and procedures. 8. Click OK.
Produce and Consume a Tag Chapter 1 4. In the Tag Editor window, right-click the tag that will consume the data, and then choose Edit (name of tag) Properties. 5. In the Name box, type the name of the consumed tag. 6. From the Type list, click Consumed. The Connection button becomes active when either Consumed or Produced is chosen as the Type. 7. Specify the data type. If the producing controller Then the data type should be is Logix5000 controller Same data type as the produced tag.
Chapter 1 Produce and Consume a Tag If the producing controller Then the data type should be is 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 8. Click Connection to define the consumed tag. 9.
Produce and Consume a Tag Chapter 1 10. Click the Status tab to configure the status properties for the consumed tags. 11. In the Data Type list, click the data type that allows the connection status. 12. Click OK. Note: If you consume the tag over a ControlNet network, use RSNetWorx for ControlNet software to schedule the network. Additional steps for a PLC-5C controller If you are sharing data with a PLC-5C controller, do the following.
Chapter 1 Produce and Consume a Tag 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. • The first integer contains the upper (leftmost) bits of the value. • The second integer contains the lower (rightmost) bits of the value. This pattern continues for each floating-point value. If the PLC-5C controller consumes REALs, reconstruct the values.
Produce and Consume a Tag Chapter 1 When using version 17 and earlier of the application, 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.
Chapter 1 Produce and Consume a Tag 2. Complete the Advanced Options dialog box to set up the multicast connection. Multicast Connection Options Minimum RPI Use the default of 0.2 ms. Maximum RPI Use the default of 536870.9 ms. Provide Default RPI to Consumer for Out-of-Range Requests Click the check 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.
Produce and Consume a Tag Set up the consumer tag Chapter 1 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.
Chapter 1 Produce and Consume a Tag Important: Verify consumed tag acceptance The check box that activates ’RPI Provided by Producer’ is disabled online. This check box must be checked for the RPI negotiation to succeed. If the check box is not checked, the consuming controller does not accept the RPI provided by the producer if the consuming controller requests an RPI that is out of the producer’s configured RPI range. As a result, an out-of-range RPI request results in a failed connection.
Produce and Consume a Tag Chapter 1 The Tag Properties dialog box appears. 4. Click Connection, at the right-hand side of the Type box.
Chapter 1 Produce and Consume a Tag The Consumed Tag Connection dialog box appears with a flag to the right of the RPI box 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.
Produce and Consume a Tag Produced and consumed RPI scenarios Chapter 1 The following scenarios explain how producing and consuming tags exchange RPI for controllers. Scenario 1 The RPI is within range of the producing controller’s RPI Limits. There is no default RPI that is set up for the producing controller. 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.
Chapter 1 Produce and Consume a Tag Scenario 2 The RPI is outside the range of the producing controller’s RPI Limits. There is no default RPI that is set up for the producing controller. 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.
Produce and Consume a Tag Chapter 1 Scenario 3 The RPI is outside the range of the producing controller’s RPI Limits. A default RPI is set up for the producing controller. But, the network path contains a bridge that blocks the negotiated RPI to prevent an interruption to other controllers on the network. 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.
Chapter 1 Produce and Consume a Tag Scenario 4 The RPI is outside the range of the producing controller’s RPI Limits. A default RPI is set up for the producing controller. The consumer is set up to accept the RPI provided by the producer. 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.
Produce and Consume a Tag Chapter 1 application may override the unsupported packet interval with a supported packet interval. When this occurs, the new ‘effective’ 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.
Chapter 1 Produce and Consume a Tag RPI I/O faults 30 The table provides a description of error messages for situations where an RPI is not accepted. Scenario Description Software Version I/O 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.
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 produced/consumed tag of 125 elements to create a packet of data. You can then use the packet to send the array piecemeal to another controller.
Chapter 2 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. Produce a large array • These elements serve as a buffer. • Because each packet contains the same number of elements, the buffer prevents the controller from copying beyond the boundaries of the array.
Produce a Large Array Chapter 2 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.
Chapter 2 Produce a Large Array 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.
Produce a Large Array Chapter 2 7. In the Controller Tags folder of the controller project that consumes the array, create these tags. P Tag Name Type X array_ack DINT[2] array_packet DINT[125] 8. Convert array_packet to a consumed tag. 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. 9.
Chapter 2 Produce a Large Array 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. • The offset value moves from the packet to array_offset.
Produce a Large Array Chapter 2 • 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 (5000/125=40) by using individual arrays. • Faster transmission times are achieved than if you used a message instruction to send the entire array. • Messages are unscheduled and are executed only during the ‘system overhead’ portion of the Logix5550 execution.
Index A adjust bandwidth limitations 13 array defining data packets 35 B bandwidth adjust limitations 13 C communicate other controllers 11 connection produced or consumed tag 12 consumed tag connection requirements 12 consumer creating tag 16 RPI scenarios 27 using producer RPI 24 verifying RPI 25 ControlNet bandwidth limits 13 create produced tag 14 D L L2x controller RPI limits 31 L3x controller RPI limits 31 limitations bandwidth 13 RPI 21 P PLC-5C share data 19 produced tag connection requirements
Rockwell Automation support Rockwell Automation provides technical information on the web to assist you in using its products. At http://www.rockwellautomation.com/support you can find technical and application notes, sample code, and links to software service packs. You can also visit our Support Center at https://rockwellautomation.custhelp.com for software updates, support chats and forums, technical information, FAQs, and to sign up for product notification updates.