摘 要:本文在深入分析PROFIBUS-DP現(xiàn)場(chǎng)總線設(shè)備GSD文件結(jié)構(gòu)的基礎(chǔ)上,詳細(xì)介紹了在ABB AC450控制系統(tǒng)中使用PROFIBUS-DP時(shí)的硬件配置和軟件組態(tài)。
關(guān)鍵詞:PROFIBUS-DP;GSD;ABB AC450
0 引言
PROFIBUS 是一種具有廣泛應(yīng)用范圍的、開(kāi)放的數(shù)字通信系統(tǒng),已被納入在國(guó)際標(biāo)準(zhǔn)IEC 61158 和IEC 61784中。由于在“PROFIBUS用戶組織”的普遍可提供的導(dǎo)則中規(guī)定了應(yīng)用和工程方面的信息,滿足用戶對(duì)于制造商無(wú)關(guān)性和開(kāi)放性的要求,并確保了在各個(gè)制造商的設(shè)備之間進(jìn)行通信,因此目前國(guó)際上PROFIBUS在各種現(xiàn)場(chǎng)總線應(yīng)用中具有大于20%的市場(chǎng)份額,超過(guò)500萬(wàn)個(gè)節(jié)點(diǎn), PROFIBUS產(chǎn)品的制造商也已超過(guò)2000個(gè)。為支持PROFIBUS在控制系統(tǒng)中的應(yīng)用,ABB公司在上世紀(jì)九十年代推出的Advant Controller 450(簡(jiǎn)稱AC450)系統(tǒng)中全面支持PROFIBUS的應(yīng)用,十年來(lái)廣泛應(yīng)用于冶金等各領(lǐng)域。
1 GSD文件的結(jié)構(gòu)
GSD文件也稱為設(shè)備描述文件,是PROFIBUS設(shè)備制造商使用PTO(Profibus Trade Organization) 提供的GSD-Editor制作的描述其生產(chǎn)的某一具體型號(hào)的設(shè)備的各種性能參數(shù)的文本文件。它可由制造商隨設(shè)備提供,用戶也可以從http://www.profibus.com下載。GSD文件包括所有與該設(shè)備有關(guān)的參數(shù),例如:支持的波特率、信息長(zhǎng)度、輸入和輸出數(shù)據(jù)的數(shù)量、診斷信息的含義、模塊化設(shè)備的可選件描述等。GSD文件一般由以下幾部分組成,其中以分號(hào)開(kāi)始的內(nèi)容為注釋,為了便于說(shuō)明,文件中的保留字用黑體字表示。
(1) DP GSD文件標(biāo)識(shí)符,格式固定不變:#Profibus_DP
(2) 參數(shù)文本定義,語(yǔ)法為:
…
PrmText=4
Text(0)= “GRAY”
Text(1)= “BINARY”
Text(2)= “SHIFTED GRAY”
EndPrmText
…
在該部分可定義多個(gè)參數(shù)。
(3) 擴(kuò)展用戶參數(shù)數(shù)據(jù),語(yǔ)法為:
…
ExtUserPrmData=16 “Code SSI-Interface”
Unsigned8 0 0-2
Prm_Text_Ref= 4
EndExtUserPrmData
…
該部分定義該設(shè)備特有的參數(shù),每個(gè)參數(shù)以ExtUserPrmData開(kāi)始分別為其定義一個(gè)數(shù)字編號(hào)和用字符串表示的參數(shù)含義。對(duì)于該參數(shù)的設(shè)定值,用Prm_Text_Ref為其定義一個(gè)數(shù)字指針,指向在參數(shù)文本定義部分定義的一個(gè)文本參數(shù)號(hào)。本例中的Prm_Text_Ref= 4表示該參數(shù)的設(shè)定值由PrmText=4來(lái)定義,而在參數(shù)文本中明確給出該參數(shù)取不同值時(shí)所代表的編碼方式。對(duì)于本例中的“Unsigned8 0 0-2”,Unsigned8是參數(shù)的數(shù)據(jù)類型說(shuō)明,為8為無(wú)符號(hào)整數(shù),0表示默認(rèn)取值,即格雷碼(GRAY),0-2表示其取值范圍。參數(shù)文本定義和擴(kuò)展用戶參數(shù)數(shù)據(jù)不是GSD文件的必有部分。
(4) 通用數(shù)據(jù)部分,語(yǔ)法及具體含義如下:
GSD_Revision=1 ;GSD文件的版本號(hào)
Vendor_Name="TR Electronic GmbH" ;制造商
Model_Name="TR CE65M DP V3.0" ;設(shè)備型號(hào)
Revision="V2.0" ;設(shè)備版本號(hào)
Ident_Number=0xAAAB ;由PTO簽發(fā)的唯一設(shè)備ID號(hào)
Protocol_Ident=0 ;定義支持的協(xié)議,0:DP;1:DP/FMS
Station_Type=0 ;設(shè)備類型,0:Slave;1:Master
FMS_supp=0 ;是否支持FMS
Hardware_Release="416157" ;設(shè)備硬件版本號(hào)
Software_Release="3.0" ;設(shè)備軟件版本號(hào)
9.6_supp=1 ;所支持的通信速率選擇,從9.6kB到12MB
…
MaxTsdr_9.6=60 ;與通信速率對(duì)應(yīng)的最大應(yīng)答時(shí)間
…
(5) 從結(jié)點(diǎn)通用數(shù)據(jù),語(yǔ)法及具體含義如下:
; Slave-Specification:
OrderNumber="110-xxxxx" ;定貨號(hào)
Periphery="DPS"
OffsetFirstMPDBlock=0
ETERDelay=0
MaxResponseDelay=0
Freeze_Mode_supp=1 ;輸入數(shù)據(jù)同步
Sync_Mode_supp=1 ;輸出數(shù)據(jù)同步
Auto_Baud_supp=1 ;自動(dòng)識(shí)別通信速率
Set_Slave_Add_supp=1 ;可通過(guò) PROFIBUS設(shè)定站地址
Min_Slave_Intervall=10 ;最小時(shí)間間隔,單位為100us
Max_Diag_Data_Len=57 ;最大診斷數(shù)據(jù)長(zhǎng)度
Slave_Family=7@TR-ELECTRONIC ;為組態(tài)工具定義的產(chǎn)品家族標(biāo)識(shí)
Bitmap_Device="Traaab3n" ;設(shè)備位圖文件名稱
Bitmap_Diag="Traaab3s" ;診斷位圖文件名稱
Modular_Station=1 ;站類型定義,1:模塊型;0:緊湊型
Max_Module=1 ;最大模塊數(shù)量(對(duì)模塊型而言)
Max_Input_Len=6 ;輸入數(shù)據(jù)最大長(zhǎng)度(對(duì)模塊型而言)
Max_Output_Len=4 ;輸出數(shù)據(jù)最大長(zhǎng)度(對(duì)模塊型而言)
Max_Data_Len=10 ;輸入和輸出數(shù)據(jù)最大長(zhǎng)度(對(duì)模塊型而言)
Fail_Safe=1 ;失敗安全功能
Max_User_Prm_Data_Len =33 ;最大用戶參數(shù)數(shù)據(jù)長(zhǎng)度
(6) 模塊定義清單,分為兩類,一類稱為簡(jiǎn)單模塊定義,如下例:
;
Module = "1 Byte DI " 0x10 ;1個(gè)字節(jié)的DI定義
EndModule
Module = "2 Byte DO" 0x21 ;2個(gè)字節(jié)的DO定義
EndModule
Module = "3 Byte DX" 0x32 ;3個(gè)字節(jié)的DX定義
EndModule
另一類稱為特殊模塊定義,如下例:
;
Module="PNO Class 1 16 Bit" 0xD0 ;模塊類型及其16進(jìn)制代碼
Ext_Module_Prm_Data_Len=2 ;擴(kuò)展模塊參數(shù)數(shù)據(jù)長(zhǎng)度(以字節(jié)為單位)
Ext_User_Prm_Data_Const(0)=0x00,0x00 ;默認(rèn)的擴(kuò)展用戶參數(shù)組態(tài)
Ext_User_Prm_Data_Ref(1)=1
EndModule
在該部分中,使用Ext_User_Prm_Data_Ref為指定的字節(jié)定義所代表的參數(shù),括號(hào)內(nèi)的數(shù)字是字節(jié)號(hào)(從0開(kāi)始),等號(hào)后面的數(shù)字指向在擴(kuò)展用戶參數(shù)數(shù)據(jù)中定義的參數(shù)號(hào)。
2 AC450系統(tǒng)中PROFIBUS-DP的硬件配置和軟件組態(tài)
2.1 硬件配置
要在AC450系統(tǒng)中使用PROFIBUS-DP,需要在CPU機(jī)架的擴(kuò)展槽內(nèi)安裝一塊通信模塊作為Master,把PROFIBUS電纜通過(guò)總線連接器(SIEMENS 6ES7 972-0BA41-0XA0)連接到該板上,然后連接到其它Slave結(jié)點(diǎn)。下圖1是一個(gè)典型的配置圖,圖中有兩個(gè)Slave結(jié)點(diǎn),一個(gè)是CE-65-M型絕對(duì)值編碼器,另一個(gè)是WAGO模塊組成的I/O站,各模塊作用如下:
WAGO 750-303: PROFIBUS-DP Coupler(12Mbaud)
WAGO 750-610: 帶保險(xiǎn)絲的供電模塊
WAGO 750-410: 雙通道24VDC DI模塊
WAGO 750-630: SSI傳感器接口模塊
WAGO 750-602: 供電模塊
WAGO 750-507: 雙通道24VDC DO模塊
WAGO 750-600: 終端模塊

2.2 軟件組態(tài)
ABB AC450系統(tǒng)中的軟件軟件組態(tài)分?jǐn)?shù)據(jù)庫(kù)(DB)組態(tài)和程序(PC)組態(tài)兩部分,詳見(jiàn)參考文獻(xiàn)[4]。在PC部分,只需使用PC元素PB-R從Slave站點(diǎn)讀出所需的數(shù)據(jù),這里著重介紹DB組態(tài)。在AC450中,與PROFIBUS-DP有關(guān)的數(shù)據(jù)庫(kù)元素有三個(gè):PB、PBSD、PBS,分別完成對(duì)總線、Slave特性描述、Slave站點(diǎn)的組態(tài)。各個(gè)數(shù)據(jù)庫(kù)元素詳細(xì)的輸入輸出端定義見(jiàn)參考文獻(xiàn)[3]。
(1) 總線的組態(tài)
按照下述步驟正確設(shè)置總線組態(tài)數(shù)據(jù)庫(kù)PB各輸入端的值:
-輸入總線號(hào)(BUSNO),范圍為1到255,注意不要與本系統(tǒng)中其它的總線號(hào)沖突。
-輸入站號(hào)(STNNO),范圍為1到125,注意不要與總線上其它Slave的站號(hào)沖突。
-輸入CI541模塊在機(jī)架中的位置和子位置(POSITION,SUBPOS)。
-設(shè)置總線參數(shù)部分,一般均使用系統(tǒng)默認(rèn)值,需要注意的是參數(shù)BAURATE,應(yīng)當(dāng)根據(jù)選用的通信介質(zhì)及其長(zhǎng)度合理設(shè)置。例如如果使用A型電纜,則傳輸速率與長(zhǎng)度對(duì) 應(yīng)關(guān)系如下表1:

(2)Slave特性描述
數(shù)據(jù)庫(kù)元素PBSD完成對(duì)某一類或一個(gè)PROFIBUS-DP Slave站點(diǎn)的特性描述,一般來(lái)說(shuō),對(duì)于象編碼器等緊湊型站點(diǎn),不管在一條總線上用了多少個(gè),可以為同型號(hào)的設(shè)備建立一個(gè)PBSD即可;而對(duì)于像WAGO I/O站等模塊型站點(diǎn),除非幾個(gè)站點(diǎn)的I/O配置相同,否則要為每個(gè)站點(diǎn)分別建立一個(gè)PBSD,以完成其I/O配置。PBSD分為三部分:Slave參數(shù)、用戶參數(shù)數(shù)據(jù)、組態(tài)數(shù)據(jù)。對(duì)于Slave參數(shù)部分,可按照參考文獻(xiàn)[3]中對(duì)各參數(shù)的描述,在相應(yīng)的GSD文件中取得正確的設(shè)置。對(duì)于用戶參數(shù)數(shù)據(jù),一般也可以從GSD文件中取得,例如:UPRMDLEN對(duì)應(yīng)于User_Prm_Data_Len 或Ext_Module_Prm_Data_Len指定的值,UPRMD1到UPRMD25對(duì)應(yīng)于User_Prm_Data 或Ext_User_Prm_Data_Const(0) 指定的一組十六進(jìn)制數(shù),這些數(shù)字連續(xù)書寫(去掉“0x”標(biāo)識(shí)),每個(gè)UPRMD可書寫最大20個(gè)數(shù)字,一個(gè)不夠可在下一個(gè)繼續(xù)寫。為了便于區(qū)分,也可以根據(jù)參數(shù)的具體含義分組,每組占用一個(gè)UPRMD。如果該模認(rèn)參數(shù)不符合要求,可根據(jù)Ext_User_Prm_Data_Ref( )中指定的參數(shù)每個(gè)字節(jié)的具體含義進(jìn)行修改。
對(duì)于組態(tài)數(shù)據(jù)部分,分緊湊型和模塊型兩種情況。對(duì)于象編碼器等緊湊型站點(diǎn),CFGDLEN對(duì)應(yīng)于Module定義的十六進(jìn)制數(shù)的個(gè)數(shù),CFGD1到CFGD25則對(duì)應(yīng)著這些十六進(jìn)制數(shù),例如:如果Module="PNO Class 1 16 Bit" 0xD0,則:CFGDLEN=1,CFGD1=D0;如果Module="TR-Mode Position+Rpm." 0xF1,0XD0,則:CFGDLEN=2,CFGD1=F1D0。
對(duì)于象WAGO I/O等模塊型站點(diǎn),根據(jù)站點(diǎn)中具體的各種型號(hào)的I/O模塊分配,然后根據(jù)GSD文件中對(duì)每種I/O模塊的定義確定上述參數(shù)。例如對(duì)于圖1中的WAGO站來(lái)說(shuō),GSD文件中與該硬件配置有關(guān)的內(nèi)容如下:
Module = "750-630 (/...-...) 1x32Bit I " 0xD1
Module = "0..8 Bit binary outputs " 0x20
Module = "0..8 Bit binary inputs " 0x10
由此很容易計(jì)算出:CFGDLEN=10,CFGD1=D1D1D1D1D1D1D1201010。對(duì)于模塊型站點(diǎn),應(yīng)當(dāng)注意,如果交換了模塊的位置,必須修改組態(tài)數(shù)據(jù)CFGD;如果增加或刪除了模塊,必須重新計(jì)算CFGDLEN和CFGD。
(3)Slave站點(diǎn)定義
在AC450系統(tǒng)中,PB元素的IMPL端和PBS的IMPL端有很強(qiáng)的依賴性,具體而言,只有當(dāng)前者為0時(shí)才能創(chuàng)建該總線上的Slave站點(diǎn)。當(dāng)增加Slave站點(diǎn)時(shí),新增的PBS的IMPL端必須在PB元素的IMPL端置1之前設(shè)置為1,否則該站點(diǎn)不工作。因此正確建立Slave站點(diǎn)的步驟是:
-把相應(yīng)PB元素的IMPL端改為0
-增加PBS站點(diǎn),并輸入總線號(hào)(BUSNO)、站號(hào)(STNNO)和Slave站點(diǎn)描述索引 (它必須是一個(gè)已經(jīng)存在的PBSD)。
-把該P(yáng)BS元素的IMPL端改為1(默認(rèn)值)。
-把相應(yīng)PB元素的IMPL端改為1以啟動(dòng)該總線。
3 結(jié)論
實(shí)踐證明,在AC450系統(tǒng)中采用PROFIBUS技術(shù),能夠縮短安裝和調(diào)試工期,節(jié)省了大量電纜,系統(tǒng)穩(wěn)定可靠。
參考文獻(xiàn):
[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]孫漢峰:棒材和輕型材連續(xù)剪切控制系統(tǒng),冶金自動(dòng)化1997