<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于PROFIBUS-DPFCS診斷軟件

基于PROFIBUS-DPFCS診斷軟件

作者: 時(shí)間:2010-07-01 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.4關(guān)鍵技術(shù)

  該主要是實(shí)現對PROFIBUS報文進(jìn)行提取,實(shí)現在線(xiàn)采集PROFIBUS-DP報文數據,從數據鏈路層角度對各種報文進(jìn)行分析,完成各種類(lèi)型報文的顯示,完成對報文種類(lèi)、服務(wù)類(lèi)型、地址、數據長(cháng)度及數據單元等信息的提取顯示,并對診斷報文、參數化報文及組態(tài)報文等的數據單元進(jìn)行詳細的分析,得出總線(xiàn)性能的各種參數及故障原因,將分析過(guò)的數據存儲進(jìn)數據庫,存入臨時(shí)緩沖區,根據需要將分析過(guò)的報文信息存入數據庫,實(shí)現歷史查詢(xún)。

  如何實(shí)現報文幀的提取是本設計的一個(gè)關(guān)鍵問(wèn)題。由于PROFIBUS報文格式有很多種,而且包括數據長(cháng)度不固定的可變報文。雖然各種報文都具有固定的報頭、報尾,但是存在的問(wèn)題是報頭報尾并不是特定的字符,有可能和報文中數據單元內容一樣,所以這里利用報頭報尾進(jìn)行報文的提取是不可行的。作者在這里利用各種報文幀前的同步字符進(jìn)行報文提取,也就是說(shuō),在每個(gè)完整報文幀傳輸之前,其前面都有一個(gè)不小于33bit的同步時(shí)間,在報文幀中間是沒(méi)有任何間隔的,利用這一同步時(shí)間,在VC++中利用超時(shí)函數,對報文幀進(jìn)行了完整地提取。

  另外,由于通信數據量很大,速度較快,這里采用了WINDOWS多線(xiàn)程技術(shù)。一個(gè)線(xiàn)程為監視線(xiàn)程,監視串口通訊,一個(gè)為數據處理主線(xiàn)程,另外一個(gè)為定時(shí)刷新數據庫線(xiàn)程。當監視線(xiàn)程監視到串口中有數據到達時(shí),就觸發(fā)一個(gè)消息通知數據處理主線(xiàn)程,數據處理主線(xiàn)程就去串口緩沖區中取出數據,并進(jìn)行數據處理。定時(shí)器線(xiàn)程定時(shí)刷新數據庫顯示,以實(shí)現實(shí)時(shí)顯示功能。

  作者在程序編寫(xiě)的過(guò)程中,出現數據庫不能實(shí)時(shí)刷新的情況,后來(lái)發(fā)現問(wèn)題出在WINDOWS的WM_TIMER定時(shí)器上,由于該定時(shí)器消息優(yōu)先級較低,可能造成WM_TIMER消息的丟失,所以不能實(shí)現數據庫的實(shí)時(shí)刷新。解決的方法是采用WINDOWS的多媒體定時(shí)器。在使用多媒體定時(shí)器的過(guò)程中,定時(shí)間隔的選取又是一個(gè)關(guān)鍵的問(wèn)題,定時(shí)間隔選取太小,將會(huì )耗費大量的CPU內存,造成系統“死機”, 定時(shí)間隔選取太大,又不能完成“實(shí)時(shí)”顯示功能。這里又涉及到PROFIBUS總線(xiàn)信息循環(huán)時(shí)間的問(wèn)題,總線(xiàn)信息循環(huán)時(shí)間與總線(xiàn)傳輸的波特率、從站的數量、I/O數據的數量、從站需要的延遲時(shí)間以及主站的空閑時(shí)間等有關(guān)。作者通過(guò)了大量的計算和多次實(shí)驗調試,尋找到一個(gè)合適的定時(shí)器間隔。

  2.5顯示界面

  該PROFIBUS-DP報文分析的程序界面包括主界面、串口配置界面、報文過(guò)濾界面、報文查詢(xún)界面、數據庫存儲界面以及歷史查詢(xún)界面等。

  PROFIBUS-DP分析診斷軟件的運行主界面如圖6,窗口左上部分“當前profibus報文”組框內存放最近采集到的PROFIBUS- DP報文信息,并可通過(guò)工具欄上的記錄移動(dòng)按鈕滾動(dòng)察看記錄;右上方“信息面板”是用來(lái)顯示所有查看報文的詳細信息。窗口下半部分以網(wǎng)格形式顯示 PROFIBUS-DP歷史信息。

  若需要打開(kāi)串口,開(kāi)始接收PROFIBUS報文信息,則可選擇“命令”菜單下的“開(kāi)始接收”項;若需停止接收PROFIBUS報文信息,則可選擇“命令”菜單下的“停止接收”項;若需要配置串口參數,則可選擇“命令”菜單下的“串口配置”項,此時(shí)將彈出“串口配置對話(huà)框”,若需清除當前所有記錄,可選擇“記錄”菜單下的“清除所有記錄項”命令,如果需要分類(lèi)查看各種報文,可以選擇“查看”命令菜單下的“報文查詢(xún)”,此時(shí)將彈出“報文查詢(xún)對話(huà)框”,可根據需要進(jìn)行報文分類(lèi)查看。

軟件運行主界面

圖6 軟件運行主界面

  該軟件經(jīng)過(guò)作者在PROFIBUS網(wǎng)絡(luò )實(shí)驗系統上的反復運行調試,結果表明該軟件能夠實(shí)現對幾種PROFIBUS報文進(jìn)行分析,能夠完成采集、顯示、分析、存儲和查詢(xún)等功能,為以后的研究開(kāi)發(fā)奠定了基礎,同時(shí)具有一定的實(shí)用價(jià)值。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: PROFIBUS-DPFCS 軟件

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>