Can you perform simultaneous timed digital input and output using a PCI-6120?

Is it possible to do simultaneous timed digital input and output using a PCI-6120? It seems that timed digital operations require using the group read/write commands, which utilize an entire port. Since the PCI-6120 has only 1 digital I/O port, I would like to be able to use 2 lines as outputs and 1 line as input, and do both in a deterministic fashion. i.e. create a digital signal with known pulse widths and read an input line at a known time after the outputs were set. Is this possible to do with only one digital I/O port?

Hello,
This can be done in LabVIEW. There is actually an example that installs with NI-DAQ.
Below is a link to a Knowledge Base that explains how to find the correlated digital I/O examples.
http://digital.ni.com/public.nsf/websearch/B849664604EB34B886256D12005B5520?OpenDocument
Just take a look at the example titled �Continuous CDIO with external clock (E).vi�
Best regards,
Justin Tipton
National Instruments

Similar Messages

  • Can you take photos on digital camera and see them appear on the ipad using the camera connector

    Can you take photos on digital camera and see them appear on the ipad - i have a canon 400d and the new ipad.......

    The camera connection kit accepts only SD camera memory cards.
    Another way. You can use a USB flash drive & the camera connection kit.
    Plug the USB flash drive into your computer & create a new folder titled DCIM. Then put your movie/photo files into the folder. The files must have a filename with exactly 8 characters long (no spaces) plus the file extension (i.e., my-movie.mov; DSCN0164.jpg).
    Now plug the flash drive into the iPad using the camera connection kit. Open the Photos app, the movie/photo files should appear & you can import. (You can not export using the camera connection kit.)
     Cheers, Tom

  • Multiple inputs and outputs using DAQmx VIs

    Hello,
    I am fairly new with the LabView programming language.  I have a few training books that I have been reading, and I have been following online tutorials and reading the forums.  However, I have come to a problem where I don’t see a clear solution.  I am using LabView 2009 (9.0f3) and DAQmx VIs.
    I am using a NI 9172 chassis PLC, with two 9201 AI cards, 9217 AI RTD card, 9472 DO card, 9263 AO card, and two 9237 AI Bridge cards.
    I am reading eight analog inputs with the 9201 cards, two analog RTD inputs with the 9217 card, three digital outputs with the 9472 card, three analog outputs with the 9263, and eight analog inputs with the 9237 cards.
    I wrote a simple program to test one digital output task, two of the analog output tasks, and a single analog input task.  I put all of them in the same while loop, and it worked perfectly.  However, when I add analog input tasks to the same loop, I get an error 200022.    So I tested each sensor individually by changing the channel before each run.  I searched error 200022 and found that this is because I cannot start another analog input task until the previous one ends.  With this said, I don’t know how to acquire an analog voltage in the same task as an analog RTD voltage.  Both inputs take different constants in the start task DAQmx icon.
    Attached is my test program.  It is titled “Test All”. This is the program I used to test the various sensors.  I tested the input sensors one at a time, and it worked fine.  A few tasks are written just to test functionality, and will be added to later.  The data is only displayed on the screen.  I will add triggers and data write to disk functions later.  This program works now, but if I add more analog inputs, it will generate the 200022 error.
    Can someone show me how to correctly write the code for multiple inputs and outputs using DAQmx?  All training materials and tutorials I can find all show a single input or single output, not multiples of each.  Thanks for looking.
    -Randy
    Attachments:
    TestAll-NI.vi ‏32 KB

    Hi RandyC,
    The Knowledge Base article Using Different Types of DAQmx Global Channels in the Same Task goes into a little more depth of what Bryan is talking about, and it also includes some example code to help show what to do.
    Hope that helps,

  • Simultaneous Digital Input and Output from NI 9403

    Hi,
    I was wondering if it is possible to digital output through one line in this module(NI 9403) while simultaneously reading from 10 other lines?
    Basically what I need is for line0 to always be closed(true), and read lines1:10 - at very least 1sample/second.
    I have attached a stripped down version of my code illustrating my error. I thought I was getting the error because the two tasks were using different clock configurations, but I tried using the same inputs and that doesn't work for me.
    Any input is greatly appreciated.
    Thank you
    Attachments:
    Digital I-O.vi ‏22 KB

    Hi Matthew,
    The behavior you're seeing is expected for the 9403 module, since it is a serial module. The DAQmx help has the following restrictions in the Digital I/O Considerations for C Series Devices section.
    Timed digital input/output restrictions:
    You cannot use parallel and serial modules together on the same hardware timed task. 
    You cannot use serial modules for triggering. 
    You cannot do both static and timed tasks at the same time on a single serial module. 
    You can only do hardware timing in one direction at a time on a serial bidirectional module.
    So you can only do timed input or output at one time, but not both. However, based on the VI you attached and the description of what you want to do, you don't necessarily need both timed tasks in your loop. You can create a static output task to update that one line and after that, you can just start your timed input task on the rest of the lines. This should maintain the state on the DO line, since you're not acquiring from it.
    Cheers,
    Cristina
    Cristina

  • How to switch USB-6008 between digital input and output modes

    Hi I have been following the examples of setting a specific port to either inout or output using the DAQmxCreateDIChan() or DAQmxCreateDOChan() calls. What I now want to do, is switch betwen inout to output mode and back again.
    DAQmxCreateDOChan()
    DAQmxWriteDigitalLines()
    // do something
    //switch to input
    DAQmxReadDigitalU32()
    // switch back to output
    I can't seem to find any calls or discussions on this.
    rjmiller

    Hi RJM,
    If you want to be able to switch your digital line between input and output, then you will need to use the Tristate Property. There is another discussion forum with more detailed information about using this property and I believe that you have already seen it. I am going to post the link in case anyone else wants to see the other forum as well: Tristate Property Discussion Forum. Reddog's post is very informative.
    Regards,
    Hal L.

  • Producer consumer with analog and digital inputs and outputs

    Hi everyone,
    I am working on a control system program for some practical test work. Currently I am working on the data acuisition component of the Labview program. My architecture is produced-consumer loops with a que. My system will have analog inputs, analog outputs, digital inputs and digital outputs. It's not a time critical sytem, but I would like all of the data acquisition to be synchronised. I have attached my program as it is at the moment. I am having trouble getting all of the data into the que since I have two data types. Also, I'm not sure if i've synchronised the four read/write sequences correctly. I would greatly appreciate if somebody could take a look at my program and give me some advice. Thanks in advance.
    Solved!
    Go to Solution.
    Attachments:
    control_v2_DAQ loop.vi ‏46 KB

    Robert, the specific error that I get is:
    Error -200462 occurred at DAQmx Start Task.vi:6
    Possible reason(s):
    Generation cannot be started because the output buffer is empty. 
    Write data before starting a buffered generation. The following actions can empty the buffer: changing the size of the buffer, unreserving a task, setting the Regeneration Mode property, changing the Sample Mode, or configuring retriggering.
    Task Name: Heater testing lab digital outputs
    This error occurs at the 'DAQmx write.vi' function. I just want to sent one sample per second, for each channel. I would like the producer and consumer loops to each run once every second.
    I have attached part of my code with just the data acquisition and writing. Any help would be greatly appreciated.
    Attachments:
    control_v2_ML_simple.vi ‏83 KB

  • Synchronisation of input and output using myDAQ

    Hello!
    I am currently using the NI myDAQ and use both analoge output. and both analoge inputs. The sampling rate needs to be as high as 200k Hz. (Also within the while loop I do quite a lot of data manipulation and saving into text files.)  My vi works generally fine, but I still have to problems:
    1. How can I ensure that the read and write tasks are synchronised? I found out that it is not possible to use other trigger than the sample clock for write and read tasks using the myDAQ. (Is this right?) So as a workaround for me it is not important that the tasks start at the same time, but I want to ensure that the delay between "Start Write Task" and "Start Read Task" always is the same.  Is this possible? And how can I realise it?
    2. If I want to generate a non periodical signal that is not constant, how do I best generate this? At the moment I use a Sine Waveform.vi with a frequency of 0 and I change the offset input with every loop. I also tried to use the FormulaWaveform.vi but with this my produced waveform seemed to stop after completing the "number of samples in the waveform". But the sampling info must be the same for both AO channels I use, so I cannot simply increase this number.
    Thanks a lot for any help! Jules
    Attachments:
    MyDAQReadWrite.vi ‏72 KB

    hi Jules,
    If you only want to ensure that the delay between "Start Write Task" and "Start Read Task" always is the same, you can realize it with a simple while loop (with Wait Until Next ms Multiple).
    But if you want to synchronize for example both analog input, you can see how it works in different examples. Following Path is shows you how to find these examples:
         In LabVIEW -> Help -> Find Examples... Brows(Brows according to Task): Hardware Input and Output -> DAQmx -> Synchronization -> "Analog Input Synchronizantion.vi"
    To generate a non periodical signal that is not constant, you can change the offset input every loop. If you want to manipulate the offset while running you can also use local variables in the loop.
    In this case you could manipulate for example with a slide control.
    Regards,
    grroesis

  • How to get input and output using math interface toolkit

    Hi,
    I am fairly new to labview and i am trying to convert my labview code
    into matlab mex files using math interface toolkit. I cant see any
    input or output terminals when i try to convert the code to mex files
    even though my vi has plenty of inputs and outputs that should be
    available during conversion.
    just to cross  check i made another vi in which i inputted an
    array of data to an fft and outputted it to an array again. i tried to
    convert this code to mex files but was still not able to see any input
    or output terminals, which makes me believe that i must be doing
    something wrong at the very basic level and inspite of trying really
    hard for some days now i have not been able to figure out that might be.
    So please help.
    I am attaching the basic vi that i created along with the link that i followed for converting labview code to mex files.
    http://zone.ni.com/devzone/conceptd.nsf/webmain/EEFA8F98491D04C586256E490002F100
    I am using labview 7.1
    Thanks
    Attachments:
    test.vi ‏17 KB

    Yes, you've made a very basic mistake. You have front panel controls and indicators but none of them are connected to the VI's connector pane. right click on the VI's icon and select "Show Connector". You use the wiring tool to select a connection there and then select a control or indicator. Use the on-line help and look up the topic "connector panes". There are some sub-topics on how to assign, confirm, delete, etc.

  • Comparing digital input and output from two different DAQs

    I want to create this program where the digital output lights up LEDs at random and push buttons are the digital input part of another DAQ are pushed. When the correct button is pushed, the score will increase by 1. My code doesn't work though. Can someone point my errors to me? Both the DAQs i'm using are USB-6008 DAQs. thanks
    Attachments:
    Untitled 1.vi ‏41 KB

    Let's start with the digital output
    What is this code all about?
    Do you want only one of the 8 led's to lit randomly or are multiple led's also ok?
    The two possible codes are in attached file SNAG-003.jpg
    Connect the output of the "Scale by power of 2" function or the "Multiply" output directly to the Write DAQmx vi
    I don't understand the purpose of the "Boolean Value" and "Replace subset array" thing, so I skipped it
    Attachments:
    SNAG-002.jpg ‏49 KB
    SNAG-003.jpg ‏22 KB

  • Can 7 phase shifted 1kHz digital squarewaves be output using E-series DAQ?

    Is it remotely possible, using a PCI-5052E board, to generate seven different 1kHz squarewave digital outputs that are phase shifted (0 to 180 degrees) relative to the first output.

    Unfortunately, I wouldn't consider this very likely at all. While there is 8 DIO lines on this boards, you only have immediate software update control over them. (No strobed, hardware-timed output.) So you'd need a program that constantly toggled the state of these lines which would not be very fast or deterministic for that matter.
    A PCI-6602 counter-timer board would be a more likely solution and costs much less than a 6052E. However, you'd have to trigger each output at the right time in order to get the phase shift. The most flexible solution would probably be a PCI-DIO-32HS.
    -Russell

  • Can you buy a macbook in Canada and then use a charger purchased in England to charge it? Or do the different voltages mean the a Canadian and a UK macbook work on different power supplies?

    I want to purchase a Macbook in Canada before I move to the UK for a couple of years. But am concerned about whether I can use a Macbook power cord purchased in the UK with my Canadian Macbook. Is the differences in voltage something that affects the battery life or will it be completely fine to use the UK power cord with the Canadian computer?
    Thanks!

    The AC charge is auto-switching and works on both 110 an 220 volt systems. All you need is a wall outlet adaptor for the plug.

  • Do unlocked iphone 5's need sim cards to work or can you just plug it into itunes and start using it without a sim card

    please help

    so if i were to get an unlocked iphone it wouldnt turn on like an ipod if i plugged it into itunes?

  • Input and output on same device, producer/consumer structure

    Hello interested people,
    I have a question about using the same device for both digital inputs
    and outputs.  I have written a simple program of one while loop
    that continuously polls the device, processes, and requests.  I
    have addressed the device using two DAQmx Asst. and I have attached
    them with their error in/out cluster terminals to provide data flow and
    eliminate the chance of addressing the devices at the same time (which
    produces an error).  Now I want to change this program structure
    to a producer/consumer loop foundation with state machine.  
    In this design, I will have the DI in the producer loop and the DO in
    the consumer loop, under one of the states.  I can't simply
    connect the error in/out ports in this configuration, so my question is
    how to avoid the error caused by addressing the same device
    simultaneously with two different tasks (input and output)?  I
    have attached two VI's, the "One Loop" vi is the original configuration
    (simplified), and the Producer-Consumer vi is a NONSENSICAL program
    that simply represents the desired configuration.  (I don't need
    any comments on the programming of this vi, it is only an example for
    illustration of the problem). 
    I am thinking about bundling the input data and the error cluster, both
    from the PXI 6528 DI, into one cluster, queueing that up, and
    unbundling the de-queued elements for some kind of data flow between
    the producer loop and the "Request" state of the consumer loop. 
    Is this the right approach, or am I barking up the wrong tree?
    Thanks
    Attachments:
    One Loop DO DI.vi ‏102 KB
    Producer-Consumer DI-DO.vi ‏106 KB

    Hello,
    It sounds to me like you really have two modes:
    1. user interface actions determine execution
    2. user interface is locked, and execution is automated.
    I think it would make sense to use the producer consumer for an architecture.  Basically you would do the following:
    1. program the producer to handle the user interface as you normally would.
    2. provide one additional event case in the producer which would be your "automated handling" case.  In that case, you could put a state machine which could run until whatever conditions were met to put your program back in "user interface mode".
    Keep in mind that you can use custom USER EVENTS to programmatically generate events ie. you can trigger the start of your "automated handling" form anywhere in your code at virtually any time.
    I think this would allow you to take advantage of the producer consumer architecture in its intended spirit, while integrating an automated routine.
    I hope this helps!
    Best Regards,
    JLS
    Best,
    JLS
    Sixclear

  • Crystal Report XI: Can you write your query in SQL instead of using the GUI

    Hello
      In crystal report version XI, can you write your query in sqlplus and then use the crystal report designer to build your report instead of using the GUI . I would like to be able to go database and show sql query and open that query and make changes directly there, is that possible on this version, if yes is there a setting somewhere? Please let me know.
    Thank you
    alpha

    Moved to Database forum.
    No you can no longer modify the SQL directly. Use a Command Object to enter the SQL directly.
    Thank you
    Don

  • Digital input and digital output at the same time

    Hi all
    I have a PCI-6503 board. I have done 2 task that run simultaneously: the first one is port0_16 output and the second one is port2 input.
    I get sometimes (not every times...this is strange...) error-200587 saying:
    'Requested operation could not be performed, because the specified digital lines are either reserved or the device is not present in NI-DAQmx.
    It is possible that these lines are reserved by another task, the device is being used through the Traditional NI-DAQ interface, or the device is being reset. You might also get the error if the specified resource is currently in use by LabVIEW network variables bound to the DAQ Channel, or if the DAQ Channel is being used in any OPC Client software.
    If you are using these lines with another task, wait for the task to complete.  If you are using the device through the Traditional NI-DAQ interface, and you want to use it with NI-DAQmx, reset (initialize) the device using the Traditional NI-DAQ interface. If you are resetting the device, wait for the reset to finish.'
    In the attached VI i have recreated the basic structure of my real VI (the error is present even here of course...).
    How can i do?
    I want to have both digital input and digital output with the same PCI-6503 every single cycle... Is it possible?
    Please help me!!!
    Kind regards.
    I love the smell of napalm in the morning
    Attachments:
    DIO simultaneously error.vi ‏31 KB

    Hello Maverick,
    Did you have any luck with the example Raven sent you?
    In Raven's example, it properly passes the DAQmx task from one SubVI to another to avoid having to open the task again. These errors are likely to occur when you have multiple DAQmx calls in a VI that call the same task again without clearing the previously opened task. If at any given time you try to open a task that already is being used, you might receive an error "resource is reserved"... similar to your original example.
    If you are interested, here is an awesome link that gives a detailed explanation of the LabVIEW dataflow paradigm
    Learn 10 Functions in NI-DAQmx and Handle 80 Percent of Your Data Acquisition Applications
    Thanks and good luck!
    Jordan Randall
    National Instruments Italy

Maybe you are looking for

  • Business content

    Hi all, i have got some error in business content . BW info object not to be assinged R/3 object so i cant do extraction from R3. ex: InfoObject 0COMP_CODE, to be assigned to field BUKRS, is not active pls anybody know let send me details. Regards ve

  • ThinkStation not available in Canada ?

    I'm trying to complete my order.  I'm on the site Lenovo Canada-English, and when I try to pass to the 3th tabs : Payment,  I see that Error message : General note regarding shipping addresses: Your shipping address must be a valid street address. We

  • Java console and forms builder ?

    hi all , i am using developer suite 10g rel2 , db 10g rel2 ,jinitiator 1.3.1.22 . every time i run a form , a java console opens on my windows task bar , and does not close when i close my browser or form . when i open windows task manager ctrl+alt+d

  • Error lights for paper and cartridge

    The error lights for paper feeding problems and cartridge jams are both on. I have checked both the paper feeding and the movement of the cartridge. There are no problems in either area (no paper is jammed anywhere and the cartridge can move freely).

  • Spry Menu Bar - No Formatting

    I build several sites on Dreamweaver CS3. I decided I wanted to add Spry Menu Bar to one of them.  When I try, I get no formatting at all, just a list of text menu items.  Everything else is normal, but there is no menu bar, it displays instead as so