Browse FAQs

How do I resolve the build message "C0106: Out of global data memory" in SoMachine Logic Builder?

Published date: 26 November 2018

Issue
When attempting to Download or Code Generate my PLC Application in SoMachine Logic Builder,  the build message "C0106: Out of global data memory" appears in the Messages zone.

Product Line
SoMachine v3.0, SoMachine v3.1, SoMachine v4.1, SoMachine v4.2, SoMachine v4.3
M238, M241, M251, M258, LMC058, XBTGC, HMISCU, XBTGT w/ Control, XBTGK w/ Control

Environment
SoMachine Logic Builder, Windows 7, Windows 10

Cause
The build message "C0106: Out of global data memory" is caused by the application having more variables used in the Persistent Retain memory than there is physical memory on the PLC.

Resolution
Reduce the number of variables declared in the PersistentVars Application object or declared as "VAR_GLOBAL PERSISTENT RETAIN" in the Global Variable List (GVL) node.
Do this incrementally and go to the Build menu and perform the following actions in sequence:
  1. Clean
  2. Build
  3. Generate Code
 
After each Generate Code, check the Message list to see if the C0106 message has disappeared.

If so, one can see the used memory in the message list in the form of "Memory area 5 contains Persistent Data:…"
For example in Screenshot 2 below, 2044bytes is the maximum for the HMISCU PLC - of which 46% is used.
 
Tip: Watch for ARRAYs, DUT (structures) and combinations of the two (ARRAYs of DUTs), which can increase the defined memory usage multiplicatively.
 
To see how many bytes the PLC has allocated to the Persistent Retain Variables area, go to the SoMachine Online Help [PLC type section] -> Programming Guide -> Memory Mapping section
 

Was this helpful?

What can we do to improve the information ?

Can't find what you are looking for?

Reach out to our customer care team to receive information on technical support, assistance for complaints and more.