首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python导出PXI 6251的采样时钟

用python导出PXI 6251的采样时钟
EN

Stack Overflow用户
提问于 2018-08-15 17:30:52
回答 1查看 250关注 0票数 0

我想同步PXI 1000机箱上的两个PXI 6251,以便同时获取32个模拟输入。我在nidaqmx库中使用python。为此,我希望将一张卡的采样时钟输出到数字输出,将其路由到另一张卡的数字输入,并将其用作外部时钟。这是一个好策略吗?

我已经尝试了以下代码。模拟输入记录正常,但我看不到2.7号终端上的时钟(PFI15)

代码语言:javascript
复制
import nidaqmx
import time

with nidaqmx.Task() as taskAI, nidaqmx.Task() as taskClkExport:
    acquisition_time = 10
    rateAI=50000
    t=time.localtime()
    file_path_2 = r'C:/Users/laboratorium/Documents/remi/{}_{}_{}_{}_{}_{}_slot2'.format(t.tm_year, t.tm_mon,t.tm_mday,t.tm_hour,t.tm_min,t.tm_sec)

    # configure analog input task
    for i in range(16):
        taskAI.ai_channels.add_ai_voltage_chan("PXI1Slot2/ai{}".format(i))
    taskAI.in_stream.configure_logging(file_path_2,
                                  nidaqmx.constants.LoggingMode.LOG,
                                  'myGroupName',
                                  nidaqmx.constants.LoggingOperation.OPEN_OR_CREATE)
    taskAI.timing.cfg_samp_clk_timing(rate=rateAI,
                                 sample_mode=nidaqmx.constants.AcquisitionType.CONTINUOUS,
                                 samps_per_chan=2048)

    # configure clock exporting task
    taskClkExport.do_channels.add_do_chan("PXI1Slot2/port2/line7")
    taskClkExport.export_signals.export_signal(signal_id=nidaqmx.constants.Signal.SAMPLE_CLOCK,
                                           output_terminal="PXI1Slot2/port2/line7")

    print('start')
    taskClkExport.start()
    taskAI.start()

    print('running...')
    time.sleep(10)

    print('stop')
    taskAI.stop()
    taskClkExport.stop()

我检查了MAX设备路由,任何PFI都适用于采样时钟的直接路由。我可以在MAX中颠倒DO任务中的行。

有人知道解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-03 20:59:32

我无法导出这个齿轮上的样本时钟,我找到的解决方案是使用相同的主时钟,并使用第一张卡的启动触发器来启动第二张卡。我启动第二个(等待触发器),然后结束第一个。

代码语言:javascript
复制
        self.task2.timing.ref_clk_src = "PXI_Clk10"
        self.task2.timing.ref_clk_rate = 10000000
        self.task2.timing.cfg_samp_clk_timing(rate=rate2,
            sample_mode=nidaqmx.constants.AcquisitionType.CONTINUOUS,
            samps_per_chan=2048)
        self.task3.timing.ref_clk_src = "PXI_Clk10"
        self.task3.timing.ref_clk_rate = 10000000
        self.task3.timing.cfg_samp_clk_timing(rate=rate3,
            sample_mode=nidaqmx.constants.AcquisitionType.CONTINUOUS,
            samps_per_chan=2048)

        self.task2.control(TaskMode.TASK_COMMIT)
        self.task3.triggers.start_trigger.cfg_dig_edge_start_trig(
            "/PXI1Slot2/ai/StartTrigger")

        self.task3.start()
        self.task2.start()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51856215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档