徐云蛟
摘要:通過產(chǎn)學研項目,認識到上海西馬特機械制造有限公司。經(jīng)過一系列的培訓后,對PLC各方面的知識有所了解,也為了方便該公司日常運作工作管理,開發(fā)了基于Android手機平臺的客戶端。
該設計主要實現(xiàn)的功能是工程師實時獲取每日安排的任務單,在完成工作后,可以提交自己的任務,方便公司負責人在后臺能夠看到解決任務時的詳細工作記錄,以備日后檢閱。根據(jù)上述的主要功能,將利用手機推送功能實現(xiàn)工程師實時獲取不同需求的任務單,利用GPS定位還可以實現(xiàn)提交工作位置,方便工程師簽到等功能。上傳下載工作記錄的功能主要利用了數(shù)據(jù)庫接口來完成。經(jīng)過多次測試,客戶端運行穩(wěn)定,軟件滿足當初設計的要求。
從軟件的實際使用來看,該軟件可以幫助工程師節(jié)約很多時間和精力,也加強了公司負責人對工程師的管理,從而提高工程師工作的效率和公司業(yè)績,后期還可加入更多功能,來滿足巨大的市場需求。
關鍵詞:管理;Android;數(shù)據(jù)庫
中圖分類號:TP391? ?文獻標識碼:A
文章編號:1009-3044(2019)16-0059-04
開放科學(資源服務)標識碼(OSID):
1 緒論
1.1 引言
PLC叫做可編程邏輯控制器,是專門為在工業(yè)環(huán)境下應用而設計的數(shù)字運算操作電子系統(tǒng)。它采用一種可編程的存儲器,在其內部存儲執(zhí)行邏輯運算、順序控制、定時、計數(shù)和算術運算等操作的指令,通過數(shù)字式或模擬式的輸入輸出來控制各種類型的機械設備或生產(chǎn)過程。[1]
在低端的離散自動化系統(tǒng)和獨立自動化系統(tǒng)中使用的小型控制器模塊,可靠性高,編程方便,組態(tài)靈活,并且具有齊全的輸入和輸出功能模塊。通過安裝Siemens TIA Portal V15就能對西門子系列的設備進行編程和控制,在人工智能領域起到了很大的作用。
隨著智能手機系統(tǒng)的不斷發(fā)展,人工智能控制系統(tǒng)的需求不僅僅要在電腦上運行,同樣需要在手機上得到發(fā)展,無論是在公司內部的管理和運作,還是工程師們的日常的工作中,如果能發(fā)揮手機軟件的便捷性,隨時隨地打開查看,并且還能提供專業(yè)的幫助,為工程師打造良好的工作環(huán)境。在互聯(lián)網(wǎng)時代,對樹立企業(yè)形象也有極大的宣傳作用。
1.2 安卓應用開發(fā)前景
谷歌自從推出Android系統(tǒng)以來,市場響應熱烈,對比以往的塞班手機優(yōu)勢明顯,所以很快占領了一部分市場份額并迅速地擴大份額量。Android系統(tǒng)手機不僅在國外反應強烈,在國內也受到了很強烈的歡迎,所以說Android系統(tǒng)手機還在蒸蒸日上不斷發(fā)展中。
在手機市場火爆的情況下,Android系統(tǒng)憑借著開放的平臺,豐富的應用,贏得了屬于自己的龐大的客戶人群。谷歌的Andriod系統(tǒng)也在不斷的升級,其開發(fā)出的軟件功能不斷加強,所以還會有越來越多的人選擇Android系統(tǒng)的手機和或者一些Andriod系統(tǒng)的無線終端設備 [2]。
未來基于Android系統(tǒng)的應用軟件將進入飛速發(fā)展的全新階段。Android系統(tǒng)的應用絕不僅限于手機產(chǎn)業(yè),幾年來其迅速擴張到相關領域,例如平板電腦、車載系統(tǒng)、電視STB、智能電器、智能會議系統(tǒng)等。目前,各IT廠商都在努力的研發(fā)前沿應用軟件,以期待在Android系統(tǒng)發(fā)展這一群雄逐鹿的關鍵階段,占領更多的市場份額。
所以在Android平臺上開發(fā)一款功能豐富而且人性化的企業(yè)管理輔助系統(tǒng),具有很大的市場潛力。
2 系統(tǒng)概述
2.1 項目介紹
通過產(chǎn)學研項目,在上海西馬特機械制造有限公司學習了一段時間。經(jīng)過這一系列的培訓,在對PLC各方面的知識有所了解的同時,也熟悉了該公司生產(chǎn)線上的日常維護和運行。為了方便該公司日常運作工作管理,開發(fā)了基于Android手機平臺的客戶端。
2.2 需求分析
本軟件使用者可分為管理員和PLC工程師,PLC工程師通過移動客戶端獲取每天的工作任務,如流水線控制要求、加工零件的尺寸、其他協(xié)作工程師的信息等。在完成工作以后,需要提交工作記錄。
根據(jù)以上敘述,得到如下分析:
2.2.1 工程師基本功能要求
1)即時獲取每日工作任務:當有工程師新的工作任務時,系統(tǒng)即時發(fā)出通知。
2)工作任務查看:查看工作任務詳細信息。
3)提交工作記錄:運維工程師提交處理工作任務的起始時間、內容、結果等,同一工作任務可以多次提交工作記錄。
4)查看修改已提交的工作記錄。
5)運維資料庫,方便工程師查閱。
6)每日簽到,通過GPS獲取簽到位置。
2.2.2 管理員基本功能要求
1)分配任務:定義產(chǎn)品尺寸、流水線作業(yè)等。
2)編輯資料庫:包括硬件資料、產(chǎn)品資料、問題解答等。
3)查看工程師信息:包括每日打卡簽到、工作完成情況、產(chǎn)品生產(chǎn)情況匯總等。
2.3 主要功能設計
移動客戶端的設計有八個主要功能,涉及數(shù)據(jù)庫的調用、向數(shù)據(jù)庫中寫入數(shù)據(jù)、刪除數(shù)據(jù)庫中數(shù)據(jù)、數(shù)據(jù)的顯示、GPS定位獲取、軟件消息實時提醒、電話呼叫功能和資料庫。將這些功能開發(fā)并實現(xiàn),就能組合成各個功能模塊,將功能模塊結合上UI設計,就可以完成軟件客戶端的設計。圖1所示,系統(tǒng)流程圖。
1)數(shù)據(jù)庫的調用:調用數(shù)據(jù)庫中的工程師信息表(engineer)、派單表(dispactch)、任務單表(task)、工作記錄表(record)、工作記錄圖表(image)、簽到記錄信息表(checkin)。
2)數(shù)據(jù)庫中寫入數(shù)據(jù):提交數(shù)據(jù)必須進入到某項具體任務中,然后向數(shù)據(jù)庫中提交工作記錄表(record)、工作記錄圖表(image)、簽到記錄信息表(checkin)等信息。
為使Android應用程序可以在模擬器上運行,在Eclipse中創(chuàng)建安裝虛擬機AVD。在Android 1.5版本以后的開發(fā)過程中,AVD創(chuàng)建的數(shù)量不可以少于1個,每個AVD會模擬一套虛擬的設備來運行開發(fā)的Android應用程序[8]。
模擬器的啟動后的界面和正常的Android的使用方法相同,可以在開發(fā)Android軟件時通過模擬器進行軟件的測試,便利性大大增加,也節(jié)約了開發(fā)人員寶貴的時間。在開發(fā)程序之前必須要搭建好開發(fā)環(huán)境,否則開發(fā)過程中就會出現(xiàn)錯誤。
4 系統(tǒng)功能實現(xiàn)
4.1 登錄模塊
本軟件在實際使用中都是由項目公司的PLC工程師操作,要求軟件系統(tǒng)具有很高的安全性和保密性,以防止公司資料泄密。所以,在工程師登錄模塊中,當工程師未輸入賬號密碼或者只輸入了一項時會提示工程師賬號密碼為空。當工程師賬號密碼都輸入時,點擊登錄,通過接口與服務端數(shù)據(jù)庫中的工程師信息進行比對,若賬號密碼正確,則可以順利登錄軟件,若賬號密碼不正確則提示賬號密碼有誤。在登錄模塊設立onClick監(jiān)聽事件,然后應用AsyncHttpClient請求,可以使輕松地獲取網(wǎng)絡數(shù)據(jù)或者向服務器發(fā)送數(shù)據(jù),運用了異步框架,在底層用線程池處理并發(fā)請求,提高請求效率。
4.2 工作安排模塊
在工程師登錄軟件之后,界面會實時更新工作的內容,根據(jù)不同設備的要求做出不同的要求。這里的工作安排表通過接口利用登錄模塊所用的異步傳輸請求從服務端下載數(shù)據(jù)。
根據(jù)任務的時間不同,進行數(shù)據(jù)排序。找到排序點之后還需要用到Comparator函數(shù),該函數(shù)實現(xiàn)了 Comparator接口(即“比較器”接口,新集合庫的一部分)的一個對象,并用它的單個compare()方法進行比較。這個方法將兩個準備比較的對象作為自己的參數(shù)使用,若第一個參數(shù)小于第二個,返回一個正整數(shù);若相等,返回零;若第一個參數(shù)大于第二個,則返回負整數(shù)。
ListView是Android開發(fā)中非常常用的組件,ListView可以用來顯示一個列表,本次開發(fā)的工作安排表、工作記錄、簽到記錄等都需要利用Listview顯示排序后的數(shù)據(jù)。僅僅有Listview是顯示不了數(shù)據(jù)的,還需要用到Adapter來適配數(shù)據(jù)。
4.3 簽到記錄模塊
簽到記錄模塊,無法刪除所簽到的數(shù)據(jù),只能提交手機GPS獲取的位置,并將獲取的位置上傳至服務端,通過服務端后臺百度地圖解析顯示。當成功提交位置后,在服務端和客戶端都會顯示。
為了提高定位信息的準確度,本次開發(fā)利用updateView函數(shù)實現(xiàn)了GPS更新位置信息,并保留在Textview中,當需要上傳時,將自動從Textiew中獲取。
簽到記錄的顯示還用到Listerview+Adapter功能,但這里添加了onRefresh()函數(shù)上拉刷新功能。在刷新本地數(shù)據(jù)的同時,因為客戶端和服務端的請求回應需要時間,所以本次設計了handle延時功能,可以讓刷新的進度與客戶端獲取的速度保持一致。在延時的過程中, listView.setRefreshTime通知客戶端更新數(shù)據(jù),讓客戶端數(shù)據(jù)保持最新。
4.4 工作記錄模塊
在上述模塊的介紹過程中,已經(jīng)涉及到了AsyncHttpClient異步傳輸,Listeview+adapter顯示,Json解析數(shù)據(jù),Comparator數(shù)據(jù)排序等技術。工作記錄模塊主要是對數(shù)據(jù)庫的操作,對數(shù)據(jù)庫中的數(shù)據(jù)進行提交、修改和刪除,所以本模塊也應用到了上述技術。
在上傳、提交、刪除三種網(wǎng)絡請求交互時,需要用到switch函數(shù),通過v.getId獲取物件的id碼,通過id識別請求方式。
4.5 資料庫模塊
資料庫模塊是對PLC工作技巧的一個總結,方便PLC工程師在運維工作前學習技術,在運維工作中也可以直接查閱。將公司提供的數(shù)據(jù),導入進軟件的數(shù)據(jù)庫中,并進行一定的分類,實現(xiàn)數(shù)據(jù)的查閱和檢索。
4.6 電話呼叫模塊
電話呼叫模塊主要實現(xiàn)工程師通訊錄功能,通過異步請求,利用接口下載工程師信息表,并json解析后在listview中顯示。電話呼叫模塊的最大特色就是利用Intent直接撥號快捷功能,當工程師想咨詢另一位工程師時,并不需要存儲聯(lián)系方式,通過系統(tǒng)客戶端,在聯(lián)系人一欄查閱號碼,可以直接點擊撥號,無需退出程序。
本章主要介紹了軟件各模塊的功能及實現(xiàn)的方法,在模塊功能的實現(xiàn)原理中,主要應用到了AsyncHttpClient異步傳輸,Listeview+adapter顯示,Json解析數(shù)據(jù),Comparator數(shù)據(jù)排序等技術。
5 總結
開發(fā)完成后,在硬件平臺方面,測試的硬件需要一部可以裝載Android系統(tǒng)的手機。在軟件平臺方面,需要手機操作系統(tǒng)為Android 4.2.2或者更高的版本。在軟件測試之前應做如下設置:1)手機安裝上開發(fā)版本為8.0的Android軟件。2)打開手機的網(wǎng)絡功能,可以為無線網(wǎng)絡也可以為數(shù)據(jù)蜂窩網(wǎng)絡,同時需要打開手機的GPS定位。手機網(wǎng)絡和GPS設置完成后,用戶就可以在手機中點擊軟件圖標開啟軟件使用。
本軟件系統(tǒng)僅作為初步試驗版,并未正式投入使用,后期還可以加入更多功能,例如對硬件控制的功能,查看硬件設備狀態(tài),記錄生產(chǎn)設備的詳細信息管理等功能。以此來滿足不同企業(yè)的需求,具有非常廣闊的市場前景。
參考文獻:
[1] 竺志超,陳元斌,韓豫.非標自動化設備設計與實踐 畢業(yè)設計、課程設計訓練[M]國防工業(yè)出版社,2015.
[2] 鄭阿奇.Java實用教程[M].北京:電子工業(yè)出版社,2015.
[3] 韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2012:54-55.
[4] 韓超.Android經(jīng)典應用程序開發(fā)[M].北京:電子工業(yè)出版社,2012:36-45.
[5] Markus Alekss. Use Java and the CORBA realization distribute type system[J].Journal??of Pingxiang College, 2013 (3):11-12.
[6] 明日科技.Android開發(fā)從入門到精通[M].北京:清華大學出版社,2017.
[7] 李剛.瘋狂Android講義[M]. 4版.北京:電子工業(yè)出版社,2019.
[8] Haseman Chris. Android Essentials[M].Apress:the Experts Voice,2013: 42-45.
【通聯(lián)編輯:梁書】