Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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 in exchanged_data.datapoints[].pivot_id section configuration.
    • BrowseName= namespace =1, name = <PIVOT_ID>
    • DisplayName = <PIVOT_ID>
    • References:
      • HasTypeDefinition: FolderType
      • HasComponent:  <...>  , one for each variable below


NodeIdBrowseName/
DisplayName

IsOrganizedBy

NodeClass TypeDefault valueDetails

ns=1;s=<PIVOT_ID>

<PIVOT_ID>

"Root.Objects"

(= "i=85")

Object 

N.A


Parent folder for each PIVOT data

ns=1;s=<PIVOT_ID>

/Cause

Causens=1;s=<PIVOT_ID>Variable

UInt32

(Read-Only)

MandatorySee Cause of Transmission

ns=1;s=<PIVOT_ID>

/Confirmation

Confirmationns=1;s=<PIVOT_ID>VariableBoolean

(Read-Only)

false

ns=1;s=<PIVOT_ID>

/Test

Testns=1;s=<PIVOT_ID>VariableBoolean

(Read-Only)

false

ns=1;s=<PIVOT_ID>

/OperatorBlocked

OperatorBlockedns=1;s=<PIVOT_ID>VariableBoolean

(Read-Only)

false

ns=1;s=<PIVOT_ID>

/Source

Sourcens=1;s=<PIVOT_ID>VariableString

(Read-Only)

"process"

"process" | "substituted"

ns=1;s=<PIVOT_ID>

/ComingFrom

ComingFromns=1;s=<PIVOT_ID>VariableString

(Read-Only)

MandatoryAny protocol name ("iec104" ,"opcua", ...)

ns=1;s=<PIVOT_ID>

/TmOrg

TmOrgns=1;s=<PIVOT_ID>VariableString

(Read-Only)

Mandatory"genuine" |  "substituted"

ns=1;s=<PIVOT_ID>

/TmValidity

TmValidityns=1;s=<PIVOT_ID>VariableString

(Read-Only)

Mandatory

Validity of the Timestamp of Value

"good" | "invalid" | "reserved" | "questionable"

ns=1;s=<PIVOT_ID>

/DetailQuality

DetailQualityns=1;s=<PIVOT_ID>VariableUInt32

(Read-Only)

0

OR-Mask of following values:

0x0001 = badReference 
0x0002 = failure
0x0004 = inconsistent
0x0008 = innaccurate
0x0010 = oldData
0x0020 = oscillatory
0x0040 = outOfRange
0x0080 = overflow

ns=1;s=<PIVOT_ID>

/TimeAccuracy

TimeQualityns=1;s=<PIVOT_ID>VariableUInt32

(Read-Only)

0

OR-Mask of following values:

0x0001 = clockFailure
0x0002 = clockNotSynch
0x0004 = leapSecondKnown
0x3FF8 = timeAccuracy (24 bits)

ns=1;s=<PIVOT_ID>

/Value

Valuens=1;s=<PIVOT_ID>Variable(See below)Mandatory(See below)

With <PIVOT_ID> as provided in exchanged_data.datapoints[].pivot_id section configuration.

Requirements

...

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 ValidityOPC UA quality
goodOPC_UA_GOOD
invalid OPC_UA_BAD
reserved OPC_UA_BAD (not used)
questionableOPC_UA_UNCERTAIN