The GsdGenSubmoduleApplicationType Object is the root container for the Objects and Variables representing a Submodule’s IO Data, Parameters, Data Objects and Alarms. Moreover, information regarding the communication status of the Submodule is provided.
Table 18 – GsdGenSubmoduleApplicationType definition
Attribute |
Value |
||||
BrowseName |
GsdGenSubmoduleApplicationType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasProperty |
Variable |
ApplicationTag |
0:String |
0:PropertyType |
O, RO |
0:HasComponent |
Method |
SetApplicationTag |
|
|
O |
0:HasComponent |
Object |
2:Lock |
|
2:LockingServicesType |
O, RO |
0:HasProperty |
Variable |
CommunicationStatus |
GsdGenIoCommunicationStatusEnumeration |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ConfigurationStatus |
GsdGenIoConfigurationStatusEnumeration |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ARIdentifier |
0:Guid |
0:PropertyType |
O, RO |
0:HasProperty |
Variable |
ControllerName |
0:String |
0:PropertyType |
O, RO |
0:HasComponent |
Object |
Input |
|
GsdGenIoDataType |
O |
0:HasComponent |
Object |
Output |
|
GsdGenIoDataType |
O |
0:HasComponent |
Object |
Configuration |
|
2:FunctionalGroupType |
O |
0:HasComponent |
Variable |
<ValueVariable> |
0:BaseDataType{ScalarOrOneDimension} |
0:BaseDataVariableType |
OP, RO |
0:HasComponent |
Variable |
<UnitVariable> |
0:Number{ScalarOrOneDimension} |
0:AnalogUnitType |
OP, RO |
0:HasComponent |
Variable |
<UnitRangeVariable> |
0:Number{ScalarOrOneDimension} |
0:AnalogUnitRangeType |
OP, RO |
0:HasProperty |
Variable |
<ValueProperty> |
0:BaseDataType{ScalarOrOneDimension} |
0:PropertyType |
OP, RO |
0:HasComponent |
Variable |
<EnumerationVariable> |
0:Enumeration |
0:BaseDataVariableType |
OP, RO |
0:HasComponent |
Variable |
<OptionSetVariable> |
0:BaseDataType |
0:OptionSetType |
OP, RO |
0:HasComponent |
Object |
<ArrayFolder> |
|
2:FunctionalGroupType |
OP |
0:HasComponent |
Object |
<FolderName> |
|
2:FunctionalGroupType |
OP |
0:GeneratesEvent |
ObjectType |
GsdGenAlarmEventType |
|
|
|
Conformance Units |
|||||
PNGSDGM Device |
|||||
PNGSDGM Parameter |
|||||
PNGSDGM IO Data |
|||||
PNGSDGM Data Objects |
|||||
PNGSDGM BMP Access |
|||||
PNGSDGM Alarm Event |
The BrowseName of an instance shall be “GenericSubmoduleApplication”. If uniqueness of the BrowseName is an issue, the recommended naming convention applied shall be “<NameOfStation>.<SlotNumber>.<SubslotNumber>”, where SlotNumber and SubslotNumber are obtained by reading the RealIdentificationData record.
The ApplicationTag Variable contains information determined by configuration or by applications. The Client can change the Value of this Variable by invoking the SetApplicationTag Method.
Before invoking a Method of the GsdGenSubmoduleApplicationType Object, Clients must gain exclusive write access (“lock” the GsdGenSubmoduleApplicationType Object) using the Lock Object.
This Method sets the Value of the ApplicationTag Variable. The security constraints defined in chapter 6.11 apply.
Signature
SetApplicationTag (
[in] 0:String ApplicationTag
);
Argument |
Description |
ApplicationTag |
String containing the desired content of the ApplicationTag Variable. |
The Method Result Codes (defined in Call Service) are defined in Table 19.
Table 19 – Possible Method Result Codes
Result Code |
Description |
Good |
The Method execution was successful. |
Bad_UserAccessDenied |
The user has not the right to execute the Method. |
Bad_InvalidArgument |
The Server is not able to apply the name. The ApplicationTag string may be too long or may contain invalid characters. The server may also reject duplicates. |
Bad_Locked |
The GsdGenSubmoduleApplicationType Object is locked by a different Client’s Session. |
Bad_RequiresLock |
The GsdGenSubmoduleApplicationType Object is not locked. Clients must lock the GsdGenSubmoduleApplicationType Object before invoking a Method. |
Bad_UnexpectedError |
The server is not able to execute the function because an unexpected error occurred. The Device might be temporarily unavailable or unreachable due to network failure. |
The Lock Object ensures exclusive Method call for one Client. The Client locks the GsdGenSubmoduleApplicationType Object by invoking the InitLock Method of the Lock Object. The Client invokes ExitLock to release the lock.
The CommunicationStatus Property reports the communication status of the Submodule encoded as GsdGenIoCommunicationStatusEnumeration. If the Submodule is performing cyclic data transfer with a Controller, the Value shall be INDATA (ConfigurationStatus Property is either OK or SUBSTITUTE). If not (ConfigurationStatus Property contains WRONG) or if the Submodule is not configured (see 6.1), the Value shall be OFFLINE.
The ConfigurationStatus Property reports the configuration status of the Submodule indicated by the SubmoduleState.IdentInfo block encoded as GsdGenIoConfigurationStatusEnumeration. If the CommunicationStatus Property contains INDATA, possible Values are OK or SUBSTITUTE. If the CommunicationStatus Property contains OFFLINE (see above) for configured Submodules, the Value shall be WRONG. If the Submodule is not configured, the Value shall be UNKNOWN (see 6.1).
The optional ARIdentifier Property contains the ARUUID returned by the ARData record encoded as 0:Guid DataType. The Property shall only be provided if the CommunicationStatus Property contains INDATA. Intended to be used to give additional information about the AR to which the Submodule belongs, if the PROFINET aspect (part 30140) is not provided.
The optional ControllerName Property contains the NameOfStation of the Controller which owns and controls the Submodule. Intended to be used to show the related Controller/PLC if the PROFINET aspect (part 30140) is not provided.
The Input Object contains the Objects and Variables representing the Submodules Input Data. See 6.3 and 6.4 for details.
The Output Object contains the Objects and Variables representing the Submodules Output Data. See 6.3 and 6.4 for details.
The Configuration Object is an optional folder containing GsdGenParameterVariableType Variables representing the configuration Parameters of the Submodule. See section 6.6 for details.
The <ValueVariable> Variable represents one Data Object modelled as Variable as described in 6.7. There shall be as many 0:BaseDataVariableType Variables as are needed to represent the Data Objects which shall be represented as Variables. The BrowseName is either the GSDML Name (see Table 64) or the BMP Name (see Table 65) for BMPs. Data Objects with engineering unit shall always be represented by a Variable.
Numeric Data Objects with specified engineering unit shall be represented by 0:AnalogUnitType Variables, numeric Data Objects with specified engineering unit and range information shall be represented by 0:AnalogUnitRangeVariable Variables (<UnitVariable> and <UnitRangeVariable> placeholders). The BrowseName is either the GSDML Name (see Table 64) or the BMP Name (see Table 65) for BMPs.
The EngineeringUnit Property of the 0:AnalogUnitType and 0:AnalogUnitRangeType Variables shall contain the mapped UNECE code of the OPC UA EUInformation data type (see [OPC 10000-8], 5.6.3) for the engineering unit of this Data Object. The engineering unit is either determined by the GSDML Unit (see Table 64) or by the BMP Unit (see Table 65) for BMPs.
The EURange Property of the 0:AnalogUnitRangeType Variable shall be provided for Data Objects with associated engineering unit. The Value is determined by the GSDML Range (see Table 64) or by the BMP Range (see Table 65).
The <ValueProperty> Property represents one Data Object modelled as Property as described in section 6.7. There shall be as many 0:BaseDataType Properties as are needed to represent the Data Objects which are specified to be represented as Properties. Vendors shall not specify a representation as Property if an engineering unit is specified for the data value. BMPs shall not be represented as Properties.
The DataType of the Variables and Properties representing Data Objects is determined by the GSDML Type (see Table 64) or by the BMP Type (see Table 65) for BMPs. The ValueRank of a Data Object Variable or Property can be either a scalar or a single-dimensional array. If a conversion factor and an offset are to be applied for the display value (See C.1, “opc:Offset” and “opc:Gradient” attributes of “Meta” element, and [PDP], 6.2.1.3, Standardisation factor and Variable attribute), the DataType shall be 0:Float or 0:Double.
The <EnumerationVariable> represents one BMP “simple variable” (see [PDP], 6.2.1.4) with a text array assigned to an unsigned 8/16/32 or Boolean value (Bit 10 of the parameter description element “Identifier (ID)” is set to 1). The parameter value serves as index into the text array, see 6.7.1 also. The Server shall create a 0:Enumeration DataType and assign each text element of the text array to the description member of the 0:EnumValueType element structure of the EnumValues Property with the same index. Table 20 shows the assignment of parameter value, array index and text array elements.
Table 20 – EnumValues member assignment
EnumValues[Index] |
Assigned value |
value |
Index == value of parameter |
displayName |
<Index>_<BMP Name > |
description |
Text array[Index] |
The BrowseName of the generated 0:Enumeration DataType shall be created according to following template string: GsdGen <BMP Name >EnumerationType.
The BMP shall be represented as 0:Enumeration if the “RefMeta” element describing the BMP has a “Meta” child element with the “Property” attribute “opc:DestinationDataType” and the “Content” attribute “Enumeration” (see Table 63).
The <OptionSetVariable> Variable represents one BMP “simple variable” with a text array assigned to a “V2” data value (see [PDP], 6.2.1.4). The Server shall obtain the current value of the BMP and set the Boolean values in the BitMask array Property, starting with Bit 0 (LSB) of the sequence for the array element with index 0. The corresponding OptionSetValues array elements shall be set with the text string element from the assigned text array. Since two strings are assigned for the possible two states of each Bit in the sequence, the Server shall insert the text valid for the actual state of the Bit. For details of the assignment of elements of the text array to the actual value of the described Bit see [PDP], 6.2.1.4.
The BMP shall be represented as 0:OptionSetType if the “RefMeta” element describing the BMP has a “Meta” child element with the “Property” attribute “opc:DestinationDataType” and the “Content” attribute “OptionSetVariable” (see Table 63).
The <ArrayFolder> component Reference points to 2:FunctionalGroupType folder Object created as root Object to represent an array BMP as described in chapter 6.7.1.
The BMP shall be represented as folder Object if the “RefMeta” element describing the BMP has a “Meta” child element with the “Property” attribute “opc:DestinationDataType” and the “Content” attribute “ArrayFolder” (see Table 63).
The <FolderName> optional component Reference points to 2:FunctionalGroupType folder Object created according to the description in section 6.9.
The GsdGenSubmoduleApplicationType Object shall relate to the Submodule Object it represents in the PROFINET aspect with a 0:RepresentsSameFunctionalityAs ReferenceType as shown in Figure 6.
The Server might provide diagnosis data by sending GsdGenAlarmEventType Events.
The components of the GsdGenSubmoduleApplicationType representing one Data Object have additional subcomponents which are defined in Table 21.
Table 21 – GsdGenSubmoduleApplicationType additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
<ValueVariable> |
0:HasProperty |
Variable |
BMPNumber |
0:UInt16 |
0:PropertyType |
O, RO |
<UnitVariable> |
0:HasProperty |
Variable |
BMPNumber |
0:UInt16 |
0:PropertyType |
O, RO |
<UnitRangeVariable> |
0:HasProperty |
Variable |
BMPNumber |
0:UInt16 |
0:PropertyType |
O, RO |
<EnumerationVariable> |
0:HasProperty |
Variable |
BMPNumber |
0:UInt16 |
0:PropertyType |
O, RO |
<OptionSetVariable> |
0:HasProperty |
Variable |
BMPNumber |
0:UInt16 |
0:PropertyType |
O, RO |
<ArrayFolder> |
0:HasProperty |
Variable |
BMPNumber |
0:UInt16 |
0:PropertyType |
O, RO |
<ValueVariable> |
0:HasProperty |
Variable |
Text |
0:String |
0:PropertyType |
O, RO |
<ValueVariable> |
0:HasProperty |
Variable |
TextArray |
0:String[] |
0:PropertyType |
O, RO |
<EnumerationVariable> |
0:HasProperty |
Variable |
EngineeringUnits |
0:EUInformation |
0:PropertyType |
O, RO |
<EnumerationVariable> |
0:HasProperty |
Variable |
EURange |
0:Range |
0:PropertyType |
O, RO |
<ArrayFolder> |
0:HasProperty |
Variable |
EngineeringUnits |
0:EUInformation |
0:PropertyType |
O, RO |
<ArrayFolder> |
0:HasProperty |
Variable |
EURange |
0:Range |
0:PropertyType |
O, RO |
<ArrayFolder> |
0:HasComponent |
Variable |
Element |
0:BaseDataType |
0:BaseDataVariableType |
MP, RO |
<OptionSetVariable> |
0:HasProperty |
Variable |
BitMask |
0:Boolean[] |
0:PropertyType |
M, RO |
The BMPNumber Property shall contain the BMP Number (see Table 64) if the parent Variable represents a BMP (see [PDP], 6.2.3 Base Mode Parameter Access).
The Text Property shall contain the BMP Text attribute (see Table 65). The Text Property shall be provided unless the BMP with assigned text array is represented as EnumerationVariable or OptionSetVariable as specified above.
The TextArray Property shall contain the BMP Text Array attribute (see Table 65). The TextArray Property shall be provided unless the BMP is represented as ArrayFolder Object, see specification of the ArrayFolder Object above.
The EngineeringUnits Properties shall be provided for BMPs with specified engineering unit, the EURange Properties shall be provided for BMPs with specified engineering unit and range.
The Element component represents one array element for array BMPs. There shall be as many Element components of the ArrayFolder Object as there are array elements.
The BitMask Property represents the state of the individual Bits of the OptionSetVariable and renders the optional BitMask property of the 0:OptionSetType mandatory.
The GsdGenIoDataType represents Input (Output) Data of a Submodule.
Table 22 – GsdGenIoDataType definition
Attribute |
Value |
||||
BrowseName |
GsdGenIoDataType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasProperty |
Variable |
Consistency |
GsdGenIoConsistencyEnumeration |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
<DataItemx> |
0:BaseDataType |
GsdGenIoDataItemVariableType |
OP, RO |
0:HasComponent |
Object |
<InputChannelx> |
|
GsdGenIoChannelType |
OP, RO |
0:HasComponent |
Object |
<OutputChannelx> |
|
GsdGenIoChannelType |
OP, RO |
Conformance Units |
|||||
PNGSDGM IO Data |
The Consistency Property contains the value of the “Consistency” attribute of the “Input” (“Output”) GSDML element.
The <DataItemx> 0:HasComponent Reference points to a GsdGenIoDataItemVariableType Variable representing the Input Data (Output Data) of the Submodule. There shall exist as many References as are needed to represent all “DataItem” child elements of the “Input” (“Output”) element in the GSDML (see Figure 10 also). To ensure unique BrowseNames, the Server shall substitute the ‘x’ in the placeholder template string with the item number. The numbering for <DataItemx> shall start with 1 for the first item and shall be incremented by 1 for each additional item.
The <InputChannelx> (<OutputChannelx>) GsdGenIoChannelType Object represents one Input (Output) Channel of the Submodule. There shall exist as many <InputChannelx> (<OutputChannelx>) Objects as are needed to represent all “Channel” child elements of the “Input” (“Output”) element in the GSDML (see also). To ensure unique BrowseNames, the Server shall substitute the ‘x’ in the placeholder template strings with the content of the “Number” attribute of the “Channel” element.
The GsdGenIoDataType Object shall relate to the associated PnIoTelegramType “Input” (“Output”) Object in the PROFINET aspect using a 0:RepresentsSameEntityAs ReferenceType.
The GsdGenIoChannelType represents one Input (Output) Channel of a Submodule.
Table 23 – GsdGenIoChannelType definition
Attribute |
Value |
||||
BrowseName |
GsdGenIoChannelType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasProperty |
Variable |
Number |
0:UInt16 |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
Data |
|
GsdGenIoChannelDataType |
M, RO |
0:HasComponent |
Object |
Quality |
|
GsdGenIoChannelQualityType |
O, RO |
Conformance Units |
|||||
PNGSDGM IO Data |
The Number Property shall contain the Input (Output) Channel number. The Value shall be equal to the content of the “Number” attribute of the GSDML “Channel” element.
The Data Object represents the content of the “Data” child element of the GSDML “Channel” element.
The Quality Object represents the content of the “Quality” child element of the GSDML “Channel” element.
The GsdGenIoChannelDataType represents the memory associated with one IO Channel.
Table 24 – GsdGenIoChannelDataType definition
Attribute |
Value |
||||
BrowseName |
GsdGenIoChannelDataType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasProperty |
Variable |
BitOffset |
0:UInt16 |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
BitLength |
0:UInt16 |
0:PropertyType |
M, RO |
Conformance Units |
|||||
PNGSDGM IO Data |
The BitOffset Property shall be equal to the content of the “BitOffset” attribute of the GSDML “Data” child element of the “Channel” element. It contains the offset in bits, starting with 0, into the data defined by the “DataItem/BitDataItem” elements.
The BitLength Property shall be equal to the content of the “BitLength” attribute of the GSDML “Data” child element of the “Channel” element. It contains the length of the channel data, as number of bits.
The GsdGenIoChannelDataType Object shall relate to the GsdGenIoDataItemVariableType Variable which represents the IO Data it references with a 0:AssociatedWith ReferenceType as shown in Figure 11.
The GsdGenIoChannelQualityType represents the quality information of one IO Channel.
Table 25 – GsdGenIoChannelQualityType definition
Attribute |
Value |
||||
BrowseName |
GsdGenIoChannelQualityType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasProperty |
Variable |
BitOffset |
0:UInt16 |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Format |
GsdGenIoQualityFormatEnumeration |
0:PropertyType |
M, RO |
Conformance Units |
|||||
PNGSDGM IO Data |
The BitOffset Property shall be equal to the content of the “BitOffset” attribute of the GSDML “Quality” child element of the “Channel” element. It contains the offset in bits, starting with 0, into the data defined by the “DataItem/BitDataItem” elements. It points to the start of the channel quality data.
The Format Property shall be equal to the content of the “Format” attribute of the GSDML “Quality” child element of the “Channel” element. It specifies the size and interpretation of the quality data. See GsdGenIoQualityFormatEnumeration in 10.6 for details.
The GsdGenIoChannelQualityType Object shall relate to the GsdGenIoDataItemVariableType Variable which represents the segment of the IO Data containing the quality data it references with a 0:AssociatedWith ReferenceType as shown in Figure 11.