趙建華,郭 奔
(西安工業大學 電子通信工程學院,陜西 西安 710032)
隨著工業自動化,尤其是機器視覺行業的發展,對圖像采集設備的速度和性價比的要求越來越高。其中,GigE Vision相機[1]因為其傳輸速度快、性價比高、操作簡單等優點越來越受到人們的青睞。在國內,具備獨立開發GigE Vision相機能力的只有大恒,盈科視控等屈指可數的幾個廠家而已,XML配置文件做為GigE Vision相機的一個關鍵技術很有研究的意義。
一個符合GigE Vision協議的相機必須使用XML設備配置文件,而且必須具有解析XML設備配置文件的能力,相機可以通過解析XML設備配置文件在與應用程序建立連接時通過寄存器來得到足夠的有效信息。XML設備配置文件有以下幾個特點:
1)獨立性。XML文件可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 它提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。
2)可維護性。XML文件是以文本格式存儲的,十分便于閱讀;另外,它的內容和語法都比較簡單,應用開發者并不需要花費大量的時間來學習。這些因素決定了XML設備配置文件的維護成本很低。
3)易用性。對于任何支持GigE Vision相機[2]的軟件來說,不需要對XML設備配置文件做任何修改就可以保證相機正常使用,而不需要使用相機廠家指定的上位機軟件。
XML文件在GigE Vision協議[3]中被稱為XML設備配置文件,它描述了相機的配置情況,以及上位機軟件能夠如何控制相機[4]。使用GigE Vision相機需要配合上位機,用來提供操作相機的界面,以及解析XML設備配置文件,目前比較主流的該類軟件主要有 Balser公司的 Pylon,JAI公司的 JAI Control,NI的 Vision Acquisition,另外還有 Halcon 等,本文以JAI Control為例進行說明。
如圖1所示,為XML配置文件的工作流程。在正式開始工作之前,要連接好相機的電源和網線,然后打開JAI Control軟件。

圖1 XML配置文件使用流程Fig.1 Use flow of XML configuration file
第一步,讀取XML配置文件。JAI Control首先會從相機內寄存器地址為0x0200,長度為512字節的地址區域中確定XML設備配置文件的實際存儲位置,然后讀取這個XML設備配置文件;如果該地址無效,就會從寄存器地址0x400長度為512字節的地址區域中再讀取一個XML配置文件。讀取到的內容有3種形式,第一種為“Local:acme_titan_rev1.zip;1C400;A000”,表示 XML文件保存在本地磁盤中地址0x1C400開始的大小的0xA000的區域中;第二種為“http://www.acme.com/camera/acme_titan_rev1.xml”,表示XML配置文件保存在該網址中,需要通過網絡讀取;第三種為“File:acme_titan_rev1.zip”,表示存儲在上位機軟件的某個目錄中。
第二步,解壓XML文件。由于XML配置文件一般會比較大,通常在1萬到2萬行左右,所以,相機既支持以.zip為后綴名的壓縮XML文件,也支持以.xml為后綴名的非壓縮XML。如果讀取到的是壓縮文件,就會對其進行解壓,如果接收到的是非壓縮文件,則跳過該步驟。
第三步,XML文件解析[5]。XML文件解析器是整個功能實現過程中最重要的一個部分,它會檢查該XML設備配置文件的語法正確性以及是否嚴格符合GenICam協議規定的XML結點規范。如果檢測到任何錯誤,JAI Control軟件會停止進行并報錯。
第四步,創建用戶界面接口。XML文件解析完成后,JAI Control軟件會根據XML設備配置文件的內容創建各個控制結點,并初始化各個結點的值及其相關數據。例如,在創建“Width”結點時,不僅設置了它的初始值,還設置它的最大值、最小值、遞變量、寄存器地址、顯示名稱等信息,這些值都是在“Width”結點描述符中直接設定的。
第五步,等待用戶的其它操作。此后,相機開始等待用戶的操作,XML配置文件將不再起作用。
相機的每個功能都被描述為一個結點,當用戶從上位機操作某個功能時,與該功能相對的結點就將當前值更新到相機內部,從而很方便地更新相機的狀態。另外一個方面,XML文件內還可以進行簡單的數值運算,這還可以大大減少相機內部的邏輯量,減少了系統開銷。XML設備配置文件中的每個結點只描述一個功能,每個結點都有一個特定的結點類型和一個特定的接口。
在XML設備配置文件中,每一個功能都對應一個結點,而每個結點都通過一個結點描述符來表示,結點描述符內包含若干個屬性描述符來描述結點的具體功能,一個結點描述符的標準格式如下:
<NodeType Name=”NodeName” NameSpace=”Standard”>
<PropertyType>PropertyValue</PropertyType>
</NodeType>
NodeType表示結點類型,常用的結點類型有Integer、Float、String、Enumeration、Command、Boolean、Register、Category等,每個結點都對應一個可視化圖形界面;NodeName表示結點名稱,它可以作為變量名提供編程接口給Visual Studio,具體的接口函數因使用的開發包而不同;另外一個參數NameSpace的值如果為Standard,則表示這個結點的名稱是GenICam標準中定義的名稱,如果該值為Custom,則表示這個結點的名稱是用戶自定義的,該功能并不具有普遍性。與結點相關的內容因結點的類型不同而有很大差別,比如,Integer類型會映射到一個帶有 value、min、max和 increment的滑動條,而String類型會映射到一個顯示字符串的編輯框,Enumeration類型則映射到一個下拉框,而Command映射到一個命令按鈕。
XML配置文件內包含一個RegisterDescription標簽,所有的結點描述都包含在RegisterDescription標簽內部,組成了整個XML設備配置文件,格式如下:
<RegisterDescription ModelName=“AGSF_200_50m”……>
<! -------結點描述符 1------------->
<! -------結點描述符 2------------->
......
<! -------結點描述符 n------------->
</RegisterDescription>
RegisterDescription標簽的內容包含兩部分,第一部分是相機信息描述,主要描述相機型號,生產廠商等信息,即ModelName以及后面省略的部分;另外一個部分是相機功能描述,主要描述相機的功能配置,在結點描述符部分。在一個完整的XML配置文件中,結點描述符還會被Category標簽分成若干個組,以便操作。

圖2 XML配置文件界面Fig.2 Interface of XML configuration file
如圖2所示,JAI SDK軟件讀取XML配置文件[6]后顯示的用戶配置界面。這個界面中所有的控制結點都是通過編寫XML設備配置文件來實現的,正常情況下,會使用Category標簽和pFeature標簽將這些控制結點分成若干個組,如上圖中的a、b、c、d組,這樣做不僅看起來美觀,而且容易管理。
另外,對XML還進行了其它上位機軟件的兼容性測試,測試結果如下:

表1 使用XML文件的相機兼容性測試Tab.1 Compatibility testing on GigE camera
在測試的4個軟件中,只有Pylon一款軟件表現出不兼容,經過分析發現,這是由于該軟件添加了對相機廠家的識別過程,并屏蔽了其他廠家的相機。由以上測試結果可知,使用了XML配置文件的GigE相機軟件兼容性基本令人滿意,這就使用戶在選擇上位機控制軟件時有了更多的選擇。
本文在JAIControl軟件環境中,通過修改XML文件的方式配置了不同的用戶操作界面接口,該方法完全不同于以往基于圖形庫開發界面接口的方法,易于操作、修改方便。通過實際操作,我們發現XML設備配置文件為GigEVision相機的使用、開發、維護都提供了巨大的便利,降低了開發難度,提高了開發人員的工作效率,而且使相機的維護升級都變得更加容易。因此,XML設備配置文件具有很強的使用價值。
[1]花再軍,黃鳳辰,陳釗.GigE Vision接口攝像機及其應用[J].微型機與應用,2011,30(21):92-94.HUA Zai-jun,HUANG Feng-chen,CHEN Zhao.GigE vision interface and application to the camera[J].Micro Computer and Application,2011,30(21):92-94.
[2]鄭修勇,古樂野.基于Windows7系統的GigE工業相機網絡接口程序設計[J].計算機應用,2014,34(S1):38-39,42.ZHENG Xiu-yong,GU Le-ye.GigE industrial camera network interface programming based on windows7[J].Computer Application,2014,34(S1):38-39,42.
[3]MI 48104-3724,GigE Vision Specification Version 1.0[S].2013.
[4]羅尤春,孫容磊.機器視覺理論及應用[J].軟件導論,2014,13(3):13-14.LUO You-chun,SUN Rong-lei.Machine vision theory and application[J].SoftWare Guide,2014,13(3):13-14.
[5]王磊,張紅梅,姚保峰,等.XML文檔解析技術研究[J].常州工學院學報,2013,26(5):36-41.WANG Lei,ZHANG Hong-mei,YAO Bao-feng,et al.XML document parsing technology research[J].Journal of Changzhou Institute of Technology,2013,26(5):36-41.
[6]孫志亮,霍俊杰,陳艷艷.基于XML技術的數據通信研究[J].信息通信,2014(1):30-31.SUN Zhi-liang,HUO Jun-jie,CHEN Yan-yan.Data communication research based on the technology of XML[J].Information&Communications,2014(1):30-31.