The ProcessVariables are used to provide a stable address space view from the user point of view even if the Analyser Server address space changes, after the new configuration is loaded. This is important to simplify integration with systems like DCS or LIMS that often require a stable mapping.
All ProcessVariable Variables are most of the time located in the Stream AcquisitionData FunctionalGroup. The location of the ProcessVariable can be found with these prioritized rules:
1) The location of a ProcessVariable shall remain constant between configurations. For example, if the number of Streams changes from one configuration to the other, the ProcessVariables shall be pushed one level up to the AnalyserChannel.
2) ProcessVariable should be located in the same FunctionalGroup as its Source.
The following bullets describe how the above rules should be applied to common scenarios:
- A typical lab analyser has one AnalyserChannel and one sample holder, which translates to a single Stream. In this case, ProcessVariables shall be located at the Stream level.
- A process analyser attached to a multi-port vessel with a fixed hardware setting, in this case also, ProcessVariables shall be located at the Stream level.
- A process analyser is installed on a dolly and can be attached to different vessels for diagnostic purposes. In this case, the number of Streams is likely to change from configuration to configuration. ProcessVariables shall be pushed to least AnalyserChannel level.
- An analyser publishes only a few values through ProcessVariables to mimic a legacy system. In this case, it may make sense to place ProcessVariables at the AnalyserDevice level.
- In gas chromatographs, new Chromatographic Applications (software AnalyserChannels) may be added over the time and similarly new Streams may be added or removed. Because these operations usually require hardware addition and they do not happen very often, it is strongly recommended to apply rule 2) to ensure the consistent way in which the control system views the gas chromatograph.
When a ProcessVariable is linked with another Variable through the Source Reference, it is the Server’s responsibility to copy and maintain in sync the following Attributes and Properties from the Source target:
- Attributes: Value, DataType, ValueRank, ArrayDimensions, AccessLevel, UserAccessLevel, MinimumSamplingInterval
- Standard Properties: TimeZone, DayLightSavingTime, DictionaryFragment, AllowNulls if they are present.
Knowing that the ProcessVariables are used to exchange values with control system, it is a good practice to keep the DataType, ValueRank and ArrayDimensions consistent between configurations.
Also, when the Server responds to read or Subscription Services, the returned DataValue shall be the same for both the ProcessVariable and the Variable pointed by the Source Reference, especially the StatusCode, value and SourceTimestamp.
ProcessVariableType is formally defined in Table 87.
Table 87 – ProcessVariableType Definition
Attribute |
Value |
|||||
BrowseName |
ProcessVariableType |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the DataItemType defined in [[OPC 10000-8] |
||||||
HasDataSource |
Variable |
<Source> |
|
DataItemType (DataType defined by Source Variable) |
Mandatory |
Source is a Reference that usually points to an output Variable of a model but it is allowed to point to another Variable. The DataType of the ProcessVariable shall be the same as the one pointed by Source Reference.