【问题标题】:nidaqmx co_channels can't write samplenidaqmx co_channels 无法写入示例
【发布时间】:2018-04-21 00:13:54
【问题描述】:

我尝试使用 Ni-Daq 来生成脉冲。 nidaqmx提供的例子如下:

    import nidaqmx
from nidaqmx.types import CtrTime


with nidaqmx.Task() as task:
    task.co_channels.add_co_pulse_chan_time("Dev1/ctr0")

    sample = CtrTime(high_time=0.001, low_time=0.002)

    print('1 Channel 1 Sample Write: ')
    print(task.write(sample))

但是在我运行这个脚本之后,它会产生一些错误,如下所示:

引发 DaqError(error_buffer.value.decode("utf-8"), error_code) DaqError: 任务没有缓冲或没有通道。如果任务是 没有缓冲,使用这个函数的标量版本。如果任务有 没有频道,添加一个到任务。任务名称:_unnamedTask

状态码:-201395

是什么导致了问题?如何解决?

非常感谢!

【问题讨论】:

  • 什么设备型号是“Dev1”?
  • “Dev1”是 NI PCI -6259。谢谢!

标签: python nidaqmx


【解决方案1】:

NI-DAQmx 的 Python 示例针对 NI 的 X 系列设备(63xx 型号)进行了调整。 62xx 型号是 M 系列设备,它们的计数器对您如何编程它们更加挑剔。简而言之:脉冲规格必须在频道创建时给出,以后不能给出。 X 系列设备没有此限制。

配置脉冲的形状

代替

task.co_channels.add_co_pulse_chan_time("Dev1/ctr0")

试试

# https://github.com/ni/nidaqmx-python/blob/master/nidaqmx/_task_modules/co_channel_collection.py#L160
task.co_channels.add_co_pulse_chan_time(
    counter="Dev1/ctr0",
    low_time=0.002,
    high_time=0.001)

而且由于您以这种方式指定了脉冲,因此您不再需要write() 到频道。当你想启动脉冲序列时,只需使用

task.start()

配置脉冲序列的长度

当您生成脉冲序列时,您可以告诉驱动程序发出有限数量的脉冲或连续方波。

在您start() 任务之前,请使用cfg_implicit_timing()。这个 sn-p 产生 1200 个脉冲:

# https://github.com/ni/nidaqmx-python/blob/master/nidaqmx/_task_modules/timing.py#L2878
pulse_count = 1200;
task.cfg_implicit_timing(
    sample_mode=AcquisitionType.FINITE,
    samps_per_chan=pulse_count)

【讨论】:

  • 非常感谢您的回答。我会尽快尝试。在这种情况下,是否可以定义产生多少脉冲?
  • 当然,我已经更新了我的答案以包括这方面。
  • 嗨,乔,代码有效。非常感谢你。现在。如何做这个脉冲序列的循环? for i in range(5): task.start()
  • 代码'for i in range(5): task.start()'尝试生成pulse_count 5次,但是这段代码不起作用。
  • NI 将您描述的行为称为“可重新触发”。您可以 (1) 在每次迭代时创建、配置、运行和清除任务;或 (2) 使用外部信号,在该引脚上配置启动触发,并启用其可重触发属性task.triggers.start_trigger.cfg_dig_edge_start_trig("/Dev1/PFI9"); task.triggers.start_trigger.retriggerable = True;
猜你喜欢
  • 2020-07-16
  • 2023-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 2018-09-20
  • 2012-09-28
相关资源
最近更新 更多