白 鈺,王 熙
(黑龍江八一農墾大學 工程學院,黑龍江 大慶 163319)
我國是農業生產大國,黑龍江墾區為重要組成部分,農機化水平保持在98.6%。由于引進國外拖拉機數量較多,國外拖拉機都配有CAN總線,所以針對拖拉機CAN總線數據的研究非常必要。
基于拖拉機CAN數據的拖拉機作業報告單生成技術,可以采集記錄拖拉機CAN數據,通過軟件解析出拖拉機作業數據,并根據解析出來的數據生成拖拉機作業報告單,將拖拉機的作業情況以紙質報告單的形式體現出來,以便對拖拉機作業情況進行分析。
國外許多科研機構及大公司都在積極關注和研究CAN總線。美國凱斯(CASE)、約翰迪爾(John Deere),德國克拉斯(CLAAS)、芬特(Fendt),日本久保田(KUBOTA)、洋馬(YANMAR)等公司,已開發出很多基于CAN總線技術的產品,用于農機導航、農機作業記錄,以及精量播種、聯合收獲等作業之中[1-2]。現階段,關于拖拉機作業報告單生成技術的研究只有約翰迪爾公司在進行,生成的是全英文的作業報告單,無法滿足國內的需求。
2015年,湖北工業大學明鑫朗等人對基于CAN總線的拖拉機控制系統平臺進行研究,完成了拖拉機的控制系統平臺軟件的設計[3]。2016年,黑龍江八一農墾大學劉傳茂等人對農機CAN數據記錄儀進行研究,設計了CAN總線無線數據傳輸記錄儀[4]。由此可以看出:目前國內對CAN總線的研究較多,但關于拖拉機作業報告單生成技術仍然處于初步研發階段,具有一定的研究價值。
CAN( Controller Area Network)總線是一種有效支持分布式控制或定時控制的串行通訊網絡。它以半雙工的方式工作,1個節點發送信息,多個節點接收信息,實現了全分布式多機系統,提高了數據在網絡中傳輸的可靠性。CAN總線具有以下特點及優點:
1)具有多主控制的特點,在總線空閑時,所有單元都可以發送消息。
2)在CAN協議中,所有消息的發送格式都是固定的。優先級高的可以持續發送消息,優先級低的則終止發送消息改為接收消息。
3)系統具有柔軟性,在連接總線的其他單元及應用層不改變的情況下就可以在總線上增加單元。
4)通信速度可以根據網絡規模設定,同一網絡中通訊速度必須統一。
5)遠程數據的請求可以通過發送“請求幀”來請求其他單元發送數據。
6)具有錯誤檢測、錯誤通知和錯誤恢復功能。
7)具有自行判斷錯誤功能,可以將總線上發生的持續錯誤的故障單元從總線上隔離出去。
8)CAN總線是可以同時連接多個單元的總線。
在農墾九三管理局榮軍農場進行試驗數據的采集記錄,進行整地作業,地塊面積約30hm2,如圖1所示。

圖1 九三榮軍農場試驗田
試驗所用車型為John Deere 7830 拖拉機,作業速度0~49.89km/h,額定功率151kW,最大扭矩975N·m。拖拉機配有CAN總線網絡、CAN物理接口及星火GPS導航設備。將CAN數據記錄儀(見圖2)通過接線與拖拉機連接,啟動拖拉機開始作業,將整地作業時的數據采集記錄到CAN數據記錄儀之中。

圖2 CAN數據記錄儀
CAN總線數據記錄儀是專門用于儲存CAN數據的模塊。該模塊采用標準的CAN總線接口,將模塊接到CAN總線上,通過模塊上搭載的TF儲存卡,將總線上的數據實時儲存在儲存卡中;使用時,只需將存儲數據的儲存卡帶回,根據要求解析儲存卡上的數據,即可獲得真實的總線數據,用于分析。
為了實現不同農林車輛及電控單元之間實現關聯通用和數據公用,國際標準化組織結合農業機械發展趨勢,制定了農林車輛串行網絡通信國際標準,即ISO11783標準。目前,歐洲的許多農機公司所使用的CAN協議都是ISO11783標準[5-6]。根據此標準,對接收到的數據進行分析。
ISO11783通訊標準是以CAN2.0B協議作為網絡協議支持,規定拖拉機及農機具的網絡通信的信息交換方法及格式,提供開放式系統互聯的方法,使電控單元之間實現數據共享及相互通信。
ISO11783標準實現了通訊的靈活,定義了傳感器、控制部件和執行器,并且規定了信息儲存和顯示單元之間的數據傳輸協議及格式,依靠標準的信息格式實現通訊同步。CAN有兩種信息幀格式,即標準幀和擴展幀。ISO11783只針對擴展幀定義了標準化通信策略,所以其網絡上的控制必須用擴展幀格式。
解析的初始數據為拖拉機作業數據,通過CAN總線得到報文數據,根據ISO11783標準獲得其作業數據中的拖拉機參數。CAN總線數據接收,儲存報文格式如表1所示。

表1 CAN總線接收存儲的報文格式
以發動機轉速的解析為例:發動機控制器1的ID為:ID=0x0CF004F0=0000,1100,1111,0000,0000,0100,1111,0000→0Xf004=61444(十進制),則發動機控制器1的參數組編號為61444(十進制)。發動機控制器2的參數組8個字節的參數定義如表2所示。
發動機轉矩模式指發動機產生、限制及控制轉矩的模式,根據數據長度和分辨率進行計算,結合數據范圍和操作范圍,確定駕駛員的需求發動機轉矩百分比可疑參數號碼為512,實際發動機轉矩百分比的可疑參數號碼為513,以及發動機轉速的可疑參數號碼為190。

表2 發動機控制器1參數定義
根據表2結合發動機控制器ID,可以計算出實際發動機轉矩百分比為34%,發動機轉速為130.9r/min。根據上述解析過程,從拖拉機CAN數據中還可以獲得拖拉機作業時的經緯度、作業速度、作業日期及作業油耗等參數信息。表3為全部解析出來的拖拉機作業參數表。

表3 拖拉機作業參數表
在代碼編寫之前,首先確定作業面積及油耗等數據的計算方法,然后通過編程軟件將程序編寫出來。
1)作業面積計算。根據拖拉機作業參數表中經緯度參數,拖拉機的作業面積方法計算如下:
將經緯度參數通過高斯投影坐標正算公式轉換為大地坐標,即
(1)
(2)
式中B—大地緯度;
l—中央子午線的經差;
C—由赤道至緯度B的子午線弧長;
e—第二偏心率;
g—自由落體加速度。
獲得大地坐標后,已知作業幅寬M,則實際作業面積計算公式為
(3)
式中S—作業面積(m2);
xi、yi—測點大地坐標(m)。
2)作業油耗量計算。拖拉機的作業油耗與發動機、作業地面高低變化及拖拉機手操作方式有關,通過大量的拖拉機作業油耗量的分析,找出合理油耗的作業方式,提高其作業經濟性。
根據拖拉機作業參數表中的油耗數據,計算總油耗量,公式為
(4)
式中X—總油耗量(L);
ai—每秒鐘的瞬時油耗(L/s)。
在將各項數據選用合理的方式計算出來以后,通過運用編程軟件進行拖拉機作業報告單生成軟件的程序編寫。在編程軟件的選用方面,選用VB6.0進行編程[7]。VB6.0全稱為VisualBasic 6.0,是目前世界上使用范圍較廣的程序開發工具之一。VB6.0結構簡單,資源占有率低,實用性強,為編者的學習提供很大方便。Vb6.0具有以下特點:
1)可視化的集成開發環境;
2)面向對象的程序設計思想;
3)交互式的開發環境;
4)高度的可擴充性。
所以,選用VB6.0作業拖拉機作業報告單生成程序的編寫軟件。拖拉機作業報告單生成程序設計流程圖如圖3所示。

圖3 拖拉機作業報告單程序設計流程圖
根據流程圖的流程進行軟件的設計,在代碼設計時,部分主要功能實現的方式如下:
1)文件打開方式。通過添加microsoft common dialog comtorl6.0控件,重命名為cdg,然后在事件代碼中使用cdg.showopen 打開對話框,實現文件的打開。
2)軌跡圖的繪制。通過scale設置坐標系,scale方法能夠將坐標系統重置到所選擇的任意刻度,scale對運行時的圖形語句及控件位置的坐標系統都有影響,然后再根據VB中的line的使用來完成拖拉機作業軌跡圖的繪制。
在程序成功運行以后,將需要生成拖拉機作業報告單的拖拉機作業數據輸入到程序之中,拖拉機作業報告單生成流程圖如圖4所示。

圖4 拖拉機作業報告單運行流程圖
將表格中的數據輸入拖拉機作業報告單生成程序中,根據拖拉機作業情況,錄入作業單位、作業名稱、作業地點、拖拉機型號及作業機具等信息;然后,點擊讀取Excel文件,選擇要錄入的拖拉機作業數據,經過讀取后,生成拖拉機的作業軌跡圖,并將其他作業數據解析顯示出來;點擊生成作業報告單,就會生成如圖5所示的拖拉機作業報告單。
從拖拉機作業報告單中可以獲得作業時間、作業地點、作業軌跡、作業速度及作業油耗等信息,通過拖拉機作業報告單生成程序,可以大量地獲得具有詳細作業數據的拖拉機作業報告單。
在報告單中,根據作業軌跡和作業速度,可以確定拖拉機合理的作業時間,避免作業時不必要的時間消耗。根據作業油耗,可以確定合理的油耗,避免不必要的浪費,并且這些信息還可以作為農機補貼的依據,減少農機糾紛。大量的拖拉機作業報告單匯總在一起互相對比,對比結果可以為農機運用管理提供合理有效的依據,提高了農機運用質量。

圖5 拖拉機作業報告單
1)通過對試驗采集到的拖拉機CAN總線數據進行解析,了解了拖拉機CAN總線的特點,掌握了ISO11783標準的應用,得到了拖拉機作業行駛數據,為后續拖拉機作業數據分析奠定了良好的基礎。
2)設計了拖拉機作業報告單生成軟件,并運用VB6.0軟件進行程序的編寫,根據解析出來的拖拉機CAN總線數據,生成便于打印、匯總整理拖拉機作業報告單,直觀地獲得拖拉機作業軌跡、作業時間、作業地點、作業速度、作業油耗等參數,為拖拉機運用管理提供了可靠的數據依據,保障了農機運用合理高效的進行。