LabVIEW中的软件定时应用可以达到怎样的精度
有一个基于软件定时的数据采集应用。采集任务在一个循环结构中完成,使用LabVIEW(或LabWindows/CVI)的定时函数。每次循环间的间隔应该是一个常量,但没有得到优于1ms的定时分辨率。
解答:
LabVIEW 或LabWindows/CVI定时函数使用的是操作系统的定时器。这些定时器的时间分辨率取决于操作系统本身。不同操作系统的典型时间分辨率列举如下。
Windows 3.x = 55ms
Windows9x/Me/NT/2000/XP = 1 ms
Macintosh 68k =17 ms
PowerMac = 1 ms
SUN Solaris = 10ms
Linux = 10ms
举个例子,在Windows9x/NT 操作系统中,任何软件定时操作的精度都在+/- 1 ms左右。
如果你LabVIEW/LabWindows的定时函数控制一个循环,会发现每次循环的间隔时间会有所不同,这取决于当时你的计算机上运行着哪些进程。举个例子,如果同时开着多个窗口,并在进行数据采集的时候在不同的窗口之间进行切换,那么会发现中央处理器(CPU)的开销增大,这会导致进行数据采集的循环执行速度变慢。
对于此类的定时应用,较好的做法是用硬件定时代替软件定时。举个例子,如果希望每1ms扫描一个通道,可以配置板卡工作在1000样本/秒的扫描速率下,而不要使用软件定时,这等效于每次扫描的间隔时间为1ms。
楼主最近还看过