徐太山,田慕琴,宋建成,許春雨
(1.晉城煤業集團,晉城048006;2.太原理工大學 電氣與動力工程學院,太原030024)
煤炭是我國一次能源的主體,國家中長期科技發展規劃綱要明確指出,要大力發展煤炭清潔、高效、安全開采和利用技術,并且將開發高效自動化開采技術列為重點領域的優先發展主題。煤炭綜合機械化、自動化采煤技術是實現安全高效開采的關鍵環節,而液壓支架的電液自動控制系統又是該環節的重要組成部分。液壓支架電液控制系統是集傳感器技術、信號處理技術、計算機及控制技術、網絡通訊技術、液壓閥控制技術于一體的綜合控制技術。自綜采技術誕生以來,液壓支架控制技術一直被國外所壟斷,特別是德國的DPT、MARCO、TIEFENBACH、EEP和美國JOY公司的產品,幾乎占據了整個中國煤炭行業市場。國外產品技術的先進性、運行的穩定性和動作的可靠性是毋庸置疑的,但價格昂貴、供貨周期長、配件不及時,直接影響到煤炭生產成本。特別是其協議不公開、技術保密、更新速度慢、不適應我國現代化無人開采技術發展等問題,嚴重制約著我國煤炭工業的技術進步,更成為制約我國煤炭高效集約化生產技術發展的瓶頸。近幾年來,國內在電液控制技術開發方面群雄并起,但是缺乏對關鍵技術的突破和掌握,目前還沒有實用性的創新技術和產品在市場上占有一席之地。2001年3月,中國天地集團與德國MARCO公司合資成立了北京天地瑪珂電液控制系統有限公司,但由于國外技術的保密和壟斷,在關鍵技術方面還沒有取得實質性突破和進展,有很多環節還是不得不依靠進口,國產化的進程仍未完成。在煤礦無人或少人值守工作面,液壓支架電液控制系統方面的研究更是鮮有報道。在我國,每年的煤炭總產量中,大中型礦井占到70%左右,大約需要數以萬計的液壓支架電液系統,目前僅靠進口也遠遠不能滿足市場需求[1,3]。因此,開發具有自主知識產權的無人值守工作面液壓支架電液控制系統,不僅具有重大的現實意義,更具有深遠的戰略意義。
煤礦無人值守工作面液壓支架電液控制系統主要包括:地面主機和集控室主機對工作面液壓支架的遠程控制,地面主機對井下液壓支架運行狀態進行智能化分析和預警策略;端頭控制器對液壓支架的自動追機拉架控制;液壓支架電液控制系統的多層通訊體系,實現電液控制系統中地面主機與集控室主機、集控室主機與端頭控制器、端頭控制器與間架控制器的三級網絡監測和控制。
本系統是煤礦無人值守工作面液壓支架電液控制系統的地面監控系統,是實現無人值守的主控部分,屬遠程遙控部分。其目的是提供一種煤礦井下工作面液壓支架電液遠程控制方法,以解決煤礦井下無人值守工作面液壓支架的電液遠程控制問題,實現煤礦井下工作面無人值守控制液壓支架的目的。
煤礦無人值守工作面液壓支架電液遠程控制系統可對井下液壓支架的運行方式等參數進行遠程設定,同時實時記錄和顯示液壓支架的運行狀態,保存歷史數據,集數據記錄、查詢、分析為一體[2],具有RS485和CANBUS通訊接口功能;通過PROFIBUS、MODBUS、CANBUS等協議與井下進行實時通訊,以實現連續的數據采集和控制,實現無人值守自動化操作,使煤炭生產的主要環節實現無人化,真正做到安全生產。能將各運行參數進行長期記錄,并對采集到的數據進行分析和處理,為事故分析提供第一手資料[4]。
液壓支架電液自動控制系統包括間架控制器、端頭控制器、計算機(順槽工控機、地面計算機)以及相關的通訊體系,參見圖1。間架控制器完成支架各種動作的控制,它可接收來自鍵盤的手動控制,還可接收來自端頭控制器的集中自動控制。間架控制器包含2片CPU,一個為主控系統服務,另一個負責鍵盤掃描、液晶屏顯示和左右鄰架通信。2片CPU之間利用SPI通信口通訊,間架控制器之間利用RS485通信傳送架間控制信息。端頭控制器是實現無人值守自動控制的中心環節,起著承上啟下的關鍵作用。它可根據采煤機位置控制相應液壓支架的動作,實現自動追機拉架;還可接收來自順槽工控機和地面計算機的遠程指令,控制液壓支架的動作。順槽工控機與端頭控制器、端頭控制器與間架控制器之間利用MODBUS協議進行通訊,地面計算機需要通過工業以太網與井下通訊[5]。
本系統能實現煤礦無人值守工作面液壓支架電液控制系統的地面遠程遙控功能,是實現無人值守的主控部分,可遠程發送液壓支架控制參數、控制命令和操作命令。傳送的數據由圖1的工控機的串口傳到端頭控制器,也是由它的串口接收,再由它將數據整理后由串口以主從模式傳遞給各個支架控制器的串口。

圖1 系統結構
液壓支架控制參數和操作命令遠程傳輸分控制參數傳送部分和操作命令傳送部分。要發送控制參數,首先將控制參數鍵入到單行編輯器后,用鼠標點擊左半平面的“發送”。要發送操作命令,首先要指明動作的支架,然后點擊界面上的虛擬鍵盤,選擇要支架完成的功能,用鼠標點擊右半平面的“發送”。接到發送的命令,本系統首先要對讀入的以字符型表示的控制參數或操作命令變成整型數。由于在通訊中要進行crc校驗,但PowerBuilder沒有異或功能,所以要將整型數轉換成二進制碼,利用字符變量實現異或功能,完成crc校驗碼的編制。第二,將地址、命令、讀取寄存器地址、讀取寄存器個數、校驗碼等以十六進制的形式送出去。由于PowerBuilder沒有十六進制數的表示方法,本系統通過十進制與字符型的變換將數值先表示成二進制的形式,然后再通過大二進制文本變量(blob)將要發送的數寫到串口。用blob型的變量將數據組合:b-mode=bmode+blob(CHAR(nn[i])),當發送的數據為零時:b-mode=b-mode+b-00,這樣執行:ole-1.Object.Output=b-mode將數據成功送到串口發出去。第三,端頭控制器接到命令后,一方面將指令下到對應的支架中,使支架完成要求的功能;另一方面返回應答信息,通知工控機已接收到命令。第四,從串口讀數據dd時,本系統經過integer(asc(dd))的變換將讀到的數據變成適合的算術形式進行計算。
在實際采煤中需要的液壓支架數隨工作面的不同而不同,一般在120~200架之間,所以在采煤工作前此數據將作為參數由工控機或端頭控制器傳送給液壓支架控制器。當然,工作面液壓支架實時狀態監測的主界面表示的支架控制器的小塊數量也要隨這一參數而變化。圖2是用PowerBuilder文本對象實現工作面液壓支架實時狀態監測的界面。
在界面上添加RichTextEdit(多文本編輯)控件,它有getfocus(得到焦點)和mousemove(鼠標移動)事件。當鼠標指在表示支架的RichTextEdit(多文本編輯)控件上時,鼠標移動事件發生,顯示出支架的編號;若在此控件上雙擊鼠標,便彈出一個窗口,以表格、圖形及曲線等形式顯示此支架的運行信息。
由于控制的綜采面支架數較多,支架的信息也較多,且具有幾百個RichTextEdit(多文本編輯)控件,不可能逐一對其進行設置、編程等,因此用宏代換統一實現,包括隨鼠標顯示支架號,用紅色顯示超限的支架,用閃爍表示處于急停狀態的支架,等等。

圖2 工作面液壓支架實時狀態監測
隨著鼠標的移動,小方塊顯示出所指到的支架編號,若想了解某一支架的詳細運行狀態,可用鼠標單擊此編號的小方塊,便可得到此編號小方塊代表的支架的狀態信息,并用圖形形象地表示一級護幫、二級護幫、急停、噴霧和采煤機位置等狀態,或以表格和曲線形式實時顯示目前各種物理量,如支架下腔壓力、推移行程和梁端距等模擬量的數值大小和變化趨勢。
升級代碼從上位機傳送到端頭控制器后,被存儲在端頭控制器的外部存儲器,之后將在升級引導程序的引導下,將升級代碼從外部存儲器寫入到端頭控制器CPU的FLASH空間。上位機首先發送升級命令,以查詢端頭控制器有沒有做好升級準備,如果沒有再重新發送,直至端頭控制器準備好。當端頭控制器返回已經準備好升級命令后,上位機開始把升級代碼分段傳給端頭控制器,直至傳送完畢。當代碼傳送完畢后,發送給端頭控制器版本查詢命令,等待端頭控制器發送來的版本號對比結果。如果選擇不升級則發送取消升級命令,完成后結束。當選擇確認升級后,上位機發送確認升級命令,并等待端頭控制器返回指令;當返回指令錯誤時,上位機再次發送確認升級命令,直到發送成功。此過程中的通訊協議采用MODBUS協議,傳送速率選用9 600bit/s,可保證傳送數據的正確、可靠。端頭控制器接收到上位機發送來的判斷能否接收升級代碼的命令后,對自身工作狀態進行檢查,如果控制器處于忙碌狀態,將回復給上位機端頭控制器處于忙碌狀態;如果處于空閑狀態,將回復上位機可以接收升級代碼;并等待上位機發來的升級代碼;接收升級代碼后,同時將升級代碼存入自身的外部RAM中,直到接收完畢。端頭控制器將跳到升級引導程序開始進行程序升級。間架控制器軟件遠程在線升級方法與此雷同,只是要通過端頭控制器傳輸軟件代碼。
本系統中采用PowerBuilder作為前端開發平臺,實現煤礦無人值守工作面液壓支架電液遠程控制,它可與任何數據庫連接,適用性很強。由于其具有功能強大的Data Window(數據窗口),再加入靈活的SQL語句,為數據處理提供了極大的靈活性。PowerBuilder獨有的數據庫管理特點及與其他外部事物的友好接口功能,能廣泛應用其他各方面的資源,如三方控件等等。本系統中就利用了串口通訊、OLE和OLE Database Blob等外部事物功能。以下是在使用PowerBuilder開發過程中一些關鍵問題的處理方法[6]。
由于表示的支架數多,支架的信息也多,小長方塊的數量達600個或更多,其運行的腳本程序不可能一一編制,所需的設置也不可能逐一進行,因此用宏代換實現。PowerBuilder沒有實現宏代換的語句,所以通過依次識別RichTextEdit(多文本編輯)控件并結合窗口函數成功地實現了宏代換的功能,完成了液壓支架的各種功能。宏代換實現方法如下:
ss=integer((w_jcjc.Width)/(zjs1+2))
s1=rte_1.x
s2=rte_201.x
s3=rte_401.x
integer li_count,sss1
integer li_i,sr1,sr2
li_count=upperbound(parent.control[])
richtextedit sr,srr,srr1,srr2,srr3
FOR li_i= 1TO li_count
CHOOSE CASE parent.control[li_i].typeof()//parent代表窗體
case richtextedit!//如果該控件是richtextedit文本
sr=parent.control[li_i]//得到該控件的引用
sss1=8
sr.width=ss-sss1
sr1=len(parent.control[li_i].classname())
sr1=sr1-4
sr2=integer(mid(parent.control[li_i].classname(),5,sr1))
if sr2<=200then
sr.tag=string(sr2)
if sr2>(zjs1+1)then
sr.visible=false
end if
sr.x=s1+ss*(sr2-1)
else
if sr2>200and sr2<=400then
sr.tag=string(sr2-200)
if sr2>(zjs1+201)then
sr.visible=false
end if
sr.x=s1+ss*(sr2-200-1)
else
if sr2>400and sr2<=600then
sr.tag=string(sr2-400)
if sr2>(zjs1+401)thensr.visible=false
end if
sr.x=s1+ss*(sr2-400-1)
end if
end if
end if
end CHOOSE
next
要完成MODBUS、PROFIBUS和CANBUS等協議的串口通訊,就要解決如何將十六進制數寫到串口。前面提到由于PowerBuilder沒有十六進制數的表示方法,利用了大二進制文本變量來發送數據到串口,實現了用PowerBuilder完成MODBUS、PROFIBUS和其他等協議進行串口通訊功能,而且通訊速度令人滿意。
由于PowerBuilder沒有異或功能,利用字符變量實現了異或功能,完成了crc校驗碼的編制。
本系統能將各運行參數進行長期記錄,包括實時圖形、數據等。與一般的數據管理不同,其圖形非常多,因此,本系統充分利用PowerBuilder中處理圖形的OLE Database Blob功能,將圖形存入數據庫表中的Text字段,非常方便,避免了一般采用圖片占用大量空間的弊端。
本系統能顯示液壓支架的運行狀態,集數據記錄、查詢、分析為一體,能以表格、曲線、直方圖或餅圖等形式直觀地反映整個數據的概況,有較高的智能化水平。
1)對整個工作面液壓支架各種運行參數的采集周期小于6s;
2)控制液壓支架動作時間小于200ms;
3)對液壓支架的控制精度大于98%;
4)在線升級端頭和支架控制器程序時間小于250ms;
5)支架數量可維護;
6)誤碼率小于10-8。
本系統有性能優良、功能完善、協議公開、易于與其他系統接口等特點,目前已投入試運行,并已與礦方達成協議。此系統連同一起開發的端頭控制器、間架控制器構成的整個液壓支架電液自動控制系統,將被應用于即將開采的工作面,這是我國首例自行開發和研制、具有自主知識產權的液壓支架電液自動控制系統,是集控制、監測與遠程設置于一體的網絡系統。它既可以實時控制和監測液壓支架的工作,實現多級控制,又能完成無人值守工作面操作,填補了我國在液壓支架電液自動控制系統的空白,真正實現了液壓支架電液自動控制系統的國產化目標。
[1] 韓續友,煤礦液壓支架電液控制系統及應用環境探析[J].中國新技術新產品,2012,(10):20-22.
[2] 張國軍.PowerBuilder中的數據查詢方法綜述[J].鄂州大學學報,2012,(02):102-105.
[3] 劉溫暖.液壓支架電液控制系統,煤炭技術,2009.
[4] 范立男.SQL Server 2000實用教程[M].清華大學出版社,2004.
[5] 張愛絨.基于 Modbus協議的煤礦安全監控系統數據集成研究與設計[J].太原理工大學學報,2011,42(6):617-621.
[6] 宋雷.PowerBuilder10實例編程百例[M].清華大學出版社,2005.
[7] 孫繼平.煤礦井下變頻器電磁輻射騷擾的研究 [J].太原理工大學學報,2011,42(5):528-530.