王路暐
(上汽通用五菱汽車(chē)股份有限公司,廣西 柳州 545007)
VB編程在激光打標(biāo)設(shè)備中的應(yīng)用
王路暐
(上汽通用五菱汽車(chē)股份有限公司,廣西 柳州 545007)
在提高設(shè)備運(yùn)行的可靠度上,如何有效降低設(shè)備的制造成本,成為工廠項(xiàng)目投資時(shí)的重要內(nèi)容。為此,需要比較各種硬件運(yùn)行條件和采購(gòu)價(jià)格,在工藝相同,保證運(yùn)行穩(wěn)定質(zhì)量?jī)?yōu)良的情況下,選擇整線集成控制度高的PLC成本較高,使用單臺(tái)設(shè)備來(lái)說(shuō),經(jīng)濟(jì)效益最佳的VB編程控制軟件,變成一項(xiàng)降低投資成本的最佳選擇。本文主要討論和闡述如何使用VB語(yǔ)言編輯激光打標(biāo)程序中和生產(chǎn)相關(guān)的工藝類型選擇和號(hào)碼生成。
PLC;VB;控制系統(tǒng);硬件;軟件
隨著汽車(chē)工業(yè)的發(fā)展,汽車(chē)制造工廠普遍采取最先進(jìn)的生產(chǎn)制造技術(shù),大幅度得提高勞動(dòng)生產(chǎn)效率。在自動(dòng)化設(shè)備的應(yīng)用中,使用VB語(yǔ)言開(kāi)發(fā)相關(guān)軟件來(lái)進(jìn)行設(shè)備功能的控制,本文以工廠的小型設(shè)備——激光打標(biāo)機(jī)為例,因?yàn)榇祟悊闻_(tái)的激光打標(biāo)設(shè)備,需要的機(jī)械部件和電氣組件的特點(diǎn)為結(jié)構(gòu)簡(jiǎn)單、部件數(shù)量較少,便于VB編程的施展。
編程主要使用VB6.0,Visual Basic 6.0中文企業(yè)版VB編程語(yǔ)言,編譯結(jié)束后生成激光打標(biāo)控制軟件,軟件需要SQL數(shù)據(jù)庫(kù)、VB的編譯軟件、IO板卡的驅(qū)動(dòng)程序,硬件需要工控機(jī)、IO板卡、接線板、傳感器、氣缸、輥道線等。VB語(yǔ)言編譯后生成的打標(biāo)控制軟件需要完成對(duì)打標(biāo)的工件號(hào)碼的控制和存儲(chǔ),并且需要數(shù)據(jù)庫(kù)的配合,工件號(hào)碼中各類字母數(shù)字的含義,在此不做詳細(xì)描述,只以工藝內(nèi)容規(guī)定的類型、年份、班次和順序號(hào)為例進(jìn)行闡述,通過(guò)SQL數(shù)據(jù)庫(kù)中建立這4個(gè)表,進(jìn)行變動(dòng)部分的控制和校正。VB程序編程時(shí),讀取數(shù)據(jù)庫(kù)中年份的代碼,或者數(shù)字或者字母依次表示,班次按照實(shí)際班次的安排,每天的班次時(shí)段,進(jìn)行字母或者數(shù)字的更替。順序號(hào)可以隨班次進(jìn)行歸零重新計(jì)算或者按照每天零點(diǎn)前后一天為分割線,進(jìn)行歸零處理后再順序計(jì)數(shù)。
圖1
窗體部分的設(shè)計(jì),以簡(jiǎn)明實(shí)用為原則,編程過(guò)程中,把需要用的各種控件圖片信息提前準(zhǔn)備好,列出程序窗體、控件對(duì)象的主要屬性設(shè)置。
編輯的標(biāo)準(zhǔn)模塊是公有的,可以被其他模塊或窗體調(diào)用的過(guò)程 Sub 和 函數(shù) Function編輯的類模塊是把一些 Sub 和 函數(shù) Function封裝起來(lái),類模塊在使用時(shí)要定義成變量。例如模塊中IO板卡(Driver)的IO狀態(tài)讀取,全局變量的設(shè)置(Global)等。
Type過(guò)程是工件類型選擇,如XXX型和YYY型,根據(jù)不同的選擇,可以生成不同的工件號(hào)碼,具體的工件號(hào)由下面的Updatemarkcode的過(guò)程生成。
Updatemarkcode的過(guò)程
根據(jù)工件類型,從數(shù)據(jù)庫(kù)中抓取不同字段作為工件號(hào)碼的前綴,需要計(jì)算日期的,可以采取按照1年中的第★★★天,可以簡(jiǎn)化日期的編寫(xiě),數(shù)據(jù)庫(kù)中已經(jīng)開(kāi)始根據(jù)工控機(jī)的當(dāng)天日期,如果是1月1日,則應(yīng)該是001,同時(shí)從當(dāng)天的零點(diǎn)開(kāi)始,計(jì)數(shù)第★★★★號(hào)工件,這個(gè)號(hào)碼是按4位數(shù),高位不足的補(bǔ)零。工件號(hào)碼=工件類型前綴+哪一天+當(dāng)天第幾個(gè)工件組成的字符串,這些字符串再發(fā)送給激光器的控制軟件,觸發(fā)激光器后,即可開(kāi)始打標(biāo)。
返修程序,在生成工件號(hào)碼時(shí),也是調(diào)用相同的Updatemarkcode的過(guò)程。
只是激光器打標(biāo)時(shí)工件因?yàn)槭欠敌藜?,打?biāo)的位置有可能移位,需要重新確定打標(biāo)位置后,即可開(kāi)始選擇返修程序。
生成的工件號(hào)碼在準(zhǔn)備打標(biāo)的文本框中顯示。
在數(shù)據(jù)庫(kù)中創(chuàng)建需要的各種表,建立tb_JulianDay的過(guò)程。
手動(dòng)、自動(dòng)、回原位、循環(huán)開(kāi)始、循環(huán)結(jié)束、打標(biāo)放行,以回原位為例列舉VB程序如下。
tb_MemoryData 是數(shù)據(jù)庫(kù)中表的內(nèi)容,在整個(gè)打標(biāo)循環(huán)中,工件在設(shè)備中的各個(gè)狀態(tài)被數(shù)據(jù)庫(kù)記錄和更新,如果自動(dòng)打標(biāo)完成,此程序執(zhí)行ChkInfor過(guò)程,把表中的自動(dòng)打標(biāo)完成狀態(tài)賦值0,將回零的狀態(tài)圖片顯示,通過(guò)標(biāo)準(zhǔn)模塊讀取IO板卡上的Home時(shí)的狀態(tài),如果狀態(tài)為1,則確定已經(jīng)回到原位,根據(jù)不同的工件類型,顯示不同的回原位提示。
程序編程結(jié)束后,可以測(cè)試是否能正常生成工件號(hào)碼,經(jīng)過(guò)變更工控機(jī)日期,工件號(hào)碼是否有變更。VB語(yǔ)言結(jié)構(gòu)簡(jiǎn)單,穩(wěn)定性好,在一般小型設(shè)備上使用經(jīng)濟(jì)效益佳。如果有新產(chǎn)品工藝增加,需要有專業(yè)人士熟悉掌握后,在后臺(tái)的開(kāi)發(fā)環(huán)境中,重新編譯生成新的軟件。因此,掌握此類編程語(yǔ)言對(duì)于生產(chǎn)工藝改進(jìn)、改善都是有益的。
TN249
A
1671-0711(2017)12(上)-0144-02