宋 飛
(珠海格力電器股份有限公司 珠海 519000)
隨著綜合性建筑和大型樓宇的高速發展,多聯機空調系統出現機組數量多、機型多樣化、機組分布廣等特點,為多聯機空調的統一管理維護帶來不便。多聯機組運行之前需要對各個設備傳感器、負載、運行參數等進行檢測,以保障機組的正常運行。多聯機空調系統邏輯復雜、控制參數多樣,傳統測試方式效率低下。
實際多聯機人工測試,質量依賴測試人員的責任心和能力水平,安全存在隱患有觸電風險,工況室環境惡劣,效率低下。
我們需要針對多聯機空調系統測試技術進行研究,開發一套多聯機空調自動測試系統,該系統通過智能提取的方式生成控制系統的測試用例庫,轉化成可輸入信號控制并監聽被測對象,建立Stateflow模型實現邏輯仿真,通過模型計算測試用例結果,模型計算的結果與機組運行的結果進行對比,從而實現空調邏輯功能的自動測試。
CAN通訊具有突出的可靠性、實時性和靈活性。CAN為多主方式工作,網絡上任一節點均可在任意時刻主動地向網絡上其他節點發送信息,而不分主從。它允許對以線型結構連接的每個節點進行平等的總線訪問,這意味著在開發過程中,每個節點都可以按照相同的規格進行設計,數據可以在需要的時候進行傳輸,而且網絡的配置可以有很高的自由度,因為不存在一個節點對另一個節點的偏愛。這種靈活性對多節點通訊網絡非常重要,因為它們可以以許多不同的方式使用,并可以以許多不同的方式重新設計。
CAN上的節點分成不同的優先級,可滿足不同的實時要求,優先級高的數據最多可在134 us內得到傳輸[1]。該設計基于CAN協議總裁機制,使用高優先級數據同步,保證在大網絡多節點應用時數據傳輸和用戶需求的及時響應,同時確保數據傳輸的可靠性。
多聯機空調網絡使用的CAN通訊,要求在每幀數據中加入IP,數據的接收者可以使用這個IP來確定這是什么設備的數據,同時每幀數據中加入功能碼,數據接收者可以判斷該數據是用來反饋設備狀態還是需要執行某個控制指令,從而實現整個機組網絡數據的聯動。
自動測試系統接入空調網絡,需要使用與同一套CAN協議,可以通過數據達到精準控制網絡中的每一個設備,同時可以解析網絡中的全部狀態,協議的統一化是自動化測試的核心。
空調多聯機系統是面向分布式控制的多節點冷媒系統,系統可分為單冷媒系統和多冷媒系統,一般多聯機系統中包含外機、內機和線控器等多個節點[2]。自動測試系統重點解決內機外機的邏輯準確性問題,圖1是最常見的多聯機單系統圖,該系統中多臺室內機通過CAN1網絡和外機連接。對于需求制冷量較大的單系統機組,在CAN1網絡最多可同時擁有4臺室外機。

圖1 多聯機自動測試單系統圖
多聯機也可以按多系統方式連接,該系統中先將室內機和室外機通過CAN1網絡連接。多套CAN1網絡中外機并行通過CAN2網絡連接。
不論是單系統還是多系統,在機組網絡的連接點引線,連入USB數據轉換器。該轉換器可將機組通訊的電平數據轉換成二進制數發送給電腦USB口,反過來也可將電腦上位機發送的命令轉換入機組網絡中,實現了上位機和多聯機系統的數據交互。
Stateflow是一種圖形化的設計開發工具,是有限狀態機的圖形實現工具,又可稱為狀態流。主要用于仿真中控制和檢測邏輯關系的表示。用戶可以在進行仿真時,使用這種圖形化的工具實現各個狀態之間的轉換,解決復雜的監控邏輯問題,更具有事件驅動控制能力。
有限狀態機又稱為事件驅動系統,指系統在條件發生變化時(即有事件發生時)從一個狀態遷移到另一個狀態。通過將系統中的行為描述成不同狀態的轉換,可將系統設計成事件驅動系統。在特定的條件下發生的事件用來激活狀態,狀態遷移圖就是基于此種方法的圖形表示。可以用于解決事件驅動系統中復雜的邏輯問題。
空調系統邏輯中,各個功能和負載狀態,符合狀態機的定義,故可以使用Stateflow針對各個功能實現和負載狀態轉換進行建模,為邏輯功能自動判斷提供了依據。圖2是多聯空調內風機調節邏輯建模圖。

圖2 多聯機風機調節邏輯狀態機模型
根據待測功能點的邏輯功能書,人工編寫測試用例輸入部分。空調機組的任意功能點,都是由輸入參數,邏輯計算,時序,輸出結果組成。我們編寫測試用例的時候,只需要考慮覆蓋待測功能點,將輸入參數值按時序寫出即可,對于邏輯計算出來的結果無需計算。
輸入參數部分又分為通訊類和非通訊類兩種,對多聯機而言,凡是可以體現在CAN協議中的控制參數,都稱為通訊類。自動測試系統需要將這部分參數按照CAN協議中的設備IP、協議行、協議列的格式進行編碼,用例中的中文名稱與協議位置編碼進行映射。空調機組中的負載控制,功能開關,模式狀態等均屬于此類參數。而溫度、濕度、水流開關、電壓開關、撥碼、跳線帽等外接開關或AD參數,它們需要接入傳感器或者繼電器來采集數據發送給機組,這部分參數定義為非通訊類參數,它們則按照通道號和參數類別來進行編碼,與數據執行裝置工裝板上的接口相對應。單系統機組測試用例格式見表1。

表1 多聯機測試用例模板
多系統機組中,對不同的外機系統,需要進一步的對參數名進行編號處理。采用設備名+序號+參數名的方式來編制,編碼的時候需要加入系統號。原理與單系統相同。
外機作為多聯機系統的核心控制器,控制整個系統的功能塊調度、協調內外機運行,在多聯機運行過程中起主導作用。因此,自動測試方案應該以此為基礎。開發數據轉換器,將機組原始的CAN通訊數據轉換成16進制數據流,通過電腦USB口收集數據。對于單系統網絡機組,數據轉換器接入CAN1網絡,即內外機之間。對于多系統網絡機組,數據轉換器接入CAN2網絡,即各個系統的外機之間的連接處。這樣,可以做到通過一臺電腦同時收集全部網絡中的內機和外機的參數,同時可以控制所有的內機和外機。
開發輸入數據執行工裝,它的主要功能就是將測試用例中的非CAN通訊內容輸入到機組,進行一個自動化的測試過程。需要參考機組的系統拓撲結構,針對具體的參數特性來開發。如溫度傳感器類,工裝需要將不同的溫度值搭配具體的分壓電阻值進行計算,得出需要給空調主板接口提供的電壓并提供給機組。開關類參數則需要使用繼電器,通過吸合和斷開達到機組開關接口閉合和斷開的同等效果。我們開發的工裝板可以提供多個AD接口和繼電器接口,并設計一套協議用作數據傳輸,此協議中將所有的接口進行分類編號,連入機組只需要對參數進行接口編號配置,就可以將用例中的溫度值和開關量輸入機組,從而代替真實的機組感溫包和開關負載。最終可以實現將測試用例輸入部分傳輸至機組的效果。
根據待測機組的邏輯功能書,搭建仿真模型,模型也要包含輸入、計算兩個模塊。其中輸入模塊與上述所得的測試用例輸入部分相同,相同意義的參數名稱要相同,確保同一模型在不同工況情況下的通用性。用例中的持續時間在仿真系統中采用定步長的倍數方式體現,如上述用例中,如仿真步長設定為1 s,則分別運行三條用例10步、20步、10步。這樣用例輸入部分仿真的效果跟機組同步,確保輸入的一致性。
計算模塊可以采用Stateflow來進行開發,開發依據就是該功能點的邏輯功能書。
仿真計算得到的結果作為測試用例的理論輸出部分。
待測機組按照測試用例來進行運行,得到的實際結果保存下來,與仿真得到的理論輸出進行對比,如果結果一致則認定測試OK,結果不一致需查找問題。
如果出現同一份功能邏輯,但是應用于不同的機組或者工況條件下,此時測試用例是不同的。只需要重新制定輸入參數表,繼續使用已經做好的仿真模型即可運算出結果。輸入數據執行工裝也可以繼續使用。但是新的輸入參數表中的相同意義的參數名稱要相同,只要符合這個原則,即使參數表的順序不同,做好映射算法,也可以做到模型的重用,從而大幅提高測試效率。
如果出現功能書的改動,則需要按新的功能書去修改仿真模型,并重新仿真得到一個新的結果,而用例的輸入部分則不需要改動,機組更新程序之后也隨之運行,仿真結果跟實際結果進行對比,同樣可以達到自動測試的效果。
注意:如果測試用例的時間過長,導致仿真時間過長的,則可以采用加大步長的手段解決。可以取測試用例中的持續時間數組中的最大公約數N為步長,模型仿真時步長按照N運行,即可確保無誤差的情況下提升仿真速度,進一步提升效率。但機組的運行時間必須以真實時間為基準,確保測試結果的準確性。

圖3 多聯機邏輯仿真模型圖
本方案提出的多聯機自動測試方案,不受硬件限制,依托于多聯機網絡通訊架構及通訊方式特性,采用虛擬參數傳遞,擴展性、可實施性好;在電腦上進行操作,安全可靠、節約人力物力。很好的解決了現有多聯機測試工況操作不便、效率低、存在人身安全隱患的問題。自動測試系統通過仿真計算的方式生成控制系統的測試用例庫,轉化成可輸入信號控制并監聽被測對象,并進行結果判斷及輸出報告。標準化測試過程由電腦全自動完成,杜絕質量對人工的依賴,全面提升產品開發質量和效率。