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