Hi,
If I was to download a control module that contains other control module blocks within it (via the custom block), would this be effectively downloading the contained control module or am I safe to download and not worry about it? Similarly with Internal Write/Read Parameters if these are linked to other control module PVs etc. This is a live system so unsure whether I would be taking a gamble downloading.
Regards,
Wilson
In reply to JDWheelis:
In reply to Wilson Halligan:
This sparked my curiosity as it has been a while since I looked at this.
Parameter Download Behavior allows you to define how each module will behave on partial downloads. On a partial download, the new instance of the module is instantiated in memory and the existing instance passes on the critical block values and user defined values as defined in this setting to allow the module to seamlessly accept the download. If you select Preserve User Defined and critical block values, you would not be able to change the User defined parameter value through a partial download. You would have to manually make the change at runtime to align it with a database change. If changed online, the upload utility will help get this change into the database. If you don't preserve the user defined, then you must be sure to update the database for online changes or a partial download could undo online changes. It is all or none per module. This is where parameter security can help keep the runtime values aligned with the database by preventing changes online, and the upload can align database with parameters that are available for online changes.
BOL has a list of all the Critical Block parameters per block. These are typically the dynamic values that change continuously such as Mode, SP, OUT, SP WRK, or PV and are used to quickly initialize the module following partial download. Other static/tuning parameters take on the database values, allowing a download to adjust loop behavior without disrupting the process.
The Restore Parameter options deal with restart behavior and total download. On a total download, there is no existing instance of any module from which to preserve values. Instead, the controller NVM is used. This behavior is set at two levels: Individual parameter and module. Within a module you can chose which user defined parameters will be preserved in NVM for restart by setting the "Restore parameter value on restart" in each parameter of the module. If this is not set on the parameter, the value is not stored in NVM. At the Module Level, you must enable "Restore parameter values on Restart" to allow the module to retrieve the values from NVM that were explicitly configured to be restored.
In my test, I found that the PID blocks Critical Values were not preserved on Total downloads. These parameters have a "Restore on restart" check box but it cannot be selected. Only the User defined Parameter in my module let me restore it on restart, once it was enabled on both the parameter and at the module Properties level.
DeltaV modules are designed to initialize with the current value of the Output channels via the AO and DO blocks. On a Total Download or a controller restart where the IO channel did not lose power, and it was configured to Hold Last Value (default behavior for BPCS), the loop AO block will be in IMAN initially, connect with the AO Channel and retrieve the current value of the output, It will then go to MAN and initiate initialization with the upstream block if Target is CAS or higher, and this typically allows the module to comeback without bumping the output. The number of blocks to be initialized will determine the number of executions of the module, typically two or three, during which time the Input blocks have initialized and have valid PV values.
Setting Preserve Critical values and User Defined Values will typically allow partial downloads to be transparent. However, more complex configurations may require particular attention to ensure stable, bumpless downloads. When modules read data from other modules, and those modules are downloaded, the status and value of a particular parameter may require an initial execution of the module to derive the current value, such as the Actual Mode. It is always recommended to check Status (.ST) of external values to ensure the value is suitable for use. An CALC expression can use Abort On Read Error to not calculate a new value if an input parameter is BAD. The Sysstat parameter can also be used in a module to determine if it has been downloaded and to manage how it initializes, especially on a total download scenario.
For most modules, partial downloads are transparent without much extra effort, and preserving critical values and user defined values makes this even more transparent and stable. Total downloads however will typically disrupt the operational state of modules, like altering mode or setpoints or something and should be avoided in production scenarios. One should strive to understand how their particular configuration will be have on a total download and what measures would be needed for operators to manage through a total download or restart scenario of a controller. Restored User defined parameters can be quite useful to minimize disruption of the process on total download, but there is too much variability between facilities or even controllers to be able to perform total downloads seamlessly.
Understanding your configuration and how it handles downloads is an important detail to maintaining a plant through constant changes through its operational life.
Andre Dicaire