遠程通信技術在計算機監(jiān)控系統(tǒng)中的應用
在工業(yè)生產過程中,通常要求計算機控制系統(tǒng)完成數據的采集、遠程傳輸、處理及儲存等工作。然而,目前有些工業(yè)控制機系統(tǒng)或集散型計算機控制系統(tǒng)不具備遠程通信的功能。因此,對于遠在幾十公里以外的生產現場(如油田采油、集輸過程),難于達到領導管理層可視現場生產狀況進行決策的現代化生產水平。其主要原因有:①從生產現場鋪設電纜至信息管理中心,造價太高;②由于遠程通信涉及到上、下位機通信協(xié)議的設置、傳輸線路的連接及故障的檢測、實時數據文件的產生與傳送及保存、刪除等,要求計算機監(jiān)控系統(tǒng)管理軟件具有高可靠性和堅固性,否則在數據傳輸過程中主機易出故障而導致整個系統(tǒng)崩潰。
一、遠程通信的基本內容
基于上述原因,本文利用調制解調器和電話線構成撥號網絡,以實現遠程通信功能的基本硬件條件(如圖1所示)。然而,在遠程數據傳送與處理過程中,應該考慮到以下幾個方面:
圖1 上、下微機遠程通信示意圖
(1)下位機(生產現場的計算機)需定時產生1個檢測、控制系統(tǒng)動態(tài)參數的數據文本文件,并經過一段時間(如30s)將用新產生的數據文件覆蓋舊的文件;
(2)遠程數據傳送軟件應根據要求定時累加和保存下位機產生的數據文件,在確定傳輸成功后,刪除舊文件,以避免數據丟失、重疊或占用大量的存儲空間;
(3)上位機(廠部信息中心的計算機)與下位機都安裝調制解調器,通過調制解調器將累加的數據文件定時地從下位機上載至上位機。上位機是管理層局域網的1個服務器,裝有Windows NT Server網絡操作系統(tǒng);
(4)文件傳送到上位機時,能自動累加在上次傳送的文件之后,以供數據庫管理軟件讀取和處理;
(5)在文件傳輸過程中,能檢測傳送線路連接是否正常,并將檢測信息顯示在主窗體的界面上。如果出現問題必須能馬上斷開連接,準備累加文件和等待下一次撥號連接;
(6)文件傳輸軟件與系統(tǒng)監(jiān)控軟件同時在Windows95下運行。因此,在文件傳輸過程中,不能影響系統(tǒng)監(jiān)控程序的正常運行;
(7)上位機數據庫(遠程數據庫)應能自動打開傳送文件,輸入并保存數據文件,以供工程師和管理人員隨時查閱;
(8)上位機管理系統(tǒng)應能對遠程數據進行實時處理并維護數據庫各種功能的實現。
根據以上對文件傳輸軟件的要求,本文采用Visual Basic可視化編程語言進行程序設計,并利用VB中的ActiveX控件,通過撥號網絡與遠程主機實現連接,由FTP文件傳輸協(xié)議進行文件的上載。對上位機數據庫管理軟件,采用可視化編程語言Delphi4.0編寫,實現了遠程數據傳送及數據庫建立與管理技術的應用。
二、文件傳輸軟件設計方案的確定
1、程序設計的基本思想
利用VB下的Internet Transfer控件進行文件傳輸。在程序中,通過撥號網絡服務撥號連接到上位機服務器并登錄網絡。在上位機的Windows NT操作系統(tǒng)中安裝FTP網絡服務器程序來接收下位機的FTP服務請求,由下位機控制上載整個文件,文件的傳送是在相關的FTP協(xié)議控制下實現的,安全性、準確性比較高。用FTP的SEND命令,當文件傳送到服務器時會自動累加到文件結尾處。因此,程序設計的基本思路是:
(1)利用VB的集成開發(fā)環(huán)境與其豐富的“可視化”控件完成應用程序中Windows風格的界面;
(2)利用Mscomm控件進行撥號連接;
(3)利用Internet Transfer控件進行文件傳輸;
(4)定時傳送、定時累加文件的功能用VB的定時器Timer控件實現。
2、建立FTP文件傳輸協(xié)議的連接
在使用FTP協(xié)議時,首先要建立起控制連接。這就要用到服務器的*端口號21,客戶控制進程在本地申請得到1個隨機分配的本地端口,用此端口號就可以和服務器的*端口號21建立一個相關(一個相關包括5項內容:協(xié)議、本地地址、本地端口、遠地地址、遠地端口)。這樣就建立了控制連接。由于建立數據連接要由服務器提出申請,但是在控制連接的條件下客戶機發(fā)出數據請求的命令時服務器才會發(fā)出這個申請。服務器收到來自客戶機控制進程的數據請求命令后,首先生成1個傳輸子程序。傳輸子程序再去申請1個端口號形成自己的半相關,這個端口號一般使用保留斷口號20。此外,因為還需要客戶機的半相關才能形成一個相關,而客戶機的半相關還是服務器傳輸進程要申請建立數據連接的對象。這個半相關是從客戶控制進程那里得來的。這是由于服務器數據傳輸子程序已經申請了1個新端口,客戶機傳輸進程就不需要申請新的端口了。服務器傳輸進程就利用由控制進程轉過來的客戶地址和端口建立起一個相關,從而具備了向客戶機申請數據連接的條件。因此,客戶機的“協(xié)議、地址、端口號”這一半相關,分別和服務器的控制端口、傳輸形成的二個半相關成了二個*不同的相關,用以建立控制連接和數據連接。這個過程和相關的形成如圖2所示。
圖2 FTP二個連接及二個半相關
三、遠程文件傳輸程序的設計
1、創(chuàng)建應用程序的窗體
窗體是VB應用程序的1個基本平臺,幾乎所有的控件都要添加在窗體上,而大多數的應用程序也是從窗體開始的。本程序由3個窗體組成:主窗體(mainform)、屬性設置窗體(frmproperties)和傳送過程窗體(frmcancel)。在創(chuàng)建VB的新工程時,系統(tǒng)自動在工程中添加1個窗體Form1。改變Form1的“名稱”屬性為“mainform”,將它作為程序的主窗體。利用窗體編輯器和屬性編輯器對窗體的屬性進行更改以確定窗體的狀態(tài)與行為。
為實現應用程序的各種功能,要在窗體上添加各種控件。主窗體如圖3所示。
圖3 主窗體界面
添加的主要控件有:SSTab控件:命令按鈕控件(CommandButton)、文本框控件(TextBox)、選擇鈕控件(OptionButton)、狀態(tài)條控件(StatusBar)、定時器控件(Timer)、串行通信控件(Mscomm)、網絡傳輸控件(Internet Transfer)。
傳輸過程窗體較簡單,只有1個文本控件來顯示提示,還有1個用來中斷本次傳輸過程的按鈕。
2、程序中主要控件的使用
(1)定時器的應用
每個定時器都必須依附在窗體上,但是它在運行時是不可見的。定時器最主要的二個屬性是Enabled和Interval。在“遠程文件傳輸程序”中,由于要完成“自動文件傳輸”的功能,總共用了6個定時器。它們在程序中的作用如下:
定時器StandardTimer被設置成1個標準的計時器,Interval屬性設置為60000ms,即標準的1min。由于定時器的時間間隔最多為65535ms,而程序中文件的累加、自動撥號、自動登錄傳送等功能均在分鐘級以上,所以在StandardTimer的Timer事件中再設置1個分鐘計數器——全局變量Minutes。每次StandardTimer產生Timer事件時,處理Minutes自加,并根據要求啟動文件的累加、自動撥號、自動登錄傳送等定時開始的工作。
(2)Mscomm控件
Mscomm控件提供了一系列標準通信命令的使用界面。使用它可以建立與串行端口的連接,通過串行端口連接到其它通信設備(例如調制解調器),發(fā)出命令,交換數據,并監(jiān)視和響應串行連接中發(fā)生的事件和錯誤。利用Mscomm控件控制調制解調器撥號連接上位機進行通信。
正確地設置屬性之后,編寫OnComm事件的處理代碼是至關重要的。CommEvent屬性返回最近發(fā)生的通信事件和錯誤的代碼值。依據不同的CommEvent屬性值進行不同的處理。主要的處理如下:
當發(fā)生錯誤時,無論是手動還是自動傳送狀態(tài),都要進行以下幾步操作:①顯示錯誤信息;②斷開Internet控件的FTP連接(Intel.Close);③向端口輸出掛線命令“ATH0”(Mscomm1.OutPut=“ATH0”);④設PortOpen屬性為False,關閉端口(Mscomm1.PortOpen=“False”);⑤等待下一次的撥號。
當自動撥號成功連接時(在接收的字符中檢測到連接成功的回報碼),啟動自動傳送定時器AutoSendTimer,準備建立網絡的FTP連接。
(3)Internet Transfer控件
Internet Transfer控件支持超文本傳輸協(xié)議(HTTP)和文件傳輸協(xié)議(FTP),它們是Internet網上使用二種協(xié)議。使用HTTP協(xié)議,可以連接信息網(World Wide Web)服務器,以檢索HTML文檔。使用FTP協(xié)議可以在FTP服務器上登錄,以下載和加載文件。在此,利用文件傳輸協(xié)議FTP 來上載文件,并完成以下幾方面的工作:①設置控件的屬性;②在程序中用Execute方法來執(zhí)行對遠程服務器的請求;③在StateChanged事件中,處理連接中的狀態(tài)和錯誤,當返回值為12時,說明文件上載成功,在自動和手動傳送二種不同情況下,各自進行不同的處理,也存在相同的任務,如刪除下位機上用于傳送的舊文件,準備累加新的數據文件;關閉FTP文件服務的連接和串行接口。
3、遠程文件傳輸軟件的主要功能
(1)該軟件在Windows95下,與系統(tǒng)監(jiān)控軟件同時運行,定時自動撥號連接和自動傳送文件。
(2)可進行自動和手動二種方式的文件傳輸。在數據文件的傳送過程中,從主窗體上可顯示狀態(tài)信息;
(3)單擊主窗體的“端口設置”按鈕會彈出“屬性”窗體,用戶可以對串行端口的參數進行設置;
(4)可按用戶的要求定時進行數據文件的累加和傳送;
(5)主窗體上,用戶可以對如下內容進行輸入設置,即:①自動和手動的選擇;②服務器IP地址;③被傳送的文件路徑;④傳送時間間隔(用1個全局變量來保存)
(6)對上述用戶的設置(包括對串行端口的設置),每當用戶重新設置時,程序都用注冊表操作函數SaveSetting將它們保存在Windows操作系統(tǒng)的注冊表中。在下一次使用應用程序時,主窗體載入引發(fā)的Form_load事件中,用注冊表操作函數GetSetting將存儲的值取回,恢復用戶上次結束應用程序前的設置值。
四、Delphi數據庫應用程序的設計
利用Delphi的客戶/服務器功能,可以在本地數據庫上或遠程數據庫服務器上開發(fā)客戶/服務器模式的應用程序。Delphi的一個強有力的功能是可以將基于本地桌面數據庫系統(tǒng)的應用程序很容易地修改成客戶/服務器模式的應用。1個Delphi數據庫應用程序訪問的是本地數據庫還是遠程SQL數據庫服務器上的數據庫,這對于最終用戶是*透明的,即數據庫的物理位置對最終用戶是透明的。當數據庫的物理位置發(fā)生變化時,用戶界面不必隨之變化。
1、遠程數據庫的程序設計
程序要求建立服務器端數據庫,自動輸入現場上傳的數據,實現數據的處理、保存、修改及查詢功能。程序調用Delphi4.0中的可視組件,并使用Object Pascal編寫程序代碼。
程序分為3個模塊:程序主窗體、數據的自動插入及文件刪除和數據查詢。主窗體(mainform)起到樞紐的作用,既可以觀察數據庫的狀態(tài),又可以調用另2個模塊。數據的自動輸入及文件刪除模塊(form3)為最主要的模塊,它實現了文本文件的自動打開和輸入、多組數據的輸入、文本文件的刪除和數據庫的編輯與儲存。查詢模塊(Form1)提供了查詢功能,在編輯框內輸入格式的日期就可以顯示該時間所存儲的數據。程序流程圖如圖4所示。
圖4 遠程數據庫程序框圖
2、數據庫應用程序主窗體
程序的主窗體實現數據庫的顯示以及調用數據輸入和查詢模塊。它是由3個TSpeedButton、TDatasource、TTable和TDBGrid組成,如圖5所示。
圖5 數據庫應用程序主窗體
3、讀入文本文件中的數據及舊文件的刪除
為了實現對文本文件中數據的讀入功能,使用Dialogs標簽頁中的TOpendialog組件,并設置它的默認目錄為C:\bishe。同時,在窗體中放上2個TMemo組件和幾個TSpeedButton組件,把TMemo的屬性“lines”設置為空。
(1)數據的插入、修改及刪除
在窗體上放上TDBNavigator及19個TDBEdit控件,并設置TDBNavigator和TDBEidt的Datasource屬性為MainForm.Datasourcel,設置TDBEidt的DataField屬性為相應的字段名。其功能實現如圖6所示。
圖6 數據讀入、保存及文件刪除示意圖
(2)查詢功能的實現
由于數據庫預設的主鍵為“時間”,所以,通過輸入對比主鍵(時間)的值,聯合使用Findkey和Gotonearest方法,可以實現查詢功能。程序運行過程如圖7所示。
圖7 數據查詢功能示意圖
(3)程序的擴充修改
首先,在Delphi的Object Inspector中打開Bishe工程。修改所有Database Name、Table Name屬性為空,且Active屬性為false。然后,打開Database Desktop,打開名為Bishe的表格。使用Restructure修改表格,添加字段名、數據類型、數據長度。存儲后退出。
在Form1和Form3中添加相應數目的TDBEidt,并仿照原來的屬性修改,同時,修改所有Database Name的屬性為DefaultDD,Table Name屬性為Bishe,且Active屬性為true。在Form3的原代碼中添入代碼:DBEidti.text=Memol.lines[1];
五、結束語
在工業(yè)生產過程中,對于生產現場與管理層之間相距較遠的情況,遠程數據傳送技術的應用具有十分重要的意義。本文對上、下位機進行相應參數的設定并配置調制解調器,利用電話線構成計算機遠程自動撥號網絡。采用VB語言編制傳輸軟件,實現了遠程數據傳送。上位機采用DELPHI4.0語言編程,數據庫采用PARADOX格式,具有可修改、可擴充功能。該軟件實現了文本文件中的多組數據自動讀入、數據格式化、數據自動寫入數據庫的功能,并可對數據庫中的數據自動查詢以及對舊文本文件進行刪除。由于考慮到現場的實際應用情況,該軟件具有較高的可靠性和堅固性。本文將其應用在油田聯合站計算機監(jiān)控系統(tǒng)中,將現場生產過程的檢測數據及時地上報管理層,使廠部領導迅速掌握生產情況并進行合理的決策,為實現油田生產自動化管理做了必要的準備。
該軟件可適用于奔騰以上的PC機及服務器,操作系統(tǒng)為Windows95/98/NT的環(huán)境。
免責聲明
- 凡本網注明“來源:化工儀器網”的所有作品,均為浙江興旺寶明通網絡有限公司-化工儀器網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:化工儀器網”。違反上述聲明者,本網將追究其相關法律責任。
- 本網轉載并注明自其他來源(非化工儀器網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
- 如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯系,否則視為放棄相關權利。