精品视频一区二区观看,欧美一区二区视频三区,日韩一区二区三区不卡,欧美中文综合在线视频,欧美综合网亚洲综合网

      ? ? ? ?

      咨詢電話

      ENGLISH0755-88840386
      學習專題

      咨詢電話

      0755-88840386
      您的位置:首頁 > 學習專題 > 專業(yè)技術專題 > 工業(yè)自動化稱重儀表>詳情頁

      基于dsPIC30F的電子皮帶秤控制儀表的PROFIBUS-DP從站實現

      發(fā)布時間:2021-05-31 15:08:15 |來源:網絡轉載

      電子皮帶秤控制儀表是針對生產過程控制的實際需要而開發(fā)的一種低成本專用儀表[1]。該儀表采用dsPIC30F作為CPU;24位的模數轉換器AD7730采集壓力傳感器的模擬信號,并通過SPI口與dsPIC30F相連;皮帶的速度信號通過光電編碼器測量,并經QEI口輸入dsPIC30F;控制信號經電流型數模轉換器AD420輸出,控制變頻器,調節(jié)電機轉速。儀表中設有兩個獨立的通信接口,一個配置成RS232,用于與系統(tǒng)機相連,作為電子皮帶秤系統(tǒng)調試、參數設置和代碼下載的通道;另一個則配置成RS485。
      在電子皮帶秤安裝到現場使用后,由于生產線是采用SIEMENS的S7-300PLC控制的,希望皮帶秤能夠接受生產線控制主機發(fā)來的命令,同時也能將物料流量等數據發(fā)送到主機,因此要求電子皮帶秤控制儀表具備有PROFIBUS-DP的通信接口,成為PROFIBUS-DP從站。
      雖然PROFIBUS是一個開放的現場總線通信協議,任何人都可以獲得這個標準并設計各自的軟、硬件解決方案[2]。但該協議較為復雜,而且通信過程中對時間響應的要求較為嚴格,目前開發(fā)DP從站的解決方案大多采用專用的協議芯片,如SPC3等[3]來實現的。采用專用的協議芯片的解決方案是一種省時省力的解決方案,但要求在硬件上進行設計,將協議芯片直接與儀表控制CPU總線相連,需要占用較多的硬件資源。在所設計的電子皮帶秤控制儀表中,控制芯片的硬件資源基本被用完,除非重新設計,已不可能實現與專用的協議芯片的直接相連,采用專門的串口/PROFIBUS-DP轉換器又要增加成本。為此只能探索一種軟件解決方案,讓現有的電子皮帶秤控制儀表能成為PROFIBUS-DP從站,滿足生產線的控制需要。
      在許多文獻里都提到過利用單片機的UART口可以通過軟件來實現PROFIBUS-DP的數據鏈路層協議[2],但尚未見過實用的成功實例報告。筆者將在對PROFIBUS-DP進行協議分析的基礎上,充分利用dsPIC30F的UART功能,實現一種純軟件的PROFIBUS-DP從站解決方案,并成功地運用于電子皮帶秤控制儀表中。
      1PROFIBUS-DP協議分析①
      為了保證數據的高速傳輸,PROFIBUS只采用了物理層、數據鏈路層和用戶接口,并通過數據鏈路層FDL(FieldbusDataLink)來實現大部分的總線協議。這種精簡結構使得數據能高速、高效地傳輸,特別適應于PLC與現場I/O設備間的通信。PROFIBUS的物理層采用RS485雙絞線電纜或光纜,其中RS-485傳輸是PRIFIBUS總線中最常用的一種傳輸技術,它既適應于需高速傳輸的系統(tǒng),又適應于簡單、廉價,需快速鋪設的場合。通信波特率為9.6kbps~12.0Mbps。
      PRIFIBUS通常采用基于總線的主從結構,可以有多個主站。主站之間采用令牌環(huán)網,確保每個主站在一個確定的時間內得到總線存取權(令牌)。主站與從站之間采用主-從輪詢方式完成信息傳送。主站可以對從站進行賦值、配置、初始化和診斷。而從站一般是被動地等待主站的請求,并對主站的請求進行必要的響應。
      PROFIBUS的數據鏈路層幀協議是很復雜的,要采用軟件方式實現一個可以滿足各種配置需要、能通過PROFIBUS認證的通用站點是很困難的。而本項設計的目的是在自行設計的專用儀表上增設一個可以作為DP從站的PROFIBUS總線接口,讓專用儀表能和總線上的確定主站交換信息,實現生產線的聯動控制和數據采集。為此可以裁剪掉一些不必要的功能,保證專用儀表可以順利地接入PROFIBUS-DP總線,并可靠地與主站實現數據交換。為此根據專用儀表功能和所需要交換的數據,編輯一個該儀表的GSD文件,其中關鍵是設置好該設備的ID、適應波特率、從站響應時間和數據交換模塊。然后將該GSD文件安裝到PLC的主站中,讓主站可以正確識別該設備。
      在所設計的系統(tǒng)中,選用SIEMENS的S7-300PLC作為主站。在安裝了皮帶秤控制儀表的GSD文件后,通過實際測試和協議分析后,得到該系統(tǒng)的主-從通信過程大致可以分為:主站對從站的第1次診斷、參數化從站、組態(tài)配置從站、主站對從站的第2次診斷以及主站與從站之間的循環(huán)數據交換。
      為了便于以下說明,現將報文幀中的符號作簡要說明:SD為報文起始符,SD=0x68表示數據域長度可變的報文幀;LE為所有數據的長度;LEr為LE的重復;SDr為SD的重復;DA為傳輸的目的地址;SA為傳輸的源地址;FC為功能碼域;DSAP為目標服務點;SSAP為源服務點;DU為用戶數據域,最長為246字節(jié);FCS為所有數據的代數和;ED為報文幀的結束標志,固定為0x16。
      當控制儀表的GSD文件輸入到S7-300主站后,主站首先會定期發(fā)出診斷幀來判斷控制儀表從站是否在總線上,當主站地址為2,從站地址為11時。
      如果控制儀表從站已接到總線上,從站必須在確定時間內響應主站請求,即從站應發(fā)出一個診斷響應幀,其DU域應包含診斷信息數據。由于此時只是主站發(fā)出的第一個診斷,其目的是判斷從站是否在總線上,因此數據域只需包含6個字節(jié)的基本標準診斷信息,其中數據域的第1字節(jié)0x02表示該從站未準備好交換數據;第2字節(jié)0x05表示該從站必須重新設置參數;第4字節(jié)0xFF表示該從站未被任何主站控制或參數設置;第5、第6字節(jié)表示該從站的ID號為0x000B。
      在接到第一個診斷響應后,主站將發(fā)出一個參數賦值幀給從站,用于指定主站與從站的關系和從站的操作方式,主要包括從站被主站鎖定,參數可以被接收;Watchdog啟用;設定Watchdog時間;定義從站延遲響應時間和確認設備ID號等。
      從站收到參數賦值幀后,響應報文非常簡單,只需用一個字節(jié)來對主站的請求進行確認,即發(fā)一個確認報文SC=0xE5。
      參數賦值完成后,主站將發(fā)出一個組態(tài)請求報文給從站,其作用是對I/O的類型及性質進行設定。本例DU域中的0x11和0x21表示從站應該有兩個字節(jié)的輸入模塊和兩個字節(jié)的輸出模塊。
      從站收到組態(tài)請求幀后,也只需要發(fā)一個確認報文SC=0xE5即可。
      組態(tài)配置完成后,主站將再次發(fā)出診斷幀來判斷從站的初始化是否正確。
      收到第2次診斷幀后,從站應發(fā)出一個響應幀,報告自身的初始化狀態(tài)。此時數據域也只需包含6個字節(jié)的基本信息,第1字節(jié)0x00表示該從站已準備好交換數據;第2字節(jié)0x0C表示Watchdog啟用;第4字節(jié)0x02表示該從站的屬主主站地址為2。
      當各項初始化過程結束,且參數都正確,就可以啟動數據交換,主站與從站開始正常的周期性數據交換。首先主站向從站發(fā)出輸出數據。
      在收到主站數據后,從站需及時向主站發(fā)出輸入數據。
      至此將一直處于數據交換狀態(tài),實現了主站與從站之間的通信。
      2UART的通信實現與波特率自適應
      微芯公司的dsPIC30F是一款16位的數字信號控制器,具有單片機的控制功能和數字信號處理器的計算能力和數據吞吐量。dsPIC30F有兩個獨立的UART口,在電子皮帶秤控制儀表中,UART2被配置為RS232,用于與系統(tǒng)機相連,而UART1則配置成RS485。PROFIBUS-DP從站就是采用這個口RS485來實現的。
      UART由波特率發(fā)生器(BRG)、異步發(fā)送器和異步接收器組成。UxBRG寄存器控制一個自由運行的16位定時器的周期。其計算波特率的公式為:
      式中:FCY---系統(tǒng)時鐘。當UxBRG=0時,UART可以獲得最高的波特率為FCY/16。
      由于dsPIC30F容許的最高系統(tǒng)時鐘為30MHz,為了使其UART產生的波特率與PROFI-BUS-DP對應,控制儀表的系統(tǒng)時鐘選擇為24MHz。這樣,UART可產生的最高波特率為1.5Mbps,也就是說可能實現的PROFIBUS-DP的最高波特率僅能達到1.5Mbps。這個波特率雖然低了一些,但足以滿足PLC控制生產線的PROFIBUS總線組網要求。
      PROFIBUS-DP總線系統(tǒng)中,總線的傳輸速率是根據實際應用的需要,由主站來設定的。為了實現設備的復位和重組,要求從站能主動匹配事先定義的總線的傳輸速率,一旦通信速率發(fā)生變化,還能主動調整到新的傳輸速率,也就是說從站應具有波特率自適應能力。
      在dsPIC30F芯片上擁有一個具備自動波特率檢測能力的UART外設,UART接收引腳(RX引腳)上的信號能在內部傳送至一個輸入捕捉模塊,從而獲得輸入信號邊沿的時序,應用程序可根據此時序計算出UxBRG寄存器的值,實現波特率自適應。但這種自動檢測的方法取決于接收到的數據,通常要求主站首先發(fā)送一個同步字符,如0x55。然而本系統(tǒng)的主站是確定的PLC,主站只能按現場總線傳輸協議傳送相關報文幀,不可能加入所要求的同步字符,很難保證波特率計算的精度,經測試表明,該方法無法完成PROFIBUS-DP的波特率自適應,實現穩(wěn)定通信。
      好在PROFIBUS-DP協議只支持9.6~12.0Mbps的10級固定的波特率,總線傳輸信號可能的工作頻率已知且穩(wěn)定。因此,可以采用窮舉法,在從站啟動通信程序后,逐個嘗試以不同的波特率接收主站發(fā)出的字符,直到能成功接收為止。在所設計的系統(tǒng)中,考慮到主站只可能有45.45、93.75、187.5、500、1.5*103Mbps5個波特率,所對應的從站的UxBRG值分別為32、15、7、2、0。以收到一個完整的幀為標準,在從站初始化時自動進入波特率搜尋狀態(tài),逐個輪詢UxBRG的值來實現波特率自適應。這種方法簡單,容易實現,并且系統(tǒng)工作穩(wěn)定。
      PROFIBUS-DP總線在數據交換過程中,有嚴格的報文幀的結構和相應的時序關系,如果時序稍有差錯,交換就會終止[5,6]。在主站發(fā)送每一報文幀前,需加入一段總線休息的同步時間TSYN,其值固定為33Tbit(Tbit表示傳輸一個數據位占用的時間,為傳輸速率的倒數)。在從站接收到主站請求后并非立即響應,而是需要一定的時間間隔,這個時間間隔定義為TSDR,PROFIBUS規(guī)定此值的下限為11Tbit,上下限為60~800Tbit。主站在接收到響應報文幀后,要等待TIDI才能發(fā)送下一幀,TIDI固定為75Tbit。此外,在通信的主站一側還定義了參數TSL,它表示從主站發(fā)出請求幀的最后一個bit到收到響應幀的第一個bit之間的時間間隔,反映了一個系統(tǒng)的實時性好壞。如果實際時間超過TSL后,主站還未收到從站的響應,就認為系統(tǒng)出錯,需做出相應的處理。
      在設計一個從站時,務必注意滿足TSDR和TSL這兩條件,使從站的反應時間不能過快也不能太慢,以符合總線時序關系。在從站接收到一個主站請求幀后都必須做一些必要的處理,這些處理所花費的CPU時間通常都能達到TSDR的下限要求,如果不能滿足(如波特率太低,而CPU運行速度太快)可適當加入一點延時,以保證時序關系。為了保證整個系統(tǒng)的實時性,TSDR的上限和TSL都不能定義得太長,因此要求從站能對主站的請求及時做出響應。為此在從站控制器編程中采用了兩項技術:一是充分利用了dsPIC30F的UART接收寄存器和發(fā)送寄存器的四級緩存,保證收入數據的及時接收和輸出數據的連續(xù)發(fā)送;二是為了避免被控制器其它任務的打擾,影響響應時間,在從站收到主站請求幀的最后一個字節(jié)時,直接在接收中斷中解析該請求幀,并準備好響應數據,開啟發(fā)送中斷。這兩項技術是通過多次摸索后,確保實現與主站穩(wěn)定通信的關鍵。
      3聯網測試
      為了驗證所設計電子皮帶秤控制儀表作為PROFIBUS-DP從站的性能,采用西門子公司的S7-300作為主站,并采用STEP7來配置相應的PROFIBUS-DP實驗網絡[3]。首先在SIMATICMANAGER下建立一個PROFIBUS-DP項目;然后將S7-300插入總線中作為主站,并將主站地址設置為2;在配置好通信傳輸速率(如1.5Mbps)后,就可以得到一個以S7-300為主站的PROFIBUS-DP總線。在硬件配置下添加自行編輯的GSD文件后,可以在PROFIBUS-DP站點目錄中找到電子皮帶秤控制儀表DP從站,將其添加到PROFIBUS-DP總線上并設置其地址為11,就完成了整個實驗網絡的組態(tài)。在將組態(tài)代碼下載到S7-300模塊后,用雙絞線將該模塊的PROFIBUS-DP接口與電子皮帶秤控制儀表的RS485接口相連,就構成了測試平臺。
      在組網結束后,分別給PLC、電子稱上電,將PLC模式開關選擇RUN狀態(tài),PLC的RUN(綠色)指示燈閃爍幾次后停止閃爍,處于綠色點亮狀態(tài)。指示燈SF(紅色)、BATF(紅色)、FRCE(黃色)、STOP(停止)閃爍幾次后,處于熄滅狀態(tài)。此種狀態(tài)一直持續(xù)下去,說明通信在正常運行。更換其它波特率,PLC指示燈的狀態(tài)與以上情況相同,也說明通信正常。
      在PROFIBUS-DP聯通后,就可以實現上位PLC與下位電子皮帶秤控制儀表的數據交換。根據在GSD文件中規(guī)定好的數據交換格式,PLC送給電子秤的信號為PIW310~PIW339,共30個字節(jié)。電子秤送到PLC的信號單元為PQW300~PQW329共30個字節(jié)。經觀察,在各種波特率下,上下位機之間均能實現正常的數據交換,基本達到了生產過程控制的需求。
      4結束語
      PROFIBUS-DP現場總線是一種較為復雜的通信協議,而且有嚴格的時序要求。要開發(fā)符合標準的通用DP從站站點,可采用專用的協議芯片來實現,但這種解決方案需要占用較多的控制器硬件資源。在控制器硬件資源不夠時,還有一種解決方案就是采用串口/PROFIBUS-DP轉換器,不過這種方式不僅增加了控制器成本,而且還需開發(fā)與轉換器相連的串口程序。
      如果控制器的CPU芯片具有較高的性能,如16位以上的芯片;并且具有足夠高的系統(tǒng)時鐘,能產生1.5MHz以上的串口波特率;串口的收發(fā)裝置都具有相應的緩存,能滿足數據交換過程中的時序要求,則可以采用軟件方式來實現一個滿足一般工業(yè)控制要求的DP從站站點。只要對通信過程中的時序進行嚴格控制,完全可以實現從站與主站間的數據交換,滿足PROFIBUS-DP總線的實時性要求。這是一種經濟實用的解決方案,對開發(fā)自主的PROFIBUS-DP總線儀表有一定指導意義。

       

      本文源于網絡轉載,如有侵權,請聯系刪除

      分享到