APP下载

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

2008-04-24吴英友,原春晖,潘亚军

中国舰船研究 2008年2期
关键词:条形码条码应用程序

1 引 言

对噪声振动进行测试时,常常需要上百个甚至更多的传感器。对各个通道传感器灵敏度系数的设定,以前的作法是测试人员手工一个个地操作,工作量大且容易出现错误。现在已经出现解决方法,即利用支持TEDS(Transducer Electronic Data Sheet)技术的采集前端和传感器。采集系统可以识别连接在采集前端上的传感器,并调用传感器内部元件存放的灵敏度系数应用在对应的通道上,完成通道的灵敏度系数设定。但是目前只有如PCB、B&K等外国公司生产的传感器才支持TEDS技术;国内生产的噪声振动传感器仍未能支持TEDS技术。另外,各个实验室现有大量早期的(进口)传感器由于仍然完好,且价值不菲,仍将长期使用,TEDS技术于事无补,需要另觅解决传感器识别的方法。

2 条形码技术

条形码别名条码,条形码是由美国的N T.Woodland在1949年首先提出的[1]。条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则(码制)编制而成,用来表达一组数字或字母符号信息的图形标识符,或者说条形码是一组粗细不同,按照一定的规则安排间距的平行线条图形。常见的条形码由反射率相差很大的黑条(简称条)和白条(简称空)组成的。

随着计算机应用的不断普及,条形码的应用得到了很大的发展。条形码可以标出商品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,因而在商品流通、图书管理、邮电管理、银行系统等许多领域都得到了广泛的应用。条码的应用有如下优越性:

1) 可靠准确

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

2) 数据输入速度快

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

3) 经济便宜

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

4) 灵活、实用

条码符号作为一种识别手段可以单独使用,也可以和有关设备组成识别系统实现自动化识别,还可和其他控制设备联系起来实现整个系统的自动化管理。同时,在没有自动识别设备时,也可实现手工键盘输入。

5) 自由度大

识别装置与条码标签相对位置的自由度要比OCR大得多。条码通常只在一维方向上表达信息,而同一条码上所表示的信息完全相同并且连续,这样即使是标签有部分缺欠,仍可以从正常部分输入正确的信息。

6) 设备简单

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

7) 易于制作

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

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

通过对条形码技术的分析,我们认为条形码技术可以妥善解决传感器识别的难题。但是,识别传感器之后,仍需将其所对应的灵敏度系数输入数据采集软件才能完成通道灵敏度系数的设定。目前,中国舰船研究设计中心在噪声振动测量中使用的是Bruel & Kjar公司的PULSE系统,其软件版本是PULSE8.0。PULSE软件为用户扩展功能提供了Automation技术,基于此,我们使用Visual C++6.0,利用COM技术、Automation技术和PULSE组件技术实现了将传感器灵敏度输入数据采集软件。

组件对象模型COM(Component Object Model)是微软公司提出的一种开发和支持软件对象组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序、操作系统已经其它组件提供服务。通过引入接口机制,把组件的功能和具体实现分离开来,为组件复用提供了强有力的底层支持。微软的许多技术,如ActiveX、DirectX已经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为用户提供了外部控制和数据输出的机制,这就是OLE和ActiveX Automation技术。在PULSE中所有的数据都被封装成对象的形式,并形成树形结构,如图2所示,这样就可以通过根对象对所有的其它对象进行访问。Application对象是根对象,通过这个对象的Project属性,就可以访问PULSE所有的对象。这个对象具有一些操纵集合的方法和属性,如Add,Remove,Item和Count属性,通过这些方法和属性就可以对集合对象进行相应的操作,比如插入、删除等。熟悉了PULSE的组件对象模型的逻辑结构之后,我们就能够正确地在我们的程序中操纵PULSE软件。其步骤如下:

1) 将PULSE的类型库pulse.tlb添加到VC++6.0的工程项目中,可以通过#import "Pulse.tlb" no_namespace将PULSE类型库添加到项目中;

2) 初始化COM,缺省的VC++6.0工程项目中,是不会初始化COM的,我们可以通过在App的InitInstance()函数中添加AfxOleInit()函数的方式来初始化COM。

3) 定义一个PULSE的根对象Application,如上文所说的那样,借助这个根对象,就可以操纵PULSE的所有对象。

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

IPulseLabShopPtr m_PulsePtr;

//创建Application的实例

HRESULT hr = m_PulsePtr.CreateInstance(__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.

猜你喜欢

条形码条码应用程序
热线互动
创意条形码
浅析影响商品条码质量的主要因素
日杂商品条码质量现状研究
删除Win10中自带的应用程序
从条形码到二维码
谷歌禁止加密货币应用程序
有趣的条形码
ISSN条码的制作和印前输出要点
条形码也有春天