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.