Quantcast
Channel: Multifunction DAQ topics
Viewing all 6880 articles
Browse latest View live

Measuring the phase difference of an analog input and output signal using a USB-6211 DAQ and Python 3.5

$
0
0

Hi,

 

I am working on a project where I need to measure the phase difference of an input signal relative to an output signal along with the amplitude of the input signal. I am using a USB-6211 DAQ  and am communicating with it through Python 3.5 (on Win64) where I am using PyDAQmx. The idea is that I will loop though frequencies of signals I send to my system and read back a signal of the same frequency but the phase of the read signal will change relative to my written (output) signal as I change frequency. With some processing I would then pull out the phase difference.

 

I am developing the code now and have run into an issue with an initial test. I am generating an output square wave and inputting it into the DAQ on a read pin and trying to read the flats of the signal. I have been unsuccessful so far. I believe my issue is with the timing of tasks starting and closing (my two tasks being a read and write). Below is a snippet of my code where I believe the issue lies and my whole code is attached in a zip folder.

 

# code above that does not deal with the creation of tasks or DAQmx communication
.
.
.
            top = 2
            bottom = 1
            write_temp = [top, bottom]
            for x in range(0, 4):
                write_temp.append(top)
                write_temp.append(bottom)
            write_temp = [float(i) for i in write_temp]
            write_temp = np.array(write_temp)
            read_num_vals = 120
            read_vector_storage = np.array([float(3 * i) for i in range(0, read_num_vals)])
            samples_per_channel_read = ctypes.c_int(0)

            # Tasks
            # Create tasks that read and write voltages
#######################################################################################################################
            task_write_v_in_ac = Task()
            task_write_v_in_ac.CreateAOVoltageChan("Dev1/ao0", "", -10.0, 10.0, PyDAQmx.DAQmx_Val_Volts, None)
            task_write_v_in_ac.CfgSampClkTiming(None, 1, PyDAQmx.DAQmx_Val_Rising,
                                                PyDAQmx.DAQmx_Val_FiniteSamps, 10)
            samples_per_channel_written = ctypes.c_int(0)  # Place holder for a single number that shows samples written
            task_write_v_in_ac.WriteAnalogF64(10, 0, 0, PyDAQmx.DAQmx_Val_GroupByChannel,
                                              write_temp, byref(samples_per_channel_written), None)

#####################################################################################################################
            task_read_v_in_ac = Task()
            task_read_v_in_ac.CreateAIVoltageChan("Dev1/ai0", "", PyDAQmx.DAQmx_Val_RSE, -10.0, 10.0,
                                                  PyDAQmx.DAQmx_Val_Volts, None)
            task_read_v_in_ac.CfgSampClkTiming(None, 6, PyDAQmx.DAQmx_Val_Rising,
                                                PyDAQmx.DAQmx_Val_FiniteSamps, read_num_vals)

            task_read_v_in_ac.ReadAnalogF64(read_num_vals, 30, PyDAQmx.DAQmx_Val_GroupByChannel, read_vector_storage,
                                            read_num_vals, byref(samples_per_channel_read), None)
            t0 = time.clock()
            task_read_v_in_ac.StartTask()
            t1 = time.clock()
            print("read start took " + str(t1 - t0) + " s")

            task_write_v_in_ac.StartTask()
            t2 = time.clock()
            print("write start took " + str(t2 - t1) + " s")

            task_write_v_in_ac.WaitUntilTaskDone(30)
            t3 = time.clock()
            print("write wait took " + str(t3 - t2) + " s")

            task_write_v_in_ac.StopTask()
            t4 = time.clock()
            print("write stop took " + str(t4 - t3) + " s")

            task_read_v_in_ac.WaitUntilTaskDone(30)
            t5 = time.clock()
            print("read wait took " + str(t5 - t4) + " s")

            task_read_v_in_ac.StopTask()
            t6 = time.clock()
            print("read stop took " + str(t6 - t5) + " s")

            print(read_vector_storage)
            print(samples_per_channel_read)
            t7 = time.clock()
            print("read prints took " + str(t7 -t6) + " s")


Looking at the print outputs I get in my console:


read start took 0.014864053832196735 s
write start took 0.010374004568873515 s
write wait took 9.034804022749778 s
write stop took 0.00345286878108908 s
read wait took 10.784182502702937 s
read stop took 0.008181223916963631 s
[ 0.99944425  0.99944425  0.99977302  0.99944425  0.99944425  0.99944425
  0.99944425  0.99977302  0.99977302  1.00010179  1.00010179  0.99944425
  0.99977302  0.99977302  0.99977302  0.99944425  0.99944425  0.99977302
  0.99977302  0.99944425  0.99911548  0.99944425  0.99944425  0.99977302
  1.00010179  0.99944425  0.99944425  1.00010179  0.99977302  0.99944425
  0.99944425  0.99944425  0.99911548  0.99977302  0.99977302  0.99944425
  0.99977302  0.99977302  1.00010179  0.99944425  0.99977302  0.99977302
  1.00010179  0.99944425  0.99944425  0.99911548  0.99977302  1.00010179
  0.99944425  0.99944425  1.00010179  0.99977302  0.99944425  0.99977302
  0.99977302  0.99944425  0.99944425  0.99977302  0.99977302  0.99977302
  0.99944425  0.99944425  0.99944425  0.99944425  0.99977302  0.99944425
  0.99944425  0.99944425  0.99977302  0.99944425  1.00010179  1.00010179
  0.99977302  0.99977302  0.99944425  0.99911548  0.99911548  0.99944425
  0.99944425  0.99911548  0.99977302  0.99911548  0.99944425  0.99944425
  0.99878671  0.99944425  0.99944425  0.99944425  0.99977302  0.99944425
  0.99977302  0.99977302  0.99944425  0.99977302  0.99977302  0.99944425
  0.99977302  0.99944425  0.99944425  0.99944425  0.99944425  0.99944425
  0.99944425  0.99944425  0.99944425  0.99977302  0.99944425  0.99944425
  0.99944425  0.99977302  0.99944425  0.99944425  0.99944425  0.99977302
  0.99977302  0.99977302  0.99944425  0.99977302  0.99944425  0.99944425]
c_long(120)
read prints took 0.004617634561245865 s

What I was expecting from this output was for some of the numbers in the list to be ~2 and the rest to be ~1. Instead they are all ~1.

 

Let me know if you need anymore information and any help would be greatly appreciated!

-B


NI 9263 AO Inconsistent with Oscilloscope

$
0
0

Hello All,

I am running LabVIEW 2015, and am using a cDAQ 9178 and an NI 9263 AO module.  I am trying to generate two voltage signals: two square pulses on two separate channels of the AO to trigger two different pieces of equipment in a precisely timed way.

 

The problem is, I am having some inconsistencies in the voltage I am telling LabVIEW to generate and what I am measuring on my oscilloscope.  I am using two "Simulate Signal" blocks to generate a 2V pulse and a 3V pulse, but measured on the oscilloscope I am getting ~20 volts and ~30 volts, respectively.  When I try changing the amplitude of the pulses, I very reliably measure voltages on the oscilloscope about 10x higher than what I am telling the DAQ to do.

 

The code I am using is attached, as well as screen shots.  Hopefully I am just making a silly mistake.  Any help is appreciated.

 

Thanks,

Dylan

Redlab 1608G Meilhaus ULX, I cannot install driver on labview 2017

$
0
0

RedLab_CD_v4_0.zip does not contain labview 2017 (17.0/ 32bit) ULX driver suport for Redlab 1608G Meilhaus. When trying to install it says "Labview 2010 or later is required for this package". How do I correct this problem?

Is a NI PCIe-6323 card a 32 or 64 bit device?

$
0
0

We have a large number of NI PCIe-6323 cards for production measurements.  In the course of rewriting the software I figured that we might get better performance if we compiled the *.exe with 64 bit LabVIEW (2013 full).  Not the case, takes twice as long to execute a timed loop. We are also using a NI PCIe-8430/8 (RS232) Interface.

 

Now, my NI-DAQmx Device Driver (v 16.0.1f0) is in the (x86) directory along with NI-488.2 (v3.1.2).  NI-VISA (v 15.0) is in SysWOW64.

 

So, using 64 LabVIEW may be counter indicated if the NI cards and NI drivers for the NI cards are 32 bit.  It takes extra time to process things through system WOW and translate between a 64 bit program and 32 bit hardware and drivers.  I looked all over the NI site to learn if these cards are 32 or 64 bit.

 

  • Are NI PCIe-6323 cards 32 or 64 bit?
  • Are NI PCIe-8430/8 (RS232) Interface cards 32 or 64 bit?
  • If 64 bit cards, are 64 bit versions of NI-DAQmx and serial drivers for these cards available?
  • I'm pretty sure the PCIe bus in my PC is 64 bit.

DAQ Recommended warm-up time

$
0
0

I am using the PCIe-6321 and was wondering if anyone knew additional details regarding the recommended warm-up time specifications.

  1. When does the 15 min timer start? (task creation, task start, computer power)
  2. What is the maximum signal error if the time is not allowed to elapse prior to reading data? (the room temperature doesn't drift more than +/- 5 degrees F.)

Thank you in advance.

How to read multiple analog channels simultaneously

$
0
0

Hi,

 

I am trying to read two thermocouple channels on the NI-9211 board with a single task. It works great when there is only a single channel ("Dev1/ai0").

 

But when I try to add a second channel ("Dev1/ai0:1", or "Dev1/ai0Smiley Very Happyev1/ai1", or "Dev1/ai0,Dev1/ai1"), neither of them read anything at all.

 

Here is my code - I am using ANSI C API with continuous sampling and a callback:

double temp;

int32 CVICALLBACK DataReadyCallback(TaskHandle taskHandle, int32 everyNsamplesEventType,
uInt32 nSamples, void *callbackData);

void CreateTask()
{
TaskHandle taskHandle;
DAQmxCreateTask("", &taskHandle); DAQmxCreateAIThrmcplChan(taskHandle, "Dev1/ai0:1", "", 75, 1500, DAQmx_Val_Kelvins, DAQmx_Val_K_Type_TC, DAQmx_Val_BuiltIn, 0, NULL); DAQmxCfgSampClkTiming(taskHandle, NULL, 6.0f, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1); DAQmxRegisterEveryNSamplesEvent(taskHandle, DAQmx_Val_Acquired_Into_Buffer, 1, 0, DataReadyCallback, NULL); DAQmxStartTask(taskHandle);
}

int32 CVICALLBACK DataReadyCallback(TaskHandle taskHandle, int32 everyNsamplesEventType,
uInt32 nSamples, void *callbackData)
{
double buffer[4];
int32 numRead;

DAQmxReadAnalogF64(taskHandle, -1, 0.5, DAQmx_Val_GroupByChannel, buffer, 4, &numRead, NULL);

temp = buffer[0];
}

Any advice appreciated!

 

accelerometer data acquisition from NI 9218 : getting non-zero amplitude

$
0
0

Dear Members,

 

I am using a NI 9218 DAQ module for acquiring vibration data from PCB accelerometer M353B15. When I acquire data, for no physical excitation of accelerometer, the graph should show zero amplitude. But the signal graph shows amplitude in the range of 2.6-3.3g when the accelerometer is at rest(no physical excitation). Also, I have entered the correct sensitivity value and the excitation current value in the settings. 

The accelerometer has a bias level of 8.8 VDC. 

I have not used an external signal conditioning module. I have used the internal IEPE excitation provided by the NI 9218 module.

 

I am not sure where I am going wrong. When there is no physical excitation, I want to get zero amplitude in graph. I request you to please provide your suggestions.

 

Thanking you,

Nitin

Connecting NI 9218 with 9982f terminal block to full bridge load sensor

$
0
0

Dear Members,

 

I am using NI 9218 module with 9982f screw terminal block to acquire load data from a HBM U9C load cell(it is 4 wire;full bridge sensor).

 

In the user manual of NI 9218(screenshot attached), it has been mentioned that the pin 3a and 3b are to be tied together for connection of 9982f block to a full bridge sensor. As I am from mechanical engineering background, I am not able to understand what "tying" exactly means. I have connected the wires as shown in the attached picture, but not getting required output in the graph. 

 

I request you to please help me out. I would be grateful for your suggestion.

 

Thanks,

Nitin


Classification of sensor - pressure transducer, maf sensor

$
0
0

Hi all,

 

I have a test bench with pressure transducers and maf sensors.  The pressure transducers are 3 wire, connected to a DIN rail 12 V PSU + and -, the third wire is the output fed to a 6363 AI card with screw terminal block.  The maf sensors are 4 wire: 12 V + and -, ECU ground, signal.   The ECU ground and signal wire are routed through shielded twin core cable, the shield is connected only at the 6363 end to AI GND, the same connection as the ECU ground wire and the signal wire to an AI terminal.  The 12V+ and - are routed on separate unshielded wires to the maf.  The 12V PSU has a common ground with a 24V PSU used for relays (which switch at start of test then stay closed) and a +/-15V PSU powering some hall effect LEM sensors.

 

I think there are some ground loops in the circuitry as the pressure readings have all shifted slightly after some wires were moved around (although same connection philosophy.)

 

Question 1: is a pressure transducer classed as a floating signal source, not connected to building ground OR ground-reference Signal Source?  What about a maf sensor?

 

I'm referencing the DAQ X Series User Manual and have also read the "Field Wiring and Noise Considerations for Analog Signals" paper.  The DIN Rail 12V PSU is powered off the building mains and I presume the neutral is grounded at the building main consumer unit (can't think why we'd have an isolated ring main)

 

Question 2: are all the AI GND screw terminals linked to each other?  Are they connected internally within the PXI Chassis to the PXI Chassis power supply -ve?  I'm getting up to 300 mV difference between various AI GND points within the terminal block and can't understand how, if they are internally connected.

 

thanks

 

NI USB 6211 - PyDAQmx - Sync Analog Inputs with Analog Outputs

$
0
0

I'm using the Python bindings for DAQmx Base, which is simplified a wrapper around the C functions.

I think some of you know this Python binding PyDAQmx.

 

Currently I'm using the same sample rate for two different Tasks. One Task writes one time the sample to the AnalogOutput and then it's repeated internally in the device itself. The other Task reads two Analog Inputs in a while loop. Is there an easy way to use a C function to synchronize the blocking call ReadAnalogF64 with the repeated samples of the other Task, which outputs the analog signal?

 

Here the code. Cleaned a little bit up, but still not perfect and it's bleeding edge. Needs Python 3.6.

 

#!/usr/bin/env python3.6

import logging
import sys


import zmq
import numpy as np
import PyDAQmx
from PyDAQmx.DAQmxFunctions import *
from PyDAQmx.DAQmxConstants import *


def get_device_name(physicalChannel):
    if isinstance(physicalChannel, list):
        return physicalChannel[0].split('/')[0]
    if isinstance(physicalChannel, str):
        return physicalChannel.split('/')[0]
    else:
        raise Exception('Wrong type of physicalChannel')


class ContextManager:

    def __enter__(self):
        return self
        
    def __exit__(self, *args):
        self.stop()


class MultiChannelAnalogInput(ContextManager):

    def __init__(self, physicalChannel, min_limit=-10.0, max_limit=10.0, reset=False, rate=4096, samples=512):
        self.device = get_device_name(physicalChannel)
        self.physicalChannel = physicalChannel
        self.numberOfChannel = len(physicalChannel)
        self.min_limit = min_limit
        self.max_limit = max_limit
        self.samples = samples
        self.sampling_rate = rate
        self.data = np.zeros(samples, dtype=np.float64)
        if reset:
            DAQmxResetDevice(self.device)
            

    def configure(self):
        task = PyDAQmx.Task()
        for name in self.physicalChannel:
            log.info(f'Adding chan {name}')
            task.CreateAIVoltageChan(name, '', DAQmx_Val_RSE, self.min_limit, self.max_limit, DAQmx_Val_Volts, None)
        task.CfgSampClkTiming(None, self.sampling_rate // self.numberOfChannel, DAQmx_Val_Rising, DAQmx_Val_ContSamps, self.samples // self.numberOfChannel)
        self.task = task

    def read(self):
        task = self.task  
        task.StartTask()
        dlen = self.samples
        numberOfChannel = self.numberOfChannel
        dlen_per_channel = dlen // numberOfChannel
        data = self.data
        read = int32()
        log.info('Starting read loop')
        while True:
            task.ReadAnalogF64(dlen, 10.0, DAQmx_Val_GroupByChannel, data, dlen, byref(read), None)
            yield data
            
    def stop(self):
        log.info('Stopping analog input task')
        self.task.StopTask()


class ChannelAnalogOutput(ContextManager):

    def __init__(self, physicalChannel, min_limit=0.0, max_limit=10.0, reset=False, rate=10240, samples=512):
        self.device = get_device_name(physicalChannel)
        self.physicalChannel = physicalChannel
        self.min_limit = min_limit
        self.max_limit = max_limit
        self.samples = samples
        self.sampling_rate = rate
        if reset:
            DAQmxResetDevice(self.device)

                
    def configure(self):
        task_handle = PyDAQmx.Task()
        log.info(f'Adding chan {self.physicalChannel}')
        task_handle.CreateAOVoltageChan(self.physicalChannel, '', self.min_limit, self.max_limit, DAQmx_Val_Volts, None)
        task_handle.CfgSampClkTiming(None, self.sampling_rate, DAQmx_Val_Rising, DAQmx_Val_ContSamps, self.samples)
        self.taskHandle = task_handle

    def write(self, signal_array):
        data = signal_array   
        dlen = self.samples
        write = int32()
        taskHandle = self.taskHandle
        taskHandle.WriteAnalogF64(dlen, True, 10.0, DAQmx_Val_GroupByChannel, data, byref(write), None)
        log.info(f'Starting output to channel {self.physicalChannel}')
        taskHandle.StartTask()
        self.task = taskHandle
    
    def stop(self):
        log.info('Stopping analog output task')
        self.task.StopTask()


class ZMQ_Publisher:
    def __init__(self, bind_to):
        context = zmq.Context()
        socket = context.socket(zmq.PUB)
        socket.bind(bind_to)
        self.socket = socket
    
    def send(self, np_array):
        self.socket.send_pyobj(np_array)
    
    def __enter__(self):
        return self

    def __exit__(self, *args):
        log.info('Closing socket')
        self.socket.close()


def triangle(samples):
    half_samples = samples // 2
    rising = np.linspace(1, 10, num=half_samples, dtype=np.float64)
    falling = np.linspace(10, 1, num=half_samples, dtype=np.float64)
    return np.concatenate((rising, falling))


def get_samples():
    if len(sys.argv) != 2:
        print(f'{sys.argv[0]} samples')
        sys.exit(1)
    try:
        samples = int(sys.argv[1])
    except ValueError:
        print('samples must be an integer')
        sys.exit(1)
    return samples


if __name__ == '__main__':
    logging.basicConfig()
    log = logging.getLogger(__name__)
    log.setLevel(logging.DEBUG)
    
    output_channel = 'Dev1/ao0'
    input_channels = ['Dev1/ai0', 'Dev1/ai1']
    
    samples = get_samples()
    rate = samples * 10
    log.info(f'Samplerate: {rate}')
    log.info(f'Samples of output: {samples}')
    log.info(f'Samples per analog input channel: {samples // len(input_channels)}')
    
    output_settings = dict(physicalChannel=output_channel, reset=True, rate=rate, samples=samples)
    input_settings = dict(physicalChannel=input_channels, reset=False, rate=rate, samples=samples)
    
    
    log.info('Setting up server')
    # using a contextmanager to ensure that everythig is closed correctly
    with ZMQ_Publisher('tcp://*:5556') as server,\
        ChannelAnalogOutput(**output_settings) as ao,\
        MultiChannelAnalogInput(**input_settings) as multipleAI:
        
        # prepare output
        ao.configure()

        # generate output signal
        log.info('Generate triangle sample')
        output_sample = triangle(samples)

        # write the sample
        log.info('Writing sample to output')
        ao.write(output_sample)

        # prepare analog inputs
        multipleAI.configure()
        read_generator = multipleAI.read()
        try:
            for data in read_generator:
                server.send(data)
        except KeyboardInterrupt:
            log.info('Closing now')

 

A Radar receiver is connected to AO0, AI0 and AI1.

To show that there is no synchronization between the two tasks, i recorded a Video.

The code is running inside a virtual machine with Scientific Linux 6.

The visualization is running outside the virtual machine. Currently I do not split the both signals.

 

9188xt by ethernet is only visible by MAX

$
0
0

Hello,2017-07-11 13_58_16-NI cDAQ-9188XT _cDAQ9188XT-1C486A0_ - Measurement & Automation Explorer.png

I have problem with my new daq 9188xt. I see it in the MAX, but not possible set or log in this device.

 

This device I can also seen at NI Network Device.

2017-07-11 13_54_28-NI Network Browser - Internet Explorer.png

 

 

I don't know where to look for a bug. It will be sure my basic error, but I don't see it.

 

Thank you for your answers.

NI USB-6216 and Windows 10

$
0
0

I have, perhaps, a dumb question, but is NI USB-6216 compatible with Windows 10?

 

Thanks in advance,

Joe

Using NIDAQmx cfg_samp_clk_timing in python 3.6

$
0
0

Hi,

I'm trying to use python with NIDAQmx and the NI USB DAQ6008 nodule. I want to sample one channel -  Ai0 at 5kHz samples per sec and I want to read 50 samples. I'm unclear how to format the timing line in the code. When I run the prog. I get the following error - AttributeError: 'AIChannelCollection' object has no attribute 'cfg_samp_clk_timing'

There's obviously something wrong with my formatting of the 'cfg_samp_clk_timing'. Could someone tell me what I'm doing wrong and how to correct this. Python is running in Anaconda 4.4.0 and my coding is in the Spyder GUI.

 

My code is as follows:

 

import nidaqmx
import numpy as np
import matplotlib.pyplot as plt

Samples_Per_Sec =5000  #max is 10k samples/sec if reading 1 channel, 5k if 2 ch. read etc.
Samples_Per_Ch_To_Read = 50

 
with nidaqmx.Task() as task:
    task.ai_channels.add_ai_voltage_chan("Dev1/ai0")
    data = task.read(Samples_Per_Ch_To_Read )
    task.ai_channels.cfg_samp_clk_timing(Samples_Per_Sec,RISING,FINITE,Samples_Per_Ch_To_Read)

    print(data)

Error while connection the DAQ navi with USB-4761

$
0
0

Hello LabVIEW users, 

 

I am new with DAQ navi assistant. My goal is to control the 12V DC relay through usb-4761. The usb driver has been installed successfully and I have tested the usb-4761; using Advantech navigator and it works fine. 

 

I have successfully setup the DAQ navi assistant in a while loop in order to switch on three outputs of usb-4761.(Refer to attached file for screenshot) However, after clicking the 'Run' button, Its shows an error "error- 536870891 occurred at ToErrorCluster.vi'

possible reasons: The required device does not exist. "

 

Can anyone please share how I can tackle this problem.

 

Chahal 

UAB 

 

 

 

NI 9218/NI 9983F: Error -200077 when trying to measure 4-20mA current

$
0
0

I'm trying to measure the output current of a sensor. It is between 4mA and 20mA.

I'm using the NI cDAQ-9171 with the NI 9218 Unit and an additional shunt resistor, NI 9983F (for +- 20mA current measurement):

 

In the "Start Task" vi does an error occur:

Error -200077 at DAQmx Start Task.vi: 7220001

 

Property: AI.Max
Requested Value: 20,0e-3
Value must be bigger than: -6,644518e-3
Value must be smaller than: 6,644518e-3

 

Device: cDAQ1Mod1

Task-Name: _unnamedTask<44>

 

 

I tried several examples made by NI or other users but nothing worked!

 

My current measurement vi.My current measurement vi.

 

Thank you in advance!


乱码如何解决NI DAQ Card

$
0
0

终于找到一个可以发帖的地方了。论坛那边根本无法发帖啊~~~

近期购买了贵公司的NI DAQ Card,安装完之后发现中文乱码。

现在想请教一下,如何将语言切换到英文。

谢谢

Sampling in DAQ 6368

$
0
0

I'm doing a DAQ loop back by forcing a sine wave on analog output and capturing at the AI. to match the coherency and get a single tone in the FFT power spectrum. Im struggling a lot and im new to both signal processing and using DAQ. So, please help me to understand the sampling rate and frequency bins in Labview VI terms.

I have written a simple DAQ loop back program i wonder why coherency is not good. And im not able to see a single peak at my frequency designed. Please have a look at my code and any help would be appreciated.

Thanks in advance.

No Physical Channels

$
0
0

Hello,

I'm trying to acquire data from an Atten ATF20B function generator. I'm using PCI-6602 and BNC-2121 to connect the generator to my computer, but under MAX, only the PCI card shows up under "Devices and Interfaces." There are no physical channel options for the program in LabVIEW (which is taken from one of NI's videos on Youtube). Any help is appreciated.

 

 

Receiving a voltage signal from subvi using asynchronous call and wait

$
0
0

Hi to all, 

     Here i was using a asynchronous call and wait function to acquire a voltage signal from daq 6211 in a subvi and main vi will display the results but when i need to control a sampling rate how can i command a signal from main to subvi, here i have attached a vi to analyse here.

ideas are welcome,

Thank you in advance,

regards,

Dinesh

 

How to synchronize two recording devices using a single DAQ

$
0
0

Hi,

I have some questions about how to synchronize audio and videorecording using a single DAQ device.

In my setup I’m using two devices, one for videorecording (pointgrey camera fl3 u3 13s2m cs, https://www.ptgrey.com/flea3-13-mp-color-usb3-vision-sony-imx035-camera) and one for audiorecording (Ultrasoundgate 416H, http://www.avisoft.com/usg/usg416h.htm, 4 microphone channels), that are connected to the same computer, but started by two different softwares. What I’m trying to do is to find a way to start both recordings at the same time so that to synchronize the two data (video and sound). The goal is to know precisely when sounds occur during the video.

 

I'm completely new in this kind of tasks and in the field of data acquisition, so any help is truly appreciated.

 

- Do you think that connecting both recording systems to the same DAQ device will allow me to solve this issue? If so, once both systems are connected to the DAQ, can I start symultaneous recording always from the computer? How?

-What type of DAQ device would be better for this task? May you give me some suggetion?

-What method of syncronization should be performed? I read about start trigger synchronization and sample clock synchronization, but I'm not sure which of the I need to use.

-Once recording has been done, will I have to different files as output? (One for audio and one for the video)

 

Plese tell me if you need more information

 

Thank you very much

 
Viewing all 6880 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>