基于VB6.0的港口運(yùn)料系統(tǒng)設(shè)計(jì)
摘要:針對(duì)港口貨船的焦炭稱量問題,設(shè)計(jì)基于Visual Basic6.0的港口運(yùn)料系統(tǒng)。上位機(jī)通過RS 232串口發(fā)出控制命令,控制下位機(jī)(散料秤)稱量貨物,再把數(shù)據(jù)實(shí)時(shí)返回到上位機(jī),實(shí)現(xiàn)上位機(jī)和下位機(jī)的實(shí)時(shí)通信和上位機(jī)對(duì)下位機(jī)的控制。為了使得系統(tǒng)在工業(yè)控制應(yīng)用中的功能更加完善,上位機(jī)還具備訪問數(shù)據(jù)庫(kù)、實(shí)時(shí)更新數(shù)據(jù)庫(kù)以及打印報(bào)表等功能。
關(guān)鍵詞:VB6.0;港口運(yùn)料系統(tǒng);RS 232;串行通信
港口作為一個(gè)繁忙裝卸貨物的地方,往往聯(lián)系著一個(gè)區(qū)域或工廠的經(jīng)濟(jì)發(fā)展和生產(chǎn),為了搬運(yùn)貨物的效率和減輕人的勞動(dòng)負(fù)擔(dān),通過電腦自動(dòng)控制的方法來實(shí)現(xiàn)貨船貨物的準(zhǔn)確稱量。本文基于Visual Basic6.0設(shè)計(jì)出一套港口運(yùn)料系統(tǒng),運(yùn)用港口運(yùn)料系統(tǒng)可以實(shí)現(xiàn)在控制室完成焦炭的稱量和打印報(bào)表等一系列操作,不僅節(jié)省了人力物力,而且具有操作簡(jiǎn)便和高效準(zhǔn)確的特點(diǎn)。
1 系統(tǒng)硬件設(shè)計(jì)方案
港口運(yùn)料系統(tǒng)的基本設(shè)計(jì)方案是通過上位機(jī)的Visual Basic6.0編寫控制主程序,使用串行通信控件MSComm,通過RS 232傳輸線傳輸控制信號(hào),總體結(jié)構(gòu)分為上、下位機(jī)。上位機(jī)主要包括工控計(jì)算機(jī),下位機(jī)分別是6臺(tái)散料秤。工控計(jì)算機(jī)主要完成數(shù)據(jù)的匯集和加工,以下位機(jī)采集的數(shù)據(jù)為輸入,以統(tǒng)計(jì)加工后的數(shù)據(jù)為輸出(即報(bào)表,包括原始記錄單、焦炭計(jì)量對(duì)比表和計(jì)量單)。下位機(jī)主要完成數(shù)據(jù)的實(shí)時(shí)采集,以稱量的焦炭數(shù)據(jù)為輸入(記錄下每一秤的數(shù)據(jù)),以稱量的實(shí)時(shí)數(shù)據(jù)和記錄的累計(jì)量為輸出。上位機(jī)和下位機(jī)之間通過串口連接,實(shí)際的運(yùn)行中,通信距離往往大于15 m而使得RS 232的通信受到限制,可使用RS 485傳輸設(shè)備,它的通信距離可達(dá)1 200 m,完全可以滿足大多數(shù)港口的通信距離要求。使用泓格的I-7000系列的7520模塊轉(zhuǎn)換RS 232和RS 485之間的信號(hào)標(biāo)準(zhǔn)電位。
2 監(jiān)控軟件系統(tǒng)框架
港口運(yùn)料系統(tǒng)采用VB多窗口模式組織,菜單操作使界面簡(jiǎn)單直觀。系統(tǒng)功能共分4部分:系統(tǒng)管理、系統(tǒng)工具、系統(tǒng)查看和退出,系統(tǒng)結(jié)構(gòu)如圖1所示。
3 系統(tǒng)的具體設(shè)計(jì)和實(shí)現(xiàn)
系統(tǒng)軟件主要分為4個(gè)模塊,包括:通信模塊、數(shù)據(jù)庫(kù)模塊、邏輯控制模塊、操作界面模塊,總體結(jié)構(gòu)如圖2所示。
3.1 通信模塊設(shè)計(jì)
通信部分主要涉及的功能有:
(1)系統(tǒng)通信管理。用戶通過友好人機(jī)界面設(shè)置通信的參數(shù),包括使用的串口號(hào)、傳輸?shù)牟ㄌ芈?、傳輸校?yàn)類型等,并對(duì)通信線路進(jìn)行查錯(cuò)。
(2)主控界面上對(duì)下位機(jī)的操作。用戶通過主控界面對(duì)散料秤的操作,由通信模塊傳遞給下位機(jī),并由下位機(jī)控制散料秤稱重;稱重得到實(shí)時(shí)數(shù)據(jù)、累計(jì)重量以及秤編號(hào)、報(bào)警信息等參數(shù)傳輸?shù)缴衔粰C(jī)。關(guān)鍵代碼如下:
在港口運(yùn)料系統(tǒng)中,上位機(jī)首先設(shè)定了一個(gè)發(fā)送的數(shù)組:
Dim outbytebur(1 To 7)As Byte
同時(shí),上位機(jī)也設(shè)置了一個(gè)byte型的動(dòng)態(tài)數(shù)組,供接收數(shù)據(jù)使用:
Dim inbytebuf()As Byte
如果選擇一號(hào)稱斗,相應(yīng)的關(guān)鍵代碼為:
所有發(fā)送字節(jié)的校驗(yàn)碼
bcc=tmpbytebuf(1)Xor tmpbytebuf(2)Xor tmpbytebuf(3)Xor tmpbytebuf(4)Xor tmpbytebuf(5)Xor tmpbytebuf(6)
發(fā)送命令字節(jié)
tmpbytebuf(7)=bcc
MSComm1.OutBufferCount=0
MSComm1.Output=tmpbytebuf
MSComm1.InBufferCount=0
延時(shí)以便接收數(shù)據(jù)
Modulel.timedelay(50)
這里用到了VB6.0開發(fā)環(huán)境中的MSComm通信控件,利用它可以方便地進(jìn)行計(jì)算機(jī)串口的通信管理。
3.2 數(shù)據(jù)庫(kù)模塊設(shè)計(jì)
數(shù)據(jù)庫(kù)模塊主要負(fù)責(zé)對(duì)下位機(jī)提取到數(shù)據(jù)和用戶的一些相關(guān)信息數(shù)據(jù)進(jìn)行存儲(chǔ),備份,整理等工作。數(shù)據(jù)庫(kù)模塊主要涉及的功能有:
(1)存儲(chǔ)下位機(jī)傳送到上位機(jī)的數(shù)據(jù)以及船號(hào)、品名等相關(guān)信息;
(2)存儲(chǔ)系統(tǒng)用戶的設(shè)置和用戶登錄的管理信息;
(3)歷史數(shù)據(jù)查詢和打印。關(guān)鍵代碼如下所示:
3.3 邏輯控制模塊設(shè)計(jì)
控制模塊主要功能是通過軟件實(shí)現(xiàn)上位機(jī)對(duì)下位機(jī)的控制,全局把握系統(tǒng)的運(yùn)行。包括如何顯示數(shù)據(jù),存取數(shù)據(jù)及相關(guān)報(bào)表的制作和打印等。該模塊功能就是將系統(tǒng)中的界面,數(shù)據(jù)庫(kù)等模塊有機(jī)的結(jié)合在一起。程序流程圖如圖3所示。
3.4 操作界面模塊設(shè)計(jì)
操作界面模塊主要是為了實(shí)現(xiàn)軟件的友好人機(jī)界面,使軟件操作人員能方便地操作整個(gè)系統(tǒng)。操作界面不僅方便操作,清晰地顯示數(shù)據(jù),而且具有動(dòng)畫效果。使用戶更加方便地了解系統(tǒng)運(yùn)行的過程。港口運(yùn)料系統(tǒng)的主控界面如圖4所示。
4 結(jié)語
利用VB6.0開發(fā)港口運(yùn)料系統(tǒng)的設(shè)計(jì)方案,分別介紹了其硬件設(shè)計(jì)方案,系統(tǒng)軟件的通信技術(shù),數(shù)據(jù)庫(kù)管理和界面設(shè)計(jì)。該系統(tǒng)具有界面友好,操作簡(jiǎn)單,數(shù)據(jù)處理方便等優(yōu)點(diǎn),已經(jīng)應(yīng)用于某港口焦炭運(yùn)料項(xiàng)目,大大降低了港口工人的勞動(dòng)強(qiáng)度,并且可以擴(kuò)展應(yīng)用于廠礦、倉(cāng)庫(kù)等貨物裝卸,具有良好的應(yīng)用前景。
評(píng)論