余 蕓
(上海工業(yè)自動(dòng)化儀表研究院有限公司,上海 200233)
鍋爐焊接車(chē)間有多種型號(hào)的焊機(jī),包括大馬鞍焊機(jī)、小馬鞍焊機(jī)、自動(dòng)埋弧焊機(jī)、伊薩焊機(jī)等。各種焊機(jī)獨(dú)立工作,但在工作時(shí)沒(méi)有記錄電壓、電流等參數(shù)。這會(huì)產(chǎn)生以下問(wèn)題。①各種焊機(jī)的通信協(xié)議各異,使得焊接車(chē)間的焊機(jī)數(shù)據(jù)采集后需要投入巨大的成本進(jìn)行整合。②焊接過(guò)程中不能對(duì)焊機(jī)的電壓和電流等重要參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控記錄,導(dǎo)致焊接產(chǎn)品的質(zhì)量得不到保證。③由于沒(méi)有統(tǒng)一的通信協(xié)議,車(chē)間制造執(zhí)行系統(tǒng)(manufacturing execution system,MES)在設(shè)計(jì)時(shí),只能被動(dòng)地集成各種不同的通信協(xié)議[1]與焊機(jī)設(shè)備相適配,提高了系統(tǒng)開(kāi)發(fā)的難度,阻礙了整個(gè)車(chē)間信息化建設(shè)。所以,在鍋爐焊接車(chē)間內(nèi)不同焊機(jī)設(shè)備之間建立一種簡(jiǎn)單、可靠的統(tǒng)一通信模式具有重要的意義。對(duì)象鏈接與嵌入的過(guò)程控制(object linking and embedding for process control,OPC)用于設(shè)備和軟件之間交換數(shù)據(jù)[2]。OPC統(tǒng)一架構(gòu)(OPC unified architecture,OPC UA)是在OPC基礎(chǔ)上[3-4],為了應(yīng)對(duì)標(biāo)準(zhǔn)化和跨平臺(tái)的趨勢(shì)而推出的新標(biāo)準(zhǔn)。該技術(shù)可以很好地解決上述問(wèn)題。
本文基于JAVA的設(shè)備信息系統(tǒng)的開(kāi)發(fā)[5],可有效記錄和保存焊機(jī)在焊接過(guò)程中產(chǎn)生的重要數(shù)據(jù),使企業(yè)管理者能對(duì)焊機(jī)進(jìn)行有效的監(jiān)控,追溯焊接產(chǎn)品的質(zhì)量。
針對(duì)焊接車(chē)間缺乏焊機(jī)工作狀態(tài)數(shù)據(jù)、不能很好追溯產(chǎn)品焊接質(zhì)量的問(wèn)題,本文設(shè)計(jì)了焊機(jī)數(shù)據(jù)采集建設(shè)方案。該方案由工作站、制造企業(yè)MES和OPC服務(wù)器、紫蜂協(xié)議(ZigBee)網(wǎng)關(guān)、遠(yuǎn)程終端控制系統(tǒng)(remote terminal unit ,RTU)組成。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)圖Fig.1 System architecture diagram
遠(yuǎn)程終端控制系統(tǒng)是焊機(jī)設(shè)備的數(shù)據(jù)采集裝置。每臺(tái)焊機(jī)均配有一臺(tái)RTU。RTU采集電流傳感器輸出的電流信號(hào)、焊接電壓信號(hào)和溫度信號(hào)等,并通過(guò)ZigBee網(wǎng)絡(luò)上傳給ZigBee網(wǎng)關(guān)。無(wú)線(xiàn)網(wǎng)關(guān)主要負(fù)責(zé)整個(gè)無(wú)線(xiàn)網(wǎng)絡(luò)的建立,并對(duì)焊接數(shù)據(jù)采集設(shè)備的數(shù)據(jù)進(jìn)行接收,轉(zhuǎn)化為以太網(wǎng)協(xié)議上傳給OPC Server。采集裝置還能對(duì)焊機(jī)工作狀態(tài)進(jìn)行控制。如果焊機(jī)的電壓、電流等超過(guò)采集裝置的預(yù)設(shè)值,采集裝置會(huì)給出報(bào)警信號(hào)或切斷焊機(jī)的電源使其停止工作。
OPC Server接收和處理ZigBee網(wǎng)關(guān)傳來(lái)的焊機(jī)在生產(chǎn)過(guò)程中產(chǎn)生的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行記錄、保存和查詢(xún),以實(shí)現(xiàn)對(duì)生產(chǎn)過(guò)程的有效監(jiān)視。通過(guò)OPC客戶(hù)端,可對(duì)焊機(jī)設(shè)備進(jìn)行管理控制,并對(duì)數(shù)據(jù)采集裝置設(shè)置的生產(chǎn)參數(shù)進(jìn)行修改和保存,以適應(yīng)不同焊接產(chǎn)品的需求。
鍋爐焊接車(chē)間的設(shè)備信息系統(tǒng)是MES的一部分,通過(guò)數(shù)據(jù)庫(kù)讀取設(shè)備的工作信息,使管理者能了解設(shè)備的工作狀態(tài),從而追溯焊接產(chǎn)品的質(zhì)量。
運(yùn)行程序前,先建立.ini配置文件。配置文件保存網(wǎng)關(guān)的IP地址、port端口號(hào)、每個(gè)數(shù)據(jù)采集設(shè)備的設(shè)備編號(hào)等。程序首先進(jìn)行初始化工作,創(chuàng)建OPC Group和OPC Item。每個(gè)焊機(jī)對(duì)應(yīng)一個(gè)OPC Group。焊機(jī)的工作參數(shù)對(duì)應(yīng)OPC Item,所以每個(gè) OPC Group 包含了許多的 OPC Item[6]。然后,讀取配置文件,獲得網(wǎng)關(guān)的IP地址和端口號(hào),并從配置文件獲得數(shù)據(jù)采集模塊的設(shè)備編號(hào)和設(shè)備ID。所有配置完成后,創(chuàng)建數(shù)據(jù)處理線(xiàn)程,按照Z(yǔ)igBee網(wǎng)關(guān)發(fā)送數(shù)據(jù)的時(shí)間進(jìn)行數(shù)據(jù)接收、處理和發(fā)送,并調(diào)用數(shù)據(jù)存儲(chǔ)模塊實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)功能。同時(shí),啟動(dòng)定時(shí)器功能,定時(shí)對(duì)OPC Item的狀態(tài)進(jìn)行刷新。
OPC Server程序流程如圖2所示。
圖2 OPC Server 程序流程圖Fig.2 OPC Server program flowchart
數(shù)據(jù)采集模塊[7]是OPC Server軟件的核心。其主要功能是接收Z(yǔ)igBee網(wǎng)關(guān)發(fā)送來(lái)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行處理和保存。首先,數(shù)據(jù)采集模塊判斷是否已連接ZigBee網(wǎng)關(guān)。如已連接,則分析ZigBee網(wǎng)關(guān)發(fā)送來(lái)的數(shù)據(jù),判斷是哪個(gè)數(shù)據(jù)采集設(shè)備發(fā)送的。然后,讀取電壓、電流值等,更新OPC Group和OPC Item。最后,把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。
程序采用定時(shí)器線(xiàn)程來(lái)刷新OPC Group 和OPC Item,同時(shí)控制接收到的數(shù)據(jù)顯示時(shí)間為1 min。如果超過(guò)1 min沒(méi)有接收到新的采集數(shù)據(jù),程序會(huì)將之前顯示的數(shù)據(jù)置為0。
數(shù)據(jù)采集流程如圖3所示。
圖3 數(shù)據(jù)采集流程圖Fig.3 Data collection flowchart
數(shù)據(jù)存儲(chǔ)模塊的主要功能是把接收到的數(shù)據(jù)保存到數(shù)據(jù)庫(kù),為MES的設(shè)備管理系統(tǒng)的應(yīng)用作準(zhǔn)備。由于ZigBee網(wǎng)絡(luò)每15 s發(fā)送一次數(shù)據(jù),而數(shù)據(jù)庫(kù)因?yàn)椴皇菍?shí)時(shí)數(shù)據(jù)庫(kù),所以插入數(shù)據(jù)的頻率不能那么高。程序首先定義一個(gè)類(lèi)。類(lèi)的屬性是接收到的數(shù)據(jù)類(lèi)型(即OPC Item),包括電壓、電流和溫度等參數(shù)。然后,程序定義一個(gè)鏈表(list)。鏈表的數(shù)據(jù)類(lèi)型是類(lèi)的屬性,每次接收到的數(shù)據(jù)就插入鏈表中。最后,程序設(shè)置一個(gè)定時(shí)器線(xiàn)程,把1 min接收到的所有數(shù)據(jù)插入數(shù)據(jù)庫(kù)中,同時(shí)清空鏈表,為接收新的數(shù)據(jù)作準(zhǔn)備。
設(shè)備信息系統(tǒng)是MES的重要組成部分[8],主要功能有設(shè)備資產(chǎn)臺(tái)賬、設(shè)備定期維護(hù)計(jì)劃、設(shè)備大/中修記錄、設(shè)備維修履歷、設(shè)備參數(shù)運(yùn)行趨勢(shì)等。管理者通過(guò)這個(gè)系統(tǒng),不僅可以了解設(shè)備的基本情況,還可以了解設(shè)備運(yùn)行的歷史參數(shù),從而追溯產(chǎn)品質(zhì)量。
系統(tǒng)采用Web Service服務(wù)。與本地服務(wù)相比,Web Service服務(wù)具備平臺(tái)無(wú)關(guān)性、跨越防火墻以及編程語(yǔ)言無(wú)關(guān)性等優(yōu)勢(shì)[9],采用JAVA作為開(kāi)發(fā)語(yǔ)言,具有面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無(wú)關(guān)、可移植、高性能、多線(xiàn)程和動(dòng)態(tài)的特點(diǎn)[10],被廣泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用開(kāi)發(fā)和移動(dòng)應(yīng)用開(kāi)發(fā)。
為了降低層與層之間的耦合度、減少數(shù)據(jù)互相干擾,本系統(tǒng)采用分層架構(gòu)開(kāi)發(fā)。系統(tǒng)架構(gòu)分為數(shù)據(jù)層和應(yīng)用層。
①數(shù)據(jù)層:OPC Server把數(shù)據(jù)存儲(chǔ)在MES數(shù)據(jù)庫(kù),并在其中新建一個(gè)設(shè)備運(yùn)行信息表。
②應(yīng)用層:采用HTML實(shí)現(xiàn)靜態(tài)頁(yè)面設(shè)計(jì)與布局;采用JavaScript 創(chuàng)建動(dòng)態(tài)頁(yè)面效果并與后端進(jìn)行數(shù)據(jù)交互。
根據(jù)焊接鍋爐車(chē)間的業(yè)務(wù)需求,系統(tǒng)設(shè)計(jì)了設(shè)備資產(chǎn)臺(tái)賬、設(shè)備定期維護(hù)計(jì)劃、設(shè)備大/中修記錄、設(shè)備維修履歷、設(shè)備參數(shù)運(yùn)行趨勢(shì)等功能模塊。其中,與OPC Server有緊密聯(lián)系的是設(shè)備資產(chǎn)臺(tái)賬模塊。
設(shè)備臺(tái)賬模塊記錄了設(shè)備的基本信息,包括資產(chǎn)編號(hào)、資產(chǎn)名稱(chēng)、生產(chǎn)廠(chǎng)家等,通過(guò)資產(chǎn)編號(hào)、名稱(chēng)等,能快速查找到用戶(hù)所需的設(shè)備;通過(guò)新增和刪除按鈕,可以增加新的設(shè)備和刪掉已淘汰的設(shè)備;通過(guò)導(dǎo)入按鈕,可以把Excel表格的設(shè)備信息導(dǎo)入系統(tǒng);通過(guò)導(dǎo)出按鈕,可以把設(shè)備信息導(dǎo)出到Excel表格中。
實(shí)體關(guān)系如圖4所示。
圖4 實(shí)體關(guān)系圖Fig.4 Entity relationship diagram
數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)系統(tǒng)的基礎(chǔ)和核心,直接影響到整個(gè)系統(tǒng)完成性的優(yōu)劣[11]。本系統(tǒng)采用SQL Server作為數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)設(shè)計(jì)分為三個(gè)階段。首先,通過(guò)需求分析得到所需設(shè)備的數(shù)據(jù)項(xiàng),設(shè)計(jì)出能滿(mǎn)足用戶(hù)需求的實(shí)體、屬性,并找到實(shí)體與屬性之間的聯(lián)系。
其次,根據(jù)實(shí)體關(guān)系圖,確定以下數(shù)據(jù)庫(kù)表。
①設(shè)備基本信息表,包括資產(chǎn)編號(hào)、資產(chǎn)名稱(chēng)、規(guī)格型號(hào)、生產(chǎn)廠(chǎng)家、投產(chǎn)日期、功率、設(shè)備狀態(tài)、使用情況、資產(chǎn)位置、一保周期、二保周期、歸口部門(mén)、使用部門(mén)、科目、驗(yàn)收日期、資產(chǎn)原值。
②設(shè)備運(yùn)行記錄表,包括資產(chǎn)編號(hào)、電壓、電流、溫度、電壓最大值、電壓最小值、電流最大值、電流最小值、發(fā)送時(shí)間。
最后,進(jìn)行數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)設(shè)計(jì),確定兩個(gè)表中各字段的數(shù)據(jù)類(lèi)型和長(zhǎng)度、是否為空,以及兩個(gè)表的主鍵和外鍵值。其中:設(shè)備基本信息表的資產(chǎn)編號(hào)和資產(chǎn)名稱(chēng)是主鍵,不能為空且資產(chǎn)編號(hào)是設(shè)備基本信息表的外鍵;設(shè)備運(yùn)行記錄表的資產(chǎn)編號(hào)是主鍵,不能為空。
焊接數(shù)據(jù)采集系統(tǒng)主要應(yīng)用在華西能源的焊接車(chē)間,以實(shí)現(xiàn)對(duì)車(chē)間的焊接設(shè)備的實(shí)時(shí)監(jiān)視。該采集系統(tǒng)主要實(shí)現(xiàn)了以下功能。
①焊機(jī)工作電壓和電流的實(shí)時(shí)采集并上傳。
②通過(guò)MES客戶(hù)端,查看當(dāng)前數(shù)據(jù),并依據(jù)不同工藝需求可靈活配置無(wú)線(xiàn)焊接數(shù)據(jù)采集設(shè)備的焊接參數(shù)。
③通過(guò)對(duì)焊接參數(shù)查看界面的簡(jiǎn)單配置,可查看歷史數(shù)據(jù),以實(shí)現(xiàn)焊縫質(zhì)量的可追溯性。
④根據(jù)需要,可方便地增減監(jiān)控點(diǎn)。
⑤當(dāng)采集數(shù)據(jù)出現(xiàn)異常時(shí),發(fā)出紅色信號(hào)警示;當(dāng)節(jié)點(diǎn)斷網(wǎng)時(shí),發(fā)出黃色信號(hào)警示。
焊接參數(shù)實(shí)時(shí)監(jiān)測(cè)系統(tǒng)包括重容車(chē)間和管子車(chē)間,能顯示實(shí)時(shí)信息和歷史信息。在監(jiān)測(cè)頁(yè)面,正在工作的焊接設(shè)備用綠燈顯示,沒(méi)有工作的設(shè)備用灰色表示。設(shè)備工作時(shí),能實(shí)時(shí)顯示電壓、電流參數(shù),管理人員通過(guò)實(shí)時(shí)監(jiān)測(cè)系統(tǒng),對(duì)焊接設(shè)備工作情況能一目了然。
焊接設(shè)備的參數(shù)信息保存在MES的設(shè)備信息系統(tǒng)中,用戶(hù)可以依據(jù)不同工藝需求靈活配置焊接參數(shù),并下發(fā)給無(wú)線(xiàn)焊接數(shù)據(jù)采集設(shè)備,以控制現(xiàn)場(chǎng)的實(shí)際焊機(jī)工作;同時(shí),用戶(hù)可以在MES客戶(hù)端查詢(xún)焊機(jī)的當(dāng)前或歷史工作狀態(tài),為產(chǎn)品質(zhì)量追溯提供技術(shù)支撐。
系統(tǒng)采用OPC UA技術(shù)進(jìn)行數(shù)據(jù)采集和接收,能迅速建立起各個(gè)焊機(jī)設(shè)備和MES的通信連接,解決了由于各種焊機(jī)的不同通訊協(xié)議使系統(tǒng)開(kāi)發(fā)困難和成本上升的問(wèn)題;采用JAVA技術(shù)開(kāi)發(fā)設(shè)備信息系統(tǒng),使管理者能夠了解設(shè)備運(yùn)行的歷史數(shù)據(jù),保證了質(zhì)量的可追溯性,也使得焊接作業(yè)的生產(chǎn)管理和質(zhì)量監(jiān)督及監(jiān)控逐步實(shí)現(xiàn)數(shù)字化。該研究對(duì)車(chē)間數(shù)字化生產(chǎn)起到了推動(dòng)作用。