在Power_On狀態(tài),從站能從2類主站接收Set Slave-Add報文來改變它的地址,然后從站進入Wail_P rm狀態(tài),等待參數(shù)化.此狀態(tài)從站還可以接收Get_Cfg和Slave_Dlag報文。參數(shù)化完成后.從站進人wait_Cfg狀態(tài),等待Chk_Cfg報文.另外還可以接收Slave_Diag、Set_Prm和Get_Cfg報文。如果Chk_Cfg完成后,從站將進入Data_Exch狀態(tài).進行數(shù)據(jù)通信。此時從站還可接收Writing_Outputs、Reading_lnputs、Global_Control、Slave Diag、Chk_Diag和Get_Cfg報文,若組態(tài)和數(shù)據(jù)交換不成功.就會返回到參數(shù)化階段。Wait_Prm在對從站進行組態(tài)時,必須要編寫它的GSD文件.所謂GSD就是為了將不同的PROFIBUS產(chǎn)品集成在一起而以電子設(shè)備數(shù)據(jù)庫文件方式提供的功能函數(shù)(如I/O點數(shù)、診斷信息、波特率、時間監(jiān)視等)。只有GSD文件在COMPROFlBUS組態(tài)軟件下才能對從站組態(tài),否則主站無法識別從站。
3 軟件設(shè)計
對SPC3的軟件操作主要包括兩個部分:SPC3的初始化和SPC3的中斷處理。主程序和中斷程序流程圖分別如圖4和圖5所示。

SPC3的初始化程序應(yīng)放在主程序的前面,而中斷處理程序完成CPU對SPC3中斷輸出的響應(yīng)。 SPC3上電復(fù)位之后.在正常工作之前必須進行初始化,以配置各個寄存器。中斷處理程序用于處理SPC3發(fā)生的各種事件,這些事件包括 新的參數(shù)報文事件:全局控制命令報文事件.進入或退出數(shù)據(jù)交換狀態(tài)事件,新的配置報文事件:新的地址設(shè)置報文事件;監(jiān)測到波特率事件和看門狗溢出事件。數(shù)據(jù)輸入和輸出處理(輸入輸出相對于主站而言)及用戶診斷數(shù)據(jù)輸入可以放在應(yīng)用程序主循環(huán)中。在一個應(yīng)用循環(huán)申,由應(yīng)用來刷新輸入BUF中的數(shù)據(jù).保障所有輸入數(shù)據(jù)是最新的更新數(shù)據(jù)。而SPC3在接收到由PROFIBUS主站傳送的不同輸出數(shù)據(jù)時.會產(chǎn)生輸出標(biāo)志位(同樣位于中斷請求字單元),CPU通過在應(yīng)用循環(huán)中輪詢標(biāo)志位來進行接收主站數(shù)據(jù)。對于特定應(yīng)用的診斷信息.需要實時傳遞到主站。主應(yīng)用程序在應(yīng)用循環(huán)中判斷是否有可用的診斷BUF存在一當(dāng)有空閑BUF時應(yīng)用程序輸入診斷信息,并請求更新。對于實時性要求嚴格的系統(tǒng),應(yīng)采用中斷方式進行輸出數(shù)據(jù)和診斷數(shù)據(jù)處理。
4 GSD文件簡介
PRO FlBUS設(shè)備具有不同的性能特點,為達到PROFIBUS簡單的即插即用配置.PROFIBUS設(shè)備的特性均在電子設(shè)備數(shù)據(jù)庫文件(GSD)中具體說明。標(biāo)準(zhǔn)化的GSD數(shù)據(jù)將通信擴大到操作員控制級。使用基于GSD的組態(tài)工具可將不同廠商生產(chǎn)的設(shè)備集成在同一總線系統(tǒng)中.既簡單又是對用戶友好的。
4.1 GSD文件的組成
GSD文件可以分為三個部分:
◆一般規(guī)范 這部分包括生產(chǎn)廠商和設(shè)備的名稱,硬件和軟件的版本狀況,支持的波特率一可能的監(jiān)視時間問隔以及總線插頭的信號分配;
◆與DP主站有關(guān)的規(guī)范這部分包括只運用于DP主站的各項參數(shù)(如連接從站的最多臺數(shù)或上裝和下裝能力)。這一部分對從站沒有規(guī)定;
◆與DP從站有關(guān)的規(guī)范 這部分包括與從站有關(guān)的一切規(guī)范(如輸入/輸出通道的數(shù)量和類型、中斷測試的規(guī)范以及輸入/輸出數(shù)據(jù)一致性的信息)。
4.2 GSD文件格式
GSD文件是ASCII文件.可以用任何一種ASCII編輯囂編輯 如計事本、UltraEdit等,也可使用PROFIBus用戶組織提供的編輯程序GSDEdit。GSD文件是由若干行組成,每行都用一個關(guān)鍵字開頭,包括關(guān)鍵字及參數(shù)(無符號數(shù)或字符串)兩部分。GSD文件中的關(guān)鍵字可以是標(biāo)準(zhǔn)關(guān)鍵字(在PROFIBUS標(biāo)準(zhǔn)中定義)或自定義關(guān)鍵字。標(biāo)準(zhǔn)關(guān)鍵字可以被PROFIBUS的任何組態(tài)工具所識別,而自定義 關(guān)鍵字只能被特定的組態(tài)工具識別。
一個GSD文件的例子如下。
#Pr0fibus DP ;DP設(shè)備的GSD文件均以此關(guān)鍵存在
GSD Revision=1 ;GSD文件版本
VendorName="Meglev" ;設(shè)備制造商
Model Name="DP Slave" ;產(chǎn)品名稱,產(chǎn)品版本
Revision="Version 01" ;產(chǎn)品版本號(可選)
RevisionNtmber=01 ;產(chǎn)品識別號
IdemNumber=0x01 ;協(xié)議類型(表示DP)
ProtocoI Ident=0 ;站類型(0表示從站)
StationType=0 ;不支持FMS.純DP從站
FMS Supp=0 ;硬件版本
Hardware Realease="HW1.0" ;軟件版本
Soltware Realease="SWl.0" ;支持9.6kbps波特率
9.6 supp=1 ;支持19.2kbps波特率
19.2 supp=l ;9.6kbps時最大延遲時間
MaxTsdr 9.6=60 ;19.2kbps時最大延遲時間
MaxTsdrl9.2=60 ;不提供RTS信號
RepeaterCtrl sig=0 ;不提供24V電壓
24VPins=0 ;采用的解決方案
Implementation Type="SPC3" ;不支持鎖定模式
FreezeMode Supp=0 ;不支持同步模式
SyncMode Supp=0 ;支持自動波特率檢測
AutoBaud Supp=l ;不支持改變從站地址
Set SlaveAdd Supp=0 ;故障安全模式類型
Fail Safe=0 ;最大用戶參數(shù)數(shù)據(jù)長度(0-237)
MaxUser PrmDataLen=0 ;用戶參數(shù)長度
Usel prmDataLen=0 ;最小從站響應(yīng)循環(huán)間隔
Min Slave Imervall=22 ;是否為模塊站
Modular Station=l ;從站最大模塊數(shù)
MaxModule=l ;最大輸入數(shù)據(jù)長度
MaxInput Len=8 ;最大輸出數(shù)據(jù)長度
MaxOutput Len=8 ;最大數(shù)據(jù)的長度(輸入輸出之和)
MaxData Len=16 ;最大診斷數(shù)據(jù)長度(6~244)Slave
MaxDiagData Len=6 ;從站類型
Family=3 ;模塊1,輸入輸出各4字節(jié)
M0dule=“Modulel”0x23,0x13; ;模塊2.輸入輸出各8字節(jié)
EndModule
Module="Module2"0x27,0x17;
EndModule
結(jié)語
PROFIBUS.DP現(xiàn)場總線已成為我國機械部的行業(yè)標(biāo)準(zhǔn).受到越來越多科研機構(gòu)和廠家的重視t本文從開發(fā)的角度.詳細闡述了PROFIBUS—DP現(xiàn)場總線的軟硬件設(shè)計方法。相信能給讀者起到拋磚引玉的作用。我們開發(fā)的帶有PROFIBUS-DP總線接口的設(shè)備,能滿足互操作性以及實耐性通信的要求,已在許多行業(yè)得到成功應(yīng)用。





