【摘" 要】文章主要依托自主研發(fā)的自主電流檢測設(shè)備的實現(xiàn),設(shè)計出一個電流數(shù)據(jù)庫并開發(fā)出基于Modbus的多功能通信系統(tǒng)。首先使用Django框架搭建多功能通信系統(tǒng)的基礎(chǔ)框架結(jié)構(gòu),其次通過使用Modbus TCP通信協(xié)議,使得自主電流檢測設(shè)備與系統(tǒng)之間能夠進行WiFi和藍牙的多功能通信以進行數(shù)據(jù)傳輸,進而實現(xiàn)可視化展示,最后為了幫助用戶能夠清晰地管理不同類型的汽車數(shù)據(jù),使用MySQL搭建一個電流數(shù)據(jù)庫來存放不同類型的數(shù)據(jù),并進行多功能通信測試,最終結(jié)果理想,達到智能化監(jiān)測的預期
【關(guān)鍵詞】自主電流檢測設(shè)備;Django框架;Modbus通信協(xié)議;智能化監(jiān)測
中圖分類號:U463.6" " 文獻標識碼:A" " 文章編號:1003-8639( 2023 )11-0056-03
Design and Implementation of a Multifunctional Communication System Based on Modbus
ZHANG Hailong,ZHU Hailong,JIANG Mingyuan,SUN Yongjian,F(xiàn)ENG Hao
(China First Automobile Group Co.,Ltd.,Changchun 130000,China)
【Abstract】This article relies on the implementation of self-developed independent current detection equipment to design a current database and develop a multi-functional communication system based on Modbus. Firstly,use the Django framework to build the basic framework structure of a multifunctional communication system. Secondly,by using the Modbus TCP communication protocol,the autonomous current detection device can communicate with the system through multiple functions such as WiFi and Bluetooth for data transmission,thereby achieving visual display. Then,in order to help users clearly manage different types of car data,a current database was built using MySQL to store different types of data. Finally,multifunctional communication testing was conducted to achieve ideal results and achieve the expected level of intelligent monitoring.
【Key words】autonomous current detection equipment;Django framework;Modbus communication protocol;intelligent monitoring
1" 研究背景
21世紀以來,全球科技創(chuàng)新進入密集活躍期,加速走向數(shù)字化、網(wǎng)絡化、智能化。未來,以人工智能、云計算、大數(shù)據(jù)分析等新一代技術(shù)為代表的數(shù)字經(jīng)濟蓬勃發(fā)展,產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型將成為全球經(jīng)濟復蘇的新引擎。汽車行業(yè)作為國民經(jīng)濟的支柱產(chǎn)業(yè),其數(shù)字化轉(zhuǎn)型具有必要性與緊迫性。汽車是一個復雜的系統(tǒng),在汽車轉(zhuǎn)型過程中,電流是一個重要的關(guān)注點,為發(fā)動機的啟動、點火、充電、照明和控制系統(tǒng)等的運行提供能源,保證了車輛的正常運行,汽車故障診斷技術(shù)己經(jīng)成為汽車故障診斷過程屮必不可少的工具[1],電流信息是判斷汽車故障的重要信息,通過對全車電流的智能化監(jiān)測,便可以相應地反映出全車的性能狀態(tài)。
由于人工檢測汽車電流效率低下,工作量龐大,本文基于此且依托自主電流檢測設(shè)備的實現(xiàn),使用Django框架[2]開發(fā)一個基于Modbus的多功能通信系統(tǒng),用于與自主電流檢測設(shè)備進行多功能通信,并對自主電流檢測設(shè)備檢測的電流進行多方面的可視化分析。這不僅能夠智能化地監(jiān)測汽車的性能狀態(tài),而且也使得汽車向數(shù)字化、智能化轉(zhuǎn)型邁出了重要一步。
2" 多功能通信系統(tǒng)設(shè)計
2.1" 功能分析及要求
對于多功能通信系統(tǒng)的設(shè)計,首先是為了實現(xiàn)系統(tǒng)的各個操作功能部分,其次是將各個操作功能部分進行合理組織和整合,以確保系統(tǒng)高效運行且易于維護,保證系統(tǒng)的整體完備性,而并不僅僅是實現(xiàn)多功能通信即可。因此,在系統(tǒng)的整體設(shè)計中,需要具備以下幾點要求。
1)根據(jù)對汽車車型、檢測位置以及車輛各項指標的統(tǒng)計,搭建相應的數(shù)據(jù)庫,并規(guī)定數(shù)據(jù)庫的格式,便于管理維護。
2)實現(xiàn)多功能通信系統(tǒng)與自主電流檢測設(shè)備的IP配對,進而實現(xiàn)WiFi通信功能。
3)實現(xiàn)多功能通信系統(tǒng)與自主電流檢測設(shè)備的藍牙配對,進而實現(xiàn)藍牙通信功能。
4)能夠選擇整車或者具體位置,例如:前照燈、左轉(zhuǎn)燈等,有助于用戶檢測汽車整車或局部位置電流信息,以便更好地對汽車電流變化情況進行檢測。
5)實現(xiàn)與自主電流檢測設(shè)備多功能通信后,需要將自主電流檢測設(shè)備檢測到的汽車整車電流或局部電流傳輸?shù)较鄳臄?shù)據(jù)庫中,并以規(guī)定的格式進行存儲。
6)在與自主電流檢測設(shè)備多功能通信時,界面需要以曲線和數(shù)值的形式對采集到的電流進行可視化展示,曲線部分需包含兩個模塊,一個是整體趨勢曲線,這有助于用戶了解從開始測量到最終結(jié)束時的汽車整體電流的變化趨勢;二是最新時間段趨勢曲線,考慮到監(jiān)測時間較長的情況下,整體趨勢曲線密集度過高無法讓用戶很清晰地觀察電流變化,因此設(shè)計最新時間段趨勢曲線有助于用戶清晰地觀察最近時間段的汽車電流變化趨勢,有助于用戶進行分析處理。
2.2" 電流數(shù)據(jù)庫設(shè)計
依托自主電流檢測工具的實現(xiàn),需要搭建一個電流數(shù)據(jù)庫對自主電流檢測工具檢測到的汽車數(shù)據(jù)進行存儲?;诖?,根據(jù)數(shù)據(jù)類型的不同,本文使用MySQL[3]搭建數(shù)據(jù)管理模塊,模塊共設(shè)計了車型數(shù)據(jù)、汽車數(shù)據(jù)、檢測位置數(shù)據(jù)以及電流數(shù)據(jù)4個不同的表來存儲相應的數(shù)據(jù)。車型數(shù)據(jù)模塊主要存儲不同車型的基礎(chǔ)信息,例如:汽車生產(chǎn)商、汽車的質(zhì)量等;汽車數(shù)據(jù)模塊主要存儲不同車型的標識性信息,例如:汽車編號、汽車發(fā)動機編號等;檢測位置數(shù)據(jù)模塊主要存儲需要被自主電流檢測設(shè)備檢測的位置信息,例如:前照燈、方向燈等;電流數(shù)據(jù)模塊主要存儲何種車型何種位置被檢測的電流信息。數(shù)據(jù)模塊的E-R圖如圖1所示。
考慮到需要對系統(tǒng)中各種基礎(chǔ)數(shù)據(jù)進行管理,系統(tǒng)能夠?qū)Ω黝惢A(chǔ)數(shù)據(jù)實現(xiàn)查看、查詢、添加、修改、刪除等基本功能,同時,為了方便用戶使用,還能實現(xiàn)多關(guān)鍵詞查找以及導入/導出表格文件等功能。
2.3" 多功能通信功能設(shè)計
本系統(tǒng)和自主電流檢測設(shè)備之間的通信使用Modbus TCP協(xié)議[4]實現(xiàn),它是基于TCP/IP網(wǎng)絡的一種工業(yè)通信協(xié)議[5],用于在不同設(shè)備之間進行數(shù)據(jù)傳輸和通信。Modbus TCP協(xié)議是在以往使用的串行Modbus協(xié)議的基礎(chǔ)上進行擴展后得來的,其使用以太網(wǎng)作為通信介質(zhì),具有更高的傳輸速率和更大的網(wǎng)絡容量,通信方式是基于客戶—服務器模型。當客戶端向服務器發(fā)送請求,服務器將數(shù)據(jù)作為響應返回給客戶端,通信過程中數(shù)據(jù)以字節(jié)為單位進行傳輸,支持讀取和寫入操作,報文幀格式如表1所示。
1)地址碼:指定待通信的設(shè)備地址,可以是廣播地址、單設(shè)備地址或多設(shè)備地址,在格式中占1字節(jié),有效值范圍是1~247。
2)功能碼:指令類型,詳細說明程序執(zhí)行的操作是讀取、寫入還是查詢串口通信協(xié)議,在格式中占1字節(jié),有效值范圍是1~255。
3)數(shù)據(jù):根據(jù)執(zhí)行的命令指令來封裝數(shù)據(jù)內(nèi)容,在格式中長度為多字節(jié)。
4)CRC校驗碼:數(shù)據(jù)傳輸前需要計算校驗,檢驗數(shù)據(jù)是否傳輸正確,在格式中占2字節(jié)。
通過定義不同的功能碼,可以實現(xiàn)不同類型的數(shù)據(jù)讀取和寫入操作,例如讀取寄存器等。Modbus TCP協(xié)議使用的是典型的主從結(jié)構(gòu),主站發(fā)送請求給從站,從站則響應請求并返回數(shù)據(jù),在多功能通信系統(tǒng)中,PC端便是主機,而自主電流檢測設(shè)備便是從機,每個設(shè)備都有一獨特的設(shè)備地址標識,用于區(qū)分不同的設(shè)備,而且它具有簡單、開放和可靠的特點,易于實現(xiàn)和維護,被廣泛應用于工業(yè)自動化領(lǐng)域,用于實現(xiàn)設(shè)備之間的數(shù)據(jù)交換和遠程控制,極大地提高了在多功能通信上的靈活性[6]。
多功能通信模塊需要用戶通過控制接收數(shù)據(jù)的開關(guān)來控制接收數(shù)據(jù)的開始和結(jié)束。當接收數(shù)據(jù)的控制信號開始時,需要系統(tǒng)檢測連接的狀態(tài),連接有效時開始接收的信號傳輸?shù)阶灾麟娏鳈z測設(shè)備,之后進行CRC碼校驗,校驗通過之后,系統(tǒng)接收到來自自主電流檢測設(shè)備檢測到的汽車具體某個位置的電流數(shù)據(jù),然后根據(jù)電流數(shù)值繪制并顯示電流曲線。
2.4" 多功能通信系統(tǒng)界面設(shè)計
系統(tǒng)中的WiFi功能通信操作界面主要有IP地址設(shè)置、檢測位置選取、控制按鈕選擇以及數(shù)據(jù)展示等4個部分。WiFi通信界面框架如圖2所示。
系統(tǒng)中的藍牙功能通信操作界面主要由檢測位置選取、控制按鈕選擇以及數(shù)據(jù)展示等3個部分組成。藍牙通信界面框架如圖3所示。
2.5" 多功能通信系統(tǒng)運行流程
對于WiFi通信模塊,首先需要通過IP地址配置選項來配置IP地址,保證多功能通信系統(tǒng)與自主電流檢測設(shè)備處于同一個WiFi環(huán)境下,之后通過檢測位置選項來選擇需要測量電流的具體位置,上述兩個操作完成后,點擊開始接收按鈕便可以實時接收自主電流檢測設(shè)備檢測到的電流值,并將其存入到相應的數(shù)據(jù)庫中,同時,數(shù)據(jù)展示模塊通過曲線以及具體數(shù)值將實時檢測到的電流值反饋給用戶,直觀地向用戶展示被檢測汽車的電流變化情況,有助于用戶對汽車進行智能化監(jiān)測,當用戶想要結(jié)束檢測時,通過停止按鈕便可結(jié)束通信。WiFi通信運行流程如圖4所示。
對于藍牙通信模塊,其與WiFi通信模塊唯一的區(qū)別在于不需要通過IP地址配置選項來配置IP地址,而是通過程序事先直接進行藍牙連接,之后的運行流程如上述WiFi通信模塊所述。藍牙通信運行流程如圖5所示。
2.6" 多功能通信系統(tǒng)實測情況
在Modbus TCP協(xié)議的主從結(jié)構(gòu)當中,多功能通信系統(tǒng)端便是主機,而自主電流檢測設(shè)備便是從機,在進行多功能通信的過程中,數(shù)據(jù)幀格式如表2所示,當主機發(fā)送命令時,01表示設(shè)備地址標識碼,04表示寄存器的功能碼,參數(shù)中前兩個00 00表示寄存器起始地址,后兩個00 02表示寄存器的個數(shù)為2,在從機響應的消息中,04表示返回的內(nèi)容有4個字節(jié),00 00 00 00表示放大1000倍后的電流值。
2.6.1" WiFi通信
在確保自主電流檢測設(shè)備和系統(tǒng)處于同一WiFi環(huán)境下,通過Modbus TCP協(xié)議進行通信時,其中系統(tǒng)端作為主機,自主電流檢測設(shè)備作為從機。當功能號為4的通信命令由主機(系統(tǒng)端)發(fā)送至從機(自主電流檢測設(shè)備)時,如果CRC校驗無誤,自主電流檢測設(shè)備從對應地址的寄存器中讀取電流或電壓數(shù)據(jù),然后把數(shù)據(jù)用通信命令返送給系統(tǒng)端。通過WiFi通信獲取數(shù)據(jù)界面如圖6所示,如果觀察到通信建立成功,說明達到理想預期。
2.6.2" 藍牙通信
藍牙通信首先要進行自主電流檢測設(shè)備和系統(tǒng)端的藍牙配對,利用藍牙確立兩者的Socket連接,之后在Socket中通過ModbusTCP協(xié)議進行通信,其中系統(tǒng)端作為主機,自主電流檢測設(shè)備作為從機。當功能號為4的通信命令由主機(系統(tǒng)端)發(fā)送至從機(自主電流檢測設(shè)備)時,如果CRC校驗無誤,自主電流檢測設(shè)備從對應地址的寄存器中讀取電流或電壓數(shù)據(jù),然后把數(shù)據(jù)用通信命令返送給主機。通過藍牙通信獲取數(shù)據(jù)界面如圖7所示,如果觀察到通信建立成功,說明達到理想效果。
3" 總結(jié)
綜上所述,隨著現(xiàn)代化步伐的進程,如何智能化地監(jiān)控汽車的性能狀態(tài)對現(xiàn)代汽車領(lǐng)域的發(fā)展具有重要意義。本文主要研究了基于Modbus的多功能通信系統(tǒng)的設(shè)計與實現(xiàn),在搭建一些基礎(chǔ)模塊的基礎(chǔ)上,通過對電流數(shù)據(jù)庫的構(gòu)建,方便了用戶對電流數(shù)據(jù)的智能化管理和分析,并通過使用Modbus通信協(xié)議,實現(xiàn)了多功能通信系統(tǒng)與自主電流檢測設(shè)備之間的多功能通信,進而實現(xiàn)對汽車性能的智能化監(jiān)測,有助于加快中國汽車產(chǎn)業(yè)向數(shù)字化、智能化轉(zhuǎn)型步伐。
參考文獻:
[1] 李錦,劉夢,吳格,等. 汽車診斷技術(shù)概述[J]. 汽車電器,2023(4):55-57.
[2] 郭鶴楠. 基于Django和Python技術(shù)的網(wǎng)站設(shè)計與實現(xiàn)[J]. 數(shù)字通信世界,2023(6):60-62.
[3] 李雨金. 基于MySQL的數(shù)據(jù)庫[D]. 南京:南京大學,2019.
[4] 史亞平. Modbus TCP/IP協(xié)議的客戶端與服務器實現(xiàn)[J].工業(yè)控制計算機,2023,36(2):54-56.
[5] 趙若涵,姬廣龍,王甜甜. Modbus協(xié)議在電力遠程控制系統(tǒng)設(shè)計中的應用[J]. 電子技術(shù)與軟件工程,2023(8):64-67.
[6] 吳晨紅. 基于Modbus通信協(xié)議的信號采集系統(tǒng)[D]. 合肥:合肥工業(yè)大學,2021.
(編輯" 凌" 波)
作者簡介
張海龍(1987—),男,副高級工程師;朱海龍(1993—),男,工程師;姜明遠(1990—),男,工程師;孫永?。?994—),男,工程師;馮皓(1997—),男,助理工程師;均從事車輛檢測技術(shù)工作。