HPVEE可视化编程教材HP VEE可视化编程
HP VEE(Visual Engineering Environment)是一种工程中的可视化编程语言。VEE有两个显著的特色。首先,VEE对整个语言做了彻底图形化处理,它提供了模块式的编程工具,只需用鼠标连接各个图标就可以产生程序。VEE还提供了数据流显示和程序流显示,使程序的调试非常直观和形象。其次,VEE在仪器控制方面同时提供了直观的软面板(Instrument Panel)方式和灵活的直接输入输出(Direct I/O)方式。前者可以用鼠标来操作仪器面板;后者能够以任何数据形式读写仪器,能够...
HP VEE可视化编程
HP VEE(Visual Engineering Environment)是一种工程中的可视化编程语言。VEE有两个显著的特色。首先,VEE对整个语言做了彻底图形化处理,它提供了模块式的编程工具,只需用鼠标连接各个图标就可以产生程序。VEE还提供了数据流显示和程序流显示,使程序的调试非常直观和形象。其次,VEE在仪器控制方面同时提供了直观的软面板(Instrument Panel)方式和灵活的直接输入输出(Direct I/O)方式。前者可以用鼠标来操作仪器面板;后者能够以任何数据形式读写仪器,能够用底层命令直接控制接口(如HP-IB和GPIO等)。这两方面的特色使使用者能把更多的注意力投入到与应用有关的领域,大大提高了编程效率。一般而言,使用VEE比使用其他语言可节省30%至80%的时间,这是十分可观的。
此外,VEE还提供了许多数学运算工具,有优异的界面
能力,有丰富的显示方式。VEE的最大优点之一是它能和其他应用和程序很好地综合在一起,并且可在通用的测试环境下工作。
VEE支持的接口有:HP-IB(IEEE-488)、GPIO、RS-232和VXI.I,VEE是VXI最好的
编程软件平台。
HP VEE现在已被广泛应用于各种测试领域,如设计性能验证,制造业中的功能测试,测试管理,标定,以及数据采集和控制。采用VEE编程可以满足自动测试系统的要求。
有了HP VEE,你通过使用鼠标把图标连接在一起就可以建立程序;用文本语言,你得根据语法
使用关键字来编程。HP VEE里的结果类似一个数据
图,它比传统的代码行更容易使用和理解。使用HP VEE没有麻烦的编辑一编译一连接一执行这种操作过程。
一、连接对象制作程序
让我们完成几个简单的例子,对于所有的程序,原理都是相同的。
实验1-1:产生一个随机数
这个程序只是产生和显示一个随机数。它将在连接对象和文件操作方面使你得到实践。
1. 开始一个新程序File=> New
2. 如希望得到最大工作空间,选View,将Program Explorer前的选中符号去掉。
3. 加入程序的说明:选择Display=> Note Pad 并将其工作区的中上部,然后输入:
This program generates a real number between 0 and 1, then displays the results.
4. 得到产生随机数的函数,选Device=> Function & Object Browser
· Type=> Built-in Function
· Category=> Probability & Statistics
· Function=> random
· Create Formula (located at the bottom of the window)
该函数将在high和low之间产生随机数
5. 建立低限值,选Data=> Constant=> Int16,将此窗口放在随机数窗口左侧,在数值栏中输入0,将此窗口与随机数函数的Low连接。(注意必须将每个窗口连接起来,以便传输数据,每个窗口的左侧为数据输入,右侧为数据输出,上部为顺序输入,下部为顺序输出,程序执行的顺序为从上到下,从左到右。)
6. 重复上一步骤,建立高限值,输入1,将此窗口与随机数函数的high连接。
7. 建立一个显示随机数的窗口,选Display=> AlphaNumeric,将此窗口放在随机数函数的右侧,将随机数输出与显示窗口的输入连接。
8. 运行该程序,选Debug=> Run/Resume,或直接按执行箭头,产生的随机数将显示在显示窗口。
9. 单击工具栏上的Run按钮(在Debug菜单下面),你将看见一个显示的随即数,如图1所示。
图1 随机数程序
实验1-2 显示波形
这个程序提供一个编制HP VEE程序的基本技巧的附加练习。该程序将产生一个余弦波形并显示出来。
1. 开始一个新程序File=> New
2. 首先,加入程序的说明,选择Display=> Note Pad 并将其工作区的中上部,然后输入:
Display Wayeform generates a cosine waveform and sends it to a real time display.
3. 生成波形,选Device=> Virtual Source(Function Generator,并把它放在工作区的左边
· Function:
“Cosine”
· Frequency:
“100”
· Amplitude:
“1”
· DcOffset:
“0”
· Phase:
“Deg 0”
· TimeSpan:
“20m”
· NumPoints:
“256”
4. 选择Display=> Waveform(Time),并把它放在工作区的右边。
5. 单击Function Generator的数据输出引脚,把鼠标指针移动到Waveform(Time)对象的数据输入引脚,再次单击。
6. 单击在工具栏上的Run按钮(在Debug菜单下面),结果如图2所示。
图2 显示波形程序
二、模块化编程的使用
在Device菜单里有一个称为UserObject的对象,它实质上是另一种HPVEE环境或功能,就像你已经在使用的Main窗口一样。我们可以把它看作是一个子程序或你自己制作的、就像任何其他HP VEE提供的对象一样使用的对象。
例如,首先选择View => Program Explorer以更好地查看你的程序的结构。(你可以通过拖曳这个窗口的右边缘来调节它的宽度。)现在单击Device=> UserObject,并把它放在Main窗口里。参考下面的图3
正如你可以看见的,Program Explorer自动地用UserObject的加入向你
展示了你的程序的层次。现在,如果双击UserObject,你将得到一个就像在
HP VEE里的子程序一样操作的UserObject窗口,见图4
图3 用UserObject建立模块
图4 UserObject 窗口的显示
这种内部模块化结构允许你方便地访问你的程序的所有部分,无论它们是多么大。让我们建立一个使用UserObject的简单的程序来说明这些概念。
实验1-3 噪声余弦程序
本实验将使用UserObject建立一个模块化的程序。对在UserObject里面的噪声波形加上一个余弦波形,命名为Noisy Cos。然后将显示合成的波形。
1.选择Device => UserObject,并把它放在工作区的左边。双击UserObject图标得到打开的视图,并使它的窗口到前台来。为了改变标题,打开UserObject菜单并单击Properties.
(提示:要快速得到任何对象的Properties对话框,只要双击它的标题栏即可)。键入Noisy Cos并单击OK。再次打开对象菜单并选择Add Terminal => Data Output.
UserObject现在名为Noisy Cos,并且具有默认标记为X的数据输出引脚。
2.首先,通过单击右上角中间的按钮使Noisy Cos窗口最大化。(也可用相同的方法可以使HP VEE窗口最大化。)选择Device => Virtual Source=>Function Generator,并把它放进Noisy Cos中。加亮在Frequency输入字段里的200并键入100代替它。通过单击在对象的右上角的图标化按钮使Function Generator图标化。
3.选择Device=>Virtual Source => Noise Generator,并把它放在UserObject里的Function Generator的下面。把Noise Generator图标化。
4.选择Device=>Function & Object Brwser,选择在Type栏里的Operators,保留Category下的<All>默认值,选择在Operators栏里的加法操作符+,并单击Create Formula。把叫做A+B的这个对象放在UsexObject里的发生器的右边。把两个发生器的数据输出引脚连接到A+B对象的两个输入引脚上。
5.把A+B对象的数据输出引脚连接到 UserObject的数据输出x上。只要按键盘上的Home按钮,就可以把图标定位在Noisy Cos的左上角。现在通过单击这个窗口的标题栏右上中间的按钮使这个窗口比较小,从而能更好地看到Main窗口和Noisy Cos窗口。参见图5
图5 完整的Noisy Cos UserObject
你刚刚结束了Noisy Cos UserObject的编程,并且如上所示在Program Explorer里Noisy Cos是加亮的,使你一眼就能看见你在程序里的什么地方。在Noisy Cos窗口背后是你的Main程序窗口,在那个窗口中,NoisyCos UserObject还是被用一个图标表示。我们现在将要转向该窗口,并且只是使用来自Noisy Cos的输出而不管输出过程的细节。
6. 通过单击Main窗口或双击Program Explorer里Main窗口的图标,把Main窗口提到前面来。选择Display => Waveform(Time)并把它放在Noisy Cos的右边。把Noisy Cos的数据输出和Waveform(Time)的数据输入连接在一起。单击Run按钮来测试合适的输出—噪声余弦波形。你的程序看起来应该像图6一样。
图6 噪声余弦程序
祝贺你!你已经在你使用HP VEE的头一两个小时里做了许多编程工作。
HP VEE提供模块化编程工具。你的高级程序,不论多么简单,总是在一个被贴切地称为“Main”的窗口里编写。当你使用UserObjects(它以后可以很容易地改变成更方便的称为“UserFunction”的函数)编写子程序时,ProgramExplorer将自动地用图表法表示出你的程序的结构。这些UserObjects或UserFunction各有它们自己的窗口以便于好的模块化编程。它们或者是被图标化,以使它们可以在屏幕上的多窗口里使用,或者是被自动地存在内存里。
实验1-4 脉冲程序
1. 开始一个新程序File=> New
2. Data=>DialogBox=>Int32 Input
Prompt/label 改成Enter Frequency
Default Value改成100
Value Constraints改成1~193
将IntegerInput对象图标化
图7 Interger Input 配置框
3. 设置脉冲发生器
Device=>Virtual Source(Pulse Generator放在左上角
单击Pulse Generator对象菜单左上角,Add Terminal=>Data Input, 选Frequency, OK
4. 将Inte32 Input对象上部数据输出引脚和Pulse Generator的数据输入引脚相连
运行。把Pulse Generator图标化
图8 初始阶段的脉冲程序
5. 设置噪声发生器
Device=>Virtual Source=>Noisy Generato放在Pulse Generator下面,打开左上角菜单
Add Terminal=>Data Input, 选Amplitude
6. 建立噪声输入框
Data=>Continous=>Real64 Slider
连接输入框与噪声发生器
7. 合并两个图形
Device=>Function & Object Browser
Operators
+ Create Formular
连接引脚
8. 显示图形
Display=>Waveform(time)
连接A+B输出到显示器输入
9. 单击工具栏上的Run按钮,运行结果如图9所示
图9脉冲程序
实验1-5将Sine波形数据存入文件
1. Device=>Virtual Source(Function Generator(Sine
2. 选I/O=>To=>File,将该窗口放在Function Generator显示窗口右面
Add Terminal=>Data Input
3. 将Sine的输出连至To File窗口的A上。
4. 在To File窗口中的my File,起一个文件名(例d:\my documents\test1)。
5. 选中Clear File At PreRun & Open,表明重名的文件将被覆盖。
6. 指定要传输的内容,选WRITE TEXT “Test1”,OK
7. WRITE TEXT,“Sine Data”,OK。
8. 双击刚才定义的内容的下部,选WRITE TEXT,“---------”,OK。
9. 双击刚才定义的内容的下部,定义第三个内容,WRITE TEXT, a ,Default Format(Real32 Format,Default Field Width=>4, /-=>’’/-,Standard=>Scientific,6=>3,OK
10. 选Display=>AlphaNumeric,将文字显示窗口放在下部,将显示窗口放大。
11. 将Sine波形的输出连至文字显示窗口的输入。
12. 可以用记事本检查数据文件的格式。
13. 运行程序结果如图10 所示
图10 Sine波形数据存入文件
实验1-6生成、叠加和显示数据
1. 开始一个新程序File=>New
2. 用信号发生器模拟测量数据,选Device=>Virtual Source=>Function Generator,在该信号上加上噪声,选Device=>Virtual Source=>Noise Generator。
3.将信号与噪声加在一起,选Device=>Function & Object Browser
· Type=>Operators
· Category=>
· Operater=>+
· Create Formula (located at the bottom of the windom)
3. 将生成的加法函数放在右侧。将信号的输出连至加法器的输入A,将噪声的输出连至加法器的输入B。
4. 选Display=>XYTrace,将显示窗口放在右侧,将加法窗口的输出连至显示窗口的输入。
5. 运行程序结果如图11所示。
图11生成、叠加和显示数据
实验1-7加入控制滑块及控制按钮
1. 选Data=>Continuous=>Inte32 Slider,将此窗口放在Function Generator信号窗口的左侧。
2. 在Function Generator信号窗口加一个输入端口,点击该函数的左上角,选Add Terminal=>Data Input=>Frequency,OK。
3. 将滑块窗口与信号窗口相连。
4. 选Data=>Continuous=>Real64 Knob,将此窗口放在噪声窗口的左侧。
5. 在噪声窗口加一个输入端口,点击该函数的左上角,选Add Terminal=>Data Input=>Amplitude,OK。
6. 点击滑块窗口的左上角,选Properties,选Auto Execute, OK。点击按钮窗口的左上角,选Properties,选Auto Execute, OK。
7. 将信号与噪声的窗口最小化。
8. 运行程序结果如图12 所示,运行时可以随时调节信号的频率和噪声的幅值。
图12 Sine波形叠加噪声
实验一 计算机数据采集实验
实验目的:了解HP VXI数据采集系统,能用该系统采集模拟信号,将该信号存入数据文件,以便实验二对其进行频谱分析。
所需仪器:函数发生器(HP3225B)、示波器、HP VXI数据采集系统
实验步骤:
1.由函数发生器发出一个正弦波(频率和振幅可调,例如开始可设置为100Hz, 1Volt)
2.用示波器观察此信号。
3.编制并调试数据采集程序
4.用HP VXI数据采集系统采集该信号,将该信号显示在屏幕上,并存入数据文件中。
数据采集程序程序的编制:
1. 开始一个新程序File ( New
2. 选择Flow ( Start, 将其图标放在合适位置。
3. 选择I/O ( Instrument Manager ( E1413A_2(@(NOT LIVE)) ( Direct I/O 将产生的图标放在Start的图标下面。
4. 双击图标中深兰色部分,在I/O Transaction中写入如下指令:
WRITE TEXT “*RST,*CLS”, OK,此语句的作用是Reset重新设置
双击刚才定义的内容的下部,定义第二个语句:
WRITE TEXT “SENS:FUNC:VOLT:0,(@100:101)”, OK, 此语句的作用是定义100至107通道用来测量电压,量程为自动量程。
双击刚才定义的内容的下部,定义第三个语句:
WRITE TEXT “ROUT:SEQ:DEF LIST1,(@100:101)”, OK , 此语句的作用是定义序列1的初始通道为100,终止通道为101
双击刚才定义的内容的下部,定义第四个语句:
WRITE TEXT “ROUT:SCAN LIST1”, OK , 此语句的作用是扫描序列1
双击刚才定义的内容的下部,定义第五个语句:
WRITE TEXT “SAMP:TIM LIST1 0.00001”, OK , 此语句的作用是采样序列1的时间为0.00001秒,即采样频率为100KHz
双击刚才定义的内容的下部,定义第六个语句:
WRITE TEXT “ARM:SOUR IMM”, OK , 此语句的作用是设立警告语句
双击刚才定义的内容的下部,定义第七个语句:
WRITE TEXT “TRIG:COUN 100”, OK , 此语句的作用是触发计数器100
双击刚才定义的内容的下部,定义第八个语句:
WRITE TEXT “TRIG:TIM 0.001”, OK , 此语句的作用是触发间隔为0.001秒
双击刚才定义的内容的下部,定义第九个语句:
WRITE TEXT “TRIG:SOUR TIM”, OK , 此语句的作用是定时触发
双击刚才定义的内容的下部,定义第十个语句:
WRITE TEXT “INIT:IMM”, OK , 此语句的作用是初始化
5. 将Start的下部端口与I/O Transaction图标的上部端口相连
6. 选择Flow ( Delay, 将其图标放在I/O Transaction图标的下部。将Delay的值改为2,将I/O Transaction图标的下部端口与Delay的上部端口相连
7. 选择I/O ( Instrument Manager ( E1413A_2(@(NOT LIVE)) ( Direct I/O 将产生的图标放在Delay的图标下面。
8. 双击图标中深兰色部分,在I/O Transaction中写入如下指令:
WRITE TEXT “SENS:DATA:FIFO:COUNT? ”, OK , 此语句的作用是定义采集数目
双击刚才定义的内容的下部,定义第二个语句:
READ TEXT x INT16, OK , 此语句的作用是读入采集数目的大小
9. 用右键单击Instrument Manager的图标的右上角,Add terminal(data output, 作用为给该图标加了一个输出端口
图13 数据采集程序的初始部分
10. 选择Display ( Alphanumeric将产生的图标放在Instrument Manager的图标右面。将Instrument Manager的输出端口与Alphanumeric的输入端口相连
11. 选择I/O ( Instrument Manager ( E1413A_2(@(NOT LIVE)) ( Direct I/O 将产生的图标放在上述的图标下面。
12. 双击图标中深兰色部分,在I/O Transaction中写入如下指令:
WRITE TEXT “DATA:FIFO? ”, OK , 此语句的作用是定义采集数目
双击刚才定义的内容的下部,定义第二个语句:
READ TEXT x REAL64 ARRAY:100,2, OK , 此语句的作用是采集阵列从100通道开始,采两列。即100,101
13. 用右键单击Instrument Manager的图标的右上角,Add terminal(data output, 作用为给该图标加了一个输出端口
14. 选择Data ( Access Array ( Get Values, 将产生的图标放在Instrument Manager的图标下面,在空白的框中写入Ary[*,1:1],此语句的作用是采集两列电压值
15. 选择I/O ( To ( To File, 将产生的图标放在Get Values的图标的右侧,点击To File,选择存储采集数据的文件名。选择Clear File At PreRun & Open。双击图标中深兰色部分,写入WRITE TEXT a OK。用右键单击To File的图标的左上角,Add terminal(data input, 作用为给该图标加了一个输入端口
16. 将Get Values的图标的SubAry端口与To File图标的输入端口相连
17. 选择Display ( Alphanumeric将产生的图标放在Get Values的图标下面。将Get Values的SubAry端口与Alphanumeric的输入端口相连
18. 选择I/O ( To ( From File, 将产生的图标放在To File的图标的下面,点击From File,选择存储采集数据的文件名。写入READ TEXT x REAL64 ARRAY:100 OK。作用为从存储采集数据的文件中取出数据。将To File图标的下面端口与From File图标的上面端口相连。用右键单击From File的图标的右上角,Add terminal(data output, 作用为给该图标加了一个输出端口。
19. 选择Display ( XY Trace, 将产生的图标放在From File图标的下面,将From File图标的输出端口与XY Trace图标的输入端口相连。
20. 至此程序编写完毕,上述步骤如图14所示。现在可以调试运行此程序。
图14 一个完整的数据采集程序
本文档为【HPVEE可视化编程教材】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。