谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

煤炭分布式軌道衡智能計重係統的設計與實現

發布時間:2021-05-19 14:45:39 |來源:網絡轉載

在煤炭企業中,由於各個礦點比較分散,各個礦點距離較遠,容易形成信息孤島;又由於煤炭企業生產環境惡劣,容易造成對信號的幹擾,使得網絡的傳輸出現差錯,造成信息丟失;軌道衡計重信息的采集時效性不高,不利於煤炭企業的查詢決策,極大的降低了企業的綜合競爭力。為了提高煤炭企業綜合競爭力,解決信息不能共享問題以及完成企業信息化的建設,煤炭企業需要對軌道衡計重信息進行科學和有效的管理,形成煤炭企業的一種隱性的競爭力。隨著計算機技術和現代通訊技術的發展,建立一個分布式的軌道衡智能計重係統,對煤炭企業的信息化建設起著很大的作用。且由於軌道衡計重信息采集的準確性和及時性,對煤炭銷售管理和分析,以及安排各個礦點的生產具有舉足輕重的作用。因此,煤炭分布式軌道衡智能計重係統是整個企業信息化管理係統的關鍵環節。
1 係統需求分析
    係統以一家大型煤炭企業為背景,設計開發煤炭分布式軌道衡智能計重係統。企業以前的軌道衡計重係統是以單機版為主,並且各個礦點的數據格式不統一,全公司不能共享計重信息,生成的計重信息報表很大一部分還要采用人工錄入和設計,計重信息采用紙質報表上報總公司,總公司采用電話批示或者委派人員下礦指導,時效性不高。這樣就不利於企業決策層以市場為導向做出及時有效的決策,也不利於過磅人員及時準確的掌握本礦點的煤炭庫存情況。煤炭分布式軌道衡智能計重係統必須滿足下麵四方麵的需求,這四個方麵分別是司磅員,公司業務管理人員,係統管理員,係統的健壯性。司磅員的需求是錄入計重信息、打印磅單、打印日報表;公司業務管理人員的需求是修改由於司磅員的失誤產生的錯誤數據,匯總打印,製定銷售計劃和生產計劃;係統管理員的需求是設置計重係統運行的基本參數,添加、修改、刪除用戶;係統的健壯性是係統適應惡劣環境的需要,保證數據的安全和準確。
2 係統設計
    係統體係結構
    根據需求,煤炭分布式軌道衡智能計重係統采用經典的C/S 結構,這種結構人機界麵友好,還可以充分利用兩端硬件環境的優勢,將任務合理分配到Client 端和Server 端來實現,降低了係統的通訊開銷。客戶端采用Delphi7.0 開發,因為Delphi7.0 在開發C/S結構的係統時有著絕對的優勢,比如,快速開發,編譯高效,等。服務器端用SQL Server 2005 作為數據庫服務器,因為SQL Server2005 在企業數據管理中有著高可用性和提供易用性、可管理性、及支持大型SQL Server 配置的集成的管理工具和管理應用編程接口(APIS)的優點;並且SQL Server 2005 對XML 的支持和在SQL 語言中嵌入高級語言的支持在完成數據庫係統的開發中起著舉足輕重的作用。
    係統功能模塊設計
    煤炭分布式軌道衡智能計重係統功能詳細介紹如下。智能計重業務:負責計重信息的采集和錄入,智能計重係統可智能關聯到站信息,主界麵上實時顯示重量信息和預設偏差重量,便於操作人員有效控製每節車皮的裝車情況,本係統智能記憶錄入的車皮信息,減少手工輸入工作量,提高工作效率。
    軌道衡查詢打印:用戶通過自定義查詢條件,配置默認打印報表形式,適應不同單位對報表形式的要求。數據修改:由於操作員失誤,造成數據有誤,可以申請管理員修改已經提交的計重數據,係統智能記錄修改操作以及相關信息,並備案。
    中央數據管理:配置當前磅點的信息;客戶關係管理,中央數據庫客戶信息的下載;設置上傳本地計量數據方式,可以設置自動上傳或者手工上傳;斷點自動上傳,錯誤數據自動回滾,提高係統的健壯性;添加,刪除,修改用戶信息。權限管理:添加權限組,以及設置不同角色的操作權限。係統設置:設置串口的類型;設置串口基本參數。
3 關鍵技術
    3.1 SPCOMM
    用Delphi 實現串口通信,常用的方法有:使用第三方控件,如Spcomm 控件等;使用Windows API 函數。使用Windows API 函數的方法比較適合於編寫較為複雜的底層通信程序。Spcomm 是Small-Pig Team 開發的一個第三方Delphi 串口控件,該控件封裝了串口通信的類的屬性和方法,提供了對串口的各種操作,編程簡單、通用性強、可移植性好。在Delphi 開發中已經成為一個被廣泛應用的串口通信開發控件。
    Spcomm 共實現了三個類:串口類、讀線程類以及寫線程類。串口類的一個實例調用方法StartComm 中打開串口,並實例化了一個讀線程實例和一個寫線程實例,這兩個實例和主線程之間進行消息的傳遞,實現串口通信。Spcomm 應用的核心在於主線程、讀線程和寫線程之間的消息傳遞機製,而通信數據相關信息的傳遞也是以消息傳遞的方式進行的。
    利用Spcomm 進行串口通信,必須設置的基本屬性。CommName 屬性:計算機串口端口號的名字,COM1、COM2……等,在實例化串口類後必須設置串口的此屬性。BaudRate:設定串口通信用的波特率9600,4800 等,根據實際需要來定。Parity 屬性:校驗位信息None、Odd、Even、Mark、Space 等。ByteSize 屬性:表示一個字節中,使用多少個數據位收發數據,根據具體情況設定5、6、7、8 等。StopBits 屬性:表示一個字節中,使用停止位的位數,根據具體情況設定1、1.5、2 等。利用Spcomm 進行串口通信,必須調用的方法和觸發的事件。StartComm 方法:用來打開串口,開始串口通信。如果失敗,則會拋出串行口錯誤。錯誤類型有串行口己處於打開狀態,所以不能打開串行口,不能創建讀寫進程,不能建立串行口緩衝區等。StopComm 方法:用來停止串行口的所有進程,關閉串口。WriteCommData(pDataToWrite:PChar;dwSizeofDataToWrite:Word)方法是返回布爾值的函數,其中參量pszStr-ingToWrite 是要發送到串行口的字符串,DwSizeaf- DataToWrite 是要發送到串行口的字符串的長度。該方法通過寫線程向串行口輸出緩衝區發送數據。發送操作將在後台默認執行。如果寫線程PostMessage 成功,則返回值是True,若寫線程失敗,返回值是False。OnReceiveData(Buffer:Pointer;BufferLength:Word)事件是接受緩衝區收到數據時觸發的事件,其中參量Buffer 是指向輸入緩衝區的指針。參量BufferLength 是從緩衝區收到的數據長度。當輸入緩衝區收到數據時,該事件被觸發。當輸入緩存有數據時將觸發該事件,對從串口收到的數據進行處理。
    3.2 ADO
    ADO(ActiveX Data Object, Active 數據對象)是Microsoft 提供的一種麵向對象,與語言無關的數據訪問應用編程接口。是處理關係數據庫和非關係數據庫的實用新技術,基於OLE DB 數據訪問模式,支持大部分商業數據源。具有易於編程,易於數據庫移植,訪問速度快和效率高,占用磁盤空間較少和低內存支出等優點。ADO 實際上是OLE DB 的應用層接口,這種結構也為一致的數據訪問接口提供了很好的擴展性,而不再局限於特定的數據源,因此,ADO 可以處理各種OLE DB 支持的數據源。ADO 本身由幾個對象所組成,這幾個對象分別負責提供各種數據庫操作行為,大致上可以分為連接、修改和查詢3 個部份。在ADO 模型中,主體對象隻有3 個:Connection、Command 和Recordset,一個典型的ADO 應用使用Connection 對象建立與數據源的連接, 然後用一個Command 對象給出對數據庫操作的命令,比如查詢或者更新數據等,而Recordset 用於對結果集數據進行維護或者瀏覽等操作。1) Connection 對象
    Connection 對象代表與數據源進行的唯一會話。也稱為連接對象,用來創建一個與指定數據源的連接,包括Microsoft SQL server、Oracle 以及能夠為其指明一個OLEDB 提供程序或一個ODBC 驅動器的任何數據源。
    2) Command 對象
    Command 類是IDBCommand 接口的實現,通過Command 來執行數據庫命令以及數據庫數據的查詢、更新、插入都通過Command 來實現。
    3) Recordset 對象
    Recordset 對象代表一個記錄集,是一個連接的數據庫中的表,或者是Command 對象的執行結果返回的記錄集.在ADO 對象模型中, Recordset 有著舉足輕重的作用。可以通過Recordset 在行中檢查和修改數據, 所有對數據的操作幾乎都是在Recordset 對象中完成的。Record 對象可以用於選定行,上下移動行,添加,更改,刪除行。
4 係統實現
    根據係統需求分析,係統設計以及對關鍵技術的運用,在delphi7和VS2005 開發環境下完成係統的開發。
5 結論
    煤炭分布式軌道衡智能計重係統在完成計重操作由手工操作轉化為自動化操作的同時,還融入的先進的管理理念,使得企業的管理更加規範化和係統化,也使得整個公司的決策更加及時有效,該係統已經在福建某大型國有煤炭企業中得到成功的運用。

 

本文源於網絡轉載,如有侵權,請聯係刪除

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8