今天在论坛上看到一个数据采集的问题, 数据时从下位机采集来的, 而时间点是上位机给的当前收到数据的时间点;在我看来这种做法有一些不合理:数据,时间点---这两者之间存在时间差,而这个时间差由多个因素产生,并且不一定是恒定的时间差;如下位机的处理时间, 串口orUSB的传输时间,上位机的响应时间等组成. 一般情况下应该在ms级的误差.当然如果ms可以忍受,此办法当然可以.帖子见:http://bbs.gsdzone.net/showtopic-12644.aspx
严格的做法当然是时间点&数据要从同一地点来; 当然如果是 ---上下位机的方式实现这种采集,是无法直接实现"从同一地点来的"除非下位机强大到可以产生时间管理信息;
比较简单可行的办法是:数据采集时,"连续"采集直到满足需求的采样点数;然后下位机再将这个数组上传到PC,因为下位机"连续采集",那么元素间的时间间隔必定是相等! 利用这一点就可以将”数据和时间点同步“---即上位机收到的第一个元素和下位机真正采样时间,存在一个固定时间差,而元素间也存在一个固定的时间差;----这对处理音频数据,如计算频率是很有效的, 如labviEW 频率vi计算出的频率和实际频率存在一个恒定的系数k, 这个系数k实际上就是下位机的采样率.
再说说在数据库excel的存储, 一般都依cluster的方式表示(如编号,采样时间,数据), 采样时间如是依cluster方式表示,似乎不能直接保存到EXCEL中,此时可以将次时间cluster按照ascii表转换成ascii,接着转换成u32,就可以保存了; 当然显示使其反过程了