摘 要:本文在深入分析PROFIBUS-DP现场总线设备GSD文件结构的基础上,详细介绍了在ABB AC450控制系统中使用PROFIBUS-DP时的硬件配置和软件组态。
关键词:PROFIBUS-DP;GSD;ABB AC450
0 引言
PROFIBUS 是一种具有广泛应用范围的、开放的数字通信系统,已被纳入在国际标准IEC 61158 和IEC 61784中。由于在“PROFIBUS用户组织”的普遍可提供的导则中规定了应用和工程方面的信息,满足用户对于制造商无关性和开放性的要求,并确保了在各个制造商的设备之间进行通信,因此目前国际上PROFIBUS在各种现场总线应用中具有大于20%的市场份额,超过500万个节点, PROFIBUS产品的制造商也已超过2000个。为支持PROFIBUS在控制系统中的应用,ABB公司在上世纪九十年代推出的Advant Controller 450(简称AC450)系统中全面支持PROFIBUS的应用,十年来广泛应用于冶金等各领域。
1 GSD文件的结构
GSD文件也称为设备描述文件,是PROFIBUS设备制造商使用PTO(Profibus Trade Organization) 提供的GSD-Editor制作的描述其生产的某一具体型号的设备的各种性能参数的文本文件。它可由制造商随设备提供,用户也可以从http://www.profibus.com下载。GSD文件包括所有与该设备有关的参数,例如:支持的波特率、信息长度、输入和输出数据的数量、诊断信息的含义、模块化设备的可选件描述等。GSD文件一般由以下几部分组成,其中以分号开始的内容为注释,为了便于说明,文件中的保留字用黑体字表示。
(1) DP GSD文件标识符,格式固定不变:#Profibus_DP
(2) 参数文本定义,语法为:
…
PrmText=4
Text(0)= “GRAY”
Text(1)= “BINARY”
Text(2)= “SHIFTED GRAY”
EndPrmText
…
在该部分可定义多个参数。
(3) 扩展用户参数数据,语法为:
…
ExtUserPrmData=16 “Code SSI-Interface”
Unsigned8 0 0-2
Prm_Text_Ref= 4
EndExtUserPrmData
…
该部分定义该设备特有的参数,每个参数以ExtUserPrmData开始分别为其定义一个数字编号和用字符串表示的参数含义。对于该参数的设定值,用Prm_Text_Ref为其定义一个数字指针,指向在参数文本定义部分定义的一个文本参数号。本例中的Prm_Text_Ref= 4表示该参数的设定值由PrmText=4来定义,而在参数文本中明确给出该参数取不同值时所代表的编码方式。对于本例中的“Unsigned8 0 0-2”,Unsigned8是参数的数据类型说明,为8为无符号整数,0表示默认取值,即格雷码(GRAY),0-2表示其取值范围。参数文本定义和扩展用户参数数据不是GSD文件的必有部分。
(4) 通用数据部分,语法及具体含义如下:
GSD_Revision=1 ;GSD文件的版本号
Vendor_Name="TR Electronic GmbH" ;制造商
Model_Name="TR CE65M DP V3.0" ;设备型号
Revision="V2.0" ;设备版本号
Ident_Number=0xAAAB ;由PTO签发的唯一设备ID号
Protocol_Ident=0 ;定义支持的协议,0:DP;1:DP/FMS
Station_Type=0 ;设备类型,0:Slave;1:Master
FMS_supp=0 ;是否支持FMS
Hardware_Release="416157" ;设备硬件版本号
Software_Release="3.0" ;设备软件版本号
9.6_supp=1 ;所支持的通信速率选择,从9.6kB到12MB
…
MaxTsdr_9.6=60 ;与通信速率对应的最大应答时间
…
(5) 从结点通用数据,语法及具体含义如下:
; Slave-Specification:
OrderNumber="110-xxxxx" ;定货号
Periphery="DPS"
OffsetFirstMPDBlock=0
ETERDelay=0
MaxResponseDelay=0
Freeze_Mode_supp=1 ;输入数据同步
Sync_Mode_supp=1 ;输出数据同步
Auto_Baud_supp=1 ;自动识别通信速率
Set_Slave_Add_supp=1 ;可通过 PROFIBUS设定站地址
Min_Slave_Intervall=10 ;最小时间间隔,单位为100us
Max_Diag_Data_Len=57 ;最大诊断数据长度
Slave_Family=7@TR-ELECTRONIC ;为组态工具定义的产品家族标识
Bitmap_Device="Traaab3n" ;设备位图文件名称
Bitmap_Diag="Traaab3s" ;诊断位图文件名称
Modular_Station=1 ;站类型定义,1:模块型;0:紧凑型
Max_Module=1 ;最大模块数量(对模块型而言)
Max_Input_Len=6 ;输入数据最大长度(对模块型而言)
Max_Output_Len=4 ;输出数据最大长度(对模块型而言)
Max_Data_Len=10 ;输入和输出数据最大长度(对模块型而言)
Fail_Safe=1 ;失败安全功能
Max_User_Prm_Data_Len =33 ;最大用户参数数据长度
(6) 模块定义清单,分为两类,一类称为简单模块定义,如下例:
;
Module = "1 Byte DI " 0x10 ;1个字节的DI定义
EndModule
Module = "2 Byte DO" 0x21 ;2个字节的DO定义
EndModule
Module = "3 Byte DX" 0x32 ;3个字节的DX定义
EndModule
另一类称为特殊模块定义,如下例:
;
Module="PNO Class 1 16 Bit" 0xD0 ;模块类型及其16进制代码
Ext_Module_Prm_Data_Len=2 ;扩展模块参数数据长度(以字节为单位)
Ext_User_Prm_Data_Const(0)=0x00,0x00 ;默认的扩展用户参数组态
Ext_User_Prm_Data_Ref(1)=1
EndModule
在该部分中,使用Ext_User_Prm_Data_Ref为指定的字节定义所代表的参数,括号内的数字是字节号(从0开始),等号后面的数字指向在扩展用户参数数据中定义的参数号。
2 AC450系统中PROFIBUS-DP的硬件配置和软件组态
2.1 硬件配置
要在AC450系统中使用PROFIBUS-DP,需要在CPU机架的扩展槽内安装一块通信模块作为Master,把PROFIBUS电缆通过总线连接器(SIEMENS 6ES7 972-0BA41-0XA0)连接到该板上,然后连接到其它Slave结点。下图1是一个典型的配置图,图中有两个Slave结点,一个是CE-65-M型绝对值编码器,另一个是WAGO模块组成的I/O站,各模块作用如下:
WAGO 750-303: PROFIBUS-DP Coupler(12Mbaud)
WAGO 750-610: 带保险丝的供电模块
WAGO 750-410: 双通道24VDC DI模块
WAGO 750-630: SSI传感器接口模块
WAGO 750-602: 供电模块
WAGO 750-507: 双通道24VDC DO模块
WAGO 750-600: 终端模块
2.2 软件组态
ABB AC450系统中的软件软件组态分数据库(DB)组态和程序(PC)组态两部分,详见参考文献[4]。在PC部分,只需使用PC元素PB-R从Slave站点读出所需的数据,这里着重介绍DB组态。在AC450中,与PROFIBUS-DP有关的数据库元素有三个:PB、PBSD、PBS,分别完成对总线、Slave特性描述、Slave站点的组态。各个数据库元素详细的输入输出端定义见参考文献[3]。
(1) 总线的组态
按照下述步骤正确设置总线组态数据库PB各输入端的值:
-输入总线号(BUSNO),范围为1到255,注意不要与本系统中其它的总线号冲突。
-输入站号(STNNO),范围为1到125,注意不要与总线上其它Slave的站号冲突。
-输入CI541模块在机架中的位置和子位置(POSITION,SUBPOS)。
-设置总线参数部分,一般均使用系统默认值,需要注意的是参数BAURATE,应当根据选用的通信介质及其长度合理设置。例如如果使用A型电缆,则传输速率与长度对 应关系如下表1:
(2)Slave特性描述
数据库元素PBSD完成对某一类或一个PROFIBUS-DP Slave站点的特性描述,一般来说,对于象编码器等紧凑型站点,不管在一条总线上用了多少个,可以为同型号的设备建立一个PBSD即可;而对于像WAGO I/O站等模块型站点,除非几个站点的I/O配置相同,否则要为每个站点分别建立一个PBSD,以完成其I/O配置。PBSD分为三部分:Slave参数、用户参数数据、组态数据。对于Slave参数部分,可按照参考文献[3]中对各参数的描述,在相应的GSD文件中取得正确的设置。对于用户参数数据,一般也可以从GSD文件中取得,例如:UPRMDLEN对应于User_Prm_Data_Len 或Ext_Module_Prm_Data_Len指定的值,UPRMD1到UPRMD25对应于User_Prm_Data 或Ext_User_Prm_Data_Const(0) 指定的一组十六进制数,这些数字连续书写(去掉“0x”标识),每个UPRMD可书写最大20个数字,一个不够可在下一个继续写。为了便于区分,也可以根据参数的具体含义分组,每组占用一个UPRMD。如果该模认参数不符合要求,可根据Ext_User_Prm_Data_Ref( )中指定的参数每个字节的具体含义进行修改。
对于组态数据部分,分紧凑型和模块型两种情况。对于象编码器等紧凑型站点,CFGDLEN对应于Module定义的十六进制数的个数,CFGD1到CFGD25则对应着这些十六进制数,例如:如果Module="PNO Class 1 16 Bit" 0xD0,则:CFGDLEN=1,CFGD1=D0;如果Module="TR-Mode Position+Rpm." 0xF1,0XD0,则:CFGDLEN=2,CFGD1=F1D0。
对于象WAGO I/O等模块型站点,根据站点中具体的各种型号的I/O模块分配,然后根据GSD文件中对每种I/O模块的定义确定上述参数。例如对于图1中的WAGO站来说,GSD文件中与该硬件配置有关的内容如下:
Module = "750-630 (/...-...) 1x32Bit I " 0xD1
Module = "0..8 Bit binary outputs " 0x20
Module = "0..8 Bit binary inputs " 0x10
由此很容易计算出:CFGDLEN=10,CFGD1=D1D1D1D1D1D1D1201010。对于模块型站点,应当注意,如果交换了模块的位置,必须修改组态数据CFGD;如果增加或删除了模块,必须重新计算CFGDLEN和CFGD。
(3)Slave站点定义
在AC450系统中,PB元素的IMPL端和PBS的IMPL端有很强的依赖性,具体而言,只有当前者为0时才能创建该总线上的Slave站点。当增加Slave站点时,新增的PBS的IMPL端必须在PB元素的IMPL端置1之前设置为1,否则该站点不工作。因此正确建立Slave站点的步骤是:
-把相应PB元素的IMPL端改为0
-增加PBS站点,并输入总线号(BUSNO)、站号(STNNO)和Slave站点描述索引 (它必须是一个已经存在的PBSD)。
-把该PBS元素的IMPL端改为1(默认值)。
-把相应PB元素的IMPL端改为1以启动该总线。
3 结论
实践证明,在AC450系统中采用PROFIBUS技术,能够缩短安装和调试工期,节省了大量电缆,系统稳定可靠。
参考文献:
[1]WAGO-I/O-SYSTEM 750 Modular I/O System PROFIBUS DP Manual,
WAGO Kontakttechnik GmbH
[2]PROFIBUS-DP Advant® Controller 400 Series User’s Guide ,
ABB Automation Products AB 2000.
[3] Data Base Elements Advant® Controller 400 Series Reference Manual
ABB Automation Products AB 2000.
[4]孙汉峰:棒材和轻型材连续剪切控制系统,冶金自动化1997