孫康嶺,楊兆偉
(泰山職業技術學院 機電工程系,泰安 271000)
管道機器人是特種機器人的一個分支,可進入管道完成管道檢測、清潔、維修、維護等方面的作業[1~4]。目前,許多國家開展了管道機器人的研制工作。德國的Dipl.-Ing.AndreasZagler開發了管道爬行機器人,重量為20kg,八足爬行,驅動能力15kg,采用直流供電方式。俄羅斯的TARIS公司研制了多個系列管道機器人系統,用以完成地下輸水管道的檢測、清理[7],這些管道機器人的能源供給和對外通信采用拖纜方式。日本橫濱國立大學Chi Zhu等人于2000年研制成功用于檢測污水排放管道的管道檢測機器人[8],該機器人適用于管徑為200mm的管道。2000年,在國家“863”計劃資助下,鄧宗全教授研制成功了X射線探傷機器人[9],該機器人以有纜方式供電。管道機器人大都采用有纜方式進行能源供給和對外通信,在一定程度上限制了管道機器人的作業距離。
無纜方式的管道機器人以攜帶蓄電池或燃油發電機組的方式實現能源供給,導致管道機器人的體積過于龐大,從而大大增加了機器人本體的重量。這種方式的管道機器人所儲存的能量有限,因而機器人的動力不足,行走距離也受限制[5,6]。同時無纜管道機器人對外通信也只能采用無線方式,由于管網的錯綜復雜,管道會對無線信號產生很強的屏蔽作用,從而造成管道內機器人的失控。由于無纜機器人在能源供給及對外通信上存在著明顯的缺點,很多場合下,管道機器人采用有纜方式。
雖然有纜管道機器人的作用千差萬別,但其結構基本相同,如圖1所示。其中,管理服務器與測控主機位于管道外,二者距離較近,通過RS232或USB接口進行通信。測控分機與執行機構位于機器人小車上,在執行任務時進入管道內。測控主機向分機發布命令(此命令也可來處管理服務器),同時接收來自測控分機的狀態信息,通過運算,然后對分機下達精確的指示。測控分機收到命令后,通過執行機構控制機器人小車的運行、作出執行任務所需的相關動作。

圖1 有纜管道機器人結構框圖
傳感器向測控分機傳遞管道機器人的狀態信息。當管道機器人在管道內作業距離較遠時,管道外的測控主機與機器人小車上的測控分機相距較遠,二者間的通信主要基于長距離串行通信模塊如RS485進行。 這種通信方式需要獨立的串行通信線,因此測控主機與測控分機間的線纜內除了包含電源線外還包括串行通信信號線。當機器人行走距離遠、管道轉彎較多時,線纜與管壁的摩擦力會變得很大,從而嚴重限制了機器人作業時的最大行走距離,同時使機器人的可靠性降低。為了克服上述缺點,本文將電源線載波技術用于管道機器人的通信系統,線纜內電源線與串行通信信號線共用,大大減輕了線纜的重量及線纜與管壁的摩擦力,提高了管道機器人的可靠性,增大了其作業時的最大行走距離。
電源線載波通信是利用電源線作為信號的傳輸媒介,不需要單獨的信號線,將信號通過載波方式從電源線進行傳輸的技術[10]。
為簡化應用并提高載波通信的可靠性,國內外許多公司開發了電源載波芯片。國內科強電子技術公司開發的KQ-100F載波芯片模塊可用于低壓直流電源線載波,接收靈敏度好,性價比高。該芯片內置RS232接口,可在多種傳輸速率下傳輸,在傳輸波特率9600 bps 下,傳輸距離保證為300m[11]。由于采用該芯片進行載波通信,通信軟件的編程可按RS232方式進行,適宜于現有軟件的移植,因此本管道機器人通信系統采用KQ-100F芯片進行信號的載波通信。
采用Atmel公司的ATmega16A單片機與KQ-100E 模塊連接,用半雙工通信方式進行串行通信。KQ-100E模塊負責將TTL 電平信號轉換后調制到電源線上和從電源線上解調出TTL 電平信號。
KQ-100E模塊的TX 腳接單片機的TXD 腳用于發送數據,RX 腳接單片機的RXD腳以接收數據。KQ-100E模塊的R/T腳為接收/發送控制端,接單片機的某一管腳。R/T為高時,模塊處于接收狀態;R/T為低時,處于發送狀態。模塊內有防過壓和防瞬變抑制電路,以防過電壓和雷電對模塊的損壞。VAA 端為發送功率電源,VAA 接不超過18 V的直流穩壓電源,具體電源電壓的高低視距離遠近或干擾的大小而定。若距離遠或干擾大VAA端接低壓,反之則接高壓。為了減輕VAA端所接電源對載波模塊的干擾,在該電源與模塊的VAA 之間串接一只10mH的電感,在VAA與地之間接100pF的電容。
圖3給出了測控主機中載波部分的電路圖。24V直流電源由管道外的開關穩壓電源提供,該電源變壓后給電路提供12V及5V的電源。測控分機載波部分的電路圖與此圖相似,KQ-100E模塊的C1、C2導線既為測控分機提供電源也是測控主機與測控分機之間的信號通道。測控分機載波部分的電路圖不再給出。

圖2 測控主機中載波部分的電路圖
由于只有一個測控主機與一個測控分機,所以可以制定簡單有效的通信協議以滿足通信要求。采用數據包的形式組織數據,以包為單位進行數據的對外發送。每個數據包都有固定的格式,由起始碼、長度碼、類型碼、數據、校驗碼、結束碼等組成。起始碼是每一包數據的引導頭,用0FFH、0AAH表示;長度碼是當前數據包的總長度,占一個字節。數據包的類型有兩大類,分為命令信息包和應答信息包,由類型碼來區分,占1個字節。當發送方發出命令信息包后,必須在規定時間內收到應答信息包,否則重發。若類型碼為0FAH或0FBH,該數據包為應答信息包,表示所接收的信息正確或錯誤。當類型碼為0FAH、0FBH以外的字符時,表示該數據包為命令信息包,具體是什么命令可根據需要進行定義。校驗碼是數據包的校驗標志,是本數據包數據部分的所有字節進行異或后的結果,用以檢驗數據包發送后的正確性。結束碼是每一包數據的結束標志,用0FFH、0EEH表示。命令信息包的格式如表1所示。當類型碼為應答信息碼時,為應答信息包,其格式與命令信息包相似,不再給出。

表1 命令信息包的格式
測控主機與測控分機都可以發送或接收數據。為了避免主機與分機同時發送數據,當發生沖突時(得不到對方響應),測控分機暫停1個時間間隔(如10個指令周期)再發送,測控主機不用暫停直接重發。測控主機與測控分機的主程序首先要進行串行通信的初始化設置,數據包的發送通過調用發送子程序進行,而接收則通過單片機的中斷方式進行。在主程序中采用中斷方式接收數據,可避免漏接數據,同時當沒有數據需要傳送時,正常運行程序的其他部分,從而提高了系統的實時響應能力。
當沒有數據需要發送時,測控主機與測控分機的KQ-100E模塊的R/T端皆設置為高電平,模塊都處于接收狀態。當一方要發送數據時,先置其R/T為低,串行輸出一個數據包,該數據包發送完畢后,發送方把本方模塊的R/T端置高,設為接收狀態。測控分機的發送數據子程序流程如圖4 所示,發送時先置KQ-100E模塊為發送模式,然后將待發送數據以數據包的形式進行發送,發送完后置KQ-100E模塊為接收模式,若在規定時間內(不同的命令等待時間可不同)收不到應答信息,延時50us重發。測控主機的發送數據子程序流程與測控分機的相似,不同之處是收不到應答信息時直接重發,其流程圖不再給出。測控主機與分機的接收數據中斷程序流程相同,如圖5 所示。其中,接收方根據所收數據包的校驗碼正確與否,設置相應的類型碼,連同發送方所要的數據打成一個數據包并回復,然后返回主程序。若發送方所收應答包的類型碼為0FBH,則再次調用發送子程序重發。
由于無纜管道機器人在供電及通信上存在著明顯的缺點,很多場合下,管道機器人采用有纜方式。而有纜管道機器人當在管道內行走距離遠、管道轉彎較多時,由于線纜長度增加、重量增大,線纜與管壁的摩擦力會變得很大,嚴重影響了管道機器人作業時的最大行走距離及其可靠性。本文將KQ-100E電源線載波調制解調模塊用于機器人的載波通信系統,從而實現了線纜內電源線與信號線的復用,設計了系統的硬件與軟件,完成了軟硬件測試,并在中央空調風管清潔機器人系統中進行了應用。應用結果表明,該通信系統大大減輕了線纜與管壁的摩擦力,對增大有纜管道機器人的最大行走距離、提高其可靠性,具有非常顯著的作用。

圖3 測控分機的發送子程序

圖4 數據包的接收中斷程序
[1]甘小明.管道機器人的發展現狀[J].機器人技術與應用,2003,(6): 5-10.
[2]Sadovnychiy,S.Correction methods and algorithms for inertial navigation system working inside of pipelines[C].Electronics,Robotics and Automotive Mechanics Conference.2007: 625-630.
[3]徐翔.管道機器人研制與工程應用[D].東華大學,2006.
[4]鄭克寧.管道機器人的研制[D].浙江大學,2006.
[5]李鍛能.新型無纜管道機器人運動機構的設計[J].機床與液壓,2005,6: 7-9.
[6]黃明偉.新型無纜管道機器人的初探[D].廣東工業大學,2006.
[7]曾德聰.炮管擦洗機器人機械系統設計與分析[D].南京理工大學,2009.
[8]宋敏清.管道檢測機器人系統中遠程變負載電源的研究與設計[D].上海交通大學,2004.
[9]姜生元,鄧宗全,李斌,等.內置動力源管內X射線探傷機器人的研制[J].機器人,哈爾濱工業大學,2001,23(3): 211-216.
[10]王君紅,劉寶,袁若權,等.基于電力載波通訊的遠程控制系統設計及應用[J].化工自動化及儀表,2009,36(1):49-51.
[11]陳廷輝,蔡志遠.采用電力載波模塊對控制與保護開關的遠程控制方案[J].低壓電器,2010,23: 33-36.