介紹了鄂鋼地磅計(jì)量系統(tǒng)的硬軟件結(jié)構(gòu),利用計(jì)量軟件并使用VB控件,實(shí)現(xiàn)了地磅電子流水記錄。
1 .前言
鄂鋼使用的地磅計(jì)量系統(tǒng)均配置兩臺(tái)打印機(jī), 一臺(tái)打印票據(jù),一臺(tái)打印流水,每進(jìn)行一次計(jì)量操作, 都會(huì)打印一條流水信息,記錄計(jì)量時(shí)間、流水號(hào)、發(fā)貨 單位、收貨單位和毛重皮重等信息,通過(guò)查詢這些紙 質(zhì)記錄,從而查詢計(jì)量信息。通過(guò)編寫(xiě)計(jì)量軟件程 序,實(shí)現(xiàn)了計(jì)量員通過(guò)軟件查詢功能查詢計(jì)量數(shù)據(jù), 從而取消了流水打印機(jī),這樣不僅節(jié)約了打印機(jī),還 節(jié)約了各種耗材。
2.計(jì)量系統(tǒng)簡(jiǎn)介
2. 1 硬件結(jié)構(gòu)
計(jì)量站通過(guò)計(jì)算機(jī)進(jìn)行計(jì)量作業(yè),計(jì)算機(jī)與地磅通過(guò)稱重顯示表進(jìn)行通訊,采集重量數(shù)據(jù);通過(guò)在 計(jì)算機(jī)上加裝視頻監(jiān)控卡采集過(guò)秤時(shí)的現(xiàn)場(chǎng)狀況;利 用在汽車(chē)衡兩端加裝冷金屬紅外探測(cè)器來(lái)判斷汽車(chē) 過(guò)衡的位置信息,I/O卡用來(lái)接收從冷金屬探測(cè)器傳 遞過(guò)來(lái)的探測(cè)信號(hào);網(wǎng)卡用于與其它計(jì)量計(jì)算機(jī)進(jìn)行 通訊。其硬件結(jié)構(gòu)如圖1所示。
2.2軟件結(jié)構(gòu)
計(jì)量系統(tǒng)的軟件由數(shù)據(jù)采集、視頻采集、紅外處理、 打印輸出、防作弊、數(shù)據(jù)計(jì)量和數(shù)據(jù)統(tǒng)計(jì)共7部分組成。
數(shù)據(jù)采集部分主要負(fù)責(zé)讀取稱重顯示表所顯示 的計(jì)量數(shù)據(jù)。它主要通過(guò)COM 口 RS232通訊來(lái)完 成。計(jì)量數(shù)據(jù)被讀取后,用于顯示在計(jì)量界面和計(jì)毛計(jì)皮時(shí)的數(shù)據(jù)處理。
視頻采集部分的作用是對(duì)計(jì)量界面進(jìn)行抓圖,其 中包含各種計(jì)量信息和車(chē)頭車(chē)尾的圖片,用來(lái)和流水 信息進(jìn)行比較。
紅外處理部分主要用于接收I/O卡的信息,當(dāng)車(chē) 輛不完全在秤臺(tái)上時(shí),計(jì)量畫(huà)面上的左越界和右越界 的燈就會(huì)變色,同時(shí)在計(jì)量時(shí)彈出提示信息左越界或 右越界,不能計(jì)量。
打印輸出部分包括流水打印和票據(jù)打印,流水打 印在連續(xù)紙上打印各種流水信息,用于查詢和與圖片 進(jìn)行比較,票據(jù)打印可打印標(biāo)準(zhǔn)票據(jù),用于結(jié)算。
防作弊部分的作用是:每輛汽車(chē)第一次計(jì)皮重時(shí) 均寫(xiě)入皮重庫(kù),以后再進(jìn)行計(jì)量時(shí),都會(huì)將當(dāng)前皮重與 皮重庫(kù)中的歷史皮重進(jìn)行比較,當(dāng)超過(guò)一定范圍時(shí),計(jì)量就會(huì)彈出對(duì)話框提示皮重超差,不予計(jì)量。如果需 要計(jì)量,則需要管理員對(duì)皮重進(jìn)行解鎖后方可進(jìn)行。
數(shù)據(jù)計(jì)量部分包括計(jì)毛重和計(jì)皮重。計(jì)毛重時(shí), 首先判斷車(chē)輛是否超出邊界,當(dāng)前重量是否超出量 程,當(dāng)前重量顯示值是否合法,再進(jìn)行計(jì)量性質(zhì)的判 斷(進(jìn)公司不可先計(jì)皮重,出公司不可先計(jì)毛重),檢 查計(jì)量信息是否完整,確定直接定皮重時(shí)搜索記錄的 允許時(shí)間間隔,當(dāng)判斷為進(jìn)公司時(shí),直接計(jì)毛重,將計(jì) 量信息寫(xiě)入文件,抓取計(jì)量圖片,判斷為出公司時(shí),搜 索對(duì)應(yīng)車(chē)牌號(hào)皮重,計(jì)算出凈重,然后將計(jì)量信息寫(xiě) 入文件,打印票據(jù),通過(guò)聲卡輸出提示司機(jī)計(jì)量完畢, 最后進(jìn)行流水信息打印。計(jì)皮重時(shí),開(kāi)始的判斷與計(jì) 毛重一樣,在檢查完輸入信息是否規(guī)范后要進(jìn)行防作 弊比較,如超出允許誤差范圍則提示后退出,如果正 常就進(jìn)行下一步的判斷,計(jì)量性質(zhì)為出公司時(shí)直接計(jì) 皮重,將計(jì)量信息寫(xiě)入文件,抓取計(jì)量圖片,計(jì)量性質(zhì) 為進(jìn)公司時(shí),搜索對(duì)應(yīng)車(chē)牌號(hào)毛重,計(jì)算出凈重,計(jì)量 信息寫(xiě)入文件,打印票據(jù),通過(guò)聲卡輸出提示司機(jī)計(jì) 量完畢,最后進(jìn)行流水信息打印。
數(shù)據(jù)統(tǒng)計(jì)部分可以對(duì)每天或者每月的計(jì)量信息 進(jìn)行分類(lèi)統(tǒng)計(jì),并形成報(bào)表。
3.流水電子化的實(shí)現(xiàn)
計(jì)量程序使用Visual Basic6. 0編寫(xiě)。首先在 程序中添加一個(gè)新窗體“form2”在主計(jì)量畫(huà)面建立 一個(gè)按鈕,按鈕命名為“流水查詢”用于打開(kāi)新建窗 體;根據(jù)流水需要在Form_Load ()中設(shè)計(jì)相應(yīng)的表 頭;在工具欄添加MSFlexGrid控件和CommonDialog 控件,MSFlexGrid控件可以顯示網(wǎng)格數(shù)據(jù),Common-Dialog 控件提供一組標(biāo)準(zhǔn)的操作對(duì)話框,進(jìn)行諸如打 開(kāi)和保存文件、設(shè)置打印選項(xiàng)、選擇顏色和字體等操 作,用它來(lái)選擇相應(yīng)的文件。程序如下:
ComDlgl. DialogTitle ="打開(kāi)計(jì)量數(shù)據(jù)文件"
ComDlgl. Filter ="計(jì)量數(shù)據(jù)文件(* . mqd) I * . mqd"
*利用CommonDialog控件選擇計(jì)量數(shù)據(jù)文件 Open checkfile For Random Access Read Write As # filenumber Len = Len (Data)
*打開(kāi)所選擇的數(shù)據(jù)文件
FxGd1 . FormatString = header *將定制好的表頭傳給MSFlexGrid控件 For i = 1 To rec_no Step 1 Get #filenumber,i,Data
FxGdl. | row | =i | |||
FxGdl. | Col | =0 | FxGdl | Text | = str( i) |
FxGdl. | Col | =l | FxGdl | Text | = Data. gross_no |
FxGdl. | Col | =2 | FxGdl | Text | = Data. tare_no |
FxGdl. | Col | =3: | FxGdl | Text | = Data. car_no |
FxGdl. | Col | =4: | FxGdl | Text | = Data. send |
FxGdl. | Col | =5 | FxGdl | Text | =Data. recv |
FxGdl. | Col | =6: | FxGdl | Text | = str( Data. gross) |
FxGdl. | Col | =7 | FxGdl | Text | = str( Data. tare) |
FxGdl. | Col = | :8: FxGdl. Text = | str ( Data. mtime) | ||
FxGdl. Col | =9: FxGdl. | Text | = str( Data. ptime) |
Next i
*利用循環(huán)在MSFlexGrid控件中顯示文件中所有的 記錄
Close #filenumber
*關(guān)閉打開(kāi)的文件
根據(jù)需要調(diào)整表格的大小和按鈕的位置。
禁止流水打印。
對(duì)修改好的文件進(jìn)行編譯,生成目標(biāo)文件。
4.結(jié)語(yǔ)
取消汽車(chē)衡計(jì)量系統(tǒng)中的流水打印機(jī),實(shí)現(xiàn)流水 電子化,不僅滿足了鄂鋼計(jì)量工藝要求及管理要求, 還確保了數(shù)據(jù)的安全性和穩(wěn)定性,減輕了計(jì)量人員的 工作強(qiáng)度,節(jié)約了計(jì)量成本。到目前為止,軟件運(yùn)行 良好,達(dá)到預(yù)期目標(biāo)。