黃月明
摘 要:本文以自動溫控鼓風機為例,介紹了觸摸屏與單片機控制系統組成人機交換界面。重點講述了基于MODBUS RTU協議的觸摸屏與單片機的通信方法,并講述應用程序設計方法,提供了通用的軟件硬件設計方法。目前該系統已通過實踐證明可以可靠穩定地運行。
關鍵詞:觸摸屏;單片機控制系統;MODBUS協議
中圖分類號:TP393 文獻標識碼:A
自動控制系統經常需要觀察運行狀態或輸入輸出相關的參數,觸摸屏能直觀生動地顯示運行參數和狀態,具有良好的人機交互性。單片機廣泛應用于工業控制中,與觸摸屏配合使用可以構成良好的人機交互界面。但現有工控觸摸屏都只支持與PLC的接口通信,沒有支持與單片機的接口通信的工控觸摸屏,故給單片機和工控觸摸屏組成控制系統帶來了很大的障礙。本文以自動溫控鼓風機項目為例,以MODBUS協議為載體,搭建單片機與工控觸摸屏通信的通用平臺。
一、MODBUS通信協議介紹
1. MODBUS協議簡述
Modbus協議是廣泛應用于電子控制器上開放性通用語言。MODBUS協議在一根通信線上使用主從應答式連接,在一根單獨的通信線上信號沿著相反的兩個方向傳輸。首先,主計算機的信號尋址到一臺唯一的終端設備,然后,終端設備發出的應答信號以相反的方向傳輸給主機。MODBUS協議只允許在主機和終端設備之間通信,而不允許獨立的終端設備之間的數據交換,這樣終端設備不會在它們初始化時占據通信線路,而僅限于響應到達本機的查詢信號。
2.查詢
查詢消息中的功能代碼告之被選中的從設備要執行何種功能。例如功能代碼03是要求從設備讀保持寄存器并返回它們的內容。數據段必須包含要告之從設備的信息:從何寄存器開始讀及要讀的寄存器數量及錯誤檢測。
3.回應
如果從設備產生正常的回應,在回應消息中的功能代碼是在查詢消息中的功能代碼的回應。數據段包括了從設備收集的數據:如寄存器值或狀態。如有錯誤,功能代碼將被修改以用于指出回應消息是錯誤的,同時數據段包含了描述此錯誤信息的代碼。
4.傳輸方式
傳輸方式是指一個數據幀內一系列獨立的數據結構以及用于傳輸數據的有限規則,下面定義了與MODBUS協議–RTU方式相兼容的傳輸方式。
每個字節的位:
·1個起始位 ·8個數據位,最小的有效位先發送
·無奇偶校驗位 ·1個停止位
錯誤檢測(Error checking):CRC(循環冗余校驗)
Modbus消息幀的組成
錯誤校驗(CRC)域占用兩個字節,包含了一個16位的二進制值。正常的通信過程中由于涉及了CRC校驗問題,而這個校驗過程是需要占用軟件時間的,它將影響終端的應答速度。本設計采用了查表法計算CRC,速度非常快,能夠滿足高速通信的需要。
5.觸摸屏系統的設定
本系統觸摸屏采用Easy Builder Pro組態軟件實現人機界面的設計,單片機作為從機,觸摸屏作為主機。觸摸屏設置為:PLC類型為MODBUS_RTU Server,通信口類型設置為RS-232,站號為0,將波特率9600bit/s,數據位個數8,校驗位0,停止1位。
二、系統構成
系統以自動溫控鼓風機項目為例,用觸摸屏與單片機控制系統組成人機交換界面。通過MODBUS RTU協議實現觸摸屏與單片機系統的通信,使用觸摸屏作為單片機系統的輸入輸出設備,實現在觸摸屏上控制單片機系統并可以隨意修改系統運行參數,在實踐中取得非常令人滿意的效果。
三、實例分析
1.系統介紹
以自動溫控鼓風機項目為例,以單片機為控制核心,以工控觸摸屏作為輸入輸出設備,以八路開關及鼓風機電機作為控制對象組成自動溫控鼓風機。功能主要為:(1)通過觸摸屏控制八路獨立開關。(2)系統溫度由單總線數字溫度傳感器DS18B20讀取,并經觸摸屏顯示。(3)可以在觸摸屏上設定鼓風機工作的溫度,當系統溫度高于設定溫度時鼓風機自動開始工作,當溫度低于設定溫度10C時,鼓風機自動停止工作,以實現溫度自動控制。實踐證明,本系統運行穩定,取得非常好的應用效果。
2.工控觸摸屏的介紹
采用威綸通MT8000系列工控觸摸屏設計,威綸通MT8000工控觸摸屏支持通用、臺達、西門子、歐姆龍、三菱、富士等多種PLC及MODBUS協議,具有較強的通用性和擴展性。
3.單片機系統的介紹
系統采用IAP15W1K29S系列51單片機,是性能強大的51單片機,設計中單片機作為下位機完成數據采集和基本數據處理及控制功能,觸摸屏作為主機完成數據顯示與參數設定以及報警功能。采用RS-232通信方式,此接口電路可以實現RS-232在各種波特率下的穩定通信功能。
4.通用平臺介紹
為了提高程序的通用性、擴展性、和可移植性,通過指針與數組在單片機內部寄存器與觸摸屏軟元件之間建立對應的映射關系。以方便日后對系統進行改造與升級,同時也大大加強本系統的可移植性。
4.1 有關數據宏定義
本系統通信程序所使用數據量較大,而且數據之問關系較為復雜,為了能夠方便讀懂數據之間的聯系,采用較多的宏定義,主要包括以下內容:功能碼宏定義。由于MODBUS協議功能碼有幾十種,在本系統只定義最常用的幾功能碼如:01、05、03、06其他則不列出。
(1)通信數據排列意義宏定義。
(2)各種功能指令對應數據長度宏定義。
(3)CRC校驗查表數據定義。
4.2 系統初始化
本系統程序由多個子程序構成,每個子程序完成不同的功能,主要由兩大類組成,通信子程序及功能子程序,不同的子程序完成不同的功能。
(1)串口通信中斷子程序如下:
本系統由于功能子程序較多,故在通信中斷程序中只實現數據的收發,其他功能都在功能程序中實現,以提高效率。
(2)功能子程序
MODBUS協議支持的功能碼有以下幾種,本系統所取用威綸通MT8000系列觸摸屏支持功能碼及對應元件讀寫列表如下:
地址類型:0X、4X、4X-BIT、5X、6X(讀/寫);1X、3X、3X-BIT(只讀)。
功能碼:01/05輸入位寄存器、02輸出位寄存器、04輸入寄存器(字)、03/16輸出寄存器(字)。
對MODBUS RTU設備進行讀寫,觸摸屏上的元件中使用什么樣的地址類型,取決于RTU設備所支持的功能碼、目標對象是位地址還是字地址控制、以及是否要進行寫入。如:功能碼05:強制(寫)單線圈(輸出)狀態強制(寫)一個邏輯線圈通斷狀態(ON/OFF)。
結語
系統用單片機通過Modbus協議實現與觸摸屏通信實現自動溫控鼓風機控制,當波特率達到115200bit/s時本系統通信仍然穩定可靠。本系統連接電路簡單、組態靈活、通信可靠性高等特點。降低了系統設計成本,并提高了設備的通用性。觸摸屏可實時顯示系統動行中所需要的信息,通過觸摸屏界面可以方便地進行各種工作狀態設置,目前該系統已通過用戶的驗收并投入使用。由于Modbus協議的開放性,國內外的串行通信控制器絕大部份都支持該協議,因此通過Modbus協議實現通信控制有非常廣泛的應用價值。
參考文獻
[1]潘永雄.單片機原理與應用[M].北京:電子工業出版社,2005.
[2]何立文.單片機應用技術選編8[M].北京:航空航天大學出社,2000:200-230.
[3] Easy Builder使用手冊2014.[Z].