葉劍飛 李燁
摘要:
針對某涂料加工生產(chǎn)企業(yè)生產(chǎn)過程中急需解決的生產(chǎn)管理、計劃編制與執(zhí)行跟蹤方式落后以及工序生產(chǎn)信息采集不及時等問題,提出了基于Socket通信的生產(chǎn)管理跟蹤系統(tǒng)。區(qū)別于傳統(tǒng)的車間生產(chǎn)管理模式,該系統(tǒng)加入了基于Android的移動終端設(shè)備,利用TCP的Socket通信技術(shù)、Winform框架以及數(shù)據(jù)庫管理技術(shù),通過Android移動終端信息采集和服務端通信技術(shù),對車間生產(chǎn)進度進行遠程監(jiān)督和管理,從而降低了人力成本,緩解了監(jiān)督不及時的問題,提高了監(jiān)督力度與生產(chǎn)效率。
關(guān)鍵詞:
信息采集;Socket通信技術(shù);Winform框架;數(shù)據(jù)庫技術(shù)
DOIDOI:10.11907/rjdk.172750
中圖分類號:TP319
文獻標識碼:A文章編號文章編號:16727800(2018)003013603
英文摘要Abstract:For the production management, planning and the behindhand execution trace ways in the implementation of production process that a certain paint production enterprises faces, we proposes a discrete production management tracking system based on Socket communication. The production management mode is different from the traditional, joined the mobile terminal equipment based on Android, using TCP Socket communication technology, Winform framework and database management technology, through the Android mobile terminal information acquisition and server communication technology, remote monitoring and management of the workshop production schedule, reduce manpower needs and alleviate the problem of not timely. Increased supervision and production efficiency.
英文關(guān)鍵詞Key Words:information acquisition; Socket communication technology; Winform framework; database technology
0引言
隨著市場環(huán)境的快速變化,現(xiàn)代制造型企業(yè)也在加快信息化進程,智能化、網(wǎng)絡(luò)化和集成化正成為制造業(yè)發(fā)展趨勢。企業(yè)對生產(chǎn)數(shù)據(jù)的實時采集與生產(chǎn)進度監(jiān)控問題越來越關(guān)注,以期提高生產(chǎn)效率與監(jiān)管力度,實現(xiàn)制造過程的可追溯性等。
傳統(tǒng)的生產(chǎn)車間管理系統(tǒng),大部分需要通過人力進行統(tǒng)計和監(jiān)督,效率低下、實時性差且出錯率高,無法滿足實時預警和監(jiān)控、數(shù)據(jù)查詢存儲、快速追責以及靈活記錄生產(chǎn)信息的需求。隨著移動終端智能設(shè)備的不斷普及,現(xiàn)代制造企業(yè)對生產(chǎn)管理的靈活性和便捷性提出了更高要求。
本文以某涂料加工生產(chǎn)車間為背景,從車間的實際出發(fā),建立了基于Socket通信的生產(chǎn)管理跟蹤系統(tǒng)[12]。不同于傳統(tǒng)的生產(chǎn)管理系統(tǒng),本系統(tǒng)能夠通過Android移動終端設(shè)備實現(xiàn)生產(chǎn)數(shù)據(jù)的采集[3]、發(fā)送以及生產(chǎn)進度的實時查詢,并通過服務端對生產(chǎn)過程進行實時監(jiān)控和記錄。
1系統(tǒng)需求
經(jīng)過對該企業(yè)車間的詳細調(diào)研和仔細分析,發(fā)現(xiàn)目前車間管理方面存在的主要問題如下:
(1)人力依賴性大。各個工序的生產(chǎn)進度監(jiān)督與生產(chǎn)數(shù)據(jù)采集完全依靠人力完成[4],效率低下,且經(jīng)常由于工作人員的工作不到位與失誤造成一定的損失和矛盾。
(2)數(shù)據(jù)存儲和查詢困難。由于生產(chǎn)數(shù)據(jù)以及訂單等重要數(shù)據(jù)都是通過人力進行統(tǒng)計和存儲,導致數(shù)據(jù)散亂不集中,且查詢起來費時費力,經(jīng)常造成數(shù)據(jù)丟失和錯誤,各部門數(shù)據(jù)無法很好地共享和對應,容易形成“信息孤島”,導致工作量大大增加,且工作效率低下。
(3)數(shù)據(jù)采集困難。生產(chǎn)管理人員無法實時跟蹤生產(chǎn)過程中的設(shè)備運行狀態(tài)、工序生產(chǎn)時間、生產(chǎn)人員監(jiān)督以及訂單完成情況,數(shù)據(jù)采集需要通過人工記錄,數(shù)據(jù)的完整性和可靠性得不到保障,管理效率低下。
2系統(tǒng)結(jié)構(gòu)
車間生產(chǎn)管理跟蹤系統(tǒng)采用C/S體系結(jié)構(gòu),利用智能手機等移動設(shè)備進行數(shù)據(jù)采集和查詢,使用PC服務器完成本系統(tǒng)應用程序的管理、維護和運行,從而極大地增強了系統(tǒng)的集成性和可維護性。生產(chǎn)車間裝有大的顯示屏,用來顯示和監(jiān)督整個生產(chǎn)車間的訂單生產(chǎn)進度等狀態(tài)信息。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
2.1系統(tǒng)客戶端設(shè)計
客戶端是一個Android系統(tǒng)的APP,主要實現(xiàn)信息采集和數(shù)據(jù)查詢功能,包括登錄模塊、通信模塊、采集模塊、查詢模塊以及用戶管理模塊。登錄模塊包含兩種登錄方式,一種是管理員模式,一種是員工模式,通過登錄的賬戶、密碼和數(shù)據(jù)庫[5]進行匹配,以指定登錄人員的權(quán)限,進入不同界面,實現(xiàn)不同功能,從而提高系統(tǒng)的安全性和便捷性;采集模塊在員工登錄功能里,包含掃描功能和手動輸入功能,通過掃描或手動輸入進行信息采集,最后通過TCP Socket寫入數(shù)據(jù)庫,并在顯示屏上顯示;查詢模塊是管理員登錄后的功能,通過TCP Socket和PC服務端進行通信[6],通過輸入的信息進行數(shù)據(jù)庫查詢,以便實時監(jiān)督生產(chǎn)進度和進行人力資源等調(diào)度管理;用戶管理模塊可方便員工和管理者管理個人信息,包括修改密碼和用戶名等功能,并對修改后的信息進行存儲保存。
2.2系統(tǒng)服務端設(shè)計
PC服務端的功能主要用于與數(shù)據(jù)庫、客戶端進行連接通信及顯示,對數(shù)據(jù)庫進行操作和接收客戶端采集的信息并顯示。服務端包含數(shù)據(jù)導入/導出模塊、用戶管理模塊、生產(chǎn)數(shù)據(jù)管理模塊、生產(chǎn)設(shè)置模塊、通信模塊、顯示模塊以及操作記錄查詢模塊。用戶管理和生產(chǎn)數(shù)據(jù)管理模塊都需要管理員的身份驗證,以保證系統(tǒng)的安全性。數(shù)據(jù)庫是本系統(tǒng)的數(shù)據(jù)核心部分,數(shù)據(jù)庫的設(shè)計直接影響著系統(tǒng)的工作效率和穩(wěn)定性。本系統(tǒng)采用Sqlite3作為生產(chǎn)跟蹤管理系統(tǒng)的數(shù)據(jù)庫。
車間根據(jù)訂單信息和需求等制定生產(chǎn)計劃、生產(chǎn)批次表和工序計劃表,隨之確定相應的生產(chǎn)人員、設(shè)備及工藝,同時確定所需要的物料信息,通過客戶端和服務端通信,操作數(shù)據(jù)庫內(nèi)的訂單信息并設(shè)定系統(tǒng),服務端的結(jié)構(gòu)模型如圖2所示。
3關(guān)鍵模塊及技術(shù)分析
3.1采集模塊與查詢模塊
客戶端的采集模塊和查詢模塊屬于不同登錄方式包含的功能,員工登錄后主要通過采集模塊進行數(shù)據(jù)的采集并發(fā)送給服務端,而考慮管理者監(jiān)督生產(chǎn)進度的便捷性,管理員登錄后,即可通過移動設(shè)備隨時與服務端通信,通過查詢模塊查詢重要訂單的進度。
(1)數(shù)據(jù)采集。數(shù)據(jù)采集模塊使用條形碼掃描技術(shù)和手動輸入技術(shù)。客戶端使用員工身份登錄后,主界面包括掃描和手動輸入兩種采集方式,考慮到便捷性和可靠性,員工會首先選擇掃描功能。某工序生產(chǎn)完成后,生產(chǎn)員工掃描該訂單的條形碼,出現(xiàn)該訂單的裝罐單號信息后,員工通過TCP Socket通信把訂單信息和工序發(fā)送給服務端,服務端會根據(jù)裝罐單號在數(shù)據(jù)庫中記錄生產(chǎn)時間和生產(chǎn)人員信息。該采集方式安全可靠且方便快速,但由于該功能需要調(diào)用移動設(shè)備的攝像功能,且考慮到會出現(xiàn)條形碼清晰度不夠等問題,同時設(shè)置了手動輸入訂單信息的功能,并發(fā)送給服務端存儲采集信息。該采集方式的安全性和效率都比較低。
(2)訂單查詢??蛻舳耸褂霉芾韱T身份登錄后,便可進行訂單進度查詢。一個訂單對應一個客戶,但可能會有多個裝罐單號,管理員通過向服務端發(fā)送訂單號,服務端通過該訂單號進行查詢,并將查詢到的一條或多條訂單信息發(fā)送給客戶端,管理者通過回復信息即可查看訂單進度,以實現(xiàn)實時監(jiān)督,方便快捷。
3.2導入/導出模塊
(1)導入模塊。對于新訂單信息,服務端通過導入模塊,將含有新訂單信息的Excel表格導入數(shù)據(jù)庫進行統(tǒng)一存儲管理,然后車間才開始生產(chǎn),通過客戶端和服務端的通信,實時更新數(shù)據(jù)庫中已有訂單的生產(chǎn)進度。該模塊使用sqlite3.dll的函數(shù)接口和OLEDB技術(shù)實現(xiàn)了數(shù)據(jù)庫的寫操作和Excel的讀操作。
(2)導出模塊。對于數(shù)據(jù)庫中正在生產(chǎn)以及已完成的訂單,通過導出模塊可以先查詢出在某個時間段的訂單信息并將其以Excel表格形式導出,通過與服務端相連的打印機可以將其輸出打印。該模塊使用sqlite3.dll的函數(shù)接口和OLEDB技術(shù)實現(xiàn)了數(shù)據(jù)庫的讀操作和Excel的寫操作。
3.3關(guān)鍵技術(shù)分析
(1)并發(fā)采集。在生產(chǎn)過程中,由于多條訂單會同時進行,則需要多臺設(shè)備對訂單生產(chǎn)進度進行采集,因此要求整個服務端的接收模塊滿足高并發(fā)的要求。多線程技術(shù)[7]是傳統(tǒng)的實現(xiàn)高并發(fā)的方法,但多線程會增加線程調(diào)度時間和數(shù)據(jù)切換時間,所以本系統(tǒng)未采用傳統(tǒng)方法,而是使用線程池的方法。
開始先為線程池配置一個合適的線程容量,當客戶端和服務端連接時,隨著設(shè)備增加,服務端相應地增加線程數(shù)目,創(chuàng)建多個并發(fā)子進程。當訂單信息完成后,客戶端斷開與服務端的連接,服務端則將已完成訂單的線程逐步銷毀。線程池的主要優(yōu)點是降低了操作系統(tǒng)的額外開銷與服務端的延遲。
(2)數(shù)據(jù)庫和Excel表格的連接技術(shù)。本系統(tǒng)的一個核心技術(shù)就是對數(shù)據(jù)庫和Excel表格的連接技術(shù)。由于車間的訂單信息經(jīng)常更新,存儲量不會太大,所以本系統(tǒng)采用超輕量級嵌入式數(shù)據(jù)庫,其語法支持標準的SQL語法,同時遵循數(shù)據(jù)庫的ACID事務,且開發(fā)人員容易上手,快速掌握。由于本系統(tǒng)服務端采用C#界面程序,而對于Sqlite3數(shù)據(jù)庫的接口,官網(wǎng)的System.Data.SQLite是針對C#編寫的接口函數(shù),可以直接調(diào)用。通過官網(wǎng)下載安裝后,在項目引用里添加相應的DLL文件引用即可使用各種封裝函數(shù),更加方便快捷,且SQLite Expert Personal可以對Sqlite數(shù)據(jù)庫實現(xiàn)界面化操作,更加清晰。
本系統(tǒng)對于Excel表格的操作,使用OLEDB接口技術(shù),將服務端和Excel連接,實現(xiàn)訂單數(shù)據(jù)的導入導出操作。由于C#里自帶了該接口技術(shù)的模塊,所以只需添加相應的引用即可使用,從而提高了開發(fā)效率。
(3)客戶端與服務端的數(shù)據(jù)傳輸。本系統(tǒng)使用TCP Socket技術(shù)實現(xiàn)客戶端和服務端的連接功能,且由于客戶端和服務端不在同一個局域網(wǎng),所以在通信過程中需要對服務端進行端口映射技術(shù),將服務端的局域網(wǎng)IP暴露給外界,客戶端通過路由IP訪問服務端。
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,采用完全獨立于編程語言的文本格式存儲和表示數(shù)據(jù),易于閱讀和編寫,同時也易于機器解析和生成,可以有效地提升網(wǎng)絡(luò)傳輸率。本系統(tǒng)客戶端采用Java編寫的Android APP[8],而服務端采用C#編寫的Winform界面[910],在數(shù)據(jù)傳輸時需要考慮兩種編程語言的編碼問題。本系統(tǒng)使用JSON技術(shù)解決兩種編程語言的數(shù)據(jù)傳輸問題。
4結(jié)語
本文針對某涂料加工生產(chǎn)企業(yè)車間存在的生產(chǎn)管理問題,利用TCP Socket技術(shù)、數(shù)據(jù)庫管理技術(shù)以及Winform框架,設(shè)計了一個生產(chǎn)管理跟蹤系統(tǒng)。該系統(tǒng)較好地解決了傳統(tǒng)管理中的信息零散、數(shù)據(jù)冗余、信息反饋速度慢、信息滯后乃至信息造假問題,與傳統(tǒng)生產(chǎn)管理系統(tǒng)相比,本文提出的基于Android客戶端的系統(tǒng)使管理更加靈活,極大地提高了生產(chǎn)企業(yè)的管理與生產(chǎn)效率。
參考文獻參考文獻:
[1]王曉飛,李月強.基于PLC的汽車生產(chǎn)線管理系統(tǒng)[J].儀器儀表學報,2004,25(4):894895.
[2]SHENG B,WANG Y,WANG J P.Production process management system based on RFID technology[J].Journal of Wuhan University of Technology,2012,21(8):1724.
[3]楊海素.面向MES的制造過程信息采集與處理系統(tǒng)研究[D].南京:南京理工大學,2014.
[4]譚海紅.基于Android的遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].組合機床與自動化加工技術(shù),2015(7):6163.
[5]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)導論[M].北京:高等教育出版社,2000.
[6]孫曉夢,王志斌.基于TCP的多線程Socket通信實例[J].遼東學院學報:自然科學版,2013,20(3):178182.
[7]羅亞非.基于TCP的Socket多線程通信[J].電腦知識與技術(shù):學術(shù)交流,2009,5(1X):563565.
[8]宋素榮.基于TCP的Java Socket通信技術(shù)[J].科技創(chuàng)新導報,2012(13):5455.
[9]張俊,喬宇峰.C#程序設(shè)計入門[M].吉林:吉林電子出版社,2005.
[10]MICKEY WILLIAMS.Visual C#.NET技術(shù)內(nèi)幕[M].羅鄧,郭炎,譯.北京:清華大學出版社,2003.
責任編輯(責任編輯:黃健)