使用“开始任务”函数/VI
- 更新时间2025-12-03
- 阅读时长3分钟
调用“开始任务”函数/VI可显式地开始一个任务。进行其他隐式开始任务的操作时,任务会自动开始。例如,调用“读取”或“写入”函数/VI可能会隐式地开始一个任务。指定显式或隐式开始任务,取决于任务的操作。默认情况下,单点读取函数和写入函数会自动开始一个任务。
开始一个有限测量任务
如指定了执行有限测量的任务,则无需调用开始任务函数/VI,也不需要更改DAQmx读取函数/VI的默认行为。调用读取函数/VI开始任务并执行有限测量,并在读取最后一个采样后停止任务。调用读取操作前,任务返回其状态。但是,如要在任务结束后进行额外的读取操作(要读取缓冲区更早存入的数据),默认操作是不够的,原因有二:
- 任务返回至验证状态,无法访问采样。
- 再调用“读取”函数/VI会启动新的读取操作,而不是从完成的操作中继续读取。
在该情况下,调用控制任务函数/VI,将动作参数设置为“就绪”。然后,在进行初始读取操作之后和后续操作之前,将自动开始读取属性设置为FALSE。
开始一个连续测量任务
对于连续测量,调用“开始任务”函数/VI,进行所需的读取操作,然后调用“停止任务”函数/VI停止连续测量。如在循环中进行读取操作,无论读取操作是单采样读取、按需读取,还是多采样硬件定时读取,请在进入循环之前调用“开始任务”函数/VI,在离开循环之后调用“停止任务”函数/VI。
开始模拟输出任务
写入函数/VI的操作较为复杂。调用写入函数/VI的结果是任务至少转换为已就绪状态。任务是否转换至运行状态取决于自动开始参数的值。
对于单采样写入操作,调用写入函数/VI的单采样实例。该调用也启用了任务,写入单个采样,最后停止任务。对于多采样按需写入操作,调用写入函数/VI,并将自动开始参数设置为真,其默认值为假。该调用也启用了任务,写入多个采样,最后停止任务。
对于多采样硬件定时写入操作,应先调用“写入”函数,写入要生成的样本,显式调用“开始任务”,调用“结束前等待”函数/VI等待采样生成完毕,然后显式调用“停止任务”函数/VI。
如将“写入”函数/VI的自动开始参数设置为真(主动设置或使用单点写入函数),硬件定时生成可能会失败,因为写入的采样在波形生成时还未传递到设备。进行硬件定时生成时,开始任务之前始终写入部分波形。
改进“开始任务”函数/VI的性能
下面是部分需显式调用“DAQmx开始任务”函数/VI和“DAQmx停止任务”函数/VI的情况:在循环中调用“读取”或“写入”函数/VI时,在进入循环之前调用“开始任务”函数/VI,在离开循环之后调用“停止任务”函数/VI,可明显提高运行速度。如在进入循环之前未调用“开始任务”函数,任务在进行读取或写入操作前必须从当前状态转换为“运行”状态。读取或写入操作完成后,任务必须从“运行”状态恢复至原来的状态。每次循环中都将发生这些转换,会消耗大量时间。