GSD vs GSDML Files: Profinet Device Description Compared

David Krause13 min read
ProfibusSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

Device description files are the configuration backbone of every PROFIBUS and PROFINET fieldbus network. Before a controller can exchange cyclic process data with a remote I/O station, a drive, a valve island, or an identification reader, the engineering tool must know the device's module catalog, slot rules, diagnostic layout, parameter structure, and communication properties. That information is delivered to the engineering tool as a standardized machine-readable file: a GSD for PROFIBUS, or a GSDML for PROFINET.

Although the two file types are often discussed together, they are not interchangeable. They use different physical transports (RS-485 vs. Industrial Ethernet), different data models, different on-disk encodings, and different schema versioning rules. A GSD is a flat text file using a keyword/value syntax inherited from PROFIBUS DP. A GSDML is an XML document built on a formal W3C schema published by PROFIBUS & PROFINET International (PI).

This reference consolidates the technical specification details, version-to-firmware mappings, installation procedures for STEP 7 V5.x and TIA Portal, schema fields, and field-proven diagnostics that control engineers need when commissioning, replacing, or troubleshooting PROFIBUS/PROFINET devices.

Historical Context: From GSD to GSDML

The original Generic Station Description was defined in the early 1990s as part of the PROFIBUS DP standard (IEC 61158 / EN 50170). Because PROFIBUS DP was conceived as a master/slave, cyclic, RS-485-based fieldbus, the GSD only had to describe a relatively small set of fixed concepts: device identity, baud rate support, max slave diagnostics, module count, and a list of I/O modules. The text-based format was adequate and allowed integrators to inspect a GSD with a plain text editor.

When PROFINET was specified in the early 2000s, the requirements expanded significantly:

  • Real-time (RT) and isochronous real-time (IRT) communication classes
  • Multiple application relations (ARs) and multiple AR vendors
  • Shared Device (one PN device visible to multiple controllers)
  • Shared Input / Shared Output (input broadcast, output arbitration)
  • I&M (Identification & Maintenance) data 0..4
  • Module-internal submodules with subslot addressing
  • Port statistics, LLDP neighborhood, SNMP MIBs
  • Functional Safety (PROFIsafe) and PROFIenergy profiles
  • Redundancy (S2, R1, R2) and system redundancy
  • Web server, asset management, security (PROFINET Security Class 1)

Cramming all of this into the legacy flat-text GSD syntax was not feasible. PI therefore defined a new XML-based format called GSDML (GSD Markup Language). The first published GSDML specification, V2.0, accompanied PROFINET Conformance Class A in 2004. Subsequent revisions (V2.1, V2.2, V2.25, V2.3, V2.31, V2.32, V2.4) added the new features above in a backward-compatible XML schema.

GSDML is XML. A GSD is plain text. They are not interoperable: a PROFINET controller cannot read a GSD, and a PROFIBUS master cannot read a GSDML. The engineering tool, not the field device, performs the interpretation.

GSD File Format (PROFIBUS) — Technical Structure

A PROFIBUS GSD is a plain ASCII/UTF-8 text file with the suffix .GSD (historically also .gsd or device-specific .gse / .gsg variants used by some manufacturers). The file is divided into three logical sections, separated by semicolons:

  1. General specifications — vendor name, model, revision, hardware/firmware release, supported baud rates (9.6 kbps to 12 Mbps), max diagnostic length, max slave number, sync/freeze capability, redundancy behavior.
  2. Master/slave specifications — fixed and modular station structure, maximum number of modules, max input/output data length, minimum slave interval (min T_sdr), max T_sdr, max user parameter length (User_Prm_Data_Len), and Family code (for Profile devices).
  3. User parameter description (Ext-User-Prm) — bit-level definitions of the parameter telegram that the master sends to the slave during parameterization.

Each section is opened with a keyword terminated by an asterisk and closed by a semicolon. Lines may be wrapped with the backslash continuation character.

Example excerpt (Siemens ET 200S GSD, abridged):


#Profibus_DP
; GSD File for ET 200S IM 151-1 Standard
Vendor_Name        = "Siemens AG"
Model_Name         = "ET 200S IM151-1"
Revision           = "1.0"
Ident_Number       = 0x0001
Protocol_Ident     = 0
Station_Type       = 0
FMS_supp           = 0
Hardware_Release   = "1.0"
Software_Release   = "V1.0"
; Supported baud rates
9.6_supp   = 1
19.2_supp  = 1
45.45_supp = 1
93.75_supp = 1
187.5_supp = 1
500_supp   = 1
1.5M_supp  = 1
3M_supp    = 1
6M_supp    = 1
12M_supp   = 1
Max_Diag_Data_Len = 244
Max_Input_Len     = 244
Max_Output_Len    = 244
Max_User_Prm_Data_Len = 8
; Slot definitions
Module            = "DI 4x24VDC HF"  0x10
EndModule
Module            = "DO 4x24VDC/0.5A" 0x20
EndModule

Key structural elements that engineers encounter during troubleshooting:

Keyword Purpose Typical value range
Ident_Number Unique device ID assigned by PI; the master uses it to verify the connected device matches the configured one 0x0000–0xFFFF (4 hex digits)
Station_Type 0 = DP-Slave, 1 = DP-Master (Class 1) 0 or 1
Max_User_Prm_Data_Len Size of parameterization telegram in bytes 0–244
Max_Diag_Data_Len Maximum diagnostic buffer length per slave 0–244
Family Profile family for standardized modules 10, 11, 12, 14, 16, 17, 18, 19, 20...
User_Prm_Data_* Defines bit-level meaning of parameter telegram Text, length, default

GSDML File Format (PROFINET) — Technical Structure

A GSDML file is an XML document with the suffix .xml. The PI-maintained XML schema is published at www.profinet.com under the "PROFINET IO GSDML Specification" documents. The schema's namespace is http://www.profinet.org/xml/gsdml/ followed by the version identifier (e.g., /V2.32 for the 2.32 release).

High-level document structure:


<?xml version="1.0" encoding="UTF-8"?>
<GSDML xmlns="http://www.profinet.org/xml/gsdml/V2.32"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.profinet.org/xml/gsdml/V2.32 ...">
  <Profile>
  <ProfileBody>
    <DeviceIdentification VendorID="0x002A" DeviceID="0x0301" .../>
    <DeviceFunction>...</DeviceFunction>
    <ApplicationProcess>...</ApplicationProcess>
    <ExternalProfileList>...</ExternalProfileList>
  </ProfileBody>
  </Profile>
</GSDML>

Inside ProfileBody the most important elements are:

XML Element Function
<DeviceIdentity> VendorName, VendorID (assigned by PI), DeviceID, InfoText, OrderNumber
<DeviceFunction> Functional designation: input/output type, applicable product category
<InterfaceSubmoduleItem> Defines the PN interface (port count, supported RT/IRT classes, MRP/MRM capability, sync role)
<PortSubmoduleItem> Defines physical copper/fiber ports, MAU types, link restrictions
<DAPSubmoduleItem> Device Access Point — the entry point used by the IO controller
<ModuleItem> / <SubmoduleItem> Insertable I/O modules and submodules, each with VendorID/DeviceID slot index
<ParameterItem> Module-level parameter definitions with default values, value ranges, and text references
<IODataElement> Process data structure (bit/byte offsets, data type, length, IO direction)
<ChannelDiagItem> Channel-diagnostic error codes (numerical, manufacturer-specific or profile-specific)
<Graphics> Optional raster graphics embedded as base64 PNGs used in the device catalog
<SystemRedundancy> Defines supported redundancy modes (S2, R1, R2)
<SharedInput> / <SharedOutput> Shared Device input/output behavior

Because the GSDML schema is XML, it is hierarchical, extensible, and fully self-describing. PI performs strict XML schema validation before publishing certified device GSDML files, and engineering tools reject malformed or non-conformant GSDML files at import time.

Side-by-Side Technical Comparison

Attribute GSD GSDML
Fieldbus PROFIBUS DP / PA PROFINET IO
File encoding Plain ASCII text (UTF-8 in modern revisions) XML (UTF-8)
File extension *.GSD (also .gse, .gsg device-specific) *.xml
Schema language Implicit keyword grammar in IEC 61158 Formal W3C XML Schema (XSD)
Maintainer PROFIBUS User Organization (PNO/PI) PROFIBUS & PROFINET International (PI)
Readability Human-readable, editable in text editor Human-readable XML, but large files (often > 2 MB)
Module model Flat slot list (0..N-1) Hierarchical: DAP → Module → Submodule with slot/subslot
Addressing PROFIBUS address 0..126 IP + device name (LLDP / DCP)
Real-time Cyclic at configured baud rate RT (Class 1/2/3) and IRT (Class 1/2/3, isochronous)
Redundancy DP master redundancy, fiber ring MRP, MRPD, MRP interconnection, S2, R1, R2
Profiles PROFIdrive, PROFIsafe (limited), PA Profile v3/v4 PROFIdrive, PROFIsafe, PROFIenergy, PROFINET Security
Identification Ident_Number (16-bit) VendorID (16-bit) + DeviceID (16-bit)
Engineering tools STEP 7 V5.x, COM PROFIBUS, TIA Portal (HW Config legacy mode) TIA Portal, STEP 7 V5.5 SP4+, PRONETA, PLC Designer (B&R), Studio 5000 (AOI import)
Certification PI certificate (legacy GSD check) PI GSDML validator (XML schema + business rules)

GSDML Version → PROFINET Feature Mapping

Each GSDML version corresponds to a specific PROFINET specification and TIA Portal / STEP 7 minimum release. The table below is derived from the PI PROFINET IO GSDML Specification documents and Siemens support entries.

GSDML Specification Key Features Introduced Typical Minimum TIA Portal / STEP 7
V2.0 Conformance Class A, RT, basic modular device STEP 7 V5.4 SP3+
V2.1 Conformance Class B, MRP, system redundancy S1 STEP 7 V5.4 SP4+
V2.2 Profile-specific extensions, PROFIenergy, IRT top STEP 7 V5.5
V2.25 PROFIsafe V2.4, I&M 0..4, simplified IODD TIA Portal V12
V2.3 Shared Device, Shared Input/Output TIA Portal V13 SP1
V2.31 MRPD, S2 system redundancy, enhanced diagnostics TIA Portal V14 SP1
V2.32 R1/R2 redundancy, fast startup, modular submodules TIA Portal V15 / V15.1
V2.4 PROFINET Security Class 1, TSN, OPC UA companion spec, FSU enhancements TIA Portal V17 / V18+
A newer TIA Portal can read older GSDML versions, but an older TIA Portal typically cannot import a newer GSDML version — the schema is unrecognized and the device catalog rejects the file. If the device's GSDML is V2.4 and the engineering station is TIA V15.1, the device will simply not appear in the catalog.

Installation in TIA Portal

TIA Portal stores GSDML files in a per-version library directory. The default locations are:


C:\ProgramData\Siemens\Automation\Portal Vxx\Data\Hmi\Catalog   (HMI faceplates)
C:\ProgramData\Siemens\Automation\Portal Vxx\Data\HsysBsp
C:\ProgramData\Siemens\Automation\Portal Vxx\Devices

Installation procedure:

  1. Download the GSDML-Vx.x-…xml from the device manufacturer's product page (Siemens Support support.industry.siemens.com, or the vendor's download portal).
  2. In TIA Portal, open the project, switch to the Device & Networks view.
  3. Click Options → Manage general station description files (GSD).
  4. Browse to the XML file, select it, and click Install.
  5. TIA Portal validates the file against its supported GSDML schema. If validation fails, an error code is shown in the lower pane.
  6. The device then appears in the Hardware catalog → Other field devices → PROFINET IO → [Vendor] → [Product] tree.

Common install error codes (from the import log):

TIA Error Code Cause Resolution
0x80040E00 (Schema mismatch) GSDML schema version newer than TIA supports Upgrade TIA Portal or request older GSDML from vendor
0x80004005 (File read error) File corrupted in transfer, ZIP not extracted, BOM UTF-8 with BOM removed Re-download, ensure UTF-8 without BOM
0x80070005 (Access denied) Portal lacks write rights to ProgramData Run TIA as administrator, or install under a user with write access
0x80040E2F (VendorID not assigned) VendorID is 0x0000 or not in PI registry Manufacturer error — request corrected GSDML

Installation in STEP 7 V5.x

STEP 7 V5.5 (with K5.5 update for PROFINET) and V5.6 handle GSDML as well. The GSDML has no relation to TIA Portal specifically — it is also used with classic STEP 7, as the PI specification is tool-agnostic.

  1. Copy the GSDML file to C:\Program Files (x86)\Siemens\Automation\SIMATIC Manager\S7DATAGSD\PNIO (default path for V5.6).
  2. Or, in SIMATIC Manager, open HW Config and choose Options → Install GSD File.
  3. Select the XML file; the import is identical to the GSD import of classic PROFIBUS files.
  4. Devices become available in the catalog under PROFINET IO → [Vendor].
The default search behavior of HW Config is to scan the PNIO subfolder. A GSDML placed in the wrong folder ("GSD" instead of "PNIO") will not appear in the catalog. This is one of the most common reasons a PROFINET device is not visible after import.

PROFIBUS GSD Installation (for comparison)

  1. Copy the *.GSD (and any associated *.NCM or *.BMP icon files) into ...\SIMATIC Manager\S7DATAGSD\.
  2. Close and reopen HW Config so the catalog is rescanned.
  3. The new slave appears in PROFIBUS DP → [Vendor].

GSD files do not need admin rights to install and are far smaller (typically 4–40 kB) than GSDML files.

Using the Device in a Project

PROFIBUS (GSD)

  1. Drag the slave from the catalog to the PROFIBUS subnet line.
  2. Assign a unique PROFIBUS address (0..126, default 0 is reserved for masters).
  3. Open the slave's slot table and insert the modules in the correct slots (matching the physical hardware).
  4. Edit Properties → Parameter assignment to set the user-prm bits (e.g., diagnostics enable, fail-safe mode, watchdog behavior).
  5. Compile and download; the master will only establish the cyclic relationship if the Ident_Number read from the live device matches the one declared in the GSD.

PROFINET (GSDML)

  1. Drag the device from the catalog to the PROFINET subnet.
  2. Assign a unique device name and IP address (or use DHCP / DCP via PRONETA).
  3. Configure the DAP and slot/subslot structure.
  4. Adjust Properties → Parameters (per-module parameter telegram, I&M data, Shared Device mapping, MRP role, fast startup enable).
  5. For PROFIenergy / PROFIsafe, insert the corresponding profile submodule.
  6. Compile and download the device's PROFINET name using the Assign PROFINET device name tool.

Validation, Diagnostics, and Common Failure Modes

Symptom File Type Likely Root Cause Verification Step
Device not in catalog after install Both File in wrong subfolder; XML not UTF-8; schema unsupported Check ProgramData folder, open XML in browser, check TIA version vs GSDML version
"Module cannot be plugged in slot 0" GSD Slot order in HW Config does not match physical order Reorder modules; consult device manual slot map
"Configuration error: slot/subslot not in GSDML" GSDML Inserted module/submodule not declared in GSDML Check vendor catalog; insert from dropdown only
IO controller stays in "Station failure" PROFIBUS GSD Ident_Number mismatch between configured slave and physical Read live Ident_Number with diagnostic tool (e.g., Amprolyzer, S7-Online diagnostics)
"AR establishment failed — module diff" PROFINET GSDML Expected submodule does not exist in physical device or is in wrong subslot Use PRONETA topology scan to compare expected vs actual
Shared Device inputs flicker GSDML Two controllers assigned as primary for same input submodule Configure exactly one controller as primary for that submodule
PROFIsafe failsafe signature rejected GSDML PROFIsafe address mismatch (F_Dest_Add) or wrong F-Parameter record Check iPar server, F-Inspector
Engineering tool hangs during import GSDML GSDML > 50 MB with embedded base64 bitmaps Strip <Graphics> block, request lightweight GSDML from vendor

Field-Validation Procedure

  1. Open TIA Portal → Online → Accessible nodes. Confirm the device responds at its IP.
  2. For PROFIBUS, run Online → Diagnostics → PROFIBUS diagnostics; verify the live Ident_Number matches the configured GSD.
  3. For PROFINET, launch Online → Diagnostics → PROFINET diagnostics or use PRONETA to dump live module configuration and compare with the project.
  4. Check the device's Maintenance → I&M 0..4 data; the order number, serial, and firmware must match what is physically installed.
  5. Use Wireshark with a TAP or port mirror to capture DCP packets and confirm the PROFINET name resolution works.

Lifecycle: Updating GSD/GSDML Files

Manufacturers release new GSD/GSDML files whenever a device's firmware is extended, new submodules are added, or a new PROFINET profile is supported. Best practice:

  • Pin the version in a project archive: keep the GSD/GSDML file in the project folder so reproducible builds are possible.
  • When upgrading, perform a side-by-side comparison: open the old and new GSDML in a diff tool. New versions may add default parameters, rename submodules, or shift the slot indices — each requires a device configuration review.
  • Always re-read the device's I&M data after a firmware update. If the new firmware is not supported by the GSDML installed in the engineering tool, the controller will not establish an AR (Application Relationship).

Vendor-Wide Catalog Sources

  • Siemens: support.industry.siemens.com → search "GSD" or "GSDML".
  • PI official catalog: www.profinet.com → Device Lookup.
  • Phoenix Contact, Beckhoff, SEW-Eurodrive, Balluff, Sick, Festo: each provides GSDML downloads in the product download area.

Frequently Asked Questions

Can a PROFINET controller be configured with a PROFIBUS GSD file?

No. GSD files describe PROFIBUS DP/PA devices (RS-485, baud rate, Ident_Number) and are not interpretable by a PROFINET IO controller. PROFINET devices require a GSDML (.xml) file. The two are not interchangeable, and engineering tools strictly reject cross-type imports.

Is GSDML tied to TIA Portal?

No. GSDML is a PI-standardized XML schema (namespace http://www.profinet.org/xml/gsdml/) and is consumed by any PROFINET engineering tool that supports the corresponding GSDML specification version — including STEP 7 V5.5 SP4+, TIA Portal, PNOZmulti Configurator, PRONETA, Phoenix Contact PC Worx, B&R Automation Studio, and Rockwell Studio 5000 (via PROFINET AOI import).

Why does my TIA Portal reject a GSDML during install?

Most often because the GSDML specification version (e.g., V2.4) is newer than your TIA Portal version (e.g., V15.1). Schema mismatches, missing PI VendorID, UTF-8 with BOM, or broken XML also cause failures. The error log shows the precise cause — match it against the import error table above.

What is the maximum size of a GSDML file?

PI does not impose a fixed limit, but practical files range from 200 kB to 5 MB. Files above 50 MB almost always contain large base64-encoded bitmap blocks (<Graphics>) used for the hardware catalog. TIA Portal catalogs > 30 MB can take several minutes to import and consume significant RAM; in such cases, request a lightweight GSDML from the vendor without the <Graphics> block.

Do I need a new GSDML after a firmware update of the PN device?

Not always. If the firmware revision is within the range declared in the existing GSDML (the <SoftwareRevision> element), the existing GSDML continues to work. If the firmware introduces new submodules, new I&M data, or a new conformance class, you must install the matching newer GSDML. Always compare the device's I&M 0 firmware tag with the GSDML's SoftwareRevision range before commissioning.

Back to blog