刘绪宏
(艾迪悌新涛科技(上海)有限公司,上海
摘 要:简要介绍了面向对象的脚本语言Ruby以及使用Ruby开发基于
平台的仪器设备自动测试与数据采集程序的方法,并辅以具体实例对其要点加以说明。
关键词:Ruby;GPIB;DAQ;OLE自动化
中图分类号:TP311. 52 文献标识码
在实验环境中,经常需要从仪器设备上读取测量结果以
备后续处理。少量数据可以手工抄录,但如果数据量较大或
者需要反复测量,人工抄录效率低下且容易出错。则需要利
用计算机进行自动测试与数据采集。本文介绍了利用
脚本语言对这一目标的实现。
1 案例分析
以笔者的项目为例,一批PC-Clock芯片,要求在不同的
电压、工作频率及工作模式下测试,每颗芯片需测量的指标近
千项,并将测量结果写入Excel文件。测试平台如图1,一块
待测的目标板,通过串口控制,另有Motech数字电源
和Lecroy数字示波器WaveMaster 8600A,都通过GPIB与
机插槽上的GPIB卡相连,GPIB卡为National Instruments公司
的NI-488. 2卡。要求程序访问目标板上芯片寄存器,设置芯
片工作模式和频率,控制电源的输出电压电流,调整示波器的
测量模式和量程等,然后读出示波器测量结果,保存到
文件。
图
比较好而且相对简单的一种办法是用NI Labview或者
HP VEE Pro软件,利用虚拟仪器进行操作和实现数据采集。
另一种方式是使用原生语言,如C/C++。但存在编程和
调试复杂,特别是对字符串操作的支持不够好。
Ruby是自由软件,具有强大的字符串操作功能,它完全
面向对象,代码具有高度的可重用性,其迅速和简便性,使实
现一种低成本、开发快捷、维护修改灵活的方案成为可能。
2 Ruby语言简介
Ruby(中文意为红宝石)是一种用于迅速和简便的面向
对象编程的解释性脚本语言。具有以下一些特点
解释性脚本语言:强大的字符串操作和正则表达式,开发
中快速回馈;面向对象编程:任何事物都是一个对象,类,继
承,方法等,单态方法,模块糅合,迭代器和闭包;迅速和简便
无需变量声明,变量无类型,语法简单而坚实,自动内存管理
以及,多精度整数,异常处理模式,动态装载,线程安全。
Ruby是自由软件,目前的稳定版本的Ruby是1. 8. 1,可
以在http: //www. ruby-lang. org/en/下载。Ruby是跨平台的
语言,虽然更亲近Linux,其对MicrosoftW indows也提供了非
常好的支持。
3 Ruby基本语法及特性
Ruby与C++、Perl或Python有一些极为相似之处(尤其
是Python语言)。下面简单介绍一下其语法。
语法风格:Ruby以#作为注释的分隔符。函数(方法)定
义以def开始,以end结束,类定义以class开始,以对应的
结束,而不像Python以缩进方式或者C语言的花扩号(“{”
“}”)方式。与Perl或者C语言不同, ruby不需要行结束符
(但实际加上”;”也不会报错)。
变量命名规则:变量(以及常量)无类型,通过首字母标
识符分类,常量以大写字母开头,全局变量以$开头,局部变
量以小写字母或者下划线开头,实变量(类成员变量)以@开
头。
流程控制:Ruby的程序流程控制与C语言相似,除了常
规的case、while、if、else等控制外,也支持迭代器的控制。如
下文Parser. rb中的语句“
|”,其功能等同于C语言
+),但实际使用了Range类的迭代功能。
类特性:Ruby中内置了大量有用的类和模块,从基本的
数组、字符串、数学函数库,到文件、网络、线程、进程都提供了
很好的支持。Ruby的整个库都是具有类继承的结构,且是规
范的单根继承,还有接口等概念的实现。其基本的数据类型
和运算符都是可以重载的。当需要用到某个模块或者库时
使用require加载。类成员使用点(. )方法访问。Ruby是完
全面向对象(OOP)的语言,任何事物都是一个对象。你甚至
可以象示例般访问数字和字符串,亦不须声明变量,如
s =“65”,“32”. to_i = 32,“32”. size = 2。
4 利用Ruby控制仪器设备
相关热词:使用 Ruby 语言 实现 自动 测试 数据 采集