[DAQmx]任务及通道学习笔记

原创 2015年07月11日 00:16:53
   问题描述:DAQmx任务及通道,任务相关API的使用,如“开始任务”、“停止任务”等。
   DAQmx使用:DAQmx提供了一组用于控制NI的数据采集卡的API,方便实现模拟输入输出、数字输入输出、计数器输入输出等功能。可以在LabVIEWLabVIEW SignalExpressLabWindows/CVIMeasurement Studio.NETANSIC中调用DAQmxAPI,前提是要先安装或导入DAQmx的驱动。
   DAQmx通道:即采集卡与外部信号的交互通道,一个通道代表一路外部信号。没有NI采集卡设备时可以在MAX中虚拟一个设备,采用虚拟设备完成编程任务。当电脑连接好NI采集卡设备时,MAX会检测到该设备,在程序中可以使用采集卡上对应的各个物理通道。
   DAQmx任务:任务中所有通道的IO类型必须相同,可以在MAX中右击连接的设备创建任务,针对每一种IO类型需要独立创建一个任务,如模拟输入任务、模拟输出任务、数字输入任务、数字输出任务等等,在编程时调用“创建虚拟任务”函数时就可以看到这些任务并进行设置了。
  开始任务:“开始任务”函数用于显式的开始一个任务,但一般单点读取函数和写入函数会自动开始一个任务,这种情况为隐式的开始任务。调用“开始任务”表示从“已提交”状态转为“运行”状态。

1)开始有限测量任务(如N采样),“开始任务”函数是非必须的,“读取”函数直接读取,在最后一个采样读取后停止任务。

2)开始连续测量任务,使用“开始任务”函数,再“读取”,然后“停止任务”。循环中操作时(单采样、按需读取、多采样硬件定时读取等),进入循环前“开始任务”,离开循环后“停止任务”。

3)开始模拟输出任务,对于单采样写入操作,调用“写入”,同时也启用了任务,写入单个采样,最后停止任务。对于多采样按需写入操作,调用“写入”,并将“自动开始”参数设置为真,其默认值为假。该调用也启用了任务,写入多个采样,最后停止任务。

对于多采样硬件定时写入操作,应先调用写入函数,写入要生成的样本,显式调用开始任务,调用结束前等待函数/VI等待采样生成完毕,然后显式调用停止任务函数/VI

如将写入函数/VI自动开始参数设置为真(主动设置或使用单点写入函数),硬件定时生成可能会失败,因为写入的采样在波形生成时还未传递到设备。进行硬件定时生成时,开始任务之前始终写入部分波形。

4)改进“开始任务”性能,部分需显示调用“DAQmx开始任务”与“DAQmx停止任务”情况:循环中调用“读取”或“写入”时,进入循环前调用“开始任务”,离开循环后调用“停止任务”,速度会提高。

中止任务:“控制任务”函数动作输入端设置为“中止”即可。

DAQmx的任务状态模型:任务状态模型有下列五种状态:未验证、验证、保留、已就绪和运行。调用开始任务停止任务控制任务,将任务从一个状态转换为另一个状态。任务状态模型具有一定的灵活性。根据应用程序的需要可选择任务状态的一部分或全部任务状态模型。



 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

[DAQmx]创建虚拟通道时应当注意的基本问题

问题描述:使用LabVIEW控制NI的采集卡,使用DAQmx是非常方便的。但是正由于其方便性,许多底层的问题都被隐藏了起来。因此使用时如果没有注意到细节问题就会出现一些不预期的结果。以下将记录一些创建...
  • suxiang198
  • suxiang198
  • 2015年07月11日 00:18
  • 861

[DAQmx]定时与触发的学习

问题描述:数据采集中的定时非常重要,即决定了多久采集一个点的这个时间间隔,触发用于外部信号达到某项要求时会程序控制自动执行某些动作。     DAQmx的定时:分为软件定时和硬件定时。硬件定时可以使用...
  • suxiang198
  • suxiang198
  • 2015年07月11日 00:16
  • 921

用C语言给NI公司数据采集卡编程序进行电压数据采集

NI公司有很多款性能比较好的数据采集卡     刚开始学数据采集卡时,关于数据采集卡的C语言程序时不好找,大多数是通过NI公司的labview控制的,用C语言进行控制的挺少的,所以写这篇博客,希望能对...
  • lubilie969
  • lubilie969
  • 2017年09月26日 22:22
  • 593

LabVIEW多通道数据采集系统源程序

  • 2012年06月18日 00:10
  • 1.07MB
  • 下载

[DAQmx]创建虚拟通道时应当注意的基本问题

问题描述:使用LabVIEW控制NI的采集卡,使用DAQmx是非常方便的。但是正由于其方便性,许多底层的问题都被隐藏了起来。因此使用时如果没有注意到细节问题就会出现一些不预期的结果。以下将记录一些创建...
  • suxiang198
  • suxiang198
  • 2015年07月11日 00:18
  • 861

安全停止sparkStreaming任务

目的: 1.确保数据处理完后,才停止Job 原因: 因为Spark Streaming流程序比较特殊,所以不能直接执行kill -9 这种暴力方式停掉,如果使用这种方式停程序,那么就有可能丢失数...
  • yjgithub
  • yjgithub
  • 2017年12月18日 08:24
  • 113

献给初学labview数据采集的初学者

前言:参考来源:http://bbs.elecfans.com/jishu_209658_1_5.html,感谢原作者  zhihuizhou            这里的内容只针对NI的数据采集卡...
  • godloveyuxu
  • godloveyuxu
  • 2017年01月09日 10:03
  • 2640

Labview使用DAQ数据采集的一些注意问题

初学者可以通过使用DAQ助手设置采集,然后转化成VI代码进行修改。 值得注意的时,当使用多个通道时,如果第一步就是通过一个FOR循环使用“创建虚拟通道VI”进行采集设置,对此VI的“任务输出”不使用...
  • mfcjishiben
  • mfcjishiben
  • 2015年07月30日 22:19
  • 2492

java系统中使用调度器Quartz实现对正在执行任务的停止

最近在进行数据迁移的任务(就是迁移历史数据),数据量很大,需要运行几个月才能运行完。要求是每天的非工作时间定时进行迁移,正常上班的时间自动停止。自然就想到了使用Quartz来执行定时任务。每天定时的启...
  • ghgzczxcvxv
  • ghgzczxcvxv
  • 2015年03月06日 14:33
  • 5565

spring+quartz新增,删除,暂停,恢复定时任务

spring配置 启动服务器后延迟启动定时任务--> 先定义SchedulerJob  javabean public class ScheduleJob { private String...
  • a3781386
  • a3781386
  • 2016年05月21日 13:14
  • 2964
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[DAQmx]任务及通道学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)