周明 王振 馬睿



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