赵建华,郭 奔
(西安工业大学 电子通信工程学院,陕西 西安 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.