JSON Format

List of Data Point Types

The file must contain the list of the Data Point Types to be created. Specifically, the file contains an element (property) named DPTData containing an element named DPTS that is a list of Data Point Type descriptions.

Example:

{

    "DPTData": {

        "DPTS": [ ...<list of DPTs description>...]

    }

}

 

Data Point Type

For each Data Point Type to be created, it is necessary to specify the following data:

Data Point Type Data

Data

Use

Description

Name

Mandatory

Value used as name of the WinCC OA Data Point Type.

NOTE: This name must be a unique value in the database instances names.

DPES

Mandatory

List of Data Point Elements. For details, see Table Data Point Element.

 

Example:

{

    "DPTData": {

        "DPTS": [

            {

                "Name": "Test_NormalPoint",

                "DPES": [ ...<list of DPEs description>... ]

            }

        ]

    }

}

 

Data Point Element

For each Data Point Element to be created, it is necessary to specify the following data:

Data Point Element Data

Data

Use

Description

Name

Mandatory

Value used as name of the WinCC OA Data Point Element,

NOTE: This name must be a unique value in the DPT (or internal structure).

PvssType

Mandatory

An object describing the data type of the element. For details, see Table Data Point Element Data – PvssType.

 

PVSSTYPE Object

The PVSSTYPE object describes the data type of the element. It is necessary to specify the following:

Data Point Element Data – PvssType

Data

Use

Description

PvssType

Mandatory

String representing the data type of the element.

  • If the element is a reference, also the referenced Data Point Type must be specified in the Ref property.
  • If the element is a structure, all its internal Data Point Elements must be defined in the DPES property.
  • If the type is a set, the element of the set must be specified in the DPES property.

For details about the acceptable values, see Table Element Types.

Ref

Mandatory, in case the element is a reference.

Name of the referenced data point type.

DPES

Mandatory, in case the element is a structure or a set.

List of internal DPEs description.

Status

Optional

Object representing an extension of the PvssType configuration. The content of this object depends on the PvssType specified. For details, see Table Data Point Element Status. The empty object (“Status”: { }) resets data.

ArrayAttributes

Optional

Object representing an extension of the PvssType configuration. The content of this object depends on the PvssType specified and is valid only in case of arrays. For details, see Table Data Point Element ArrayAttributes. The empty object (“ArrayAttributes”: { }) resets the data.

 

Example:

{

    "DPTData": {

        "DPTS": [

            {

                "Name": "Test_NormalPoint",

                "DPES": [

                    { "Name": "Char_Value", "PVSSTYPE": { "PvssType": "CHAR" } },

                    { "Name": "UInt_Value", "PVSSTYPE": { "PvssType": "UINT" } },

                    { "Name": "Enum_Value", "PVSSTYPE": { "PvssType": "UINT" } },

                    { "Name": "Int_Value", "PVSSTYPE": { "PvssType": "INT" } },

                    { "Name": "Float_Value", "PVSSTYPE": { "PvssType": "FLOAT" } },

                    { "Name": "Bool_Value", "PVSSTYPE": { "PvssType": "BOOL" } },

                    { "Name": "Bit32_Value", "PVSSTYPE": { "PvssType": "BIT" } },

                    { "Name": "Duration_Value", "PVSSTYPE": { "PvssType": "UINT" } }

                ]

            }

        ]

    }

}

Element Types

Type String

Description

STRUCT

Structure

CHAR

Character

UINT

Unsigned integer

INT

Integer

FLOAT

Double

BOOL

Boolean

BIT

Bit Pattern

STRING

Text

TIME

Data-Time

DPID

Data Point Instance Reference

LANGSTRING

Multilanguage text

BLOB

Blob

BIT64

64-bit pattern

LONG

64-bit integer

ULONG

64-bit unsigned integer

REF

Reference to another existing data point type

ARRAYCHAR

Dynamic array of characters

ARRAYUINT

Dynamic array of unsigned integers

ARRAYINT

Dynamic array of integers

ARRAYFLOAT

Dynamic array of doubles

ARRAYBOOL

Dynamic array of booleans

ARRAYBIT

Dynamic array of bit patterns

ARRAYSTRING

Dynamic array of texts

ARRAYTIME

Dynamic array of date-time values

ARRAYDPID

Dynamic array of data point instance references

ARRAYLANGSTRING

Dynamic array of multilanguage texts

ARRAYBLOB

Dynamic array of blob values

ARRAYBIT64

Dynamic array of 64-bit patterns

ARRAYLONG

Dynamic array of 64-bit integers

ARRAYULONG

Dynamic array of 64-bit unsigned integers

SETCHAR

Set of character elements

SETUINT

Set of unsigned integer elements

SETINT

Set of integer elements

SETFLOAT

Set of double elements

SETBOOL

Set of Boolean Elements

SETBIT

Set of Bit Pattern Elements

SETSTRING

Set of Text Elements

SETTIME

Set of Date-Time Elements

SETDPID

Set of Data Point Instance Reference Elements

SETLANGSTRING

Set of Multilanguage Text Elements

SETBLOB

Set of Blob Elements

SETBIT64

Set of 64-bits pattern elements

SETLONG

Set of 64-bit integer elements

SETULONG

Set of 64-bit unsigned integer elements

It is also possible to define in the JSON file some mandatory Data Points Elements that must be added to all the Data Points Types created.

In this case, the syntax to be used is the same as for the standard Data Point Type, but the name of the Data Point Type must be an asterisk (*).

Example:

{

    "DPTData": {

        "DPTS": [

            {

                "Name": "*",

                "DPES": [

                    { "Name": "MyMandatoryFields", "PVSSTYPE": { "PvssType": "REF", "Ref": "_GmsMyMandatoryFields" } }

                ]

            },

        {

                "Name": "Test_NormalPoint",

                "DPES": [

                    { "Name": "Char_Value", "PVSSTYPE": { "PvssType": "CHAR" } },

                    { "Name": "UInt_Value", "PVSSTYPE": { "PvssType": "UINT" } },

                    { "Name": "Enum_Value", "PVSSTYPE": { "PvssType": "UINT" } },

                    { "Name": "Int_Value", "PVSSTYPE": { "PvssType": "INT" } },

                    { "Name": "Float_Value", "PVSSTYPE": { "PvssType": "FLOAT" } },

                    { "Name": "Bool_Value", "PVSSTYPE": { "PvssType": "BOOL" } },

                    { "Name": "Bit32_Value", "PVSSTYPE": { "PvssType": "BIT" } },

                    { "Name": "Duration_Value", "PVSSTYPE": { "PvssType": "UINT" } }

                ]

            }

        ]

    }

}

 

As every Data Point Type must have references to _GmsRelatedItems and _GmsStatusPropagation, those references – if not present in the file - are automatically added during the import and it is not necessary to declare them in the JSON file.

Also, the property SuppressAlarms is automatically added, if not present in the JSON file, and in this case, it is configured with the standard configuration data. If it is necessary to set different values, with respect to the default ones, the property SuppressAlarms must be explicitly added to the JSON file.

Example JSON File for Object Models with the Same Data Point Types Configuration as the CSV file

NOTICE

The following sample is to be intended as an example of file and not as a template. If you want to make a copy of it and create your own file to import, verify its content carefully and enter the data point types that you want to create. In particular, pay attention to the mandatory DPEs section.

 

{

    "DPTData": {

        "DPTS": [

            {

                "Name": "*",

                "DPES": [

                    { "Name": "MyMandatoryFields", "PvssType": { "PvssType": "REF", "Ref": "_GmsMyMandatoryFields" } }

                ]

            },

            {

                "Name": "Test_NormalPoint",

                "DPES": [

                    { "Name": "Char_Value", "PvssType": { "PvssType": "CHAR" } },

                    { "Name": "UInt_Value", "PvssType": { "PvssType": "UINT" } },

                    { "Name": "Enum_Value", "PvssType": { "PvssType": "UINT" } },

                    { "Name": "Int_Value", "PvssType": { "PvssType": "INT" } },

                    { "Name": "Float_Value", "PvssType": { "PvssType": "FLOAT" } },

                    { "Name": "Bool_Value", "PvssType": { "PvssType": "BOOL" } },

                    { "Name": "Bit32_Value", "PvssType": { "PvssType": "BIT" } },

                    { "Name": "Duration_Value", "PvssType": { "PvssType": "UINT" } }

                ]

            },

            {

                "Name": "Test_PointWithRef",

                "DPES": [

                    { "Name": "String_Value", "PvssType": { "PvssType": "STRING" } },

                    { "Name": "Time_Value", "PvssType": { "PvssType": "TIME" } },

                    { "Name": "DpId_Value", "PvssType": { "PvssType": "DPID" } },

                    { "Name": "LangString_Value", "PvssType": { "PvssType": "LANGSTRING" } },

                    { "Name": "Blob_Value", "PvssType": { "PvssType": "BLOB" } },

                    { "Name": "Reference_Value", "PvssType": { "PvssType": "REF",

"Ref": "_Gms_TestReference" } }

                ]

            },

            {

                Name": "Test_PointWithStruct",

                "DPES": [

                    {

                        "Name": "Struct_Value",

                        "PvssType": {

                            "PvssType": "STRUCT",

                            "DPES": [

                                { "Name": "Int_Value", "PvssType": { "PvssType": "INT" } },

                                { "Name": "String_Value", "PvssType": { "PvssType": "STRING" } },

                                {

                                        "Name": "Struct_Internal",

                                        "PvssType": {

                                            "PvssType": "STRUCT",

                                            "DPES": [

                                                { "Name": "Float_Value", "PvssType": { "PvssType": "FLOAT" } },

                                                { "Name": "Reference_Value", "PvssType": { "PvssType": "REF",

Ref": "_Gms_TestReference" } }

                                            ]

                                        }

                                    }

                                ]

                            }

                        }

                    ]

                },

            {

                "Name": "Test_PointWithArray",

                "DPES": [

                    { "Name": "ArrChar_Value", "PvssType": { "PvssType": "ARRAYCHAR" } },

                    { "Name": "ArrUInt_Value", "PvssType": { "PvssType": "ARRAYUINT" } },

                    { "Name": "ArrInt_Value", "PvssType": { "PvssType": "ARRAYINT" } },

                    { "Name": "ArrFloat_Value", "PvssType": { "PvssType": "ARRAYFLOAT" } }

                ]

            },

            {

                "Name": "Test_PointWithSet",

                "DPES": [

                    {

                        "Name": "SetChar_Value",

                        "PvssType": {

                            "PvssType": "SETCHAR",

                            "DPES": [

                                { "Name": "Char1", "PvssType": { "PvssType": "CHAR" } },

                                { "Name": "Char2", "PvssType": { "PvssType": "CHAR" } }

                            ]

                        }

                    },

                    {

                        "Name": "SetUint_Value",

                        "PvssType": {

                            "PvssType": "SETUINT",

                            "DPES": [

                                { "Name": "UInt1", "PvssType": { "PvssType": "UINT" } },

                                { "Name": "UInt2", "PvssType": { "PvssType": "UINT" } },

                                { "Name": "UInt3", "PvssType": { "PvssType": "UINT" } }

                            ]

                        }

                    }

                ]

            }

        ]

    }

}

 

 

Data Point Type Configuration

The JSON file can contain data to configure a Data Point Type. It is possible to specify the following:

Data Point Type Configuration Data

Data

Use

Description

Description

Optional

List of values used as descriptions of the property. Each value must contain the following:

  • Culture: culture of the text (for example, “en-US”).
  • Text: description.

The empty list (“Description”: [ ]) resets the description while the name of data point type is assumed as default description.

NOTE: During the re-import, if the Override protection flag is set, the description cannot be modified.

ManagedType

Optional

A number representing the managed type of the element. For a complete list of Desigo CC managed types, see CC Managed Types.

DefaultProp

Optional

Property used as default for the object model.

The empty string (“DefaultProp”: “”) resets the default property and in this case, the first property will be assumed as the default one.

If the default property is part of a structure or a reference, the complete name must be specified (<name of structure>.<name of property> - for example: “Struct_Value.Int_Value”).

If the default property is an element of a set, the name must be composed by the set name and the property index (<set name>[<index>] – for example: “SetChar_Value[1]”). Note that the index starts with “1”.

Validation

Optional

True if the validation must be enabled.

GenericCreate

Optional

True if the instances of this DPT can be created using the Object Configurator.

GenericDelete

Optional

True if the instances of this DPT can be deleted using the Object Configurator.

MaxChildren

Optional

Maximum allowed number of children of this type. The value -1 or UInt32.MaxValue corresponds to no limit.

ChildName

Optional

Default name for the instances of this DPT. The empty string (“ChildName”: “”) erases the default name.

ChildNameReadOnly

Optional

True if the name of the instances is read-only.

ParentTypes

Optional

List of the parent types.

The empty list (“ParentTypes”: [ ]) removes the configured parent nodes.

Classification

Optional

Object containing the data of the object model classification. For details, see Table Classification Data.

The empty object (“Classification”: { }) resets the classification data.

 

Classification Data

Data

Use

Description

Valid

Optional

Validity flag. If false, the classification data is set but considered invalid.

Disc

Optional

Discipline number. The value UInt32.MaxValue resets the discipline value.

NOTE: If Disc or SubDisc are missing (it is enough that only one of them is missing), discipline and subdiscipline are ignored.

SubDisc

Optional

Subdiscipline number. The value UInt32.MaxValue resets the subdiscipline value.

NOTE: If Disc or SubDisc are missing (it is enough that only one of them is missing), discipline and subdiscipline are ignored.

Type

Optional

Type number. The value UInt32.MaxValue resets the type value.

NOTE: If Type or SubType are missing (it is enough that only one of them is missing), type and subtype are ignored.

SubType

Optional

Subtype number. The value UInt32.MaxValue resets the subtype value.

NOTE: If Type or SubType are missing (it is enough that only one of them is missing), type and sub-type are ignored.

Example:

{

    "DPTData": {

        "DPTS": [

            {

                Name": "*",

                "DPES": [

                    { "Name": "MyMandatoryFields", "Type": "REF", "Ref": "_GmsMyMandatoryFields" }

                ]

            },

            {

                "Name": "Test_NormalPoint",

                "Description":[{"Culture":"en-US", "Text":"Normal Point"}],

                "ManagedType": 0,

                "DefaultProp": "Float_Value",

                "Validation": true,

                "GenericCreate": true,

                "GenericDelete": true,

                    "MaxChildren": 10,

                "ChildName": "NormalPoint",

                "ChildNameReadOnly": false,

                "ParentTypes": ["GMS_Aggregator", "GmsOPCNetwork"],

                "Classification": {

                    "Valid": true,

                    "Disc": 0,

                    "SubDisc": 0,

                    "Type": 0,

                    "SubType": 0

                },

                "DPES": [

                    { "Name": "Char_Value", "PvssType": { "PvssType": "CHAR" } },

                    { "Name": "UInt_Value", "PvssType": { "PvssType": "UINT" } },

                    { "Name": "Enum_Value", "PvssType": { "PvssType": "UINT" } },

                    { "Name": "Int_Value", "PvssType": { "PvssType": "INT" } },

                    { "Name": "Float_Value", "PvssType": { "PvssType": "FLOAT" } },

                    { "Name": "Bool_Value", "PvssType": { "PvssType": "BOOL" } },

                    { "Name": "Bit32_Value", "PvssType": { "PvssType": "BIT" } },

                    { "Name": "Duration_Value", "PvssType": { "PvssType": "UINT" } }

                ]

            }

        ]

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

The following image shows the corresponding fields in the Object Configurator tab:

All the configuration data described here is ignored if the Name of the Data Point Type is an asterisk (“*”), because this name does not identify a Data Point Type but a set of mandatory Data Point Elements.

During the first import, if the previous configuration data is not present in the JSON file, the default values are assumed.

In the subsequent re-import, if one configuration data is not present in the file, the value is not changed.

 

Data Point Element Configuration

The JSON file can contain data to configure a Data Point Element. It is possible to specify the following:

Data Point Element Configuration Data

Data

Use

Description

Description

Optional

List of values used as descriptions of the WinCC OA object model. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: description

The empty list (“Description”: [ ]) resets the description, while the name of the DPE is assumed as default description.

VL

Optional

True to enable logging properties in the Value Log (Event) of the History Database.

AL

Optional

True to enable logging properties in the Activity Log of the History Database.

DL0

Optional

True to enable Display Level 0 (properties will be visible in Engineering mode).

DL1

Optional

True to enable Display Level 1 (properties will be visible in the Status and Commands window available for graphic objects.).

DL2

Optional

True to enable Display Level 2 (properties will be visible in the Operation tab).

DL3

Optional

True to enable Display Level 3 (properties will be visible in the Extended Operation tab).

DL4

Optional

True to enable Display Level 4 (properties to be exposed to the OPC server interface and other northbound interfaces in future that will make use of this setting).

GroupId

Optional

String representing the property group. For details about the acceptable values, see Table Group ID Values. The empty string (“GroupId”: “”) sets the value as “Invalid”.

Persist

Optional

True if the value of the property must be persisted in the database any time its value changes.

Display

 

Object containing the display data for the data point element. For details, see Table Display Data.

The empty object (“Display”: { }) resets the display data.

GmsType

Optional

An object representing the GMS type configuration data. This object must contain the GmsType element describing the GMS type of the property. For details about the acceptable values, see Table GMSType.

Commands

Optional

Commands associated to the current property.

For details about the definition of a command, see Commands Configuration.

Alarms

Optional

Alarms associated to the current property.

For details about the definition of a command, see Alarms Configuration.

 

It is also possible to extend the PvssType object of a data point element (see Table Data Point Element Data – PvssType) in order to specify:

 

Status Object

The Status object must contain the following:

Data Point Element Status

Data

Use

Description

Stat

Optional

True to enable the off-normal status. If the flag is false, the Normal Value is ignored.

DisplOffNormal

Optional

True to display off-normal values only.

NormalValue

Optional

Normal value of the DPE.

The specified value must follow the specified PvssType. In particular:

  • CHAR and ARRAYCHAR: integer (0 ÷ 255)
  • UINT and ARRAYUINT: integer (0 ÷ 4294967295)
  • INT and ARRAYINT: integer (-2147483648 ÷ 2147483647)
  • FLOAT and ARRAYFLOAT: number (-1.797693e+308 ÷ 1.797693e+308)
  • BOOL and ARRAYBOOL: Boolean (false or true)
  • BIT and ARRAYBIT: integer (0 ÷ 4294967295)
  • STRING and ARRAYSTRING: string
  • STRING and ARRAYSTRING when GmsDataType (see Table GMSType) is GMSDATETIME: BACnetDateTime string format ('YYYMMDDWhhmmssHH' – for details, see the PvssMgr documentation).
  • BIT64 and ARRAYBIT64: integer (0 - 18446744073709551615)
  • LONG and ARRAYLONG: integer (-9223372036854775808 - 9223372036854775807)
  • ULONG and ARRAYULONG: integer(0 - 18446744073709551615)

For all the other PvssType, the Normal Value is not applicable, and it is ignored.

In case of set types, the Normal Value can be specified for each element of the set.

ArrayAttributes Object

The ArrayAttributes object must contain the following:

Data Point Element ArrayAttributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

TextGroup

Optional

The name of the text group. The empty string (“TextGroup”: “”) resets the text group.

Group ID Values

GroupId String

Description

INVALID

Invalid

STATUS

Status group

CONFIG

Configuration group

DIAGNOSTIC

Diagnostic group

OWNERSHIP

Ownership group

Display Data

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Icon

Optional

Object containing the data of the icon library and icon to be used to represent the property. For details, see Table Icon Data. The empty object (“Icon”: { }) resets the icon.

 

Icon Data

Data

Use

Description

Library

Optional

Name of the library that contains the icon to be used to represent the property. If the string is empty (“Library”: “”), the icon is ignored.

NOTE: If the Library or the Name are empty (it is enough that only one of them is empty), the icon is ignored.

Name

Optional

Name of the icon to be used to represent the property. If the string is empty (“Name”: “”), the icon is ignored.

NOTE 1: If the Library or the Name are empty (it is enough that only one of them is empty), the icon is ignored.

NOTE 2: The icon name must contain the file extension (for example: “.png”, “.ico”, and so on). If the extension is not specified, “.png” is assumed.

It is also possible to specify the GmsType of the property. For details about the acceptable values, see Table GMSType.

Example:

{

    "DPTData": {

        "DPTS": [

            {

                "Name": "*",

                "DPES": [

                    { "Name": "MyMandatoryFields", "PvssType": { "PvssType": "REF", "Ref": "_GmsMyMandatoryFields" } }

                ]

            },

            {

                "Name": "Test_NormalPoint",

                "Description": [ { "Culture": "en-US", "Text": "Normal Point" } ],

                "ManagedType": 0,

                "DefaultProp": "Float_Value",

                "Validation": true,

                "GenericCreate": true,

                "GenericDelete": true,

                "MaxChildren": 10,

                "ChildName": "NormalPoint",

                "ChildNameReadOnly": false,

                "ParentTypes": [ "GMS_Aggregator", "GmsOPCNetwork" ],

                "Classification": {

                    "Disc": 0,

                    "SubDisc": 0,

                    "Type": 0,

                    "SubType": 0

                },

                "DPES": [

                    {

                        "Name": "Char_Value",

                        "PvssType": {

                            "PvssType": "CHAR",

                            "Status": {

                                "Stat": true,

                                "DisplOffNormal": true,

                                "NormalValue": 101

                            }

                        },

                        "VL": true,

                        "AL": true,

                        "DL0": true,

                        "DL1": true,

                        "DL2": false,

                        "DL3": false,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Char Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        },

                        "GmsType": { "GmsType": "GMSUINT" }

                    },

                    {

                        "Name": "UInt_Value",

                        "PvssType": { "PvssType": "UINT" },

                        "VL": true,

                        "AL": true,

                        "DL0": false,

                        "DL1": false,

                        "DL2": true,

                        "DL3": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Unsigned Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    },

                    {

                        "Name": "Enum_Value",

                        "PvssType": { "PvssType": "UINT" },

                        "VL": true,

                        "AL": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Enum Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    },

                    {

                        "Name": "Int_Value",

                        "PvssType": { "PvssType": "INT" },

                        "VL": true,

                        "AL": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Integer Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    },

                    {

                        "Name": "Float_Value",

                        "PvssType": { "PvssType": "FLOAT" },

                        "VL": true,

                        "AL": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Real Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    },

                    {

                        "Name": "Bool_Value",

                        "PvssType": { "PvssType": "BOOL" },

                        "VL": true,

                        "AL": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Bool Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    },

                    {

                        "Name": "Bit32_Value",

                        "PvssType": { "PvssType": "BIT" },

                        "VL": true,

                        "AL": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "BitString Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    },

                    {

                        "Name": "Duration_Value",

                        "PvssType": { "PvssType": "UINT" },

                        "VL": true,

                        "AL": true,

                        "Persist": true,

                        "GroupId": "CONFIG",

                        "Description": [ { "Culture": "en-US", "Text": "Duration Value" } ],

                        "Display": {

                            "Valid": true,

                            "Icon": {

                                "Library": "Global_Base_HQ_1",

                                "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    }

                ]

            },

            {

                "Name": "Test_PointWithArray",

                "Description": [ { "Culture": "en-US", "Text": "Point with Array" } ],

                "ManagedType": 0,

                "DefaultProp": "ArrChar_Value",

                "Validation": true,

                "GenericCreate": true,

                "GenericDelete": true,

                "MaxChildren": 4294967295,

                "ChildName": "PointWithArray",

                "ChildNameReadOnly": false,

                "ParentTypes": [ "GMS_Aggregator" ],

                "Classification":

                {

                    "Valid": true,

                    "Disc": 0,

                    "SubDisc": 0,

                    "Type": 0,

                    "SubType": 0

                },

                "DPES": [

                    { "Name": "ArrChar_Value", "PvssType": { "PvssType": "ARRAYCHAR" } },

                    {

                        "Name": "ArrUInt_Value",

                        "PvssType": {

                            "PvssType": "ARRAYUINT",

                            "Status": {

                                "Stat": true,

                                "DisplOffNormal": true,

                                "NormalValue": 100

                            },

                            "ArrayAttributes": {

                                "Valid" : true,

                                "TextGroup" : "TxG_Status"

                            }

                        },

                    },

                    { "Name": "ArrInt_Value", "PvssType": { "PvssType": "ARRAYINT" } },

                    { "Name": "ArrFloat_Value", "PvssType": { "PvssType": "ARRAYFLOAT" } }

                ]

            }

        ]

    }

}

 

GMSType

It is also possible to specify the GmsType of the property. For details about the acceptable values, see the following table.

GMSType Values

GmsType String

Description

GMSBOOL

GmsBool type

GMSINT

GmsInt type

GMSUINT

GmsUint type

GMSREAL

GmsReal type

GMSENUM

GmsEnum type

GMSBITSTRING

GmsBitString type

GMSDATETIME

GmsDateTime type

GMSDURATION

GmsDuration type

GMSBITSTRING64

GmsBitString64 type

GMSINT64

GmsInt64 type

GMSUINT64

GmsUint64 type

GMSNONE

No GMS type is set.

 

NOTICE
Unsupported Types

The types GmsAny and GmsApplSpecific are not supported.

 

The following image shows the corresponding fields in the Models & Functions tab:

 

According to the GmsType, it is possible to configure specific data. For details, see the following sections.

During the first import, if the previous configuration data is not present in the JSON file, the default values are assumed. In the subsequent re-import, if a configuration data is not present in the file, the value is not changed. This is valid also for the specific data related to the different GmsTypes.

 

GmsBool Configuration

GmsBool Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSBOOL

Attributes

Optional

Object containing the attributes of the property. For details, see Table GmsBool Attributes. The empty object (“Attributes”: { }) resets the attributes data.

 

GmsBool Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but is considered invalid.

TextGroup

Optional

The name of the text group to be used for the texts corresponding to the values 0 (false) and 1 (true). The empty string (“gTextGroup”: “”) reset the text group.

Example:

{

    "Name": "Bool_Value",

    "PvssType": { "PvssType": "BOOL" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Bool Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

        "GmsType": {

            "GmsType": "GMSBOOL",

            "Attributes": {

                "Valid": true,

                "TextGroup": "TxG_NoYes"

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsInt Configuration

GmsInt Type Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSINT

Attributes

Attributes

Object containing the attributes of the property. For details, see Table GmsInt Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsInt Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For details, see Table GmsInt Properties. If the object is empty (“Properties”: { }), the range values are reset, and the range is Int32.MinValue ÷ Int32.MaxValue or -128 ÷ 127 according to the PvssType.

UnitText

Optional

Object containing the engineering unit data. For details, see Table Engineering Unit. If the object is empty (“UnitText”: { }), the engineering unit is reset.

GmsInt Properties

Data

Use

Description

Min

Optional

Min value.

Max

Optional

Max value.

Since the GmsInt can be based either on PvssInt or PvssChar, the values Min and Max must respect the following limits:

  • In case of PvssInt: -2147483648 ÷ 2147483647
  • In case of PvssChar: -128 ÷ 127

 

Engineering Unit

Data

Use

Description

TextGroup

Optional

Unit Text Group containing the specified engineering unit.

NOTE: If the TextGroup string or Unit string are empty (it is enough that only one of them is empty), the engineering unit is ignored.

Unit

Optional

String representing the engineering unit.

This string must be written according to Desigo CC default language (en-US).

NOTE: If the TextGroup string or Unit string are empty (it is enough that only one of them is empty), the engineering unit is ignored.

Example:

{

    "Name": "Int_Value",

    "PvssType": { "PvssType": "INT" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Integer Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSINT",

        "Attributes”: {

            "Valid": true,

            "UnitText": {

                "Unit": "°C",

                "TextGroup": "TxG_EngineeringUnits"

            },

            "Properties”: {

                "Min": -40,

                "Max": 70

            }

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsUint Configuration

GmsUint Type Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSUINT

Attributes

Optional

Object containing the attributes of the property. For details, see Table GmsUint Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsUint Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For details, see Table GmsUint Properties. If the object is empty (“Properties”: { }), the range values are reset, and the range is UInt32.MinValue ÷ UInt32.MaxValue or 0 ÷ 255 according to the PvssType.

UnitText

Optional

Object containing the engineering unit data. For details, see Table Engineering Unit. If the object is empty (“UnitText”: { }), the engineering unit is reset.

GmsUint Properties

Data

Use

Description

Min

Optional

Min value.

Max

Optional

Max value.

Since the GmsUint can be based either on PvssUint or PvssChar, the values Min and Max must respect the following limits:

  • In case of PvssUInt: 0 ÷ 4294967295
  • In case of PvssChar: 0 ÷ 255

 

Example:

{

    "Name": "UInt_Value",

    "PvssType": { "PvssType": "UINT" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Unsigned Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSUINT",

        "Attributes”: {

            "Valid”: true,

            "Properties”: {

                "Min": 0,

                "Max": 100

            },

            "UnitText": {

                "Unit": "%",

                "TextGroup": "TxG_EngineeringUnits"

            }

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsReal Configuration

GmsReal Configuration Data

Data

Use

Description

GmsType

Optional

GMSREAL

Attributes

Optional

Object containing the attributes of the property. For details, see the table GmsReal Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsReal Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values and the resolution. For details, see Table GmsReal Properties. If the object is empty (“Properties”: { }), the values are reset: the range is double.MinValue ÷ double.MaxValue, while the resolution is 0.

UnitText

Optional

Object containing the engineering unit data. For details, see Table Engineering Unit. If the object is empty (“UnitText”: { }), the engineering unit is reset.

GmsReal Properties

Data

Use

Description

Min

Optional

Min value. The value must be expressed according to the CultureInfo.InvariantCulture.

Max

Optional

Max value. The value must be expressed according to the CultureInfo.InvariantCulture.

Res

Optional

Resolution. The max value for the resolution is 16.

Example:

{

    "Name": "Float_Value",

    "PvssType": { "PvssType": "FLOAT" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Real Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSREAL",

        "Attributes”: {

            "Valid”: true,

            "UnitText": {

                "Unit": "KWh",

                "TextGroup": "TxG_EngineeringUnits"

            },

            "Properties": {

                "Min": 0.00,

                "Max": 100.00,

                "Res": 2

            }

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsEnum Configuration

GmsEnum Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSENUM

Attributes

Optional

Object containing the attributes of the property. For details, see Table GmsEnum Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsEnum Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For details, see Table GmsEnum Properties. If the object is empty (“Properties”: { }), the range values are reset, while the range is UInt32.MinValue ÷ UInt32.MaxValue.

TextGroup

Optional

Name of the text group to be used for the texts corresponding to the enumerative. If the string is empty (“TextGroup”: “”), the value is reset.

GmsEnum Properties

Data

Use

Description

Min

Optional

Min value.

Max

Optional

Max value.

Example:

{

    "Name": "Enum_Value",

    "PvssType": { "PvssType": "UINT" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description":[{"Culture":"en-US", "Text":"Enum Value"}],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSENUM",

        "Attributes": {

            "Valid": true,

            "Properties": {

                "Min": 0,

                "Max": 8

            },

            "TextGroup": "TxG_Status"

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsBitString Configuration

GmsBitString Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSBITSTRING

Attributes

Optional

Object containing the attributes of the property. For details, see Table GmsBitString Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsBitString Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For details, see Table GmsBitString Properties. If the object is empty (“Properties”: { }), the range values are reset.

TextGroup

Optional

Name of the text group to be used. If the string is empty (“TextGroup”: “”), the value is reset.

SecondTextGroup

Optional

Name of the secondary text group to be used. If the string is empty (“SecondaryTextGroup”: “”), the value is reset.

GmsBitString Attributes

Data

Use

Description

FirstBit

Optional

Index of the first bit to be used (from 0 to 31).

LastBit

Optional

Index of the last bit to be used (from 0 to 31).

Example:

{

    "Name": "Bit32_Value",

    "PvssType": { "PvssType": "BIT" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "BitString Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSBITSTRING",

        "Attributes":

        {

            "Valid": true,

            "Properties": {

                "FirstBit": 0,

                "LastBit": 2

            },

            "TextGroup": "TxG_LoadLevels",

            "SecondTextGroup": "TxG_OperationalStatus"

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsDateTime Configuration

GmsDateTime Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSDATETIME

Attributes

Optional

Object containing the attributes of the property. For details, see Table GmsDateTime Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsDateTime Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid properties. For details, see Table GmsDateTime Properties. If the object is empty (“Properties”: { }), the values are set to false.

TimeDetail

Optional

String representing the time detail. For details about the acceptable values, see Table TimeDetail Values. If the string is empty (“TimeDetail”: “”), the value is set to BACnetDateTime.eDetail.DateTimeValid.

TimeRes

Optional

String representing the time resolution. For details about the acceptable values, see Table TimeRes Values. If the string is empty (“TimeRes”: “”), the value is set to PropertyGmsDateTime.eResolution.Seconds.

GmsDateTime Properties

Data

Use

Description

AllowDayOfWeek

Optional

True to allow the day of the week representation.

AllowWildcards

Optional

True to allow the use of wildcards.

TimeDetail Values

Data

Description

NONE

Nothing valid.

DATE

Property that contains a value representing a date.

TIME

Property that contains a value representing a time.

DATETIME

Property that contains a value representing a date and a time.

TimeRes Values

Data

Description

SEC

Property that contains a time value with a resolution for the seconds display.

10TH

Property that contains a time value with a resolution of the 10th seconds.

100TH

Property that contains a time value with a resolution of the 100th seconds.

Example:

{

    "Name": "String_Value",

    "PvssType": { "PvssType": "STRING" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "DateTime Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSDATETIME",

        "Attributes": {

            "Valid": true,

            "Properties": {

                "AllowDayOfWeek": true,

                "AllowWildcards": true

            },

            "TimeDetail": "DATETIME",

            "TimeRes": "SEC"

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsDuration Configuration

GmsDuration Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSDURATION

Attributes

Optional

Object containing the attributes of the property. For details, see Table GmsDuration Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsDuration Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For details, see Table GmsDuration Properties. If the object is empty (“Attributes”: { }), the range values are reset, while the range is UInt32.MinValue ÷ UInt32.MaxValue.

DurationUnit

Optional

String representing the measurement unit of the property value. For details about the acceptable values, see Table DurationUnit Values. If the string is empty (“DurationUnit”: “”), the value is set to PropertyGmsDuration.eUnit.Sec.

DurationRes

Optional

String representing the resolution of the property value. For details about the acceptable values, see Table DurationRes Values. If the string is empty (“DurationRes”: “”), the value is set to PropertyGmsDuration.eResolution.Sec.

GmsDuration Properties

Data

Use

Description

Min

Optional

Min value.

Max

Optional

Max value.

DurationUnit Values

Data

Description

DAY

Day

HOUR

Hour

MIN

Min

SEC

Sec

DSEC

Decimal Sec

CSEC

Centi Sec

MSEC

Milli Sec

DurationRes Values

Data

Description

D

Day

DH

Day-Hour

DHM

Day-Hour-Min

DHMS

Day-Hour-Min-Sec

DHMSM

Day-Hour-Min-Sec-Ms

H

Hour

HM

Hour-Min

HMS

Hour-Min-Sec

HMSM

Hour-Min-Sec-Ms

M

Min

MS

Min-Sec

MSM

Min-Sec-Ms

S

Sec

SM

Sec-Ms

Example:

{

    "Name": "Duration_Value",

    "PvssType": { "PvssType": "UINT" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description":[{"Culture":"en-US", "Text":"Duration Value"}],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSDURATION",

        "Attributes”: {

            "Valid": true,

            "Properties”: {

                "Min": 0,

                "Max": 10000

            },

            "DurationUnit": "MSEC",

            "DurationRes": "SM"

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

 

GmsBitString64 Configuration

GmsBitString64 Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSBITSTRING64

Attributes

Optional

Object containing the attributes of the property. For more details, see Table GmsBitString64 Attributes.

The empty object (“Attributes”: { }) resets the attributes data.

GmsBitString64 Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For more details, see Table GmsBitString64 Properties.

If the object is empty (“Properties”: { }), the range values are reset.

TextGroup

Optional

Name of the text group to be used. If the string is empty (“TextGroup”: “”), the value is reset.

GmsBitString64 Properties

Data

Use

Description

FirstBit

Optional

Index of the first bit to be used (from 0 to 63).

LastBit

Optional

Index of the last bit to be used (from 0 to 63).

Example:

    "Name": "Bit64_Value",

    "PvssType": {

        "PvssType": "BIT64",

        "Status": {

            "Stat": true,

            "DisplOffNormal": true,

            "NormalValue": 9

        }

    },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Bit64 Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSBITSTRING64",

        "Attributes": {

            "Valid": true,

            "Properties" : {

                "FirstBit": 0,

                "LastBit": 63

            },

            "TextGroup": "TxG_AlertState"

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

GmsInt64 Configuration

GmsInt64 Type Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSINT64

Attributes

Optional

Object containing the attributes of the property. For more details, see Table GmsInt64 Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsInt64 Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For more details see Table GmsInt64 Properties. If the object is empty (“Properties”: { }), the range values are reset, and the range is Int64.MinValue ÷ Int64.MaxValue.

UnitText

Optional

Object containing the engineering unit data. For more details see, Table Engineering Unit. If the object is empty (“UnitText”: { }), the engineering unit is reset.

GmsInt64 Properties

Data

Use

Description

Min

Optional

Min value

Max

Optional

Max value

 

NOTICE

The values Min and Max must respect the following limits: -9223372036854775808 ÷ 9223372036854775807.

 

Example:

{

    "Name": "Long_Value",

    "PvssType": {

        "PvssType": "LONG",

        "Status": {

            "Stat": true,

            "DisplOffNormal": true,

            "NormalValue": -99

        }

    },

    "VL": true,

    "AL": true,

    "DL0": true,

    "DL1": true,

    "DL2": true,

    "DL3": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Long Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSINT64",

        "Attributes": {

            "Valid": true,

            "UnitText": {

                "TextGroup": "MyText",

                "Unit": "§"

            },

            "Properties":{

                "Min": -40000,

                "Max": 40000

            }

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

GmsUint64 Configuration

 

GmsUint64 Type Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSUINT

Attributes

Optional

Object containing the attributes of the property. For more details, see Table GmsUint64 Attributes. The empty object (“Attributes”: { }) resets the attributes data.

GmsUint64 Attributes

Data

Use

Description

Valid

Optional

Validity flag. If false, the display data is set but considered invalid.

Properties

Optional

Object containing the valid range values. For more details see Table GmsUint64 Properties. If the object is empty (“Properties”: { }), the range values are reset, and the range is UInt64.MinValue ÷ UInt64.MaxValue.

UnitText

Optional

Object containing the engineering unit data. For more details see, Table Engineering Unit. If the object is empty (“UnitText”: { }), the engineering unit is reset.

GmsUint64 Properties

Data

Use

Description

Min

Optional

Min value

Max

Optional

Max value

 

NOTICE

The values Min and Max must respect the following limits: 0 ÷ 18446744073709551615.

 

Example:

{

    "Name": "ULong_Value",

    "PvssType": {

        "PvssType": "ULONG",

        "Status": {

            "Stat": true,

            "DisplOffNormal": true,

            "NormalValue": 66

        }

    },

    "VL": true,

    "AL": true,

    "DL0": true,

    "DL1": true,

    "DL2": true,

    "DL3": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Unsigned Long Value" } ],

    "GmsType": {

        "GmsType": "GMSUINT64",

        "Attributes": {

            "Valid": true,

            "Properties":{

                "Min": 0,

                "Max": 100000

            "UnitText": {

                "TextGroup": "MyText",

                "Unit": "°"

            }

        }

    }

}

 

The following image shows the corresponding fields in the Models & Functions tab:

GmsNone Configuration

GmsNone Configuration Data

Data

Use

Description

GmsType

Mandatory

GMSNONE

The GMSNONE type is a special type used during the re-import of an object model in case it is necessary to remove the configuration of the GmsType previously made and restore the original PvssType.

The GMSNONE type is ignored in case an object model is created for the first time.

The following example shows how to use GMSNONE for configuring a data point previously configured as a GmsBool. After the re-import, the type of the “Bool_Value” is “PvssBool”.

{

    "Name": "Bool_Value",

    "PvssType": { "PvssType": "BOOL" },

    "VL": true,

    "AL": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Bool Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSNONE"

    }

}

References Configuration

If a Data Point Element is of reference type, the resulting Data Point Type will contain all the properties (DPEs) of the referenced type.

In this case, it is not necessary that the JSON file contains the definition of the referenced type. Anyway, it can be necessary to configure some of these properties (DPEs).

To configure the properties of the referenced Data Point Types, the JSON file must contain an element (property) named REFS with an element named DPTS that is a list of the referenced Data Point Types with the configuration of their properties.

Example:

{

    "DPTData": {

        "DPTS": [ ...<list of DPTs description>...]

    },

    "REFS": {

        "DPTS": [ ...<list of Referenced DPTs configuration>...]

    }

}

 

For each referenced Data Point Type, it is necessary to specify the following:

Referenced Data Point Type Data

Data

Use

Description

Name

Mandatory

Name of the referenced Data Point Type.

DPES

Mandatory

List of Data Point Elements.

Only the properties that must be configured are defined in the file.

Example:

{

    "DPTData": {

        "DPTS": [ ...<list of DPTs description>...]

    },

    "REFS": {

        "DPTS": [

            { "Name": "_GmsMyMandatoryFields",

            "DPES": [

                { "Name": "MandatoryText", "PvssType": { "PvssType": "STRING"},

                    "VL": true, "AL": true,

                    "Persist": true, "GroupId": "CONFIG",

                    "Description":[{"Culture":"en-US", "Text":"Mandatory Text"}],

                    "Display": {

                        "Valid": true,

                        "Icon": {

                            "Library": "Global_Base_HQ_1",

                            "Name": "Op_DP_Generic_None_001.png"

                            }

                        }

                    }

                ]

            }

        ]

    }

}

 

The configuration of the Data Point Elements is the same as described in section Data Point Element.

The configuration of a referenced Data Point Type is applied to all the Data Point Types (defined in the JSON file) that reference the referenced Data Point Type.

As the references to _GmsRelatedItems and _GmsStatusPropagation are automatically added during the import if not present in the JSON file, it is not necessary to configure them in the JSON file. Those referenced DPTs contain internal properties that do not require any configuration. Only the property AggregatedSummaryStatus will be automatically configured during the import. If it is necessary to set different values for the property AggregatedSummaryStatus, the reference _GmsStatusPropagation must be added into the Data Point Type definition in the JSON file, and the configuration of the property must be added to the REFS element.

 

Text Groups Configuration

The JSON file can also contain the text groups definition. In this case, the text groups will be created before the object models are created and configured.

To define the text groups and their elements, the JSON file must contain an element (property) named TGSData with an element named TGS that is a list of the text groups.

Example:

{

    "DPTData": {

        "DPTS": [ ...<list of DPTs description>... ]

    },

    "REFS": {

        "DPTS": [ ...<list of Referenced DPTs configuration>... ]

    },

    "TGSData": {

        "TGS": [...<list of text groups configuration>... ]

    }

}

 

For each text group, it is necessary to specify the following:

Text Group Data

Data

Use

Description

Name

Mandatory

Name of the text group.

Description

Optional

List of the values used as CNS descriptions of the text group.

Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: description.

The empty list (“Description”: [ ]) resets the description, while the name of the text group is assumed as default description.

TGElems

Mandatory

List of texts.

Each text must contain the following:

Text Data

Data

Use

Description

Id

Mandatory

Text identifier.

Text

Mandatory

List of text values. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: text string.

In case of a re-import, the text groups and the text values are not deleted. It is only possible to add new text values or change the previously imported ones.

Example:

{

    "DPTData": {

        "DPTS": [ ...<list of DPTs description>... ]

    },

    "REFS": {

        "DPTS": [ ...<list of Referenced DPTs configuration>... ]

    },

    "TGSData": {

        "TGS": [

            { "Name": "MyText",

                "Description": [ { "Culture": "en-US", "Text": "My Text Group"} ],

                "TGElems":[

                    { "Id": 1,

                    "Text": [

                        { "Culture": "en-US", "Text": "Text 1" },

                        { "Culture": "it-IT", "Text": "Testo 1" }

                    ]

                },

                { "Id": 2,

                    "Text": [

                        { "Culture": "en-US", "Text": "Text 2" },

                        { "Culture": "it-IT", "Text": "Testo 2" }

                    ]

                },

                { "Id": 3,

                    "Text": [

                        { "Culture": "en-US", "Text": "Text 3" },

                        { "Culture": "it-IT", "Text": "Testo 3" }

                    ]

                }

            ]

            }

        ]

    }

}

 

The following image shows the corresponding fields in the Text Group Editor tab:

 

The command macro text group (TxG_CommandMacro) is currently not managed. Consequently, if a JSON file contains this text group, it is ignored during the import process.

 

Commands Configuration

The JSON file can also contain the commands configuration. In this case, the commands must exist already in the project. Note that the commands must be created using the Test Client application (Siemens.Pvss.PvssMgr_TestClient.exe) before the import is done.

The commands definition is a part of the DPE configuration (see Data Point Element Configuration).

 

NOTICE

In case of re-import:
- All the commands defined for a DPE must be specified.
- The mandatory commands of the SuppressAlarms DPE are ignored. In case these commands are manually modified or deleted, it is not possible to repair them by re-importing the object model.

 

To configure the commands, it is possible to specify the following properties:

Commands Properties

Property

Use

Description

Dependency1

Optional

Name of a property that can be used to define a condition in the commands.

If the dependency property is part of a structure or a reference, the complete name must be specified (<name of structure>.<name of property> - for example: “Struct_Value.Int_Value”).

If the dependency property is an element of a set, then the name must be composed by the set name and the property index (<set name>[<index>] – for example: “SetChar_Value[1]”). Note that the index starts with “1”.

Up to three dependency properties can be defined. Additionally, a property can be specified more than once.

The dependency property must be defined starting from the first one. This means that it is not possible to specify the Dependency2 property if the Dependency1 is empty.

Only the properties of some types are allowed as dependencies. Specifically, see the following allowed types:

  • eGmsDataType.PvssBool
  • eGmsDataType.PvssFloat
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssUint
  • eGmsDataType.PvssUint64
  • eGmsDataType.GmsBitString
  • eGmsDataType.GmsBitString64
  • eGmsDataType.GmsBool
  • eGmsDataType.GmsEnum
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsReal
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsDuration

Dependency2

Optional

See Dependency1.

Dependency3

Optional

See Dependency1.

CommandsData

Optional

List of commands.

For the mandatory property SuppressAlarms, the commands are configured automatically by the importer. These standard commands cannot be removed or changed.

For details about the definition of a command, see Table Commands Data.

In case of re-import, all the required commands must be specified. Any other commands already existing but not specified in the file will be removed.

The mandatory commands of the SuppressAlarms are ignored during the re-import.

For details related to re-importing commands, see Guid in Table Commands Data.

 

For each command, it is necessary to specify the following data:

Command Data

Data

Use

Description

CommandType

Mandatory

Name of the command type for the selected property (for example, BACnetAnalogWithPriority).

NOTE: The command type must exist in the project.

Name

Mandatory

Name of the command.

NOTE: This name must be unique for the current property (for example, WritePrio08, ReleasePrio08).

Label

Optional

List of values used as descriptions of the command (for example, descriptive text for the button in the Status and Commands window). Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: label

If the list is empty (“Label”: [ ]), the command name is assumed as default label.

Guid

Optional

A string that identifies the command.

NOTES:

  • The value of this string is automatically assigned by the system when the command is created for the first time. The value must not be set manually.
  • When an object model is imported for the first time, all the commands specified for its properties do not have the Guid or the Guid must be declared but empty (“Guid”: “”). In this case, the importer creates a new command.
  • If an object model is exported, the Guid contains the value automatically assigned by the system. This value must not be changed, otherwise the command can no longer be recognized in case of re-import.
  • In case of re-import:
    • If the Guid is not specified or it is empty (“Guid”: “”), the command is created or re-created.
    • If the Guid is specified and matches the one of an existing command, the existing command is updated.
    • If the Guid is specified and it does not match the one of an existing command, the command is ignored.
    • All the commands already existing but not updated, using the matching Guid mechanism, are removed.
    • If it is necessary to remove a command previously created, the command must be removed from the command list.

Dependencies

Optional

List of dependencies.

For details about the definition of a dependency (that is, a condition based on a property specified in one of the Dependency<X> fields), see Table Dependency Data.

Alias

Optional

Alias identifier. The value 0 is the default one (corresponding to “n/a”).

NOTES:

  • The alias must be unique for all the properties of an object model.
  • The identifier that must be specified is the value of the corresponding alias in the Command Macro text group (TxG_CommandMacro). The identifier must be present in the text group before the import is carried out.
  • The Command Macro text group is not managed by this importer. If it is added in the JSON file, this text group is ignored.

Group

Optional

String that defines the Command Groups configuration in the Scope Rights expander of the security definition used to execute the command. Possible settings are:

  • Standard (Sta.)
  • Event (Eve.)
  • Advanced (Adv.)
  • Ownership (Own.)

If not specified, the Standard setting is taken by default.

Control

Optional

Type of control that must be used in the user interface. Possible settings are:

  • Default
  • Expander

If not specified, the Default setting is taken.

Combined

Optional

True, if a command can be selected from a drop-down list in case of multiple commands.

The default value is False.

Display

Optional

String that defines where the command is used. Possible settings are:

  • SOFTWARE
  • GENERIC_DISPLAY
  • GENERIC_DISPLAY_SOFTWARE
  • RESERVED

If not specified, the GENERIC_DISPLAY_SOFTWARE setting is taken by default.

TargetedProperty

Optional

Name of the target property affected by this command.

If not specified, the current property is taken by default.

If the string is empty (“TargetedProperty”: “”), the current property is taken.

If the targeted property is part of a structure or a reference, the complete name must be specified (<name of structure>.<name of property> - for example: “Struct_Value.Int_Value”).

If the target property is an element of a set, the name must be composed by the set name and the property index (<set name>[<index>] – for example: “SetChar_Value[1]”). Note that the index starts with “1”.

Logging

Optional

String that defines when values are written into the History Database. Possible settings are:

  • ALWAYS
  • NEVER
  • ON_FAILURE

If not specified, the ALWAYS value is taken by default.

Parameters

Optional

List of parameters. For details about the definition of a parameter, see Table Parameter Data.

In case of re-import, all the required parameters must be specified. In fact, the list of parameters is re-created at each import.

Each dependency must include the following data:

Dependency Data

Data

Use

Description

Property

Mandatory

Name of the dependency property that must be evaluated in the command condition.

NOTE: The name to specify must be one of the properties configured in the Dependency<X> fields.

Operation

Optional

String representing the operation that must be evaluated.

For the list of possible values, see Table Operation Values.

If not specified, the “*” value (n/a) is taken by default.

Value1

Optional

The value to be evaluated in the condition. If the operation is specified and it is different from “*”, at least the Value1 must be provided.

NOTE: The value must be expressed according to the CultureInfo.InvariantCulture.

Value2

Optional

The additional value to be evaluated in the condition.

NOTE: The value must be expressed according to the CultureInfo.InvariantCulture.

Operation Values

Operation String

Description

Property Types

*

n/a

All types

=

Equal

All types

<>

Not equal

  • eGmsDataType.PvssBool
  • eGmsDataType.GmsBool
  • eGmsDataType.GmsEnum
  • eGmsDataType.PvssUint
  • eGmsDataType.PvssUint64
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssFloat
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsReal
  • eGmsDataType.GmsDuration

<

Less exclusive

<=

Less inclusive

>

Greater exclusive

>=

Greater inclusive

IN

In (bit set)

  • eGmsDataType.GmsBitString
  • eGmsDataType.GmsBitString64

Each parameter must contain the following data:

Parameter Data

Data

Use

Description

Name

Mandatory

Name of the parameter.

Label

Optional

List of values used as descriptions of the parameter. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”)
  • Text: label

DefaultValue

Optional

String representing the type of source for the parameter value.

The acceptable values are:

  • REFER_CMD_DEF
  • RUNTIME
  • PROVIDED
  • DEFAULT_PROVIDED
  • IMPLICIT_CNS

NOTES:

If not specified, the REFER_CMD_DEF PROVIDED value is taken by default.

If RUNTIME is specified, the AffectedProperty data must be set.

If PROVIDED or DEFAULT_PROVIDED is specified, the Value data must be set.

In all cases where the specified value is different from PROVIDED or DEFAULT_PROVIDED, the Value data is ignored.

Value

Optional

The value of the parameter.

NOTE: The value must be expressed according to the CultureInfo.InvariantCulture.

Control

Optional

String representing the type of user control to be used in the user interface.

Possible settings are:

  • NUMERIC
  • DROPDOWN
  • STRING
  • DATETIME
  • PASSWORD

NOTE: If not specified, the STRING value is taken by default.

AffectedProperty

Optional

Name of the affected property.

NOTES:

  • If the affected property is part of a structure or a reference, the complete name must be specified (<name of structure>.<name of property> - for example: “Struct_Value.Int_Value”).
  • If the affected property is an element of a set, the name must be composed by the set name and the property index (<set name>[<index>] – for example: “SetChar_Value[1]”). Note that the index starts with “1”.
  • The affected property must be compatible with the type of the parameter specified in the command definition.
  • If a command has more than one parameter, the affected property can be specified on one of the parameters only.

FilterProperty

Optional

Name of the filter property.

NOTE: The type of the property indicated must be ARRAYUINT (dynamic array of unsigned integers).

Application

Optional

String representing the type of application.

Possible settings are:

  • PROPERTY
  • INDEX

NOTE: If not specified, the PROPERTY value is taken by default.

Example of command definition for a DPE:

{

    "Name": "Int_Value",

    "PvssType": {

        "PvssType": "INT",

        "Status": {

            "Stat": true,

            "DisplOffNormal": true,

            "NormalValue": 20

        }

    },

    "VL": true,

    "AL": true,

    "DL0": true,

    "DL1": true,

    "DL2": true,

    "DL3": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Integer Value" } ],

    "Display": {

        "Valid": true,

        "Icon": {

            "Library": "Global_Base_HQ_1",

            "Name": "Op_DP_Generic_None_001.png"

        }

    },

    "GmsType": {

        "GmsType": "GMSINT",

        "Attributes": {

            "Valid": true,

            "UnitText": {

                "TextGroup": "TxG_EngineeringUnits",

                "Unit": "°C"

            },

            "Properties": {

                "Min": -40,

                "Max": 70

            }

        }

    },

    "Commands": {

        "Dependency1": "UInt_Value",

        "CommandsData": [

        {

            "CommandType": "GenericWriteInt",

            "Name": "Write",

            "Label": [ { "Culture": "en-US", "Text": "WriteInt" } ],

            "Guid": "",

            "Dependencies": [

                {

                "Property": "UInt_Value",

                "Operation": "=",

                "Value1": 10

            }

        ],

            "Alias": 0,

            "Group": "STANDARD",

            "Control": "DEFAULT",

            "Combined": false,

            "Display": "GENERIC_DISPLAY_SOFTWARE",

            "TargetedProperty": "",

            "Logging": "ALWAYS",

            "Parameters": [

                {

                    "Name": "Value",

                    "Label": [ { "Culture": "en-US", "Text": "ValueForInt" } ],

                    "DefaultValue": "PROVIDED",

                    "Value": 15,

                    "Control": "NUMERIC",

                    "AffectedProperty": "",

                    "Application": "PROPERTY"

                    }

                ]

            }

        ]

    }

}

Alarms Configuration

The JSON file can also contain the alarms configuration.

The alarms definition is a part of the configuration of the DPE configuration (see Data Point Element Configuration).

 

NOTICE

In case of re-import:

- All the alarms defined for a DPE must be specified.

 

To configure alarms, it is possible to specify the following properties:

Commands Properties

Property

Use

Description

Valid

Optional

Validity flag. If false, the alarms are set but considered invalid.

AlarmsConfiguration

Optional

Alarms configuration, which can be one of the following:

 

Alarm Configuration – None

To define no alarm configuration, the following can be specified:

Data

Use

Setting

Type

Mandatory

NONE

Example

"Alarms": {

    "Valid": true,

    "AlarmsConfiguration": { "Type": "NONE" }

}

 

In case of a re-import, this definition can be used to remove an existing alarm configuration.

The following image shows the corresponding settings in the Models & Functions tab:

Alarm Configuration –Field System

Field system alarms can be configured only for simple properties, no array, of the following GMS and PVSS types:

  • GMSBOOL
  • GMSREAL
  • GMSENUM
  • GMSINT (only if based on INT data type)
  • GMSUINT (only if based on UINT data type)
  • GMSINT64
  • GMSUIN64
  • BOOL
  • FLOAT
  • INT
  • UINT
  • LONG
  • ULONG

To define field system alarms, the following can be specified:

Data

Use

Description

Type

Mandatory

FIELDSYSTEM

TableReference

Mandatory

Name of the event table.

NOTE 1: In case of empty string (“TableReference”: “”), the default value is assumed.

NOTE 2: The name specified here must correspond to the name of a data point of type “GmsAlarmTable_Driver” already present in the project. If the specified name does not correspond to a data point in the project, the default (empty string: “”) value is assumed.

NOTE 3: The name specified here can or cannot have the suffix “.AlarmTable”. In the last case, the suffix will be automatically added.

Example

"Alarms": {

    "Valid": true,

    "AlarmsConfiguration": {

        "Type": "FIELDSYSTEM",

        "TableReference": "Alt_BACnetStandard"

    }

}

 

The following image shows the corresponding settings in the Models & Functions tab:

Alarm Configuration – Management Station

To define management station alarms, the following can be specified:

Alarms Configuration – Management Station

Data

Use

Description

Type

Mandatory

MANAGEMENTSTATION

Activated

Optional

True, to activate the alarm configuration. If not specified, the value false is assumed.

AlarmsDefinition

Mandatory

Management station alarms definition, which can be one of the following:

 

Discrete Alarms

Discrete alarms can be configured only for simple properties, no array, of the following GMS and PVSS types:

  • GMSBOOL
  • GMSREAL
  • GMSENUM
  • GMSINT (only if based on INT data)
  • GMSUINT (only if based on UINT data type)
  • GMSINT64
  • GMSUIN64
  • GMSBITSTRING (only if based on BIT data type)
  • GMSBITSTRING64 (only if based on BIT64 data type)
  • BOOL
  • FLOAT
  • INT
  • UINT
  • LONG
  • ULONG
  • BIT
  • BIT64

To define discrete alarms the following can be specified:

Data

Use

Description

Kind

Mandatory

DISCRETE

Flags

Optional

String representing the type of user control to be used by the user interface. Acceptable values are:

  • None
  • NoAlarmOnDriverInvalid
  • NoAlarmOnSourceTimeInvalid

If not specified or the string is empty, the value None is assumed as default.

AlarmsTable

Mandatory

List of alarm conditions, which must meet the following rules:

  • The list must contain at least an entry representing the normal condition and another entry representing an alarm condition.
  • It is possible to define only one entry representing the normal condition.
  • The list can contain a maximum of twenty alarm conditions.
  • In case of BOOL property, only two alarm conditions can be configured.

For details about the definition of discrete alarm conditions, see Management Station – Discrete Alarm Condition.

In case of re-import, all the required alarm conditions must be specified. Any other alarm conditions already existing and not specified in the file will be removed. For details about alarm conditions re-import, see Guid in Management Station – Discrete Alarm Condition.

 

Discrete Alarms – Condition

For each alarm condition it is necessary to specify the following:

Data

Use

Description

AlarmClass

Mandatory

String representing the alarm class.

The name specified must correspond to the name of a data point of type “_GMS_ALARM_TYPE” already present in the project.

The empty string (“AlarmClass”: “”) defines the normal condition.

AlarmProperty

Optional

Specifies the operand and the value of the alarm condition (Value Range).

In case of normal condition, this data is ignored and can be omitted. In all the other alarm conditions it is necessary to specify it.

For details about the configuration, see Discrete Alarms – AlarmProperty.

OffNormalText

Optional

List of values used as alarm text for incoming events. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: descriptive text.

NormalText

Optional

List of values used as alarm text for outgoing events. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: descriptive text.

Guid

Optional

String representing the alarm condition.

NOTE:

  • The value of this string is automatically assigned by the system when the alarm condition is created the first time. The value must not be set manually.
  • When an object model is imported the first time, all the alarm conditions specified for its properties do not have the Guid or the Guid must be declared but empty (“Guid”: “”). In this case, the importer creates a new alarm condition.
  • If an object model is exported, the Guid contains the value automatically assigned by the system. This value must not be changed otherwise the alarm condition can no longer be recognized in case of re-import.
  • In case of re-import:
    • If the Guid is not specified or it is empty (“Guid”: “”), the alarm condition is created or re-created.
    • If the Guid is specified and matches the one of an existing alarm condition, the existing alarm condition is updated.
    • If the Guid is specified but it does not match the one of an existing alarm condition, the alarm condition is ignored.
    • All the alarm conditions already existing that are not updated, using the matching Guid mechanism, will be removed.

In case a previously created alarm condition must be removed, it is necessary to remove the alarm condition from the alarm conditions list.

Discrete Alarms – AlarmProperty

To configure the AlarmProperty it is possible to specify the following:

Data

Use

Description

Operation

Optional

The condition operand for reporting an event.

The valid operands vary according to the data type of the property. For details, see Discrete Alarms – Operation.

If not specified or the string is empty, the value NOOP is assumed as default.

Value1

Optional

First value of the condition.

The value must comply with the property data type.

In case of PvssBit32, PvssBit64, GmsBitString and GmsBitString64 the values can be expressed as uint (or ulong) or as string representing the binary value (for example, 255 or “00000000000000000000000011111111” or “11111111”).

In case of GmsEnum the value can be expressed as uint representing the index of a text in the text group associated to the property or as string representing a text of the text group. The string must be written in the Desigo CC default language (en-US).

The operation NoOpNoValue is converted to NoOp.

In case of NoOp operation, the value is ignored.

Depending on the specified operation, the value can be configured in different ways. For more details, see Discrete Alarms – Value.

Value2

Optional

Second value of the condition.

For this value the same rules as Value1 apply.

In case of GmsBitString and GmsBitString64, this value represents the bit mask defining the bits to be considered. If this value is not specified, the bit mask is evaluated according the configured first bit and the last bit. In case also the first bit and last bit are not configured, the bit mask is set to 0.

In case of PvssBit32, PvssBit64, this value is ignored, and the bit mask is automatically set to UInt32.MaxValue and UInt64.MaxValue.

Discrete Alarms – Operation

Operation String

Description

Property Types

NoOp

No Operator

All types

=

Equal

  • eGmsDataType.PvssBool
  • eGmsDataType.PvssBit32
  • eGmsDataType.PvssBit64
  • eGmsDataType.GmsBool
  • eGmsDataType.GmsBitString
  • eGmsDataType.GmsBitString64

!=

Not Equal

  • eGmsDataType.PvssBit32
  • eGmsDataType.PvssBit64
  • eGmsDataType.GmsBitString
  • eGmsDataType.GmsBitString64

|

Or

  • eGmsDataType.PvssUint

!|

Nor

  • eGmsDataType.PvssUint64
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssFloat
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsReal
  • eGmsDataType.GmsEnum

..

In range

  • eGmsDataType.PvssUint

!..

Not in range

  • eGmsDataType.PvssUint64
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssFloat
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsReal

Discrete Alarms – Value

Operation String

Operation Description

Value1

Value2

Value Format

No Op

No Operator

Ignored

Ignored

-

=

Equal

Yes

No

  • eGmsDataType.PvssBool
  • eGmsDataType.PvssBit32
  • eGmsDataType.PvssBit64
  • eGmsDataType.GmsBool

 

Yes

  • eGmsDataType.GmsBitString
  • eGmsDataType.GmsBitString64

A single value consistent with the data type of the property.

Examples:

"Value1": true

"Value1": 255

!=

Not equal

|

Or

Yes

No

A single value consistent with the data type of the property.

An array of values, where each value must be consistent with the data type of the property.

Examples:

"Value1": 90

"Value1": [7, 8, 10]

!|

Nor

..

In range

Yes

Yes

Two single values, each one must be consistent with the data type of the property.

The first value must be less than the second value.

Examples:

"Value1": 10, "Value2": 20

!..

Not in range

Example

{

    "Name": "Enum_Value",

    "PvssType": { "PvssType": "UINT" },

    "VL": true,

    "AL": true,

    "Stat": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Enum Value" } ],

    "Display": {

        "Valid": true,

        "Icon": { "Library": "Global_Base_HQ_1", "Name": "Op_DP_Generic_None_001.png" }

    },

    "GmsType": {

        "GmsType": "GMSENUM",

        "Attributes": {

            "Valid": true,

            "Properties": { "Min": 0, "Max": 5 },

            "TextGroup": "TxG_DriverStatus"

        }

    },

    "Alarms": {

        "Valid": true,

        "AlarmsConfiguration": {

            "Type": "MANAGEMENTSTATION",

            "Activated": true,

            "AlarmsDefinition": {

                "Kind": "DISCRETE",

                "Flags": "None",

                "AlarmsTable": [

                    { "AlarmClass": "" },

                    {

                        "AlarmClass": "Anomaly",

                        "AlarmProperty": { "Operation": "|", "Value1": [0, 3, 5] },

                        "OffNormalText": [ { "Culture": "en-US", "Text": "Off Normal Text" } ],

                        "NormalText": [ { "Culture": "en-US", "Text": "Normal Text" } ]

                    }

                ]

            }

        }

    }

}

 

The following image shows the corresponding settings in the Models & Functions tab:

Continuous Alarms

Continuous alarms can be configured only for simple properties, no array, of the following GMS and PVSS types:

  • GMSBOOL
  • GMSREAL
  • GMSENUM
  • GMSINT (only if based on INT data type)
  • GMSUINT (only if based on UINT data type)
  • GMSINT64
  • GMSUIN64
  • BOOL
  • FLOAT
  • INT
  • UINT
  • LONG
  • ULONG

 

To define continuous alarms the following can be specified:

Data

Use

Description

Kind

Mandatory

CONTINUOUS

AlarmsTable

Mandatory

List of alarm conditions.

This list must comply with the following rules:

  • The list must contain at least an entry representing the normal condition and another entry representing an alarm (off normal) condition.
  • It is possible to define only one entry representing the normal condition.
  • The list can contain a maximum of twenty alarm conditions.
  • In case of BOOL property, only two alarm conditions can be configured.
  • The order of the alarm conditions is important because alarm processing is carried out from bottom to top.

For details about the definition of an alarm condition, see Management Station - Continuous Alarms Condition.

In case of re-import, all the required alarm conditions must be specified. Any other alarm conditions already existing and not specified in the file will be removed.

For details about the alarm conditions reimport, see Guid in Management Station - Continuous Alarms Condition.

 

Continuous Alarms – Condition

For each alarm condition it is necessary to specify the following:

Data

Use

Description

AlarmClass

Mandatory

String representing the alarm class.

The name specified must correspond to the name of a data point of type “_GMS_ALARM_TYPE” already present in the project.

The empty string (“AlarmClass”: “”) defines the normal condition.

AlarmProperty

Optional

Specifies the operand and the value of the alarm condition (Value Range).

In case of normal condition, this data is ignored and can be omitted. In all the other alarm conditions it is necessary to specify it.

For details about the configuration, see Continuous Alarms – AlarmProperty.

UpperHysteresis

Optional

Specifies the operand and the upper hysteresis value for this alarm condition.

In case of normal condition, this data is ignored.

For details about the configuration, see Continuous Alarms – UpperHysteresis and LowerHysteresis.

LowerHysteresis

Optional

Specifies the operand and the lower hysteresis value for this alarm condition.

In case of normal condition, this data is ignored.

For details about the configuration, see Continuous Alarms – UpperHysteresis and LowerHysteresis.

OffNormalText

Optional

List of values used as alarm text for incoming events. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: descriptive text.

NormalText

Optional

List of values used as alarm text for outgoing events. Each value must contain the following data:

  • Culture: culture of the text (for example, “en-US”).
  • Text: descriptive text.

Guid

Optional

String representing the alarm condition.

NOTE:

  • The value of this string is automatically assigned by the system when the alarm condition is created the first time. The value must not be set manually.
  • When an object model is imported the first time, all the alarm conditions specified for its properties do not have the Guid or the Guid must be declared but empty (“Guid”: “”). In this case, the importer creates a new alarm condition.
  • If an object model is exported, the Guid contains the value automatically assigned by the system. This value must not be changed otherwise the alarm condition can no longer be recognized in case of re-import.
  • In case of re-import:
    • If the Guid is not specified or it is empty (“Guid”: “”), the alarm condition is created or re-created.
    • If the Guid is specified and matches the one of an existing alarm condition, the existing alarm condition is updated.
    • If the Guid is specified but it does not match the one of an existing alarm condition, the alarm condition is ignored.
    • All the alarm conditions already existing that are not updated, using the matching Guid mechanism, will be removed.

In case a previously created alarm condition must be removed, it is necessary to remove the alarm condition from the alarm conditions list.

Continuous Alarms – AlarmProperty

To configure the AlarmProperty it is possible to specify the following:

Data

Use

Description

Operation

Optional

The condition operand for reporting an event.

The valid operands vary according to the data type of the property. For details, see Continuous Alarms – Operation.

If not specified or the string is empty, the value NOOP is assumed as default.

Value1

Optional

Value of the condition.

The value must comply with the property data type:

In case of GmsEnum the value can be expressed as uint representing the index of a text in the text group associated to the property or as a string representing a text of the text group. The string must be written in the Desigo CC default language (en-US).

In case of NoOp operation, the value is ignored.

Depending on the specified operation, the value can be configured in different ways. For more details, see Continuous Alarms – Value.

Continuous Alarms – Operation

Operation String

Description

Property Types

NoOp

No Operator

All types

=

Equal to

  • eGmsDataType.PvssBool
  • eGmsDataType.GmsBool

>

Greater than

  • eGmsDataType.PvssUint
  • eGmsDataType.PvssUint64
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssFloat
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsReal
  • eGmsDataType.GmsEnum

>=

Greater than or equal to

<

Less than

<=

Less than or equal to

Continuous Alarms – Value

Operation String

Operation Description

Value1

Value Format

No Op

No Operator

Ignored

-

=

Equal to

Yes

A single Boolean value.

Examples:

"Value1": true

>

Greater than

Yes

A single value consistent with the data type of the property.

Examples:

"Value1": 90

"Value1": "Failed"

>=

Greater than or equal to

<

Less than

<=

Less than or equal to

Continuous Alarms – UpperHysteresis and LowerHysteresis

To configure UpperHysteresis or LowerHysteresis it is possible to specify the following:

Data

Use

Description

Operation

Optional

The operand for the hysteresis value.

The valid operands vary according to the data type of the property. For details, see Continuous Alarms – Hysteresis Operation.

If not specified or the string is empty, the value NoOpNoValue is assumed as default.

Value1

Optional

Value of the hysteresis.

The value must comply with the property data type:

  • In case of PvssUInt, PvssInt, GmsUint, or GmsInt property, the hysteresis value must be of int type.
  • In case of PvssUInt64, PvssInt64, GmsUint64, or GmsInt64 property, the hysteresis value must be of long type.
  • In case of PvssFloat or GmsReal property, the hysteresis value must be of double type.

In case of NoOpNoValue operation, the value is ignored.

Depending on the specified operation, the value can be configured in different ways. For more details, see Continuous Alarms – Hysteresis Value.

Continuous Alarms – Hysteresis Operation

Operation String

Description

Property Types

NoOpNoValue

No Operator

  • eGmsDataType.PvssUint
  • eGmsDataType.PvssUint64
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssFloat
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsReal
  • eGmsDataType.GmsEnum

=

Equal

  • eGmsDataType.PvssBool
  • eGmsDataType.GmsBool
  • eGmsDataType.PvssUint
  • eGmsDataType.PvssUint64
  • eGmsDataType.PvssInt
  • eGmsDataType.PvssInt64
  • eGmsDataType.PvssFloat
  • eGmsDataType.GmsUint
  • eGmsDataType.GmsUint64
  • eGmsDataType.GmsInt
  • eGmsDataType.GmsInt64
  • eGmsDataType.GmsReal
  • eGmsDataType.GmsEnum

Continuous Alarms – Hysteresis Value

Operation String

Operation Description

Value1

Value Format

NoOpNoValue

No Operator

Ignored

-

=

Equal

Yes

A single value consistent with the data type of the property.

Examples:

"Value1": 90

Example

{

    "Name": "Int_Value",

    "PvssType": {

        "PvssType": "INT",

        "Status": { "Stat": true, "DisplOffNormal": true, "NormalValue": 0 }

    },

    "VL": true,

    "AL": true,

    "DL0": true,

    "DL1": true,

    "DL2": true,

    "DL3": true,

    "DL4": true,

    "Persist": true,

    "GroupId": "CONFIG",

    "Description": [ { "Culture": "en-US", "Text": "Integer Value" } ],

    "Display": {

        "Valid": true,

        "Icon": { "Library": "Global_Base_HQ_1", "Name": "Op_DP_Generic_None_001.png" }

    },

    "GmsType": {

        "GmsType": "GMSINT",

        "Attributes": {

            "Valid": true,

            "UnitText": { "TextGroup": "TxG_EngineeringUnits ", "Unit": "°C" },

            "Properties":{ "Min": -100, "Max": 100 }

        }

    },

    "Alarms": {

        "Valid": true,

        "AlarmsConfiguration": {

            "Type": "MANAGEMENTSTATION",

            "Activated": true,

            "AlarmsDefinition": {

                "Kind": "CONTINUOUS",

                "Flags": "None",

                "AlarmsTable": [

                    { "AlarmClass": "" },

                    {

                        "AlarmClass": "Alarm",

                        "AlarmProperty": { "Operation": "<", "Value1": 10 },

                        "UpperHysteresis": { "Operation": "=", "Value1": 4 },

                        "LowerHysteresis": { "Operation": "=", "Value1": -2 },

                        "OffNormalText": [ { "Culture": "en-US", "Text": "Low value" } ],

                        "NormalText": [ { "Culture": "en-US", "Text": "Low value returned to normal" } ]

                    },

                    {

                        "AlarmClass": "Alarm",

                        "AlarmProperty": { "Operation": ">=", "Value1": 50 },

                        "UpperHysteresis": { "Operation": "=", "Value1": 5 },

                        "OffNormalText": [ { "Culture": "en-US", "Text": "High value" } ],

                        "NormalText": [ { "Culture": "en-US", "Text": "High value returned to normal" } ]

                    }

                ]

            }

        }

    }

}

 

The following image shows the corresponding settings in the Models & Functions tab: