中汽研汽車工業(yè)工程(天津)有限公司信息工程部 張賀 馬健 董洪鵬 魏磊
本文介紹了汽車試驗(yàn)領(lǐng)域常見試驗(yàn)設(shè)備通訊方式,研究、設(shè)計(jì)通用性較高的數(shù)據(jù)采集方案,提供相對(duì)統(tǒng)一的試驗(yàn)數(shù)據(jù)及設(shè)備狀態(tài)數(shù)據(jù)存儲(chǔ)平臺(tái),并以某設(shè)備為例說明基于Can總線數(shù)據(jù)采集過程,驗(yàn)證試驗(yàn)數(shù)據(jù)及設(shè)備健康數(shù)據(jù)自動(dòng)化采集方案,為試驗(yàn)設(shè)備狀態(tài)自動(dòng)化監(jiān)控和試驗(yàn)報(bào)告自動(dòng)生成創(chuàng)造條件。
國務(wù)院印發(fā)的《“十三五”國家戰(zhàn)略性新興產(chǎn)業(yè)發(fā)展規(guī)劃》強(qiáng)調(diào)加強(qiáng)相關(guān)計(jì)量測試、檢驗(yàn)檢測、認(rèn)證認(rèn)可、知識(shí)和數(shù)據(jù)中心等公共服務(wù)平臺(tái)建設(shè)[1]。汽車產(chǎn)業(yè)作為國民經(jīng)濟(jì)的重要支柱[2-3],是推動(dòng)新一輪科技革命和產(chǎn)業(yè)革命的重要力量,是我國建設(shè)制造強(qiáng)國的重要支撐。汽車檢測行業(yè)是一個(gè)試驗(yàn)密集型行業(yè),隨著汽車試驗(yàn)國家標(biāo)準(zhǔn)的更新、汽車生產(chǎn)廠家試驗(yàn)要求的提高,汽車試驗(yàn)過程變得越來越復(fù)雜,對(duì)汽車試驗(yàn)數(shù)據(jù)采集自動(dòng)化提出越來越高的要求。試驗(yàn)數(shù)據(jù)、設(shè)備健康狀態(tài)數(shù)據(jù)是實(shí)現(xiàn)公共服務(wù)平臺(tái)建設(shè)的基礎(chǔ),可靠、穩(wěn)定的數(shù)據(jù)自動(dòng)化采集具有重要意義。
汽車試驗(yàn)設(shè)備是各設(shè)備廠商根據(jù)整車試驗(yàn)方法標(biāo)準(zhǔn)研發(fā)的專用試驗(yàn)設(shè)備,能夠滿足相關(guān)試驗(yàn)標(biāo)準(zhǔn)要求的測量參數(shù),但同類設(shè)備不同廠家數(shù)據(jù)采集、輸出方式卻各有不同。
當(dāng)前具備試驗(yàn)數(shù)據(jù)和設(shè)備數(shù)據(jù)自動(dòng)化采集條件的設(shè)備,一般具備以下特點(diǎn):主控設(shè)備下掛載多個(gè)(或一個(gè))從屬設(shè)備(傳感器、氣體分析儀、煙度計(jì)、油耗儀等),主控設(shè)備通過Can總線、Modbus、RS232、TCP/IP、UDP等方式與從屬設(shè)備建立通信關(guān)系,從屬設(shè)備將信號(hào)(或數(shù)據(jù)包)定時(shí)發(fā)送給主控設(shè)備,主控設(shè)備按照一定規(guī)則處理后將數(shù)據(jù)同步寫入本地?cái)?shù)據(jù)庫。在試驗(yàn)完成后,按照特定算法對(duì)試驗(yàn)數(shù)據(jù)進(jìn)行分析,以曲線、表格的形式生成試驗(yàn)報(bào)告(原始記錄),最后由人工將數(shù)據(jù)填寫(或截圖插入)到正式試驗(yàn)報(bào)告中。
在這種模式下,試驗(yàn)設(shè)備集成度低、主設(shè)備間基本沒有做到互聯(lián)互通,試驗(yàn)后期數(shù)據(jù)處理工作量較大;且由于沒有試驗(yàn)設(shè)備健康狀態(tài)信息,試驗(yàn)設(shè)備維護(hù)人員無法對(duì)試驗(yàn)設(shè)備行程相對(duì)統(tǒng)一的自動(dòng)化管理。
本方案設(shè)計(jì)相對(duì)統(tǒng)一的數(shù)據(jù)采集系統(tǒng)和數(shù)據(jù)接口,開發(fā)跨平臺(tái)數(shù)據(jù)采集模塊,實(shí)現(xiàn)中控機(jī)與試驗(yàn)設(shè)備穩(wěn)定通訊,根據(jù)協(xié)議算法將試驗(yàn)數(shù)據(jù)及設(shè)備健康數(shù)據(jù)采集到中控機(jī),中控機(jī)作為客戶端將數(shù)據(jù)上傳到服務(wù)器端,由服務(wù)器統(tǒng)一存儲(chǔ)試驗(yàn)數(shù)據(jù)。進(jìn)而實(shí)現(xiàn)檢測業(yè)務(wù)數(shù)據(jù)與設(shè)備健康數(shù)據(jù)自動(dòng)化采集與試驗(yàn)過程數(shù)據(jù)跨平臺(tái)以相對(duì)統(tǒng)一的格式實(shí)時(shí)存儲(chǔ)過程。
如圖1試驗(yàn)數(shù)據(jù)與設(shè)備健康數(shù)據(jù)自動(dòng)化采集框架,劃分為感知層、傳輸層、應(yīng)用層。在感知層傳感器等從屬設(shè)備掛載在主控設(shè)備下,主控設(shè)備在與數(shù)采模塊建立通訊后,將試驗(yàn)數(shù)據(jù)和設(shè)備健康數(shù)據(jù)在試驗(yàn)進(jìn)行的過程中拋出數(shù)據(jù)包給數(shù)采模塊(可配置采樣頻率);傳輸層實(shí)現(xiàn)數(shù)采模塊抓取消息隊(duì)列然后進(jìn)行數(shù)據(jù)預(yù)處理;在應(yīng)用層數(shù)據(jù)被寫入時(shí)間序列數(shù)據(jù)庫,然后被保存在關(guān)系型數(shù)據(jù)庫重,便于后續(xù)功能的使用。
圖1 試驗(yàn)數(shù)據(jù)及設(shè)備數(shù)據(jù)自動(dòng)化采集框架Fig.1 Framework for automatic collection of test data and equipment data
通過三層結(jié)構(gòu)劃分,使得數(shù)據(jù)采集程序模塊框架更加明晰,便于日后維護(hù)和功能擴(kuò)展。最大限度降低代碼的冗余度,提高程序的運(yùn)行性能。
如圖2所示,功能模塊分為控制模塊和發(fā)送模塊??刂颇K負(fù)責(zé)程序的主體運(yùn)行、異常監(jiān)控、日志記錄等,主要用于接收主控設(shè)備數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)到內(nèi)存數(shù)據(jù)庫做緩存;數(shù)據(jù)發(fā)送模塊將內(nèi)存數(shù)據(jù)庫中緩存的數(shù)據(jù)拋向服務(wù)器時(shí)間序列數(shù)據(jù)庫。
圖2 功能模塊劃分Fig.2 Functional module division
在程序控制模塊中保留了插件模塊,系統(tǒng)依據(jù)不同的接口協(xié)議開發(fā)對(duì)應(yīng)的插件模塊,例如針對(duì)Can總線通信的設(shè)備可調(diào)用Can通信插件,從而達(dá)到快速開發(fā)、部署的目的。
數(shù)據(jù)采集模塊通過研究Can總線、ModBus、TCP/IP等常見通訊協(xié)議,抽象出通訊模塊父類,將通訊所需基礎(chǔ)對(duì)象和方法封裝起來,通過接口與實(shí)現(xiàn)過程分離,從而使父類內(nèi)部的功能部件具有“高內(nèi)聚、低耦合”的最佳狀態(tài),使用時(shí)新建子類繼承父類實(shí)現(xiàn)過程,對(duì)于與父類功能不同的部分,可以通過重寫的方式實(shí)現(xiàn)所需功能,提高編碼效率降低出錯(cuò)概率,降低代碼維護(hù)難度。
以某品牌測功機(jī)數(shù)據(jù)采集為例,驗(yàn)證試驗(yàn)數(shù)據(jù)和設(shè)備數(shù)據(jù)采集自動(dòng)化設(shè)計(jì)方案,該設(shè)備主控系統(tǒng)基于CAN總線與從屬設(shè)備以及外界進(jìn)行通信。
將CAN轉(zhuǎn)以太網(wǎng)數(shù)據(jù)線九針(串口)母頭接到某品牌主控設(shè)備的CAN卡3#端口的公頭,CAN-H為db7端口,CAN-L為db2端口(主控軟件也需要相應(yīng)的設(shè)置為3#端口,軟件通訊部分會(huì)提到)。
配置自定義的DBC文件,將寫好的DBC文件拷貝粘貼到主控電腦特定位置。
打開主控軟件,在系統(tǒng)配置中找到自定義的DBC文件。加載DBC文件并對(duì)Can口通訊進(jìn)行設(shè)置:選擇Can卡HW card# 選擇1(表示選擇物理CAN卡1,一般情況只有1個(gè)CAN卡,一個(gè)CAN卡有4個(gè)端口)、選擇端口:HW port#選擇3(即選擇3# CAN口,與硬件連接的CAN口對(duì)應(yīng))、設(shè)置波特率、模式和停止位,設(shè)置完通道名稱后重啟主控軟件,主控電腦即可依據(jù)DBC文件,在3# CAN口發(fā)送出CAN報(bào)文。如圖3所示,大約有25個(gè)參數(shù)通道(數(shù)量與所配置的DBC文件有關(guān))。
圖3 通道配置示例Fig.3 Channel configuration example
搭建好底層驅(qū)動(dòng)后,開啟程序接收Can總線發(fā)送的16進(jìn)制原始數(shù)據(jù),部分函數(shù)如圖4所示。
圖4 部分通訊代碼Fig.4 Part of the communication code
系統(tǒng)接收16進(jìn)制原始數(shù)據(jù)后,根據(jù)實(shí)現(xiàn)定義的DBC文件,將16進(jìn)制數(shù)據(jù)轉(zhuǎn)化為10進(jìn)制,即完成將通道參數(shù)轉(zhuǎn)化過程,如圖5所示。
圖5 部分?jǐn)?shù)據(jù)解析代碼Fig.5 Part of the data analysis code
通過以上配置實(shí)現(xiàn)基于Can通道的某品牌主控電腦試驗(yàn)數(shù)據(jù)及設(shè)備健康數(shù)據(jù)自動(dòng)采集。
試驗(yàn)數(shù)據(jù)和設(shè)備健康數(shù)據(jù)自動(dòng)采集為汽車行業(yè)公共服務(wù)平臺(tái)提供可靠數(shù)據(jù)保障,對(duì)服務(wù)平臺(tái)建設(shè)具有重要的參考意義。提高試驗(yàn)數(shù)據(jù)及設(shè)備健康數(shù)據(jù)自動(dòng)采集比例,將試驗(yàn)數(shù)據(jù)集中管理、減少人為干預(yù)程度,最大限度保持試驗(yàn)的客觀性,提高試驗(yàn)數(shù)據(jù)在公共服務(wù)平臺(tái)部門間流轉(zhuǎn)效率,將對(duì)汽車產(chǎn)業(yè)健康發(fā)展起到一定積極作用。
數(shù)字技術(shù)與應(yīng)用2021年11期