This technote simply refers to the Replacement Guidelines document that Ken also linked...
745492 - Differences and Migration information between Logix 5000 Controllers
Access Level: Everyone
That guide is by far the best resource available.
This technote is not a comparison with the 5570 controllers but does contain a basic FAQs for the 5580 controllers and also links to the same Replacement Guidelines document and others...
732970 - ControlLogix 5580 Controller (1756-L8x) FAQs
Access Level: Everyone
One Q&A in there I found of interest, that I did not know, is
How can the controller be reset?, which allows a Stage 1 or 2 reset. It might be important to know for L8x users going forward but I'll let ye read the difference between those yourselves.
Another technote here...
1072549 - FFU Instruction in ControlLogix 5580 and CompactLogix 5380 Controllers
Access Level: Everyone
...and last updated in April 2018, mentions a difference between platforms with regard to the FIFO Unload (FFU) instruction and how a Position (.POS) value of "0" affects the array values. It mentions that this difference is missing from the Replacement Guidelines document and will be added at a later date (still not there in the latest October 2018 release). So that may be of importance for some applications.
While you have not mentioned anything other than Ignition SCADA for visualization, I would add here for additional general info that the 5380 and 5580 controllers require FactoryTalk View v8.20 or higher for Logix projects up to v29. So PanelView terminals and MER runtime applications must also be at revision/version 8.20 minimum. No creating older MER versions for communications with these controllers. Not even v8.10.
For any Logix projects at v30 or higher, for 5x80 or 5x70 controllers, FactoryTalk View v9 minimum is required and similar 9.x terminal firmware/MER version must be used...
769046 - FactoryTalk View ME: Support for 5580 ControlLogix and 5380 CompactLogix
Access Level: TechConnect
This technote just reiterates the v30 requirements...
1030822 - FactoryTalk View Studio, PanelView Plus, Studio 5000 v30 and ControlLogix v30 compatibility
Access Level: TechConnect
JesperMP said:
...quote seems to point out the issue, but does not provide a solution.
How does one make sure that the data is consistent before it is used ?
AutoMax said:
Notice in the final paragraph the use of synchronous copy is not mentioned as "not as effective." There's a distinct difference in the COP and CPS instructions.
Yes, the traditional methods listed, of synchronizing data before sending or receiving/processing, are all fine for use with projects utilizing a single core in a processor. This is because all of the project's processing, and asynchronous communications, are being performed, or shared, on the same application core. Hence, we have the ability to periodically copy
certain data at the Task level (Periodic Task), or interrupt to copy
certain data at the Program level (COP inside UID/UIE priority pair), or for
all data we can use the synchronous copy (CPS) instruction which halts all sources which may update the various types of data. The project has these various tools to help synchronize all types of executing data on this same application core. Using a single core is also why the System Overhead Time Slice (SOTS) is permitted to interrupt the Continuous Task.
When we move to the 5x80 architecture, the application and communications are executed on independent processor cores. Hence, we no longer have the ability to use either Periodic Tasks or UID/UIE priority pairs to synchronize
certain data for use within the project. The communications core will update its data irrespective of a Priority Task or UID/UIE priority pair.
I keep highlighting
certain data. This is because the Periodic Task and UID/UIE methods may be used to temporarily block or interrupt the likes of source HMI, Message or User Task data. They cannot be used to block asynchronous I/O, Produce/Consume or Motion data updates. For these, we must use the CPS, regardless of which platform we are referring to (5x70/5x80).
The CPS method is still viable for the 5x80 because, and as I mentioned, it has the ability to halt all sources of data manipulation, at the memory access level, giving true synchronicity. This is what it was specifically designed to do. It is intended to be used primarily for asynchronous I/O and Produce/Consume data, and Motion, but can also be used for the likes of HMI and Message data.
The CPS instruction will make itself the highest priority within the project by disabling all interrupts and OS locking. This gives it full priority at the OS and architectural level. It will inhibit the backplane ASIC chip from accessing the processor's I/O memory. It disables memory access for all Tasks, fore or background and no matter their priority (Motion, Communications, Diagnostics, User Tasks, SOTS). This ensures that all data that is copied is guaranteed to be synchronous, even from the separate communications core.
Also note that the COP and CPS will execute differently on the 5x80 platform...
Replacement Guidelines said:
COP and CPS Into Structures
Copying a 10-element array into a 100-element array now moves 10 elements
(limited by the source). As always, copying a 100-element array into a
10-element array only moves the first 10 elements of the source (limited by the
destination)
This suggests that the COP and CPS instructions will now compare the Source and Destination element or array size to determine the best fit, and then only copy a compatible number of elements, thus avoiding erroneous results. You still need to ensure that you have assigned correct Source and Destination sizes for the correct result, but at least now you cannot accidentally overwrite contiguous memory beyond what was intended.
While you may use the CPS to interrupt all sources of data manipulation; it is still important to follow traditional good practices of not over doing it. Too much synchronous copying can delay important Tasks, both in the fore and background and may increase program scan times, or fault the controller, or external nodes. It should really only be used for exchanging larger data payloads, or anything over 32 bits. The Logix platform can guarantee data integrity up to its native 32-bit architecture. So it would be overkill and unnecessary to use the CPS instruction for atomic word level copying.
Another good practice for helping ensure integrity when communicating data is to use an integrity header/footer element at each end of the data payload. Say, the first and last element in a data array. The Source node will write these a value of "1" and the Destination node will write them a value of "0", once the data is processed. This way you can programmatically detect when both are "1" and the payload has been fully received, then CPS, or whatever method you are using.
This is mentioned in the document but has been advised as good practice for some time now.
ASF,
That's not all intended to advise you for your particular application. It's just me pointing out some things I know of, have found, or can remember to do with using the 5x80 platform.
One other thing popped into my head while writing was a recollection of the 1747-AENTR module and its ability, or inability to add more than 13 slots under one module. But upon investigating I was remembering a few years back where I looked at using one to migrate an existing SLC system which has an expansion chassis (10 + 10 slot). Using firmware revision 1.x 1747-AENTR modules and RSLogix 5000 v20 would only permit up to 13 slots in one chassis for these modules. But firmware revision 2.1 and Logix Designer v21 or above since allowed up to 30 slots in expanded chassis under one module. I'm sure that both your intended module will be at the latest firmware revision, and using either an L7x or L8x controller, the project will be further North or as far North of v21 as possible. Still important to know for other readers considering them for migration with older applications.
I'm not sure if I've actually helped you with anything there, other than some more light reading material?
Regards,
George