Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

Protocol description
Communication line configuration
Communication line protocol parameters
Communication station configuration
Station protocol parameters
I/O tag configuration
I/O tag address
Comments on ABB Substation management unit COM600
Tell commands
Literature
Zmeny a úpravy
Revízie dokumentuChanges and modifications
Document revisions

Kotva
typy_verzie
typy_verzie
Protocol description

...

Protocol IEC 61850 is an IEC standard designed for communication with Intelligent Electronic Devices (

Kotva
ied
ied
IED) at electrical substations (breakers, protections, transformers, switches, etc).

Protocol  IEC 61850 is - like IEC 60870-6 ICCP/TASE.2 - based on the Manufacturing Message Specification (MMS) and therefore the implementation in the D2000 KOM process uses a common MMS framework.

Implementation of the IEC 61850 protocol in the D2000 system supports this functionality:

  1. Periodic reading of values (polling)
  2. Reading of values from predefined Datasets made available in predefined Information Reports - both buffered and unbuffered
  3. Reading of array elements of which are simple values
  4. Writing to simple types of values (writing to structures is not implemented yet)
  5. Writing to array elements of which are simple values
  6. Browsing - when a communication is established, the following items can be browsed:
    • logical devices within a physical device (in the station address configuration)
    • objects located within the logical device (in the I/O tag configuration)
    • reports located within the logical device (in the I/O tag configuration)

There is no support for the processing of GOOSE and GSSE reports.

...

  • Communication line category: TCP/IP-TCP.
  • TCP Parameters:
    • Host: string max. 80 characters – server name in INET format (a name or numerical address a.b.c.d) 
    • Port: TCP port number (0 to 65535), port 102 is used by default.
    • Line number: not used, set to 1

A valid host name hostname or IP address of the device must be entered according to the rules above.

The port number where the device is listening must also be entered. The ISO over TCP/IP standard uses port 102.

In the case of redundant systems, it is also possible to enter multiple comma-separated names/addresses. When the connection is broken, the communication process will again attempt to establish a connection to the device at given the specified address. If the atttempt attempt is unsuccessful, then the process tries to establish a connection to the next address. This is repeated cyclically until the connection with one server is established.

...

Communication lines - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of the protocol. You can define the following parameters:

...

ParameterMeaningUnit / TypeDefault value
Adress Address parameters of local side (D2000 KOM process)

Kotva
ltsel
ltsel
Local TSEL (hex)

Octet string that represents the local Transport Selector. It identifies the Transport SAP. The maximum size is 32 octets (64 ASCII encoded hexadecimal digits).octet string00 01

Kotva
lssel
lssel
Local SSEL (hex)

Octet string that represents the local Session Selector. It identifies the Session Session SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits).octet string00 01

Kotva
lpsel
lpsel
Local PSEL (hex)

Octet string that represents the local Presentation Selector. It identifies the Presentation SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits).octet string00 00 00 01

Kotva
lapt
lapt
Local AP Title

Local Application Process Title is an identifier that is assigned by an address manager. It represents a specific application process.

string1.3.9999.1

Kotva
laeq
laeq
Local AE Qualifier

Integer value used to identify the local Application Entity.string1

Adress Address parameters of remote side (the IED device)

Kotva
rtsel
rtsel
Remote TSEL (hex)

Octet string that represents the remote Transport Selector. It identifies the Transport SAP. The maximum size is 32 octets (64 ASCII encoded hexadecimal digits).octet string00 01

Kotva
rssel
rssel
Remote SSEL (hex)

Octet string that represents the remote Session Selector. It identifies the Session Session SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits).octet string00 01

Kotva
rpsel
rpsel
Remote PSEL (hex)

Octet string that represents the remote Presentation Selector. It identifies the Presentation SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits).octet string00 00 00 01

Kotva
rapt
rapt
RemoteAP Title

Remote Application Process Title is an identifier that is assigned by an address manager. It represents a specific application process.string1.3.9999.1

Kotva
raeq
raeq
Remote AE Qualifier

Integer value used to identify the remote Application Entity.string1
Common adress parametersaddress parameters

Kotva
btid
btid
Bilateral Table ID

Name of the bilateral table. In the case of IEC 61850, this can be an empt empty string.-
Kotva
mmmss
mmmss
Max MMS Message Size
Maximum size of MMS messages.bytes32000
Kotva
mrp
mrp
Max Requests Pending

Maximum proposed transactions that could be sent and unacknowledged. The value can be reduced if the other party suggests a lower value at negotiation.

1 .. 325
Kotva
mip
mip
Max Indications Pending

Maximum proposed proposed transactions that could be received without sending an acknowledge. The value is sent to the other party.

1 .. 325
Kotva
mnl
mnl
Max Nesting Level
Maximum The maximum level of nesting for MMS data structures.1 .. 105

Kotva
tpdus
tpdus
ISO TPDU Size

The maximum packet size for "ISO over TCP" protocol level (according to RFC 1006)8192/4096/2048/1024/512/256/128 bytes1024  bytes
Kotva
htb
htb
Heartbeat

Timer, which permits the sending ICCP message Identify request to the communicating party to find out the validity of TCP/IP connection. To enable the timer a nonzero value must be specified. If the connection was aborted on the TCP/IP level, the fast detection ensures its faster restoring.
This parameter is recommended in situations when transmitting data via large networks or when a small amount of data is transmitted via the active connection. The value 0 (implicit) turns off the HeartBeat timer. A positive value means the seconds to send a Heartbeat message. If any message is sent, the Heartbeat timer is reset and the Heartbeat message is sent only after a timeout elapses without any communication between partners.

sec0
Kotva
rd
rd
Retry Delay

Delay inserted before repeated attempt to establish the connection after it has been broken. If the connection should be restored as fast as possible, set the low a small value or 0 seconds.

sec10 sec

Kotva
irt
irt
Inter Read Timeout

Maximum waiting time to receive TCP data. After this timeout elapses, the possible requirements (data) for sending to a communicating party are checked.
As the communication is executed via one thread, the high value can reduce the speed of interaction with the party. The recommended value is 50 to 150 milliseconds.

msec100 msec

Kotva
ps
ps
Parallel Stations

The parameter activates creating TCP connections for each station. If the device supports multiple clients, communication can be parallelisedparallelized.
If the parameter is set to NO, a single TCP connection will be created for all communication stations.

YES/NONO

Kotva
if
if
Map IEC 61850 flags

The way IEC 61850 flags are mapped into D2000 flags FAA .. FMM.

IEC 61850 protocol has quality flags mapped into 13 bits of the Quality attribute, details are given in the description of the parameter Quality Index:

Mapping can be:

  • None - flags FA A .. FM M are not set
  • Simple - Quality attribute directly maps to flags FA A .. FMM

Note: after the change of this parameter we recommend a restart of the KOM process or communication partner so that all values come into the system with properly set flags.

None
/
Simple
None

Kotva
to
to
Report Trigger Options

Setting The setting of Trigger prameters parameters used to trigger reports (TrgOps). The following bits are used according to the standard (the numbering is from the highest bit, which is bit 0):

  • bit 0 - reserved
  • bit 1 - data-change
  • bit 2 - quality-change
  • bit 3 - data-update
  • bit 4 - integrity
  • bit 5 - general-interrogation
The default value is 0x74 (all bits are active except integrity - this is activated if the parameter Integrity Period  is  is specified in the report configuration.
Note: ABB Substation Management Unit COM600 required 0x64, it did not support bit 3 - data-update.
1-byte octet string74

Kotva
ab
ab
Additional Browse Items

Parameter The parameter enables to specify specifying additional names of objects to query during browsing for I/O tags. Names must be separated by a space, e.g. "Obj1 Obj2". This makes it possible to handle the situation when IED deliberately does not list some objects in the GetNameList-Response message (response to a requested list of objects within a logical device).
Note: The ABB Substation Management Unit COM600 required parameter setting to LLN0 - this object was not propagated but it was important (it contained e.g. buffered and unbuffered reports).



Kotva
at
at
Authentication Type

Type of authentication. These types of authentication are supported:

  • None - no authentication
  • Password - password-based authentication. The password is transmitted unencrypted within ISO 8650-1 OSI Association Control Service layer.
None
Password
None

Kotva
pa
pa
Password

Password used if Authentication Type = Password

string
Debug settings

Kotva
iobpd
iobpd
Debug I/O binary packets info

Enables debug information on the level of binary packets. See Note 1.YES/NONO
Kotva
isolpd
isolpd
Debug ISO packet level info
Enables debug information on the ISO OSI layer. See Note 1.YES/NONO
Kotva
mmslpd
mmslpd
Debug MMS level info
Enables debug information on the MMS data level. See Note 1.YES/NONO

Kotva
tase2lpd
tase2lpd
Full IEC61850 level info

Enables debug information on the top level of IEC 61850 data. See Note 1.


YES/NONO
Kotva
vilpd
vilpd
Incomming values info
Enables a detail detailed debug information about incoming values (data values). See Note 1.YES/NONO
Kotva
volpd
volpd
Outgoing values info
Enables a detail detailed debug information about outgoing values (data values). See Note 1.YES/NONO

Kotva
poznamka1
poznamka1
Note 1

If all debug info are is enabled, it could cause an overload of communication workstation and decrease of data transfer rate from IED to D2000. After the communication is tuned and debugged, we recommend to minimize minimizing the amount of debug debugging information.

Kotva
komunikacna_stanica
komunikacna_stanica
Communication station configuration

...

  • Communication protocol "IEC 61850".
  • Polling parameters are used for reading of I/O tags of the "Periodically polled value" type.
  • Protocol The protocol does not support time synchronization.
  • in the Time parameters tab, monotonic UTC time (with offset 0) should be set, as IEC 61850 uses UTC-based timestamps (unless a specific implementation is non-compliant with this part of the standard).

Station address

...

The station corresponds to one logical device. In one physical device, one or more logical devices can be defined.  Domain The domain is the name of the logical device values of which we want to read. Multiple statiosn stations can be on one line. For each station, a dedicated TCP connection to a defined physical device will be created.

The Browse button enables to get getting a list of logical devices (if the KOM process is running and communication is established). For Browsing functionality, the device must implement support for getNameList request with parameter ObjectClass = DOMAIN.

...

Communication station - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of the protocol. You can set the following station parameters:

...

Img. No. 2, I/O tag address (Data Value)

The configuration of the I/O tag address requires the following data:

...

If the I/O tag representing the report has a text value, the value will be set to to the name of the Dataset (the $DatSet attribute) that the report publishes.
If the I/O tag representing the report has an integer or a real value, the value will be

...

This mechanism can be used to define "watchdogs" guarding, for example, a communication failure, connection failure, or non-working sending of Information Reports.


Name

A unique text string which identifying that identifies IEC 61850 object or its attribute (a reference). Maximum The maximum size is 64 characters.
Note: if I/O tag's address is specified as %IGNORE, such an I/O tag will be ignored.

...

  • LNVariableName is a name of a Logical Node. The name can be arbitrary, e.g. LLN0, Obj1XCBR1, Obj2XSWI1
  • FC is a Functional Constraint. Table of defined functional constraints can be seen below.
  • LNDataName is a the name of a DataObject. The name can be arbitrary, the standard contains recommended rules concerning naming conventions.
  • AttributeName is a the name of Attribute of a DataObject. Table A table of frequently used attributes can be seen below.
  • subDataAttributeName is a the name of the Attribute of a SubDataObject.  Table A table of frequently used attributes can be seen below.

The standard defines the following naming conventions for individual components of a reference:

...

FC Name

Description

MX

Measurands (analogue analog values)

STStatus information
COControl service parameters
CFConfiguration
DCDescription
SP

Setting (outside setting group)

SGSetting group
RPUnbuffered report control blocks
LGLog control blocks
BRBuffered report control blocks
GOGOOSE control blocks
GSGSSE control blocks
SVSubstituted values
SE

Setting group editing

MSMulticast Sampled Values control block
USUnicast Sampled Values control block
EX

Name space for model extension

SRService tracking
OROperate received
BLBlocking

...

Names of DataObject Attributes and SubDataObject Attributes are defined in ISO/IEC IEC 61850-7-3 and the following table contains only the most common ones:

Attribute Name

Description

ctlModelSpecifies the control model of IEC 61850-7-2 that corresponds to the behaviour behavior of the data.
dTextual description of the data.
evalTmTime window applied to interharmonic calculations. The value shall be represented in ms.
frequencyNominal frequency of the power system or some other fundamental frequency in Hz.
instMagMagnitude of a the instantaneous value of a measured value.
magDeadbanded value. Shall be based on a dead band calculation from instMag.
numCyc

Number The number of cycles of power frequency, which are used for harmonic, subharmonic and interharmonic calculations.

numHar

Number The number of harmonic and subharmonics or interharmonic values that are to be returned as the value attribute.

phsAHar, phsBHar, phsCHarThis array shall contain the harmonic and subharmonics or interharmonic values related to phase A (resp. B, C).
phsABHar, phsBCHar, phsCAHar

This array shall contain the harmonic and subharmonics or interharmonic values related to phase A to phase B (resp. B to C, resp. C to A).

qQuality of the attribute(s) epresenting representing the value of the data
setCharactThis attribute shall describe the curve characteristic.
setMagThe value of an analogue analog setting or set point.
stValStatus The status value of the data
swRevSW-revision
t

Timestamp The timestamp of the last change in one of the attribute(s) representing the value of the data or in the q attribute.

unitsUnits of the attribute(s) representing the value of the data (ISO/IEC IEC 61850-7-3  Annex A)
vendorName of the vendor.

...

Data TypePopis

Kotva
auto
auto
--- Autodetect ---

The Data Type will be queried by a GetVariableAccessAttributes-Request message after the conection connection establishment.

Note 1: information is currently stored only in KOM process memory, therefore after its restart and the first connection establishment the data type detection is performed for all Autodetect I/O tags.
Note 2: data types State and StateQ are undistinguishable by this mechanism, therefore objects of these types are detected as StateQ.
Note 3: the same mechanism for data type detection is used in browsing.

Discrete *ICCP: Integer 32-bit value signed
DiscreteQ *
ICCP: Integer 32-bit signed value + ICCP Validity
DiscreteQTimeTag *
ICCP: Integer 32-bit signed value + ICCP Validity + Time stamp
DiscreteExtended *
ICCP: Integer 32-bit signed value + ICCP Validity + Current Source + Extended time stamp
Real *
ICCP: Float 32
RealQ *
ICCP: Float 32 + ICCP Validity
RealQTimeTag *
ICCP: Float 32 + ICCP Validity + Time stamp
RealExtended *
ICCP: Float 32 + ICCP Validity + Current Source + Extended time stamp
State *ICCP: Discrete 2-bit value
StateQ *ICCP: Discrete 2-bit value + ICCP Validity
StateQTimeTag *
ICCP: Discrete 2-bit value + ICCP Validity + Time stamp
StateExtended *
ICCP: Discrete 2-bit value + ICCP Validity + Current Source + Extended time stamp
BooleanBoolean value
Float3232-bit real value
Float6464-bit real value
Integer88-bit signed integer value
Integer1616-bit signed integer value
Integer3232-bit signed integer value
Integer6464-bit signed integer value
Unsigned88-bit unsigned integer value
Unsigned1616-bit unsigned integer value
Unsigned2424-bit unsigned integer value
Unsigned3232-bit unsigned integer value
OctetStringVariable-length binarny string
VisibleStringVariable-length text string
UnicodeStringVariable-length text string in UTF8 encoding
BitStringVariable-length bit string
UtcTimeAbsolute time (format seconds since 1.1.1970 + milisecondsmilliseconds)
TimeOfDayAbsolute/relative time (format seconds and miliseconds milliseconds of a day + optionally number of days since 1.1.1984)
Array of BooleanArray An array of Boolean values
Array of Float32Array An array of 32-bit real values
Array of Float64Array An array of 64-bit real values
Array of Integer8Array An array of 8-bit signed integer values
Array of Integer16Array An array of 16-bit signed integer values
Array of Integer32Array An array of 32-bit signed integer values
Array of Integer64Array An array of 64-bit signed integer values
Array of Unsigned8Array An array of 8-bit unsigned integer values
Array of Unsigned16Array An array of 16-bit unsigned integer values
Array of Unsigned24Array An array of 24-bit unsigned integer values
Array of Unsigned32Array An array of 32-bit unsigned integer values
Array of OctetStringArray An array of variable-length binarny binary strings
Array of VisibleStringArray An array of variable-length text strings
Array of UnicodeStringArray An array of variable-length text string in UTF8 encoding
Array of BitStringArray An array of variable-length bit strings
Array of UtcTimeArray An array of absolute times (format seconds since 1.1.1970 + milisecondsmilliseconds)
Array of TimeOfDayArray An array of absolute/relative times (format seconds and miliseconds milliseconds of a day + optionally number of days since 1.1.1984)

Kotva
structure
structure
Structure

Structure or Array. Structure The structure can contain simple types, arrays, and nested structures. Arrays consist of elements that can be simple types (here, however, it is more efficient to use some of the Array of types), structures, and arrays. If a data type of an I/O tag is configured as a Structure, the Array Index parameter specifies the complex address of the structure element to be read in the I/O tag.
Note: multiple I/O tags can have the same Name parameter, the Structure data type, and differ only by the Array Index parameter to access the various elements of the structure. If these I/O tags are configured with the I / O Tag Type = Periodically polled value, a single reading request will be sent for all such points.

...

  • For the Autodetect object type and for arrays of elementary types (Array of): it it spossible is possible to specify an index of of an element within an array. The arrays in the IEC 61850 protocol are indexed from 0. Not specifying the index results in accessing the 0-th element.

Note:  For arrays of elementary types (Array of), the IEC61850 supports writing the received values to a target column of a structured variable. 
If the Destinationtab in the configuration of the I/O tag has a Destination column set to a column of a structured variable, the corresponding array items will be written into it. This only works if the Array Index is not entered or is equal to 0.

  • Kotva
    cplx_addr
    cplx_addr
    For the Structure object type: it is necessary to specify a complex addresssaddress of element (of simple type) within a structure.
    The complex address is in form x.y.z.. e.g. 0.2. Individual indices indicate order within a structure or field, a dot indicates a descend deeper.
    Example 1: Communication line log shows a structure consisting of VisibleString elements. Individual elements will be accessed by complex addresses 0.0, 0.1 and 0.2

    Log lineNoteSimple element
    08:08:14.322 29-06-2018|D|MMS> [1] STRUCTURE{Object The object of Structure type
    08:08:14.323 29-06-2018|D|MMS> [1]   Structure{Level 0
    08:08:14.325 29-06-2018|D|MMS> [1]     VisibleString=INFO TECHLevel 0.0yes
    08:08:14.327 29-06-2018|D|MMS> [1]     VisibleString=1.0Level 0.1yes
    08:08:14.329 29-06-2018|D|MMS> [1]     VisibleString=Current harmonics measurementLevel 0.2yes
    08:08:14.332 29-06-2018|D|MMS> [1]   }End of structure
    08:08:14.334 29-06-2018|D|MMS> [1] }End of the Structure object

    Example  2:  Communication line log shows an array consisting of two structures that contain structures that contain elements of of the Float32 type. Individual elements will be accessed by complex addresses 0.0.0 and 1.0.0

    Log lineNoteSimple element

    08:08:14.169 29-06-2018|D|MMS> [1] ARRAY{

    Object The object of Array type

    08:08:14.172 29-06-2018|D|MMS> [1]   Structure{

    Level 0

    08:08:14.173 29-06-2018|D|MMS> [1]     Structure{

    Level 0.0

    08:08:14.175 29-06-2018|D|MMS> [1]       Float32= 0.00000E+00

    Level 0.0.0yes

    08:08:14.177 29-06-2018|D|MMS> [1]     }

    End of structure

    08:08:14.179 29-06-2018|D|MMS> [1]   }

    End of structure

    08:08:14.181 29-06-2018|D|MMS> [1]   Structure{

    Level 1

    08:08:14.183 29-06-2018|D|MMS> [1]     Structure{

    Level 1.0

    08:08:14.185 29-06-2018|D|MMS> [1]       Float32= 1.00000E+02

    Level 1.0.0yes

    08:08:14.186 29-06-2018|D|MMS> [1]     }

    End of structure

    08:08:14.188 29-06-2018|D|MMS> [1]   }

    End of structure

    08:08:14.188 29-06-2018|D|MMS> [1] } 

    End of Array


...

For the Structure object type: it is possible to specify the index where IEC 61850 Quality is located. Format The format of the Quality Index is the same as a complex address.
IEC 61850 Quality is of Bitstring type with a length of 2 bytes. 13 quality bits are defined as follows (the standard numbers the bits so that the highest bit is 0 and the lowest is 15):

...

If at least one of bits number 2-12 is set, the value in D2000 has a Weak attribute.
See the example in Time Index

...

For the Structure object type: it is possible to specify the index where the timestamp is located.  Format of The format of the Time Index is the same as a complex address.

...

Example: information report contains a structure which that contains a Bitstring value followed by qualit quality and timestamp. Therefore the object's address has Array Index = 0, Quality Index = 1 and Time Index = 2.

...

This parameter is enabled for the I/O tags of the "Buffered/ Unbuffered unbuffered Report" type and it specifies a period (in ms) after which a report containing the values of all objects in the given datasheet is generated. Therefore, if a loss of value has occurred in some way, this Integrity Report will periodically restore the integrity of the data. Value 0 turns off the generation of the Integrity Report. The non-zero value causes a write to the $IntgPd report attribute during the report activation  activation
Note: Not all IEC 61850 servers support this parameter.

...

By pressing the Refresh button it is possible to enforce re-querying of the list of objects from the device. By default, the KOM process reads the list of objects and their respective data types only during the first browse request and stores them in memory. This reading can take a longer time, depending on the number of objects and speed of the device. These cached lists are sent to the CNF process(es), so that consecutive filling of the Browse window is fast.

Filtering in the list of objects

The browse windows window enables filtering by the object name and data type. Tt It is not necessary to enter the full text in the filter field. Notation The notation "*FILTERED EXPRESSION*" is supported. The symbol * represents any text before and after the expression (e.g. *momen*).

...

In addition to objects with supported data types (Boolean, Integer32 ...), the object list can contain objects with Structure type. These are the structured objects that can not be directly read. The implementation only supports work with simple types and fields whose elements are simple types, therefore individual items of structured objects need to be communicated.

Note 2

In D2000 versions from 20th December 2018 and newer, the recycling of browser dialog has been implemented. If the dialog is closed by the Cancel button or after selecting an object, it is actually only hidden and it is available for browsing by another I/O tag within the same station so that the tree structure of the browsed objects is preserved. Clicking on the close icon at the top right corner will cause the dialog to be really closed.

Note 3

Writing to I/O tag with the Array data type (Array of *) is supported for text I/O tags (TxtO).  When writing, individual values must be separated by commas, e.g. "1, 2, 3, 7".

...

  • The device contained several configurable logical names, so it required configuration of several stations on the line (addresses e.g. RF_TS3CTRL, RF_TS3DR, RF_TS3LD0).
  • The device has implemented buffered reports. For each report, it supported several instances differing by number (e.g., LLN0$BR$rcbStatUrg01 .. LLN0$BR$rcbStatUrg05, LLN0$BR$rcbMeasReg01 .. LLN0$BR$rcbMeasReg05). For multiple clients, each one had to subscribe to a specific instance of the report in order to avoid conflict.
  • Value of Report Trigger Options parameter had to be 64 (hexadecimal). That means, the device did not support bit 3 - data-update during activation of buffeerd buffered reports.
  • The value of of the Additional Browse Items parameter had to be LLN0 so that multiple objects and information reports are found during browsing.
  • The buffered reports supported the Integrity Period parameter.
  • The individual items of the information reports were of different structure:
    Booleans with quality flags and a timestamp (Array Index = 0, Quality Index = 1, Time Index = 2):

    15:59:54.444 07-12-2018|D|MMS>  [1]     STRUCTURE{
    15:59:54.446 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    15:59:54.448 07-12-2018|D|MMS>  [1]       Bitstring=<00><03>
    15:59:54.450 07-12-2018|D|MMS>  [1]       seconds= 1544108937 fraction= 3898870784 (06-12-2018 16:08:57.908) quality 1 (Accuracy of fraction: 1 bits)
    15:59:54.452 07-12-2018|D|MMS>  [1]     }

    Integers with quality flags and a timestamp (Array Index = 0, Quality Index = 1, Time Index = 2):

    15:59:54.432 07-12-2018|D|MMS>  [1]     STRUCTURE{
    15:59:54.434 07-12-2018|D|MMS>  [1]       Integer8= 1
    15:59:54.436 07-12-2018|D|MMS>  [1]       Bitstring=<00><03>
    15:59:54.438 07-12-2018|D|MMS>  [1]       seconds= 1544108937 fraction= 3834446336 (06-12-2018 16:08:57.893) quality 1 (Accuracy of fraction: 1 bits)
    15:59:54.440 07-12-2018|D|MMS>  [1]     }

    Floats (inside a structure) with quality flags and a timestamp (Array Index = 0.0, Quality Index = 1, Time Index = 2):

    16:00:03.979 07-12-2018|D|MMS>  [1]     STRUCTURE{
    16:00:03.980 07-12-2018|D|MMS>  [1]       Structure{
    16:00:03.981 07-12-2018|D|MMS>  [1]        Float32= 3.11465E+01
    16:00:03.982 07-12-2018|D|MMS>  [1]       }
    16:00:03.982 07-12-2018|D|MMS>  [1]       Bitstring=<00><03>
    16:00:03.984 07-12-2018|D|MMS>  [1]       seconds= 1544184591 fraction= 1623978240 (07-12-2018 13:09:51.378) quality 0 (Accuracy of fraction: 0 bits)
    16:00:03.984 07-12-2018|D|MMS>  [1]     }

    More complicated structures - e.g. multiple Booleans with common quality flags and a timestamp:

    16:00:04.118 07-12-2018|D|MMS>  [1]     STRUCTURE{
    16:00:04.119 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.120 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.120 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.121 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.122 07-12-2018|D|MMS>  [1]       Bitstring=<00><03>
    16:00:04.123 07-12-2018|D|MMS>  [1]       seconds= 1544108877 fraction= 3564805632 (06-12-2018 16:07:57.830) quality 0 (Accuracy of fraction: 0 bits)
    16:00:04.124 07-12-2018|D|MMS>  [1]     }

    or multiple Booleans and Integers with common quality flags and a timestamp:

    16:00:04.107 07-12-2018|D|MMS>  [1]     STRUCTURE{
    16:00:04.108 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.109 07-12-2018|D|MMS>  [1]       Integer8= 0
    16:00:04.110 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.111 07-12-2018|D|MMS>  [1]       Integer8= 0
    16:00:04.112 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.112 07-12-2018|D|MMS>  [1]       Integer8= 0
    16:00:04.113 07-12-2018|D|MMS>  [1]       Boolean=FALSE
    16:00:04.114 07-12-2018|D|MMS>  [1]       Integer8= 0
    16:00:04.115 07-12-2018|D|MMS>  [1]       Bitstring=<00><03>
    16:00:04.116 07-12-2018|D|MMS>  [1]       seconds= 1544184591 fraction= 2075243776 (07-12-2018 13:09:51.483) quality 0 (Accuracy of fraction: 0 bits)
    16:00:04.117 07-12-2018|D|MMS>  [1]     }


...