北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8635515

PROFINET工业以太网教程(16)-GSDML文件详解

前面的文章(PROFINET工业以太网教程(10)——GSD文件)我们介绍过GSD文件,它的全称是“General  Station  Description”,中文翻译为“通用站描述文件”。GSD文件的主要作用是对PROFINET或PROFIBUS子站的资源进行描述,以便组态工具能够正确对其进行解析。PROFIBUS总线的GSD文件和PROFINET实时以太网的GSD文件描述方式不同,由于前者已经逐渐被后者取代,所以今天这篇文章我们仅介绍PROFINET的GSD文件的结构。

cover.png

PROFINET的GSD文件采用XML语言描述,后缀名为xml。按照约定,PROFINET I/O设备的GSD文件应遵循如下的命名规则:

GSDML-[版本号]-[设备厂商名称]-[设备家族名称]-[日期].xml

比如,西门子IM151-3PN的GSD文件名称为:

GSDML-V2.25-Siemens-ET200S-20191007.xml

其中:

  • 文件名以“GSDML”开头;

  • V2.25是版本号;

  • Siemens是设备厂商;

  • ET200S是产品的家族名称;

  • 20191007是该版本GSD文件的发布日期;

GSDML文件的第一行应包含xml的版本及编码,固定格式如下:



<?xml version="1.0" encoding="utf-8"?>


根元素ISO15745Profile是整个GSD文件的基础元素,它必须声明元素的命名空间,如下面的代码:



<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-V2.25.xsd"><!--其它代码部分--></ISO15745Profile>


其中:

  • xmlns:表明元素ISO15745Profile的默认命名空间;

  • xmlns:xsi:表明XSD文件的命名空间;

  • xsi:schemaLation:指明XSD文件的路径;

ISO15745Profile是GSDML文件的根元素,它包括规则头(Profile Header)和规则体(Profile Body)两部分,整个GSD文件的结构如下图所示:

architecture.png

1、规则头(Profile Header)

规则头以ProfileHeader元素标记,包括了规则的标识、版本、名称、及ISO15745的相关信息,如下面的代码:

<ProfileHeader>      <ProfileIdentification>PROFINET Device Profile</ProfileIdentification>      <ProfileRevision>1.00</ProfileRevision>      <ProfileName>Device Profile for PROFINET Devices</ProfileName>      <ProfileSource>PROFIBUS Nutzerorganisation e. V. (PNO)</ProfileSource>      <ProfileClassID>Device</ProfileClassID>      <ISO15745Reference>            <ISO15745Part>4</ISO15745Part>            <ISO15745Edition>1</ISO15745Edition>            <ProfileTechnology>GSDML</ProfileTechnology>        </ISO15745Reference></ProfileHeader>


2、规则体(Profile Body)

规则体包含了PROFINET I/O设备(子站)的实际数据,由三个部分组成:

  • Device Identity(设备标识):包含了用于确认该设备的标识信息;

  • Device Function(设备功能):包含了用于描述设备功能的数据;

  • Application Process(应用处理):这是整个通用站描述文件的主要部分,包含了设备访问点列表、模块列表、子模块列表、值列表等PROFINET I/O设备的数据,后面会详细介绍。

2.1、设备标识(Device Identity)

西门子IM151-3 PN GSD文件中关于设备标识的代码如下:

<DeviceIdentity VendorID="0x002A" DeviceID="0x0301">      <InfoText TextId="Finely-graduated modular distributed I/O device, protection type IP20"/>      <VendorName Value="SIEMENS"/></DeviceIdentity>


其中包括了该PROFINET I/O设备的供应商ID、设备ID及描述等信息;

2.2、设备功能(Device Function)

西门子IM151-3 PN GSD文件中关于设备功能的代码如下:

<DeviceFunction>      <Family MainFamily="I/O" ProductFamily="ET 200S"/></DeviceFunction>


2.3、应用处理(Application Process)

2.3.1、设备访问点列表(Device Access Point List)

这部分是PROFINET I/O设备访问接口的描述,可以理解为分布式I/O的接口模块,一个GSD文件中可以包括多个接口模块的描述。

2.3.2、模块列表(Module List)

该部分是PROFINET I/O设备中包含的模块的描述,它可以是一种可选择插入的模块(比如模块化的I/O设备),也可以是一种永久集成在I/O设备中的模块。

2.3.3、子模块列表(Sub Module List)

该部分是PROFINET I/O设备中包含的子模块的描述。与模块列表类似,它也可以是一种可选择插入的子模块或者永久集成在I/O设备中的子模块。

2.3.4、值列表(Value List)

该部分包含了模块所支持的取值。

2.3.5、通道诊断列表(Channel Diag List)

该部分包含了通道的诊断信息,即通道的错误编号及其描述。

2.3.6、单元诊断列表(Unit Diag List)

该部分包含了该PROFINET I/O设备的诊断信息。

2.3.7、图形列表(Graphics List)

该部分是GSD文件的图形列表,即在组态工具中显示的图形(图标)。

2.3.8、分类列表(Categrory List)

该部分包含了GSD文件的分类信息,比如DI、DQ、AI等模块的分类;

2.3.9、外部文本列表(External Text List)

该部分包含了GSD文件所包含的外部文本信息,这些信息可以被其它部分引用,可用于多语言环境。

好了,关于GSDML文件的总体介绍就到这里。其实里面还有很多内容,后续有机会我们再介绍。

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以点击下面的链接或者左下角的【阅读原文】:

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论