Restore Parameter Value on Download - Composite Functionality?

I have a 12.3.1 system where I am trying to restore parameter values after a download to their pre-download value. I have configured the module properties to "restore after download" and "restore critical and user defined values". I then created two parameters. One parameter is outside the composite (TEST1) and one parameter is inside the composite (TEST2). Both are boolean input parameters and have the box checked "restore parameter value after restart". 

Testing:

1.) The parameter outside the composite (at the module level --- TEST1) behaved as expected: I changed the value online from its configured value (true) to a value of False. I redownloaded and the parameter retained its value of False.

2.) The parameter inside the composite (in my opinion, still at the module level since it is an INPUT parameter, and not an internal parameter --- TEST2) did not behave as expected: I changed the value online from its configured value (true) to a value of False. I redownloaded and the parameter went back to its original configured value (True).

BOL > Controller considerations > Preserving configuration and controller data during power loss article states the following:
"User-defined, module-level parameters and unit parameter definitions of the following types support the restore parameter values feature:"

I searched SMS and did not find an answer to the following question:

Can parameters that are inside composites be designated to "restore parameter value after restart" and this actually work? Or do you read the BOL statement as restricting this feature to only user-defined parameters that are created at the module level, and does not apply to composite level parameters?

6 Replies

  • Is it a linked or embedded composite?
  • In reply to Jason.Brumfield:

    linked composite. I did not test with an embedded. I will try and update with results.
  • Only what BOL states is supported and not parameter values in composites.

    You would need to move parameter usage to the module level and wire or make composites use internal reference parameters to module level to get the Restore parameter support.

    Now to clarify your opinion, INPUT/OUTPUT parameters only mean that they will be shown by default when a composite/module block references the item and NOT a promoted parameter to the next level up. It is just a easy method to view/wire to the parameter while Internal Read/Write parameters don't show up by default. You can show these if required by right clicking on the composite/module block and selecting Show parameter, browse/type the parameter name, selecting Input or Output and change the shortcut name that is shown (which is rarely done from what I have seen).

    NOTE: You can show an Internal Read/Write parameters as Input or Output but it may not work depending on how the configuration of the composite is done. For example if Internal Write parameter is being wired to in a composite and you select to Show this parameter as an Input and then someone wires to that...this won't work
  • In reply to Matt Stoner:

    Thanks for the thorough answer. The approach to defining MODULE level parameters makes sense.

    One last question: when checking the "restore parameter value" checkbox does this apply for both cold restart AND module download behavior? so what I mean is: if i check a parameter to be restored, this parameter value will be saved upon download and populated after the download -AND- it will be saved in the controller flash memory to be populated after a cold restart download?

     I guess I'm asking about how the module level parameter checkbox interacts with the checkbox and the dropdown shown on the module properties

  • In reply to Alex Lutz:

    No, the module download behavior is a separate function than the restore parameter value check box.

    You are limited to either all (Preserve user-defined and critical values) or none (Other two choices) of the user configured parameters to remain during a download. You don't have the granularity of individual parameters during the download like Restore on Restart.

    For the critical block parameters list and other download behaviors you can find info in Books Online under Configuration -> General Configuration -> Downloading Data
  • In reply to Matt Stoner:

    Hi Matt, Alex,
    It is a while ago from 2019, but the internet don't forget any ;-) and I just want give a workaround for that missing granularity for the preserve user-defined parameters.
    I save the actual values of only those parameter which I want to get restored after a download and save them in the OUTx of that Calc-FB.
    Another INIT-Action, which must run as the first FB in the module/composite etc will run at the first cycle after the download by setting IN_D to 1 per default and reset it online at the end of the ACT expression to IN_D:=0.
    Inside can be checked if the module got a partial download with SysStat() and if then restore from the CALC/OUTx the dedicated user parameter to the last value before download.
    There is no way to save strings that way. All other download types or even a partial download on a new CM did not run before that download and has therefor nothing to restore.
    That is the reason to test the download type partial.
    Hope that helps ,
    Michael