董 輝,韓林貝,董 浩,袁登鵬,李華昌
(浙江工業大學 信息工程學院,杭州 310023)
針織手套作為生活的必需品和易耗品,其需求日益增長,應用也越來越廣泛。近年來全自動手套機正在逐漸取代人工勞作方式以滿足日益增長的市場發展需求[1]。全自動手套在實現編織功能之外還具有網絡監測、全中文示教和使用U盤更新編織動作程序的功能[2]。在手套生產車間里,工人需對每臺手套機進行現場監控管理,由于車間手套機數量眾多,給操作管理人員對設備的監控管理帶來了一定的難度,也會增加企業的管理成本。何懂良等人開發了基于以太網的手套機網絡監控系統[3]和胡姣開發的基于以太網通訊的手套機網絡監控系統[4]都采用工業以太網作為通信方式,把大量的手套機設備通過網線連接到車間管理系統進行設備的實時監控管理。但此方案也存在缺陷,大量的手套機設備通過網線連接到監控管理系統,會帶來布線上的困難,使手套機設備的可移動性變弱,增加企業維護成本,也帶來潛在的安全風險。
隨著工業4.0時代的來臨和計算機網絡的發展,特別是5G網絡的推廣應用和無線傳感網絡的發展,讓移動通信的速度和效率都有了質的提升,互聯網已經邁進了“互聯網+”的時代[5]。互聯網與傳統行業的應用相結合,能大幅提高生產效率[6]。傳統制造業行業在完成轉型升級的過程當中,對生產智能化程度要求越來越高,物聯網技術的發展與應用,給智慧工廠提供了可行的解決方案[7]。工業物聯網把移動通信、移動計算和智能終端應用到工業生產現場,提高生產效率,降低企業成本,從而實現“智慧工廠”[8]。郭銳應用工業物聯網技術設計了基于工業物聯網的起重機遠程監控系統來對起重機的狀態進行實時監測[9]。鄭樹泉設計的工業物聯網大數據平臺,應用到了橋梁安全檢測中,對橋梁日常運行情況進行監督[10]。張啟亮等人把工業物聯網大數據平臺應用在了工程機械行業[11]。工業物聯網的應用領域主要還是集中在礦山機電、電網、水利等行業,應用于手套機行業的并不多。
針對以上現狀,設計基于Web的手套機工業物聯網平臺。平臺主要由Web應用程序、通信服務程序和數據庫三個部分組成。手套機設備使用WIFI無線的傳輸方式替代傳統的有線網絡接入平臺,使得手套機生產現場布線變得簡單,維護也變得方便。平臺通過對互聯網、大數據、物聯網等技術的應用,實現了對手套機生產過程的監控,人員的管理,設備的更新維護等功能,使管理者和用戶隨時隨地掌握工廠的生產狀況,提高了生產效率,降低了運行成本。
基于Web的手套機工業物聯網平臺主要由通信服務程序、Web應用程序和數據庫組成。通信服務程序接收手套機設備通過WIFI無線通信方式上傳的數據,解析后存入數據庫。數據庫能確保數據的安全,使數據具有可追溯性。軟件配備的防火墻,可對網絡進行安全隔離,增強平臺的安全性。外部用戶可以通過互聯網訪問Web應用程序,獲取相應的生產數據,同時也可以下達控制更新指令給手套機設備。平臺整體架構如圖1所示。

圖1 手套機工業物聯網平臺整體架構圖
根據工業物聯網的層次結構,基于Web的手套機工業物聯網平臺分為4個層次,如圖2所示,分別為數據采集層、網絡傳輸層、數據存儲層和應用服務層。

圖2 平臺體系結構圖
1)數據采集層:數據采集層解決手套機設備數據采集的問題,采集手套機生產過程中的數據,并將這些數據發送給網絡傳輸層。
2)網絡傳輸層:是指設備監控網絡,是各系統連接的紐帶,負責把數據采集層采集到的數據向上傳遞,也負責向下傳遞更新手套機編織動作程序等控制更新指令。平臺采用WIFI無線通信的方式進行數據傳輸。
3)數據存儲層:是指存儲設備數據的數據庫,對實時運行數據、跟蹤數據及歷史數據分開存儲,同時也存儲一些網頁端應用服務層的人員管理信息和下達的控制指令數據。數據庫采用Microsoft開發的SQL Server。
4)應用服務層:實現手套機工業物聯網平臺的相關功能。主要實現對手套機運行狀態、報警信息和人員信息的管理等操作。同時進行一些生產數據的分析,更好地輔助企業的生產,提高生產效率。
通信服務程序基于C/S的桌面控制臺應用程序編寫,采用Socket完成端口和線程池技術處理高并發的數據和連接。其主要功能有:
1)供大量WIFI的長連接,并將接收到的手套機運行數據存入數據庫;
2)推送控制指令給手套機設備,下發手套機編織動作更新程序。
以下對通信服務程序包含的通信協議、手套機設備監控功能和控制更新指令推送功能展開介紹。
TCP/IP網絡控制協議可以進行可靠的數據傳輸,可作為底層通信承載協議,但不保證應用層上數據的可靠性。為防止在應用層上出現數據不可靠問題,手套機工業物聯網平臺基于TCP/IP設計了應用層自定義通信協議。該通信協議數據包格式如表1所示,其中有效數據最大長度為1 000位。

表1 通信數據包格式
自定義通信協議規定了手套機與平臺之間注冊、心跳包上傳、數據包上傳、應答上傳和服務器下發等指令的數據包格式。本通信協議是建立在傳輸層的基礎之上,與具體網絡無關,體現了通信介質的無關性。在可擴展性上,本通信協議不限制手套機工業物聯網平臺擴展其他信息,只要不與上表通信數據包格式的規定產生沖突,都能接入平臺。
設備監控是基于Web的手套機工業物聯網平臺的核心。手套機采用的是WIFI無線通信的方式直接連接通信服務程序。由于平臺也具備向手套機推送控制指令更新編織動作的功能,所以要保證TCP為長連接。車間手套機設備眾多,存在大量的數據并發情況,會給運行通信服務程序的服務器帶到巨大的壓力。需選擇一個合適的網絡模型,使程序能夠在通信過程中對套接字上的IO進行管理。本平臺選用Windows網絡編程中的輸入輸出完成端口模型和線程池技術編寫能處理高并發數據的通信服務程序。完成端口(IOCP)模型是到目前為止Windows平臺下效率最高的多線程網絡編程模型,可以設計和實現具備高性能的網絡服務器[12]。
手套機生產過程監控分為3個階段:手套機設備開機階段、手套機設備運行階段、手套機設備關機階段,如圖3所示。

圖3 手套機設備生產過程監視流程圖
1) 手套機設備開機階段:手套機開始運行后需發送注冊指令包給平臺,通知平臺手套機上線了,要開始發送數據指令包。平臺會回復一個注冊應答指令包告知平臺已準備好接收數據,可以開始發送手套機運行生產數據。
2) 手套機設備運行階段:手套機發送生產運行數據包,平臺對數據進行解析,得到有效數據,并存入數據庫。同時為保證通信可靠性,平臺若接收數據成功會發送應答指令給手套機,告知手套機可以發送下一條數據,若手套機發送數據包一段時間內沒有接收到平臺的數據應答包,則重復發送該條生產數據。
3) 手套機設備關機階段:手套機發送關機指令給平臺,平臺接收到設備下線指令,提示手套機下線,同時發送應答包給設備,告知手套機平臺允許該手套機關機。
通信服務程序的另一個主要功能就是給手套機設備推送用戶的控制更新指令。要完成這一功能需要兩個步驟。第一步,接收用戶的控制更新指令;第二步,向設備推送控制更新指令。為減輕服務器的壓力,平臺采用SQL Server數據庫作為中間橋梁進行通信,瀏覽器向數據庫寫入控制更新指令,通信服務程序從數據庫定時讀取更新指令。服務器向客戶端推送控制更新指令實現方式如圖4所示。

圖4 指令推送流程圖
1) 通信服務程序中定時掃描數據庫中是否存在Web應用程序已寫入但未被發送到手套機的控制更新指令。
2) 若存在未發送的指令,則取出表中的數據到內存中,同時根據指令中的設備ID查找對應Socket信息。Socket信息在之前設備上線注冊時已經存入了緩存中,當設備下線時會刪除此Socket信息。
3) 通信服務程序根據指令組包、分包發送給客戶端。客戶端一次能接收包的最大字節為1 024位,當發送更新程序包等大文件時需要按照自定義通信協議進行組包,然后分包發送給客戶端。
4) 當客戶端接收完成后會發送確認接收成功應答給服務端,若服務端接收到客戶端應答,便會根據設備ID號刪除數據庫中控制指令表對應內容。
Web應用程序采用基于MVC的Web應用程序框架進行開發,使用C#面向對象的高級程序設計語言在Visual Studio 2017開發平臺編寫代碼,通過Spring.Net依賴注入的方式實現層與層之間的松耦合。使用實體框架(Entity Framework)實現對數據庫的增加、刪除、修改和查詢操作。Web應用程序包含系統管理,報警管理,班組管理和設備管理等功能。如圖5所示。

圖5 Web應用功能模塊圖
1)系統管理:系統管理模塊包含員工管理、個人資料管理、角色權限管理和操作日志管理。具有員工管理權限的操作者可以給員工分配不同的角色,同時給員工安排不同的班組,通過員工管理,管理者可以對員工進行科學的調度。權限管理模塊通過角色把權限分配給用戶,頁面上的按鈕和模塊通過角色權限管理分配給相應的角色,具有不同角色的用戶登陸平臺后,展示的頁面是不同的,通過對用戶進行權限管理,可以有效防止用戶的跨級操作,具備相應業務能力的員工操作相應的功能,增加了設備運行的安全性。個人資料管理用于設置用戶的頭像、郵箱和手機號等功能,進行個性化設置。設置郵箱和手機號的目的是當手套機產生報警時,通過查找當前手套機所屬的組別和當前時間對應的班次,找出對應負責該臺手套機的員工,通過郵件或手機短信方式,向該負責人推送報警消息,提醒其處理該報警消息。操作日志模塊對各個用戶在頁面上的操作進行記錄。做到操作可追溯。當發生操作錯誤的時候,可以通過查看操作日志,必要時可進行相應的回滾操作。
2)報警管理:報警管理包含設備實時報警和歷史報警。實時警顯示當前還未被處理的報警信息,包含報警設備的ID,報警的具體信息,報警開始時間和報警持續時長。手套機在編織過程中主要有手套機的伺服器報警、織線斷掉、織線用完等報警信息。該功能可以在織線斷掉的情況下通過短信或郵箱的方式提示相應員工去更換織線,可以有效減輕員工的負擔,員工不需要一直在車間進行巡邏檢查織線是否用完。當手套機恢復正常運行后,實時報警信息就會自動刪除,存入歷史報警信息表中,可以通過歷史報警信息表分析每臺手套機的故障率,使用情況等信息,合理分配手套機的工作負荷。
3)班組管理:班組管理分為班號管理和組號管理。班號管理給不同的班號分配上班時間,可以實現倒班制的工作制度。組號管理給每臺手套機分配組別,使每臺手套機都隸屬于一個組負責,當手套機產生報警或其他故障時,通過組可以找到對應的負責人,做到責任清晰,提高車間的管理效率。
4)設備管理:設備管理是手套機工業物聯網平臺的重要組成部分,包括設備生產狀況的查看,手套機設備程序的遠程更新控制。設備生產狀況顯示當前手套機的運行狀態,分為運行中、關機中、暫停中和故障中四種狀態。運行中的手套機可查看當前單只手套的紡織進度,手套機最近一次的開機時間和已運行時長,同時也顯示今日產量等信息,做到了生產數據的可視化。根據手套機采集的生產運行數據,通過數據分析手段,可以得出每臺手套機的工作效率,同時也可以分析出每個班組的工作效率。設備遠程控制主要用于對手套機編織動作程序的更新。在遠程控制界面選擇需要更新的手套機并上傳相應的更新文件,文件傳輸到服務器上,同時在數據庫設備指令表中存入相應的執行命令。
平臺開發完成后,把Web應用程序和通信服務程序部署在阿里云服務器上。服務器配置為CPU 2核,內存8GB,帶寬3Mbps.以.NET Framework4.5作為平臺的運行環境。當用戶登錄后如圖6,手套機物聯網平臺首頁展示當前運行設備數量,當前在崗上班工作人員數量和近一周車間手套每日總產量信息。選中一臺運行中手套機點擊進入設備詳情頁可以查看到該臺手套機的開機時間,已運行時長,已生產產量和當前單只手套的進度等詳細參數。并能以曲線的形式展示手套生產數量的變化。圖7為接入平臺的手套機工業現場生產圖。

圖6 手套機工業物聯網平臺首頁界面

圖7 手套機工業現場生產圖
根據需求,通信服務程序要應對大量WIFI同時連接并發的情況。通信服務程序部署在阿里云服務器上,測試程序運行在另一臺PC機上。設定并發線程數為3 000,每個線程每隔3秒鐘發送一個心跳包給服務器,同時服務器會返回一個心跳應答包。啟動測試程序,并在阿里云服務器后臺監視CPU的運行狀況,如圖8所示。當測試程序啟動后,大量的TCP同時并發連接,CPU使用率達到最大的值為6.03%。從該測試環境下CPU的使用情況可以看出,通信服務程序能同時滿足大量WIFI的長連接,并在同時處理大量數據時,不會導致服務器出現崩潰卡死的情況。

圖8 CPU使用率圖
性能測試是開發中的一個重要環節,通過性能測試,找出Web應用程序存在的不足并進行優化改進[13]。此次采用Apache JMeter[14]對部署在阿里云服務器上的Web應用程序分別展開內網測試和外網測試。設置的并發數量都為1 s內200個線程,測試得到的結果如表2所示。

表2 Web應用程序性能測試結果
從表2可以看出,在內網測試環境中,吞吐量能達到每秒處理80.9個請求,平均請求響應時間1 361 ms,且沒有引發異常,請求結果都正確返回。在外網測試環境下,由于受網絡因素等影響,吞吐量只有24.9/sec,平均響應時間也比內網環境下多2 055 ms。雖然響應速度變慢了,但沒有出現響應錯誤。從內網測試結果來看,本平臺的Web應用程序性能能滿足實際要求。
本文通過對物聯網感知體系和技術的應用,采用WIFI無線通信的方式和自定義數據通信協議,對手套機設備進行數據采集和分析處理,設計了基于Web的手套機工業物聯網平臺,實現對手套機生產車間的人員管理、班組管理、設備管理、報警管理、遠程控制更新,并對平臺進行了壓力測試。測試結果表明,基于Web的手套機工業物聯網平臺能滿足企業對手套機生產過程實時在線遠程監控并進行數據可視化展示的需求,能降低生產車間的人力成本,幫助企業從傳統手套機生產管理邁向智能化生產實現產業升級,達到了設計的要求,界面美觀且實時性較強,運行穩定。