張賀 周鵬飛 魏磊 董洪鵬
(中汽研汽車工業(yè)工程(天津)有限公司信息工程部 天津市 300300)
汽車車身是由數(shù)以千計(jì)的薄板通過焊接工藝方法組合在一起的高強(qiáng)度空間板殼結(jié)構(gòu),焊裝工藝十分復(fù)雜[1]。汽車生產(chǎn)線具備多種平臺(tái)、多種配置、高柔性化生產(chǎn)制造能力。同一條生產(chǎn)線在設(shè)計(jì)之初兼顧生產(chǎn)幾種不同型號(hào)汽車,同一天的生產(chǎn)訂單中可能出現(xiàn)不同型號(hào)的車輛。如果上件工人不能按照生產(chǎn)訂單準(zhǔn)確選擇制件,導(dǎo)致上錯(cuò)件的情況發(fā)生,會(huì)給企業(yè)帶來很大的經(jīng)濟(jì)損失。由此可見準(zhǔn)確上件對(duì)于人工工位來說顯得尤為重要。
汽車廠焊裝車間嚴(yán)格按照生產(chǎn)計(jì)劃進(jìn)行生產(chǎn),眾多小件焊接成較大制件被運(yùn)送到相關(guān)工位,通過人工上件的方式放置在夾具上,等待機(jī)器人焊接、夾取。機(jī)器人在工作的過程中根據(jù)訂單上不同的“特殊材質(zhì)代碼” 采取不同的動(dòng)作軌跡進(jìn)行焊接、涂膠,目前某汽車廠采取向現(xiàn)場(chǎng)操作人員下發(fā)紙質(zhì)生產(chǎn)計(jì)劃的方式提示操作工人生產(chǎn)制件型號(hào),完成一個(gè)制件操作工人需要在紙質(zhì)生產(chǎn)計(jì)劃上做一個(gè)標(biāo)記。這種操作方式不能直觀顯示當(dāng)前需要生產(chǎn)制件狀態(tài),很容易由于人為因素造成上件錯(cuò)誤影響生產(chǎn)。如果能實(shí)時(shí)讀取機(jī)器人當(dāng)前生產(chǎn)的特殊材質(zhì)代碼,并且轉(zhuǎn)化成為直觀易見的生產(chǎn)制件就能大大避免上錯(cuò)制件問題的發(fā)生。
基于以上功能需求,設(shè)計(jì)開發(fā)了“生產(chǎn)計(jì)劃顯示系統(tǒng)”。系統(tǒng)自動(dòng)獲取上層MES 生產(chǎn)計(jì)劃,實(shí)時(shí)采集機(jī)器人緩存的特殊材質(zhì)代碼,下發(fā)給對(duì)應(yīng)的顯示終端,終端接收特殊材質(zhì)代碼后進(jìn)行處理并且顯示相應(yīng)信息,當(dāng)完成當(dāng)前制件生產(chǎn)動(dòng)作,終端顯示畫面自動(dòng)切換到下一個(gè)制件進(jìn)行顯示。
系統(tǒng)模塊化設(shè)計(jì)思想是通過將系統(tǒng)的某幾個(gè)功能單元有機(jī)組合在一起,構(gòu)成一個(gè)具有某一功能的子系統(tǒng)(或子模塊),最后將這些子系統(tǒng)(或子模塊)按照一定組織架構(gòu)組合起來構(gòu)成一個(gè)完整的系統(tǒng)。
在軟件設(shè)計(jì)的過程中,需要對(duì)系統(tǒng)的結(jié)構(gòu)層次進(jìn)行分析,從中抽取出系統(tǒng)的設(shè)計(jì)框架,通過框架來指導(dǎo)整個(gè)軟件設(shè)計(jì)的流程。而一個(gè)良好的系統(tǒng)框架也是決定整個(gè)系統(tǒng)的穩(wěn)定性、封閉性、可維護(hù)性的重要條件之一。根據(jù)軟件設(shè)計(jì)模塊劃分準(zhǔn)則將生產(chǎn)計(jì)劃指示系統(tǒng)分為信息采集模塊、網(wǎng)絡(luò)傳輸模塊和處理顯示模塊。生產(chǎn)計(jì)劃顯示系統(tǒng)模塊劃分如圖1 所示。
圖1:系統(tǒng)模塊劃分示意圖
服務(wù)器核心模塊是生產(chǎn)計(jì)劃指示系統(tǒng)的核心部分,起到“上傳下達(dá)”的作用。主要功能是接收來自上層MES 的生產(chǎn)計(jì)劃、向終端下發(fā)生產(chǎn)計(jì)劃、獲取現(xiàn)場(chǎng)機(jī)器人當(dāng)前生產(chǎn)的特殊材質(zhì)代碼、將特殊材質(zhì)代碼發(fā)送到特定終端、接收來自終端的完成信號(hào)在本地?cái)?shù)據(jù)庫做出完成狀態(tài)標(biāo)記等功能。
網(wǎng)絡(luò)傳輸模塊是系統(tǒng)內(nèi)部各個(gè)模塊溝通的橋梁。來自上層MES 的生產(chǎn)計(jì)劃和來自現(xiàn)場(chǎng)設(shè)備的特殊材質(zhì)代碼都通過網(wǎng)絡(luò)傳輸模塊進(jìn)入服務(wù)器核心模塊,核心模塊處理完成后通過網(wǎng)絡(luò)傳輸模塊傳遞到顯示終端。
處理顯示模塊接收來自信息采集模塊的特殊材質(zhì)代碼信息,通過與生產(chǎn)計(jì)劃比對(duì)、解析,在終端顯示特定含義的信息,在當(dāng)前制件完成生產(chǎn)動(dòng)作時(shí)反饋一個(gè)完成信號(hào)給信息采集模塊。
生產(chǎn)計(jì)劃指示系統(tǒng)硬件主要由服務(wù)器、顯示終端、現(xiàn)場(chǎng)PLC、路由器、網(wǎng)絡(luò)交換機(jī)等組成。服務(wù)器是整個(gè)系統(tǒng)的控制核心,通過網(wǎng)絡(luò)與上層MES 系統(tǒng)、現(xiàn)場(chǎng)PLC、現(xiàn)場(chǎng)顯示終端連接。顯示終端選用研華工業(yè)平板電腦,為方便現(xiàn)場(chǎng)工人操作選用電阻式觸摸屏,在Windows7 系統(tǒng)上安裝.Net FrameWork4.5 運(yùn)行環(huán)境?,F(xiàn)場(chǎng)PLC作為機(jī)器人控制器為機(jī)器人的生產(chǎn)提供最可靠的數(shù)據(jù),將這些數(shù)據(jù)讀取出來并解析顯示將極大提高上上件的準(zhǔn)確性。網(wǎng)絡(luò)交換機(jī)為數(shù)據(jù)傳輸提供可靠保障。
如圖2 所示,服務(wù)器通過交換機(jī)獲得上層MES 生產(chǎn)計(jì)劃,獲取現(xiàn)場(chǎng)PLC 生產(chǎn)數(shù)據(jù)發(fā)送給對(duì)應(yīng)顯示終端,顯示終端通過一定算法進(jìn)行解析,將生產(chǎn)數(shù)據(jù)顯示在屏幕上。
圖2:系統(tǒng)架構(gòu)示意圖
生產(chǎn)計(jì)劃指示系統(tǒng)核心功能是服務(wù)器采集現(xiàn)場(chǎng)數(shù)據(jù)和現(xiàn)場(chǎng)終端顯示信息。網(wǎng)絡(luò)傳輸模塊實(shí)現(xiàn)數(shù)據(jù)傳輸功能,在應(yīng)用領(lǐng)域技術(shù)比較成熟。本文將就服務(wù)器核心模塊和處理顯示模塊的軟件設(shè)計(jì)進(jìn)行詳細(xì)分析。
3.2.1 服務(wù)器核心模塊軟件設(shè)計(jì)
數(shù)據(jù)庫是本系統(tǒng)的重要組成部分,存儲(chǔ)MES 生產(chǎn)數(shù)據(jù)供顯示終端使用。本系統(tǒng)使用SQL Server 作為數(shù)據(jù)庫軟件,上層MES 對(duì)本系統(tǒng)開放一張數(shù)據(jù)表,數(shù)據(jù)表包含關(guān)鍵生產(chǎn)信息外,還需要建立一個(gè)兩個(gè)列(數(shù)據(jù)狀態(tài)標(biāo)志、時(shí)間)。在查詢MES 數(shù)據(jù)庫時(shí)只需查詢是否有新增數(shù)據(jù),如果出現(xiàn)新增加的數(shù)據(jù)更改對(duì)應(yīng)數(shù)據(jù)狀態(tài)標(biāo)志并插入當(dāng)前時(shí)間,這樣設(shè)計(jì)可以大大降低數(shù)據(jù)查詢量,避免程序出現(xiàn)“假死”的情況。
使用KepWare 作為OPC 軟件獲取現(xiàn)場(chǎng)PLC 數(shù)據(jù)。OPC 主要用于不同品牌PLC 與上位機(jī)之間的通訊,通過采用OPC 技術(shù),可以以更使系統(tǒng)具有更簡單的結(jié)構(gòu)、更長的壽命、更低的編程成本。KepWare 作為成熟的第三方軟件,可以使現(xiàn)場(chǎng)設(shè)備與系統(tǒng)的信息傳輸更加簡單、靈活和方便[2]。使用KepWare 建立與現(xiàn)場(chǎng)實(shí)際情況相對(duì)應(yīng)的Channel、Device 和Tag,即完成基礎(chǔ)服務(wù)器核心模塊軟件的基礎(chǔ)配置,接下來啟動(dòng)服務(wù)器端程序。
啟動(dòng)服務(wù)器端程序,通過初始化、讀取系統(tǒng)配置的參數(shù)以后,連接KepWare,通過篩選得到人工上件工位對(duì)應(yīng)機(jī)器人PLC 存放特殊材質(zhì)代碼的地址。啟動(dòng)生產(chǎn)后程序啟動(dòng)相應(yīng)線程,實(shí)現(xiàn)定期查詢MES 數(shù)據(jù)庫、檢測(cè)特殊材質(zhì)代碼的變化。當(dāng)MES 數(shù)據(jù)庫有數(shù)據(jù)更新,系統(tǒng)執(zhí)行相應(yīng)程序段將更新的數(shù)據(jù)讀取到本地?cái)?shù)據(jù)庫。剛啟動(dòng)程序時(shí),服務(wù)器端程序采用群發(fā)模式,將生產(chǎn)信息群發(fā)到所有終端;正常生產(chǎn)后,循環(huán)掃描OPC 軟件中所有Tag 的變化,當(dāng)某個(gè)Tag 值發(fā)生變化,服務(wù)器端程序?qū)⑦@個(gè)變化的值發(fā)送到相應(yīng)終端進(jìn)行處理,并接收來自終端反饋的完成信號(hào),在本地?cái)?shù)據(jù)庫的相應(yīng)位置做出標(biāo)記。
3.2.2 處理顯示模塊軟件設(shè)計(jì)
處理顯示模塊主要功能是接收來自服務(wù)器發(fā)送的特殊材質(zhì)代碼,通過與本地?cái)?shù)據(jù)進(jìn)行比對(duì)處理,顯示相應(yīng)內(nèi)容。系統(tǒng)啟動(dòng)后,進(jìn)行程序初始化并讀取本終端的配置參數(shù),這些參數(shù)包括服務(wù)器地址、終端設(shè)備ID 和系統(tǒng)操作模式、車型解析等參數(shù),當(dāng)與服務(wù)器建立通信成功后,向服務(wù)器發(fā)送一個(gè)“start”指令,接收服務(wù)器發(fā)送的當(dāng)日生產(chǎn)計(jì)劃和特殊材質(zhì)代碼,如果特殊材質(zhì)代碼在當(dāng)日生產(chǎn)計(jì)劃中,則對(duì)該代碼進(jìn)行解析,在終端顯示出車型、車身號(hào)、配置、VIN 等信息;如果該代碼不在當(dāng)日生產(chǎn)計(jì)劃內(nèi),則在終端畫面上顯示出相應(yīng)的報(bào)警信息,提示上件工人進(jìn)行必要的處理。
本系統(tǒng)采用C#開發(fā),C#是一種面向?qū)ο蟮拈_發(fā)語言,具有安全、穩(wěn)定、簡單等特點(diǎn)。本系統(tǒng)包含服務(wù)器端、顯示終端、客戶端三部分構(gòu)成。
服務(wù)器端程序包含Socket 連接日志、OPC 服務(wù)器、高級(jí)設(shè)置三個(gè)部分。Socket 連接日志顯示終端啟動(dòng)、工作、停止信息,系統(tǒng)管理員可以根據(jù)這些信息查看啟動(dòng)生產(chǎn)以后終端連接情況、某一工位制件完成情況以及某一工位停產(chǎn)信息。并可以根據(jù)這些信息制作詳細(xì)數(shù)據(jù)報(bào)表。OPC 服務(wù)器端主要用來選擇服務(wù)器所在IP 地址、OPC 軟件類型、通過Tag 過濾器篩選出系統(tǒng)所需信息點(diǎn),可以修改Tag 列表刷新頻率在右側(cè)查看所選點(diǎn)的數(shù)值變化情況。高級(jí)設(shè)置主要用于設(shè)置班次以及班次起止時(shí)間。
終端程序包含圖表模式、列表模式、歷史數(shù)據(jù)和終端參數(shù)設(shè)置四大部分。
4.2.1 圖表模式
圖表模式是終端首頁,是當(dāng)終端程序開啟后默認(rèn)進(jìn)入的頁面。圖表模式頁面主要分為左右兩個(gè)部分,左側(cè)為當(dāng)前生產(chǎn)制件的車型和詳細(xì)生產(chǎn)信息以及本工位對(duì)應(yīng)該車型的制件圖片,在制件圖片中標(biāo)出了與其他車型的區(qū)別,便于操作工人根據(jù)提示信息從物料車上拾取生產(chǎn)所需制件,右側(cè)為即將生產(chǎn)的車型信息,提示操作工人提前準(zhǔn)備好即將使用的制件,在有車型切換情況下顯得尤為必要。
4.2.2 列表模式
焊裝車間主焊線具有很多Buffer,這些Buffer 工位多個(gè)模具同時(shí)工作,需要上件工人根據(jù)依次擺放多個(gè)制件,為了便于這些工位快速上件設(shè)計(jì)了列表模式。為了區(qū)分制件的完成狀態(tài),列表模式通過改變列表行底色的方式進(jìn)行標(biāo)記,已經(jīng)完成的制件標(biāo)記成白藍(lán)色、正在生產(chǎn)的制件標(biāo)記成淺綠色、尚未生產(chǎn)的制件標(biāo)記為灰色。上件工人直觀得到所需制件信息,便于快速、準(zhǔn)確生產(chǎn)。
4.2.3 歷史數(shù)據(jù)
歷史數(shù)據(jù)頁面主要包含控件DateTimePicker 和控件DataGrid View,分別實(shí)現(xiàn)時(shí)間篩選和顯示數(shù)據(jù)的功能?;跀?shù)據(jù)安全方面考慮在設(shè)計(jì)時(shí)關(guān)閉了該頁面DataGridView 的編輯權(quán)限,操作人員可以通過歷史數(shù)據(jù)頁面查看近期生產(chǎn)情況。
4.2.4 終端參數(shù)設(shè)置
顯示終端一些常見參數(shù)可以通過頁面設(shè)置和修改。系統(tǒng)管理員可以設(shè)置本工位各個(gè)車型對(duì)應(yīng)的圖片、可以修改該終端密碼和設(shè)置列表模式下顯示行數(shù)等。
生產(chǎn)現(xiàn)場(chǎng)某些工位有修改生產(chǎn)計(jì)劃和臨時(shí)增加生產(chǎn)的情況,為了便于這些工位操作,在現(xiàn)場(chǎng)安裝一臺(tái)客戶端,通過客戶端系統(tǒng)操作員可以增加、刪除、修改和查看生產(chǎn)計(jì)劃,為滿足批量增加生產(chǎn)計(jì)劃的需要,客戶端支持Excel 文件導(dǎo)入功能。
本文分別從硬件和軟件方面介紹了生產(chǎn)計(jì)劃顯示系統(tǒng)的構(gòu)成,并就服務(wù)器端和處理顯示終端軟件工作過程進(jìn)行詳細(xì)闡述。焊裝車間人工上件工位生產(chǎn)計(jì)劃顯示系統(tǒng),為柔性化生產(chǎn)線高效生產(chǎn)奠定堅(jiān)實(shí)基礎(chǔ),是焊裝車間自動(dòng)化生產(chǎn)不可或缺的一部分。系統(tǒng)結(jié)合Windows 任務(wù)計(jì)劃程序?qū)崿F(xiàn)定時(shí)啟動(dòng)停止,可以根據(jù)不同工位需要進(jìn)行個(gè)性化定制,前期完成基礎(chǔ)配置后不需要過多人為干預(yù)即可根據(jù)現(xiàn)場(chǎng)實(shí)際顯示車型信息以及本工位所需上件圖片信息,徹底解決由于工人疏忽導(dǎo)致的上錯(cuò)制件問題的發(fā)生。系統(tǒng)目前已經(jīng)在某汽車廠焊裝車間成功驗(yàn)證并得到廣泛使用。