目录
相信熟悉工业现场的工程师们,对于PROFIBUS和PROFINET这两个工业协议都不陌生。过去在使用PROFIBUS现场总线时,从站设备厂家需要提供给PROFIBUS主站通用设备描述文件,也就是GSD(General Station Description)文件用于描述设备的生产厂家,支持的PROFIBUS特性以及和主站进行交互的数据量大小等信息。
同样的,设备厂家在开发PROFINET 从站时,需要按照GSDML文件规范编写从站设备描述文件,提供给PROFINET主站组态软件如SIEMENS TIA PORTAL 软件使用。主站根据从站提供的GSDML文件能够获取从站设备的特性和从站设备支持的数据接口。GSDML本质上是对GSD文件结构化的拓展,其文件是XML格式,可以使用任何文本编辑器进行打开并编辑。
本文简单介绍PROFINET从站描述文件的重要知识点,以便用户在使用GSDML文件时能够更加迅速的进行设备组态调试工作。
一、GSDML文件名格式
PROFINET 从站设备描述文件GSDML的文件名称有特殊的规定,不能随意更改。比如用户在使用时经常在复制粘贴时对其重命名,结果会导致TIA PORTAL软件在导入GSDML文件时报错。
PROFINET的GSD文件采用XML语言描述,后缀名为xml。按照约定,PROFINET I/O设备的GSD文件应遵循如下的命名规则:
GSDML-[架构版本]-[制造商名称]-[设备族名称]-[GSD发布日期].xml
下面是一个GSDML文件名示例:
GSDML-V2.31-Renesas-TPS1-Template-20170222.xml
GSDML文件名称包含7个部分,每部分之间使用“-”符号(ASCII 45)进行连接:
1、固定以“GSDML”字符串作为文件名的起始。
2、GSDML文件中使用的PNIO版本,如“V2.35”表示该GSDML文件使用的为V2.35版本的GSDML模板,该版本需要与GSDML文件内部的格式一致。
3、设备厂商名称,例如“HMS”
4、设备分类名称,如“CompactCom-40-PIR”
5、GSDML发布日期,格式遵循“yyyymmdd”,如“20191210”
6、可选的GSDML发布日期,格式遵循“hhmmss”,如“080159”
7、文件扩展名,".xml"
其中设备厂商名称和设备分类名称允许使用Microsoft Windows NT支持的任意字符,包括空格和“-”符号,因此以下文件名称均为正确的文件名,但应尽量与设备实际信息一致:
下面是GSDML文件名示例:
GSDML-V2.35-HMS-CompactCom-40-PIR-20191210.xml
GSDML-V2.35-HMS-CompactCom-40-PIR-20191210-080159.xml
GSDML-V2.35-HMS Networks-CompactCom-40-PIR-20191210.xml
GSDML-V2.35-HMS Networks-CompactCom-40-PIR-2-20191210.xml
GSDML-V2.35-HMS-Demo-CompactCom-40-PIR-2-20191210.xml
GSDML文件名中的发布日期和可选的发布时间可用作设备描述文件的版本信息使用,例如在TIA PORTAL中导入了多个同样的设备描述文件时,应使用正确的发布日期版本的文件进行设备组态:
二、设备标识信息
在GSDML文件中需要给出设备的生产厂商和设备的标识等信息,主站在读取GSDML组态后会在和从站建立连接时校验其中的某些信息,用于判断连接的从站是否为正确的设备。
VendorID 是设备厂家成为PI会员时申请到的唯一厂商标识,每个设备厂家均应使用合法的VendorID,已经注册的VendorID可在网站查询https://www.profibus.com/IM/Man_ID_Table.xml
通常组态软件的数据库中也会有一份类似的文件,可以通过读取设备的VendorID从而显示设备的生产厂商名称。
DeviceID是设备厂家自行分配的设备标识,无需向PI进行申请,用于标识同一厂家的不同设备。
MainFamily用于设备分类,设备制造商需要根据设备的功能用途对设备进行归类,类型只能选择以下值:
- General
- Drives
- Switching Devices
- I/O
- Valves
- Controllers
- HMI
- Encoders
- NC/RC
- Gateway
- PLCs
- Ident Systems
- PA Profiles
- Network Components
- Sensors
组态软件在导入设备的GSDML文件之后,会使用设备的标识信息对其分类,用户在使用时可在设备树中方便的找到该设备。
如下图设备导入到TIA PORTAL 会根据1.MainFamily-2.VendorName-3.ProductFamily对其进行分组:
三、设备支持的通讯周期时间
DAP中的MinDeviceInterval属性通知主站设备支持的最小通讯周期间隔,属性值SendClockFactor为31.25us的倍数,例如MinDeviceInterval="8",那么设备能够和主站实现的最小周期为8*31.25us=250us。对于支持RT_CLASS_1通讯的CC-A 和CC-B 设备,其最小时间间隔应至少支持128ms,对应MinDeviceInterval="4096"。
对于CC-C 设备,其最小时间间隔应至少支持1ms,对应MinDeviceInterval="32"
连接在同一个PROFINET网络上的多个从站设备可能需要发送数据的频率并不相同。例如某些温度传感器采集到的温度值是缓慢变化的,有些伺服驱动器的位置信息是快速变化的,这就要求即使是在同一个PROFINET网络上,不同设备也需要能够使用不相同的通讯周期进行数据交换。
例如在PROFINET网络上连接了4个设备:
- 设备1 需要8毫秒数据交换
- 设备2 需要4毫秒数据交换
- 设备3 需要2毫秒数据交换
- 设备4 需要1毫秒数据交换
那么就需要根据每个设备的需求分别设置通讯周期,这时候ReductionRatio就起到了重要作用。ReductionRatio用于设置最小通讯间隔的倍数,从站只有在通讯间隔倍数的周期时才会有实际数据交换
四、设备支持的槽位和数据模块
PhysicalSlots:用于设置从站有多少个槽位,UseableModules用于设置设备有哪些数据模块能够插入到哪些槽位中。
UseableModules可以使用三种关键词,来设置设备槽位中允许插入的数据模块:
- AllowedInSlots,使用该关键词的Module允许插入到设备中的某些槽位中,但是在设备组态时默认是不插入到槽位中的,需要用户手动添加
- UsedInSlots,使用该关键词的Module允许插入到设备中的某些槽位,在设备组态时默认插入到槽位中,用户可手动修改
- FixedInSlots,使用该关键词的Module必须插入到设备中的固定槽位,在设备组态时默认插入到槽位中,用户不可手动修改
UseableModules引用的Module全部在ModuleList中进行详细定义
ModuleList中定义设备的可用Module,每一个Module对应一个ModuleItem,每一个Module都有唯一的ModuleIdentNumber。
ModuleItem中包含一个或多个VirtualSubmoduleItem,或者引用UseableSubmodules,在SubmoduleItem定义设备传输的输入/输出数据IOData。
以上介绍只是简要介绍了PROFINET设备描述文件的一些要点,实际在开发PROFINET设备时需要详细阅读GSDML规范,按照设备实际特性进行GSDML的匹配编辑。
这项工作通常对于不熟悉PROFINET协议规范的开发人员来说是非常繁琐的,HMS为了解决这一问题,针对使用我们Anybus CompactCom 40 系列嵌入式模块的设备开发人员,推出了HMS PROFINET GSD Generator Tool生成工具。
研发人员使用 CompactCom 40 模块开发完成后,只需要将该软件安装在电脑上并通过网线连接 CompactCom 40 模块,该软件能够自动读取模块中实际的配置信息,并自动生成符合GSDML最新规范的GSDML文件,使得开发人员无需再为GSDML文件的一致性和规范性担忧,能够快速的通过PROFINET一致性测试,推动产品进入市场。
那么这就是PROFINET从站设备描述文件的相关内容,后续我们还会有PROFINET系统启动过程的相关内容分享,从PLC上电,到IO连接建立的过程。欢迎关注和收藏。
致谢:PROFINET从站设备描述文件! - 知乎 (zhihu.com)