` 虚拟仪器的硬件构成有多种方案,通常采用以下几种:
1、基于数据采集的虚拟仪器系统
2、基于通用接口总线GPIB接口的仪器系统 3、利用VXI总线仪器实现虚拟仪器系统 4、基于串行口或其它工业标准总线的系统 在这里,我们就是通过RS232串口实现与计算机的通讯。通过labview软件强大编程功能实现数据的读取,分析,显示和打印的基本功能,另外,还可以方便地在软件的前面板构建虚拟仪器平台,在虚拟平台上对虚拟控件进行操控从而也实现对外界温度的即时显示和控制,将软件与硬件有机地结合起来。 下面,参阅所附图表我们来具体讲解一下我们用LV编程的图形程序所实现的功能: (1).图1所示为该主程序(Serial communication.vi)的前面板,从图中我们可以看到以下这些控件和显示器:通道口选择栏(Resource Name)、比特率(Baud Rate)、写命令输入栏(Write String)及其开关控件、读命令输出栏(Read String)及其开关控件、关闭采集函数开关控件、一个温度数值波形图(Waveform Chart)及采集控制开关还有两个报警信号灯。这是一个虚拟的操作平台,具体可以实现:从Resource Name 中选择数据传送通道(我们这里用串口COM1作为通信口),比特率此为9600bps,在Write String中写入读命令送给外部单片机识别,然后由Read String接收到单片机回送的温度示值.本次程序设置为每1秒对温度采集一次,因此,再用一个Waveform Chart将其各点温度用波形显示出来,直观明了.如果采到的某点的温度超过了规定的范围(这里设为5℃--50℃),则通过前面板的两个报警灯来报警提示,这样一来,我们便可及时对外部的系统进行加温或降温以达到将系统温度控制在安全范围之内的目的. 图一 (2).在主VI的框图中用到了一个子VI(VISA Serial),因此先让我们来看看图3中的这个VI.这里我们对这个子VI我们所用到的功能简单介绍一下.其实它是一个配置通道参数的VI,有通道口(Resource Name)、比特率(Baud Rate)、数据位(Data bits)、停止位(Stop bits)、错误输入/输出(Error In/Out)等等。这些参数的设定应与通道硬件匹配,否则便无法采集数据,这时Timeout时间一到便有错误产生,程序便通过Error In将错误信描述息及代码送到Error Out.它的框图可参阅图4,具体这里便不多描述。 (3).最后再来看看主VI的框图。参阅图2,实际上它就是整个图形程序,我们可以在加亮的状态下来查看程序的一步步流程:a).首先由VISA Serial.vi将硬件通道参数设置好;b).然后在Write和Read开关(各通过一个Case语句来改变连线)置True的状态下开始由Write String控件写入读取的命令通过函数VISA Write送给单片机;c).单片机通过函数VISA Read回送温度示值(ASCII码,一字节),这里一边送给Read String显示(十进制),同时也通过一个Decimal String To Number函数将VISA Read所采到的ASCII码转化为十进制数值与5和50作比较,若超过50或低于5就启动相应的报警信号。另外,Waveform Chart同时将此时的温度数值显示在波形上;(d).在无错误的情况下,整个温度采集过程处在一个While循环语句之下,因此,在这里通过一个定时器每1秒便能重复步骤b)、c)采集一次温度,这样便将并将温度用图表表示出来;e).在有错误发生时(如输入读取命令有误,或Write和Read开关置为Fault等),Case语句便改成另一种连线方式(图2隐藏未显示,可参阅图5),在Timeout用完时便直接显示错误,并由最后的VISA Close函数将整个采集过程关闭。
图二
图三
图4
图5
llabview基于的简单的循环采集数据(包括读、写命令及报警功能l:
`
21
|
|
|
|
最新测试测量技术发展趋势感谢对论坛的付出贡献 祝你越来越好
|
|
|
|
|
谢谢楼主分享
|
|
|
|
|
感谢楼主无私
|
|
|
|
|
..........................................................
|
|
|
|
|
感谢分享,学习下,我看看
|
|
|
|
|
学习学习,开始使用NI的设备了,很想做个智能化的采集流程
|
|
|
|
|
thank you very much !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
|
|
|
|
|