JSON Format
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>...]
}
}
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>... ]
}
]
}
}
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.
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
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" } }
]
}
}
]
}
]
}
}
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:
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 |
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 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 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 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 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.
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:
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:
- The Normal Value of the property and its display status, adding the Status object (see Table Data Point Element Status).
- The array attributes, only in case the PvssType specified is one of the supported arrays, adding the ArrayAttributes object (see Table Data Point Element ArrayAttributes).
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:
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. |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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"
}
}
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.
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:
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:
|
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.
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).
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:
|
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:
If the list is empty (“Label”: [ ]), the command name is assumed as default label. |
Guid | Optional | A string that identifies the command. NOTES:
|
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:
|
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:
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:
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:
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:
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 |
|
< | Less exclusive | |
<= | Less inclusive | |
> | Greater exclusive | |
>= | Greater inclusive | |
IN | In (bit set) |
|
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:
|
DefaultValue | Optional | String representing the type of source for the parameter value. The acceptable values are:
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:
NOTE: If not specified, the STRING value is taken by default. |
AffectedProperty | Optional | Name of the affected property. NOTES:
|
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:
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"
}
]
}
]
}
}
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).
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:
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:
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:
|
NormalText | Optional | List of values used as alarm text for outgoing events. Each value must contain the following data:
|
Guid | Optional | String representing the alarm condition. NOTE:
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 |
|
!= | Not Equal |
|
| | Or |
|
!| | Nor |
|
.. | In range |
|
!.. | Not in range |
|
Discrete Alarms – Value
Operation String | Operation Description | Value1 | Value2 | Value Format |
No Op | No Operator | Ignored | Ignored | - |
= | Equal | Yes | No
Yes
| 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:
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:
|
NormalText | Optional | List of values used as alarm text for outgoing events. Each value must contain the following data:
|
Guid | Optional | String representing the alarm condition. NOTE:
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 |
|
> | Greater than |
|
>= | 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 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 |
|
= | Equal |
|
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: