蘇 毅,李明霞
(廣西計量檢測研究院,廣西 南寧 530007)
虛擬儀表是計算機資源、模塊化功能硬件與用于數據分析、過程通信及圖形用戶界面的應用軟件的有機結合。它通過采集現場數據,利用軟件在屏幕上生成各種儀表面板,完成對數據的處理、表達、傳送、存儲、顯示等功能[1]。高效的軟件,模塊化的I/O硬件和數據傳輸網絡是構建虛擬儀表系統的關鍵。本文以糖廠虛擬儀表系統開發為例,介紹虛擬儀表系統的開發過程和方法。
控制器局域網絡(controller area network,CAN),是一種有效支持分布式控制或實時控制的串行通信網絡,為分布式控制系統實現各節點之間實時、可靠、靈活的數據通信提供了強有力的技術支持?;贑AN總線的分布式控制系統在以下3方面具有明顯的優越性[2]:
(1)CAN控制器的工作為多主方式,網絡中的各節點都可根據總線訪問優先權(取決于報文標識符),采用無損結構的逐位仲裁的方式競爭向總線發送數據。CAN協議廢除了站地址編碼,取而代之的是對通信數據進行編碼,這可使不同的節點同時接收到相同的數據。這些特點使得CAN總線構成的網絡各節點之間的數據通信實時性強,并且容易構成冗余結構,提高系統的可靠性和靈活性。
(2)CAN總線通過總線收發器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連,CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低電平或懸浮狀態。這就保證不會出現當系統有錯誤、多節點同時向總線發送數據時,導致總線短路,從而損壞某些節點的現象。而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,從而保證不會出現在網絡中因個別節點出現問題,使得總線處于“死鎖”狀態。
(3)CAN的完善的通信協議可由CAN控制器芯片及其接口芯片來實現,從而大大降低系統開發難度,縮短了開發周期。另外,CAN總線是具有通信速率高、容易實現、且性價比高等諸多特點,是一種已形成國際標準的現場總線。
虛擬儀表利用軟件在屏幕上生成各種儀表面板,完成對數據的處理、表達、傳送、存儲、顯示等功能。與傳統儀表相比,其主要優點是可以由用戶自己定義、設計儀表系統,以滿足不同的要求,使儀表的功能更加強大、靈活,而且很容易同網絡、外設及其他應用相連接。這樣既降低了價格,節省開發、維護的費用,又縮短了技術開發周期。虛擬儀表的關鍵技術就是應用軟件,這是因為虛擬儀表的主要功能是由軟件來體現的,即“軟件就是儀表”。通過虛擬儀表,工業設備變得越來越簡單,功能越來越強,并將在未來的工業發展中起到主導的作用[3]。
針對糖廠監控的生產參數多、工藝變化多、位置分散的特點,選擇協議簡單開放、容錯能力強、實時性高、安全性好、成本低、適于頻繁交換的CAN總線構建數據通信網絡。虛擬儀表系統由中央虛擬儀表單元和現場采集單元構成(見圖1)[4-5]。現場采集單元由工控機及采集、存儲、顯示和CAN通信模塊組成,對糖廠各車間測量儀器進行數據的實時采集,完成數據調理、存貯和通信;中央虛擬儀表單元可以從現場采集單元獲取數據并完成數據監測、數據統計、報表、打印及數據庫管理。在這個網絡中,中央虛擬儀表單元處于主控位置,而現場采集單元可以隨時響應中央監控單元的命令。
Iocomp Components是一個面向仿真、工業自動化、科學、儀表等數據圖形領域的通用組件包。包含了豐富的應用在Delphi等Windows開發工具的嵌入式控件,包括各種形式的報警器、測量、棒圖、LED、儀表、數碼管、計數器、百分比、選擇器、滑塊、開關、趨勢圖形等48種面板指示控件,提供一個強大的虛擬儀器儀表工具庫,可以方便快捷地開發出各種人機界面友好的工業控制軟件,是一款很實用的虛擬儀表開發組件。
串口通信控件Spcomm是Delphi實現串口通信的較簡單的方法,該控件具有豐富的與串口通信密切相關的屬性及事件,提供了對串口的各種操作,而且支持多線程。

圖1 虛擬儀表網絡結構
中央虛擬儀表單元采用Delphi可視化開發平臺,嵌入Iocomp組件實現虛擬儀表功能和界面。分為界面、事務處理、數據庫3層結構,見圖2。界面部分實現虛擬儀表的界面顯示和與系統相關的可視化操作界面;事務處理部分負責工控機與工控機-CAN適配器節點間的通信、數據統計與分析、報表處理和數據庫管理與備份等。工控機-CAN適配器在系統中負責實現CAN協議和RS232串口協議的轉換,由CAN總線通信模塊和串口通信模塊組成。

圖2 中央虛擬儀表單元系統層次圖
現場采集單元,可分為CAN總線驅動模塊、數據采集模塊、數據分析模塊和驅動外設模塊,見圖3。其中,CAN總線驅動模塊負責CAN接口控制器的配置,實現與網絡中其他節點在CAN協議下的通信;數據采集模塊負責現場各種數據的采集;數據分析模塊負責對所采集的各種數據進行分析并給出結果;驅動外設模塊負責執行來自中央虛擬儀表單元的命令,各驅動外部聯動設備及時接收并執行。

圖3 現場采集單元軟件功能模塊
(1)工控組件Iocomp的安裝。在Windows平臺下安裝Delphi7.0,然后安裝工控組件Iocomp:用Delphi打開Iocomp70.dpk文件→點擊Compile→點擊install即可。圖4是安裝好的Iocomp組件。
(2)在Delphi下安裝串口通信控件Spcomm。選擇Delphi7.0的“Component”菜單,點擊“Install Component...”菜單項,然后在彈出的Into existing package屬性頁中Unit file name輸人框中選擇SPCOMM.pas文件,單擊兩次“OK”按鈕后,就可以將Spcomm控件安裝到Delphi7.0的System組件頁上。
(3)根據需求,在delphi7.0下,用Iocomp控件設計編碼虛擬儀表的界面和屬性[6-7],如圖5所示。然后,借助Spcomm控件,實現與PC-CAN適配器的通信,讀取現場采集單元通過CAN總線傳送的測量設備數據。
(4)Spcomm控件串口通信的實現。Spcomm串行通信控件具有多線程的特性,接收和發送數據分別在兩個線程內完成,接收線程負責收到數據時觸發 OnReceiveData事件;用 WriteCommData()函數將待發送的數據寫入輸出緩沖器,發送線程在后臺完成數據發送工作。在接收和發送數據前需要初始化串口,用StartComm方法打開串口,退出程序時用StopComm方法關閉串口。實現PC機與PC-CAN適配器之間的數據發送及接收需要以下5 個步驟[8]:
1)初始化并打開串口。需要選擇本次通信使用的串口,確定通信協議,即設置波特率、校驗方式、數據位、停止位等屬性,打開該串口。示例代碼如下:

圖4 Iocomp組件

圖5 虛擬儀表界面

2)建立握手信號。實現PC機與下位機之間的通信,首先要調通它們之間的握手信號,握手信號可以隨意選擇某特定字符串。當PC發出這樣一幀數據后,通過接收事件能收到下位機返回的這一幀數據或特定的某字符串,則表示握手成功,系統通信正常,兩者之間就可以按照協議相互傳輸數據;否則需重新建立握手信號。
3)發送數據。在編寫基于串口的計算機工業測控時,通常需要由PC機向下位機發送命令以控制下位機的行為,同時向下位機發送有關數據。利用Spcomm串口控件向下位機發送數據示例代碼如下:

4)接收數據。在編寫基于串口的計算機工業測控時,通常需要由下位機向PC機發送數據,以使PC機了解系統的測試數據或下位機的運行狀態,并進而控制下位機的行為。利用Spcomm串口控件接收下位機發送的數據信息的示例代碼如下:


5)關閉串口。在系統開發中,應注意在不使用串口時及時關閉串口,釋放系統資源,否則可能會影響系統的其他應用。關閉串口的代碼如下:

采用CAN總線技術和虛擬儀表技術相結合的設計思路,實現了糖廠生產車間技術參數的實時檢測和動態顯示,以及數據傳輸的穩定性、安全性、準確性、實時性滿足制糖企業要求,達到了集中監控的目的。虛擬儀表給用戶很大的自由度,可以隨時通過虛擬儀表軟件設計增加或刪除儀表,節省大量的硬件資源。虛擬儀表利用可視化編程環境,設計通用的圖形化軟儀表面板,方便實現測量儀器的自動化、智能化,具有廣泛的應用前景。
[1]龔崇權.基于現場總線技術的虛擬儀器開發[J].微計算機信息,2006,22(2):177-178.
[2]饒運濤,鄒繼軍.現場總線CAN原理與應用[M].北京:北京航空航天大學出版社,2003.
[3]朱祖濤,茅大鈞,毛靜濤.虛擬儀表與虛擬多用表的設計原理[J].上海電力學院學報,2001,17(2):31-34.
[4]李訓文,曹國華,常鍵.基于虛擬儀器的特性測試參數數據庫的設計與實現[J].電子工程師,2007,33(5):9-11.
[5]任鑫,楊建國.基于虛擬儀器技術的溫度監控系統的研發[J].微計算機信息,2009,25(10):89-90.
[6]蒙燕玫,蘇建軍.甘蔗煮糖過程參數自動監測系統的研究[J].機械與電子,2008(12):28-30.
[7]許江淳,許曉平.低成本自動化系統在糖廠工藝參數監控中的應用[J].微計算機信息,2004,20(9):12-13.
[8]周果宏,羅述謙,羅起.Delphi程序設計[M].北京:清華大學出版社,2001.