Overview on User Program Size and Operands of AC500 CPUs

The following tables show the values set for the program memory and the operands in AC500 targets.

CPUs in lifecycle state “Active”
Parameter / CPU Unit

PM554-x

PM564-x

PM554-x-ETH

PM564-x-ETH

PM556-x-ETH PM572 PM573-ETH PM582 PM583-ETH

PM585-ETH

PM590-ETH

PM591-ETH PM592-ETH
Available as of PS501 version   V1.3.2 V2.0.2 V2.3.0 V2.0.0 V2.0.0 V2.0.0 V2.0.0 V2.0.0 V2.0.0 V2.1.0
Available as of firmware version   V1.3.0 V2.0.5 V2.3.0 V2.0.2 V2.0.2 V2.0.2 V2.0.2 V2.0.2 V2.0.2 V2.1.3
User program (code) see remark 1 kB 128 128 512 128 512 512 1024 2048 = 2 MB 4096 = 4 MB 4096 = 4 MB
Number of POUs   2048 2048 2048 2048 2048 2048 2048 4096 4096 4096
Number of tasks   2 2 2 3 3 3 16 16 16 16
Floating point processor see remark 2   no no no no no no no yes yes yes
Global and local variables: VAR or VAR GLOBAL kb 10 10 64 116 224 128 736 1536 4096 4096
RETAIN area: VAR RETAIN or VAR RETAIN PERSISTENT see remark 3 kb 1 1 1 4 32 32 32 512 512 512
Addressable flag area: VAR AT %Mx.y VAR RETAIN AT %Mx.y VAR RETAIN PERSISTENT AT %Mx.y see remark 4 kb 2 2 64 4 128 128 128 512 512 512
PERSISTENT area: VAR AT %Rx.y kb 1 1 4 4 4 128 128 512 512 512
Total variables (sum of VAR, RETAIN, %M and %R) kb 14 14 133 128 388 416 1024 3072 5632 5632
Inputs %I see remark 5 kb 4 4 4 24 24 24 24 24 24 24
Outputs %Q see remark 5 kb 4 4 4 24 24 24 24 24 24 24
CPUs in lifecycle state “Classic” (should not be used for planning and commissioning of new installations)
Parameter / CPU Unit PM571(-ETH) PM581(-ETH/-ARCNET) PM582(-ETH) PM590(-ETH/-ARCNET) PM591(-ETH/-ARCNET)
Available as of PS501 version   V1.3.2 V1.3.2 V1.3.2 V1.3.2 V1.3.2
Available as of firmware version   V1.4.2 V1.4.2 V1.4.5 V1.4.5 V1.4.5
User program (code) see remark 1 kB 64 256 512 2048 = 2 MB 4096 = 4 MB
Number of POUs   2048 2048 2048 4096 4096
Number of tasks   3 3 3 16 16
Floating point processor see remark 2   no no no yes yes
Global and local variables: VAR or VAR GLOBAL kB 16 128 128 1024 2048
RETAIN area: VAR RETAIN or VAR RETAIN PERSISTENT see remark 3 kB 4 32 32 512 512
Addressable flag area: VAR AT %Mx.y VAR RETAIN AT %Mx.y VAR RETAIN PERSISTENT AT %Mx.y see remark 4 kB 4 128 128 512 512
PERSISTENT area: VAR AT %Rx.y kB 4 128 128 512 512
Total variables (sum of VAR, RETAIN, %M and %R) kB 28 416 416 2560 3584
Inputs %I see remark 5 kB 24 24 24 24 24
Outputs %Q see remark 5 kB 24 24 24 24 24

Remark 1:

The user program is composed of:

  • the compiled code of all POUs called in the program,
  • the initialization code for the variables and
  • the code to restore the variables set as PERSISTENT (this does not include variables in the PERSISTENT area (%R area)!).

The configuration data are not considered in the user program size.

As of Control Builder version 1.2, the user program size (code size) is shown in the CoDeSys message box when compiling:

POU indexes: 262 (25%)
Size of data used: 1069 of 262144 bytes (0.41%)
Size of Retain data used: 0 of 32768 bytes (0.00%)
Code size: 6726 bytes
0 errors, 0 warnings

Remark 2:

All AC500 CPUs can perform floating point operations. For CPUs without floating point processor (PM57x and PM58x), these operations are performed by an emulation library and are therefore slower. Emulation is faster for LREAL variables than for REAL variables. Thus, the use of LREAL variables is recommended.

Remark 3:

The information shown in the message box does only contain the Retain data of the RETAIN area, and not the variables of the addressable flag area %Mx.y. that are declared as VAR RETAIN.

Remark 4:

Data in %M area are not buffered.

Remark 5:

The assignment of the inputs and outputs is described in detail in the chapter “AC500 inputs, outputs and flags”.