新聞中心News
基于DDE通訊的地磅計算機計量管理系統(tǒng)
介紹了以DDE通訊方式來獲取儀表上傳數(shù)據(jù)的地磅計算機計量管理系統(tǒng)的實現(xiàn).由于采用 動態(tài)改變MSComm控件的Rthreshold屬性值的技術(shù),與同類型軟件產(chǎn)品相比較,系統(tǒng)反應(yīng)及時、穩(wěn)定性 強、可適應(yīng)各種儀表類型.
0.引言
某化工廠的地磅房地磅擔(dān)負(fù)著全廠的物資進 出的計量任務(wù),每年有上百種、數(shù)百萬噸的產(chǎn)品和原 材料經(jīng)地磅房地磅系統(tǒng)計量后,進出廠區(qū),供貨提 貨的客戶和單位有數(shù)百個之多,地磅房的工作質(zhì)量 和效率對企業(yè)有著非常重要的意義.影響地磅房工 作質(zhì)量和效率的的主要因素是計量數(shù)據(jù)的準(zhǔn)確、快 速、可靠和計量數(shù)據(jù)的快速傳遞.過去該廠的地磅房地磅由手工操作,通過配備的稱重顯示儀,人工記 錄車號,讀取空車、重車重量并進行凈重計算并填寫 稱重單據(jù).這種稱重儀器的缺點主要是存儲容量小、 工作效率低,不能進行分類統(tǒng)計,數(shù)據(jù)不容易進入企 業(yè)管理數(shù)據(jù)庫.計量數(shù)據(jù)的傳遞和處理由人工完成, 每天磅房操作人員將前一天的計量數(shù)據(jù)報送計量主 管部門,再由統(tǒng)計人員進一步歸類統(tǒng)計,送到有關(guān)處 室.造成工作量大,且處理周期長,容易發(fā)生司稱人 員與汽車司機串通作弊的事情,因此非常不適應(yīng)現(xiàn) 代企業(yè)管理方式.
針對以上情況我們設(shè)計了地磅計算機計量管 理系統(tǒng),其目的是利用先進的計算機技術(shù)來提高地磅計量系統(tǒng)可靠性、準(zhǔn)確性以及自動化程度,最大 限度地防止作弊現(xiàn)象的發(fā)生,為企業(yè)的現(xiàn)代化管理 提供有力的幫助.
1.系統(tǒng)組成原理
地磅計算機計量管理系統(tǒng)的硬件結(jié)構(gòu)框圖如 圖1所示.
壓力傳感器將稱重平臺的壓力轉(zhuǎn)換成電信號送往稱 重儀表,由稱重儀表的A/D轉(zhuǎn)換電路轉(zhuǎn)換成數(shù)字信 號,稱重儀表具有計算、顯示重量的功能.同時稱重 儀表配有RS — 232接口,以連續(xù)發(fā)送方式將重量數(shù) 據(jù)直接發(fā)送到上位的管理計算機上,形成稱重管理 系統(tǒng).管理計算機通過稱重管理軟件接收RS — 232 串行口上傳的稱重數(shù)據(jù),對數(shù)據(jù)進行顯示、存儲和管 理,打印過磅單及各種統(tǒng)計報表,可以實現(xiàn)對與稱重 有關(guān)的數(shù)據(jù)進行查詢、維護.管理計算機還可以與企 業(yè)內(nèi)部網(wǎng)絡(luò)相連,將稱重過程中形成的各種數(shù)據(jù)方 便地傳送到企業(yè)的管理數(shù)據(jù)庫,以作為管理決策、財 務(wù)結(jié)算的基礎(chǔ)數(shù)據(jù).
2.計量管理軟件系統(tǒng)的設(shè)計
根據(jù)企業(yè)管理上的要求,所設(shè)計的計量管理軟 件獲取稱重數(shù)據(jù)必須快速準(zhǔn)確;系統(tǒng)長時間工作必 須穩(wěn)定可靠;操作簡便,能有效地防止作弊行為;數(shù) 據(jù)保密性要強.
系統(tǒng)主要功能應(yīng)包括:皮重和毛重的稱量數(shù)據(jù) 通過RS — 232接口傳輸?shù)接嬎銠C,計算機收到數(shù)據(jù)后,撿核車號,根據(jù)皮重、毛重計算各種貨物的凈重, 確定憑證代碼、物資代碼和名稱、供方代碼和名稱、 需方代碼和名稱、物資流向、稱重時間和司稱人員等 信息,并打印過磅單據(jù);以多種方式統(tǒng)計各種物資的 稱重數(shù)據(jù),生成由原始數(shù)據(jù)得到的日報表、月報表和 年報表,計算每種物資的日、月、年的累計重量;可對 運輸車輛、物資、供方、需方、稱重記錄、司稱人員等 信息進行維護、備份和查詢并打印輸出查詢結(jié)果;對 系統(tǒng)的有關(guān)參數(shù)(如串行口參數(shù)、計量單位、儀表類 型)進行配置等.
針對以上的要求,我們采用模塊化設(shè)計方法進 行地磅計算機計量管理軟件的設(shè)計.將整個系統(tǒng) 按功能要求劃分為若干個功能模塊,各功能模塊之 間既相互獨立以便于調(diào)試和修改,為系統(tǒng)的維護和 修改提供了方便;同時各模塊又通過數(shù)據(jù)庫構(gòu)成有 機的整體,相互協(xié)助,共同完成管理任務(wù).系統(tǒng)軟件 主要功能模塊結(jié)構(gòu)如圖2所示,各主要功能模塊又 由若干子模塊組成.
(1)系統(tǒng)登錄模塊.為了保證數(shù)據(jù)的安全性,只 有被授權(quán)的有關(guān)人員才能夠操作該管理軟件.各操 作人員可以根據(jù)崗位需要被授予不同的權(quán)限,如系 統(tǒng)管理權(quán)、參數(shù)設(shè)置權(quán)、數(shù)據(jù)維護權(quán)、稱重操作權(quán)、數(shù) 據(jù)查詢權(quán)、統(tǒng)計報表權(quán)、司稱員管理權(quán)等.系統(tǒng)管理 權(quán)是最高權(quán)限,往往由企業(yè)或單位指定一人負(fù)責(zé),他 可以對所有的數(shù)據(jù)進行查看、更新或配置.進入系統(tǒng) 都要由登錄模塊來確認(rèn)使用者的身份和密碼,防止 非法人員的操作.
(2)稱重處理模塊.稱重模塊主要負(fù)責(zé)接收儀表 上傳的稱重數(shù)據(jù),根據(jù)皮重和毛重數(shù)據(jù)計算出凈重, 并將稱重數(shù)據(jù)與車號、憑證代碼、物資代碼、供方代 碼、需方代碼、物資流向、發(fā)票號碼、稱重時間和司稱 員代碼等信息形成一條完整記錄存入數(shù)據(jù)庫.稱重 數(shù)據(jù)的獲取由DDE通訊程序完成.
為適應(yīng)企業(yè)內(nèi)部和外部汽車稱重的不同需要, 稱重處理設(shè)置了兩種方式,一種是固定皮重方式,其 主要針對企業(yè)內(nèi)部車輛和一部分經(jīng)過企業(yè)相關(guān)負(fù)責(zé) 以縮短稱重時間,提高稱重效率;第二種是非固定皮 重方式,即進出車輛必須經(jīng)過稱皮、稱毛兩次稱量以 獲得物資凈重數(shù)據(jù),皮重數(shù)據(jù)僅用一次,下回稱重時 須重新稱皮重.
(3)數(shù)據(jù)查詢模塊.該模塊用于查詢稱重記錄、 物資、供方、需方、憑證、車輛和司稱員等信息.可按 任意字段查詢,數(shù)據(jù)表的每個字段都可以作為查詢 條件,同時還提供二次查詢功能,即在上次查詢結(jié)果 的基礎(chǔ)上做進一步細(xì)化查詢.查詢結(jié)果可打印輸出.
(4)數(shù)據(jù)維護模塊.主要是對稱重數(shù)據(jù)、憑證信 息、供需方信息、車輛信息、司稱員信息進行添加、刪 除、修改等操作.對于不同的用戶,其權(quán)限不同,所維 護的數(shù)據(jù)也不一樣.如一般的司稱員只能維護憑證 信息、物資信息、供需信息等數(shù)據(jù),無權(quán)修改稱重記 錄、司稱員信息,而系統(tǒng)管理員卻可以對所有數(shù)據(jù)進 行維護.
(5)統(tǒng)計報表模塊.進行年報表、月報表、日報表 的生成和打印,可進行日、月、年的各種物資的累計. 報表類型分為稱重統(tǒng)計總表、分類分戶統(tǒng)計、分戶分 類統(tǒng)計、稱重統(tǒng)計清單等統(tǒng)計形式,使企業(yè)的日常管 理更為方便快捷.
(6)參數(shù)設(shè)置模塊.為計算機與儀表實現(xiàn)通訊, 以及數(shù)據(jù)轉(zhuǎn)換進行一些基本設(shè)置,包括:串口參數(shù)配 置、計量單位配置、儀表類型配置.
用戶設(shè)置模塊.對使用該系統(tǒng)的司稱員、管 理員的代碼、姓名、密碼和權(quán)限進行配置,可執(zhí)行增、 刪、改操作.
整個管理系統(tǒng)軟件采用VB6.0開發(fā),數(shù)據(jù)庫采 用數(shù)據(jù)庫.同時系統(tǒng)也可以根據(jù)需要很方便 地移植到網(wǎng)絡(luò)環(huán)境下,實現(xiàn)多臺地磅連網(wǎng)運行.
3.系統(tǒng)的主要技術(shù)特點
(1)采用DDE通訊方式獲取稱重數(shù)據(jù)以方便系 統(tǒng)適應(yīng)各種稱重儀表.
管理計算機獲取稱重儀表上傳數(shù)據(jù)的任務(wù)由專 門開發(fā)的DDE通訊程序完成,該DDE通訊程序 (Server)作為數(shù)據(jù)的提供者將實時重量數(shù)據(jù)提供給 Windows環(huán)境下的稱重處理程序(Client). DDE (動 態(tài)數(shù)據(jù)交換)是Windows平臺上一個完整的通信協(xié) 議,它使應(yīng)用程序能夠彼此交換數(shù)據(jù)和發(fā)送指令.系 統(tǒng)數(shù)據(jù)流向圖如下:
由于不同廠家的稱重儀表,其與上位機接口的 通訊協(xié)議都不一樣,如TOLEDO腳的稱重儀表和耀華的稱重儀表;即使是同一廠家的不同系列、不同 種類的稱重儀表,它們各自的通訊協(xié)議也可能不一 樣,如XK3190系列的D2表和A1表.采 用DDE通訊方式的最大好處就是,使系統(tǒng)管理軟件 可以非常方便地適應(yīng)各種稱重儀表,例如,當(dāng)更換了 一種管理軟件原本并不支持的稱重儀表時,只需對 DDE通訊程序進行更新,增加對新儀表通訊協(xié)議的 支持,而不必對整個管理軟件進行修改和重新編譯, 這就大大增強了系統(tǒng)的適應(yīng)性.
(2)動態(tài)改變MSComm控件的Rthreshold屬性 值,確保接收數(shù)據(jù)過程迅速、穩(wěn)定可靠.
在DDE通訊程序中,使用了 MSComm控件來 實現(xiàn)對串口的編程.為了識別接收數(shù)據(jù)的格式,提取稱重數(shù)據(jù),通常的做法是:用MSComm控件的On- Comm事件接收上傳的各字節(jié)數(shù)據(jù),并將它們放入 一個應(yīng)用程序設(shè)置的緩沖區(qū),如一個數(shù)組,另外用一 個定時器Timer控件定時掃描緩沖區(qū)以提取實時稱 重數(shù)據(jù).通過實踐我們發(fā)現(xiàn)這種方式在實際中間存 在一些問題,主要是反應(yīng)不夠及時、有時有丟失數(shù)據(jù) 的現(xiàn)象.因此我們采用只利用MSComm控件,不使 用Timer控件,通過在MSComm控件的OnComm 事件中動態(tài)改變MSComm控件的Rthreshold屬性 值的方法,來實現(xiàn)對實時稱重數(shù)據(jù)的提取.實踐證 明,這種方法程序短小精干、反應(yīng)及時、無數(shù)據(jù)丟失 現(xiàn)象,效果非常好.現(xiàn)介紹如下.
通過調(diào)查發(fā)現(xiàn),目前大多數(shù)與上位計算機相連 的稱重儀表都能以連續(xù)發(fā)送方式將實時稱重數(shù)據(jù)發(fā) 送到上位機的,其每個數(shù)據(jù)包都為固定長度.以XK3190—A1表為例,串行口設(shè)置為:1位啟始 位、1位停止位、8位數(shù)據(jù)位,無奇偶校驗位.XK3190 一 A1稱重儀表的上傳實時稱重數(shù)據(jù)的幀格式為:
每幀數(shù)據(jù)由12個字節(jié)組成,所有數(shù)據(jù)均為A SC II字符.小數(shù)點位數(shù)按從右到左取0 ~ 4的數(shù)值,異 或校驗為每幀的第2個字節(jié)到第九個字節(jié)依次進行 異或運算的結(jié)果.異或校驗結(jié)果占2個字節(jié),高四位 放在第一個字節(jié)中,底四位放在第二個字節(jié)中.
動態(tài)改變MSComm控件的Rthreshold屬性值 方法的思路是:由于Rthreshold屬性值是說明在產(chǎn) 生OnComm事件之前要接收的字符數(shù),故可以利用 動態(tài)改變Rthreshold屬性的值的方式來控制觸發(fā) OnComm事件的時機,以保證在讀取串口時能讀到 一個完整的數(shù)據(jù)幀.而如果采用定時器方式,則有可 能由于沒能讀到完整的數(shù)據(jù)幀而產(chǎn)生丟數(shù)據(jù)的現(xiàn) 象,特別是在有干擾時尤其嚴(yán)重.其次采用定時器方 式,由于受定時間隔的限制,上位機數(shù)據(jù)刷新往往與 儀表顯示有一個較明顯的滯后,即反映不夠及時.以 常用的1200波特率的連續(xù)方式為例,串口發(fā)送一幀 數(shù)據(jù)需要100ms,那么理論上定時器的定時間隔至 少需要200ms,才可能保證能讀取到一幀完整的數(shù) 據(jù),實際中一般至少要將定時器的定時間隔設(shè)為 300ms到400ms以上.這樣一來上位機數(shù)據(jù)顯示要 比儀表顯示滯后0.3 ~ 0. 4s以上,這種滯后可以明 顯地察覺出來,而采用在OnComm事件中動態(tài)改變Rthreshold屬性值的方法,一般情況下其滯后時間 只有0. 1s,幾乎察覺不出來,即使在受到干擾的情 況下,其滯后時間也要比定時器方式少得多,從而做 到反應(yīng)及時.其OnComm事件處理程序流程圖如下 所示:
4.結(jié)束語
我們開發(fā)的地磅計算機計量管理系統(tǒng)雖然是針對地磅稱重管理的,略加修改也可以適用于其 它的稱重管理中,如軌道衡、平臺稱系統(tǒng).該軟件己 應(yīng)用在多個企業(yè)之中,從反饋的信息來看,系統(tǒng)反應(yīng) 迅速,運行過程穩(wěn)定可靠,無數(shù)據(jù)丟失現(xiàn)象,使用效 果非常好.同時,由于采用了 DDE通訊方式,在對各 種稱重儀表的支持方面表現(xiàn)出了很大的靈活性.系 統(tǒng)還可以很方便地查詢各種稱重數(shù)據(jù),可根據(jù)需要 進行多種形式的統(tǒng)計并打印統(tǒng)計報表,實現(xiàn)了數(shù)據(jù) 的標(biāo)準(zhǔn)化管理,減輕了工作人員的勞動強度,提高了 工作效率和經(jīng)濟效益,基本杜絕了人為作弊現(xiàn)象,符 合企業(yè)現(xiàn)代化管理的要求.