周明 王振 馬睿
摘要:在組態(tài)屏上添加按鍵,通過Modbus網(wǎng)絡(luò)上RTU模式通信讀取和修改STM32單片機(jī)LED燈的狀態(tài),ModbusRTU模式把命令傳給STM32單片機(jī),STM32單片機(jī)收到命令改變狀態(tài)并做出相應(yīng)的回復(fù),最終實(shí)現(xiàn)按鍵控制STM32單片機(jī)LED燈的狀態(tài)。
關(guān)鍵詞:STM32單片機(jī);組態(tài)屏;Modbus協(xié)議
中圖分類號:TP3? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)26-0207-02
Abstract: Add keys to the configuration screen, read and modify the status of STM32 single chip LED light through RTU mode communication on Modbus network, Modbus RTU mode transmits the command to STM32 single chip, STM32 single chip receives the command to change the status and make the corresponding response, and finally realize the key control of STM32 single chip LED light status.
Key words: STM32 single chip computer;configuration screen;Modbus protocol
1背景
隨著工業(yè)IT技術(shù)的不斷發(fā)展,工業(yè)自動化軟件成為未來發(fā)展趨勢,組態(tài)軟件作為新生事物仍處在高速發(fā)展時期,而STM32單片機(jī)應(yīng)用廣泛,種類豐富,支持各大嵌入式操作系統(tǒng),實(shí)現(xiàn)組態(tài)屏與STM32單片機(jī)的通信,可以開發(fā)很多新的功能,應(yīng)用于各大領(lǐng)域。
2總體設(shè)計(jì)分析
實(shí)現(xiàn)STM32單片機(jī)與組態(tài)屏通訊,第一步選定STM32單片機(jī)和組態(tài)屏的型號,第二步確定STM32單片機(jī)和組態(tài)屏都適用的通信協(xié)議,第三步是軟件部分組態(tài)屏的模擬和程序的編寫,第四步是硬件的連接和調(diào)試,達(dá)到最終效果。
3元器件選型
(1)STM32單片機(jī):是一種微型控制器,這是一款性價比超高的系列單片機(jī),最高工作頻率72MHz,片上集成32-512KB的Flash存儲器,6-64KB的SRAM存儲器。它是用STM32F103C8T6開發(fā)板,48PIN、64KB FLASH、20KB RAM。
(2)組態(tài)屏:組態(tài)軟件是數(shù)據(jù)采集與過程控制的專用軟件,使用靈活的組態(tài)方式,讓用戶快速構(gòu)建工業(yè)自動控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。選用模擬型號為MT5320C的組態(tài)屏。
(3)Modbus協(xié)議:是應(yīng)用于電子控制器上的一種通用語言,它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。通過這個協(xié)議,控制器和控制器之間,或控制器經(jīng)由網(wǎng)絡(luò)和其他設(shè)備之前可以實(shí)現(xiàn)通信Modbus通信通用的格式是地址碼、功能碼、數(shù)據(jù)區(qū)、錯誤校驗(yàn)碼,Modbus網(wǎng)絡(luò)有ASCII模式和RTU模式兩種傳輸模式。在Modbus網(wǎng)絡(luò)上選擇RTU模式通信,在消息中的每8Bit字節(jié)包含兩個4Bit的十六進(jìn)制字符。這種模式與ASCII模式相比主要優(yōu)點(diǎn)是在相同的波特率下可以傳送更多的數(shù)據(jù)。
4軟件模擬設(shè)計(jì)部分
組態(tài)屏設(shè)計(jì)流程:組態(tài)軟件最大的優(yōu)點(diǎn)就是使用便捷,先制作一個開關(guān)控制元件的工程,其他元件的制作方法與這個基本上類似,組態(tài)軟件也有很多,這里用的是KincoHMIware 2.5軟件。
4.1組態(tài)軟件操作步驟
(1)首先創(chuàng)建一個新的工程。
(2)接下來選擇所需的組態(tài)屏型號,用的型號是MT5320C,將它拖入工程結(jié)構(gòu)窗口,放開鼠標(biāo)。
(3)選擇需要連接的PLC類型,選用的是Modbus RTU。
(4)選擇通訊連接方式,選用串口通訊,用鼠標(biāo)移動HMI和PLC的位置,將連接端口靠近連接線的一段就可以順利地讓它們連起來,然后將COM0與COM0連接起來。
(5)雙擊MT5320C組態(tài)屏圖標(biāo),會彈出屬性框,因?yàn)榇谕ㄓ嵤沁B接的COM0店口,所以切換到【串口0設(shè)置】修改串口0的參數(shù)。
通訊類型:RS232 波特率:9600 數(shù)據(jù)位:8奇偶校驗(yàn):無校驗(yàn) 停止位:1。
(6)雙擊工程結(jié)構(gòu)窗口HMI0字樣,進(jìn)入添加所需按鍵。添加的是位狀態(tài)切換開關(guān),將它拖入工程結(jié)構(gòu)窗口,放開鼠標(biāo),會彈出屬性設(shè)置框,【基本屬性】設(shè)置地址類型為0X,地址為1。切換到【位狀態(tài)切換開關(guān)】設(shè)置開關(guān)類型為切換開關(guān)。切換到【標(biāo)簽】,勾選使用標(biāo)簽,將0的標(biāo)簽內(nèi)容設(shè)為ON,1的標(biāo)簽內(nèi)容設(shè)為OFF,以此對燈的狀態(tài)進(jìn)行控制。
(7)設(shè)置完成后點(diǎn)擊【全部編譯】圖標(biāo)對工程進(jìn)行編譯,最后點(diǎn)擊【直接在線模擬】圖標(biāo),在彈出窗口中設(shè)置PC模擬端口后,點(diǎn)擊【模擬】就可以進(jìn)行組態(tài)屏按鍵調(diào)試。
4.2代碼流程
4.2.1串口助手調(diào)試
將兩個USB串口轉(zhuǎn)換器連接插在電腦上,通過串口助手軟件檢驗(yàn)組態(tài)屏能否正常通信,并獲得按鍵發(fā)出的01碼和05碼,以便接下來的編程使用。注意用串口助手軟件測試時,通訊類型要與串口0的設(shè)置相同。
4.2.2使用keil5軟件進(jìn)行編程,這里運(yùn)用C語言來編寫程序
程序的設(shè)計(jì)流程是:檢驗(yàn)到串口接收到數(shù)據(jù)并檢驗(yàn)到數(shù)據(jù)的結(jié)束;計(jì)算CRC并與接受的CRC域值比較,如果兩值相同則說明數(shù)據(jù)無誤;識別接收數(shù)據(jù)的功能碼;如果是05功能碼,則再識別這組數(shù)據(jù)的數(shù)據(jù)區(qū),是0x00就打開LED燈,是0XFF就關(guān)閉LED燈;如果是01功能碼就根據(jù)LED燈的狀態(tài)發(fā)送相對應(yīng)的數(shù)據(jù)包反饋。注意它發(fā)送數(shù)據(jù)包時的地址碼是根據(jù)上面串口助手軟件測試時接收到數(shù)據(jù)的地址碼填寫的。
CRC校驗(yàn):Modbus網(wǎng)絡(luò)使用了RTU模式,消息中包括了CRC方法的錯誤檢測域,CRC域檢測整個消息的內(nèi)容。CRC域是兩個字節(jié),包含了一十六位二進(jìn)制值,有發(fā)送設(shè)備計(jì)算好后加入消息中,接收設(shè)備接收到消息后,重新計(jì)算消息的CRC,再與收到的CRC域值比較,如果兩者的值不同,則有錯誤。
功能碼:控制鍵發(fā)送不同的功能碼,功能也大不相同,這里用到01功能碼和05功能碼,01功能碼是讀取目標(biāo)的狀態(tài),05功能碼是修改目標(biāo)的狀態(tài)。
5 硬件設(shè)計(jì)部分
5.1單片機(jī)接線
借助燒錄器和串口轉(zhuǎn)換器將單片機(jī)連接到電腦上,通過燒錄器將代碼下載到單片機(jī)上,串口轉(zhuǎn)換器幫助組態(tài)屏和STM32單片機(jī)通訊調(diào)試,選用的串口轉(zhuǎn)換器是USB轉(zhuǎn)TTL模塊。
6最終效果
點(diǎn)擊組態(tài)屏上的模擬按鍵,可以控制STM32單片機(jī)上LED燈的狀態(tài),根據(jù)STM32單片機(jī)上LED燈狀態(tài)反饋,組態(tài)屏上的模擬按鍵顯示預(yù)先設(shè)定的LED燈狀態(tài)字符,這里設(shè)置的是ON和OFF。達(dá)到以上效果則可以證明組態(tài)屏可以和STM32單片機(jī)進(jìn)行通訊,也可以在這個基礎(chǔ)上開發(fā)更多新的功能。
參考文獻(xiàn):
[1] 劉火良.STM32庫開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2013.
[2] 楊更更.Modbus軟件開發(fā)實(shí)戰(zhàn)指南[M].北京:清華大學(xué)出版社,2017.
[3] 孫立坤.侯秉濤.組態(tài)軟件應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2014.
【通聯(lián)編輯:代影】