Migrating your MODICON Compact & Momentum Systems to Unity Pro
NOTE: All images on this page can be enlarged by clicking on them.
First, the Concept to Unity Pro migration scenario. Jump to the 984LL scenario
In Unity Pro M340, M580 and Momentum projects, 32 bit Data must be located on Even Number %MW Addresses (e.g.: %MW0, %MW2, etc.). Variables located at %MW Addresses will violate the Alignment Constraint if the 32 bit Data in the Concept project was located at 400002, 400004, etc.. All 4X addresses are re-aligned into the M340, M580 or Momentum project, and the example 4X addresses will align to the respective second and forth register locations, which are %MW1 and %MW3 in these Zero Based Unity CPUs, which violates the Alignment Constraint.
Alignment Constrained %MW Addresses can exist either:(1) as EDT Variablesor(2) within DDT Structures (or ARRAYs of DDT Structures)
Corrective action required is to either:(1) Unlocate the Dataor(2) Change the assigned %MW Address
Both of these solutions could impact communications via Modbus (TCP, Serial or MB+) with other systems (like SCADA, HMIs, PLCs, etc.).
Unity Pro will identify the Alignment Constrained Variables during a Project Analysis and list them in the Output Window.
If the Alignment Constrained %MW assignments are within DDT Structures (or Arrays of DDT Structures)andchanging the %MW assignments will impact other systems communicating by Modbusthen the User must make the appropriate corrections to the system which will involve changes to all affected systems.
If the Alignment Constrained %MW assignments are EDT Variables (REALs, DINTs, UDINTs or TIME)then there are solutions that avoid changes to the other systems (like SCADA, HMIs, PLCs, etc.).
These solutions can be manually implemented or automatically. Regardless of the type of implementation, the solution methodology is the same.
Solution Methodology for Alignment Constrained EDT Variables
1) Create a MAST Task Pre-Processing Section that will contain Code to move Modbus Client Write Data from %MW STATE RAM Addresses to the Alignment Constrained Variables
2) Unlocate the Alignment Constrained Variable
3) Add Code in the Pre-Processing Section for the Alignment Constrained Variable
4) Create a MAST Task Post-Processing Section that will contain Code to move the Alignment Constrained Variables's Value to %MW STATE RAM Addresses for Modbus Client Read Data
5) Unlocate the Alignment Constrained Variable
6) Add Code in the Post-Processing Section for the Alignment Constrained Variable
The C2U Mbus Chkr is free to download and use, and is available here: Downloads
UnityPro-Experts.US created an Automated Solution for Enhancing Unity Pro 984LL Migrated Projects
More information regarding the free to download and use tool is here:
Unity LL984 Descriptor Tool