基于 TCP / IP 通信的汽車衡稱重數據管理系統
隨著以太網通信的興起與迅速發展,TCP / IP 協議作為計算機網絡的最主要的傳輸協議被廣泛應用于工業以太網控制領域。 為了實現生產現場智能稱重儀表與管理層直接的數據交換, 使用 Visual Basic 提供的 Winsock 控件開發了FTP 服務端的通信應用程序,實現現場生產數據在管理層的 SQL 數據庫中的存儲和查詢。 基于 TCP / IP 通信的稱重數據管理系統投入實際運行后,可記錄和保存生產現場全部稱重數據。
基于 TCP / IP 的以太網可滿足控制系統的各個層次的需求,并具有實現現場設備層和企業管理層的無縫連接、低成本等現場總線技術無法比擬的優點。 本系統開發的 FTP 服務端通信應用程序可實現生產現場智能稱重儀表與管理層的數據交換,使現場生產數據可在管理層的數據庫中進行存儲和查詢。 系統經調試已投入運行,完全達到預期目的。
1.系統構成
青島某橡膠公司的生產車間與管理生產數據的辦公區距離較遠,稱重數據管理都是采用人工記錄方式,這就造成了數據更新慢和準確性差等問題。 為方便管理人員快速和準確地查詢稱重數據,實現辦公無紙化,利用 FTP 通信原理完成文件、資料、報表等數據的計算機網絡傳送。 設計和開發了基于 TCP / IP 的通信和數據處理系統, 系統硬件采用梅特勒-托利多的工業智能稱重儀表 IND880,接收稱重傳感器發送的模擬量信號并轉化為重量值,通過以太網交換機與服務器電腦和多臺客戶端電腦建立以太網通信連接,實現稱重數據的快捷查詢。 系統結構如圖 1 所示。
2.通信協議
客戶端與服務器端之間是通過 TCP / IP 協議和 FTP 協議進行通信的。TCP 協議作用于傳輸層,在文件傳輸時會先行建立連接,通過鏈接提供雙向、有序且無重復的數據流服務、流量控制、差錯檢測和糾錯等服務,從而確保文件傳輸的正確性。 FTP 協議作用于應用層,它包括兩個組成部分,其一為 FTP 服務器,其二為 FTP 客戶端。 其中 FTP 服務器用來存儲文件,用戶可以使用FTP 客戶端通過 FTP 協議訪問位于 FTP 服務器上的資源。
Visual Basic 提供了基于 Windows Sockets 網絡編程接口的Winsock 控件。 Winsock 控件是不可視控件,它封裝了所有煩瑣的技術細節,并提供了訪問 TCP 網絡服務的方便途徑,使開發 TCP / IP 通信程序變得簡單方便,只需通過設置 Winsock 控件的屬性并調用其方法,就可直接連接到一臺遠程計算機中,并可實現雙向數據交換。 為開發者實現上位計算機與現場各種以太網接口儀表進行通信提供了一種有效途徑。
Winsock 控件的工作原理: 客戶端向服務器端發出連接請求, 服務器端則不停地監聽客戶端的請求, 當兩者的協議溝通時,客戶端和服務器端之間就建立了連接,這時客戶端和服務器端就可以實現雙向數據傳輸。 實際編程中,必須分別建立一個服務器端應用程序和一個客戶端應用程序,兩個應用程序中分別有自己的Winsock 控件。 首先設置 Winsock控件使用的協議,通信的雙方需要選定相同的協議。 TCP 協議適用于傳送大容量或需要安全性保證的 數據文件。 Winsock 控件的工作原理如圖 2 所示。
3.軟件設計
服務器端程序運行在服務器上, 其主要功能是接受來自現場智能儀表 IND880 傳輸的表格文件, 并把該文件內容逐條轉換為 SQL 數據庫中的表格記錄; 打印程序運行在智能儀表ND880 上 ,其主要功能是讀取服務器上的數據 ,并把記錄中的“生產編號 ”字段生成條形碼 ,連接斑馬打印機 ,打印生產標簽 ,并把打印內容記錄在 SQL 數據庫中。
用 TCP / IP 協議通訊,首先要指定通信方式為 TCP 方式,將Winsock 控件的 Protocol 屬性設置為 sckTCPProtocol。 然后,按
TCP 通信協議規定,先要申請建立網絡連接,設置 Winsock 控件的 RemotePort 和 LocalPort 屬性使服務器和客戶端參數一致,服務器調用 Winsock 控件的 Listen 方法進行偵聽, 客戶端調用Winsock 控件 Connect 方法進行連接 , 然后才能調用 DataAr-rival 事件和 GetData 方法傳輸數據,最終實現點對點文件傳輸。
生產現場的智能儀表 IND880 通過自帶的稱重軟件記錄生產數據,并保存為表格(.csv 格式),當操作人員按稱重軟件中
“上傳 ”時 ,該表格通過以太網通信傳輸到服務器上的 F 盤根目錄下的 IND880 文件夾里。 服務器接收完稱重表格后將該表格解析, 通過定義 ADODB 和數據集連接 SQL 數據庫, 使用 For循環和 Insert into 語句逐條把記錄寫進服務器中的 SQL 數據庫中的名為 ind 的表格中,該表格中包括:編號、流水號、料名、機臺、班次、序號、凈重、毛重、稱重人、復核人、稱量日期、備注、上傳標志字段。因為每條記錄的編號是唯一的, 所以設置編號為主鍵, 這樣就可以避免重復記錄的產生。
通過配置 ODBC 數據源和 SQL Server ConfigurationManager, 并利用 VB 中 ADO部件進行編程,使得在 IND880上運行的客戶端程序可以讀取服務器上的數據,獲取記錄后操作人員核對打印信息無誤后,點擊客戶端程序上的“打印預覽”即可進入打印界面,系統自動根據記錄中的“生產編號”生產條碼信息,核對后,通過 Form9.PrintForm 和 Printer.EndDoc完成控制斑馬打印機打印生產標簽。 工作流程圖如圖 3 所示。
4.結束語
客戶/ 服務器模式已成為目前程序開發的主要潮流,在 Vi-sual Basic 中的 Winsock 是實現客戶 / 服務器的主要控件 ,利用 TCP / IP 協議進行客戶與服務器之間的通信, 實現現場生產智能儀表產生的數據可在管理層的 SQL 數據庫中的存儲和查詢。 該系統使管理層方便、快速地了解和監視現場運行情況,提高了工作效率。