高德欣,劉 芳,張如耀
(青島科技大學 自動化與電子工程學院,青島 266042)
輪胎模具對輪胎外觀質量有著舉足輕重的作用,溫度和濕度是在輪胎模具存儲過程中影響其品質的2個重要外因,青島地區夏季氣候比較潮濕,輪胎模具容易受潮生銹,所以需要對存放輪胎模具的倉庫進行溫濕度監控,以確保模具的正常存放。
本文針對這一情況,設計了基于Android的倉庫溫濕度無線監控系統,該系統結合了傳統工業的控制、移動互聯網技術、Android應用軟件開發等技術,實現了溫濕度的現場監控和遠程無線監控。該系統上位機采用串口,使用RS232-485模塊,通過Modbus協議采集現場的溫濕度傳感器的數據;在遠程無線監控中,通過架設移動終端服務器,使用Socket通訊協議實現服務器和手機客戶端的通訊,并且基于Android平臺開發了溫濕度移動終端監控軟件[1-3]。該系統不僅可以在現場監控溫濕度,而且可以在任意有網絡的地方通過手機上網查看現場的情況,極大地方便了工作人員的操作,提高了工作效率。
基于Android的輪胎模具倉庫溫濕度無線監控系統結構如圖1所示。

圖1 輪胎模具倉庫溫濕度系統總體結構Fig.1 Tire mold warehouse temperature and humidity control system structure
系統包含輪胎模具倉庫監控系統和移動監控系統兩部分。輪胎模具倉庫監控系統包含上位機PC及移動終端服務器,上位機PC由控制模塊和通訊模塊組成,移動終端服務器實時發送現場數據并且通過動態域名解析服務客戶端軟件固定IP;移動監控系統的Android客戶端接收服務器發送的數據。系統的工作包含以下過程:
(1)PC的通訊模塊通過RS232-485轉換器接收溫濕度1~6變送器傳來的數據,并將數據保存到SQL數據庫中,傳輸協議采用Modbus-RTU協議[4];
(2)控制模塊根據通訊模塊得到的數據與設定的溫濕度值,判斷是否有某臺除濕機需要開啟,并進行相關啟停操作;
(3)移動終端服務器模塊通過Socket協議,向Android手機客戶端實時發送當前溫濕度數據及操作信息。本文采用動態域名解析服務客戶端軟件作為中轉站,移動終端服務器通過TCP/IP協議向通過動態域名解析服務客戶端軟件申請的IP地址發送數據,Android手機客戶端通過GPRS或WiFi從相同IP地址接收數據,從而實現遠程監控功能。
控制模塊接收到輪胎模具倉庫6臺溫濕度變送器傳來的數據,與模塊中的各部分溫濕度設定值比較,判斷是否有超限數值并通過三菱FX2N系列PLC啟動超限數值對應的除濕機,并確保設定值范圍內位置除濕機是否關閉。
因倉庫較大且各個位置的工況不同,采用6臺溫濕度變送器組網的方式,對車間進行較為精準的監測,這也決定了RS232的通訊距離難以達到要求,需要利用RS232-485轉換器。系統采用泰勒士FTWI5溫濕度變送器,采用標準Modbus RTU通信規約傳遞二進制通信數據。Modbus通訊數據格式為“設備地址(1 byte)功能碼(1 byte)數據(n byte)CRC校驗(2 byte)”。上位機通過設備地址來辨別6臺溫濕度變送器,通過功能碼完成讀/寫功能。6臺溫濕度變送器通過一個RS232-485轉換器經由Modbus協議傳送數據到上位機,使用COM1串行通訊接口。
另一方面,控制模塊與三菱PLC的通訊也是采用Modbus通訊協議,三菱提供的MX控件使得通訊的設計較為簡單,使用COM2串行通訊接口。
服務器模塊的主要功能如下:
(1)服務器模塊實時全面監視倉庫溫濕度,并通過PLC啟停除濕機來確保倉庫各個測點溫度保持在系統的設定值。數據及操作記錄存入SQLite數據庫中,并通過動態域名解析服務客戶端軟件服務器發送到手機客戶端;
(2)計算機可以記錄并以動態曲線方式顯示各個測點當前溫濕度數據,并可查看歷史曲線;
(3)實現過程報警與系統報警。當控制現場中某個測點數據低于或高于某個設定的閾值時,能夠產生報警源,產生報警,以便現場工作人員及時得到報警通知并做出相應動作,同時記錄相關報警信息及操作信息;
(4)系統需要正確登陸,并且能夠對向手機客戶端發送的數據進行加密。
圖2所示為系統的主界面,圖3所示為系統的Socket通訊設置界面。

圖2 服務器端主界面Fig.2 Server main interface

圖3 Socket通訊設置Fig.3 Socket communication settings
Android通信流程如圖4所示。首先,上位機作為服務器端創建ServerSocket,監聽某個端口(本文使用6666),調用Socket socket=main Socket.BeginAccept()方法,等待用戶連接,最大連接5臺手機。用C#編寫的服務器端Socket通信部分關鍵代碼如下:


圖4 Android socket通信流程Fig.4 Android socket communication flow chart
然后,作為客戶端的Android用戶創建Socket,通過WiFi或GPRS請求與服務器連接。最后,當服務器接受請求后,2個Socket在同一線程對話[5]。此時,上位機將輪胎模具倉庫現場的數據通過動態域名解析服務客戶端軟件實時發送給Android客戶端,Android客戶端開啟后,會將接收到的溫濕度數據、操作日志及報警信息通過insert語句插入到SQLite數據庫中,并能夠定期對其備份。
本文設計的移動監控系統,其Socket客戶端需要接受固定IP地址的數據,而一個固定IP地址的租用費是十分昂貴的,因此需要使用動態域名解析服務客戶端軟件構成移動監控服務器與客戶端之間的鏈路。該軟件的服務商主機提供DNS服務,能夠將用戶動態IP地址映射到固定域名解析服務器DDNS上,解決了域名與動態IP間的綁定問題。常見的動態域名解析服務客戶端軟件有科邁、金萬維、花生殼等,其中花生殼軟件是免費使用的。因此,從經濟方面考慮,本文設計的移動監控系統采用“花生殼”固定IP地址,使得手機可以通過GPRS及WiFi接收數據。
Android是一個開放的平臺,基于Linux內核,用戶可利用其提供的開發環境進行針對性的開發,節約開發成本。
Android SDK是Android專屬軟件開發工具包,采用Java語言,本文采用Eclipse開發平臺[6]。其搭建步驟為安裝JDK,配置環境變量;運行Eclipse,安裝ADT插件;配置Eclipse參數,使其指向SDK根目錄。
搭建Andriod開發環境后,在Eclipse中選擇File>New>Android Project,完成項目的創建。開發輪胎模具倉庫溫濕度無線監控客戶端軟件首先需要定義應用程序的用戶界面[7]。Andriod項目的layout目錄下有一個main.xml文件,使用該文件定義Andriod的界面布局作為用戶界面。其次在該界面的控制面板中拖入任意所需控件,在Mainactivity.java文件中通過findViewById()方法即可獲取指定ID的界面控件。而通過調用Activity的setContentView(View)來顯示指定控件,最后用setOnClickListener()方法來綁定監聽點擊事件監聽器。在圖5的界面中為6個RadioButton類型控件綁定監聽器。當用戶點擊按鈕發生觸發事件時,對應的按鈕監聽器執行界面切換,可以查看6個不同監測點的溫濕度情況。
該溫濕度無線監控系統客戶端軟件不僅能實時接收數據,還能對接收到的數據進行存儲[8]。Google為Andriod數據處理提供了SQLite數據存儲機制,在數據存儲、管理、維護等方面都相當出色。SQLiteDatabase類為我們提供了很多方法,調用insert(),delete(),update(),query()這些方法,可以實現數據庫的增、刪、改、查等操作。
在Java代碼中編寫所有業務實現完成后,選中要運行的Andriod項目,單擊鼠標右鍵,然后在彈出的菜單中單擊“Run As→Andriod Application”菜單項即可運行,同時AAPT工具將編譯好的代碼及應用程序打包成擴展名為.apk的文件,其作為應用程序,用戶只需手機下載安裝此文件即可應用。Java編寫客戶端部分關鍵代碼如下:

倉庫溫濕度實時顯示及操作記錄查詢。軟件能夠查看溫濕度實時曲線,并可查看當日的報表及除濕機啟停等操作信息。
報警推送功能。當倉庫中某處測量點的數據超出限定值時,手機響鈴報警,此功能可選擇是否開啟[9]。
服務器端可監控連接到的手機客戶端,并可強制斷開不明客戶端的連接。
圖5所示為手機數據傳輸界面,選擇2號監測點,溫濕度曲線圖可以直觀地反映出24 h內的溫度起伏變化。SQLite數據庫存儲了溫濕度的歷史數據,方便查詢。
移動服務器終端只能夠對工業數據讀取,無法進行更改[10]。
設計了軟件登陸認證過程,服務器發送的數據是經過加密的數據,只有正確登陸,客戶端軟件才會運行相應的解密程序,看到正確的信息。

圖5 客戶端主界面Fig.5 Clien main interface
本文在輪胎模具倉庫溫濕度監控系統的基礎上,實現了基于Android平臺的移動監控功能。管理員既可以在現場也可以通過遠程監視現場狀況,并進行指揮。該監控軟件的應用可以極大降低工人的勞動強度,保護倉庫存放輪胎模具,并能夠通過手機實時掌握輪胎模具倉庫狀態,方便企業管理。
[1]李鵬.倉庫無線監控系統的研究與實現[D].北京:北京郵電大學,2012.
[2]郭志濤,郭忠,王振.基于Android平臺的智能醫療系統的設計與實現[J].鄭州大學學報,2014,35(6):60-63.
[3]趙萌,崔剛.基于WiFi的Android移動設備導航系統的設計開發[J].智能計算機與應用,2013,3(3):60-64.
[4]曹慶才,高德欣.基于力控的溫濕度遠程監控系統設計[J].自動化技術與應用,2014,32(3):91-95.
[5]張瑞卿.基于Android手機客戶端的中央空調遠程數據監控系統研究[D].福建:廈門大學,2014.
[6]周國祥,劉成良.基于無線Java的遠程監控系統研究[J].自動化儀表,2006(2):18-21.
[7]闕斌生.面向Android應用程序行為的安全監控系統設計與實現[D].北京:北京郵電大學,2014.
[8]楊露霖,徐立鴻,林維威,等.基于Android的溫室移動端檢測監控系統設計[J].機電一體化,2013(6):52-57.
[9]彭鑫.基于Android的工業控制監控軟件的設計和開發[D].浙江:浙江大學,2013.
[10]張娜娜.基于局域網的數據安全傳輸組件的設計與實現[D].陜西:西安電子科技大學,2014.