高許,鄧世建,蔡雨盛
(中國礦業(yè)大學 信息與控制工程學院, 江蘇 徐州 221116)
礦井提升機作為聯(lián)系井上和井下的咽喉要道,是煤礦生產(chǎn)中不可或缺的重大固定機電設(shè)備之一。在提升裝備運行過程中,容易出現(xiàn)松繩、卡罐、過卷、滑動等故障,減速器、軸承、閘瓦等部件損傷給煤礦安全生產(chǎn)帶來了極大的威脅[1]。多年的生產(chǎn)實踐表明,受力集中和高速運轉(zhuǎn)部位運行溫度的升高是隱患發(fā)展為故障的前兆。為了避免故障的發(fā)生,確保提升設(shè)備的安全可靠運行,國內(nèi)外學者對提升機運行溫度的實時監(jiān)測進行了研究。文獻[2]研發(fā)的礦井提升機閘瓦在制動過程中的溫度監(jiān)測系統(tǒng),利用微型紅外測溫儀和上位機實現(xiàn)了對提升機閘瓦溫度的在線測量和實時監(jiān)測;文獻[3]提出運用成熟的PLC技術(shù)改造已配備SDFA型電機溫度檢測儀的提升機溫度監(jiān)控系統(tǒng);文獻[4]利用無線測溫技術(shù),實現(xiàn)對提升機軸承溫度的檢測,以便實時掌握軸承的潤滑情況。這些監(jiān)測系統(tǒng)雖然具有廣泛的適用性,但是系統(tǒng)開發(fā)周期相對較長,系統(tǒng)中的溫度檢測點較少,許多關(guān)鍵運行點的溫度仍采用人工定時、逐點手工測量的方式,檢測結(jié)果欠缺實時性,一旦出現(xiàn)異常狀態(tài),工作人員很難及時發(fā)現(xiàn)。
為了進一步掌握提升設(shè)備的運行情況,實現(xiàn)重要運轉(zhuǎn)部位溫度檢測的實時性,本文基于PyQt設(shè)計了礦井提升機溫度監(jiān)測系統(tǒng),結(jié)合PyQt的開發(fā)優(yōu)勢,能對提升機運行過程中電動機、減速器、滾筒兩端和閘盤的溫度進行監(jiān)測,并及時準確地對機械設(shè)備的各種異常做出預(yù)警。
PyQt是Python與Qt結(jié)合的產(chǎn)物,是用Python實現(xiàn)的Qt類庫。Python具有簡潔清晰的語法和豐富強大的庫,能夠?qū)⑵渌Z言編寫的代碼模塊(尤其是C/C++)連接在一起。Qt是一個性能卓越的跨平臺的C++圖形用戶界面(GUI)應(yīng)用程序開發(fā)框架[5]。制作程序UI界面,可以利用UI制作工具和編寫純代碼這兩種方式實現(xiàn)。PyQt自帶了和Qt同樣強大靈活的可視化GUI設(shè)計工具Qt Designer,可以更為方便地定制界面,加快開發(fā)PyQt程序的速度。PyQt處理事件的核心機制是信號(signal)和槽(slot),當某個對象的狀態(tài)發(fā)生改變時,信號由該對象發(fā)射出去,槽用于接收信號。事件循環(huán)創(chuàng)建之后,建立信號和槽的連接實現(xiàn)對象之間的通信,在PyQt5中信號和槽通過QObject.signal.connect連接。這種機制不同于回調(diào)(callback)機制,使用信號和槽可以使程序更加簡潔,當所開發(fā)的程序越大時,PyQt的這個優(yōu)勢就越為明顯[6]。
提升機設(shè)備、測量儀表和各種傳感器作為最底層的現(xiàn)場儀表層,以單片機為主要控制器的控制系統(tǒng)作為中間的控制層,基于PyQt開發(fā)的上位機監(jiān)測軟件形成最上方的監(jiān)控管理層。現(xiàn)場儀表層中的各個溫度傳感器完成對溫度信號的采集,所采集的數(shù)據(jù)直接交給控制層的單片機處理,處理后的數(shù)據(jù)由串口通信實現(xiàn)數(shù)據(jù)的傳輸,最終在監(jiān)控管理層中的電腦終端存儲并顯示,礦井提升機監(jiān)測系統(tǒng)的分布式構(gòu)架如圖1所示。
圖1 監(jiān)測系統(tǒng)的分布式構(gòu)架
提升機系統(tǒng)中電動機的溫度、減速器的溫度、軸承的溫度、滾筒兩端的溫度、閘盤的溫度,能夠側(cè)面反映提升機運行狀態(tài),所以在上述關(guān)鍵位置安裝合適的溫度傳感器。硬件系統(tǒng)的模型如圖2所示。
圖2 礦井提升機溫度監(jiān)測系統(tǒng)模型
在電動機的兩端安裝6路Pt-100溫度傳感器,由于現(xiàn)有模擬量模塊不支持直接讀取Pt-100溫度傳感器的電阻變化信號,故在電動機側(cè)安裝RWB型溫度變送器,并將電阻變化信號轉(zhuǎn)化為標準的4~20 mA電流信號。減速器處的溫度采集選用溫度傳感器DS18B20,它具有體積小、功耗低、抗干擾能力強等優(yōu)點,其接外部電源,GND端接地,溫度傳感器的I/O和單片機的I/O連接起來。測量滾筒兩端的溫度和軸承的溫度時選擇與上述電動機處相同的溫度采集裝置。在閘盤表面溫度控制中,選取中低溫微型探頭紅外測溫CTLT02,它有微型紅外傳感頭,適用于需要節(jié)省空間的工業(yè)環(huán)境。
單片機選用STM32F103C8T6,主電路如圖3所示,這是一款基于ARM Cortex-M內(nèi)核STM32系列的32位的微控制器,帶有64kB閃存程序存儲器、7個定時器、2個ADC、9個通信接口,工作電壓為2.0~3.6 V,工作溫度為-40~85 ℃,中等容量增強型單片機能夠滿足系統(tǒng)的控制要求[7]。
研究中的礦井提升機上位機監(jiān)測軟件采用Windows 7 64位操作系統(tǒng),開發(fā)平臺綜合使用Python3.5+PyQt5+Eric6。使用Python3.5語言開發(fā)PyQt5,無需考慮中文編碼轉(zhuǎn)換的問題。Eric6是基于跨平臺的Qt GUI工具包、整合靈活的編輯器控件。Eric6與PyQt5結(jié)合,非常方便地實現(xiàn)界面與業(yè)務(wù)邏輯的分離,以滿足Python的快速GUI開發(fā)需求[8]。在Windows下搭建PyQt5環(huán)境的主要步驟為:
圖3 單片機的線路連接
1) 安裝Python3運行環(huán)境。訪問Python官方網(wǎng)站根據(jù)自己使用的平臺下載合適的Python3.5.3版本。雙擊擴展名為.exe的文件進行安裝,然后把Python的安裝目錄添加到系統(tǒng)環(huán)境變量中。
2) 安裝PyQt5。使用pip install命令在線安裝PyQt5和PyQt5-tools,pip.py的位置一般在Python的安裝目錄下Scripts文件中,這種方式最簡單。然后還需要把PyQt5-tools的安裝目錄添加到系統(tǒng)環(huán)境變量Path中。
3) 安裝Eric6。在安裝Eric6之前,先用pip install命令安裝Qsci模塊,然后訪問Eric官網(wǎng),下載Eric6安裝包及其漢化包。安裝完畢后,第一次打開Eric6軟件完成相關(guān)的設(shè)置后開發(fā)環(huán)境便搭建完成。
系統(tǒng)采用輕量級的數(shù)據(jù)庫SQLite,相比于其他傳統(tǒng)的數(shù)據(jù)庫,SQLite可移植性好,能與許多計算機語言相結(jié)合,運行時占用的資源非常少,處理速度非???。SQLite數(shù)據(jù)庫的體系結(jié)構(gòu)如圖4所示。
圖4 SQLite架構(gòu)
SQLite屬于文件型數(shù)據(jù)庫,不需要任何數(shù)據(jù)引擎,故直接根據(jù)上位機的功能設(shè)計數(shù)據(jù)庫結(jié)構(gòu)。首先,基于對溫度監(jiān)測的功能需求,創(chuàng)建兩個基本的表:主表和數(shù)據(jù)表。其中主表用來存儲實時數(shù)據(jù),包括索引ID、關(guān)鍵位置名稱、傳感器編號、傳感器采集的溫度信號等;數(shù)據(jù)表用來存儲歷史故障信息,內(nèi)容包括索引ID、故障發(fā)生時間、故障名稱等。通過這兩個表的主鍵索引ID可以將兩個表關(guān)聯(lián)起來,然后編寫數(shù)據(jù)庫映射,可使溫度監(jiān)測軟件對數(shù)據(jù)庫進行訪問和修改,PyQt API提供了許多數(shù)據(jù)庫通信類,該系統(tǒng)使用QSqlDatabase類用來連接數(shù)據(jù)庫。
單片機和上位機之間采用RS-485串口通信方式,選擇UART異步串口通信協(xié)議,單片機端首先要開啟GPIO時鐘和USARTX時鐘,然后配置TX和RX引腳,最后初始化USART控制器并且定義相關(guān)函數(shù)。上位機可以導入QSerialPort和QSerialPortInfo這兩個類,QSerialPort類提供了對串口的操作,QSerialPortInfo類提供了對串口信息的獲取,以此實現(xiàn)上位機和串口之間的通信。
上位機監(jiān)測軟件不僅要把采集到的溫度信號實時顯示,系統(tǒng)還需要對異常溫度作出相應(yīng)的響應(yīng)。其中電動機溫度是判斷電動機運行工況的重要指標,當電動機溫度大于90 ℃時[9],系統(tǒng)就能通過報警回路報警或通過安全回路實現(xiàn)抱閘停車;當滾筒兩端溫度達到60 ℃報警,達到70 ℃時,這一次提升循環(huán)結(jié)束后閉鎖停機。通過測量制動盤的溫度間接反映閘瓦的溫度,當閘瓦所承受的最大溫度超過250 ℃時[10],礦井提升機在制動過程中會對閘瓦造成不可恢復的影響,并在上一次提升過程結(jié)束時,閘瓦溫度高于100 ℃將會導致下一次提升過程對閘瓦產(chǎn)生不利影響。減速器過熱會使?jié)櫥宛ざ认陆?,油膜承載能力降低,影響齒輪、軸承和密封原件的壽命,其正常工作溫度為-25~55 ℃[11],如果超過了60 ℃則要停機,檢查發(fā)熱原因。
軟件界面用Qt Designer繪制,Qt Designer提供了按鈕、對話框、文本框等常用GUI控件,可提高編寫界面的速度[12]。將設(shè)計好的界面文件保存為“.ui”格式,使用Eric6編譯后即可將“.ui”文件轉(zhuǎn)換為“.py”文件,Python可以將轉(zhuǎn)換后的文件當成庫文件直接調(diào)用,此文件為界面文件。GUI界面設(shè)計并轉(zhuǎn)換完成后再新建一個邏輯文件,完成界面后臺的控制邏輯實現(xiàn),即程序中對象間的通信。界面文件和邏輯文件是兩個相對獨立的文件,通過這種方法可實現(xiàn)界面與業(yè)務(wù)邏輯的分離。
提供人機交互界面是礦井提升機監(jiān)測系統(tǒng)上位機軟件的功能,上位機軟件將從串口接收來的數(shù)據(jù)依次存入文件,解析數(shù)據(jù)包后再將提取出來的提升機運行狀態(tài)信息通過可視化圖形顯示出來,整個應(yīng)用程序的功能包括系統(tǒng)管理、參數(shù)設(shè)置、運行監(jiān)測、歷史數(shù)據(jù)查詢,監(jiān)測軟件的運行監(jiān)測界面如圖5所示。
圖5 監(jiān)測界面圖
該系統(tǒng)在徐莊煤礦進行了測試,考慮到煤礦的生產(chǎn)安全問題,試驗均為系統(tǒng)正常運行時的數(shù)據(jù),使用紅外線測溫槍的人工測量值與溫度監(jiān)測系統(tǒng)顯示值僅相差1 ℃左右,由測試結(jié)果可以看出,該系統(tǒng)可實現(xiàn)對提升機的關(guān)鍵位置溫度的檢測。
結(jié)合Eric6與PyQt5開發(fā)的礦井提升機溫度監(jiān)測系統(tǒng),可實時采集各關(guān)鍵點的溫度,并把數(shù)據(jù)傳輸?shù)奖O(jiān)測計算機,將人工檢測溫度變?yōu)橹悄鼙O(jiān)測溫度的做法能減小人工投入。該系統(tǒng)還可根據(jù)溫度變化特征及時采取應(yīng)對措施,降低提升機系統(tǒng)的故障率,減少因提升機系統(tǒng)故障帶來的經(jīng)濟損失。