嚴(yán)利強(qiáng),沈琦琦,王榮揚(yáng)
(1 湖州職業(yè)技術(shù)學(xué)院機(jī)電與汽車工程學(xué)院 浙江 湖州 313000)
(2 湖州市機(jī)器人系統(tǒng)集成與智能裝備重點(diǎn)實(shí)驗(yàn)室 浙江 湖州 313000)
近年來(lái)制造業(yè)對(duì)技術(shù)數(shù)據(jù)共享的要求與日俱增,而在法蘭焊接實(shí)施過(guò)程中,工藝參數(shù)的選擇和設(shè)置依舊靠工人的工作經(jīng)驗(yàn)確定,不僅工作量大、科學(xué)程度低,焊接質(zhì)量還難以保證[1]。因此企業(yè)內(nèi)部對(duì)制定焊接標(biāo)準(zhǔn)以及焊接技術(shù)數(shù)據(jù)的共享十分迫切。為滿足上述要求,實(shí)現(xiàn)法蘭焊接數(shù)字信息化,讓整個(gè)企業(yè),甚至是企業(yè)之間的法蘭焊接工藝信息集成與共享,形成綜合焊接數(shù)據(jù)網(wǎng)絡(luò)[2]。這就需要設(shè)計(jì)出一種能夠在工業(yè)環(huán)境中運(yùn)行,且性能可靠、造價(jià)合理的數(shù)字化專家焊接系統(tǒng)[3-4]。
ABP 是ASP.NET Boilerplate 的簡(jiǎn)稱,是一個(gè)最佳實(shí)踐的基于領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(Domain-Driven Design)的體系框架[5]。該框架是一種針對(duì)復(fù)雜需求的軟件開(kāi)發(fā)方法,它將軟件實(shí)現(xiàn)與發(fā)展的模型聯(lián)系起來(lái),專注于核心領(lǐng)域邏輯,而不是基礎(chǔ)設(shè)施細(xì)節(jié)。本文設(shè)計(jì)一種基于ABP 框架的數(shù)字化法蘭焊接系統(tǒng),運(yùn)用ABP 框架的核心在VS2019 平臺(tái)上利用C#語(yǔ)言進(jìn)行系統(tǒng)軟件開(kāi)發(fā),將所有的焊接工作站視為一個(gè)局域網(wǎng),不同權(quán)限的用戶可通過(guò)電腦客戶端從服務(wù)器端獲取相應(yīng)的焊接工藝參數(shù),并導(dǎo)入至焊接工作站相應(yīng)的設(shè)備,也可對(duì)工廠里所有焊接工作站的工作狀態(tài)進(jìn)行監(jiān)控,高效地解決了法蘭焊接過(guò)程存在的上述問(wèn)題。整個(gè)數(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)行焊接操作的普通用戶,用來(lái)獲取法蘭焊接所需的各類工藝參數(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ù)器通過(guò)HTTP 協(xié)議進(jìn)行通信。Web 服務(wù)器有時(shí)也叫HTTP 服務(wù)器或Web 容器。HTTP 協(xié)議采用的是請(qǐng)求/響應(yīng)模式。即客戶端發(fā)起HTTP 請(qǐng)求,Web 服務(wù)器接收并解析處理HTTP 請(qǐng)求,然后將HTTP 響應(yīng)發(fā)送給客戶端。
HTTP 協(xié)議全稱Hypertext Transfer Protocol 超文本傳輸協(xié)議,是一種建立在TCP 上的應(yīng)用層協(xié)議,整個(gè)工作流程基本是由客戶端(client)向服務(wù)器端(server)發(fā)送一個(gè)HTTP 請(qǐng)求,向服務(wù)器端請(qǐng)求需要的資源,服務(wù)器端收到客戶端的請(qǐng)求后,根據(jù)請(qǐng)求做出相應(yīng)的動(dòng)作訪問(wèn)服務(wù)器資源,然后通過(guò)HTTP 相應(yīng)將結(jié)果返回給客戶端[6-7]。以Web 客戶端訪問(wèn)服務(wù)器為例,用戶先在瀏覽器的地址欄里輸入域名,由DNS 將其解析為IP 和端口;通過(guò)TCP 的三次握手與服務(wù)器建立連接;接著瀏覽器向服務(wù)器發(fā)送報(bào)文;服務(wù)器收到報(bào)文后處理請(qǐng)求;再將響應(yīng)發(fā)給瀏覽器,瀏覽器收到服務(wù)器的響應(yīng),解析報(bào)文,渲染出頁(yè)面;整個(gè)過(guò)程如下圖2所示。

圖2 HTTP 請(qǐng)求過(guò)程
應(yīng)用層:決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)。
傳輸層:提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸。
網(wǎng)絡(luò)層:網(wǎng)絡(luò)層用來(lái)處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包。數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位。該層規(guī)定了通過(guò)怎樣的路徑(所謂的傳輸路線)到達(dá)對(duì)方計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方。
鏈路層:用來(lái)處理連接網(wǎng)絡(luò)的硬件部分。包括控制操作系統(tǒng)、硬件的設(shè)備驅(qū)動(dòng)、NIC(Network Interface Card,網(wǎng)絡(luò)適配器,即網(wǎng)卡)及光纖等物理可見(jiàn)部分(還包括連接器等一切傳輸媒介)。硬件上的范疇均在鏈路層的作用范圍之內(nèi)。
系統(tǒng)包括:用戶權(quán)限管理模塊、法蘭規(guī)格管理模塊、機(jī)器人管理模塊、電焊機(jī)管理系統(tǒng)、焊槍管理模塊、焊接工藝參數(shù)管理模塊,具體內(nèi)容如下:
(1)用戶權(quán)限管理模塊。該平臺(tái)的角色主要有三種:普通用戶、管理員、超級(jí)管理員。普通用戶角色的功能有個(gè)人信息管理、查閱法蘭焊接相關(guān)說(shuō)明和獲取法蘭焊接工藝參數(shù)[8]。管理員的角色功能除了具備普通用戶的功能外,還擁有普通用戶管理的功能。超級(jí)管理員的功能主要是法蘭焊接工藝參數(shù)的管理和管理員的管理。
(2)法蘭規(guī)格管理模塊。法蘭規(guī)格的增加、刪除、修改、查詢。
(3)機(jī)器人管理模塊。機(jī)器人類別的增加、刪除、修改、查詢。
(4)電焊機(jī)管理模塊。電焊機(jī)類別的增加、刪除、修改、查詢。
(5)焊槍管理模塊。焊槍類別的增加、刪除、修改、查詢。
(6)焊接工藝參數(shù)管理模塊。該系統(tǒng)管理各類別的機(jī)器人、焊槍、焊機(jī)對(duì)應(yīng)法蘭焊接的工藝參數(shù)如焊接電壓、焊接電流、焊接速度、送絲速度、焊絲直徑、焊絲干伸長(zhǎng)度、氣體流量等。
用戶打開(kāi)系統(tǒng)首頁(yè),輸入用戶名和密碼進(jìn)行登錄,系統(tǒng)根據(jù)用戶的權(quán)限彈出相應(yīng)的頁(yè)面。其中呈現(xiàn)給普通用戶的頁(yè)面,如果是首次登錄的用戶,則顯示用戶向?qū)Р僮鳎环駝t用戶可直接設(shè)置焊接機(jī)器人的品牌、型號(hào),焊接的品牌、型號(hào),焊槍的品牌、型號(hào),以及法蘭的規(guī)格,從而獲取相應(yīng)的焊接工藝參數(shù)。普通管理員的頁(yè)面顯示普通焊接用戶的相關(guān)信息如姓名、部門(mén)、權(quán)限使用時(shí)間等,可對(duì)已有用戶的焊接權(quán)限功能進(jìn)行修改。超級(jí)管理員的頁(yè)面有兩大選項(xiàng):管理員權(quán)限管理和焊接工藝參數(shù)管理,每一個(gè)管理界面都有增刪查改功能,詳見(jiàn)圖3。

圖3 系統(tǒng)操作流程
在實(shí)際數(shù)據(jù)庫(kù)設(shè)計(jì)中,既要盡量滿足三大范式[9],從而避免數(shù)據(jù)冗余和各種數(shù)據(jù)庫(kù)的操作異常,同時(shí)也要考慮數(shù)據(jù)的訪問(wèn)性能。有時(shí)候,為了提高數(shù)據(jù)庫(kù)的訪問(wèn)效率,適當(dāng)?shù)卦试S少量冗余數(shù)據(jù)的存在。本系統(tǒng)數(shù)據(jù)庫(kù)采用Sql Server 2008 R2 數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)和建表,共設(shè)計(jì)了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)系圖
本項(xiàng)目程序采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)開(kāi)發(fā),在保持多層架構(gòu)優(yōu)勢(shì)前提下,具備軟件的可維護(hù)性和可擴(kuò)展性。其主要分為展現(xiàn)層、應(yīng)用層、領(lǐng)域?qū)印⒊志没瘜印⒒A(chǔ)設(shè)施層(見(jiàn)圖6)。各層相互獨(dú)立各司其職,具體如下:

圖6 程序架構(gòu)圖
表現(xiàn)層:系統(tǒng)和用戶的交互層。負(fù)責(zé)接收用戶的輸入如用戶名和密碼以及焊接工藝所需的設(shè)備參數(shù)、并將輸出內(nèi)容呈現(xiàn)給用戶,同時(shí)驗(yàn)證數(shù)據(jù)的正確性和有效性。
應(yīng)用層:該層不包含任何領(lǐng)域邏輯,它主要用來(lái)對(duì)任務(wù)進(jìn)行協(xié)調(diào),它構(gòu)建了表現(xiàn)層和領(lǐng)域?qū)拥臉蛄骸?duì)應(yīng)一個(gè)具體的業(yè)務(wù),指揮領(lǐng)域?qū)ο髞?lái)解決問(wèn)題,包含應(yīng)用服務(wù)接口、數(shù)據(jù)傳輸對(duì)象、映射、異常、行為和業(yè)務(wù)邏輯。
領(lǐng)域?qū)樱合到y(tǒng)的核心,負(fù)責(zé)具體的業(yè)務(wù)概念、狀態(tài)、規(guī)則等信息。該項(xiàng)包含實(shí)體、值對(duì)象、領(lǐng)域服務(wù)、領(lǐng)域事件、領(lǐng)域?qū)ο竽P汀⒁?guī)約、倉(cāng)儲(chǔ)接口等。
持久化層:為整個(gè)項(xiàng)目提供一個(gè)銜接高低層、統(tǒng)一、安全和并發(fā)的數(shù)據(jù)持久機(jī)制,完成對(duì)各種數(shù)據(jù)庫(kù)進(jìn)行的持久化的編程工作,并為系統(tǒng)業(yè)務(wù)邏輯提供服務(wù)。
基礎(chǔ)設(shè)施層:提供整個(gè)焊接系統(tǒng)的基礎(chǔ)服務(wù),存放一些公共的基礎(chǔ)類庫(kù)和組件,如Code First、EF Core、工具類、日志記錄、異常處理、數(shù)據(jù)驗(yàn)證等。
數(shù)字化法蘭焊接管理系統(tǒng)登錄首頁(yè)界面如下圖7所示,用戶輸入賬號(hào)和密碼訪問(wèn)服務(wù)器,系統(tǒng)根據(jù)用戶的權(quán)限ID 返回相關(guān)數(shù)據(jù)并在客戶端顯示相應(yīng)的界面。以普通用戶為例,呈現(xiàn)給用戶為焊接操作說(shuō)明選項(xiàng)和焊接工藝參數(shù)獲取功能選項(xiàng),如下圖8所示的獲取法蘭焊接工藝參數(shù)的設(shè)置頁(yè)面。用戶根據(jù)下拉列表選擇與焊接現(xiàn)場(chǎng)一致的法蘭型號(hào),機(jī)器人、焊槍以及焊機(jī)的品牌型號(hào),從服務(wù)器端查詢法蘭焊接對(duì)應(yīng)的工藝參數(shù)。

圖7 數(shù)字化法蘭焊接管理系統(tǒng)登錄首頁(yè)

圖8 普通用戶獲取工藝參數(shù)的操作界面
超級(jí)管理員的工藝參數(shù)管理頁(yè)面與普通用戶的工藝參數(shù)獲取頁(yè)面類似,區(qū)別在于前者對(duì)參數(shù)可讀可寫(xiě),后者只能進(jìn)行讀取。此外,超級(jí)管理員具有所有人員管理的權(quán)限,能夠預(yù)覽本系統(tǒng)內(nèi)所有人員的相關(guān)信息,同時(shí)可對(duì)普通用戶和管理員的權(quán)限進(jìn)行調(diào)整甚至收回,如下圖9所示。

圖9 超級(jí)管理員的權(quán)限管理頁(yè)面
大數(shù)據(jù)時(shí)代,數(shù)據(jù)成為關(guān)鍵生產(chǎn)要素和重要戰(zhàn)略資源。因此,構(gòu)建企業(yè)乃至行業(yè)的大數(shù)據(jù)平臺(tái),打破信息孤島,加快數(shù)據(jù)共享,對(duì)企業(yè)生產(chǎn)經(jīng)營(yíng)起著至關(guān)重要的作用。本文以數(shù)字化法蘭焊接系統(tǒng)為背景,采用領(lǐng)域設(shè)計(jì)架構(gòu)模式進(jìn)行軟件設(shè)計(jì)開(kāi)發(fā),由法蘭焊接領(lǐng)域?qū)<液蛙浖O(shè)計(jì)開(kāi)發(fā)人員共同建立領(lǐng)域模型,降低了整個(gè)焊接系統(tǒng)的復(fù)雜性,極大地提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性。