feipeng 发表于 2006-5-29 06:59:44

IO采集的问题请教一下各位

小弟用IO采集开关信号,采进来的为10进制数,其转换为2进制数后,每一位的0、1即代表对应通道的高低,如采进7,即意味着当前2、1、0通道对应1、1、1,都为高。
现在我想将某一个通道的信号在LabVIEW中以波形的形式显示,由于每一个通道采进的是一个标量,只能用Chart观察,但Chart在显示时它的时间轴的数值是不断增加的,和实际的示波器有很大的差别,我想像实际示波器那样可以调节扫描的周期(即将波形展开和压缩,且能较方便的读出开关信号的周期)不知道能不能实现?
其实就是一个仿真示波器的设计问题,关键是输入信号是标量而不是数组或者波形数据
谢谢各位解答我的疑问!

cpubbs 发表于 2006-5-29 07:33:15

<P>可以用Digital Waveform Graph,具体程序是这样子做的:</P>
<P>你的数据进来--&gt;Number To Boolean Array--&gt;Build Array--&gt;boolean array to digital.vi--&gt;Digital Waveform Graph</P>
<P>这样就可以了!</P>

feipeng 发表于 2006-5-29 18:18:56

还有问题

按版主的意思做了,还有几个问题:
(1)Graph的横坐标是实际的时间吗,比如图上的100m即是100ms?因为我需要用它来读采集波形的周期,这很重要。
(2)现在我只能采进来某一段时间内的一个值,扫描时间的长度是由boolean array to digital.vi的参数决定的,但不管扫描时间多大,一个周期内都只能采集一个IO的状态,即波形不是高就是低,而出不了高低间隔的波形,
我想这应该是build array 这部分造成的,不知道该怎么改?即我想采进来N个数以后在Graph上显示波形?
麻烦帮我看看阿!

<img src="attachments/dvbbs/2006-5/200652910184089222.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2006-5/200652910184089222.jpg\');}" onmousewheel="return imgzoom(this);" alt="" />

bright 发表于 2006-5-31 07:01:11

估计你用的是E系列的卡吧??NI对E系列的卡的IO有另一个专门的VI,应该在LV的安装目录里可以找到,或者去NI的网站可以找到
页: [1]
查看完整版本: IO采集的问题请教一下各位