韓長杰,韓鴻飛,尤佳,芮雪,張靜,高杰
(1. 新疆農業大學機電工程學院,烏魯木齊市,830052; 2. 新疆師范高等??茖W校,烏魯木齊市,830043;3. 新疆中收農牧機械有限公司,烏魯木齊市,830013)
隨著科技的進步,農機裝備朝自動化和智能化方向發展成為趨勢[1]。智能化農機不僅可以完成傳統農業機械生產任務,還可以監測機械狀態、作業質量、土壤情況、運行軌跡等工況信息,成為精細化作業的技術支撐[2-4]。
國內外研究人員對農機裝備工況信息監測系統進行了大量研究。梁學修等運用CAN總線技術設計了聯合收割機信息在線監測系統,該系統將機械運動工作部件轉速、谷物夾帶損失、油耗等顯示于車載控制器上進行信息監測和控制。史國濱等[5]運用地理位置定位、無線通信等技術,設計了一種農機作業軌跡監測系統,可以實現作業軌跡回放、作業實時定位及長度面積測量等功能。苗中華等[6]設計了一種適用于采棉機的數字化智能監控系統,該系統不僅可以監測采棉機的地面速度、發動機轉速、風機轉速和水壓等信息,也可以對采棉機的對行情況和作業狀況進行監測。
針對自動移栽機無法實時監測工況信息問題,確保監測系統的拓展性與集成性,設計一種自動移栽機工況信息監測系統,可對機械狀態、取喂苗數量等基本信息進行監控,也可以通過對基礎數據進行分析,以圖像、視頻、表格等形式直觀顯示移栽機作業狀況[7-8]。
根據韓長杰等[9]設計的自動穴盤苗移栽機為基礎,進行工況信息監測系統的研發。該移栽機基于2ZBX—2型吊籃式半自動移栽機,研制出的一種穴盤移栽自動取喂苗裝置,實現自動移栽的效果,如圖1所示。其主要硬件結構由苗盤輸送機構、取苗機械手、隨動苗筒喂苗機構、柔性鏈旋轉苗筒以及栽植器等,自動取喂苗裝置結合機械、氣動與電氣控制技術,按照PLC程序設計各執行機構順序執行,完成對缽苗取喂轉移的全部流程,取喂苗效率可達到83株/min。工況信息監測系統對原有的檢測控制系統進行優化,使用多種傳感設備對機械狀態和作業信息進行多方面采集。并對這些基礎信息進行數據處理與算法分析,完成整體監測系統的功能設計[10-11]。

圖1 自動穴盤苗移栽機Fig. 1 Automatic plug seedling transplanter1.栽植器 2.工業相機安裝位置 3.柔性鏈旋轉苗筒 4.絕對值編碼器安裝位置 5.隨動苗筒喂苗機構 6.GNSS接收器安裝位置 7.苗盤輸送機構 8.取苗機械手 9.電氣控制柜 10.缽苗計數葉片
工況信息監測系統基于自動移栽機主體,以GNSS接收器、絕對值編碼器、磁性開關、接近開關等傳感設備進行數據采集,以PLC作為邏輯控制器,以集成了RS485、USB、RJ—45等數據傳輸接口的工控一體機作為數據接收、智能分析運算、前端界面展示的操控中心,采用電氣控制技術、檢測技術、多線程任務管理等技術,搭建起集自動化、模塊化、智能化為一體的自動移栽機綜合信息處理與決策分析系統,系統總體框架如圖2所示。

圖2 監測系統框架圖Fig. 2 Framework of monitoring system
經過綜合考慮作業信息監測系統所需要的設備的性能、質量、經濟等相關因素,選擇的硬件設備如表1所示。
軟件系統的開發以Python作為程序設計語言、PyCharm作為其開發環境,并結合開發工具庫完成??紤]其兼容性,該系統在搭建有Windows10 64位系統的工業一體機上運行。系統軟件最終在搭建有Windows10 64位系統的工業一體機上運行,考慮到兼容性問題,軟件的編寫也需要在使對應系統的電腦上進行。
系統主要采用PyQt5工具庫進行軟件界面與業務邏輯的設計,其作為Qt框架的Python語言實現,是最強大的GUI庫之一,它提供了一個設計良好的窗口控件集合。PyQt5能夠跨系統運行在Linux、Window和Mac OS系統上,可以使用信號與槽機制進行通信,并且對Qt庫進行完全封裝。在使用成熟的IDE進行界面設計后,可以自動生成可執行的Python代碼[12-13]。

表1 硬件設備統計表Tab. 1 Hardware equipment statistics
工況信息監測系統以工控計算機為控制計算中心,與PLC、GNSS接收器等多種設備進行數據交互,并根據功能要求對數據進行計算和分析。采用PyQt5工具庫中QThread類進行多線程任務管理,將不同設備的通信設置和重要功能的設計放入子線程中,實現對數據的采集、解析和計算工作,流程示意圖如圖3所示。
針對不同數據采集設備創建相應子線程,使用不同通信手段與計算方法對各設備中采集數據進行交互處理,數據集成后打包傳輸至主線程中進行后續操作。使用該種方法進行多設備數據集成時,系統不會出現顯示卡頓、閃退及信息延時接收等問題,也可有效解決工況信息在前端界面中的實時顯示問題,使軟件系統運行更加穩定。

圖3 多線程任務管理流程示意圖Fig. 3 Multi thread task management flow diagram
監測系統內基礎數據來源主要包含工業控制計算機與PLC之間通信交互以及GNSS接收器采集的地理位置信息。通過程序設計,在整個系統啟動前,各設備應順序啟動相應子線程,將需要的數據進行解析、計算、打包后發射信號。主線程應建立相應的功能槽函數進行信號的接收,在各子線程依次啟動完畢后,系統才算正式啟動,否則任一子線程啟動失敗,將會返回初始判斷條件重新加載啟動,具體程序設計流程圖如圖4所示。

圖4 主線程程序設計流程圖Fig. 4 Main thread programming flow chart
2.2.1 PLC端口設置與程序設計
PLC主要負責采集傳感器數據以及執行機構的控制工作[14-16],與監測系統間的數據交互包括PLC中寄存器數據的存儲、PLC與系統之間的通信和數據的集成讀寫操作。將需要傳輸的數據傳入指定寄存器存儲,等待后續與監測系統進行數據交互。接近開關、磁性開關、絕對值編碼器以及取喂苗系統中的執行元件都由PLC進行數據采集和邏輯控制,具體I/O口分配表如表2所示。
通過如表2中所示接入PLC,在程序設計中插入高速計數器進行二進制碼的記錄,再將二進制碼轉化為格雷碼進行編碼器的定位功能,轉換之后的格雷碼值范圍為1~360,對應編碼器所裝軸轉一圈為360個脈沖,方便之后實現定位功能
2.2.2 PLC與工控機通信設置
PLC子線程主要工作包括PLC與監測系統之間的通信設置、對PLC中寄存器存儲數據進行提取、根據需求對讀取的基礎數據進行運算等。需要將PLC與工控機通過網線連接,并在Python中加載Snap7工具庫,通過Client類函數設置以太網IP地址完成對PLC的通信。系統設置IP地址為192.168.2.2,應與PLC中IP地址為同一網段。完成對PLC的通信后,進行數據采集、處理和打包工作。編寫對PLC中寄存器讀取代碼并依次調用所需數據,對于一些讀取格式與打包格式不同的數據進行轉換處理,完成以上工作后發射信號等待主線程中函數接收,具體流程如5所示。

圖5 PLC子線程程序流程圖Fig. 5 PLC sub thread program flow chart
系統使用北天GNSS BN-808接收器作為地理位置信息的采集設備,其通過USB串口與主控中心進行連接,采用Serial工具庫對串口數據信息進行提取[17]。采集到的數據是根據NMEA-0183協議標準設定的,采用Pynmea2工具庫對數據進行再次解析,將經緯度坐標值、對地速度等所需信息提取出來進行后續轉換與計算。GNSS子線程主要工作是GNSS接收器與監測系統之間的通信設置、NMEA數據的提取與解析以及對解析后數據的格式轉換等。設置串口、波特率、采集頻率等參數采集串口數據,通過條件判斷識別串文格式,在不同的格式中解析出所使用的具體數據,完成對串口信息的提取與解析工作。程序流程如圖6所示。

圖6 GNSS子線程程序流程圖Fig. 6 GNSS sub thread program flow chart
由于移栽機取喂苗裝置與栽植器存在傳動關系,將絕對值編碼器安裝至主動軸上,利用其定位功能確定每個栽植點的具體位置。當編碼器檢測到缽苗從鴨嘴栽植至地中,提取該點經緯度坐標值及對地速度并儲存。由于受到地輪打滑等因素的影響,每兩株缽苗栽植點距離有一定的誤差。將相鄰兩點的經緯度坐標值由角度轉換為弧度,通過式(1)~式(4)進行兩點距離的估算。
(1)
b=cos(lat 1)×cos(lat 2)×c
(2)
(3)
(4)
其中:兩點經緯度坐標分別為(lat 1,lon 1)(lat 2,lon 2),r=6 371(地球半徑值,單位為km),a、b、c為中間代數值,計算出最終距離單位為m。
通過上述公式可以計算出兩點栽植株距,將經緯度坐標值及對地速度等數據處理與存儲后,打包傳輸至主線程中以折線圖、表格和文字等形式顯示至前端界面,以達到監測的效果。
系統采用PyQt5工具庫進行監測界面的設計與業務邏輯的編寫工作,為了達到界面與邏輯分離的效果,使用外部工具Qt Designer進行控件添加與擺放工作。系統監測界面由登錄界面與工作界面兩部分構成[18-20]。
登錄界面包括用戶名輸入、密碼驗證以及系統簡介等功能,其目的是為了記錄操作人員信息與監測系統的介紹。若用戶名密碼輸入錯誤,會伴有相應的提示信息,反之則進入工作界面,如圖7所示。

圖7 登錄界面設計圖Fig. 7 Login interface design
工作界面包括系統啟動停止操作、手自動切換、常規工況信息監測、手動調試按鈕組以及各執行機構運行狀態等功能,具體界面如圖8所示。

(a) 作業信息監測界面

(b) 運行狀態監測界面圖8 工作界面設計圖Fig. 8 Working interface design
監測系統啟動后,各設備按照默認設置依次開始工作,同時工況信息與運行狀態信息實時顯示在相應信息欄。作業結束后,系統自動生成一份報表,匯總工作時長、栽植苗數、漏苗數等關鍵工況信息。
系統包括自動運行與手動調試兩種狀態。自動運行模式下,各機構按照程序設置有序進行工作,界面中會實時顯示關鍵工況信息,可以直觀的監視移栽機的工作狀態。手動調試模式下,通過各執行機構的虛擬按鈕與運行狀態信息配合調試,在實際工作中可以更為方便的排除控制系統出現的問題。
自動移栽機工況信息監測系統整體性能的測試地點在新疆農業大學機電工程學院農牧機械重點實驗室,系統測試條件如圖9所示。

圖9 監測系統試驗條件Fig. 9 Test conditions of monitoring system
將設計好的監測系統打包成軟件在工控一體機上運行,按照接線標準連接傳感器、PLC以及GNSS接收器等設備,軟件運行完畢后,將樣機置于土槽間運行。測試內容包括登錄界面功能的完善性、設備通信的穩定性、工況信息顯示的準確性與系統整體運行的穩定性。根據系統功能設計操作方式進行觀測,對比機械實際運行狀態、各設備采集原始數據與監測界面顯示數據,測試系統整體性能。
由于移栽機使用8×16穴型苗盤進行移栽工作,準備三盤該規格苗盤培育的缽苗進行移栽試驗。首先對移栽機工作狀態界面的基礎信息顯示準確性、實時性進行測試。伴隨系統啟動,各傳感控制設備依次通信成功,移栽機調至自動運行狀態,工作時間、株距、行駛速度、栽植信息、缽苗定位信息等作業數據都實時變化,并以不同形式顯示至軟件界面。系統調至手動調試狀態,配合運行狀態界面,通過界面下方虛擬按鈕對各執行機構進行手動調試,操作對應按鈕系統將信號寫入PLC中,達到對執行機構氣缸的控制目的。
為測試系統自動運行狀態下缽苗轉移信息是否準確,觀測機械手取苗、旋轉苗筒投苗、栽植器栽苗3個缽苗轉移階段中缽苗數量,分別進行5組試驗,每組為50株缽苗。觀測三個階段中缽苗實際轉移數量與系統檢測數量,數據總結如表3所示。

表3 缽苗轉移信息準確性試驗Tab. 3 Accuracy test of bowl seedling transfer information
經過自動移栽機工況信息監測系統整體測試,系統設計功能運行正常,工作狀況信息顯示準確無誤,手動操作配合UI界面運行顯示無誤,數據的記錄儲存等功能都可以穩定持續運行,機械手取苗、旋轉苗筒投苗、栽植器栽苗3個缽苗轉移階段檢測準確率分別為99.2%、99.5%、99.2%,基本達到工況信息監測系統的設計要求。
1) 根據現有自動移栽機的田間工作狀況,確定了移栽機作業信息監測系統的設計方案,并選擇合適的硬件設備和軟件開發環境。
2) 采用工業控制計算機作為主控中心,將PLC與GNSS接收器中采集的數據集成至系統中進行計算、分析、決策,并基于PyQt5進行監測系統軟件設計,實現了移栽機多傳感設備數據的集成和可視化。
3) 通過監測系統整體性能測試表明,機械手取苗、旋轉苗筒投苗、栽植器栽苗3個缽苗轉移階段檢測準確率分別為99.2%、99.5%、99.2%,工況實際信息與監測信息基本無誤,可以達到信息顯示的實時性、準確性,系統整體功能運行穩定可靠。