ricken 发表于 2006-5-24 18:59:24

一个简单的数组问题,一时之间记不起来了.

用到一个time loop,每100ms读取7个通道的数据一次,每次读取一个点的数据,应当如何将这7个通道每次读取的数据点存到一个数组中啊.(每个通道对应一个数组)

cpubbs 发表于 2006-5-25 06:33:50

要看你采回来的数据是咋样的,可以分出来,然后分别insert into array,插入不同的数组中!

zys0904 发表于 2006-5-26 10:40:48

你可以试试将for循环中的计数i也利用了,就应该可以解决冲掉前面存下的数字了

ricken 发表于 2006-5-25 17:04:54

<P>采集回来的是一个一维数组,我也把它分出来了,可是在插入不同的数组时只能保留最后一个数据,前面插入的数据都冲掉了.</P>

ricken 发表于 2006-5-26 17:37:38

<P>问题是我有do while循环中有一个timed loop 定时器啊,那个insert into array 框图第一个接线端子是必须接一个数组啊,最下面那个接线端子才是接要插入的数组或元素.第一个接线端子应该接什么数组啊,我现在接了一个数组常量,每次运行时都是冲掉前面的数据.因为是在数组的最后插入数据,所以现在第一个数组元素一直是0,如何去掉这个0呢.我想可能是因为定时器的原因,定时器每次运行时相当于里面的数组都是重新开始.不知如何上传图片,我的框图是这们的,一个do while循环包含一个timed loop,在timed loop中是如下:</P>
<P>用一个for 循环产生一个一维数组(7个元素)--&gt;insert into array--&gt;array indicator</P>

wdyjz 发表于 2006-5-26 21:10:36

以下是引用ricken在2006-5-24 10:59:24的发言:用到一个time loop,每100ms读取7个通道的数据一次,每次读取一个点的数据,应当如何将这7个通道每次读取的数据点存到一个数组中啊.(每个通道对应一个数组)[/QUOT
这个问题是经常遇见的,解决办法:
MAX里面配置采样率和采样点,然后在程序中采集,以!D Array输出,然后利用 decimite 函数分割开来,形成各个通道的数据

ricken 发表于 2006-5-27 04:23:59

楼上兄弟的方法只是用于采样一次,我可是要让定时器运行60次或更多次才计算最大值,平均值等信息的.我也用过你所说的方法,每次都会将上一个timed loop采集的数据冲掉.

站立的鱼 发表于 2006-5-26 04:06:04

用for 循环试试呢`

ricken 发表于 2006-5-26 04:28:49

<P>我也用过for循环,同样也是冲掉前面的数据.</P>
<P>看来数组的应用还是不太熟悉,不过也就那么几个框图啊.真是搞不明白.</P>
<P>LV有时看起来觉得很好用的,可是有时候又觉得处理一些简单的问题却是很复杂.可能是用习惯了VB的原因吧.</P>

ricken 发表于 2006-5-26 18:04:00

<P>我又试了一下,只用一个do while 循环,里面有两个各含有6个元素的数组A和B,将数组B中的6个元素插入到数组A中,输出一个新的数组C,每次运行时都只有12个元素.实际上我想要的结果是:</P>
<P>A+B--&gt;A 而不是 A+B --&gt; C</P>

cpubbs 发表于 2006-5-26 05:20:20

兄弟,插入数组里面的确是插在最后面的,我不太清楚你是怎么用的呢?它应该不会冲消前面的数据的!

ricken 发表于 2006-5-26 19:38:32

<P>试了一下,要用到数组的属性节点,将A+B -&gt; A 就可以了.</P>

ILE 发表于 2010-12-15 20:55:07

用FOR循环很简单

lianyou102 发表于 2010-12-15 21:10:10

用FOR循环以及里边的I计数进行插入就可以 啊
页: [1]
查看完整版本: 一个简单的数组问题,一时之间记不起来了.