Determine Controller Memory Information

This is information is not applicable to
CompactLogix
5380,
CompactLogix
5480,
ControlLogix
5580,
Compact GuardLogix
5380, and
GuardLogix
5580 controllers. In these controllers, the memory used attributes are not supported or accesible.
The memory of the controller is divided into I/O memory and expansion memory. This table shows how the controller uses each type of memory:
This
Uses memory from
I/O tags
I/O memory
produced tags
consumed tags
communication via MSG instructions
communication with workstations
tags other than I/O, produced, or consumed tags
expansion memory
logic routines
communication with polled (OPC/DDE) tags that use RSLinx Classic.
I/O memory and expansion memory
Note that the controller returns values in the number of 32-bit words. To see a value in bytes, simply multiply by 4.Use this procedure to get the following information about the controller's memory:
  • available (free) I/O and expansion memory
  • total I/O and expansion memory
  • largest contiguous block of I/O and expansion memory
Get Memory Information From the ControllerTo get memory information from the controller, execute a Message (MSG) instruction that is configured as follows:From the Message Properties dialog - Configuration tab:
From the Message Properties dialog - Communication tab:
Choose the Memory Information You WantThe MSG instruction returns the following information to INT_array (the destination tag of the MSG instruction).
IMPORTANT:
For a 1756-L55M16 controller, the MSG instruction returns two values for each expansion memory category. To determine the free or total expansion memory of a 1756-L55M16 controller, add both values for the category.
Convert INTs to a DINTThe MSG instruction returns each memory value as two separate INTs.
  • The first INT represents the lower 16 bits of the value.
  • The second INT represents the upper 16 bits of the value.
To convert the separate INTs into one usable value, use a Copy (COP) instruction, where:
In this operand:
Specify:
Which means:
Source
first INT of the 2 element pair (lower 16 bits)
Start with the lower 16 bits
Destination
DINT tag in which to store the 32-bit value
Copy the value to the DINT tag
Length
1
Copy 1 times the number of bytes in the Destination data type. In this case, the instruction copies 4 bytes (32 bits), which combines the lower and upper 16 bits into one 32-bit value.
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.