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