Technical FAQs

Ask a Question

How to fix the CRC_IOMAPPING mismatch error on a PRM?


PRM (TCSEGPA.23F14F) Library  Function block programming requirements
To properly initialize the CRC_IOMAPPING value the Unity application for a PRM.
Product Line
Modicon M340, Unity 3.x or higher, TCSEGPA.23F14F

The CRC_IOMAPPING issue can be corrected by setting the enabling "Initial %MWi on cold start" option is checked on the CPU properties or by manually updating CRC_IOMAPPING value.

If "Initial %MWi on cold start" option is checked on the CPU properties:

The internal words %MWi are initialized on cold start triggered by software (application download, initialize command, restore command, %S0 activation, cold start button on the PLC screen). They are handled like other global variables: initialized at 0 or at the initial value defined in the application, in all cold start cases.
On a PRM point of view, at each update done in the I/O scanner tab, the initial value of the CRC_IOMAPPING is updated in sync with the PRM configuration. This value is taken into account by the PLC after an application download. The CRC written by the PLC is the one expected by the PRM. Nothing to do, everything is managed automatically.

If for any reason this option is not selected:

The %MWi will keep their current values after an application download for example.
The initial value of the CRC_IOMAPPING is not taken into account by the PLC.
Therefore, This variable must be initialized manually after each PRM update.

Please review the Initialize the CRC_IOMAPPING section of the manual on page 34.

This section explains a way to set manually the CRC_IOMAPPING variable. It is necessary only if the option “Initialize %MWi on cold start” is unchecked in the processor configuration.
1- At each update of the PRM configuration, if the PLC must be downloaded, copy by hand the CRC_IO value in the initial value of an unlocated variable:
a.  Open the Data Editor by clicking on Derived Variables in the UnityPro Project Browser
b.  Select the variable <PRM alias name>_OUT, <PRM alias name> being the name of the PRM Master shown in the DTM browser. The CRC_IO is shown in the Value column.
c.  Create an unlocated variable with the same T_PRM_OUT type, for example PRM_CRC_IOMapping
d.  Copy the initial values of the 2 elementary variables CRC_IOMAPPING_LOW and CRC_IOMAPPING_HIGH as initial values of your new variable PRM_CRC_IOMapping:

2- In the program, assign your unlocated variable to <PRM alias name>_OUT
     In ST, for example: PRM_Master_OUT := PRM_CRC_IOMapping;
Was this helpful?
What can we do to improve the information ?