白 鈺,王 熙
(黑龍江八一農(nóng)墾大學 工程學院,黑龍江 大慶 163319)
我國是農(nóng)業(yè)生產(chǎn)大國,黑龍江墾區(qū)為重要組成部分,農(nóng)機化水平保持在98.6%。由于引進國外拖拉機數(shù)量較多,國外拖拉機都配有CAN總線,所以針對拖拉機CAN總線數(shù)據(jù)的研究非常必要。
基于拖拉機CAN數(shù)據(jù)的拖拉機作業(yè)報告單生成技術(shù),可以采集記錄拖拉機CAN數(shù)據(jù),通過軟件解析出拖拉機作業(yè)數(shù)據(jù),并根據(jù)解析出來的數(shù)據(jù)生成拖拉機作業(yè)報告單,將拖拉機的作業(yè)情況以紙質(zhì)報告單的形式體現(xiàn)出來,以便對拖拉機作業(yè)情況進行分析。
國外許多科研機構(gòu)及大公司都在積極關注和研究CAN總線。美國凱斯(CASE)、約翰迪爾(John Deere),德國克拉斯(CLAAS)、芬特(Fendt),日本久保田(KUBOTA)、洋馬(YANMAR)等公司,已開發(fā)出很多基于CAN總線技術(shù)的產(chǎn)品,用于農(nóng)機導航、農(nóng)機作業(yè)記錄,以及精量播種、聯(lián)合收獲等作業(yè)之中[1-2]?,F(xiàn)階段,關于拖拉機作業(yè)報告單生成技術(shù)的研究只有約翰迪爾公司在進行,生成的是全英文的作業(yè)報告單,無法滿足國內(nèi)的需求。
2015年,湖北工業(yè)大學明鑫朗等人對基于CAN總線的拖拉機控制系統(tǒng)平臺進行研究,完成了拖拉機的控制系統(tǒng)平臺軟件的設計[3]。2016年,黑龍江八一農(nóng)墾大學劉傳茂等人對農(nóng)機CAN數(shù)據(jù)記錄儀進行研究,設計了CAN總線無線數(shù)據(jù)傳輸記錄儀[4]。由此可以看出:目前國內(nèi)對CAN總線的研究較多,但關于拖拉機作業(yè)報告單生成技術(shù)仍然處于初步研發(fā)階段,具有一定的研究價值。
CAN( Controller Area Network)總線是一種有效支持分布式控制或定時控制的串行通訊網(wǎng)絡。它以半雙工的方式工作,1個節(jié)點發(fā)送信息,多個節(jié)點接收信息,實現(xiàn)了全分布式多機系統(tǒng),提高了數(shù)據(jù)在網(wǎng)絡中傳輸?shù)目煽啃?。CAN總線具有以下特點及優(yōu)點:
1)具有多主控制的特點,在總線空閑時,所有單元都可以發(fā)送消息。
2)在CAN協(xié)議中,所有消息的發(fā)送格式都是固定的。優(yōu)先級高的可以持續(xù)發(fā)送消息,優(yōu)先級低的則終止發(fā)送消息改為接收消息。
3)系統(tǒng)具有柔軟性,在連接總線的其他單元及應用層不改變的情況下就可以在總線上增加單元。
4)通信速度可以根據(jù)網(wǎng)絡規(guī)模設定,同一網(wǎng)絡中通訊速度必須統(tǒng)一。
5)遠程數(shù)據(jù)的請求可以通過發(fā)送“請求幀”來請求其他單元發(fā)送數(shù)據(jù)。
6)具有錯誤檢測、錯誤通知和錯誤恢復功能。
7)具有自行判斷錯誤功能,可以將總線上發(fā)生的持續(xù)錯誤的故障單元從總線上隔離出去。
8)CAN總線是可以同時連接多個單元的總線。
在農(nóng)墾九三管理局榮軍農(nóng)場進行試驗數(shù)據(jù)的采集記錄,進行整地作業(yè),地塊面積約30hm2,如圖1所示。
圖1 九三榮軍農(nóng)場試驗田
試驗所用車型為John Deere 7830 拖拉機,作業(yè)速度0~49.89km/h,額定功率151kW,最大扭矩975N·m。拖拉機配有CAN總線網(wǎng)絡、CAN物理接口及星火GPS導航設備。將CAN數(shù)據(jù)記錄儀(見圖2)通過接線與拖拉機連接,啟動拖拉機開始作業(yè),將整地作業(yè)時的數(shù)據(jù)采集記錄到CAN數(shù)據(jù)記錄儀之中。
圖2 CAN數(shù)據(jù)記錄儀
CAN總線數(shù)據(jù)記錄儀是專門用于儲存CAN數(shù)據(jù)的模塊。該模塊采用標準的CAN總線接口,將模塊接到CAN總線上,通過模塊上搭載的TF儲存卡,將總線上的數(shù)據(jù)實時儲存在儲存卡中;使用時,只需將存儲數(shù)據(jù)的儲存卡帶回,根據(jù)要求解析儲存卡上的數(shù)據(jù),即可獲得真實的總線數(shù)據(jù),用于分析。
為了實現(xiàn)不同農(nóng)林車輛及電控單元之間實現(xiàn)關聯(lián)通用和數(shù)據(jù)公用,國際標準化組織結(jié)合農(nóng)業(yè)機械發(fā)展趨勢,制定了農(nóng)林車輛串行網(wǎng)絡通信國際標準,即ISO11783標準。目前,歐洲的許多農(nóng)機公司所使用的CAN協(xié)議都是ISO11783標準[5-6]。根據(jù)此標準,對接收到的數(shù)據(jù)進行分析。
ISO11783通訊標準是以CAN2.0B協(xié)議作為網(wǎng)絡協(xié)議支持,規(guī)定拖拉機及農(nóng)機具的網(wǎng)絡通信的信息交換方法及格式,提供開放式系統(tǒng)互聯(lián)的方法,使電控單元之間實現(xiàn)數(shù)據(jù)共享及相互通信。
ISO11783標準實現(xiàn)了通訊的靈活,定義了傳感器、控制部件和執(zhí)行器,并且規(guī)定了信息儲存和顯示單元之間的數(shù)據(jù)傳輸協(xié)議及格式,依靠標準的信息格式實現(xiàn)通訊同步。CAN有兩種信息幀格式,即標準幀和擴展幀。ISO11783只針對擴展幀定義了標準化通信策略,所以其網(wǎng)絡上的控制必須用擴展幀格式。
解析的初始數(shù)據(jù)為拖拉機作業(yè)數(shù)據(jù),通過CAN總線得到報文數(shù)據(jù),根據(jù)ISO11783標準獲得其作業(yè)數(shù)據(jù)中的拖拉機參數(shù)。CAN總線數(shù)據(jù)接收,儲存報文格式如表1所示。
表1 CAN總線接收存儲的報文格式
以發(fā)動機轉(zhuǎn)速的解析為例:發(fā)動機控制器1的ID為:ID=0x0CF004F0=0000,1100,1111,0000,0000,0100,1111,0000→0Xf004=61444(十進制),則發(fā)動機控制器1的參數(shù)組編號為61444(十進制)。發(fā)動機控制器2的參數(shù)組8個字節(jié)的參數(shù)定義如表2所示。
發(fā)動機轉(zhuǎn)矩模式指發(fā)動機產(chǎn)生、限制及控制轉(zhuǎn)矩的模式,根據(jù)數(shù)據(jù)長度和分辨率進行計算,結(jié)合數(shù)據(jù)范圍和操作范圍,確定駕駛員的需求發(fā)動機轉(zhuǎn)矩百分比可疑參數(shù)號碼為512,實際發(fā)動機轉(zhuǎn)矩百分比的可疑參數(shù)號碼為513,以及發(fā)動機轉(zhuǎn)速的可疑參數(shù)號碼為190。
表2 發(fā)動機控制器1參數(shù)定義
根據(jù)表2結(jié)合發(fā)動機控制器ID,可以計算出實際發(fā)動機轉(zhuǎn)矩百分比為34%,發(fā)動機轉(zhuǎn)速為130.9r/min。根據(jù)上述解析過程,從拖拉機CAN數(shù)據(jù)中還可以獲得拖拉機作業(yè)時的經(jīng)緯度、作業(yè)速度、作業(yè)日期及作業(yè)油耗等參數(shù)信息。表3為全部解析出來的拖拉機作業(yè)參數(shù)表。
表3 拖拉機作業(yè)參數(shù)表
在代碼編寫之前,首先確定作業(yè)面積及油耗等數(shù)據(jù)的計算方法,然后通過編程軟件將程序編寫出來。
1)作業(yè)面積計算。根據(jù)拖拉機作業(yè)參數(shù)表中經(jīng)緯度參數(shù),拖拉機的作業(yè)面積方法計算如下:
將經(jīng)緯度參數(shù)通過高斯投影坐標正算公式轉(zhuǎn)換為大地坐標,即
(1)
(2)
式中B—大地緯度;
l—中央子午線的經(jīng)差;
C—由赤道至緯度B的子午線弧長;
e—第二偏心率;
g—自由落體加速度。
獲得大地坐標后,已知作業(yè)幅寬M,則實際作業(yè)面積計算公式為
(3)
式中S—作業(yè)面積(m2);
xi、yi—測點大地坐標(m)。
2)作業(yè)油耗量計算。拖拉機的作業(yè)油耗與發(fā)動機、作業(yè)地面高低變化及拖拉機手操作方式有關,通過大量的拖拉機作業(yè)油耗量的分析,找出合理油耗的作業(yè)方式,提高其作業(yè)經(jīng)濟性。
根據(jù)拖拉機作業(yè)參數(shù)表中的油耗數(shù)據(jù),計算總油耗量,公式為
(4)
式中X—總油耗量(L);
ai—每秒鐘的瞬時油耗(L/s)。
在將各項數(shù)據(jù)選用合理的方式計算出來以后,通過運用編程軟件進行拖拉機作業(yè)報告單生成軟件的程序編寫。在編程軟件的選用方面,選用VB6.0進行編程[7]。VB6.0全稱為VisualBasic 6.0,是目前世界上使用范圍較廣的程序開發(fā)工具之一。VB6.0結(jié)構(gòu)簡單,資源占有率低,實用性強,為編者的學習提供很大方便。Vb6.0具有以下特點:
1)可視化的集成開發(fā)環(huán)境;
2)面向?qū)ο蟮某绦蛟O計思想;
3)交互式的開發(fā)環(huán)境;
4)高度的可擴充性。
所以,選用VB6.0作業(yè)拖拉機作業(yè)報告單生成程序的編寫軟件。拖拉機作業(yè)報告單生成程序設計流程圖如圖3所示。
圖3 拖拉機作業(yè)報告單程序設計流程圖
根據(jù)流程圖的流程進行軟件的設計,在代碼設計時,部分主要功能實現(xiàn)的方式如下:
1)文件打開方式。通過添加microsoft common dialog comtorl6.0控件,重命名為cdg,然后在事件代碼中使用cdg.showopen 打開對話框,實現(xiàn)文件的打開。
2)軌跡圖的繪制。通過scale設置坐標系,scale方法能夠?qū)⒆鴺讼到y(tǒng)重置到所選擇的任意刻度,scale對運行時的圖形語句及控件位置的坐標系統(tǒng)都有影響,然后再根據(jù)VB中的line的使用來完成拖拉機作業(yè)軌跡圖的繪制。
在程序成功運行以后,將需要生成拖拉機作業(yè)報告單的拖拉機作業(yè)數(shù)據(jù)輸入到程序之中,拖拉機作業(yè)報告單生成流程圖如圖4所示。
圖4 拖拉機作業(yè)報告單運行流程圖
將表格中的數(shù)據(jù)輸入拖拉機作業(yè)報告單生成程序中,根據(jù)拖拉機作業(yè)情況,錄入作業(yè)單位、作業(yè)名稱、作業(yè)地點、拖拉機型號及作業(yè)機具等信息;然后,點擊讀取Excel文件,選擇要錄入的拖拉機作業(yè)數(shù)據(jù),經(jīng)過讀取后,生成拖拉機的作業(yè)軌跡圖,并將其他作業(yè)數(shù)據(jù)解析顯示出來;點擊生成作業(yè)報告單,就會生成如圖5所示的拖拉機作業(yè)報告單。
從拖拉機作業(yè)報告單中可以獲得作業(yè)時間、作業(yè)地點、作業(yè)軌跡、作業(yè)速度及作業(yè)油耗等信息,通過拖拉機作業(yè)報告單生成程序,可以大量地獲得具有詳細作業(yè)數(shù)據(jù)的拖拉機作業(yè)報告單。
在報告單中,根據(jù)作業(yè)軌跡和作業(yè)速度,可以確定拖拉機合理的作業(yè)時間,避免作業(yè)時不必要的時間消耗。根據(jù)作業(yè)油耗,可以確定合理的油耗,避免不必要的浪費,并且這些信息還可以作為農(nóng)機補貼的依據(jù),減少農(nóng)機糾紛。大量的拖拉機作業(yè)報告單匯總在一起互相對比,對比結(jié)果可以為農(nóng)機運用管理提供合理有效的依據(jù),提高了農(nóng)機運用質(zhì)量。
圖5 拖拉機作業(yè)報告單
1)通過對試驗采集到的拖拉機CAN總線數(shù)據(jù)進行解析,了解了拖拉機CAN總線的特點,掌握了ISO11783標準的應用,得到了拖拉機作業(yè)行駛數(shù)據(jù),為后續(xù)拖拉機作業(yè)數(shù)據(jù)分析奠定了良好的基礎。
2)設計了拖拉機作業(yè)報告單生成軟件,并運用VB6.0軟件進行程序的編寫,根據(jù)解析出來的拖拉機CAN總線數(shù)據(jù),生成便于打印、匯總整理拖拉機作業(yè)報告單,直觀地獲得拖拉機作業(yè)軌跡、作業(yè)時間、作業(yè)地點、作業(yè)速度、作業(yè)油耗等參數(shù),為拖拉機運用管理提供了可靠的數(shù)據(jù)依據(jù),保障了農(nóng)機運用合理高效的進行。