1 引言
作為混凝土攪拌站的核心部件之一的承重儀表(SWD)是一款高性能、高精度的稱量控制產品,通過CAN總線采用通信協議的方式控制稱重傳感器和控制主機進行命令交互而滿足混凝土攪拌站的配料、稱量、控制、顯示等需求
本文在CAN模塊基礎上,基于ZLGCAN動態鏈接庫技術與Labview平臺相結合的機制
2 系統總體方案
系統的硬件配置主要由PC、ZLGCAN模塊和開關電源構成,三者關系如圖1所示。
圖1 系統硬件配置 下載原圖
開關電源給SWD供電,作為交互操作窗口的PC通過USB接口經ZLGCAN的CAN總線和SWD交互數據。根據SWD的CAN通信協議的特點,在PC上給予Labview軟件設計上位機程序并通過上位機程序調用Windows系統中編譯和加載的ZLGCAN動態鏈接庫,便可實現對與CAN通信協議相關的SWD的功能進行自動化測試,并對測試進度和測試結果進行實時顯示。
3 上位機軟件設計
3.1 界面
作為與用戶直接交互的操作窗口前面板可以通過PC端的Labview平臺采用圖形化編程語言實現,如圖2所示。
圖2 上位機軟件界面示意圖 下載原圖
界面大致分為菜單區、參數設置區、操作區和測試數據顯示區等。菜單區包括設備操作、設備配置、與CAN通信協議相關基本功能的測試項目、版本和幫助等項,可以通過菜單操作對SWD和ZLGCAN進行配置、選擇測試項目以及查看版本和幫助信息;參數設置區可以直接在界面上快速地進行相關參數配置及測試項選擇;操作區主要實現ZLGCAN的啟動、停止操作以及測試過程的控制;測試數據顯示區可以直觀地顯示已經完成的測試項及測試結果以及測試進度,并可以完成測試數據和測試報告的保存操作。
3.2 主程序
軟件操作流程如圖3所示。Labview開發平臺除具有常規的條件結構、順序結構、循環、事件結構外,還根據應用場合的不同提供了狀態機、消息隊列、生產者/消費者、主/從等設計模式,根據程序特點直接調用模板進行編程,可以省去對程序整體框架的考慮,從而節約很多時間。
由于測試開始前操作者需要對SWD和ZLGCAN進行配置,選擇測試項目,測試時又是全自動測試,因此,系統主程序基本框架為生產者/消費者結構,自動測試部分為消息隊列結構,自動逐項執行所選擇的測試項目,執行完畢又返回到生產者/消費者結構,以便與用戶交互處理后續的數據保存、報告保存等操作。
3.3 協議判斷程序
協議判斷程序是自動測試系統設計的關鍵,直接決定著測試結果是否可靠性。協議判斷流程如圖4所示。與CAN通信協議相關的SWD基本功能大致分為參數查詢、參數設置、參數上傳、配方設置、配料控制、掉電保存6個方面。其通信協議可歸納為兩類:(1)應答式協議:SWD對收到的命令進行應答,測試時需要先向SWD發送命令,再判斷SWD是否正確進行應答;(2)主動上傳式協議:SWD以一定的周期上傳CAN數據,測試時只需判斷在一定的時間內是否收到相應的數據幀。為此根據SWD通信協議特點,需對自動化測試系統設計協議仲裁子VI。
圖3 軟件操作流程圖 下載原圖
圖4 協議判斷流程 下載原圖
3.4 協議拓展接口設計
考慮到SWD通信協議的不斷升級和擴展以及測試要求的變化,為保證軟件能夠兼顧后續SWD通信協議的測試需要,進行了巧妙的接口設計。協議判斷規則不是固化在程序里面,而是通過EXCEL文檔讀入,當協議發生變更時,只需要對該EXCEL文件進行維護即可。該EXCEL文檔每一行對應一條協議,協議格式對應EXCEL文檔的一行A~H的內容如表1所示。
表1 通信協議格式 下載原表

4 結果
測試完畢,在圖2的界面點擊“生成報告”按鍵,將會自動生成DOC格式名稱為“SWD通信協議自動測試報告yyyy_MM_DD_hhmmss.doc”的試驗報告。其中,報告名稱中的yyyy_MM_DD_hhmmss分別為當前測試時間的年份_月份_日期_時時分分秒秒,而報告的內容除包括當前測試數據和結果、之前輸入的被測產品軟硬件信息、ZLGCAN和SWD參數配置信息外,還包括每條協議測試的詳細記錄。
通過專業測試人員驗證,本測試系統具有以下特點:
1)效率高:426條協議可以在3min內完成測試,采用手工測試,即使熟練的測試工程師也需要3~4d的時間。
2)簡單可靠:通過幾步簡單的操作即可完成測試,通信協議異常模擬測試的結果表明,通過測試報告的詳細測試數據,軟件可以準確定位各類協議缺陷。
3)覆蓋面廣:軟件充分考慮到了參數設置的最大值、最小值、合法值和非法值等各種情況,還可以通過修改節點號測試不同節點的情況,避免了手工測試考慮不全的情況,擴大了測試的覆蓋面。
4)易于擴展和維性:測試內容可以通過EXCEL表格進行定制,當通信協議發生變更時,只需要對EXCEL表格進行維護即可,具有良好的可擴展性和維護性。
5)軟件具有很好的靈活性:根據需要選擇測試項目。具有詳細的幫助系統,新手也可以根據相關說明正確完成測試。




