此文詳細(xì)介紹了在Windows98環(huán)境下使用Visual Basic6.0開(kāi)發(fā)出的一套實(shí)用的配料控制器系統(tǒng)。該配料控制系統(tǒng)主要包括了數(shù)據(jù)的管理和處理、數(shù)據(jù)的接收與發(fā)送和組態(tài)軟件通訊的DDE。同時(shí)控制系統(tǒng)實(shí)現(xiàn)了各配料控制設(shè)備間的信號(hào)通訊和數(shù)據(jù)管理,具有很高的實(shí)用性和可靠性。
如今配料控制幾乎涉及到工業(yè)生產(chǎn)的各個(gè)領(lǐng)域,特別是在化工領(lǐng)域中尤為廣泛。然而我國(guó)在該領(lǐng)域中還是以人工方式為主,機(jī)械自動(dòng)化為輔的一種生產(chǎn)方式。所以稱(chēng)重精度比較低并嚴(yán)重影響了生產(chǎn)效率,同時(shí)有些化工原料還對(duì)人體健康有嚴(yán)重的危害。所以對(duì)配料控制系統(tǒng)自動(dòng)化生產(chǎn)的研究和開(kāi)發(fā)已經(jīng)成為一個(gè)非常迫切的問(wèn)題。
隨著微機(jī)性能、價(jià)格和軟件水平的不斷提高,開(kāi)發(fā)出一套適合實(shí)際應(yīng)用的微機(jī)配料控制系統(tǒng)已經(jīng)不再是一件很困難的事了。
1. 配料控制器系統(tǒng)的組成
在介紹配料控制器組成前先介紹一下生產(chǎn)的流程。圖1是整個(gè)配料系統(tǒng)的實(shí)際生產(chǎn)流程圖。
在實(shí)際生產(chǎn)中先把加料斗1原料加入到稱(chēng)重斗中,經(jīng)稱(chēng)重斗稱(chēng)重后直接放入到校核斗中然后在加入下一個(gè)加料斗原料,以此類(lèi)推。在所有原料都稱(chēng)完后再在校核斗中校核一下所有原料的重量,然后再加入到混合斗中進(jìn)行混合,混合完后把混合料放入到包裝斗中進(jìn)行包裝,包裝完后就直接輸出了成品。
實(shí)現(xiàn)上述生產(chǎn)控制所需要的系統(tǒng)硬件組成是PC機(jī)、全功能多組分重量配料控制器、稱(chēng)重傳感器、RS232/485轉(zhuǎn)接卡、RS—485總線(xiàn)、PLC。其中全功能多組分重量配料控制器應(yīng)配備雙方向的BCD、RS—485、D/A轉(zhuǎn)化等數(shù)字通信接口,還應(yīng)有PLC專(zhuān)用接口。如美國(guó)UNIPULSE公司生產(chǎn)的F800和F701全功能多組分重量配料控制器(以下簡(jiǎn)稱(chēng)配料控制器)。軟件組成是VB6.0管理控制軟件、Access2000數(shù)據(jù)庫(kù)、組態(tài)王軟件。
Microsoft公司的VB6.0是當(dāng)今世界上最優(yōu)秀的開(kāi)發(fā)工具之一,它擁有強(qiáng)大的數(shù)據(jù)處理功能和報(bào)表打印功能,同時(shí)能方便快速的與外部進(jìn)行數(shù)據(jù)通訊。本套配料系統(tǒng)設(shè)計(jì)的通訊實(shí)現(xiàn)的功能就是利用VB6.0開(kāi)發(fā)出來(lái)的,其具有實(shí)用性能好,可靠性高的特點(diǎn)。
使用RS232/485轉(zhuǎn)接卡,提高了系統(tǒng)的抗干擾性,同時(shí)增加了信號(hào)的傳輸距離和增強(qiáng)了外掛通訊設(shè)備的能力。從而解決了PC機(jī)一個(gè)Com口與多個(gè)配料控制器通訊的問(wèn)題。
配料控制器主要與VB程序和PLC程序交換數(shù)據(jù)(包括發(fā)送和接收)。
PLC主要特點(diǎn)是穩(wěn)定性好、可靠性高、能在很惡劣的環(huán)境下運(yùn)行。在本系統(tǒng)中主要用其去控制稱(chēng)重傳感器,并與配料控制器和組態(tài)軟件進(jìn)行數(shù)據(jù)交換。
稱(chēng)重傳感器(與配料控制器配合使用)
在數(shù)據(jù)交換方面組態(tài)軟件具有強(qiáng)大的功能,它能很方便的與PLC進(jìn)行實(shí)時(shí)的數(shù)據(jù)交換。并且它與VB程序能很方便的進(jìn)行DDE(動(dòng)態(tài)數(shù)據(jù)交換)連接。同時(shí)用DDE方式來(lái)代替總線(xiàn)傳輸方式可以大大減少外部的干擾,提高系統(tǒng)的可靠性。并在很大程度上減少了整個(gè)系統(tǒng)的成本,同時(shí)也降低了系統(tǒng)的維護(hù)成本。
下面主要講述了控制系統(tǒng)的整個(gè)數(shù)據(jù)流程:
首先通過(guò)PC機(jī)中VB管理控制軟件設(shè)定各配料不同原料的各項(xiàng)值,然后通過(guò)PC機(jī)的Com口和RS232/485總線(xiàn)把值傳入到配料控制器中;然后由這些值通過(guò)PLC去控制其它部分(如各個(gè)斗的閥門(mén)開(kāi)關(guān)),PLC同時(shí)接收控制部分的信號(hào)并把它傳給配料控制器和組態(tài)軟件;然后通過(guò)PC組態(tài)軟件的DDE連接通知VB程序去讀取配料控制器的數(shù)據(jù);最后對(duì)這些數(shù)據(jù)進(jìn)行分析和處理。在這里VB程序和PC組態(tài)軟件是放在同一臺(tái)PC機(jī)中的,它們的DDE連接是通過(guò)軟件給予實(shí)現(xiàn)的。
2. 配料控制器軟件實(shí)現(xiàn)
下面主要介紹的是VB管理控制軟件的具體實(shí)現(xiàn)過(guò)程,其主要功能是實(shí)現(xiàn)與配料控制器的數(shù)據(jù)交換、與組態(tài)軟件的DDE連接和數(shù)據(jù)交換、同時(shí)還要實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理。
在實(shí)際操作中用七大模塊來(lái)實(shí)現(xiàn)上述所要求的功能,其分別是:初始化模塊、管理員和用戶(hù)管理模塊、配料參數(shù)設(shè)置模塊、數(shù)據(jù)發(fā)送模塊、組態(tài)軟件DDE模塊、數(shù)據(jù)接收和處理模塊、報(bào)表打印模塊。下面詳細(xì)的介紹了各個(gè)模塊的主要實(shí)現(xiàn)的功能。
2.1 配料控制系統(tǒng)初始化模塊
系統(tǒng)初始化模塊主要是對(duì)本軟件中的串行通訊控件Mscomm和配料控制器的各項(xiàng)相關(guān)參數(shù)進(jìn)行設(shè)置,即設(shè)置好雙方的通訊協(xié)議,同時(shí)應(yīng)設(shè)置好配料控制器的識(shí)別地址ID。
對(duì)于Mscomm控件的初始化主要是對(duì)以下幾個(gè)屬性和方法的設(shè)定,如下:
Settings 設(shè)置或返回通信數(shù)據(jù)格式,包括波特率、奇偶校驗(yàn)碼、停止位;
CommPort 設(shè)置并返回通信端口號(hào);
PortOpen 設(shè)置或返回通信端口的狀態(tài);
InPutlen 接收緩沖區(qū)讀取的字符數(shù);
InBuffercount 清空接收緩沖區(qū)讀取的字符;
其中波特率應(yīng)與配料控制器的波特率設(shè)置的一樣。
同時(shí)為提高通訊的可靠性,還應(yīng)用Mscomm控件的Oncomm事件捕獲通訊事件,并檢測(cè)和處理通訊中的錯(cuò)誤。
對(duì)于配料控制器的初始化主要是設(shè)置其ID地址。因?yàn)樵谕ㄓ嵾^(guò)程中,程序是根據(jù)不同的地址來(lái)尋找相應(yīng)的配料控制器,然后再進(jìn)行相應(yīng)的操作。與此同時(shí)還需把所有的配料控制器的波特率設(shè)置成與Mscomm控件的波特率一樣,相應(yīng)的配料控制器中的地址應(yīng)與程序中的設(shè)定一樣。
2.2 管理員和用戶(hù)管理模塊
為了提高軟件應(yīng)用安全性,一般軟件都應(yīng)考慮用戶(hù)的權(quán)限,以防止其他不相干人員修改參數(shù)而帶來(lái)的損失。本模塊功能是參照Windows 2000的管理模式的,即有一個(gè)管理員,他的權(quán)限能修改任何參數(shù),如有權(quán)刪除和修改一般用戶(hù)的信息,創(chuàng)建新的用戶(hù)名和密碼等功能。一般用戶(hù)只能修改自己所創(chuàng)建的參數(shù),而不允許修改其他用戶(hù)信息。該模塊的設(shè)置大大提高了本系統(tǒng)的安全性。
2.3 配料參數(shù)設(shè)置模塊
一種配料往往都包含幾種甚至幾十種原料,而且每種原料的各項(xiàng)指標(biāo)又不一樣(如重量值,上下偏差等),所以必須對(duì)每種原料的各項(xiàng)指標(biāo)分別進(jìn)行設(shè)置,然后再根據(jù)這些值控制配料的配制過(guò)程。本模塊就是為了具體實(shí)現(xiàn)這種功能的。在本模塊中用戶(hù)可以添加新的配料和修改原配料,但不能修改已經(jīng)配過(guò)料的配料。這就避免了因人為的誤操作而引起數(shù)據(jù)的丟失,保證了數(shù)據(jù)的完整性,使得數(shù)據(jù)管理更加合理和規(guī)范。同時(shí)在未配過(guò)料的配料中用戶(hù)可以對(duì)配料各項(xiàng)值進(jìn)行增加、修改、刪除等操作。這樣能給用戶(hù)以極大的方便及靈活性。
2.4 稱(chēng)重配料數(shù)據(jù)發(fā)送模塊
本模塊主要的功能就是實(shí)現(xiàn)把用戶(hù)設(shè)定的配料信息通過(guò)Com口傳到配料控制器中,再通過(guò)配料控制器進(jìn)行其他具體操作。
在本系統(tǒng)中數(shù)據(jù)發(fā)送的好壞直接影響著配料的質(zhì)量,而質(zhì)量的好壞則可以直接評(píng)價(jià)軟件控制系統(tǒng)的優(yōu)或劣。本模塊采取了一些手段以用來(lái)提高數(shù)據(jù)發(fā)送的可靠性。
首先,本模塊應(yīng)用串行通訊控件Mscomm的OnComm事件來(lái)捕獲通訊事件,檢測(cè)和處理通訊中出現(xiàn)的錯(cuò)誤。用CommEvent屬性來(lái)保存OnComm事件發(fā)生的錯(cuò)誤或事件的數(shù)值代碼,同時(shí)對(duì)其進(jìn)行相應(yīng)的處理。
其次,在打開(kāi)通訊端口時(shí)要檢測(cè)其端口是否已關(guān)閉,未關(guān)閉的先把其關(guān)閉后再打開(kāi),以防止傳輸時(shí)把A地址的信號(hào)傳到B地址上的配料控制器中。同時(shí)在傳輸前要檢測(cè)其端口是否已打開(kāi),以免發(fā)生通訊錯(cuò)誤。最后在通訊完之后,應(yīng)立即關(guān)閉通訊端口。
最后,因?yàn)樵赪indows操作系統(tǒng)中,兩次的通訊間隔必須是大于55ms,如果間隔小于55ms,則很可能會(huì)引起通訊的混亂,甚至?xí)鹣到y(tǒng)的癱瘓。所以在此模塊中添加了一延時(shí)功能。
通過(guò)以上手段,使得本系統(tǒng)的可靠性得到了很
大的提高。
2.5 組態(tài)軟件DDE模塊
本模塊是本系統(tǒng)的最重要的一個(gè)環(huán)節(jié)。因?yàn)樗呛髢赡K正常運(yùn)行的前提條件。
它的主要功能是接收幾個(gè)稱(chēng)重傳感器的到位信號(hào)。稱(chēng)重傳感器的到位信號(hào)是通過(guò)PLC傳到組態(tài)軟件中,然后再通過(guò)組態(tài)軟件的DDE與VB控制程序相聯(lián)接。在DDE聯(lián)接中組態(tài)軟件與VB控制程序的到位信號(hào)是一一對(duì)應(yīng)的。即如果傳感器1的到位信號(hào)到達(dá)組態(tài)軟件中時(shí),VB控制程序就同時(shí)去讀取傳感器1所對(duì)應(yīng)的配料控制器的值。這樣就很好的保證了信號(hào)的實(shí)時(shí)性和接收到數(shù)據(jù)的準(zhǔn)確性。同時(shí)提高了系統(tǒng)的可靠性和降低了系統(tǒng)的誤差。
2.6 數(shù)據(jù)接收和處理模塊
本模塊的主要功能就是接收配料控制器的數(shù)據(jù),即實(shí)際配方過(guò)程中的各項(xiàng)指標(biāo)值。這些值的接收使用戶(hù)能很清楚的知道自己產(chǎn)品的生產(chǎn)狀況。
該部分與發(fā)送數(shù)據(jù)模塊一樣也涉及到數(shù)據(jù)采集的可靠性問(wèn)題。在該模塊除采用以上模塊的三種手段外在接收緩沖區(qū)數(shù)據(jù)時(shí)還設(shè)置了判斷其達(dá)到一定位數(shù)時(shí)才去讀取數(shù)據(jù),這樣能避免接收到許多干擾信號(hào)。
數(shù)據(jù)的處理不僅要把接收到的數(shù)據(jù)放到相應(yīng)的數(shù)據(jù)表中,如得到原料實(shí)際值的數(shù)據(jù)放到原料消耗表里,得到的包裝數(shù)據(jù)應(yīng)把它放到包裝數(shù)據(jù)表中等;還要對(duì)這些得到的數(shù)據(jù)進(jìn)行計(jì)算處理,如根據(jù)得到的值算出原料的實(shí)際消耗量和耗料率。這樣就大大提高了用戶(hù)的工作效率。
2.7 配料報(bào)表打印模塊
在實(shí)際的生產(chǎn)過(guò)程中,及時(shí)的獲取生產(chǎn)數(shù)據(jù)就能及時(shí)的反映出生產(chǎn)的狀況,用戶(hù)就可以根據(jù)獲得的狀況采取一些必要的操作。同時(shí)用戶(hù)也可能想統(tǒng)計(jì)以前某天、某周、某月、某年的各種生產(chǎn)數(shù)據(jù)時(shí)本模塊就能幫助用戶(hù)很好的完成這些操作。本模塊是按日、周、月、年統(tǒng)計(jì)各種不同的生產(chǎn)數(shù)據(jù),這些數(shù)據(jù)包含了許多不同的報(bào)表,比如用戶(hù)想看某一天生產(chǎn)出多少袋產(chǎn)品時(shí)可以選擇打印包裝表等。同時(shí)有些生產(chǎn)數(shù)據(jù)是由配料控制儀表用圖表方式打印出來(lái)的,這樣在很大程度上滿(mǎn)足了不同用戶(hù)的需求。本模塊在很大程度上節(jié)省了用戶(hù)廠(chǎng)家管理成本。
3. 結(jié)束語(yǔ) 本文所設(shè)計(jì)的這套配料控制器系統(tǒng)完全符合稱(chēng)重配料領(lǐng)域的實(shí)際要求,并具有較高的可靠性?,F(xiàn)已應(yīng)用于國(guó)內(nèi)多家從事配料廠(chǎng)家的實(shí)際生產(chǎn)中。
參考文獻(xiàn)
1. David Jung等著 前導(dǎo)工作室 譯.Visual Basic 6開(kāi)發(fā)人員參考手冊(cè),機(jī)械工業(yè)出版社,2000.1
2. 范逸之,Visual Basic 與RS232串行通訊控制,中國(guó)青年出版社,2000
3. 組太王自動(dòng)化使用手冊(cè),北京亞控自動(dòng)配料軟件及系統(tǒng)科技有限公司,1999
|