基於PROFIBUS-DP的FCS性能研究及診斷軟件的開發 曹雪華 1 (1安科瑞電氣有限公司,上海嘉定 201801)
摘要: 分析了PROFIBUS-DP傳輸協議與報文結構,設計了一種基於串口通信的PROFIBUS-DP總線性能分析與診斷軟件,給出了程序的實現方法和關鍵技術,在PROFIBUS-DP實驗平台上進行了運行調試。結果表明,該軟件運行良好,可以基本完成對PROFIBUS-DP報文采集、分析和存儲等功能。
關鍵詞: 現場總線, PROFIBUS-DP,通信協議,報文,串口。
Abstract: Introduced communication protocol and message structure of PROFIBUS-DP, designed one software based on serial port communication, The software can analyze and diagnose the performance of PROFIBUS-DP. Presented the method and the key functions technique, The software is run on the communication network platform The debugging results indicate that the software can gather、analyse and memorize some kind of message of PROFIBUS-DP.
Keywords: FieldBus, PROFIBUS, communication protocol, message, serialport
0 引言
PROFIBUS是工業自動化領域內市場占有率最高的一種現場總線技術,它包括用於製造業自動化的PROFIBUS-DP和用於流程工業領域的PROFIBUS-PA,它是目前我國惟一的現場總線國家標準。隨著越來越多工業控製係統采用了PROFIBUS現場總線技術,對這些控製係統進行具體的、直zhi觀guan的de和he實shi時shi的de在zai線xian分fen析xi與yu診zhen斷duan成cheng為wei了le最zui基ji本ben的de要yao求qiu,要yao想xiang完wan成cheng這zhe樣yang的de任ren務wu,就jiu需xu要yao有you相xiang應ying的de工gong程cheng分fen析xi診zhen斷duan工gong具ju。國guo內nei外wai目mu前qian所suo研yan究jiu的de這zhe些xie總zong線xian性xing能neng分fen析xi診zhen斷duan工gong程cheng工gong具ju存cun在zai著zhe功gong能neng不bu夠gou全quan麵mian、界麵不夠完善、價格昂貴、不適合中國國情等問題。開發一款能夠對總線係統進行分析和診斷,方便的、性能價格比高的分析診斷工程工具必將成為急需的產品。
由於在PRIFBUS傳輸報文可以反映出總線性能的很多參數,包括各種故障狀態。比如:從參數化報文可以看出主站和從站的關係,從站的操作方式,包括通道參數、功能設定、裝置參數和ID號等。從組態報文可以看出從站I/0類型及性質,以及模塊的I/O性質及數據類型等。從診斷報文可以看出從站各種參數設置錯誤,各種組態錯誤,以及裝置模塊錯誤類型。所以,本文作者就是在對PROFIBUS-DP報文進行詳盡分析的基礎上,采用VC++ 6.0開發了一款基於串口通訊的PROFIBUS性能分析診斷軟件。
1 PROFIBUS工作機理
1.1 PROFIBUS-DP編碼技術
PROFIBUS-DP交換數據使用異步傳輸技術和NRZ編碼。NRZ編碼的二進製信號“0”或“1”的信號電平在信號持續期間維持不變。圖1所示為NRZ碼信號圖。
圖1 非歸零碼信號
每個數據鏈路層協議數據單元應由一定數量的字符組成,每個字符都是一個用於異步傳輸的起――停字符。
每個字符由11個比特組成,包括1個總是為二進製“0”的起始比特(ST),8個可以是二進製數“0”亦可以是二進製數“1”的信息比特,1個可以是二進製“1”也可以是二進製數“0”的偶校驗比特(P),1個總是為二進製數“1”的停止比特,如圖2所示。
圖2單個字符格式
接收器的比特同步總是從起始比特的下降沿開始,也就是說,在從二進製“1”轉換到二進製數“0”時開始。在比特時間的中間應掃描起始比特和所有後繼的比特。在比特時間的中間,起始比特應是二進製數“0”,否則認為同步失敗並停止同步過程。以二進製“1”的停止比特來結束字符的同步,如果此時出現二進製數“0”來代替此停止比特,則應認為並報告一個同步差錯或字符差錯,並應等待下一個起始比特的前導沿。
1.2 報文格式
如圖3所示,PRFIBUS-DP有以下5種報文格式。其中,SYN為同步周期,它是一個最小的時間間隔,在此時間間隔內,每個站在它可以接收發送/請求報文幀或令牌起始部分之前,應從傳輸介質接收空閑狀態(idle state)(idle=二進製“1”)。同步周期最小為33個線空閑比特;SD為起始定界符,DA是目的地址,SA是源地址,FC是控製幀;FCS是幀校驗和,ED為結束定界符,值為16h,L是信息字段長度,其中SD1= 10h,用於請求FDL狀態,尋找一個新的活動的站點,報文長度固定,沒有數據單元;SD2= 68h,用於SRD服務,報文的數據長度可變;SD3 = A2h,數據單元長度固定(L總為8字節);SD4 = DCh,表示該報文為令牌報文;SC =E5h, 短確認報文。
圖3 PROFIBUS―DP鏈路層報文格式
2 報文診斷軟件的實現
2.1 , 實驗平台
圖4為作者組建的PROFIBUS-DP網絡實驗係統結構圖。在網絡係統中,1類主站為SIEMENS公司的CPU315-2DP PLC,PC工控機作為2 類主站,通過現場總線接口卡CP5611與DP 總線相連, WAGO公司的750-333、BECKHOFF公司的BK3120、SIEMENS公司的ET200-L及和利時公司的LM3107 PLC等PLC設備作為從站連接到DP網絡中。
圖4 PROFIBUS-DP網絡實驗係統結構圖
2.2 軟件開發環境
軟件開發工具為VC++6.0,通過計算機標準串口通信,將PROFIBUS―DP報文采集到上位機進行處理。PROFIBUS-DP係統作為實驗平台,采用RS485/RS232通信電纜將其RS485的一端接入PROFIBUS-DP網絡連接器的背插接口,RS232一端直接接入到PC機的串口。
2.3 軟件係統基本程序框圖
軟件係統的程序基本架構流程圖如圖5所示。
圖5基本程序框架流程圖
整個係統軟件包括如下幾個模塊:
1)程序主控模塊:負責實現程序邏輯與主界麵,調用串口通信模塊和接收顯示模塊。
2)串口通信模塊:負責實現串口通信任務,PROFIBUS-DP報文數據采集及串口參數設置。
3)數據處理模塊:根據PROFIBUS-DP協議報文格式,將采集上來的數據按報文格式進行處理,並存入臨時緩衝區。
4)接收顯示模塊:負責實現接收數據的處理與顯示。
5)數據庫模塊及數據查詢模塊,用來實現對采集到報文的曆史數據的分析和查詢。
2.4關鍵技術
該軟件主要是實現對PROFIBUS報文進行提取,實現在線采集PROFIBUS-DP報文數據,從數據鏈路層角度對各種報文進行分析,完成各種類型報文的顯示,完成對報文種類、服務類型、地址、數據長度及數據單元等信息的提取顯示,並對診斷報文、參can數shu化hua報bao文wen及ji組zu態tai報bao文wen等deng的de數shu據ju單dan元yuan進jin行xing詳xiang細xi的de分fen析xi,得de出chu總zong線xian性xing能neng的de各ge種zhong參can數shu及ji故gu障zhang原yuan因yin,將jiang分fen析xi過guo的de數shu據ju存cun儲chu進jin數shu據ju庫ku,存cun入ru臨lin時shi緩huan衝chong區qu,根gen據ju需xu要yao將jiang分fen析xi過guo的de報bao文wen信xin息xi存cun入ru數shu據ju庫ku,實shi現xian曆li史shi查zha詢xun。
如何實現報文幀的提取是本軟件設計的一個關鍵問題。由於PROFIBUS報文格式有很多種,而且包括數據長度不固定的可變報文。雖然各種報文都具有固定的報頭、baowei,danshicunzaidewentishibaotoubaoweibingbushitedingdezifu,youkenenghebaowenzhongshujudanyuanneirongyiyang,suoyizheliliyongbaotoubaoweijinxingbaowendetiqushibukexingde。zuozhezaizheliliyonggezhongbaowenzhenqiandetongbuzifujinxingbaowentiqu,yejiushishuo,zaimeigewanzhengbaowenzhenchuanshuzhiqian,qiqianmiandouyouyigebuxiaoyu33bit的同步時間,在報文幀中間是沒有任何間隔的,利用這一同步時間,在VC++中利用超時函數,對報文幀進行了完整地提取。
另外,由於通信數據量很大,速度較快,這裏采用了WINDOWS多duo線xian程cheng技ji術shu。一yi個ge線xian程cheng為wei監jian視shi線xian程cheng,監jian視shi串chuan口kou通tong訊xun,一yi個ge為wei數shu據ju處chu理li主zhu線xian程cheng,另ling外wai一yi個ge為wei定ding時shi刷shua新xin數shu據ju庫ku線xian程cheng。當dang監jian視shi線xian程cheng監jian視shi到dao串chuan口kou中zhong有you數shu據ju到dao達da時shi,就jiu觸chu發fa一yi個ge消xiao息xi通tong知zhi數shu據ju處chu理li主zhu線xian程cheng,數shu據ju處chu理li主zhu線xian程cheng就jiu去qu串chuan口kou緩huan衝chong區qu中zhong取qu出chu數shu據ju,並bing進jin行xing數shu據ju處chu理li。定ding時shi器qi線xian程cheng定ding時shi刷shua新xin數shu據ju庫ku顯xian示shi,以yi實shi現xian實shi時shi顯xian示shi功gong能neng。
作者在程序編寫的過程中,出現數據庫不能實時刷新的情況,後來發現問題出在WINDOWS的WM_TIMER定時器上,由於該定時器消息優先級較低,可能造成WM_TIMER消息的丟失,所以不能實現數據庫的實時刷新。解決的方法是采用WINDOWS的多媒體定時器。在使用多媒體定時器的過程中,定時間隔的選取又是一個關鍵的問題,定時間隔選取太小,將會耗費大量的CPU內存,造成係統“死機”, 定時間隔選取太大,又不能完成“實時”顯示功能。這裏又涉及到PROFIBUS總線信息循環時間的問題,總線信息循環時間與總線傳輸的波特率、從站的數量、I/O數據的數量、從站需要的延遲時間以及主站的空閑時間等有關。作者通過了大量的計算和多次實驗調試,尋找到一個合適的定時器間隔。
2.5顯示界麵
該PROFIBUS-DP報文分析軟件的程序界麵包括主界麵、串口配置界麵、報文過濾界麵、報文查詢界麵、數據庫存儲界麵以及曆史查詢界麵等。
PROFIBUS-DP分析診斷軟件的運行主界麵如圖6,窗口左上部分“當前profibus報文”組框內存放最近采集到的PROFIBUS-DP報文信息,並可通過工具欄上的記錄移動按鈕滾動察看記錄;右上方“信息麵板”是用來顯示所有查看報文的詳細信息。窗口下半部分以網格形式顯示PROFIBUS-DP曆史信息。
若需要打開串口,開始接收PROFIBUS報文信息,則可選擇“命令”菜單下的“開始接收”項;若需停止接收PROFIBUS報文信息,則可選擇“命令”菜單下的“停止接收”項;若需要配置串口參數,則可選擇“命令”菜單下的“串口配置”項,此時將彈出“串口配置對話框”,若需清除當前所有記錄,可選擇“記錄”菜單下的“清除所有記錄項”命令,如果需要分類查看各種報文,可以選擇“查看”命令菜單下的“報文查詢”,此時將彈出“報文查詢對話框”,可根據需要進行報文分類查看。
圖6 軟件運行主界麵
3 結束語
該軟件經過作者在PROFIBUS網絡實驗係統上的反複運行調試,結果表明該軟件能夠實現對幾種PROFIBUS報文進行分析,能夠完成采集、顯示、分析、存儲和查詢等功能,為以後的研究開發奠定了基礎,同時具有一定的實用價值。
參考文獻
1. 中華人民共和國機械行業標準.測量和控製數字數據通信工業控製係統用現場總線類型3:PROFIBUS規範[M].北京,機械工業出版社,2006.
2. 王永華,Andy Verwer. 現場總線技術及應有教程[M]――從PROFIBUS到AS-i.北京:機械工業出版社,2006.
3. IEC. Digital data communications for measurment and control-Fieldbus for use in industrial control systems-Part 3: Data Link Layer service definition[M]. Third edition. 1999.10
4. IEC. Digital data communications for measurment and control-Fieldbus for use in industrial control systems-Part 4: Data Link Layer protocol specification[M]. Third edition. 1999.10
5. 陳幼平,周硯,陳冰等.基於CPLD的Profibus-DP報文接收器的設計[J].測控技術,2005,24(6).
6. 吳方餘,周勇.一種基於數據庫的串口數據采集保存方案[J].計算機與現代化,2005,10.
7. 龔建偉,雄光明.Visual C++/TurboC 串口通信編程實踐[M].電子工業出版社,2004.