2023年11月30日发(作者:)

条形码技术在传感器上的应用

吴英友;原春晖;潘亚军;陈炯

【摘 要】噪声振动测试往往需要大量的传感器,但早期的进口传感器和迄今为止国

内生产的传感器都未能实现自动识别.应用这些传感器,采集系统的通道灵敏度系数

需要手工设定.通过应用条形码技术读取传感器的序列号和灵敏度系数并保存到

MS Word文档,PULSE系统提供的组件对象模型以及COM技术、

Automation技术的基础上,Visual C++设计应用软件,进行PULSE系统软件与

微软的Office程序Word之间的数据交换,很好地实现了采集系统通道灵敏度系数

的设定,缩短了操作时间,也节省了购买TEDS传感器的经费.

【期刊名称】《中国舰船研究》

【年(),期】2008(003)002

【总页数】3(P74-76)

【关键词】条形码;传感器;Automation技术;噪声振动测量;PULSE系统

【作 者】吴英友;原春晖;潘亚军;陈炯

【作者单位】中国舰船研究设计中心,湖北,武汉,430064;中国舰船研究设计中心,

,武汉,430064;中国舰船研究设计中心,湖北,武汉,430064;中国舰船研究设计中心,

湖北,武汉,430064

【正文语种】

【中图分类】TP212

1

对噪声振动进行测试时,常常需要上百个甚至更多的传感器。对各个通道传感器灵

敏度系数的设定,以前的作法是测试人员手工一个个地操作,工作量大且容易出现

错误。现在已经出现解决方法,即利用支持TEDS(Transducer Electronic Data

Sheet)技术的采集前端和传感器。采集系统可以识别连接在采集前端上的传感器,

并调用传感器内部元件存放的灵敏度系数应用在对应的通道上,完成通道的灵敏度

系数设定。但是目前只有如PCBB&K等外国公司生产的传感器才支持TEDS

术;国内生产的噪声振动传感器仍未能支持TEDS技术。另外,各个实验室现有大

量早期的(进口)传感器由于仍然完好,且价值不菲,仍将长期使用,TEDS技术于

事无补,需要另觅解决传感器识别的方法。

2 条形码技术

条形码别名条码,条形码是由美国的N nd1949年首先提出的[1]

条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则(码制)编制而成,

用来表达一组数字或字母符号信息的图形标识符,或者说条形码是一组粗细不同,

按照一定的规则安排间距的平行线条图形。常见的条形码由反射率相差很大的黑条

(简称条)和白条(简称空)组成的。

随着计算机应用的不断普及,条形码的应用得到了很大的发展。条形码可以标出商

品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、

日期等信息,因而在商品流通、图书管理、邮电管理、银行系统等许多领域都得到

了广泛的应用。条码的应用有如下优越性:

1) 可靠准确

采用条形码扫描录入方式,误码率仅有百万分之一,首读率可达98%以上;

2) 数据输入速度快

普通计算机的键盘录入速度是每分钟200字符,而利用条码扫描录入信息的速度

是键盘录入的20倍;

3) 经济便宜

与其它自动化识别技术相比较,推广应用条码技术所需费用较低。

4) 灵活、实用

条码符号作为一种识别手段可以单独使用,也可以和有关设备组成识别系统实现自

动化识别,还可和其他控制设备联系起来实现整个系统的自动化管理。同时,在没

有自动识别设备时,也可实现手工键盘输入。

5) 自由度大

识别装置与条码标签相对位置的自由度要比OCR大得多。条码通常只在一维方向

上表达信息,而同一条码上所表示的信息完全相同并且连续,这样即使是标签有部

分缺欠,仍可以从正常部分输入正确的信息。

6) 设备简单

条码符号识别设备的结构简单,操作容易,无需专门训练。

7) 易于制作

可印刷,对印刷技术设备和材料无特殊要求。

3 COM技术、Automation技术和PULSE组件技术

通过对条形码技术的分析,我们认为条形码技术可以妥善解决传感器识别的难题。

但是,识别传感器之后,仍需将其所对应的灵敏度系数输入数据采集软件才能完成

通道灵敏度系数的设定。目前,中国舰船研究设计中心在噪声振动测量中使用的是

Bruel & Kjar公司的PULSE系统,其软件版本是PULSE8.0PULSE软件为用户

扩展功能提供了Automation技术,基于此,我们使用Visual C++6.0,利用

COM技术、Automation技术和PULSE组件技术实现了将传感器灵敏度输入数

据采集软件。

组件对象模型COM(Component Object Model)是微软公司提出的一种开发和支

持软件对象组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以

给应用程序、操作系统已经其它组件提供服务。通过引入接口机制,把组件的功能

和具体实现分离开来,为组件复用提供了强有力的底层支持。微软的许多技术,如

ActiveXDirectX已经OLE自动化等都是基于COM建立起来的[2]

Automation是指一个应用程序通过某个对象去“操纵”另一个应用程序的机制。

其中,被操纵的应用程序称为Automation Server;操纵其它程序的应用程序称

Automation Client。即Automation服务器提供了一种“暴露”的对象,

Automation客户通过对这种对象的操作来操纵Automation服务器程序。

Automation技术的优势在于:它把不同应用对象集成到一个编程环境中去,所有

对象可被任何支持的编程语言访问。

Bruel & Kjar公司的PULSE组件则是建立在(OLE)Automation基础上的实现若

干标准接口的COM对象。它是PULSE系统的应用开发平台。PULSE组件通过接

口的形式为软件开发者提供了PULSE系统中的绝大多数功能。本文的噪声与振动

测量数据处理系统中主要使用了PULSE组件中的PulseFrontend对象。图2为与

PulseFrontend对象相关的PULSE对象组件结构简图[3]

2 PULSE对象组件结构简图

4 软件与PULSE之间的通信

PULSE为用户提供了外部控制和数据输出的机制,这就是OLEActiveX

Automation技术。在PULSE中所有的数据都被封装成对象的形式,并形成树形

结构,如图2所示,这样就可以通过根对象对所有的其它对象进行访问。

Application对象是根对象,通过这个对象的Project属性,就可以访问PULSE

所有的对象。这个对象具有一些操纵集合的方法和属性,如AddRemove

ItemCount属性,通过这些方法和属性就可以对集合对象进行相应的操作,比

如插入、删除等。熟悉了PULSE的组件对象模型的逻辑结构之后,我们就能够正

确地在我们的程序中操纵PULSE软件。其步骤如下:

1) PULSE的类型库添加到VC++6.0的工程项目中,可以通过

#import "" no_namespacePULSE类型库添加到项目中;

2) 初始化COM,缺省的VC++6.0工程项目中,是不会初始化COM的,我们可

以通过在AppInitInstance()函数中添加AfxOleInit()函数的方式来初始化

COM

3) 定义一个PULSE的根对象Application,如上文所说的那样,借助这个根对象,

就可以操纵PULSE的所有对象。

//定义Application对象的智能指针

IPulseLabShopPtr m_PulsePtr;

//创建Application的实例

HRESULT hr = m_Instance(__uuidof(Application));

//打开PULSE项目文件

OpenProject(sProject,_variant_t((bool)TRUE),_variant_t((bool)FALSE))

//关闭PULSE项目文件

CComVariant DoClose(true);

m_PulsePtr->CloseProject(DoClose);

5 传感器灵敏度系数的自动设定

将传感器都用唯一编号的条形码标记,然后用条形码扫描仪扫描传感器的条形码,

识别传感器序列号和灵敏度系数,并将扫描结果生成word文档。微软的Office

软件也提供了COM技术接口。许多相关文献有详细的论述,这里不再赘述。仅将

实现过程简述一下。操作存放有传感器序列号和灵敏度系数的word文档,同时采

OLE Automation技术操纵PULSE软件,依次拷贝传感器序列号和灵敏度系数

粘贴到PULSE软件的Signal设置中,完成采集前端通道的灵敏度设定。

6

通过应用条形码技术,很好的实现了传感器的识别,缩短了噪声振动数据采集前端

的通道灵敏度系数设定时间,大大的提高了工作效率。同时也使得老式传感器能继

续发挥作用,节省了购买新型传感器的大量经费。

参考文献

[1] 韦元华.条形码技术与应用[M].北京:中国纺织出版社,2003

[2] 潘爱民.COM原理与应用[M].北京:清华大学出版社,1999

[3] 王莉,邱洪泽,等.Automation技术在Word联机考试系统中的应用[J].计

算机技术与应用,2005(3):97-103.