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