張興
(貴陽(yáng)振興鋁鎂科技產(chǎn)業(yè)發(fā)展有限公司,貴州貴陽(yáng) 550081)
本文根據(jù)鑄造在線(xiàn)計(jì)量生產(chǎn)過(guò)程中存在的問(wèn)題設(shè)計(jì)了一套基于MES系統(tǒng)的鋁錠在線(xiàn)稱(chēng)量軟件,將MES系統(tǒng)中的質(zhì)檢信息實(shí)時(shí)同步至在線(xiàn)計(jì)量稱(chēng)重系統(tǒng)中,并讀取電子秤信息以及根據(jù)排班排產(chǎn)信息,在稱(chēng)重完成后即完成合格證的打印。同時(shí)將數(shù)據(jù)統(tǒng)計(jì)后推送回MES系統(tǒng),交由MES系統(tǒng)統(tǒng)計(jì)生產(chǎn)情況以及形成數(shù)字化入庫(kù)信息。有效降低了人工失誤,同時(shí)提高整個(gè)產(chǎn)線(xiàn)的數(shù)字化水平[1]。
本文設(shè)計(jì)軟件所使用鑄造車(chē)間配備3條鑄造生產(chǎn)線(xiàn),每條生產(chǎn)線(xiàn)配備1套稱(chēng)重及標(biāo)簽打印計(jì)算機(jī)及相應(yīng)軟件,軟件稱(chēng)重過(guò)后只記錄重量需人工錄入質(zhì)檢數(shù)據(jù)(鐵含量、硅含量)、熔煉號(hào)、批次號(hào)及牌號(hào)等信息再進(jìn)行合格證打印。同時(shí)在交班后報(bào)表由司磅員通過(guò)U盤(pán)導(dǎo)出稱(chēng)重軟件數(shù)據(jù),提供至相關(guān)部門(mén)進(jìn)行統(tǒng)計(jì)匯集。
本次設(shè)計(jì)軟件需求如下:設(shè)計(jì)一套鋁錠在線(xiàn)計(jì)量軟件,在生產(chǎn)線(xiàn)開(kāi)啟后自動(dòng)獲取重量數(shù)據(jù),同時(shí)根據(jù)對(duì)應(yīng)批次號(hào),軟件將在MES系統(tǒng)的質(zhì)檢化驗(yàn)子系統(tǒng)模塊中匹配對(duì)應(yīng)數(shù)據(jù),并自動(dòng)導(dǎo)入該批次的鋁錠化驗(yàn)數(shù)據(jù)及牌號(hào)。將牌號(hào)、批次號(hào)、鐵含量、硅含量、熔煉號(hào)以及條碼等信息通過(guò)標(biāo)簽打印機(jī)自動(dòng)打印合格證標(biāo)簽,后由司磅員進(jìn)行粘貼。同時(shí)本軟件所有生產(chǎn)數(shù)據(jù)將在線(xiàn)實(shí)時(shí)匯入MES系統(tǒng)進(jìn)行綜合數(shù)字化管理。
MES系統(tǒng)是一套面向制造企業(yè)車(chē)間執(zhí)行層的生產(chǎn)信息化管理系統(tǒng)。MES可以為企業(yè)提供包括制造數(shù)據(jù)管理、計(jì)劃排程管理、生產(chǎn)調(diào)度管理、庫(kù)存管理、質(zhì)量管理、人力資源管理、工作中心/設(shè)備管理、工具工裝管理、采購(gòu)管理、成本管理、項(xiàng)目看板管理、生產(chǎn)過(guò)程控制、底層數(shù)據(jù)集成分析、上層數(shù)據(jù)集成分解等管理模塊,為企業(yè)打造一個(gè)扎實(shí)、可靠、全面、可行的制造協(xié)同管理平臺(tái)。
本文所設(shè)計(jì)的計(jì)量軟件中人員信息、班組數(shù)據(jù)、質(zhì)檢數(shù)據(jù)將通過(guò)數(shù)據(jù)庫(kù)視圖中間表格形式進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,系統(tǒng)總體架構(gòu)設(shè)計(jì)如圖1所示。
圖1 在線(xiàn)計(jì)量系統(tǒng)整體架構(gòu)
現(xiàn)場(chǎng)配置的用于管理稱(chēng)重打標(biāo)的工控機(jī)使用Windows作為操作系統(tǒng),所以在IDE的選擇上使用Visual Studio,它可以用來(lái)創(chuàng)建Windows平臺(tái)下的Windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office插件等。
開(kāi)發(fā)語(yǔ)言使用C#,其程序在.NET上運(yùn)行,而.NET是名為公共語(yǔ)言運(yùn)行時(shí)(CLR)的虛執(zhí)行系統(tǒng)和一組類(lèi)庫(kù)。CLR是Microsoft對(duì)公共語(yǔ)言基礎(chǔ)結(jié)構(gòu)(CLI)國(guó)際標(biāo)準(zhǔn)的實(shí)現(xiàn)。CLI是創(chuàng)建執(zhí)行和開(kāi)發(fā)環(huán)境的基礎(chǔ),語(yǔ)言和庫(kù)可以在其中無(wú)縫地協(xié)同工作。
考慮到本次項(xiàng)目的上位機(jī)操作系統(tǒng)為Windows7,所以選擇框架時(shí)我們選擇向下兼容性較好的.NET Framework 4.5,同時(shí)運(yùn)行輸出類(lèi)型也使用Windows窗體。
數(shù)據(jù)庫(kù)選型基于本廠(chǎng)MES系統(tǒng)使用Microsoft SQL-Server2019數(shù)據(jù)庫(kù)作為其主要關(guān)系型數(shù)據(jù)庫(kù),有著使用方便、伸縮性好、相關(guān)軟件集成程度高等優(yōu)點(diǎn),本軟件也將數(shù)據(jù)庫(kù)選型為同MES系統(tǒng)保持一致[2]。
操作系統(tǒng)為Windows 10;開(kāi)發(fā)環(huán)境為Visual Studio 2019;開(kāi)發(fā)語(yǔ)言為C#;目標(biāo)框架為.NET Framework 4.5;輸出類(lèi)型為Winform;數(shù)據(jù)庫(kù)為Microsoft SQL Server 2019。
操作系統(tǒng)為Windows 7或更高版本;目標(biāo)框架為.NET Framework 4.5。
開(kāi)發(fā)環(huán)境中數(shù)據(jù)庫(kù)命名為db_Weight,共需要用到3張表,其中登錄功能使用MES系統(tǒng)提供的中間表格,不在本文設(shè)計(jì)范圍。
3.2.1 tb_Operator(操作員信息表)
用于存儲(chǔ)操作員信息。
3.2.2 tb_Weight_k(稱(chēng)重信息表)
用于存儲(chǔ)第k條產(chǎn)線(xiàn)的鋁錠稱(chēng)重及對(duì)應(yīng)各項(xiàng)編號(hào)信息。
3.2.3 tb_Lab(化驗(yàn)信息表)
用于存儲(chǔ)質(zhì)檢化驗(yàn)信息。
System.Configuration.用途:調(diào)用config文件,配置串口連接參數(shù)及SQL連接字符串。
zxing.dll、zxing.presentation.dll、BarCodeLayer類(lèi)。
用途:zxing是一個(gè)支持解碼和生成條形碼的動(dòng)態(tài)庫(kù),能夠支持以下編碼格式:UPC-A,EAN-8,EAN-13,Code 39,Code 128,ITF,Codabar,Plessey,MSI,QR Code,PDF-417,Aztec,Data Matrix。滿(mǎn)足本次項(xiàng)目生成條形碼需求。
CommonClass類(lèi)、DataOperate類(lèi)。
用途:執(zhí)行DataGridView與數(shù)據(jù)庫(kù)同步。
主界面使用控件如下。
(1)Label:主要作當(dāng)前行業(yè)統(tǒng)一編碼顯示、當(dāng)前批次號(hào)顯示、當(dāng)前捆號(hào)顯示、當(dāng)前牌號(hào)顯示、當(dāng)前重量顯示、顯示重量是否合格等文字信息的顯示。
(2)Button:主要為打印按鈕、按日期查詢(xún)按鈕、恢復(fù)按鈕并做相應(yīng)的操作。
(3)TextBox:用于用戶(hù)錄入重量閾值的上下限。
(4)DataGridView:做ID、熔煉號(hào)、行業(yè)統(tǒng)一編碼、捆號(hào)、批次號(hào)、牌號(hào)、鐵硅含量、凈重、塊數(shù)、日期、時(shí)間、爐線(xiàn)號(hào)等信息的集中匹配展示。
(5)ToolStrip:做參數(shù)設(shè)置界面、打印機(jī)配置界面、打印預(yù)覽界面的彈窗按鈕使用。
(6)Panel:用作條形碼顯示、打印標(biāo)簽?zāi)0屣@示的預(yù)覽容器。
(7)DateTimePicker:用作查詢(xún)的日期選擇器。
主要為對(duì)應(yīng)產(chǎn)線(xiàn)的基本參數(shù)進(jìn)行配置,分別使用ComboBox控件及TextBox控件來(lái)實(shí)現(xiàn)(爐)線(xiàn)號(hào)、捆號(hào)的選擇,和批次號(hào),碼垛鋁錠塊數(shù)的錄入。
本項(xiàng)目用戶(hù)所使用的計(jì)量臺(tái)秤將在開(kāi)機(jī)后通過(guò)串口實(shí)時(shí)發(fā)送自身傳感器所接收到的實(shí)際重量,使用IDE自帶的串口類(lèi)即可完成數(shù)據(jù)采集。
引入命名空間System.IO.Ports,創(chuàng)建SerialPort對(duì)象sp。
添加BindingSource控件,命名為bsTable。觸發(fā)MainForm的Load事件,當(dāng)窗體加載時(shí),通過(guò)Common-Class的GetDataTable方法,將對(duì)應(yīng)的表作為Binding-Source的數(shù)據(jù)源載入至dgvWeight中。
對(duì)dgvWeight觸發(fā)CellClick事件,創(chuàng)建BarCode-Layer對(duì)象barlayer。以dgvWeight中選中的行(CurrentRow)的BarID為參數(shù),在panelBar中生成條形碼[3]。
6.4.1 生成打印模板
以panelPrint為打印模板,在Panel中添加Label控件顯示選中的dgvWeight記錄,同時(shí)生成的條形碼容器panelBar也包含于該P(yáng)anel。
6.4.2 調(diào)用打印控件
添加PrintDocument控件,將(Name)屬性改為pd,觸發(fā)其PrintPage事件,將panelPrint作為打印內(nèi)容。
添加PrintDialog控件,控件默認(rèn)名稱(chēng)printDialog1。雙擊btnPrint觸發(fā)Click事件,當(dāng)點(diǎn)擊“打印”按鈕時(shí),彈出打印選項(xiàng),對(duì)打印選項(xiàng)進(jìn)行確認(rèn)后開(kāi)始打印。
需要進(jìn)行設(shè)置的參數(shù)如表1所示。
表1 參數(shù)設(shè)置
6.5.1 定義傳值方法
由于參數(shù)設(shè)置界面(FormIndex)與主界面(Main-Form)不在同一個(gè)窗體,且FormIndex屬于MainForm的子窗體,需要由子窗體傳值給父窗體。這里在MainForm中定義一個(gè)ChangeIndex方法,以修改的值為參數(shù),無(wú)返回值。
6.5.2 ComboBox參數(shù)預(yù)設(shè)
創(chuàng)建DataTable對(duì)象dt,添加兩個(gè)列,分別作為顯示值(DisplayMember)和變量值(ValueMember)。
添加DateTimePicker控件,選擇日期后點(diǎn)擊“查詢(xún)”按鈕,其Value.Date即所要查詢(xún)的日期。創(chuàng)建一個(gè)DataSet對(duì)象,通過(guò)創(chuàng)建SqlDataAdapt對(duì)象查詢(xún)并使用Fill方法刷新DataSet。再通過(guò)改變dgvWeight的Data-Source,實(shí)現(xiàn)在DataGridView上的顯示[4]。
點(diǎn)擊“重置查詢(xún)”按鈕,將dgvWeight的DataSource改回原來(lái)的bsTable。
本系統(tǒng)軟件上線(xiàn)后工作人員免除之前需要大量手工錄入數(shù)據(jù)的工作,節(jié)約人力和物力的同時(shí)提高工作效率,降低數(shù)據(jù)出錯(cuò)的可能性,實(shí)現(xiàn)整個(gè)數(shù)據(jù)流的精準(zhǔn)傳遞,提高了基層用戶(hù)的生產(chǎn)效率。
而管理層用戶(hù)可通過(guò)本軟件提供的數(shù)據(jù)接口,在MES系統(tǒng)內(nèi)獲取可視化報(bào)表、數(shù)據(jù)統(tǒng)計(jì)表、生產(chǎn)效能等指標(biāo)。通過(guò)系統(tǒng)頁(yè)面顯示,MES系統(tǒng)能查詢(xún)到每條鋁錠生產(chǎn)線(xiàn)過(guò)磅數(shù)據(jù)以及產(chǎn)品質(zhì)量情況。而無(wú)須再使用U盤(pán)或即時(shí)通訊軟件由人工統(tǒng)計(jì)制作EXCEL后提交。保證系統(tǒng)高效、準(zhǔn)確的同時(shí),降低了病毒感染和數(shù)據(jù)泄露的風(fēng)險(xiǎn)[5]。
并且在鋁錠裝出庫(kù)裝車(chē)銷(xiāo)售時(shí),也可為鋁錠質(zhì)量證明書(shū)提供數(shù)據(jù)支撐,做到鋁錠質(zhì)量數(shù)字化追溯。
MES系統(tǒng)是一套面向制造企業(yè)車(chē)間執(zhí)行層的生產(chǎn)信息化管理系統(tǒng),作為整個(gè)生產(chǎn)企業(yè)的信息中樞,通過(guò)雙向通訊,提供工廠(chǎng)各個(gè)車(chē)間所需的即時(shí)信息。MES系統(tǒng)是整個(gè)生產(chǎn)制造信息化的核心,可以使制造企業(yè)的整個(gè)生產(chǎn)過(guò)程更加完善。
結(jié)合上述思路,本文軟件設(shè)計(jì)充分考慮到了鋁冶煉生產(chǎn)企業(yè)鋁錠鑄造車(chē)間生產(chǎn)現(xiàn)狀及企業(yè)MES系統(tǒng)已有生產(chǎn)業(yè)務(wù)模塊數(shù)據(jù)的基礎(chǔ)上,從軟件需求、信息采集、數(shù)字化車(chē)間等方面對(duì)信息采集與處理系統(tǒng)進(jìn)行綜合分析,詳細(xì)介紹了鋁錠在線(xiàn)計(jì)量軟件的編寫(xiě)思路、參數(shù)設(shè)置、數(shù)據(jù)庫(kù)設(shè)計(jì)、平臺(tái)架構(gòu)和部分重要類(lèi)的代碼編輯。并且說(shuō)明了在實(shí)際上線(xiàn)及應(yīng)用過(guò)程中同MES系統(tǒng)的交互邏輯,滿(mǎn)足企業(yè)對(duì)精益化生產(chǎn)、數(shù)字化生產(chǎn)最終需求。