針對目前市場上無DSP和觸摸屏直接通信的產品這一缺口,介紹了基于MODBUS協議的維控觸摸屏與TMS320F2812的串口通信系統。通過將DSP的SCI串口和觸摸屏的串口連接,完成DSP的軟件編程和觸摸屏的組態畫面設計。經過實驗調試,該系統能夠實現工作人員不同權限登錄密碼設置,實時數據、故障報警的顯示,閉環PID參數的在線修改等功能,且系統能夠穩定的運行。 在現代工業控制中,最常用的人機接口界面依然采用的是鍵盤和液晶相結合的方式,要讓觸摸屏取代以前的人機接口界面,還存在一定的問題。在實際應用中,觸摸屏一般是針對可編程控制器PLC 設計的,所以DSP 與觸摸屏不能直接通信,必須根據觸摸屏的通信協議開發相應的通信程序。本文研究基于MODBUS 協議的觸摸屏和DSP 的通信方法,其中DSP 使用TI公司的TMS320F2812,觸摸屏使用維控科技的LEVI700L。 1 DSP 與觸摸屏的硬件電路連接 TI 公司的TMS320F2812 芯片有兩組SCI 模塊,SCIA 和SCIB。根據不同的需要,可以將這兩個串口分別設計轉換成RS232 和RS485。本文采用RS485 實現DSP 和觸摸屏的串行通信,RS485 通訊相對于RS232 通訊來說有抗電氣干擾和傳輸距離遠的優點,所以在工業控制現場,利用RS485 串口和觸摸屏LEVI700L 進行通信。如圖1 所示是將SCIB 口通過MAX3485 芯片設計成半雙工方式的RS485 接口,即數據可以在兩個方向傳輸,可是不能同時傳輸。圖中RE、DE 引腳為發送和接受使能端。DSP 通過將引腳PWM2(A1)口設置成通用數字I/O 口來控制使能端為1 或0,即接收或發送。A、B 引腳通過靜電保護芯片PSM712 連接到RS485 的接收端RS485A 和發送端RS485B。圖中D1 和D3 發光二極管是為了監測DSP 正在接受或者發送數據。 觸摸屏LEVI700L 帶有一個DB9 串口, 支持RS232/RS485/RS422,其中2、3、5 用于RS232 通信,1、6 用于RS485通信。本設計中DSP 和觸摸屏的通信采用RS485,因此,只需將圖1 中的RS485A 和觸摸屏DB9 口的1 引腳連接,RS485B 與6 引腳連接即可。 圖1 RS485 串口通信電路設計 2 基于MODBUS 協議的通信程序設計 2.1 MODBUS 協議的主從編程方法 觸摸屏和DSP 按照MODBUS 協議通信,將觸摸屏作為主站,DSP 作為從站,串口連接采用RS485。觸摸屏和DSP 的通信是有觸摸屏發起的,DSP 采用中斷方式響應觸摸屏發送來的數據,非通信情況下DSP 可以做其它更多的工作。當觸摸屏有數據發送給DSP 時,觸發DSP 接收中斷,DSP 進入接收中斷服務子程序,此時,觸摸屏發送給DSP 的是一個完整的數據幀,至少包含8 個字節的數據長度, 在完整讀取這組數據后,DSP 對其進行處理。首先進行從設備站號匹配(本文中DSP 站號設為07),如果匹配不成功則DSP 不響應觸摸屏的查詢,DSP 不回送任何信息;如果匹配成功則進行CRC 校驗,若CRC 校驗出錯,則查詢失敗,不返回數據信息;若CRC 校驗正確,則進行下一步的命令解析,并返回給觸摸屏對應的數據信息。 下面簡要介紹如何從DSP 中讀取幾個模擬量并顯示在觸摸屏上,讀可讀寫模擬量寄存器的功能碼是03。 觸摸屏發送的命令為:[設備地址] [功能碼03] [起始寄存器地址高8 位] [低8 位] [讀取的寄存器數高8 位] [低8 位][CRC 校驗的低8 位] [CRC 校驗的高8 位] 。 例如:07 03 00 03 00 02 34 6D。此命令說明要從DSP的起始地址為00 03 的寄存器中讀取兩個模擬量。 此時,若設備地址匹配且CRC 校驗正確,則DSP 會返回數據給觸摸屏。 DSP 返回的數據為:[設備地址] [功能碼03] [返回的字節個數][數據1][數據2]…[數據n][CRC 校驗的低8 位] [CRC 校驗的高8 位]。 例如響應上面的命令返回的數據為:07 03 04 00 10 0020 9C 2E。說明返回的模擬量為16 和32。 2.2 觸摸屏介紹及組態畫面的設計 觸摸屏LEVI700L 是維控科技生產的7 英寸真彩TFT,主板規格:RISC CPU 400MHz,128M Flash,64DDRAM。擁有一個DB9 串口,支持RS232/RS485/RS422 通信,另外包括一個USB Host 和一個USB Slave。 觸摸屏LEVI700L 配套的組態軟件為LEVI Studio,用戶界面友好,易于操作,支持離線和在線模擬。本文以觸摸屏在大功率晶閘管整流控制器中的應用為例,說明觸摸屏的畫面設計。主要有主界面、實時曲線查看整定畫面、參數調節畫面、工作模式查詢畫面,圖2 給出主界面和實時曲線查詢畫面。可通過通訊口配置設置觸摸屏和DSP 以及其他控制器進行連接,同時可選擇相應的通信協議,本設計中采用Modbus 協議,串口參數設置為波特率:38400Kbps,停止位:1 位,數據位:8 位,無校驗。另外還需要配置各個部件的地址。如圖2 中反饋電壓和電流的查看是個數字輸入/顯示部件,根據MODBUS 協議要對其讀取地址進行編輯,使用功能碼3 對其讀數據。從上節中觸摸屏發送數據的命令格式可知,需要設置DSP 的站號和寄存器的類型以及起始地址。 圖2 觸摸屏畫面設計 2.3 從站DSP 程序設計 若要觸摸屏和DSP 通信成功,在DSP 的串口初始化時就需要將串口參數設置的和觸摸屏一致, 即波特率:38400Kbps,停止位:1 位,數據位:8位,無校驗。一旦二者通信成功,觸摸屏會根據部件設置向DSP 發送相應的數據命令, 如上節圖2中的反饋電壓和電流,觸摸屏上需要顯示從DSP中讀出的數據,就會發送命令:07 03 00 03 0002 34 6D。DSP 接收到命令數據后的處理過程如圖3 所示。 圖3 數據通信流程圖 從圖3 可以看出,DSP 的程序設計主要包括初始化,接收和發送中斷子程序,MODBUS 幀解析、處理及回應子程序,CRC 碼驗證子程序。其中接收和發送中斷子程序的流程圖如圖4 所示。 圖4 接收和發送中斷子程序流程圖 3 試驗調試 DSP 和觸摸屏的通信接口調試分步驟進行,包括:觸摸屏串口測試、通信軟件的調試以及觸摸屏和DSP 通信的試驗和調試。 1)觸摸屏串口測試:首先在LEVI Studio 組態軟件中編寫畫面程序并且利用數據下載線將其下載到觸摸屏中,然后利用串口調試線將觸摸屏和PC 機連接起來,通過串口調試工具可以查看到觸摸屏不斷向串口發送命令, 同時串口調試工具也可以編寫正確的返回數據給觸摸屏。此時需要注意的是必須將觸摸屏的串口參數和串口調試工具的串口參數設置的一致才能通信成功。 2)通信軟件的調試:利用串口線將DSP 電路板和PC 機連接,在CCS 中編寫好C 語言程序后,利用仿真器和串口調試工具對主程序,數據接收和發送中斷子程序,MODBUS 幀解析、處理及回應子程序,CRC 碼驗證子程序進行仿真調試。 3)觸摸屏和DSP 通信試驗和調試:通過上述兩個部分的調試后,按照圖1 所示的硬件連接線路將DSP 和觸摸屏連接起來。在此之前,需要將調試好的組態畫面程序下載到觸摸屏中,C 語言程序固話到DSP 的Flash 中。最后,若通信成功,可從觸摸屏中看到相關數據,如圖5 所示a 為實時曲線圖,b 為PID 參數調節圖,其中給定電壓、電流,PID 參數可以在線修改,c 為權限設置界面,不同的工作人員權限不一致,在修改某些參數時需要輸入密碼。 圖5 實驗結果圖 4 結束語 本文設計了基于MODBUS 協議的觸摸屏和DSP 串行通信的硬件電路和軟件程序,經過試驗調試說明該系統通信穩定可靠,速率可達38400Kbps,實時性強。以大功率晶閘管整流控制器的應用為例,得出了相關的實驗數據,說明本文設計的系統滿足工業控制監測顯示需要,同時由于觸摸屏在人機界面領域的顯著優勢, 本文提出的設計思路也可應用于其他工業控制器的人機接口通信。 |