Chapter 2
Produce a Large Array
44
Rockwell Automation Publication 1756-PM011J-EN-P - February 2018
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.
•
The COP instructions copy the data from the packet to the destination array, starting at the offset value.
•
The offset value moves to array_ack[0], which signals that the copy is complete.
•
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.
Transferring a large array as smaller packets improves system performance
over other methods of transferring the data.
•
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.