General Station Description (GSD)
On PROFINET, the characteristics of a device is stored in an XML data file. This file, referred to as the “GSD” file, is used by PROFINET engineering tools when setting up the network configuration. HMS Networks provides an example GSD file, which must be adapted by the user to suit the application.
Note
A GSD checker tool and a GSD upgrade tool is available to PI members on the PI website.
Setting Identity and Function Information
The GSD file must be adapted to your implementation. First thing is the device identity.
In the GSD file there is a section called “DeviceIdentity”. It looks like this.
<DeviceIdentity VendorID="0x010C" DeviceID="0x0010"> <InfoText TextId="T_ID_DEV_DESCRIPTION"/> <VendorName Value="HMS Industrial Networks"/> </DeviceIdentity>
The identity in the example represents HMS values.
Replace VendorID value 0x010C with the value which corresponds to your vendor name.
If you do not have a Vendor ID you can obtain this by contacting PI.
The VendorID must match what is configured for the PROFINET IO Object (0xF6) attribute #2 (Vendor ID).
Replace the DeviceID value 0x0010 with the value you have selected for this device.
The DeviceID must match what is configured for the PROFINET IO Object (0xF6) attribute #1 (Device ID). Please note that if you change the Device ID you MUST also change the Vendor ID, as the Device ID is unique for the Vendor ID.
Replace the VendorName value “HMS Industrial Networks” with your vendor name.
Please note that the keyword VendorName is found not only here, but also at other places in the GSD file. Use “Search”to find all instances and replace them with your vendor name.
Specify the function of the device.
<DeviceFunction> <Family MainFamily="General" ProductFamily="Anybus CompactCom 40 PIR"/> </DeviceFunction>
The example GSD specifies a kind of “General” device as the usage of it is unclear.
Replace the MainFamily with the class that best describes the device. The following are the allowed values:
General
Drives
Switching Devices
I/O
Valves
Controllers
HMI
Encoders
NC/RC
Gateway
PLCs
Ident Systems
PA Profiles
Network Components
Sensors
Replace the ProductFamily value “Anybus CompactCom 40 PIR” with a string which describes your device.
In addition to the above, there are a few more places where identity related information is present in the GSD file.
DNS_CompatibleName="CompactCom-40-PIR"
For the Device access point (DeviceAccessPointItem) there is a keyword which is called DNS_CompatibleName that may be used by engineering tools to build the Station Name. Locate this by using the search function.
Replace DNS_CompatibleName value with the default name of the device.
The order number of the device is set with the keyword “OrderNumber”.
<OrderNumber Value="CompactCom 40 PIR"/>
In many cases the value of the OrderNumber equals the Station Type string, but it does not necessarily need to be that way.
Replace the OrderNumber value “CompactCom 40 PIR” with the order number used for the device.
The OrderNumber must match what is configured for the PROFINET IO Object (0xF6) attribute #8 (IM Order ID).
It is recommended to change the name of the DAP (keyword Name in the “ModuleInfo” section of the DAP) to something more descriptive. The DAP name is often visible in the PROFINET configuration tool.
Replace the name “DAP” of the T_ID_DAP text ID with e.g. the name of the product type.
How to Enable Initial Record Data
During the establishment of an IO connection between the IO device and the IO controller it is possible for the IO controller to send initial record data. This initial record data is sent using the PROFINET IO service record write. This service can be used at any time and will write data to a defined ADI. The initial record data is defined in the GSD file, and is specified for a submodule of a module. By default, the Anybus CompactCom 40 module will not make use of any initial record data, but that can be enabled if needed.
To enable this functionality, the GSD file needs to be modified as specified below. In this example, 2 bytes are written to ADI 67 (ADI 67 corresponds to index 67) during startup of a PROFINET IO connection (the value can be configured by the end user):
<RecordDataList> <ParameterRecordDataItem Index="67" Length="2" TransferSequence="0"> <Name TextId="T_ID_EXAMPLE2"/> <Ref DataType="Unsigned16" ByteOffset="0" DefaultValue=”0” AllowedValues="0..65535" TextId="T_ID_EXAMPLE2_PRM_1"/> </ParameterRecordDataItem> </RecordDataList>
It is recommended that the above GSD information is placed directly after the “</IOData>” keyword for the module for which the data is associated.
If more than one ADI needs to be set, the keyword “ParameterRecordDataItem”is duplicated.
Please note that TextId’s (“T_ID_xxx” above) need to be added to the “<ExternalTextList>” section of the GSD file (once for each language defined).
<Text TextId="T_ID_EXAMPLE2" Value="Config parameter 1"/> <Text TextId="T_ID_EXAMPLE2_PRM_1" Value="Parameter value description"/>