運輸場地磅稱量系統設計與實現
地磅稱量系統通過RS232串口實現地磅稱量設備與計算機之間的數據通信.利用Win-dows API函數實現串口編程,完成稱量數據采集.與后臺數據庫交換數據,實現對地磅稱量數 據的實時顯示、自動采集、安全存儲、多方式查詢、統計匯總和打印輸出等工作,最大限度地防 止舞弊行為的發生.
安置在地面以下稱量較大噸位的稱叫地磅, 專用于稱量汽車的地磅又稱為汽車衡.地鎊屬于 衡器的一種,是廠礦、商家等用于大宗貨物計量的 主要稱重設備,廣泛應用于林業、煤炭、冶金、電 力、港口、倉儲等行業[1—2].黑龍江省鶴北林業局 使用電子汽車衡稱量系統進行木材檢驗控制,不 僅保證了檢驗質量及檢驗速度,減少了人為檢驗 誤差,還提高了勞動生產率,獲得了顯著的經濟效 益[3].在我國,許多運輸場采用地磅儀表顯示計量 數據,司磅員手工填寫單據、報表的人工操作,工 作安全性差,容易出錯,效率低,難以快速統計,不 能滿足生產經營的要求.當前,用戶對用衡器完成 測管控稱一體化功能的要求日益高漲,稱重技術 得以與控制系統和信息管理系統同步發展,實現 了衡器管理的計算機化、網絡化和智能化.
針對國內地鎊系統自動化程度應用不高的現狀, 通過開發一套地磅稱量計算機管理系統,將稱量設 備、if賓機、數據庫有效地結合起來,實現稱量信息的 自動采集、自動處理,最大限度地防止舞弊行為的發 生,為企業的現代化管理提供有力的幫助.
1.系統目標
通過項目實施使地磅稱量設備與計算機連 接,通過計算機軟件編程讀取稱量設備數據,與后 臺數據庫交換數據,實現對稱量數據的實時顯示、 自動采集、安全存儲、多方式查詢、匯總統計和打印 輸出等工作.根據企業管理上的要求,所設計的稱 量管理軟件需達到以下幾個目標:符合運輸場的業 務流程和要求,程序流程清晰、嚴密;獲取稱重數據 快速、準確;操作簡便,自動化程度高,能有效防止舞 弊行為;數據查詢、報表制作方便快捷;系統長時間 運行穩定可靠;數據安全性和可靠性高.
2.需求分析
2.1運輸場硬件條件
運輸場硬件要求:1臺地磅;1臺計算機(能流 暢運行Win98及其以上操作系統,100 M以上硬盤 剩余空間);1個條碼閱讀器;1臺打印機.
2.2運輸場稱量業務流程
運輸場稱量業務流程:重車上磅,記錄重車質 量;重車下鎊,到指定地點卸貨并領取回執單;空車 上磅,交回回執單并記錄空車質量;空車下磅,結束.
2.3功能分析
根據運輸場的條件和要求,項目開發的地磅 稱量系統主要功能包含:稱量數據自動采集;歷史 稱量數據維護;多方式查詢;報表統計及打印;代 碼維護;系統參數設置;用戶權限設置;數據備份 與恢復.同時,為將來網絡化環境中實現數據共享 預留接口.
2.4系統功能詳細設計
根據功能分析,地磅稱量系統主要包含稱量數 據管理、系統設置兩大模塊,系統總體結構見圖1.
稱量數據管理:主要是對稱量數據進行管理,包 含“稱量數據采集”、“稱量數據維護”、“報表打印”、 “數據備份”、“數據恢復”5個子模塊.
“稱量數據采集”用于自動采集車輛稱量數據-
“稱量數據維護”用于維護車輛稱量歷史數 據,可以對稱量數據進行添加、修改、刪除、査詢、統計 等操作.
“報表打印”用于打印年報表、月報表、臨時 報表和回執卡.
“數據備份”用于將系統數據備份到指定的 文餘
“數據恢復”用于從指定文件夾恢復系統數
據.
系統設置:主要用于維護系統,包含“員工信息 維護”、“車輛信息維護”、“系統參數設置”、“通信參 數設置”、“操作員管理”、“更改密碼”等6個模塊.
“員工信息維護”用于維護員工信息,可以 對員工信息進行添加、修改、刪除等操作’
“車輛信息維護”用于維護車輛信息,可以 對車輛信息進行添加、修改、刪除等操作?
“系統參數設置”用于設置系統參數,如地 磅無車的判定質量、月報表的開始和結束時間等.
“通信參數設置”用于設置地磅的通信參數 和稱量數據格式,如串口號、波特率等.
“操作員管理”用于系統操作員的管理,包 括添加、刪除操作員,授予操作員權限等.
“更改密碼”用于更改當前用戶的登錄密碼.
3.數據庫設計
數據庫設計(Database Design)包括數據庫設 計和數據庫應用系統設計兩個方面,在設計過程 中,應把數據庫的結構設計和數據處理的操作設 計緊密結合起來,相互參照和相互補充地磅稱
量系統的數據庫結構設計按以下步驟進行:
根據已收集的原始數據和系統設計需 要,確定系統應包含的數據表.
確定數據表應包含的數據項和這些數據 項的定義,如內容、長度、類型等.
按照 3NF(Third Normal Form)標準對數 據表進行標準化,即表內的每一個值都只能被表 達一次.表內的每一行都應該被唯一標識(有唯一 鍵).表內不應該存儲依賴于其他鍵的非鍵信息.
由于標準化可能給數據庫引人太高的復 雜性,降低系統效率,因此需要對數據表結構進行 調整,允許數據適量冗余,使其在性能、擴展性和 數據完整性方面達到最好的平衡.
建立數據字典.數據字典是數據庫應用 設計的重要內容,它是描述數據庫中各數據屬性 與組成的數據集合,在數據庫的整個生命周期里 都起著重要的作用.
地磅稱量系統包含的主要數據表及其用途見 表1,系統實體-聯系圖(E-R圖)見圖2.
4.系統實現
地磅稱量系統包括稱量設備與計算機的通信 和稱量數據管理的MIS系統兩部分.稱量設備通 過RS232串口與計算機的串口連接,并向計算機 的串口發送數據;MIS系統定時掃描串口獲取數 據,經格式轉換后通過事件驅動調用相關模塊對 數據進行處理.
4.1硬件組成
系統硬件組成框圖見圖3.
4.2開發工具與數據庫管理系統選擇
前端開發工具采用PowerBuilder;后臺數據庫 管理系統采用 ASA 7.0 ( Adaptive Server Any-where). 當局域網建成后,可采用SQLServer2000 等大中型數據庫管理系統作為后臺數據庫管理系 統,以獲得更高的數據安全性和實現網絡環境中 的數據共享.
4.3關鍵技術
數據通信與采集的實現是系統實現的關鍵. 串行通信因其線路簡單,開發相對比較容易,所以 經常應用于各種監控、測試和自動化設備中.系統 中,稱量設備與計算機之間通過RS232串口連接, 數據通信的核心就是如何實現串口編程,通過串 口進行數據通信,從而實現數據的采集.在Win-dows 環境下,不能直接對硬件進行讀寫,實現串口 編程一般采用以下兩種方法:一是利用Windows 本身提供的通信API函數;二是利用微軟公司提 供的通信控件MSComm.關于利用MSComm控件 實現串口編程的方法前人做了很多研究Ue-14’16], 本文給出了對串口進行讀寫的一種簡化步驟,降 低了程序的復雜性.下面是利用Windows API函數 實現串口編程的程序實現U5-17].
外部函數定義
Windows API函數在PowerBuilder中使用之前 必須先聲明為外部函數,下面是系統中用到的 Windows API函數的聲明:
Function Boolean CloseHandle (ulong hOb- ject ) Library "kemel32.dll" //關閉串口
FUNCTION Boolean ReadFile(ulong fhand, ref blob lpbuffer, ulong numbyte, ref ulong bytes- read, ulong lpover) LIBRARY ” kemel32, dll" //讀 取串口數據
(3 ) FUNCTION ulong CreateFileA ( ref stringfname, ulong f一access,ulong f—share,ulong f_sec, ulong f一create,ulong f_flag, ulong f_attrib) LI-BRARY "kemel32.dll" //打開串口
Function Boolean WriteFile(uLong handle, ref blob lpbuffer, ulong numbytes, ref ulong bytes- read, ulong lpOverLaped) Library M Kemel32. dll” //寫人串口數據
Function Boolean GetCommProperties(ulong hFile,ref COMMPROP lpCommProp ) Library " Ker- neB2. dll” //返回COMM設備屬性
(6 ) Function Boolean BuildCommDCBA ( ref string lpDef,ref DCB lpDCB ) Library " Kemel32. dll" //向DCB中傳送設備定義字符串
(7 ) Function Boolean SetCommState ( ulong hCommDev, ref DCB lpdcb ) Library "Kemel32. dll” //設置串口狀態
(8 ) Function Boolean GetCommState ( ulong hCommDev,ref DCB lpdcb ) Library "Kemel32, dll” //讀取顯示設置參數
(9 ) Function ulong GetLastError ( ) Library "Kemel32.dll" //返回擴充出錯代碼
(10) Function Boolean SetCommTimeouts ( ulong hCommDev, ref COMMTIMEOUTS lpctmo ) Library M Kemel32. dll" //設置通信讀寫時間范圍
(11 ) Function Boolean PurgeComm ( ulong hCommDev,ulong fdwAction ) Library ?? Keme!32. dll” //消除通信隊列
Windows API通信函數的串口通信程序實 現方法在Windows系統中,串行通信是作為文 件讀寫來處理的,其串口讀寫的一般過程為:
配置串口 ■—?串口讀寫—關閉串口
打開串口.在Windows環境下,使用Cre-ateFileA 函數打開串口,若成功打開則串口通信端 口即可使用,并返回一個Handle值,程序中將使用 此Handle值進行相關的串口操作.
配置串口.包括初始化端口、設置DCB結 構和設置超時值.使用SetCommState函數設置串 口狀態,包括波特率、字節長度、校驗位、停止位亭;使用SetCommTimeouts函數設置超時值.
串口讀寫.Windows環境下對串口的讀寫 長用ReadFile函數和WriteFile函數.讀寫方式有 兩種:重疊模式和非重疊模式(或稱為異步模式和 司步模式).
串口關閉?串口使用完畢,應使用Close- landle函數關閉串口,釋放串口資源.
根據運輸場稱量業務流程,稱量數據采集模 弁主要程
系統設置了自助査詢功能.當地磅上無車時, 吾工在稱量數舍采集窗口中輸入員工編號(使用 君工卡,通過條碼閱讀器輸人),“已完成數據”欄 戶只顯示該員工當天的所有記錄,方便員工查閱? 為了防止作弊行為發生,系統在程序流程中 3;置了一些檢查。
iD稱重時,必須是前 >,妁質量值小于設定的稱—備 (缸系統參數設置模塊設置)時,下 上地磅,否則系統會認為員工企#重復 數據而拒絕接受數據.
$防止員工通過各種手段增,重 或減少空★量來提高凈質值,系統通過¥ 工信息表和#信息表,查詢該車型的_ 限和空車上下與稱量數據比較,判斷車^ 于重車狀態還是#狀態.系統拒絕接收不: 的稱量數據,并顯示栩應信息提示員工.
系統設置了兩次稱重車的間隔時間?機 果兩次稱重車的時間間陶、小于設定的間隔時間 (在系統參數設置模塊設置系統拒絕接受后一 次稱量的數據,并顯示相應信¥示員工?
員工在稱量空車時,員工編號后,還 需要輸入卸貨時獲得的回執卡卡重車數據、空 車數據和回執卡號齊全,記錄才會~加到稱量 信息表中,并參與統計匯總(計算工作夂?
5.結束語
地磅稱量系統將稱量設備、計算機、數據¥ 效地結合起來,實現了對稱量數據的實時顯示、 動采集、安全存儲、多方式查詢、匯總統計和打印 輸出等工作,為運輸場運力調節提供科學、準確、 及時的數據.同時還減輕了工作人員的勞動強度, 提高了工作效率和經濟效益,最大限度地防止舞 弊行為的發生,在企業的生產和管理中發揮了積 極作用.
地磅稱量系統從硬件、軟件和通信等方面進 行了研究設計,其結構簡單實用,操作簡便,安全 可靠,具有較好的通用性、開放性、擴展性、可維護 性,充分保護企業的投資.系統已在昆明市五華區 環衛處廢棄物運輸場運行1年多,性能穩定可靠, 效果良好,有顯著的經濟效益和社會效益,具有一 定的推廣價值