GSDML GettingStarted
GSDML GettingStarted
Getting Started
<<>> translators
SIM ATIC N ET
G SDM L
G etting Started
Simple Instructions for C reating a
D evice D escription Data (GSD ) File
for PR OFINET IO)
Version: 1.3
D ate: 08/12
GSDML: GettingStarted
Liability Exclusion
We have checked the contents of this document regarding agreement with
the hardware and software described. Nevertheless, deviations can not be
ruled out so that we do not guarantee complete agreement. However, the
data in this document is checked periodically. Required corrections are
included in subsequent editions. We appreciate suggestions for improvement.
Copyright
Copyright (C) Siemens AG 2012. All Rights Reserved
Unless permission has been expressly granted by Siemens, passing on this
document or copying it, or using and sharing its content is not allowed.
Offenders will be held liable. All rights reserved in the event a patent is
granted or a utility model or design is registered.
Subject to technical changes.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 4
GSDML: GettingStarted
Version IDs
Version
Date
Change
V 1.0
V 1.1
March 2, 2009
Corrections incorporated
V 1.2
V 1.3
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 5
GSDML: GettingStarted
Content
1
Introduction....................................................................................................................................................9
2.1
3.2
5.2
5.2.1
ProfileHeader ................................................................................................................................14
5.2.2
ProfileBody....................................................................................................................................14
10
10.1
11
12
13
13.1
General.............................................................................................................................................28
13.2
14
14.1
14.2
15
15.1
15.2
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 6
GSDML: GettingStarted
16
16.1
16.2
17
18
19
Media Redundancy..................................................................................................................................40
20
21
22
Tools ........................................................................................................................................................44
22.1
22.1.1
22.1.2
22.1.3
22.1.4
22.1.5
22.1.6
22.1.7
Settings .........................................................................................................................................47
22.1.8
Documentation..............................................................................................................................47
22.2
22.3
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 7
GSDML: GettingStarted
This objective of this document is to facilitate getting acquainted with the application and the structure of the
GSDML. It does not replace the standard document, but builds on it; and based on a few examples, wants to
show you how the elements and attributes of a GSDML document work.
The document "GSDML Specification for PROFINET IO" Is made available by means of the Webserver of the
PNO (www.profinet.com Downloads).
If there should be contradictions with respect to the GSDML specification, the GSDML specification is the
standard.
In the future, the document is adapted to the requirements of the market. Feedback is welcome for that reason.
Please report missing passages or incompatibilities to [email protected].
The syntax of XML itself and the structure of schematic files will not be explained here. There are many good
books serving this purpose.
Note: Some Links may currently grasp to nothing. We are working on it and will update it when they are
correctly available.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 8
GSDML: GettingStarted
Introduction
By introducing the GSDML (General Station Description Markup Language), the feature of XML based
documents to generate any hierarchical levels was used to map the hierarchical device model as unchanged
as possible.
The result is a description language that is able to describe over several levels the attributes of a device family.
When the XML schematics representation was generated, the attempt was made to include as much as
possible of the GSD semantics, but to also, where it was advisable and necessary, to redesign the mapping.
Note on Terminology
GSDML is one language to describe PROFINET IO field devices. By using this language, a GSD (General
Station Description) is generated in turn. For that reason, it is correct to refer to a "GSD file" although it is
structured in XML notation.
When the term "GSD" or "GSD file" is used in this document, it always refers to the form based on the XML If
the keyword-based GSD is referred to, it will be mentioned explicitly.
2.1
What is New
Compared with the keyword-based GSD (PROFIBUS), the following are essential changes regarding the
XML-based GSD, in addition to the syntactical change because of XML:
The "Device Access Point" (DAP) is described explicitly for the GSDML. For the GSD on the other
hand, only the DP slave is described as a whole. The result of adding the DAPs is that almost all
parameters of the device are described at the DAP element.
A GSDML document can contain any number of DAP definitions. This allows for generating a file for a
device family (and not only for individual field devices). The advantage is obvious, particularly to field
devices that have a modular configuration. The description of the modules can be maintained
centrally in one GSD file the generation and update effort is clearly reduced in comparison to a
keyword-based GSD since there, the module descriptions are present redundantly and have to be
kept identical in the different files 'manually.
A GSDML document can maintain any number of foreign language texts in one file. This leads to a
further reduction of the number of required files since in the keyword-based GSD, a separate file is
required for each language.
Add to this the capabilities that result in using the XML standard: validation of XML files by means of
schematic description and transformation into other formats by means of XLS.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 9
GSDML: GettingStarted
The structure of an XML document can be checked by using a schematic file. In this connection, we refer to
the validation of a document. During this process, a check is performed, for example, whether the element
structure and the attributes used in the XML document agree with the schematic definition. For example, the
schematic file contains information whether an attribute has to be present or whether this attribute is optional.
The document is validated with an XML parser. An overview is provided in the section "Tools".
It is also possible to check the correct structure of a GSD file with the tool "PROFINET XML Viewer. It is
available for downloading from the PNO web pages. If you should be using this tool, you dont need any
expertise regarding the functions and application of schematic files, since the PROFINET XML Viewer installs
it automatically and uses it for validation. In this case, you can skip this chapter. More information about the
tool "PROFINET XML Viewer is also provided in the section "Tools.
3.1
The PNO working committee generates, updates and makes available the GSDML schematic files for
downloading by means of the PNO Webserver.
Using a validated XML parser, the author of a GSD file is now able to check an existing GSD file against the
schematic and correct it if necessary.
When importing a GSD file to a tool, the tool also can -as the first step- automatically check the file against the
schematic files and if there is an error, reject the import of the GSD file.
The figure below shows in principle the sequence for schematic handling:
GSD WG
Device
Vendor
Creates
Maintains
Uses
XML Editor
GSD Specification
Human Readable
Uses
XML Parser
XML Schema
Machine Readable
GSD File
Uses
Engineering
Tool
Validates
Legend:
Files
Humans
Tools
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 10
GSDML: GettingStarted
3.2
Four schematic files are necessary to validate a GSD file. These are arranged as follows:
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 11
GSDML: GettingStarted
In contrast to the keyword-based GSD, the length of the file name is not limited to eight characters. The file
name has to correspond to the following rules:
GSDML-[GSDML schematic version]-[manufacturer name]-[device family name]-[date].xml
The following rules apply to the keywords in brackets:
GSDML schematic version: Version ID of the referenced schematic. This version ID has to correspond to the
version ID in the file name of the GSDML DeviceProfile-[GSDML schematic version].xsd. Optional the release
time of the GSDML based file in format hhmmss (Optional). hh is 00 up to 24.
Manufacturer name: Name of the device manufacturer. Hyphens and blanks are permitted in the name. To
prevent generating the same file name for different manufacturers it is recommended -in addition to the nameto also integrate the PNO ID (VendorID) as part of the name.
Name of the device family: defines which device family is described in the GSDML. Hyphens and blanks are
permitted in the name. The name should correspond to the attribute content "Productfamily" of the element
"GSDML_DeviceIdentity".
Date: Date when the GSD file was released, in the format yyyymmdd. However, the manufacturer has to take
into account that different GSD files with the same date ID are not released for the same device family. <<?>>
Time: Time when the GSD file was released, in the format hhmmss (optional).
This makes counting the version of the GSD file itself superfluous and ensures that different versions dont
overwrite an existing file.
If a GSD file with a more recent date/time is installed for the same product family, as a rule only the field
devices of the latest GSD file are displayed in an engineering tool in the selection catalog.
Example of a valid file name:
GSDML-V1.0-Siemens-002A-ET200X-20030818.xml
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 12
GSDML: GettingStarted
5
5.1
As for any XML document, the processing instructions have to be defined at the start of a GSD file. As a rule,
they look like this:
<?xml version="1.0" encoding="UTF-8"?>
Here, only the definition of the encoding can be varied. There are no restrictions for this in the GSDML all
encodings corresponding to the standard can be specified. However, there are editors that have problems
with Unicode data and who in particular dont interpret correctly the byte order mark. Otherwise, using UTF-8
is recommended as a rule since all country-specific special characters can be represented with it, without this
causing the size of the file to increase significantly (as in the case of UTF-16 or UTF-32).
5.2
The root element of a GSD file is "ISO15745Profile". The name space used and the import instruction for the
schematic file must be specified.
<ISO15745Profile xmlns="http://www.profibus.com/GSDML/2003/11/DeviceProfile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile
..\XSD\GSDML-DeviceProfile-v1.0.xsd">
The schematic file should be located in a directory "XSD" parallel to the GSD file! This rule is necessary so
that an engineering tool or a certification center (where the GSD files of the most varied manufacturers are
stored together) does not have to store the identical schematic files multiple times in order to perform a
validation.
As specified in ISO 15745, an ISO15745Profile consists of a ProfileHeader and a ProfileBody.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 13
GSDML: GettingStarted
ISO15745Profile
ProfileHeader
Profile Body
DeviceIdentity
ProfileBody
DeviceFunction
DeviceAccessPointList
ApplicationProcess
ModuleList
SubmoduleList
ValueList
ChannelDiagList
UnitDiagList
GraphicsList
CategoryList
ExternalTextList
5.2.1
ProfileHeader
5.2.2
ProfileBody
The ProfileBody contains the actual data of the field device and consists of three parts:
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 14
GSDML: GettingStarted
"ApplicationProcess". This is the main part of the description data.The most important sections of the
ApplicationProcess block are listed in the following sub-chapters.
5.2.2.1
DeviceAccessPointList
This section contains the description of the individual Device Access Points (network access point). As
mentioned above, a GSD file can contain the description for any number of interface modules. The sum of all
Device Access Points forms a Device Family. The degree of expansion of a DAP can be configured for
modular field devices. Different modules (base modules) can be assigned to each DAP.
5.2.2.2
ModuleList
This section includes the description of the individual modules of a field device. These can be insertable (in
the case of field devices set up in the modular mode) or permanently integrated in a field device.
5.2.2.3
SubModuleList
This section includes the description of the individual sub-modules of a field device. These can be insertable
(in the case of field devices set up in the modular mode) or permanently integrated in a field device
5.2.2.4
ValueList
This section includes the ValueList. It contains -the individual parameters of a field device- the assignment
between a concrete value and the associated text.
5.2.2.5
ChannelDiagList
This section includes the ChannelDiagList. It contains the assignment between a channel error of a field
device and the corresponding texts.
5.2.2.6
UnitDiagList
This section includes the UnitDiagList. It describes the structural configuration of the generic diagnostic
indications of a field device.
5.2.2.7
GraphicsList
CategoryList
This section includes a certain category (for example, Digital Input, Analog Output, etc.). It is used for the
arrangement and better locatability within the module catalog of an engineering system.
5.2.2.9
ExternalTextList
This section includes the "ExternalTextList of the GSDML. All texts are stored that can be referenced by the
other sections. More detail is provided for this in the chapter "Integration of Foreign Languages".
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 15
GSDML: GettingStarted
The GSDML schematic can be useful, of course, to generate a GSD file "from scratch". The rules it contains
regarding the syntax of a GSDML-based file suffice to generate a correct and validating GSD file.
However, it is simpler to start with the existing GSD file and adapt it to its own field devices. A basis to start is
provided, for example, in the sample files of the PNO that can be loaded from <<?>> the PNO Webserver
under the address http://www.profibus.com/pall/applications/products/article/00085/.
The graphics in the GSD file are shown in UML notation and facilitate readability as well as understanding the
hierarchy of the definitions to be entered. Here a brief example:
ISO15745Profile
ProfileHeader
1
ProfileBody
1
Signature
0..1
For the sake of simplicity, please read the UML schematic from the left to the right. This also opens up for you
the hierarchy of the data structure. The numerical values specified have the following meaning:
1
01
0*
The value range means that nothing has to be specified, but also that any number of definitions
can be specified
1*
This value range means that at least one definition has to be specified, but any number of
definitions can also be specified
If you are assuming an existing GSD file, you have to perform -in addition to the adaptations to your field
devices- the following adaptations in any case:
As "VendorID (manufacturer ID), enter the number that is defined for your company at the PNO. An
overview is provided under http://www.profibus.com/IM/Man_ID_Table.xml. Please note that you enter
the number in the GSDML as hexa-decimal.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 16
GSDML: GettingStarted
If needed, adapt the "MainFamily that represents a rough technological classification of your field
device. This attribute is used to structure the HW catalog in the engineering system. Refer also to
Chapter 15.2.
The figure below shows the locations that were changed in the GSD file:
Device_ID
Device Class
00
Example for
2A
Siemens
Byte
Device Family
Byte
00= reserved
01= ERTEC 200 DevKit
02= ERTEC 400 DevKit
03=
01= Controllers
01= S7 300
02= S7 400
03=
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 17
GSDML: GettingStarted
Physical Device Management (PDEV); it contains all HW oriented definitions (refer also to the chapter
"Physical Device Management).
Redundancy definitions
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 18
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 19
GSDML: GettingStarted
In the case of PROFINET, the physical interfaces of a field device and their switch ports as well as the
performance is called PDev. An Ethernet interface is uniquely identified by its name, IP and MAC address,
and can consist of several switch ports.
In a field device, all HW oriented port information and transition parameters are stored retentively in the PDev.
These are organized as follows:
Interface Submodule corresponds to an instance. Here, for example, the planning data for IRT
communication, clock synchronization, media redundancy etc, are stored.
Port Submodules Data for the port settings, neighborhood information, fiber optic parameters, etc.
are stored here
To this end, the subslot numbers are defined for the respective DAP according to the entry in the GSD file.
These numbers start with 0x8000 for the interface subslot. The distribution is as follows:
Subslot number 0x8i00 i = number of interface module (0 ..0x0F) and
Subslot number 0x8ipp pp = number of the respective port (1 ... 0x0FF)
Addressing for the PDev is defined in the GSD file of the IO device. Below, an example is provided of what
such a definition in the GSD file can look like.
Example
The PDev definition is located within the SystemDefinedSubmoduleList and belongs to the respective DAP.
To address the PDev, Subslot 0x8000 (32768 dec) was selected for the example below. Here, the following is
also located: the supported Real Time classes, the IRT definition and definitions for Fast Startup. These
definitions will be discussed in greater detail in the corresponding chapters below. For the sake of clarity, they
are included in the example, however.
<SystemDefinedSubmoduleList>
<InterfaceSubmoduleItem SubslotNumber="32768" SubmoduleIdentNumber="0x0002"
SupportedRT_Classes="RT_CLASS_1;RT_CLASS_2;RT_CLASS_3"
TextId="TOK_DAP_InterfaceModule" IsochroneModeSupported="true"
SupportedProtocols="SNMP;LLDP" SupportedMibs="MIB2"
NetworkComponentDiagnosisSupported="true" DCP_HelloSupported="true">
<RT_Class3Properties MaxBridgeDelay="2920" MaxNumberIR_FrameData="400" />
<SynchronisationMode SupportedRole="SyncSlave" MaxLocalJitter="50"
T_PLL_MAX="1000" SupportedSyncProtocols="PTCP" />
<ApplicationRelations NumberOfAdditionalInputCR="0"
NumberOfAdditionalMulticastProviderCR="0" NumberOfAdditionalOutputCR="0"
NumberOfMulticastConsumerCR="0" PullModuleAlarmSupported="true">
<TimingProperties SendClock="16 32 64 128" ReductionRatio="1 2 4 8 16 32 64 128
256 512" />
</ApplicationRelations>
</InterfaceSubmoduleItem>
<PortSubmoduleItem SubslotNumber="32769" SubmoduleIdentNumber="0x0003"
MAUType="100BASETXFD" TextId="TOK_Port1" MaxPortRxDelay="302"
MaxPortTxDelay="108" PortDeactivationSupported="true"
LinkStateDiagnosisCapability="Up+Down" />
<PortSubmoduleItem SubslotNumber="32770" SubmoduleIdentNumber="0x0003"
MAUType="100BASETXFD" TextId="TOK_Port2" MaxPortRxDelay="302"
MaxPortTxDelay="108" PortDeactivationSupported="true"
LinkStateDiagnosisCapability="Up+Down" />
</SystemDefinedSubmoduleList>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 20
GSDML: GettingStarted
PROFINET provides a cascadable Real Time concept. In order to adjust communication optimally to the
needs of the automation plant, it is necessary to specify in the GSD file which real time classes the respective
field device supports. These definitions are DAP-specific and therefore have to be specified in the PDev
(InterfaceSubmodule).
In the GSD file, the definition of the real time classes could look like this:
<InterfaceSubmoduleItem SubslotNumber="32768" SubmoduleIdentNumber="0x0000002"
SupportedRT_Classes="RT_CLASS_1;RT_CLASS_2;RT_CLASS_3"
TextId="TOK_DAP_InterfaceModule" IsochroneModeSupported="true"
SupportedProtocols="SNMP;LLDP" SupportedMibs="MIB2"
</InterfaceSubmoduleItem>
9.1
Isochronous or synchronous Real Time is part of synchronized communication (RT_Class_2 and RT_Class_3,
synchronized). To this end, the corresponding definitions for the respective DAP have to be provided within
the PDev. PROFINET uses the PTCP protocol for synchronization. Since a synchronization frame is sent over
the entire bus to all stations, the time lag also has to be specified when a frame passes through a switchport in
send and receive direction.
Example
<SystemDefinedSubmoduleList>
<InterfaceSubmoduleItem SubslotNumber="32768" SubmoduleIdentNumber="0x0002"
SupportedRT_Classes="RT_CLASS_1;RT_CLASS_2;RT_CLASS_3"
TextId="TOK_DAP_InterfaceModule" IsochroneModeSupported="true"
SupportedProtocols="SNMP;LLDP" SupportedMibs="MIB2"
NetworkComponentDiagnosisSupported="true" DCP_HelloSupported="true">
<RT_Class3Properties MaxBridgeDelay="2920" MaxNumberIR_FrameData="400" />
<SynchronisationMode SupportedRole="SyncSlave" MaxLocalJitter="50"
T_PLL_MAX="1000" SupportedSyncProtocols="PTCP" />
<ApplicationRelations NumberOfAdditionalInputCR="0"
NumberOfAdditionalMulticastProviderCR="0" NumberOfAdditionalOutputCR="0"
NumberOfMulticastConsumerCR="0" PullModuleAlarmSupported="true">
<TimingProperties SendClock="16 32 64 128" ReductionRatio="1 2 4 8 16 32 64 128
256 512" />
</ApplicationRelations>
</InterfaceSubmoduleItem>
<PortSubmoduleItem SubslotNumber="32769" SubmoduleIdentNumber="0x0003"
MAUType="100BASETXFD" TextId="TOK_Port1" MaxPortRxDelay="302"
MaxPortTxDelay="108" <! delay in switch in send and receive direction >
PortDeactivationSupported="true"
LinkStateDiagnosisCapability="Up+Down" />
<PortSubmoduleItem SubslotNumber="32770" SubmoduleIdentNumber="0x0003"
MAUType="100BASETXFD" TextId="TOK_Port2" MaxPortRxDelay="302"
MaxPortTxDelay="108" PortDeactivationSupported="true"
LinkStateDiagnosisCapability="Up+Down" />
</SystemDefinedSubmoduleList
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 21
GSDML: GettingStarted
Modules are identified through unique non-interchangeable ident numbers within a field device.
Submodules are identified with unique submodule ident numbers within a module.
Existing modular field devices become PROFINET IO devices, since for this transition only the head
module has to e exchanged.
Gateways (links) to other networks are used since normally, the field devices of the secondary
network are mapped to the PROFINET IO address space.
Submodule definitions can occur at different locations within a GSD file. Some of these locations are listed
below:
modules
in
the
SystemDefinedSubmoduleList
or
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 22
GSDML: GettingStarted
Example:
In the example below, three modules are defined that can be read out <<? part of sentence missing in the original>>
based on their ID (here
ID_Mod_01 for instance). They are defined in two steps. Within the
UseableModules, all modules are identified with their unique IDs.
1. Definition of the Modules:
<UseableModules>
<ModuleItemRef ModuleItemTarget="ID_Mod_01" AllowedInSlots="1..16" />
<ModuleItemRef ModuleItemTarget="ID_Mod_02" AllowedInSlots="1..16" />
<ModuleItemRef ModuleItemTarget="ID_Mod_03" AllowedInSlots="1..16" />
</UseableModules>
2. Definition of the properties of the modules within the ModuleList with reference to the Module_ID. The
actual data length is specified within the VirtualSubmodule definition.
<ModuleList>
<ModuleItem ID="ID_Mod_01" ModuleIdentNumber="0x00000020">
<ModuleInfo>
<Name TextId="TOK_TextId_Module_1IO" />
<InfoText TextId="TOK_InfoTextId_Module_1IO" />
<HardwareRelease Value="1.0" />
<SoftwareRelease Value="1.0" />
</ModuleInfo>
<VirtualSubmoduleList>
<VirtualSubmoduleItem ID="1" SubmoduleIdentNumber="0x00000001" API="0">
<IOData IOPS_Length="1" IOCS_Length="1">
<Input Consistency="All items consistency">
<DataItem DataType="OctetString" TextId="TOK_Input_DataItem_1"
Length="1" UseAsBits="true" />
</Input>
<Output Consistency="All items consistency">
<DataItem DataType="OctetString" TextId="TOK_Output_DataItem_1"
Length="1" UseAsBits="true" />
</Output>
</IOData>
<ModuleInfo>
<Name TextId="TOK_TextId_Module_1IO" />
<InfoText TextId="TOK_InfoTextId_Module_1IO" />
</ModuleInfo>
</VirtualSubmoduleItem>
</VirtualSubmoduleList>
</ModuleItem>
Here, additional modules follow.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 23
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 24
GSDML: GettingStarted
11 Diagnostic Definitions
In PROFINET IO, alarms are used to signal, in the form of diagnoses, critical states from the process or the
field device to the control system. These can be defined
Manufacturer specific
Profile specific or
System specific
In order to be displayed in the engineering tool in a readable form, they have to be defined in a certain
structure in the GSD file. The manufacturer-specific and profile specific alarms have to be described in the
GSD file regarding the value range as well as the texts <<?>> . The system-specific alarms can be assumed as
known in the ES tool regarding the structure as well as the texts.
The table below shows which alarm types of PROFINET can be described in the GSD file for PROFINET:
UserStructureIdentifier
0x0000-0x7FFF
ManufacturerSpecific
0x8000
ChannelDiagnosis
0x8001
Multiple
0x8002
ExtChannelDiagnosis
0x8003
ChannelErrorType
ExtChannelErrorType
0x0000-0x000E
Reserved or system defined
0x000F-0x001F
Manufacturer specific, but
with recommendation
0x0020-0x00FF
Reserved for common
profiles
0x0100-0x7FFF
Manufacturer specific
0x8000-0x8FFF
Reserved or system defined
0x9000-0x9FFF
Reserved for profiles
0x0000-0x000E
Reserved or system defined
0x000F-0x001F
Manufacturer specific, but
with recommendation
0x0001-0x7FFF
Manufacturer specific
0x0020-0x00FF
Reserved for common
profiles
0x0001-0x7FFF
Manufacturer specific
0x0100-0x7FFF
Manufacturer specific
0x0001-0x7FFF
Manufacturer specific
0x8000-0x8FFF
Reserved or system defined
0x9000-0x9FFF
Reserved for profiles
ChannelDiagList/ChannelDiagItem, enumerated
by (Channel)ErrorType, with
ExtChannelDiagList/ExtChannelDiagItem,
enumerated by (ExtChannel)ErrorType
ChannelDiagList/ChannelDiagItem, enumerated
by (Channel)ErrorType, with
ExtChannelDiagList/ExtChannelDiagItem,
enumerated by (ExtChannel)ErrorType
ChannelDiagList/ChannelDiagItem, enumerated
by (Channel)ErrorType, with
ExtChannelDiagList/ExtChannelDiagItem,
enumerated by (ExtChannel)ErrorType
GSDML Element
UnitDiagTypeList/UnitDiagTypeItem, enumerated
by UserStructureIdentifier
ChannelDiagList/ChannelDiagItem (no
ExtChannelDiagList), enumerated by
(Channel)ErrorType
ChannelDiagList/ChannelDiagItem (no
ExtChannelDiagList), enumerated by
(Channel)ErrorType
ChannelDiagList/ChannelDiagItem (no
ExtChannelDiagList), enumerated by
(Channel)ErrorType
ChannelDiagList/ProfileChannelDiagItem (no
ExtChannelDiagList), enumerated by API and
(Channel)ErrorType
Will be split into single channel diagnosis alarms and decoded accordingly.
0x9000-0x9FFF
Reserved for profiles
ChannelDiagList/ProfileChannelDiagItem,
enumerated by (Channel)ErrorType, with
ExtChannelDiagList/ProfileExtChannelDiagItem,
enumerated by API and (ExtChannel)ErrorType
The structure of the QualifiedChannelDiagnosis is that of the ExtChannelDiagnosis except for an additional
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 25
GSDML: GettingStarted
UserStructureIdentifier
QualifiedChannelDiagn
osis
0x8004-0x8FFF
Reserved or system
defined
0x9000-0x9FFF
Reserved for profiles
0xA000-0xFFFF
Reserved
ChannelErrorType
ExtChannelErrorType
GSDML Element
system defined QualifiedChannelQualifier. So the QualifiedChannelDiagnosis is described with the same
GSDML elements as the ExtChannelDiagnosis.
UnitDiagTypeList/ProfileUnitDiagTypeItem,
enumerated by API and UserStructureIdentifier
Example:
Within the ChannelDiagList, the manufacturer specifies -within the keyword ChannelDiagItem under the
definition ErrorType- the error number that is described in more detail with the keyword TextId. The definition
starts on the same level as the DeviceAccessPointList. It is advisable to first define -either within the company
or at least for a module system- all possible error numbers uniformly, since the user software in the
PROFINET IO field device can then use uniform error numbers.
<ChannelDiagList>
<ChannelDiagItem ErrorType="16">
<Name TextId="TOK_Name_ErrorType16" />
<Help TextId="TOK_HelpName_ErrorType16" />
</ChannelDiagItem>
<ChannelDiagItem ErrorType="17">
<Name TextId="TOK_Name_ErrorType17" />
<Help TextId="TOK_HelpName_ErrorType17" />
</ChannelDiagItem>
<ChannelDiagItem ErrorType="18">
<Name TextId="TOK_Name_ErrorType18" />
<Help TextId="TOK_HelpName_ErrorType18" />
</ChannelDiagItem>
</ChannelDiagList>
This parameter assignment error then has to be defined also in the language list for all other languages used.
<ExternalTextList>
<PrimaryLanguage>
<Text TextId="TOK_Name_ErrorType16" Value="parameter assignment error" />
<Text TextId="TOK_Name_ErrorType17" Value="Power supply fault" />
<Text TextId="TOK_Name_ErrorType18" Value="fuse blown" />
</PrimaryLanguage>
</ExternalTextList>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 26
GSDML: GettingStarted
12 Graphic Symbols
When configuring PROFINET systems, the field devices are represented using graphic symbols.
definition of such graphic symbols could look like this (from the development kit for ERTEC 200).
The
<Graphics>
<GraphicItemRef Type="DeviceSymbol" GraphicItemTarget="ID_Graph_2" />
</Graphics>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 27
GSDML: GettingStarted
13 Texts in GSDML
13.1 General
Most texts in the GSDML can be defined language-dependent. To this end, only Ids are used in the
description part (designated as attribute with the name "TextId") that refer to the actual texts in the
"ExternalTextList". There are no length limitations for the texts themselves since as a rule it is possible to
respond in the engineering tools to texts of any length with scroll bars, for example. Nevertheless, it is pointed
out that if texts are overly long, it can happen that the entire text is not displayed.
For that reason, it is recommended to stay within the following length definitions:
Use
Element Name
Category names
CategoryItem
30
Parameter names
ValueItem
30
Parameter texts
ssign
DataItem
30
Help information
Help
1024
ChannelDiagItem/Name
30
ChannelDiagItem/Text
1024
ParameterRecordDataItem
30
Name of a module
ModuleInfo/Name
30
ModuleInfo/InfoText
250
DeviceIdentity/InfoText
250
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 28
GSDML: GettingStarted
Language
de
Deutsch
es
Spanisch
fr
Franzsisch
it
Italienisch
Table 3: Language Encodings in the GSDML
The sections "PrimaryLanguage" and "Language" itself have identical structures. They include any number of
"Text" entries. The attribute "TextId" is used for identification and the attribute "Value" contains the actual text.
An "ExternalTextList" with two languages can look like this:
<ExternalTextList>
<PrimaryLanguage>
<Text TextId="IDT_REF_WIREBREAK" Value="Wire break"/>
</PrimaryLanguage>
<Language xml:lang="de">
<Text TextId="IDT_REF_WIREBREAK" Value="Drahtbruch"/>
</Language>
</ExternalTextList>
In addition to this method, it is also possible to move texts to a so-called "satellite files". This allows for adding
a language without the (possibly already certified) GSD file having to be changed.
A satellite file is structured as follows (since GSDML Version V 2.2):
<?xml version="1.0" encoding="UTF-8"?>
<ExternalTextDocument xml:lang="fr" xmlns="http://www.profibus.com/Common/2003/11/Primitives"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.profibus.com/Common/2003/11/Primitives ..\..\XSD\Common-Primitives-v2.2.
xsd">
<Text TextId=" IDT_REF_WIREBREAK" Value="rupture de fil"/>
</ExternalTextDocument>
For GSDML older than V2.2 the namespace http://www.profibus.com/Common/2003/11/Primitives and the
Scheme Common-Primitives-v1.0.xsd shall be used.
So that the satellite file can be located in the engineering tool it has to correspond to certain name
conventions. The rule is that the same name has to be used as in the corresponding GSD file, with the
addition "-Text-<2Letter Code>".
Example:
GSD file name is: GSDML-V1.0-Siemens-ET200X-20030818.xml
Satellite file in Italian has to be:
GSDML-V1.0-Siemens-ET200X-20030818-Text-it.xml
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 29
GSDML: GettingStarted
14 Using References
In a GSD file, numerous references are used in order to avoid describing the same data multiple times.
Example: Two modules support the same parameter "Measuring Type". In addition to the textual explanations,
numerous parameters are stored in the GSD for this parameter (such as encoding). By using references, it is
now possible to describe the parameter "Measuring Type" at one location in the GSD and to reference it from
all modules that are using this parameter. Otherwise, all texts would have to be specified separately in all
languages for each module. This would, on the one hand, increase the effort to update the file and on the
other hand increase the size of the GSD file considerably.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 30
GSDML: GettingStarted
Prefix
DeviceAccessPointItem IDD_
Module
IDM_
Submodule
IDS_
ValueItem
IDV_
GraphicItem
IDG_
Category
IDC_
InfoText
IDT_INFO_
ChannelDiagItem/Name IDT_DIAG_NAME_
RecordDataItem/Name
IDT_RECORD_NAME_
ModuleInfo/Name
IDT_MODULE_NAME_
Category
IDT_CATEGORY_
Help
IDT_HELP_
Assign
IDT_ASSIGN_
Ref
IDT_REF_
DataItem
IDT_DATAITEM_
Table 4: Prefix Use of IDs
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 31
GSDML: GettingStarted
<CategoryList>
<CategoryItem ID=" IDC_ 1" TextId=" IDT_CATEGORY_1"/>
<CategoryItem ID=" IDC_ 2" TextId=" IDT_CATEGORY_2"/>
</CategoryList>
<ExternalTextList>
<PrimaryLanguage>
<Text TextId=" IDT_CATEGORY_1" Value="Motorstarter"/>
<Text TextId=" IDT_CATEGORY_2" Value="Direktstarter"/>
</PrimaryLanguage>
</ExternalTextList>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 32
GSDML: GettingStarted
<<Suchen = search; Frequenzumrichter = frequency converter; Direktsanftstarter = direct soft starter; Erweiterungsmodule =
expansion modules; Netzbergang = network transition; Weitere .. = other field devices>>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 33
GSDML: GettingStarted
16 Description of ParameterRecordDataObjects
The GSDML allows for describing parameters that the IO controller transmits to a submodule of the IO device
at startup. For PROFINET IO, these parameters are stored in the form of RecordDataObjects (comparable to
data records).
To describe this data, the element "ParameterRecordDataItem" is used in the GSDML. It can be located
optionally below a submodule.
The individual parameters of a submodule can be distributed over several RecordDataObjects. Each
RecordDataObject can (within a submodule) be clearly addressed by means of the attribute "Index".
With the attribute "TransferSequence" you can specify the time sequence in which the individual
ParameterRecordDataObjects are transferred.
Other attributes of a ParameterRecordDataItem in the GSDML are
Name of the RecordDataObject (child element "Name). It is used only for display purposes in the
engineering tool.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 34
GSDML: GettingStarted
Bit
Byte
In this example, the value of the byte with Offset "2" is not specified by the Const definition. In this case, the
GSDML specification specifies that these values are filled with "0".
MT
Bit 1
MT
Bit 0
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 35
GSDML: GettingStarted
<<measuring range>>
<ExternalTextList>
<PrimaryLanguage>
<Text TextId="IDT_REF_GeneralParameter" Value="Allgemeine Parameter"/>
<Text TextId="IDT_REF_Messbereich" Value="Messbereich"/>
<Text TextId="IDT_ASSIGN_0-20mA " Value="Strom 0..20 mA"/>
<Text TextId="IDT_ASSIGN_4-20mA " Value="Strom 4..20 mA"/>
<Text TextId="IDT_ASSIGN_0-10V " Value="Spannung 0..10 Volt"/>
<Text TextId="IDT_ASSIGN_+-10V " Value="Spannung + - 10 Volt"/>
</PrimaryLanguage>
</ExternalTextList>
<<general parameters>>
<<meas. range>>
<<current>>
<<voltage>>
By means of "ValueItemTarget", each concrete value can be assigned a text. In the engineering tool,
this text is offered to the user as selection criterion. If there is no "ValueItemTarget", the tool will
provide this parameter as a pure editing field; that is, in the above case, only the values "0" to
"3 could be entered.
By using the attribute "AllowedValues" of the Ref Element, the value range can be limited. A similar
module that is only able to measure current could limit this with the attribute "AllowedValues="0 1".
If neither "ValueItemTarget" nor "AllowedValues" is available, the value range that can be entered is
limited only by the data type.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 36
GSDML: GettingStarted
The dialog below shows a possible representation of the parameter in the engineering tool:
<<Eigenschaften = attributes; Allgemein = general; Messbereich = measuring range; Strom = current; Spannung = voltage;
Abbrechen = Cancel; Hilfe = Help>>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 37
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 38
GSDML: GettingStarted
18 Fast Startup
Usually, Ethernet stations need, after Power On, several seconds to access data exchange. However, in
some areas of automation technology, a much faster power-up of a field device is desired. This variant of
power-up is called Fast Start Up (FSU). In this case, the field device becomes active itself after voltage return
and signals with the DCP service DCP.Hello. This definition is DAP specific and is therefore located within the
interface submodule. To define a FSU requires three steps:
1. PowerOnToCommReady within the DAP
2. The PDev definition (usually SubslotItem SubslotNumber="32768") and
3. The definition that DCP.Hello is supported: DCP_HelloSupported="true"
The definition of the optimum FSU service could look like this, for example:
1. PowerOnToCommReady within the DAP
<DeviceAccessPointItem ID="DAP 2" PhysicalSlots="0..16"
ModuleIdentNumber="0x00000002" MinDeviceInterval="16"
ImplementationType="ERTEC400" DNS_CompatibleName="ERTEC DEVKit"
ExtendedAddressAssignmentSupported="true" FixedInSlots="0"
ObjectUUID_LocalIndex="1"
RequiredSchemaVersion="V2.2" MaxSupportedRecordSize="4068"
ParameterizationSpeedupSupported="true"
PowerOnToCommReady="700"> <!time in ms until the first data exchange
>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 39
GSDML: GettingStarted
19 Media Redundancy
The Media-Redundancy protocol consists of a Media Redundancy Manager (MRM) and a Media Redundancy
Client (MRC)
Usually the IO-Controller takes over the functionality of a MRM. This is why the following example just takes
care of a MRC definition within the InterfaceSubmodule.
<InterfaceSubmoduleItem ID="IDS_3I" SubslotNumber="32768"
SubmoduleIdentNumber="0x0002" SupportedRT_Class="Class3"
SupportedRT_Classes="RT_CLASS_1;RT_CLASS_2;RT_CLASS_3"
TextId="TOK_DAP_InterfaceModule" IsochroneModeSupported="true"
SupportedProtocols="SNMP;LLDP" SupportedMibs="MIB2"
NetworkComponentDiagnosisSupported="true" DCP_HelloSupported="true">
<RT_Class3Properties MaxBridgeDelay="2920" MaxNumberIR_FrameData="128" />
<SynchronisationMode SupportedRole="SyncSlave" MaxLocalJitter="50" T_PLL_MAX="1000"
SupportedSyncProtocols="PTCP" />
<ApplicationRelations NumberOfAR="2" NumberOfAdditionalInputCR="0"
NumberOfAdditionalMulticastProviderCR="0" NumberOfAdditionalOutputCR="0"
NumberOfMulticastConsumerCR="0" PullModuleAlarmSupported="true">
<TimingProperties SendClock="8 16 32 64 128" ReductionRatio="1 2 4 8 16 32 64 128
256 512" />
<RT_Class3TimingProperties SendClock="8 16 32 64 128" ReductionRatio="1 2 4 8 16" />
</ApplicationRelations>
<MediaRedundancy SupportedRole="Client" /> <! Definition of MRP Client>
</InterfaceSubmoduleItem>
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 40
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 41
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 42
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 43
GSDML: GettingStarted
22 Tools
22.1 PROFINET XML Viewer
This tool is made available free of charge by the PNO and essentially offers two functions:
Validation of a GSD-file against the schematic files. In addition, GSD files can be checked with a
GSD Checker that performs additional checks beyond the rules stored in this schematic, and
ensures that the content is structured correctly.
Moreover, the Viewer makes the documentation available for the GSD and allows for the integration of any
XML Editor for generating GSD files.
Since a few sample files are installed at the same time, the tool provides a good basis for generating new
GSD files.
The figure below shows a screen shot of the tool:
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 44
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 45
GSDML: GettingStarted
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 46
GSDML: GettingStarted
22.1.7 Settings
In the dialog Settings, you can specify which editor is to be used and which XML parsers are to be used for
validation.
For licensing reasons, the Xerces Parser of the Apache Software Foundation is not installed automatically
also. However, you can do this yourself without a problem. To this end, load the software from the Web Page
of the Apache Software Foundation http://xml.apache.org/xerces-c/.
After unzipping the ZIP file, all you have to do is enter the bin directory that was created in the field Path to
Xerces Parser.
22.1.8 Documentation
The GSDML documentation is automatically installed also and can be called with the menu option Help
GSMDL Documentation.
The XMLSpy schematic notation is used:
A sequence that has to be adhered to is indicated with the Sequence symbol (refer to figure below).
Elements that have to be included (mandatory) are drawn as a framed box.
If an element is optional, the box is framed with dashes.
Below an element you can store how often it can be used. In our example, the Ref element is optional and
can be used as often as required.
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 47
GSDML: GettingStarted
Microsoft .NET Framework Version 2.0 Redistributable Package Date Published: 1/22/2006,
http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDDAAB15C5E04F5&displaylang=de
1/16/2009,
Please use the Microsoft Update to obtain the latest security updates.
Xerces XML Parser
To be obtained under http://xerces.apache.org/xerces-c/
Altova AltovaXML Community Edition
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 48
GSDML: GettingStarted
Validating XML parsers check whether the present XML document is structured according to the rules of a
schematic.
XML editors provide support when editing an XML document and as a rule possess an integrated XML parser,
or an interface for an external XML parser.
There is a huge number of editors for generating XML documents. To generate the GSDML schematic files
themselves the tool "XMLSpy" was used. It can also be used to easily edit GSD files. XML Spy has a "built in"
XML parser that can be used for validating GSD files.
The XMLSpy can be obtained under
http://www.altova.com/xmlspy.html
Further XML-editors:
XML Notepad 2007 (free of charge, see
http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f4f30fe913628&displaylang=de)
Xopus (commercial, see http://xopus.com/)
XMLFox (kostenlos, siehe http://xmlfox.com/)
XML Copy Editor (free of charge, see http://xml-copy-editor.sourceforge.net/)
<oXygen/> XML Editor (commercial, see http://www.oxygenxml.com/)
Easy XML Editor (commercial, see http://easy-xml-editor.de/)
_______________________________________________________________________________
Copyright Siemens AG - All Rights Reserved.
Page 49