第4章:GSDML文件与硬件组态
好,咱们今天聊聊GSDML文件。说实话,很多刚入行的朋友一听到这个缩写就头大,觉得是什么高深莫测的东西。其实说白了,它就是设备的“身份证”加“说明书”。
我记得刚入行那会儿,第一次接触PROFINET网络,拿着一个第三方IO模块,死活组态不上。折腾了半天,最后发现是GSDML文件版本不对。从那以后,我就养成了一个习惯——拿到新设备,第一件事就是找GSDML文件。
4.1 GSDML文件结构解析
GSDML,全称是Generic Station Description Markup Language。嗯,名字挺长,但核心就两个词:通用描述、标记语言。它基于XML格式,所以你可以用任何文本编辑器打开看看。
一个标准的GSDML文件,结构大概是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ISO15739Profile>
<ProfileHeader>
<ProfileIdentification>GSDML-V2.33-Example-20240301</ProfileIdentification>
<ProfileRevision>1.0</ProfileRevision>
</ProfileHeader>
<DeviceIdentity>
<VendorName>Siemens</VendorName>
<DeviceName>ET200SP</DeviceName>
<DeviceID>0x1234</DeviceID>
</DeviceIdentity>
<DeviceFunction>
<SubmoduleList>
<SubmoduleItem ID="DI_8x24VDC">
<Name>Digital Input 8x24VDC</Name>
<ModuleInfo>
<InputData>8 Byte</InputData>
</ModuleInfo>
</SubmoduleItem>
</SubmoduleList>
</DeviceFunction>
</ISO15739Profile>
看到没?结构其实很清晰。最外层是ISO15739Profile,里面分三块:
- ProfileHeader:文件版本信息。我建议你每次导入前都看一眼这个版本号,跟TIA Portal的版本匹配不匹配。
- DeviceIdentity:设备身份信息。包括厂商、设备名称、设备ID。这里要注意,同一个设备可能有多个GSDML文件,对应不同固件版本。
- DeviceFunction:设备功能描述。这是最核心的部分,定义了设备有哪些子模块、每个模块的IO数据长度、支持的通信参数等。
4.2 在TIA Portal中导入GSDML
好,文件看懂了,接下来就是实操。怎么把GSDML文件导入TIA Portal?
步骤其实很简单:
- 打开TIA Portal,进入项目视图
- 在左侧项目树中,找到“组态”下的“硬件目录”
- 点击“选项”菜单,选择“管理通用站描述文件(GSD)”
- 在弹出的对话框中,点击“源路径”旁边的“...”按钮,选择你存放GSDML文件的文件夹
- 系统会自动扫描该文件夹下的所有GSDML文件,并显示在列表中
- 勾选你要导入的文件,点击“安装”
嗯,这里有个坑。我记得有一次,我导入一个第三方IO模块的GSDML文件,安装过程很顺利,但在硬件目录里死活找不到这个设备。后来发现,是因为我忘了勾选“显示所有版本”这个选项。默认情况下,TIA Portal只显示最新版本的设备。
导入成功后,你会在硬件目录的“其他现场设备”或“PROFINET IO”下找到这个设备。拖拽到网络视图中,就可以开始组态了。
4.3 设备名称与IP分配
设备组态好了,接下来就是分配设备名称和IP地址。这一步很关键,搞不好整个网络都连不上。
在PROFINET网络中,设备是通过设备名称来识别的,而不是IP地址。IP地址只是辅助通信的。所以,你首先要给每个设备分配一个唯一的设备名称。
分配设备名称有两种方式:
- 在线分配: 通过TIA Portal的“在线访问”功能,直接扫描网络上的设备,然后右键选择“分配设备名称”。这种方式最直接,我一般都用这个。
- 离线分配: 在硬件组态中,双击设备,在“PROFINET接口”属性中设置设备名称。然后下载到PLC时,TIA Portal会自动将名称分配给实际设备。
IP地址的分配,我建议使用固定IP。虽然PROFINET也支持DHCP,但在工业现场,固定IP更稳定,也更容易排查问题。
分配IP时,要注意以下几点:
| 参数 | 建议值 | 说明 |
|---|---|---|
| IP地址 | 192.168.0.x | 确保与PLC在同一网段 |
| 子网掩码 | 255.255.255.0 | 标准C类网络 |
| 默认网关 | 192.168.0.1 | 如果不需要跨网段,可以不设 |
避坑指南: 我曾经在一个项目中,给两个远程IO模块分配了相同的设备名称。结果一上电,两个模块都报错,PLC也连不上。排查了半天,才发现是名称冲突。所以,我建议你在分配名称时,建立一个命名规范,比如“IO-RACK-01”、“IO-RACK-02”这样,一目了然。
最后,别忘了在TIA Portal中,将设备名称和IP地址下载到PLC中。下载完成后,PLC会自动与远程IO模块建立连接。如果连接成功,模块上的指示灯会变成绿色常亮。
嗯,关于GSDML文件和硬件组态,今天就聊这么多。下一章,咱们会深入讲讲IO模块的参数配置,包括输入滤波、输出保持等实用技巧。到时候见!