简介:ABB ACS系列变频器GSDML文件,面向工业自动化现场运维与PLC系统集成工程师,用于解决ACS系列变频器在Profibus/Profinet等总线组态时的设备描述与参数配置问题。压缩包内共2个文件,包含1个XML格式的GSDML设备描述文件及1个txt格式的FENA选型指南,整体仅5KB,体积小巧,便于直接导入TIA Portal等编程环境使用。已有223人学习,适合需要快速完成变频器与PLC通讯对接的初、中级自动化工程师。通过导入该文件,用户可自动生成变频器通讯模块,配置速度设定、启停命令及模拟量映射,同时利用故障诊断信息快速排查通讯异常;配套的选型指南还可帮助确认FENA模块与不同ACS机型的匹配关系,提升系统集成效率。
1. 当ABB ACS系列变频器被要求“上总线”时,GSD文件才是真正入口
车间里常有这种需求:ACS580/ACS880要跟西门子S7-1500走PROFINET,或者老ACS550要挂到S7-300的PROFIBUS DP上。很多人第一反应是给变频器加一块通讯卡,结果通讯卡装上去了,博途里怎么也找不到这个从站——原因就出在:描述文件没装进去。标题里的“ABB_ACS系列变频器_GSD文件_GSDML-V2.25-ABB-FENA-20130603.rar”就是ABB官方为FENA现场总线适配模块发布的GSDML包。FENA是ACS系列变频器的“外接网卡”,真正被PLC主站识别的是FENA这个设备,变频器本体反而藏在它后面。下面按我做项目时的思路,讲清楚GSD和GSDML是什么、装到哪、怎么配,以及通讯断了怎么查。
2. 弄懂GSD和GSDML:从站的身份凭证,不是随便一个文件都要导入
GSD和GSDML的区别,是所有ABB变频器通讯调试里第一个绕不开的坎。很多人拿到rar压缩包就全部解压,然后一股脑往博途里塞,结果装进去一堆乱码文件。这两类文件用途完全不同:GSD用于PROFIBUS DP网络,GSDML用于PROFINET IO网络。选错文件等于给主站递了一张错误的身份证。
2.1 GSD是PROFIBUS DP从站的“设备身份证”,GSDML才是PROFINET的
GSD文件是纯文本格式,老一代Step7、也包含第三方主站组态工具,靠它识别从站的厂商、型号、通讯参数和I/O长度。FENA在PROFIBUS DP网络中使用时,文件名通常是“ABB_xxxx.gsd”这类格式,里面每个字段都是键值对。下面是一段示意片段,不是某个具体版本的完整内容,但结构是这种样子:
#Profibus_DP Vendor_Name = "ABB" Model_Name = "FENA-21" Revision = "V1.0" StationType = 0 FMS_supp = 0 Hardware_Release = "1.0" Software_Release = "1.0" 9.8_supp = 1 Max_User_Prm_Data_Len = 80 Max_Input_Len = 32 Max_Output_Len = 32这里每个字段都有实际用途:Vendor_Name和Model_Name决定主站硬件目录里显示成什么,Max_Input_Len和Max_Output_Len告诉主站最多能交换多少字节,9.8_supp表示从站支持DPV1通信。调试时如果发现主站和从站组态长度对不上,优先回头看这两个长度字段。GSD文件里没有加密,记事本就能打开。
GSDML则完全不同。它是XML格式,文件后缀是.xml,结构和GSD相差很大。标题里那个“GSDML-V2.25”指的是GSDML规范版本号而不是固件版本,20130603是GSDML文件的发布日期。从剖面结构看,GSDML文件里包含ProfileHeader、ProfileBody、DeviceIdentity、ModuleList这些节点,主站软件解析XML后,在硬件目录里生成对应的设备树。
<ISO15745Profile> <ProfileHeader> <ProfileIdentification>GSDML-V2.25-ABB-FENA-20130603</ProfileIdentification> <Revision>2.25</Revision> </ProfileHeader> <ProfileBody> <DeviceIdentity VendorID="0xXXXX" DeviceID="0xYYYY"/> <DeviceFunction> <DeviceAccessPointList> <DeviceAccessPointItem ID="DAP" ModuleInfoRef="MI_FENA"> <Name TextId="FENA" /> </DeviceAccessPointItem> </DeviceAccessPointList> </DeviceFunction> </ProfileBody> </ISO15745Profile>VendorID和DeviceID是主站识别设备的关键值,这两个值必须和FENA模块固件里烧录的一致,不一致时主站会报“设备标识不匹配”。VendorID是ABB的厂商号,DeviceID对应FENA的具体型号。实际调试时不要手动改这两个值,否则就算文件装进去了,在线连上也会报“设备故障”或者“在线与组态不匹配”。
2.2 GSDML的XML结构与FENA的模块化描述
GSDML文件能描述的维度比GSD多得多。比如同一个FENA模块,在PROFINET下会映射为“DAP(Device Access Point)+若干可插入子模块”的结构。DAP相当于FENA的网络接口,子模块则对应变频器传上来的过程数据,包括状态字、实际速度、电流、故障字等。TIA Portal 导入这个GSDML后,硬件目录里能看到ABB下面的FENA条目,展开后会有多个子模块可选,数量取决于XML里声明了哪些Module条目。
从工程角度,我一般会直接打开XML搜ModuleInfoRef和ModuleName,先把有哪些可用的子模块名列出来。FENA这类适配模块的GSDML里通常还包含了“FENA-01”和“FENA-11”等不同硬件型号的差异描述,实际选型时用哪个型号就在组态里选哪个,选错会导致订货号不匹配,主站下不了配置。
这里有一个常见误解:GSDML文件版本越新越好。实际上GSDML-V2.25的规范在TIA Portal V13 SP1以上就能正常导入,V15、V16直接使用。如果现场用的博途版本过老,即使强行导入也会提示“规范版本不支持”。反过来,主站软件太新而GSDML太旧的情况一般都能兼容,因为规范是向后兼容的。
2.3 一个文件对应一种现场总线:FENA的多协议属性
FENA模块本身支持多种工业以太网协议。按订货号不同,FENA系列可以支持PROFINET IO、EtherNet/IP、Modbus TCP,部分型号还支持PROFIBUS DP。这就引出另一个关键点:不同现场总线需要不同的描述文件。PROFIBUS DP用GSD,PROFINET IO用GSDML,EtherNet/IP用EDS文件,Modbus TCP则根本不需要描述文件,只要IP地址和寄存器地址表就能通信。所以标题里那个rar压缩包,本质上是专供PROFINET网络的GSDML文件包。
如果在同一个项目里既要和西门子PLC走PROFINET,又要和上位机走Modbus TCP,需要注意FENA同一时刻通常只能激活一种“主协议”。不是多协议文件全部装进去就能同时跑,协议切换要看具体模块型号和拨码设置。实际操作中,我习惯先确认FENA的铭牌订货号,再去ABB官网对应型号页面下载GSDML包,避免用了不同型号的文件导致组态时的子模块列表对不上。
3. 把GSDML-V2.25-ABB-FENA-20130603装进TIA Portal并组态从站的完整流程
压缩包拿到手,解压后是一个XML文件,第一步就是把它装进工程项目。这个环节看起来简单,但出错率很高,主要出在文件路径、博途版本、设备名称分配这三处。下面按我平时带项目的顺序写。
3.1 文件摆放:GSD和GSDML在STEP 7与TIA Portal里的不同归置
老Step7环境里,GSD文件需要手动拷贝到安装目录下的S7DATA\GSD文件夹,然后通过“选项→安装GSD文件”刷新。TIA Portal则完全不需要手动拷贝,直接在项目内部导入。两者的区别让很多从Step7转过来的工程师踩坑:在博途里,GSDML文件不是扔到某个系统目录就完事,而是通过“管理通用站描述文件”功能导入到当前项目或全局库。
| 环境 | 文件类型 | 放置/导入方式 | 备注 |
|---|---|---|---|
| Step7 V5.x | GSD | 拷贝到S7DATA\GSD目录 | 安装后需重启 |
| TIA Portal | GSDML/XML | 菜单“管理GSD文件”导入 | 支持V13 SP1以上 |
| 第三方组态(如CODESYS) | GSDML/XML | 各自的设备描述导入界面 | 位置由软件决定 |
TIA Portal导入的GSDML文件会解析到项目内部,不是物理复制到某个固定目录。所以项目管理文件迁移时,GSDML文件信息会跟着项目走,换电脑打开项目不需要重新导入。但这里有一个陷阱:如果GSDML文件和项目文件一起拷贝给另一个工程师,而那个工程里引用了GSDML里的设备却找不到原文件,博途会报“设备描述文件缺失”。常见做法是让每一个人工拷贝的项目压缩包都带上原始rar,或者用博途的“项目归档”功能,把GSDML一起归档进去。
3.2 在TIA Portal中导入GSDML并分配FENA从站
在TIA Portal里安装GSDML文件的路径是固定的,按下面步骤操作即可。
- 解压“GSDML-V2.25-ABB-FENA-20130603.rar”,确认解压后的XML文件名和压缩包内结构。
- 打开TIA Portal项目,菜单栏选择“选项”→“管理通用站描述文件(GSD)”。
- 源路径选择解压后XML所在的文件夹,勾选出现的GSDML文件。
- 点击“安装”,等待解析完成。如果XML有语法错误或规范版本不兼容,这一步会直接弹警告。
- 安装完成后,在右侧“硬件目录”中搜索“FENA”,路径通常在“其他现场设备→PROFINET IO→ABB”下。
- 把FENA设备拖到网络视图,给它分配设备名称,例如“fena_acs880_01”,再分配IP地址。
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 设备名称 | 与FENA模块内拨码/设置一致 | PROFINET靠设备名识别,不靠IP |
| IP地址 | 与PLC同一网段 | 例如192.168.0.10 |
| 子网掩码 | 与PLC一致 | 常用255.255.255.0 |
安装完成后,在硬件目录里看到的设备名一般是“FENA”加上订货号后缀。如果勾选时GSDML的版本号在博途里显示为灰色无法选中,大概率是博途版本过低,换高版本安装再导回项目即可。另外提示一下:rar文件本身不需要放进工程,只需要把解压后的XML交给博途。
3.3 FENA从站的槽位结构与I/O地址映射
FENA设备拖入网络视图后,还要进入设备视图给它插入子模块。FENA的GSDML里通常包含多个可插入的槽位,常见的布局如下表所示,具体以你解压出来的XML里的ModuleList为准。
| 槽位 | 子模块名称 | 数据方向 | 含义 |
|---|---|---|---|
| 0 | DAP | - | 设备访问点,固定存在 |
| 1 | FENA接口 | 输入/输出 | 网络接口状态 |
| 2 | ABB传动PZD | 输入/输出 | 控制字、状态字、速度给定与反馈 |
| 3 | ABB传动参数 | 输入/输出 | 可选,用于PKW参数读写 |
在设备视图中添加子模块后,博途会自动生成I/O地址区。比如在槽位2挂上PZD模块后,我给输出区分配QW64,输入区分配IW64,这样PLC侧就通过IW64读状态字,QW64写控制字。这里有一个实际经验:地址区分配尽量把输入输出对齐放在同一段连续地址上,方便后续用符号表统一管理。FENA从站的I/O地址区不要和PLC自带PN口上其他设备的地址重叠,否则博途组态时不会报错,但运行时会出数据互相覆盖的问题。
关于“ABB变频器与西门子PLC”这类搜索热词,最常见的落地形态就是这个流程:ACS880配FENA-01,TIA Portal里装GSDML,网络视图拉FENA,设备视图挂PZD子模块,然后PLC里读写几个字。整个过程不涉及Modbus,也不涉及DP从站地址,纯PROFINET IO。
4. 控制字、状态字和速度给定:PROFINET上的ABB传动协议
组态建好只是开始,真正让变频器转起来的是过程数据的读写。ABB传动在PROFINET上的数据交换遵循PROFIdrive规范,控制字和状态字的位定义也有统一标准。调试时最常踩的坑是把控制字当普通开关量处理,只给一个运行信号,结果变频器报“未使能”或“快速停车未复位”。
4.1 PPO报文和PZD数据:数据交换的最小单元
在PROFIBUS时代,ABB传动用PPO报文格式进行通讯,一个PPO由PKW区(参数读写区)和PZD区(过程数据区)组成。PZD区的最小组合是两个字输出(控制字+速度给定)和两个字输入(状态字+实际速度)。到了PROFINET IO时代,GSDML里定义的数据模块仍然是这个概念:PKW区用于读写参数,PZD区用于实时交换控制和反馈值。
模块的实际数据长度取决于你在槽位里插入的子模块类型。只做启停和调速,两个字的PZD就够用;要监控电流、转矩、故障字,就选更长的PZD模块。FENA模块本身不做运算,它把PLC发来的数据原样转发给变频器,同时把变频器的状态数据回传给PLC。理解这一点,调试时就不会把故障误判到FENA头上。
4.2 控制字和状态字的位定义与PLC侧读写代码
ABB传动遵循PROFIdrive的通用控制字定义,以ACS880系列为参照,常用的控制字位如下表。
| 位 | 控制字含义 | 设置要求 |
|---|---|---|
| Bit0 | ON/OFF1:运行命令 | 1允许运行,0停车 |
| Bit1 | OFF2:自由停车 | 1允许运行,0自由停机 |
| Bit2 | OFF3:快速停车 | 1允许运行,0快速停机 |
| Bit3 | 运行使能 | 1使能,0禁止 |
| Bit7 | 故障复位 | 上升沿有效,0→1→0 |
状态字对应关系如下表。
| 位 | 状态字含义 | 典型值 |
|---|---|---|
| Bit0 | 就绪接通 | 1表示待机 |
| Bit1 | 就绪运行 | 1表示准备运行 |
| Bit2 | 运行中 | 1表示正在运行 |
| Bit3 | 故障激活 | 1表示有故障 |
下面是一段TIA Portal SCL代码,实现对ACS880+FENA的启停控制。地址以IW64读状态字、QW64写控制字为例。
// 控制字与速度参考值写入(以QW64/QW66为例) #ControlWord.%X0 := TRUE; // Bit0=1: ON,允许运行 #ControlWord.%X1 := TRUE; // Bit1=1: OFF2无效,不自由停车 #ControlWord.%X2 := TRUE; // Bit2=1: OFF3无效,不快速停车 #ControlWord.%X3 := TRUE; // Bit3=1: 运行使能 #ControlWord.%X7 := FALSE; // Bit7=0: 不复位故障 "QWA64" := #ControlWord; // 写控制字到FENA "QWA66" := 16#4000; // 速度给定,4000H=100%额定转速 // 状态字读取 #StatusWord := "IWA64"; // 读状态字 #Running := #StatusWord.%X2; // Bit2=1表示变频器运行中 #FaultActive := #StatusWord.%X3; // Bit3=1表示变频器有故障代码里QWA64是按字访问输出地址,IWA64是按字访问输入地址,这种写法在TIA Portal SCL中合法,且比逐字节访问更直观。控制字的8个位全部在注释里说明清楚,启动时不要只给Bit0和Bit3,必须同时把Bit1、Bit2置1,否则变频器会因为OFF2或OFF3有效而拒绝运行。故障复位时,Bit7要做一个上升沿:先置FALSE至少一个扫描周期,再置TRUE。很多现场“给了复位还是报故障”,就是因为没有上升沿。
4.3 速度换算与参数组设置
ABB传动在PROFINET上的速度给定默认使用16#4000(十进制16384)对应100%额定转速。比如额定转速1500rpm的电机,给16#4000就输出50Hz对应1500rpm;给16#2000(十进制8192)就输出25Hz对应750rpm。换算式为:
实际转速 =(给定值 / 16384)× 额定转速
参数组设置上,以ACS880为例,有两个关键参数必须确认:98.07用于选择通讯协议,需要设置为FENA;98.02用于启用通讯模块。如果98.07没选对,FENA模块即使供电正常,变频器也不会响应主站发来的控制字。另一个常见做法是检查51组参数,51.01对应PROFIBUS节点地址,51.02对应波特率,这些参数在PROFITNET下意义不大,但在PROFIBUS DP组态时是必查项。不管是哪个型号,FENA模块上电后,变频器参数组里能看到通讯模块状态,从这里确认模块是否被CPU识别。
5. FENA通讯故障排错:先从GSDML文件本身查起
FENA通讯故障是ABB变频器调试中最高频的问题。尤其是新装设备第一次上电,主站报“设备不可用”,很多人第一反应是去查网线和IP地址,结果查了半天发现是GSDML文件版本和FENA固件不匹配。按下面的顺序排查能省很多时间。
5.1 版本不匹配和“设备离线”的典型表现
TIA Portal在线诊断里显示“设备故障”或“IO设备不可用”,FENA模块上的BF红灯闪烁,通常是以下三类原因:一是GSDML文件版本过老,不认识FENA固件里新的诊断信息;二是设备名称没下发成功,PROFINET网络里设备名必须和组态名称完全一致;三是IP地址和PLC不在同一网段。版本不匹配的特征最迷惑人:组态编译正常,下载正常,在线却报“标识不匹配”。此时可以重新打开GSDML文件,确认DeviceIdentity里的VendorID和DeviceID,和FENA模块固件版本表对照。
5.2 在解压后的XML里快速确认关键信息
GSDML是XML文件,直接用文本工具或者命令行grep就能验证关键字段。在Linux或Windows的Git Bash里执行以下命令:
unzip -o GSDML-V2.25-ABB-FENA-20130603.rar -d gsdml_abb grep -o 'VendorName="[^"]*"' gsdml_abb/GSDML-V2.25-ABB-FENA-20130603.xml grep -o '<DeviceIdentity[^>]*>' gsdml_abb/GSDML-V2.25-ABB-FENA-20130603.xml grep -o 'ModuleName="[^"]*"' gsdml_abb/GSDML-V2.25-ABB-FENA-20130603.xml | head -20第一条命令解压rar,第二条确认厂商名,第三条确认设备标识,第四条列出这个GSDML里所有可用的模块名。如果第四条输出的模块名和你在TIA Portal硬件目录里看到的对不上,说明文件本身没问题,是博途里的GSDML缓存没有刷新。此时关闭项目重新打开,或者在“管理GSD文件”里先卸载再重新安装。
5.3 让FENA回到线上:按顺序排查
我的建议是按“物理链路→设备状态→参数组态→主站诊断”四层走:
- 看FENA指示灯:电源灯亮、BF闪烁说明PROFINET通信未建立,先查网线和对端交换机端口。
- 在TIA Portal里用“可访问的设备”扫描网络,看能否看到FENA的MAC地址。扫描不到,检查FENA的以太网口是否被禁用、IP是否配置成功。
- 到变频器参数组确认98.07协议选择正确,98.02通讯模块已启用。这里注意FENA模块必须重新上电,参数修改才能生效。
- 删除IO设备重新组态,手动分配设备名称和IP,再下载一次到PLC。
最后一个技巧:在TIA Portal的在线诊断视图里看FENA的诊断报文,报文里会给出FENA固件期望的GSDML版本号。对比你手头这个“GSDML-V2.25-ABB-FENA-20130603”是不是一致,不一致就去对应固件版本的设备描述文件更新到工程里。这套方法对ACS580、ACS880配FENA-01同样适用。
本文还有配套的精品资源,点击获取