使用NI-DAQmx和LabVIEW的脉宽调制(PWM)

更新 Mar 26, 2021

环境

硬件

  • CompactDAQ Chassis
  • CompactDAQ Controller
  • Multifunction I/O Device

软件

  • LabVIEW

驱动

  • NI-DAQmx

操作系统

  • Windows

本文档是《 NI-DAQmx系列入门》的一部分。

脉宽调制(PWM)信号是一种用于产生数字脉冲以控制模拟电路的技术。 PWM信号由定义其行为的两个主要成分组成:占空比和频率。本文将通过使用NI-DAQmx硬件和资源来进行硬件考虑,以开始在软件或硬件时序中使用PWM。

硬件注意事项


PWM生成和脉冲计数的实现取决于所使用的硬件。最好使用计数器来产生PWM输出。请参考硬件的数据表,以查看该器件上有多少个计数器以及它是否支持PWM。

模块/卡:

  • E,S,M和X系列设备–请参阅用户手册
  • 其他数字模块–在用户手册中检查它们是否为静态(即软件定时)或硬件定时
  • C系列-检查您的C系列模块是否可以访问CompactDAQ(cDAQ)机箱或控制器底板上的计数器或计时器

机箱/控制器:

  • cDAQ –查看用户手册中机箱上的计数器数量。此功能仅在可访问机箱机载计数器的模块中可用。

LabVIEW中带有NI-DAQmx的PWM


要在NI-DAQmx中实现PWM,请确保您已经研究了硬件及其功能。之后,您可以确定适合您应用的最佳解决方案:软件时间或硬件定时PWM。

软件定时脉冲宽度调制
如果您的应用在速度和精度方面没有严格的要求,则可以将数字输出与软件定时控制一起使用以产生脉冲序列或PWM。

这是社区中使用软件定时数字I / O实现PWM的示例

硬件定时脉冲宽度调制
  • 从示例开始(推荐)
    1. 启动LabVIEW
    2. 导航至帮助>>查找示例... ,这将启动NI示例查找器
    3. 确认您在“浏览”选项卡中,并浏览以下文件夹:硬件输入和输出>> DAQmx >>计数器输出
  1. 双击您要使用的示例
  2. 不要编辑此示例。任何更改都将覆盖原始示例。
    1. 单击文件>>另存为
    2. 选择适合您需求的选项。建议选择“复制层次结构”到新位置
    3. 选择位置,然后单击保存
    4. 关闭示例并在新位置打开示例
  3. 打开示例的本地副本后,您可以更改示例中使用的配置和通道。
  • 从空白框图开始
    1. 使用DAQmx创建虚拟通道VI创建并初始化计数器输出通道根据您的应用需求,可以通过三种方式在NI-DAQmx中定义计数器输出任务:
      • 一氧化碳脉冲频率
      • 一氧化碳脉冲时间
      • CO脉冲刻度-注意-不同的硬件具有不同的时基,在不同的硬件上运行相同的代码可能会更改脉冲宽度。
占空比,频率,计数器,空闲状态初始延迟选择合适的输入
  1. 使用DAQmx定时VI可以配置脉冲产生的持续时间。
注意:当不需要采样定时时,例如在脉冲序列生成之类的计数器任务中,应使用Implicit实例。此外,选择“连续”作为采样模式。
  1. 调用DAQmx Start VI ;该VI开始生成脉冲序列。
  2. 放置While循环以连续运行,直到用户按下“停止”按钮为止。
  3. 在While循环内:
    1. 占空比创建局部变量它将与原始占空比变量进行比较,并且比较将在“案例结构”的选择器处进行
    2. 放置案例结构:
      1. 正确的情况:调用DAQmx Write VI。如果占空比已更改,则使用DAQmx写VI设置新的占空比
      2. 错误的情况:将所有输入直接连接到输出。如果未更改占空比,则执行条件结构的错误条件,并且不进行任何更新。
    3. 使用“ DAQmx完成任务” VI检查错误
    4. 添加一个“等待下一个毫秒数倍” VI ,以在循环中引入较短的时间延迟。这将阻止循环尽可能快地执行,从而消耗不必要的处理器资源。
  4. 调用DAQmx清除任务VI清除任务。
  5. 使用简单错误处理程序VI检查并显示错误

注意:该图像是LabVIEW片段,其中包含可在项目中重复使用的LabVIEW代码。要使用代码段,请右键单击图像,将其保存到计算机,然后将文件拖到LabVIEW图表上。