當(dāng)前位置:歐亞貿(mào)易網(wǎng) > 技術(shù)中心 > 所有分類(lèi)
| 基于VB與PLC的工業(yè)數(shù)據(jù)配料系統(tǒng) | 2020-01-15 |
| 摘要:針對(duì)現(xiàn)代工業(yè)行業(yè)廣泛應(yīng)用的稱(chēng)重配料系統(tǒng)管理問(wèn)題,提出了一種新的自動(dòng)配料系統(tǒng)開(kāi)發(fā)模式,采用Mi¬crosoft公司的高級(jí)計(jì)算機(jī)語(yǔ)言VB6.0與常用數(shù)據(jù)庫(kù)自動(dòng)配料系統(tǒng)Access2000開(kāi)發(fā)稱(chēng)重?cái)?shù)據(jù)配料系統(tǒng),結(jié)合SI-EMENS公司工業(yè)控制器PLC,通過(guò)計(jì)算機(jī)COM口串行通信方式組成工業(yè)控制自動(dòng)配料系統(tǒng)。該自動(dòng)配料系統(tǒng)在計(jì)算機(jī)上不僅可實(shí)現(xiàn)稱(chēng)重?cái)?shù)值的記錄、保存、查詢(xún)和歸檔等管理功能,還可以進(jìn)行工業(yè)工藝流程控制。本文重點(diǎn)介紹VB數(shù)據(jù)庫(kù)程序及VB與PLC通信程序的開(kāi)發(fā)過(guò)程。 對(duì)于自動(dòng)化生產(chǎn)線(xiàn)中的自動(dòng)稱(chēng)重配料系統(tǒng)或者單臺(tái)自動(dòng)稱(chēng)重設(shè)備,傳的自動(dòng)配料系統(tǒng)控制方法為PLC與RS485口直接通訊或者采用模擬量輸入、輸出模塊組態(tài)自動(dòng)配料系統(tǒng),這樣的自動(dòng)配料系統(tǒng)不僅成本高,而且編程調(diào)試比較復(fù)雜,人機(jī)交互界面較差。基于此問(wèn)題,我們開(kāi)發(fā)了一種經(jīng)濟(jì)型自動(dòng)稱(chēng)重配料系統(tǒng),主要控制界面由面向?qū)ο蟾呒?jí)語(yǔ)言VB6.0與數(shù)據(jù)庫(kù)自動(dòng)配料系統(tǒng)Access2000開(kāi)發(fā)完成,而工業(yè)控制器PLC執(zhí)行生產(chǎn)工藝控制,VB程序可編譯成獨(dú)立執(zhí)行EXE文件或者SETUP安裝文件,便于使用和移植。為了便于介紹,本文以單臺(tái)稱(chēng)重設(shè)備為例介紹該自動(dòng)配料系統(tǒng)的開(kāi)發(fā)方法。 1自動(dòng)配料系統(tǒng)主要任務(wù)及構(gòu)成 1.1自動(dòng)配料系統(tǒng)主要任務(wù) 當(dāng)設(shè)備接收到需執(zhí)行稱(chēng)重任務(wù)信號(hào)時(shí),稱(chēng)重裝置開(kāi)始執(zhí)行稱(chēng)重動(dòng)作,稱(chēng)重信息通過(guò)數(shù)據(jù)采集卡或者計(jì)算機(jī)COM1口被接收,然后通過(guò)VB程序?qū)⒃摂?shù)值寫(xiě)入用戶(hù)預(yù)定義的數(shù)據(jù)庫(kù)中,程序可以將該數(shù)據(jù)自動(dòng)添加到數(shù)據(jù)庫(kù)中去,數(shù)據(jù)庫(kù)可提供添加、查找、刪除和打印等管理功能,方便用戶(hù)操作管理數(shù)據(jù)。 1.2自動(dòng)配料系統(tǒng)構(gòu)成 稱(chēng)重通訊及配料系統(tǒng)由稱(chēng)重機(jī)械自動(dòng)配料系統(tǒng)和控制及配料系統(tǒng)組成。稱(chēng)重機(jī)械自動(dòng)配料系統(tǒng)主要由支撐架、升降氣缸、電子稱(chēng)和稱(chēng)臺(tái)支架等組成;控制及配料系統(tǒng)主要由工業(yè)計(jì)算機(jī)、PLC、電子稱(chēng)重傳感器和中間繼電器等組成,軟件自動(dòng)配料系統(tǒng)釆用Microsoft公司的VB6.0和Access2000,SIEMENS公司的STEP7V5.4。如果存在多臺(tái)電子稱(chēng),可通過(guò)網(wǎng)絡(luò)集線(xiàn)器組建EN-THERNET進(jìn)行485通信網(wǎng)絡(luò)擴(kuò)展,本文以單臺(tái)電子稱(chēng)232通信方式為例介紹自動(dòng)配料系統(tǒng)組成結(jié)構(gòu),如圖1所示。 工作控制計(jì)算機(jī) 圖1控制自動(dòng)配料系統(tǒng)構(gòu)成原理圖 .2VB程序開(kāi)發(fā) 經(jīng)濟(jì)型電子稱(chēng)的數(shù)據(jù)傳輸主要是串口通信,即電子稱(chēng)的輸出信號(hào)可以通過(guò)RS232口輸出,該通信協(xié)議正匹配工業(yè)計(jì)算機(jī)的COM口,對(duì)于獲取COM通信處理,我們使用VB中成熟的非標(biāo)準(zhǔn)控件MSComm,它具有事件驅(qū)動(dòng)和査詢(xún)2種通信方式。由于需要在程序事件發(fā)生時(shí)主控程序會(huì)被告知,因此采用事件驅(qū)動(dòng)的通信處理方法,對(duì)該控件對(duì)象的部分屬性依據(jù)電子稱(chēng)的實(shí)際通訊需求進(jìn)行賦值處理,就可以實(shí)現(xiàn)計(jì)算機(jī)與電子稱(chēng)的通訊連接。程序操作界面簡(jiǎn)單設(shè)置為登陸窗口,主要控制窗口及報(bào)表打印窗口,依據(jù)實(shí)際需要可進(jìn)行窗口擴(kuò)展。 為此,設(shè)計(jì)串口通信程序,MSComm通信程序舉例說(shuō)明如下: PrivateSubForm_Load(),在窗體加載事件中執(zhí)行如下代碼 WithMSComml .CommP°rt=l,設(shè)置串行口為COM1 .Settings="1200,n,7,1”,設(shè)置波特率為1200,無(wú)奇偶校驗(yàn),7位數(shù)據(jù)位,1位停止位 .InputMode—comlnputModeText'設(shè)置數(shù)據(jù)接收為字符串方式 .InputLen=0,讀取緩沖區(qū)的所有內(nèi)容 .RThreshold-1'每接收到1個(gè)字節(jié)就觸發(fā)一次On-Comm事件 .PortOpen=True,打開(kāi)串口 EndWith 3Access2000數(shù)據(jù)庫(kù)開(kāi)發(fā) 3.1數(shù)據(jù)庫(kù)功能與技術(shù)要求 數(shù)據(jù)庫(kù)自動(dòng)配料系統(tǒng)可實(shí)現(xiàn)數(shù)據(jù)的添加、刪除、査找和顯示等功能,數(shù)據(jù)表字段顯示日期時(shí)間、型號(hào)和質(zhì)量等信息。數(shù)據(jù)庫(kù)軟件結(jié)構(gòu)如圖2所示。 3.2數(shù)據(jù)庫(kù)開(kāi)發(fā)過(guò)程 首先要在Access中創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),命名為“BB”(可任意命名),然后創(chuàng)建ODBC數(shù)據(jù)源,打開(kāi)“ODBC數(shù)據(jù)源管理器”,單擊“添加按鈕”,在彈出的對(duì)話(huà)框中選擇MicrosoftAccessDriver(*.mdb),單擊“完成”按鈕,接下來(lái)設(shè)置數(shù)據(jù)源名為“AB”,選擇數(shù)據(jù)源鏈接的數(shù)據(jù)庫(kù),單擊“確定"按鈕就完成了創(chuàng)建。 在VB程序中,用ActiveX數(shù)據(jù)對(duì)象(簡(jiǎn)稱(chēng)ADO控件)鏈接數(shù)據(jù)庫(kù)。ADO技術(shù)是Mircrosoft公司開(kāi)發(fā)的數(shù)據(jù)庫(kù)應(yīng)用程序面向?qū)ο蟮男陆涌冢珹DO技術(shù)可以訪問(wèn)包括關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)在內(nèi)的所有文件自動(dòng)配料系統(tǒng),使應(yīng)用程序具有較好的靈活性和通用性,ADO中最主要的3個(gè)對(duì)象是Con¬nectionCommand和RecordsetoConnection對(duì)象主要用于設(shè)置訪問(wèn)數(shù)據(jù)源所需的鏈接;Command對(duì)象主要用于設(shè)置訪問(wèn)數(shù)據(jù)源所需的命令;Recordset對(duì)象主要用來(lái)存放從結(jié)果中取回的記錄,它可以瀏覽記錄,增加、修改、刪除記錄,并可將已經(jīng)修改的記錄回傳給數(shù)據(jù)源。采用使用代碼的方法來(lái)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的鏈接。在窗體的FORMLOAD事件中輸入如下主要代碼。 當(dāng)VB程序成功接收到稱(chēng)重?cái)?shù)據(jù)時(shí),可自動(dòng)寫(xiě)入用戶(hù)的數(shù)據(jù)庫(kù)中,用戶(hù)也可以在數(shù)據(jù)處理使用后再寫(xiě)入數(shù)據(jù)庫(kù)中。 4PLC程序開(kāi)發(fā) PLC程序開(kāi)發(fā)應(yīng)以實(shí)際工藝流程和工藝技術(shù)指標(biāo)為條件,簡(jiǎn)單介紹一種自動(dòng)稱(chēng)重工藝流程。當(dāng)PLC接收到稱(chēng)重裝置執(zhí)行信號(hào)時(shí),稱(chēng)重氣缸升起,電子稱(chēng)執(zhí)行稱(chēng)重,數(shù)據(jù)傳送,稱(chēng)重完畢,稱(chēng)重氣缸下降,等待下一次稱(chēng)量。此外PLC程序開(kāi)發(fā)簡(jiǎn)單,讀者可自行開(kāi)發(fā)設(shè)計(jì),還可以根據(jù)生產(chǎn)實(shí)際需要開(kāi)發(fā)HMI界面等功能。 5VR程序與PLC程序的關(guān)聯(lián)實(shí)現(xiàn) 5.1VB與PLC獨(dú)立控制 如果稱(chēng)重配料系統(tǒng)是開(kāi)環(huán)控制類(lèi)型,則VB程序只需記錄數(shù)據(jù)到數(shù)據(jù)庫(kù)中即可,無(wú)須反饋給PLC指令。也就是說(shuō)VB和PLC控制是分別獨(dú)立的控制自動(dòng)配料系統(tǒng),各行其責(zé),它們之間無(wú)須進(jìn)行通信處理。 5.2VB與PLC聯(lián)合控制 如果稱(chēng)重配料系統(tǒng)是閉環(huán)控制類(lèi)型,則VB成功接收數(shù)據(jù)后需要向PLC發(fā)送指令,以驅(qū)動(dòng)PLC內(nèi)部程序,此時(shí)需要上位機(jī)PC與下位機(jī)PLC實(shí)現(xiàn)通信連接。繼續(xù)使用前文介紹過(guò)的MSComm控件來(lái)實(shí)現(xiàn)VB與PLC的通信。計(jì)算機(jī)與西門(mén)子PLC進(jìn)行通信時(shí)必須遵守西門(mén)子PLC300的PPI(PointtoPoint)協(xié)議,該通訊協(xié)議采用主從式的通訊方式,一次讀寫(xiě)操作的步驟為: 1)PLC設(shè)備要求發(fā)送數(shù)據(jù)時(shí),計(jì)算機(jī)會(huì)發(fā)送一組帶有前導(dǎo)碼的字符串。在前導(dǎo)碼之后便是站號(hào),站號(hào)之后便是要設(shè)備解讀的命令或數(shù)據(jù); 2)當(dāng)PLC設(shè)備收到要求字符串并經(jīng)過(guò)判讀確定后,便會(huì)送出計(jì)算機(jī)所要求的數(shù)據(jù)。同時(shí),數(shù)據(jù)被送出時(shí)會(huì)在數(shù)據(jù)之前加上前導(dǎo)碼與站號(hào),計(jì)算機(jī)也以此前號(hào)碼與站號(hào)辨別數(shù)據(jù)來(lái)自何處; 3)計(jì)算機(jī)端收到設(shè)備發(fā)送回來(lái)的字符串即進(jìn)行解讀檢査的操作。當(dāng)檢查完成后,便再送出一個(gè)確定的字符串給設(shè)備,用以說(shuō)明計(jì)算機(jī)端已成功接收到字符串;而若發(fā)送失敗,計(jì)算機(jī)也會(huì)在所送的字符串中要求設(shè)備重新發(fā)送數(shù)據(jù)。 通過(guò)以上步驟我們可以看出,計(jì)算機(jī)和PLC通過(guò)收發(fā)2次數(shù)據(jù),才完成1次數(shù)據(jù)的讀寫(xiě)。數(shù)據(jù)通信字符串流動(dòng)情況如圖3所示。 庫(kù)配料系統(tǒng)與PLC控制自動(dòng)配料系統(tǒng)相組合,方便地實(shí)現(xiàn)了數(shù)據(jù)通訊功能和生產(chǎn)工藝要求。這種稱(chēng)重配料系統(tǒng)具有開(kāi)發(fā)成本低廉、難度低和可操作性強(qiáng)的特點(diǎn)。通過(guò)實(shí)際生產(chǎn)表明,該自動(dòng)配料系統(tǒng)穩(wěn)定可靠,并且可以根據(jù)實(shí)際需求進(jìn)行程序升級(jí)和功能擴(kuò)展,因此該自動(dòng)配料系統(tǒng)模式適用于多種形式的稱(chēng)重場(chǎng)合,值得推廣應(yīng)用。 | |