Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Plant SCADA

Parameter Precedence

  • Last UpdatedJul 18, 2023
  • 3 minute read

On a machine where a parameter is set in both the project database and the Citect.ini file, the value contained in the Citect.ini will be used by that machine.

For example, in the diagram below, the project value for "parameter X" (which is stored in the project database) is n. This is the value used for parameter X on every server and client EXCEPT the I/O server and trends server, both of which use the values set in their local Citect.ini files (p and m respectively).

Embedded Image (65% Scaling) (LIVE)

A parameter which is global to a project and applies to the majority of servers running a project is recommended therefore to be defined in the project database where it can be centrally managed and controlled. Any exceptions to this global value can then be managed by modifying the Citect.ini file on the machine to which the exception applies.

Included projects

If the Citect.ini has no parameter setting, the value used will be the value specified in the lowest level include project. This means that it will then ignore any value placed in the top level projects at Runtime in favor of the lowest level include project which has the parameter set. Naturally if the parameter is not set anywhere, then the default value for the parameter will be used.

For example, using the parameter[Alarm]SavePeriod. The default value is 600. In this example there is a main project and an included sub project with the parameter being set as shown below. The runtime result column in the table below shows what Plant SCADA considers the value to be, for example if the ParameterGet() Cicode was used.

Citect.ini

Main

Include

Runtime Result

None

None

None

600

None

300

None

300

None

None

400

400

None

300

400

400

500

300

400

500

600

300

400

600

Duplicate Parameters

If the parameter is defined multiple times either in the same project or different include project, the effective value of the parameter is unpredictable. The compiler will pick up the first entry of the parameter found in the project hierarchy, but does not check for duplicate entries.

This means it is not possible to override parameters defined in the included project by defining the same parameter (with different value) in the including project. It is recommended that when you create a new parameter for your project and give it a default value, you define the default value inline rather than defining it as a project parameter in the included project. For example:

Call ParameterGet("MySection", "MyParameter", MyDefaultValue) whenever needing to read the parameter.

MyDefaultValue can be defined as a label so it is accessible outside Cicode files, or as a global variable if the parameter is only used in Cicode files. By doing this, the value of the parameter is overridden in the including project (by defining the value for the parameter in the system parameter database).

However, if the same parameter is defined in the local Citect.ini file, it will always take precedence over the parameter defined in the project. But , if the parameter is defined multiple times in the Citect.ini file, only the first entry will be picked up.

See also

Hierarchical Parameters

In This Topic
Related Links
TitleResults for “How to create a CRG?”Also Available in