...
- As a standard OPC UA server, all functional data are organized under the
Root.Objects
node of namespace 0 ( nodeId =i=85
). - For each PIVOT data, there is one node under
Root.Objects
with:- NodeClass =
Object
- NodeId=
ns=1;s=
<PIVOT_ID>
, with<PIVOT_ID>
as provided inexchanged_data.datapoints[].pivot_id
section configuration. - BrowseName= namespace =1, name =
<PIVOT_ID>
- DisplayName =
<PIVOT_ID>
- References:
- HasTypeDefinition:
FolderType
- HasComponent:
<...>
, one for each variable below
- HasTypeDefinition:
- NodeClass =
NodeId | BrowseName/ DisplayName | IsOrganizedBy | NodeClass | Type | Default value | Details |
---|---|---|---|---|---|---|
| <PIVOT_ID> |
(= "i=85") |
|
Parent folder for each PIVOT data | ||||||
| Cause | ns=1;s= <PIVOT_ID> | Variable | UInt32 (Read-Only) | Mandatory | See Cause of Transmission |
| Confirmation | ns=1;s= <PIVOT_ID> | Variable | Boolean (Read-Only) | false | |
| Test | ns=1;s= <PIVOT_ID> | Variable | Boolean (Read-Only) | false | |
| OperatorBlocked | ns=1;s= <PIVOT_ID> | Variable | Boolean (Read-Only) | false | |
| Source | ns=1;s= <PIVOT_ID> | Variable | String (Read-Only) | "process" | "process" | "substituted" |
| ComingFrom | ns=1;s= <PIVOT_ID> | Variable | String (Read-Only) | Mandatory | Any protocol name ("iec104" ,"opcua", ...) |
| TmOrg | ns=1;s= <PIVOT_ID> | Variable | String (Read-Only) | Mandatory | "genuine" | "substituted" |
| TmValidity | ns=1;s= <PIVOT_ID> | Variable | String (Read-Only) | Mandatory | Validity of the Timestamp of Value "good" | "invalid" | "reserved" | "questionable" |
| DetailQuality | ns=1;s= <PIVOT_ID> | Variable | UInt32 (Read-Only) | 0 | OR-Mask of following values:
|
| TimeQuality | ns=1;s= <PIVOT_ID> | Variable | UInt32 (Read-Only) | 0 | OR-Mask of following values:
|
| Value | ns=1;s= <PIVOT_ID> | Variable | (See below) | Mandatory | (See below) |
With <PIVOT_ID>
as provided in exchanged_data.datapoints[].pivot_id
section configuration.
Requirements
The following requirements aim at providing a clear
Notes:
- All read-only variables have a
OpcUa_BadWaitingForInitialData
quality (0x80320000
) intial value until a valid value is received from a south device. - All non-mandatory values will be set automatically be the server if not received from a south device.
- If a mandatory value is missing, then the whole PIVOT object is not updated.
Value content and metadata
PIVOT timestamp
The ns=1;s=
<PIVOT_ID>
/Value
variable contains the pivot timestamp value (t.FractionOfSecond
+ t.SecondSinceEpoch
) is converted to OPC-UA timestamp (Unit= number of 100 nanosecond since Jan 1st,1600.).
The timestamp is not optional in OPCUA. Thus, in case the timestamp were not provided by south layers, the OPC UA north plugin will set the timestamp to 0.
PIVOT value validity
The ns=1;s=
<PIVOT_ID>
/Value
variable contains the pivot value validity
field. It is represented as the OPC UA Quality of the variable, using the following conversion:
PIVOT Validity | OPC UA quality |
---|---|
good | OPC_UA_GOOD |
invalid | OPC_UA_BAD |
reserved | OPC_UA_BAD (not used) |
questionable | OPC_UA_UNCERTAIN |