Welcome to the new Schneider Electric Community

It's your place to connect with experts and peers, get continuous support, and share knowledge.

  • Explore the new navigation for even easier access to your community.
  • Bookmark and use our new, easy-to-remember address (community.se.com).
  • Get ready for more content and an improved experience.

Contact SchneiderCommunity.Support@se.com if you have any questions.

Invite a Co-worker
Send a co-worker an invite to the Exchange portal.Just enter their email address and we’ll connect them to register. After joining, they will belong to the same company.
Send Invite Cancel

Use of RETAINs in HMI programming

Machine Automation Forum

A forum addressing machine automation solutions for the complete machine lifecycle. Including offers like Machine Advisor, Modicon PLC/PacDrive, Lexium or Preventa. Discuss and share knowledge on offers relating to cloud-based service platforms, machine localization and monitoring, industrial operations control, motion products as well as safety function!


Use of RETAINs in HMI programming

Hi all,


I've unsuccessfully been trying to use RETAIN variables within the HMI of a TM172DCLxxx.

Previously, I have tried to create them and tie them to buttons, resulting in the following error;




error G0096:  RTN_XAUTORECOVERPOWER => Init value object not found




This variable previously worked when it was not a RETAIN type, hence scope was correct and no spelling issues. The HMI Properties window also automatically recognised the type, so it was actually finding the variable.


I further tried to define some without assigning to buttons; producing a total of three RETAIN variables, resulting in multiple of the following error type;




error A4100: RTN_USIARCONTROLMODE => Retentive vars space exhausted




Following this, I changed the type of two of them to standard variables to reduce the potential use of the retentive space, however the same error as above.


Am I missing something regarding their use?




Tags (1)
2 Replies 2
Ensign Ensign

Re: Use of RETAINs in HMI programming

As far as I know, the TM172DCL display doesn't have "retain" memory area.  The retain memory area would be an area that would be retained by the battery automatically without any user action.


However, the M172 family has was is called eeprom parameters.  Those values are saved in flash memory.  Because the way an eeprom chip works, there is a maximum of write operation in the life of an eeprom cell.  It is around 100 000 write operation per memory cell. To preserve the life of an eeprom chip, the write to an eeprom parameter is not done automatically.  It can be called from the program with the sysWritePar functions (one per data type, int, bool, etc).  This function is smart and only actually writes to the memory cell if the actual value sent to the function is different then the actual value in the eeprom variable.  This prevents a useless write operation to the memory.


Another way to write to an eeprom is from an HMI page.  When an eeprom variable is mapped to a data entry object on a page, the value will be written to eeprom memory each time the value is changed by the user.


Hope it makes it a bit more clear how it works.


Re: Use of RETAINs in HMI programming

Ah ok, I didn't realise that normally they would retained via CMOS.


I was hoping to avoid the sysWrite method, as I'd have to have a status variable linked to Programming and the overhead you describe.


In the HMI editor, can I manage EEPROM Parameters in any scope? For example, page local procedures or using a message? Is this just a feature of the TM172DCLxxx?

Tags (1)