• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      煤礦巡檢機器人控制系統(tǒng)設計

      2022-06-22 02:14:28蔡治華周東旭趙明輝
      工礦自動化 2022年5期
      關鍵詞:信號量緩沖區(qū)線程

      蔡治華, 周東旭, 趙明輝

      (1.煤炭科學研究總院,北京 100013;2.天津城建大學 控制與機械工程學院,天津 300384;3.中煤科工集團上海有限公司,上海 200030;4.同濟大學 電子與信息工程學院,上海 201804)

      0 引言

      帶式輸送機是煤炭開采中重要的運輸設備,其可靠性對煤炭高效開采具有重要意義[1-2]。傳統(tǒng)的帶式輸送機狀態(tài)監(jiān)測一般采用人工巡檢或傳感器等方法,人工巡檢增加了人員危險,傳感器維護成本高,均難以實現(xiàn)可靠的狀態(tài)監(jiān)測[3]。隨著機器人技術發(fā)展,將巡檢機器人應用于帶式輸送機狀態(tài)監(jiān)測,成為煤礦自動化監(jiān)測的研究趨勢[4]。

      巡檢機器人屬于復雜的機電一體化產品[5],其功能越強大,所攜帶的各類電子設備越多,控制系統(tǒng)越復雜。煤礦巡檢機器人控制系統(tǒng)需要實現(xiàn)環(huán)境監(jiān)測數據采集、無線網絡數據通信、傳感器數據處理、巡檢機器人運動控制等關鍵功能[6],其可靠性決定了巡檢機器人運行狀態(tài),是保證巡檢機器人穩(wěn)定運行的關鍵[7]。文獻[8]采用S7?200 PLC作為煤礦巡檢機器人控制系統(tǒng)核心控制器,通過其內部裸機程序,可將巡檢機器人采集的數據編碼壓縮后以無線通信方式傳輸至PLC控制箱,在惡劣環(huán)境中能保持較好的控制穩(wěn)定性;但裸機程序采用在主函數中輪詢的方式對各個線程任務進行逐個處理[9],通過設置相應的中斷響應實現(xiàn)線程任務的并行處理,這種方式缺乏可移植性,并行性較差,且數據壓縮解壓影響了控制的實時性,增加了數據丟失的可能。文獻[10]采用DSP微控制器作為煤礦巡檢機器人控制器,其內部裸機程序實現(xiàn)了機器人通過WiFi與地面監(jiān)控服務器進行指令和數據的實時通信,控制程序運算速度快,但數據傳輸易受井下環(huán)境磁場影響,造成數據丟失和傳輸不穩(wěn)定。

      近年來,具有高實時性、高可移植性、高可拓展性、高穩(wěn)定性等優(yōu)點的實時操作系統(tǒng)受到越來越多的關注,通過在微控制器內部運行一個微型的實時操作系統(tǒng)來實現(xiàn)硬件資源合理化調用[11-12]。綜合考慮煤礦巡檢機器人對系統(tǒng)整體穩(wěn)定性、數據采集實時性、數據傳輸準確性等因素的要求,本文將實時操作系統(tǒng)引入煤礦巡檢機器人控制中,設計了基于QT和RT?Thread的煤礦巡檢機器人控制系統(tǒng),可解決傳統(tǒng)巡檢機器人控制系統(tǒng)可靠性低、實時性差等問題。

      1 系統(tǒng)總體結構

      煤礦巡檢機器人控制系統(tǒng)按照功能可劃分為上位機?人機交互控制臺和下位機?微控制器2個部分,如圖1所示。上位機是巡檢機器人的指令與數據處理中樞:可為用戶提供人機交互界面,顯示下位機發(fā)送的傳感器數據;接收用戶發(fā)出的指令,完成對巡檢機器人的遠程控制;對下位機發(fā)送的數據進行處理,并及時反饋處理后的數據,針對異常數據進行報警。下位機是巡檢機器人控制系統(tǒng)的核心,用于收集傳感器數據,搭載電池模塊與報警指示燈,通過WiFi網絡與上位機進行無線通信。

      圖1 煤礦巡檢機器人控制系統(tǒng)總體結構Fig.1 General structure of mine inspection robot control system

      2 系統(tǒng)硬件

      煤礦巡檢機器人控制系統(tǒng)下位機采用STM32F103VET6單片機開發(fā),硬件結構如圖2所示。礦用傳感器和電池模塊通過RS485總線連接到單片機;超聲波雷達采用串口通信方式與單片機進行數據傳輸;報警指示燈通過IIC接口與單片機相連接;以太網通信模塊通過SPI接口與單片機進行全雙工通信。

      圖2 煤礦巡檢機器人控制系統(tǒng)下位機硬件結構Fig.2 Hardware structure of lower computer of coal mine inspection robot control system

      3 系統(tǒng)軟件

      3.1 上位機

      QT是一個基于C++語言的圖形化界面類庫,可通過調用內置的C++類實現(xiàn)所需功能。QT具有良好的可移植性,方便跨平臺操作。

      調用Tab Widget控件開發(fā)巡檢機器人控制系統(tǒng)設置界面,用于供用戶設置巡檢機器人各類參數與環(huán)境監(jiān)測數據正常范圍值;調用串口控制類QserialPort開發(fā)人機交互界面,用于實現(xiàn)用戶對巡檢機器人啟動、停止及運行速度的控制;調用Table Widget表格控件開發(fā)環(huán)境監(jiān)測數據與報警記錄顯示界面,當出現(xiàn)異常情況時,記錄出現(xiàn)異常情況的時間與傳感器類型;調用攝像頭與熱成像儀的軟件開發(fā)工具包,引用工具包中的SPI函數控制攝像頭的旋轉、拍攝、錄像等功能。煤礦巡檢機器人控制系統(tǒng)上位機界面如圖3所示。

      圖3 煤礦巡檢機器人控制系統(tǒng)上位機界面Fig.3 Interface of upper computer of coal mine inspection robot control system

      3.2 下位機

      RT?Thread是國產開源實時操作系統(tǒng),其支持多任務同時運行,通過時間片輪轉的方式實現(xiàn)各個任務并行操作[13-15],以保證系統(tǒng)實時性。RT?Thread內部包括信號量、互斥量、進程事件、郵箱等內核對象,可方便地進行不同線程之間的協(xié)同與通信,且具有高度的可裁剪性,能夠運行于硬件資源相對較小的微控制器中。本文所采用的經過裁剪與開發(fā)后的RT?Thread 僅需要 85 kB 的單片機 Flash 空間及 12 kB的RAM內存空間,而STM32F103VET6單片機具有512 kB 的Flash及64 kB 的RAM,完全滿足RT?Thread運行需求。

      基于RT?Thread設計了煤礦巡檢機器人自動巡檢流程,如圖4所示。巡檢機器人在開機之后對傳感器數據采集、以太網通信、雷達信號處理、指示燈報警等線程任務進行初始化操作;在未接收到上位機下達的指令時,巡檢機器人處于休眠狀態(tài);當接收到巡檢指令時,巡檢機器人啟動各線程任務與運動子程序并開始巡檢作業(yè);巡檢機器人朝著巡檢指令的設定位置行進,在行進過程中若感知到周圍出現(xiàn)異常參數,上傳異常參數與實時位置,隨后根據指令選擇繼續(xù)巡檢或停止巡檢,若繼續(xù)巡檢,則巡檢至設定位置,上傳環(huán)境參數后結束巡檢。

      圖4 煤礦巡檢機器人自動巡檢流程Fig.4 Automatic inspection process of coal mine inspection robot

      在巡檢機器人自動巡檢過程中,需要實現(xiàn)傳感器數據采集、以太網通信、雷達信號處理、指示燈報警4個重要線程任務的并行。每個線程都須通過RT?Thread的線程調度器執(zhí)行嚴格的時間片,一旦執(zhí)行時間超過時間片大小,則由線程調度器在單片機底層寄存器強行切換線程,以保證4個線程的并行性。線程任務啟動流程如圖5所示。首先調用實時操作系統(tǒng)啟動函數;其次調用STM32F103VET6底層基本硬件初始化函數,完成系統(tǒng)定時器設置、串口等底層外設接口初始化;然后對系統(tǒng)的內核對象(包括定時器、線程調度器等)進行初始化;最后創(chuàng)建多線程任務并啟動線程調度器,線程調度器按照時間片輪轉的方式與線程優(yōu)先級來調度4個線程任務,實現(xiàn)線程任務之間宏觀上的并行。

      圖5 線程任務啟動流程Fig.5 Thread task start process

      3.3 上位機與下位機之間通信

      由于無線通信傳輸會受井下磁場環(huán)境影響,上位機與下位機出現(xiàn)運行時鐘不同步及運行速度差異,導致兩者之間存在一定的數據延遲,并且在長時間數據傳輸過程中,易產生數據包丟失情況,影響控制系統(tǒng)可靠性。

      為解決上述問題,在RT?Thread實時操作系統(tǒng)中設計環(huán)形隊列數據緩沖區(qū),如圖6所示,以保證大量按照時間順序采集的傳感器數據無丟失地發(fā)送至上位機。環(huán)形隊列是一種首尾相接的圓環(huán)形數據結構,遵循先進先出的原則。傳感器數據采集線程所采集的各個傳感器數據按照時間順序放入環(huán)形隊列中,下一個數據將要放入的位置稱為環(huán)形隊列頭部,最先放入數據的位置稱為環(huán)形隊列尾部。傳感器數據采集線程負責不斷地將采集的數據打包成一個結構體數據塊,從隊列頭部開始放入環(huán)形隊列中,而以太網通信線程負責從隊列尾部取出結構體數據塊,并通過網絡發(fā)送至上位機。

      圖6 環(huán)形隊列數據緩沖區(qū)結構Fig.6 Circular queue data buffer structure

      在實際工程應用中,僅在上下位機數據傳輸過程中應用環(huán)形隊列數據緩沖區(qū),會導致傳感器數據采集線程與以太網通信線程之間缺少協(xié)同配合。環(huán)形隊列數據緩沖區(qū)模型如圖7所示,在RT?Thread實時操作系統(tǒng)中創(chuàng)建一個初始值為1的信號量,傳感器數據采集線程與以太網通信線程會同時搶占該信號量,一旦信號量被一方線程獲取,其值會變?yōu)?,此時共享區(qū)域將被鎖定,另一方線程無法再獲取信號量,產生資源互斥。傳感器數據采集線程與以太網通信線程之間共享了1個環(huán)形隊列數據緩沖區(qū),該區(qū)域實際上屬于實時操作系統(tǒng)中的臨界區(qū)域,在同一時刻只能被一方線程訪問,否則結構體數據塊中的數據可能發(fā)生混亂,影響控制系統(tǒng)的可靠性。

      圖7 環(huán)形隊列數據緩沖區(qū)模型Fig.7 Circular queue data buffer model

      本文通過在RT?Thread實時操作系統(tǒng)中使用內核對象信號量來解決線程間的同步問題。在實時操作系統(tǒng)中創(chuàng)建一個初始值為環(huán)形隊列數據緩沖區(qū)可放入數據大小的信號量(稱為緩沖區(qū)空信號量),同時創(chuàng)建另一個初始值為0的信號量(稱為緩沖區(qū)滿信號量),從而建立環(huán)形隊列數據緩沖區(qū)優(yōu)化模型,如圖8所示。傳感器數據采集線程不停獲取緩沖區(qū)空信號量,放入打包好的結構體數據塊后釋放緩沖區(qū)滿信號量;以太網通信線程不停獲取緩沖區(qū)滿信號量,將結構體數據塊發(fā)送至上位機后釋放緩沖區(qū)空信號量。該機制保證了共享資源不會互斥,傳感器數據采集線程與以太網通信線程相輔相成,形成一個動態(tài)的過程,傳感器采集數據與發(fā)送數據之間的時間差通過環(huán)形隊列數據緩沖區(qū)來消除,保證數據無丟失、穩(wěn)定地傳輸至上位機。

      圖8 環(huán)形隊列數據緩沖區(qū)優(yōu)化模型Fig.8 Circular queue buffer optimization model

      4 系統(tǒng)測試

      為測試煤礦巡檢機器人控制系統(tǒng)的實時性、可靠性,搭建巡檢機器人實驗平臺,包括長20 m的軌道、軌道支架、鋼絲繩牽引裝置、機器人本體等,如圖9所示。將本文基于QT和RT?Thread設計的巡檢機器人控制系統(tǒng)作為實驗組,傳統(tǒng)的PLC內部編寫裸機程序的巡檢機器人控制系統(tǒng)作為對照組。

      圖9 巡檢機器人實驗平臺Fig.9 Inspection robot experimental platform

      4.1 控制系統(tǒng)線程切換延遲時間測試

      利用互斥鎖和信號量實現(xiàn)控制系統(tǒng)中傳感器數據采集線程與以太網通信線程的不停切換(為減小計時誤差,選用4個線程中優(yōu)先級最高的2個線程),在一個線程結束后與另一個線程喚醒前分別計時,利用2次計時的差值來計算線程切換延遲時間。經過1 000次重復測試,結果如圖10所示。可看出傳統(tǒng)控制系統(tǒng)的線程切換延遲時間最大值為198 μs,最小值為 119 μs,平均值為 158 μs,方差為550;本文控制系統(tǒng)的線程切換延遲時間最大值為1.48 μs,最小值為 0.7 μs,平均值為 1.08 μs,方差為0.05;本文控制系統(tǒng)的線程切換延遲時間平均值與方差遠小于傳統(tǒng)控制系統(tǒng),表明本文控制系統(tǒng)具有更高的實時性,且線程切換過程穩(wěn)定性更好。

      圖10 線程切換延遲時間測試結果Fig.10 Thread switching delay time test results

      4.2 控制系統(tǒng)傳感器數據傳輸測試

      通過控制系統(tǒng)下位機串口發(fā)送字節(jié)數與上位機網口接收字節(jié)數來測試數據傳輸可靠性。設置數據傳輸周期分別為 100,500 ms,經過 5 min 運行,測試結果見表1。可看出本文控制系統(tǒng)在數據傳輸周期為500 ms時的數據丟失率為0.5%,在數據傳輸周期為100 ms時的數據丟失率為0.06%;傳統(tǒng)控制系統(tǒng)在數據傳輸周期為500,100 ms時的數據丟失率均為2.4%;本文控制系統(tǒng)的數據丟失率遠小于傳統(tǒng)控制系統(tǒng),在大量數據快速傳輸時,數據傳輸更可靠。

      表1 數據傳輸測試結果Table 1 Data transmission test results

      5 結論

      (1) 采用QT軟件設計了煤礦巡檢機器人控制系統(tǒng)上位機,可處理下位機發(fā)送的數據,實現(xiàn)參數設置、巡檢機器人啟停運動控制、傳感器監(jiān)測數據顯示、云臺攝像頭與熱成像儀顯示記錄等功能,增強了人機交互性能,提高了控制系統(tǒng)操作性。

      (2) 利用 RT?Thread 實時操作系統(tǒng)設計了煤礦巡檢機器人控制系統(tǒng)下位機,通過線程調度器以時間片輪轉方式調度多線程任務,實現(xiàn)了巡檢機器人自動巡檢過程中多線程任務的宏觀并行,提高了控制系統(tǒng)實時性。

      (3) 設計了環(huán)形隊列數據緩沖區(qū)并進行優(yōu)化,解決了巡檢機器人下位機至上位機數據傳輸過程中數據大量丟失的問題。

      (4) 基于 QT 和 RT?Thread 設計的煤礦巡檢機器人控制系統(tǒng)與傳統(tǒng)的PLC內部編寫裸機程序的巡檢機器人控制系統(tǒng)相比,具有更高的實時性和可靠性。

      猜你喜歡
      信號量緩沖區(qū)線程
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
      基于STM32的mbedOS信號量調度機制剖析
      Nucleus PLUS操作系統(tǒng)信號量機制的研究與測試
      測控技術(2018年8期)2018-11-25 07:42:12
      淺談linux多線程協(xié)作
      關鍵鏈技術緩沖區(qū)的確定方法研究
      μC/OS- -III對信號量的改進
      Linux操作系統(tǒng)信號量機制的實時化改造
      Linux線程實現(xiàn)技術研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術設計與實現(xiàn)
      AVS標準中的視頻碼流緩沖區(qū)校驗模型分析
      電視技術(2012年1期)2012-06-06 08:13:58
      石屏县| 邛崃市| 琼海市| 开远市| 玛曲县| 昌都县| 英山县| 竹溪县| 渝中区| 清原| 无锡市| 黄平县| 丰顺县| 渑池县| 栾川县| 将乐县| 犍为县| 泸水县| 凉山| 西藏| 甘谷县| 大厂| 尼玛县| 海城市| 开江县| 华阴市| 府谷县| 永寿县| 陆川县| 调兵山市| 准格尔旗| 建平县| 岳普湖县| 尼木县| 石林| 景德镇市| 青州市| 巨鹿县| 德令哈市| 黄石市| 隆子县|