董 輝,韓林貝,董 浩,袁登鵬,李華昌
(浙江工業(yè)大學 信息工程學院,杭州 310023)
針織手套作為生活的必需品和易耗品,其需求日益增長,應用也越來越廣泛。近年來全自動手套機正在逐漸取代人工勞作方式以滿足日益增長的市場發(fā)展需求[1]。全自動手套在實現(xiàn)編織功能之外還具有網(wǎng)絡監(jiān)測、全中文示教和使用U盤更新編織動作程序的功能[2]。在手套生產(chǎn)車間里,工人需對每臺手套機進行現(xiàn)場監(jiān)控管理,由于車間手套機數(shù)量眾多,給操作管理人員對設備的監(jiān)控管理帶來了一定的難度,也會增加企業(yè)的管理成本。何懂良等人開發(fā)了基于以太網(wǎng)的手套機網(wǎng)絡監(jiān)控系統(tǒng)[3]和胡姣開發(fā)的基于以太網(wǎng)通訊的手套機網(wǎng)絡監(jiān)控系統(tǒng)[4]都采用工業(yè)以太網(wǎng)作為通信方式,把大量的手套機設備通過網(wǎng)線連接到車間管理系統(tǒng)進行設備的實時監(jiān)控管理。但此方案也存在缺陷,大量的手套機設備通過網(wǎng)線連接到監(jiān)控管理系統(tǒng),會帶來布線上的困難,使手套機設備的可移動性變?nèi)?,增加企業(yè)維護成本,也帶來潛在的安全風險。
隨著工業(yè)4.0時代的來臨和計算機網(wǎng)絡的發(fā)展,特別是5G網(wǎng)絡的推廣應用和無線傳感網(wǎng)絡的發(fā)展,讓移動通信的速度和效率都有了質(zhì)的提升,互聯(lián)網(wǎng)已經(jīng)邁進了“互聯(lián)網(wǎng)+”的時代[5]?;ヂ?lián)網(wǎng)與傳統(tǒng)行業(yè)的應用相結合,能大幅提高生產(chǎn)效率[6]。傳統(tǒng)制造業(yè)行業(yè)在完成轉(zhuǎn)型升級的過程當中,對生產(chǎn)智能化程度要求越來越高,物聯(lián)網(wǎng)技術的發(fā)展與應用,給智慧工廠提供了可行的解決方案[7]。工業(yè)物聯(lián)網(wǎng)把移動通信、移動計算和智能終端應用到工業(yè)生產(chǎn)現(xiàn)場,提高生產(chǎn)效率,降低企業(yè)成本,從而實現(xiàn)“智慧工廠”[8]。郭銳應用工業(yè)物聯(lián)網(wǎng)技術設計了基于工業(yè)物聯(lián)網(wǎng)的起重機遠程監(jiān)控系統(tǒng)來對起重機的狀態(tài)進行實時監(jiān)測[9]。鄭樹泉設計的工業(yè)物聯(lián)網(wǎng)大數(shù)據(jù)平臺,應用到了橋梁安全檢測中,對橋梁日常運行情況進行監(jiān)督[10]。張啟亮等人把工業(yè)物聯(lián)網(wǎng)大數(shù)據(jù)平臺應用在了工程機械行業(yè)[11]。工業(yè)物聯(lián)網(wǎng)的應用領域主要還是集中在礦山機電、電網(wǎng)、水利等行業(yè),應用于手套機行業(yè)的并不多。
針對以上現(xiàn)狀,設計基于Web的手套機工業(yè)物聯(lián)網(wǎng)平臺。平臺主要由Web應用程序、通信服務程序和數(shù)據(jù)庫三個部分組成。手套機設備使用WIFI無線的傳輸方式替代傳統(tǒng)的有線網(wǎng)絡接入平臺,使得手套機生產(chǎn)現(xiàn)場布線變得簡單,維護也變得方便。平臺通過對互聯(lián)網(wǎng)、大數(shù)據(jù)、物聯(lián)網(wǎng)等技術的應用,實現(xiàn)了對手套機生產(chǎn)過程的監(jiān)控,人員的管理,設備的更新維護等功能,使管理者和用戶隨時隨地掌握工廠的生產(chǎn)狀況,提高了生產(chǎn)效率,降低了運行成本。
基于Web的手套機工業(yè)物聯(lián)網(wǎng)平臺主要由通信服務程序、Web應用程序和數(shù)據(jù)庫組成。通信服務程序接收手套機設備通過WIFI無線通信方式上傳的數(shù)據(jù),解析后存入數(shù)據(jù)庫。數(shù)據(jù)庫能確保數(shù)據(jù)的安全,使數(shù)據(jù)具有可追溯性。軟件配備的防火墻,可對網(wǎng)絡進行安全隔離,增強平臺的安全性。外部用戶可以通過互聯(lián)網(wǎng)訪問Web應用程序,獲取相應的生產(chǎn)數(shù)據(jù),同時也可以下達控制更新指令給手套機設備。平臺整體架構如圖1所示。
圖1 手套機工業(yè)物聯(lián)網(wǎng)平臺整體架構圖
根據(jù)工業(yè)物聯(lián)網(wǎng)的層次結構,基于Web的手套機工業(yè)物聯(lián)網(wǎng)平臺分為4個層次,如圖2所示,分別為數(shù)據(jù)采集層、網(wǎng)絡傳輸層、數(shù)據(jù)存儲層和應用服務層。
圖2 平臺體系結構圖
1)數(shù)據(jù)采集層:數(shù)據(jù)采集層解決手套機設備數(shù)據(jù)采集的問題,采集手套機生產(chǎn)過程中的數(shù)據(jù),并將這些數(shù)據(jù)發(fā)送給網(wǎng)絡傳輸層。
2)網(wǎng)絡傳輸層:是指設備監(jiān)控網(wǎng)絡,是各系統(tǒng)連接的紐帶,負責把數(shù)據(jù)采集層采集到的數(shù)據(jù)向上傳遞,也負責向下傳遞更新手套機編織動作程序等控制更新指令。平臺采用WIFI無線通信的方式進行數(shù)據(jù)傳輸。
3)數(shù)據(jù)存儲層:是指存儲設備數(shù)據(jù)的數(shù)據(jù)庫,對實時運行數(shù)據(jù)、跟蹤數(shù)據(jù)及歷史數(shù)據(jù)分開存儲,同時也存儲一些網(wǎng)頁端應用服務層的人員管理信息和下達的控制指令數(shù)據(jù)。數(shù)據(jù)庫采用Microsoft開發(fā)的SQL Server。
4)應用服務層:實現(xiàn)手套機工業(yè)物聯(lián)網(wǎng)平臺的相關功能。主要實現(xiàn)對手套機運行狀態(tài)、報警信息和人員信息的管理等操作。同時進行一些生產(chǎn)數(shù)據(jù)的分析,更好地輔助企業(yè)的生產(chǎn),提高生產(chǎn)效率。
通信服務程序基于C/S的桌面控制臺應用程序編寫,采用Socket完成端口和線程池技術處理高并發(fā)的數(shù)據(jù)和連接。其主要功能有:
1)供大量WIFI的長連接,并將接收到的手套機運行數(shù)據(jù)存入數(shù)據(jù)庫;
2)推送控制指令給手套機設備,下發(fā)手套機編織動作更新程序。
以下對通信服務程序包含的通信協(xié)議、手套機設備監(jiān)控功能和控制更新指令推送功能展開介紹。
TCP/IP網(wǎng)絡控制協(xié)議可以進行可靠的數(shù)據(jù)傳輸,可作為底層通信承載協(xié)議,但不保證應用層上數(shù)據(jù)的可靠性。為防止在應用層上出現(xiàn)數(shù)據(jù)不可靠問題,手套機工業(yè)物聯(lián)網(wǎng)平臺基于TCP/IP設計了應用層自定義通信協(xié)議。該通信協(xié)議數(shù)據(jù)包格式如表1所示,其中有效數(shù)據(jù)最大長度為1 000位。
表1 通信數(shù)據(jù)包格式
自定義通信協(xié)議規(guī)定了手套機與平臺之間注冊、心跳包上傳、數(shù)據(jù)包上傳、應答上傳和服務器下發(fā)等指令的數(shù)據(jù)包格式。本通信協(xié)議是建立在傳輸層的基礎之上,與具體網(wǎng)絡無關,體現(xiàn)了通信介質(zhì)的無關性。在可擴展性上,本通信協(xié)議不限制手套機工業(yè)物聯(lián)網(wǎng)平臺擴展其他信息,只要不與上表通信數(shù)據(jù)包格式的規(guī)定產(chǎn)生沖突,都能接入平臺。
設備監(jiān)控是基于Web的手套機工業(yè)物聯(lián)網(wǎng)平臺的核心。手套機采用的是WIFI無線通信的方式直接連接通信服務程序。由于平臺也具備向手套機推送控制指令更新編織動作的功能,所以要保證TCP為長連接。車間手套機設備眾多,存在大量的數(shù)據(jù)并發(fā)情況,會給運行通信服務程序的服務器帶到巨大的壓力。需選擇一個合適的網(wǎng)絡模型,使程序能夠在通信過程中對套接字上的IO進行管理。本平臺選用Windows網(wǎng)絡編程中的輸入輸出完成端口模型和線程池技術編寫能處理高并發(fā)數(shù)據(jù)的通信服務程序。完成端口(IOCP)模型是到目前為止Windows平臺下效率最高的多線程網(wǎng)絡編程模型,可以設計和實現(xiàn)具備高性能的網(wǎng)絡服務器[12]。
手套機生產(chǎn)過程監(jiān)控分為3個階段:手套機設備開機階段、手套機設備運行階段、手套機設備關機階段,如圖3所示。
圖3 手套機設備生產(chǎn)過程監(jiān)視流程圖
1) 手套機設備開機階段:手套機開始運行后需發(fā)送注冊指令包給平臺,通知平臺手套機上線了,要開始發(fā)送數(shù)據(jù)指令包。平臺會回復一個注冊應答指令包告知平臺已準備好接收數(shù)據(jù),可以開始發(fā)送手套機運行生產(chǎn)數(shù)據(jù)。
2) 手套機設備運行階段:手套機發(fā)送生產(chǎn)運行數(shù)據(jù)包,平臺對數(shù)據(jù)進行解析,得到有效數(shù)據(jù),并存入數(shù)據(jù)庫。同時為保證通信可靠性,平臺若接收數(shù)據(jù)成功會發(fā)送應答指令給手套機,告知手套機可以發(fā)送下一條數(shù)據(jù),若手套機發(fā)送數(shù)據(jù)包一段時間內(nèi)沒有接收到平臺的數(shù)據(jù)應答包,則重復發(fā)送該條生產(chǎn)數(shù)據(jù)。
3) 手套機設備關機階段:手套機發(fā)送關機指令給平臺,平臺接收到設備下線指令,提示手套機下線,同時發(fā)送應答包給設備,告知手套機平臺允許該手套機關機。
通信服務程序的另一個主要功能就是給手套機設備推送用戶的控制更新指令。要完成這一功能需要兩個步驟。第一步,接收用戶的控制更新指令;第二步,向設備推送控制更新指令。為減輕服務器的壓力,平臺采用SQL Server數(shù)據(jù)庫作為中間橋梁進行通信,瀏覽器向數(shù)據(jù)庫寫入控制更新指令,通信服務程序從數(shù)據(jù)庫定時讀取更新指令。服務器向客戶端推送控制更新指令實現(xiàn)方式如圖4所示。
圖4 指令推送流程圖
1) 通信服務程序中定時掃描數(shù)據(jù)庫中是否存在Web應用程序已寫入但未被發(fā)送到手套機的控制更新指令。
2) 若存在未發(fā)送的指令,則取出表中的數(shù)據(jù)到內(nèi)存中,同時根據(jù)指令中的設備ID查找對應Socket信息。Socket信息在之前設備上線注冊時已經(jīng)存入了緩存中,當設備下線時會刪除此Socket信息。
3) 通信服務程序根據(jù)指令組包、分包發(fā)送給客戶端??蛻舳艘淮文芙邮瞻淖畲笞止?jié)為1 024位,當發(fā)送更新程序包等大文件時需要按照自定義通信協(xié)議進行組包,然后分包發(fā)送給客戶端。
4) 當客戶端接收完成后會發(fā)送確認接收成功應答給服務端,若服務端接收到客戶端應答,便會根據(jù)設備ID號刪除數(shù)據(jù)庫中控制指令表對應內(nèi)容。
Web應用程序采用基于MVC的Web應用程序框架進行開發(fā),使用C#面向?qū)ο蟮母呒壋绦蛟O計語言在Visual Studio 2017開發(fā)平臺編寫代碼,通過Spring.Net依賴注入的方式實現(xiàn)層與層之間的松耦合。使用實體框架(Entity Framework)實現(xiàn)對數(shù)據(jù)庫的增加、刪除、修改和查詢操作。Web應用程序包含系統(tǒng)管理,報警管理,班組管理和設備管理等功能。如圖5所示。
圖5 Web應用功能模塊圖
1)系統(tǒng)管理:系統(tǒng)管理模塊包含員工管理、個人資料管理、角色權限管理和操作日志管理。具有員工管理權限的操作者可以給員工分配不同的角色,同時給員工安排不同的班組,通過員工管理,管理者可以對員工進行科學的調(diào)度。權限管理模塊通過角色把權限分配給用戶,頁面上的按鈕和模塊通過角色權限管理分配給相應的角色,具有不同角色的用戶登陸平臺后,展示的頁面是不同的,通過對用戶進行權限管理,可以有效防止用戶的跨級操作,具備相應業(yè)務能力的員工操作相應的功能,增加了設備運行的安全性。個人資料管理用于設置用戶的頭像、郵箱和手機號等功能,進行個性化設置。設置郵箱和手機號的目的是當手套機產(chǎn)生報警時,通過查找當前手套機所屬的組別和當前時間對應的班次,找出對應負責該臺手套機的員工,通過郵件或手機短信方式,向該負責人推送報警消息,提醒其處理該報警消息。操作日志模塊對各個用戶在頁面上的操作進行記錄。做到操作可追溯。當發(fā)生操作錯誤的時候,可以通過查看操作日志,必要時可進行相應的回滾操作。
2)報警管理:報警管理包含設備實時報警和歷史報警。實時警顯示當前還未被處理的報警信息,包含報警設備的ID,報警的具體信息,報警開始時間和報警持續(xù)時長。手套機在編織過程中主要有手套機的伺服器報警、織線斷掉、織線用完等報警信息。該功能可以在織線斷掉的情況下通過短信或郵箱的方式提示相應員工去更換織線,可以有效減輕員工的負擔,員工不需要一直在車間進行巡邏檢查織線是否用完。當手套機恢復正常運行后,實時報警信息就會自動刪除,存入歷史報警信息表中,可以通過歷史報警信息表分析每臺手套機的故障率,使用情況等信息,合理分配手套機的工作負荷。
3)班組管理:班組管理分為班號管理和組號管理。班號管理給不同的班號分配上班時間,可以實現(xiàn)倒班制的工作制度。組號管理給每臺手套機分配組別,使每臺手套機都隸屬于一個組負責,當手套機產(chǎn)生報警或其他故障時,通過組可以找到對應的負責人,做到責任清晰,提高車間的管理效率。
4)設備管理:設備管理是手套機工業(yè)物聯(lián)網(wǎng)平臺的重要組成部分,包括設備生產(chǎn)狀況的查看,手套機設備程序的遠程更新控制。設備生產(chǎn)狀況顯示當前手套機的運行狀態(tài),分為運行中、關機中、暫停中和故障中四種狀態(tài)。運行中的手套機可查看當前單只手套的紡織進度,手套機最近一次的開機時間和已運行時長,同時也顯示今日產(chǎn)量等信息,做到了生產(chǎn)數(shù)據(jù)的可視化。根據(jù)手套機采集的生產(chǎn)運行數(shù)據(jù),通過數(shù)據(jù)分析手段,可以得出每臺手套機的工作效率,同時也可以分析出每個班組的工作效率。設備遠程控制主要用于對手套機編織動作程序的更新。在遠程控制界面選擇需要更新的手套機并上傳相應的更新文件,文件傳輸?shù)椒掌魃?,同時在數(shù)據(jù)庫設備指令表中存入相應的執(zhí)行命令。
平臺開發(fā)完成后,把Web應用程序和通信服務程序部署在阿里云服務器上。服務器配置為CPU 2核,內(nèi)存8GB,帶寬3Mbps.以.NET Framework4.5作為平臺的運行環(huán)境。當用戶登錄后如圖6,手套機物聯(lián)網(wǎng)平臺首頁展示當前運行設備數(shù)量,當前在崗上班工作人員數(shù)量和近一周車間手套每日總產(chǎn)量信息。選中一臺運行中手套機點擊進入設備詳情頁可以查看到該臺手套機的開機時間,已運行時長,已生產(chǎn)產(chǎn)量和當前單只手套的進度等詳細參數(shù)。并能以曲線的形式展示手套生產(chǎn)數(shù)量的變化。圖7為接入平臺的手套機工業(yè)現(xiàn)場生產(chǎn)圖。
圖6 手套機工業(yè)物聯(lián)網(wǎng)平臺首頁界面
圖7 手套機工業(yè)現(xiàn)場生產(chǎn)圖
根據(jù)需求,通信服務程序要應對大量WIFI同時連接并發(fā)的情況。通信服務程序部署在阿里云服務器上,測試程序運行在另一臺PC機上。設定并發(fā)線程數(shù)為3 000,每個線程每隔3秒鐘發(fā)送一個心跳包給服務器,同時服務器會返回一個心跳應答包。啟動測試程序,并在阿里云服務器后臺監(jiān)視CPU的運行狀況,如圖8所示。當測試程序啟動后,大量的TCP同時并發(fā)連接,CPU使用率達到最大的值為6.03%。從該測試環(huán)境下CPU的使用情況可以看出,通信服務程序能同時滿足大量WIFI的長連接,并在同時處理大量數(shù)據(jù)時,不會導致服務器出現(xiàn)崩潰卡死的情況。
圖8 CPU使用率圖
性能測試是開發(fā)中的一個重要環(huán)節(jié),通過性能測試,找出Web應用程序存在的不足并進行優(yōu)化改進[13]。此次采用Apache JMeter[14]對部署在阿里云服務器上的Web應用程序分別展開內(nèi)網(wǎng)測試和外網(wǎng)測試。設置的并發(fā)數(shù)量都為1 s內(nèi)200個線程,測試得到的結果如表2所示。
表2 Web應用程序性能測試結果
從表2可以看出,在內(nèi)網(wǎng)測試環(huán)境中,吞吐量能達到每秒處理80.9個請求,平均請求響應時間1 361 ms,且沒有引發(fā)異常,請求結果都正確返回。在外網(wǎng)測試環(huán)境下,由于受網(wǎng)絡因素等影響,吞吐量只有24.9/sec,平均響應時間也比內(nèi)網(wǎng)環(huán)境下多2 055 ms。雖然響應速度變慢了,但沒有出現(xiàn)響應錯誤。從內(nèi)網(wǎng)測試結果來看,本平臺的Web應用程序性能能滿足實際要求。
本文通過對物聯(lián)網(wǎng)感知體系和技術的應用,采用WIFI無線通信的方式和自定義數(shù)據(jù)通信協(xié)議,對手套機設備進行數(shù)據(jù)采集和分析處理,設計了基于Web的手套機工業(yè)物聯(lián)網(wǎng)平臺,實現(xiàn)對手套機生產(chǎn)車間的人員管理、班組管理、設備管理、報警管理、遠程控制更新,并對平臺進行了壓力測試。測試結果表明,基于Web的手套機工業(yè)物聯(lián)網(wǎng)平臺能滿足企業(yè)對手套機生產(chǎn)過程實時在線遠程監(jiān)控并進行數(shù)據(jù)可視化展示的需求,能降低生產(chǎn)車間的人力成本,幫助企業(yè)從傳統(tǒng)手套機生產(chǎn)管理邁向智能化生產(chǎn)實現(xiàn)產(chǎn)業(yè)升級,達到了設計的要求,界面美觀且實時性較強,運行穩(wěn)定。