嚴(yán)利強(qiáng),沈琦琦,王榮揚(yáng)
(1 湖州職業(yè)技術(shù)學(xué)院機(jī)電與汽車工程學(xué)院 浙江 湖州 313000)
(2 湖州市機(jī)器人系統(tǒng)集成與智能裝備重點實驗室 浙江 湖州 313000)
近年來制造業(yè)對技術(shù)數(shù)據(jù)共享的要求與日俱增,而在法蘭焊接實施過程中,工藝參數(shù)的選擇和設(shè)置依舊靠工人的工作經(jīng)驗確定,不僅工作量大、科學(xué)程度低,焊接質(zhì)量還難以保證[1]。因此企業(yè)內(nèi)部對制定焊接標(biāo)準(zhǔn)以及焊接技術(shù)數(shù)據(jù)的共享十分迫切。為滿足上述要求,實現(xiàn)法蘭焊接數(shù)字信息化,讓整個企業(yè),甚至是企業(yè)之間的法蘭焊接工藝信息集成與共享,形成綜合焊接數(shù)據(jù)網(wǎng)絡(luò)[2]。這就需要設(shè)計出一種能夠在工業(yè)環(huán)境中運(yùn)行,且性能可靠、造價合理的數(shù)字化專家焊接系統(tǒng)[3-4]。
ABP 是ASP.NET Boilerplate 的簡稱,是一個最佳實踐的基于領(lǐng)域驅(qū)動設(shè)計(Domain-Driven Design)的體系框架[5]。該框架是一種針對復(fù)雜需求的軟件開發(fā)方法,它將軟件實現(xiàn)與發(fā)展的模型聯(lián)系起來,專注于核心領(lǐng)域邏輯,而不是基礎(chǔ)設(shè)施細(xì)節(jié)。本文設(shè)計一種基于ABP 框架的數(shù)字化法蘭焊接系統(tǒng),運(yùn)用ABP 框架的核心在VS2019 平臺上利用C#語言進(jìn)行系統(tǒng)軟件開發(fā),將所有的焊接工作站視為一個局域網(wǎng),不同權(quán)限的用戶可通過電腦客戶端從服務(wù)器端獲取相應(yīng)的焊接工藝參數(shù),并導(dǎo)入至焊接工作站相應(yīng)的設(shè)備,也可對工廠里所有焊接工作站的工作狀態(tài)進(jìn)行監(jiān)控,高效地解決了法蘭焊接過程存在的上述問題。整個數(shù)字化法蘭焊接系統(tǒng)總體架構(gòu)圖如下圖1所示。
圖1 數(shù)字化法蘭焊接系統(tǒng)總體架構(gòu)圖
數(shù)字化法蘭焊接系統(tǒng)由客戶端和服務(wù)器端兩部分組成,該系統(tǒng)總體架構(gòu)如圖1所示。其中客戶端又分PC 應(yīng)用端和Web 客戶端。
PC 應(yīng)用端面向進(jìn)行焊接操作的普通用戶,用來獲取法蘭焊接所需的各類工藝參數(shù),并導(dǎo)入相應(yīng)的焊接設(shè)備。
Web 客戶端面向數(shù)字化焊接系統(tǒng)的管理員用戶,主要進(jìn)行用戶權(quán)限管理和焊接工藝參數(shù)管理。
服務(wù)器端通常為云服務(wù)器提供API 服務(wù),主要為數(shù)字化法蘭焊接系統(tǒng)的客戶端提供業(yè)務(wù)邏輯、數(shù)據(jù)處理等服務(wù)。
客戶端和Web 服務(wù)器通過HTTP 協(xié)議進(jìn)行通信。Web 服務(wù)器有時也叫HTTP 服務(wù)器或Web 容器。HTTP 協(xié)議采用的是請求/響應(yīng)模式。即客戶端發(fā)起HTTP 請求,Web 服務(wù)器接收并解析處理HTTP 請求,然后將HTTP 響應(yīng)發(fā)送給客戶端。
HTTP 協(xié)議全稱Hypertext Transfer Protocol 超文本傳輸協(xié)議,是一種建立在TCP 上的應(yīng)用層協(xié)議,整個工作流程基本是由客戶端(client)向服務(wù)器端(server)發(fā)送一個HTTP 請求,向服務(wù)器端請求需要的資源,服務(wù)器端收到客戶端的請求后,根據(jù)請求做出相應(yīng)的動作訪問服務(wù)器資源,然后通過HTTP 相應(yīng)將結(jié)果返回給客戶端[6-7]。以Web 客戶端訪問服務(wù)器為例,用戶先在瀏覽器的地址欄里輸入域名,由DNS 將其解析為IP 和端口;通過TCP 的三次握手與服務(wù)器建立連接;接著瀏覽器向服務(wù)器發(fā)送報文;服務(wù)器收到報文后處理請求;再將響應(yīng)發(fā)給瀏覽器,瀏覽器收到服務(wù)器的響應(yīng),解析報文,渲染出頁面;整個過程如下圖2所示。
圖2 HTTP 請求過程
應(yīng)用層:決定了向用戶提供應(yīng)用服務(wù)時通信的活動。
傳輸層:提供處于網(wǎng)絡(luò)連接中的兩臺計算機(jī)之間的數(shù)據(jù)傳輸。
網(wǎng)絡(luò)層:網(wǎng)絡(luò)層用來處理在網(wǎng)絡(luò)上流動的數(shù)據(jù)包。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位。該層規(guī)定了通過怎樣的路徑(所謂的傳輸路線)到達(dá)對方計算機(jī),并把數(shù)據(jù)包傳送給對方。
鏈路層:用來處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng)、硬件的設(shè)備驅(qū)動、NIC(Network Interface Card,網(wǎng)絡(luò)適配器,即網(wǎng)卡)及光纖等物理可見部分(還包括連接器等一切傳輸媒介)。硬件上的范疇均在鏈路層的作用范圍之內(nèi)。
系統(tǒng)包括:用戶權(quán)限管理模塊、法蘭規(guī)格管理模塊、機(jī)器人管理模塊、電焊機(jī)管理系統(tǒng)、焊槍管理模塊、焊接工藝參數(shù)管理模塊,具體內(nèi)容如下:
(1)用戶權(quán)限管理模塊。該平臺的角色主要有三種:普通用戶、管理員、超級管理員。普通用戶角色的功能有個人信息管理、查閱法蘭焊接相關(guān)說明和獲取法蘭焊接工藝參數(shù)[8]。管理員的角色功能除了具備普通用戶的功能外,還擁有普通用戶管理的功能。超級管理員的功能主要是法蘭焊接工藝參數(shù)的管理和管理員的管理。
(2)法蘭規(guī)格管理模塊。法蘭規(guī)格的增加、刪除、修改、查詢。
(3)機(jī)器人管理模塊。機(jī)器人類別的增加、刪除、修改、查詢。
(4)電焊機(jī)管理模塊。電焊機(jī)類別的增加、刪除、修改、查詢。
(5)焊槍管理模塊。焊槍類別的增加、刪除、修改、查詢。
(6)焊接工藝參數(shù)管理模塊。該系統(tǒng)管理各類別的機(jī)器人、焊槍、焊機(jī)對應(yīng)法蘭焊接的工藝參數(shù)如焊接電壓、焊接電流、焊接速度、送絲速度、焊絲直徑、焊絲干伸長度、氣體流量等。
用戶打開系統(tǒng)首頁,輸入用戶名和密碼進(jìn)行登錄,系統(tǒng)根據(jù)用戶的權(quán)限彈出相應(yīng)的頁面。其中呈現(xiàn)給普通用戶的頁面,如果是首次登錄的用戶,則顯示用戶向?qū)Р僮鳎环駝t用戶可直接設(shè)置焊接機(jī)器人的品牌、型號,焊接的品牌、型號,焊槍的品牌、型號,以及法蘭的規(guī)格,從而獲取相應(yīng)的焊接工藝參數(shù)。普通管理員的頁面顯示普通焊接用戶的相關(guān)信息如姓名、部門、權(quán)限使用時間等,可對已有用戶的焊接權(quán)限功能進(jìn)行修改。超級管理員的頁面有兩大選項:管理員權(quán)限管理和焊接工藝參數(shù)管理,每一個管理界面都有增刪查改功能,詳見圖3。
圖3 系統(tǒng)操作流程
在實際數(shù)據(jù)庫設(shè)計中,既要盡量滿足三大范式[9],從而避免數(shù)據(jù)冗余和各種數(shù)據(jù)庫的操作異常,同時也要考慮數(shù)據(jù)的訪問性能。有時候,為了提高數(shù)據(jù)庫的訪問效率,適當(dāng)?shù)卦试S少量冗余數(shù)據(jù)的存在。本系統(tǒng)數(shù)據(jù)庫采用Sql Server 2008 R2 數(shù)據(jù)庫進(jìn)行設(shè)計和建表,共設(shè)計了11 張表格,并確定了表與表之間的關(guān)系,其中圖4為用戶權(quán)限數(shù)據(jù)關(guān)系圖,圖5為焊接工藝參數(shù)關(guān)系圖。
圖4 用戶權(quán)限數(shù)據(jù)關(guān)系圖
圖5 焊接工藝數(shù)據(jù)關(guān)系圖
本項目程序采用領(lǐng)域驅(qū)動設(shè)計開發(fā),在保持多層架構(gòu)優(yōu)勢前提下,具備軟件的可維護(hù)性和可擴(kuò)展性。其主要分為展現(xiàn)層、應(yīng)用層、領(lǐng)域?qū)?、持久化層、基礎(chǔ)設(shè)施層(見圖6)。各層相互獨立各司其職,具體如下:
圖6 程序架構(gòu)圖
表現(xiàn)層:系統(tǒng)和用戶的交互層。負(fù)責(zé)接收用戶的輸入如用戶名和密碼以及焊接工藝所需的設(shè)備參數(shù)、并將輸出內(nèi)容呈現(xiàn)給用戶,同時驗證數(shù)據(jù)的正確性和有效性。
應(yīng)用層:該層不包含任何領(lǐng)域邏輯,它主要用來對任務(wù)進(jìn)行協(xié)調(diào),它構(gòu)建了表現(xiàn)層和領(lǐng)域?qū)拥臉蛄?。對?yīng)一個具體的業(yè)務(wù),指揮領(lǐng)域?qū)ο髞斫鉀Q問題,包含應(yīng)用服務(wù)接口、數(shù)據(jù)傳輸對象、映射、異常、行為和業(yè)務(wù)邏輯。
領(lǐng)域?qū)樱合到y(tǒng)的核心,負(fù)責(zé)具體的業(yè)務(wù)概念、狀態(tài)、規(guī)則等信息。該項包含實體、值對象、領(lǐng)域服務(wù)、領(lǐng)域事件、領(lǐng)域?qū)ο竽P汀⒁?guī)約、倉儲接口等。
持久化層:為整個項目提供一個銜接高低層、統(tǒng)一、安全和并發(fā)的數(shù)據(jù)持久機(jī)制,完成對各種數(shù)據(jù)庫進(jìn)行的持久化的編程工作,并為系統(tǒng)業(yè)務(wù)邏輯提供服務(wù)。
基礎(chǔ)設(shè)施層:提供整個焊接系統(tǒng)的基礎(chǔ)服務(wù),存放一些公共的基礎(chǔ)類庫和組件,如Code First、EF Core、工具類、日志記錄、異常處理、數(shù)據(jù)驗證等。
數(shù)字化法蘭焊接管理系統(tǒng)登錄首頁界面如下圖7所示,用戶輸入賬號和密碼訪問服務(wù)器,系統(tǒng)根據(jù)用戶的權(quán)限ID 返回相關(guān)數(shù)據(jù)并在客戶端顯示相應(yīng)的界面。以普通用戶為例,呈現(xiàn)給用戶為焊接操作說明選項和焊接工藝參數(shù)獲取功能選項,如下圖8所示的獲取法蘭焊接工藝參數(shù)的設(shè)置頁面。用戶根據(jù)下拉列表選擇與焊接現(xiàn)場一致的法蘭型號,機(jī)器人、焊槍以及焊機(jī)的品牌型號,從服務(wù)器端查詢法蘭焊接對應(yīng)的工藝參數(shù)。
圖7 數(shù)字化法蘭焊接管理系統(tǒng)登錄首頁
圖8 普通用戶獲取工藝參數(shù)的操作界面
超級管理員的工藝參數(shù)管理頁面與普通用戶的工藝參數(shù)獲取頁面類似,區(qū)別在于前者對參數(shù)可讀可寫,后者只能進(jìn)行讀取。此外,超級管理員具有所有人員管理的權(quán)限,能夠預(yù)覽本系統(tǒng)內(nèi)所有人員的相關(guān)信息,同時可對普通用戶和管理員的權(quán)限進(jìn)行調(diào)整甚至收回,如下圖9所示。
圖9 超級管理員的權(quán)限管理頁面
大數(shù)據(jù)時代,數(shù)據(jù)成為關(guān)鍵生產(chǎn)要素和重要戰(zhàn)略資源。因此,構(gòu)建企業(yè)乃至行業(yè)的大數(shù)據(jù)平臺,打破信息孤島,加快數(shù)據(jù)共享,對企業(yè)生產(chǎn)經(jīng)營起著至關(guān)重要的作用。本文以數(shù)字化法蘭焊接系統(tǒng)為背景,采用領(lǐng)域設(shè)計架構(gòu)模式進(jìn)行軟件設(shè)計開發(fā),由法蘭焊接領(lǐng)域?qū)<液蛙浖O(shè)計開發(fā)人員共同建立領(lǐng)域模型,降低了整個焊接系統(tǒng)的復(fù)雜性,極大地提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。