







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