Digital Occurances with E series cards

I would like to generate a labview occurance when a DIO line on a PCI
6052E card changes state. Is this possible?
I know that this is possible for 652X devices.
Thanks

Hi,
If you're just getting started with Digital I/O with Traditional DAQ, I would take a look at some of the examples to see how to structure your code to do both input and output.  There is one here (http://zone.ni.com/devzone/cda/epd/p/id/1113) that should give functionality similar to what you are looking for, but if you want more examples you can navigate to the examples by following the article here (http://digital.ni.com/public.nsf/allkb/46D0C7360A10D25F862571B5007B4411), so long as you have installed them along with Traditional DAQ.
Matt Lee
National Instruments
Applications Engineer

Similar Messages

  • Linker problem with M series card

    I am attempting to incorporate a PCI 625 DAQ M series card into a Borland C++Builder application. To get started I have used the code from the example "ContAccelSamps-IntClk-AnlgStart" in the documentation. I have added "nidaq32.lib" to the project and included "nidaq.h" and "NIDAQmx.h" as in the example.
    Everything compiles correctly. However on linking I get the error message "NIDAQ32.LIB contains invalid OMF record, type 0x21 (possibly COFF). I am not sure what this means.
    Is this a bug in NIDAQ32.LIB or am I missing something simple here?
    In an attempt to resolve the problem I have rebuilt the library from the dll, but this doesn't work either, the new library is only 215 KB whereas the original one is 886 KB.
    So as a su
    bsidiary question might I ask how you build libraries from NI dlls.

    Hello,
    I apologize for the confusion around this. Currently, the NI-DAQmx C import library for Borland is only installed with LabWindows/CVI DAQ support. However, I am attaching the NI-DAQmx 7.3 import library that you will need for Borland support. We are working on posting this in a Knowledge Base on our website. Here is a link to another discussion forum thread in which a customer used with borland's "coff2omf" to work-around the linker issues they were seeing. This link also discusses another problem you may run into with floating point initialization that you may need to take into account. Hopefully this information will enable you to get your application working with Borland and M Series. If not, please let us know.
    http://exchange.ni.com
    /servlet/ProcessRequest?RHIVEID=101&RPAGEID=137&HOID=5065000000050000005EC50100&HTHREAD=000116062&UCATEGORY_0=_30_%24_12_&UCATEGORY_S=0
    thanks,
    Nicole
    Attachments:
    NIDAQmx.lib ‏487 KB

  • No Digital Sound, with X_FI Fata1ity Card. HELP

    I haveing a heck of a time getting digital sound from vista, I have my speakers pkluged into the flex jack, but can't seem to find where do set the digital sound option within vista, using creative audio console, have spdif set to default and 48, have the speakers set in the sound option in control panel undwr custom to enable Digital I/O, is this right, as I have speakers and SPDIF both listed under sound in the control panel, and yes it does work with analog from the card. Help PleaseMessage Edited by Stedmister on 05-02-200703:2 PM

    Try this
    http://forums.creative.com/creativel...query.id=34898

  • Read bipolar voltages in the 20 volt range with E series card

    I tried placing the value -1 in the gain parameter in the AI_Read function, but it didn't work. Instead of returning 6.3V it returned 5 flat.

    Robin,
    Are you using the AI_VScale function to scale the binary data returned by the AI_Read function? If you are, you need to be certain that you are also correctly specifying its gain parameter. Below, I have attached a simple example that appears to function correctly (Modified AIonePoint.C).
    Good luck with your application.
    Spencer S.
    Attachments:
    Modified_AIonePoint.c ‏3 KB

  • Something wrong with my Flash Cards

    I had an error previously and to fix it I had to disable all services and perform a clean boot something and enable all the services in msconfig. However, when I did it an error occured with Toshiba Flash Cards on my Windows 7 64-bit. Before I'd just press the keys F2 to F12 (without pressing FN) and the flash cards would appear and the job would be done. To not use the Flash cards, that is if I wanted to rename a file I'd have to hold FN and press F2, if I just pressed F2, brightness would decrease. But now, I can rename a file by just pressing F2 and to alter the brightness I have to hold FN and then press F2. Also, the flash cards do not pop out and appear. Previously they would but not now. So when I have to turn off wifi, it is practically a hit and trial method because I cant see the flash cards. Is there any way of fixing this?

    Post your problem in the non-USA forums. And provide the entire part number so they can look up the computer.
       Toshiba Support Forums in Europe

  • Use M-Series cards with DAQmx in Matlab!

    Hi DAQers!
    Who is this message for?
    For all people wanting to use their M-Series cards (and/or NI_CAQmx drivers) with Matlab.
    Content:
    Basic introduction into importing DAQmx into Matlab. Simple AI (analog input), advanced AI (synchronous)
    and simple AO solutions are displayed with Matlab source code.
    Motivation:
    There's probably little disagreement that the new M-Series cards are superior to the old E-Series cards.
    However, Matlab does (as of February 2005) not support either directly.
    By buying the Data Acquisition Toolbox you can access most of the E-Series' functions from within Matlab.
    But this will not help you with your new M-Series card! But it is possible to use M-Series cards with Matlab.
    First step
    Start by loading the NI dll:
    funclist = loadlibrary('nicaiu.dll','nidaqmx.h','alias','myni')
    (You can choose any alias as long as it is a legal variable name.)
    If your version of Matlab is too old to provide the "loadlibrary" function directly, download it here:
    http://www.codeproject.com/dll/MatlabGenericDll.asp?df=100&forumid=26247&exp=0&select=972623
    After importing, you see the list of available functions.
    You can also display them by
    libfunctionsview('myni')
    That's basically it. By using the National Instruments NI-DAQmx C Reference manual and libfunctionsview('myni')
    you have access to those functions. One special thing you need to keep in mind is the fact that pointers
    work differently in Matlab than in C. This problem can be solved by using the Matlab function "libpointer".
    Sometimes Matlab does not require a pointer when C would. But I found that it does not hurt to
    specify a pointer in this case. Whether Matlab expects a pointer can be seen in the output
    created by libfunctionsview('myni')
    The general syntax for calling DAQmx functions is:
    [outputarguments]=calllib(alias,NIDAQmx_functionname,inputarguments)
    My next message will show a function I wrote that enables basic and advanced analoginput.
    Jens

    Hi!
    As promised, my Matlab function to use the M-Series card with Matlab.
    I have the bad habit of programming in German and English at the same time.
    I tried to correct that for this posting. I hope I succeeded!
    I wrote this function to suit my needs -which it does.
    Feel free to modify it to suit yours.
    Jens
    Edit: I just saw that my m-File is longer than 5000 characters! #duh#
    Sorry!
    I'll see if I can get a download up!
    Here's the abbreviated m-file without synchronous AI:
    function messmatrix=NImess(synchron,trigger,numofchans,samprate,samptime)
    funclist = loadlibrary('nicaiu.dll','nidaqmx.h','alias','myni');
    disp('NI: Create Tasks')
    taskh1=uint32(1);
    [a,b,taskh1] = calllib('myni','DAQmxCreateTask','master',taskh1)
    taskchans1=['Dev1/ai0:' num2str(numofchans-1)];
    [a,b,c,d] = calllib('myni','DAQmxCreateAIVoltageChan',uint32(taskh1),taskchans1,'',-1,-10,10,DAQmx_Val_Volts,'')
    nsample=samprate*samptime; %
    disp('NI: Config Sample Clock')
    [a,b]=calllib('myni','DAQmxCfgSampClkTiming',taskh1,'',samprate,DAQmx_Val_Rising,...
    DAQmx_Val_FiniteSamps,nsample)
    disp('NI: Config Digital edge start trigger')
    if trigger==1
    [a,b]=calllib('myni','DAQmxCfgDigEdgeStartTrig',taskh1,'/Dev1/PFI0',DAQmx_Val_Rising );
    else
    [a]=calllib('myni','DAQmxDisableStartTrig',taskh1)
    end
    disp('NI: Start task(s)')
    [a]=calllib('myni','DAQmxStartTask',taskh1)
    DAQmx_Val_GroupByScanNumber = 1;
    readarray1=ones(numofchans,nsample);
    readarray1_ptr=libpointer('doublePtr',readarray1);
    sampread=0;
    sampread_ptr=libpointer('int32Ptr',sampread);
    empty=[];
    empty_ptr=libpointer('uint32Ptr',empty);
    arraylength=nsample*numofchans; % more like "buffersize",
    disp('NI: Reading Data!')
    [a,readarray1,sampread,empty]=calllib('myni','DAQmxReadAnalogF64',taskh1,-1,-1,...
    DAQmx_Val_GroupByScanNumber,readarray1_ptr,arraylength,sampread_ptr,empty_ptr);
    disp('NI: Stop task')
    [a] = calllib('myni','DAQmxStopTask',taskh1);
    disp('NI: Clear task(s)')
    [a] = calllib('myni','DAQmxClearTask',taskh1);
    messmatrix=[readarray1'];
    disp('NImess finished')

  • Verizon is using the Elipsis tablets to steal data from their customers.  The only way to stop data from registering as cellular data is to pull the SIM card.  This occurs with wifi enabled and cellular,dara disabled.  If,you take your tablet to a Verizon

    Verizon is using the Elipsis tablets to steal data from their customers.  The only way to stop data from registering as cellular data is to pull the SIM card.  This occurs with wifi enabled and cellular,dara disabled.  If,you take your tablet to a Verizonstore they will upgrade your data plan to cover the overage and credit the upgrade.  You will then have to remember to downgrade your plan or continue to pay for more data.  Verizon, how would you feel if I walked into one of your stores and started filling my pockets with merchandise?  If cought can I just give the product back and say "oops, sorry"

    Today, my FCC complaint hit the same person working on the BBB complaint.  Jimmie has been very nice and seems willing to work with this problem.  We have been able to come to an agreement.  I paid the purchase price for the phone and he returned my upgrade and unlimited data plan.  This is what would have occurred if Verizon had given me correct information to begin with.  I am happy with this result.  He also brought quite a few instances concerning the handling of my transfer and upgrade that did not follow proper procedure.  I am also confident that I would not have resolved this without complaining to BBB and or FCC.  Verizon had no interest in solving the problem nor did they show any propensity to keeping a 20 year client.  Even though this last CSR was very polite and helpful, his sole job is to respond to formal Federal and State complaints.  He is required by law to address every complaint and report the reporting agency the agreed upon results - good or bad.  Again, I suggest - If you are not getting the proper customer service, complain to someone outside of Verizon.  Jimmie had not received any complaints registered with Verizon directly and I still have not had any contact with any other management representative that I was told would call.

  • Digital Handshaking with two PCI-DIO-32HS Cards

    Hardware: two PCI-DIO-32HS Cards
    Software: LabVIEW 5.1, NI DAQ 6.6
    Problem:
    I'd like to do burst digital handshaking with two PCI-DIO-32HS cards.
    One being used for sending bit stream while the other receive.
    Suppose I want to use burst handshake mode.
    How should I wire the connections?
    Where should I wire the REQ, and ACK line from the sending card?
    Should I wire REQ from card one to REQ of the other card?
    Also, how do I configure labVIEW VI to do burst handshaking mode.
    Can anyone send me a VI that can do this.
    Thanks a lot.

    Matt,
    I would recomend using the DIdoubleBufPatternGen.C examples that ships with NI-DAQ. You can find it in your \NI-DAQ\Examples\VisualC\Di folder. If you don't have this example on your machine, you can get it by running NI-DAQ Setup and selecting support for C/C++.
    This example does double buffering to allow you to continuously acquire data from your card. Data is transfered only when a full 1/2 buffer is ready. You can set how long to acquire data by setting the number of half buffers to read, or by modifying the read loop conditional parameters to fit you needs. See the NI-DAQ help on how to set you REQ pulse rate to 100kS/s.
    Nick W.
    www.ni.com/ask

  • On E series Card with 2 counters I want to generate a fixed length pulse train and want to continuously monitor it.

    On E series Card with 2 counters I want to generate a fixed length pulse train and want to continuously monitor it.

    Depending on the software you are using, there are many shipping examples and example programs on the web that illustrate generating a finite pulse train. The E series boards have the DAQ-STC counter/timer chip, and so make sure you search for DAQ-STC examples. I have included links to a LabVIEW example and Measurment Studio Example in Visual Basic.
    Generate finite pulse train in LabVIEW.
    http://eagle.ni.com/stage/we/niepd_web_display.DISPLAY_EPD4?p_guid=B45EACE3DA2156A4E034080020E74861&p_node=DZ52328&p_submitted=N&p_rank=&p_answer=&p_source=Internal
    Generate finite pulse train in Visual Basic with Measurement Studio
    http://eagle.ni.com/stage/we/niepd_web_display.DISPLAY_EPD4?p_guid=B45EACE3D96156A4E034080020E74861&p_node=DZ52328&p_submitted=N&p_rank=&p_answe
    r=&p_source=Internal

  • Are there any DAQmx examples available for use with pci 6229 M series card?

    I have been searching around for examples which work with the pci 6229 M series DAQ card. Most examples do not list this card as applicable and the one I have found gives an error. Is there anywhere specifically available, what I am particularly interested in is seeing an analogue channel being triggered by another analogue channel reaching a certain value.
    Thanks
    Kevin

    Hi Kejoglo,
    You are right in the fact that the M-Series card is newer than LabVIEW (and therefore the examples that are shipped with it) and therefore the example finder doesn't list the M-Series cards in the list of available hardware.
    Basically though, the M-Series cards work with DAQmx and not Traditional DAQ so if you just go into the example finder and search under Hardware Input and Output>>DAQmx and choose an example from that folder to run on your M-Series card. As long as you don't try to do anything outside of the specifications of your card (which I doubt you will do) then you shouldn't have any trouble running any of the DAQmx examples on an M-Series card.
    Hope this helps, if you still have problems then please feel free to write back.
    Best regards,
    Peter H
    Applications Engineer
    National Instruments UK

  • SQL Clustering on C Series server with QLE8152-CNA cards

    Is there any documentation on best practices when installing Windows on a c series server
    with QLE8152-CNA cards for SQL clustering?  Since it will be a bare metal install of Windows, this card will only present a maximum of 2 nics (FI A and FI B) to the Windows OS and because SQL clustering requires multiple nics (heartbeat, regular network), I wanted to know whethere there are guidelines on how to do this or whether it is even supported.  I intend on using the failover feature in UCS Manager 1.4 when creating a service profile for these c series server which means I'll end up with 1 NIC presented to the Windows server.  Thanks.

    Hi Keny,
    I tried to powercycle both servers (c260M2 and C460M2) but still no discovered server and also no logg.
    I checked
    Rack Server Discovery Policy == immediate
    Rack management Connecton Policy == Auto Achnowledged
    Chassis/Fex Doscovery Policy == 2 Link and Port-Channel (As I installed 2232PP I moved to Port Channel)
    I am running UCSM Version 2.1(1e)
    FI 6248 Version 5.0(3)N2(2.11e)
    2232PP run on same as FI
    I also have a connected 5108 with IOM 2104 running on 2.1(1e) Version.
    CIMC Version of C260M2 and C460M2 will be checked tomorrow when my kolleague is in the datacenter.
    Server Connection is not really the same like in http://www.cisco.com/en/US/docs/unified_computing/ucs/c-series_integration/ucsm2.1/b_UCSM2-1_C-Integration_chapter_011.html
    Because I still have no VIC Card but the connections are the same.
    C260 GE LOM1 <-> FEX2 Port 11
    C260 GE LOM2 <-> FEX3 Port 11
    C260 10 GE LOM1 (PCIE Slot4) <-> FEX2 Port 12
    C260 10 GE LOM2 (PCIE Slot4) <-> FEX3 Port 12
    GE LOM ist position 13 and 10 GE LOM is position 11 in the techspech of c260
    http://www.cisco.com/en/US/docs/unified_computing/ucs/c/hw/C260/install/overview.html#wp1243740
    C460 GE LOM1 <-> FEX2 Port 10
    C460 GE LOM2 <-> FEX3 Port 10
    C460 10 GE LOM1 <-> FEX2 Port 9
    C460 10 GE LOM2  <-> FEX3 Port 9
    GE LOM ist postion 8 and 10 GE LOM ist position 7
    http://www.cisco.com/en/US/docs/unified_computing/ucs/c/hw/C460/install/overview.html#wp1243740
    With C260 I also tried a reboot with disconnected 10 GE Ports, but also no discoverd Server until now.
    Regards Alois

  • How do I set up digital signature with a common access card?

    I am running a Linux machine, and am trying to set up adobe reader on my computer to be able to sign using my a CAC. I can use the digital signature/certificates on the card to access websites in other programs on my computer, so I know it works... having trouble figuring out how to set adobe up to use it.

    Download and install AirPort Utility for Windows.

  • How to generate an interrupt using DI change detection on m-series card

    Hi,
    I want to generate an interrupt on the positive edge of a digital input signal on the IO connector.
    Does anybody know how to configure an m-series card (PXI-6224) for this use through RLP programming?
    Thanks in advance,
    Richard

    Richard vl wrote:
    I want to generate an interrupt on the positive edge of a digital input signal on the IO connector.
    Does anybody know how to configure an m-series card (PXI-6224) for this use through RLP programming?
    RuthC wrote:
    I also want to generate an external interrupt on an M- series pci-6229, and on a pci-6602.
    1. Is there an exampe how to configure the registers?
    2. which external signals can genarate interrupts on those cards?
    Hi Richard, hi Ruth,
    Let me address your questions together: first for 662x (part of M Series) digital change detection and then for 6602 (part of 660x).
    622x (M Series)
    Digital change detection has not been released in the DDK for M Series devices. If you must use an M Series device, please ask your field engineer to contact NI support so we can discuss options. On the other hand, digital change detection has been released in the DDK for X Series devices (63xx) [1].
    If you can use one from that family, then your programming will be much easier -- the RLP manual discusses change detection as well as interrupts (Chapter 1: Interrupts, beginning on PDF page 48), and the example distribution demonstrates how to configure change detection on the device (dioex3). The last piece is data transfer: the example's data transfer mechanism is DMA, so you would need to supply your own interrupt handler to move data to the host (or alert the host that a DMA transfer has completed).
    6602 (660x family)
    Moving to the 6602, change detection is not possible. The 660x device family only supports polling for transfering data read on the digital lines [2].
    Please let me know if I overlooked anything in your questions.
    [1] NI Measurement Hardware Driver Development Kit
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/11737
    [2] NI 660x Specifications
    http://digital.ni.com/manuals.nsf/websearch/57893F11B0C0687F862579330064FF6F
    Joe Friedchicken
    NI VirtualBench Application Software
    Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
    Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
    Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
    Senior Software Engineer :: Multifunction Instruments Applications Group
    Software Engineer :: Measurements RLP Group (until Mar 2014)
    Applications Engineer :: High Speed Product Group (until Sep 2008)

  • Synchroniz​ation of M-Series cards via RTSI and ANSI C?

    Hi!
    This is my first post and I'm happy to be here. I tried to search as thoroughly as possible, but if this has been answered elsewhere, I'd be grateful for a hint/link nevertheless.
    System:
    Win 2000 Pro with NI-DAQmx (part of NI-DAQ 7)
    2x PCI-6220M, 1x PCI-6221M
    RTSI Cable
    all components are registered in MAX
    Problem:
    I want to synchronize the cards over the RTSI bus. I am using the ANSI C library. There's an example SharedClk10-FiniteAcq_main.c, but it is designed for PXI and uses the undocumented (at least in the C reference?) DAQmxSetTimingAttribute function. I tried to pass '/Dev1/RTSI7' as the clock source, but it did not work.
    Then, after reading the C reference a bit more, it seemed as if I needed to use DAQmxExportSignal. But it gives me an error DAQmxErrorInvalidRoutingSourceTerminalName_Routing = -89120 when I try to route DAQmx_Val_20MHzTimebaseClock to '/Dev1/RTSI7'
    I'd like to know what C functions I have to call in which order to enable synchronized sampling with the three M-Series cards.
    So far I do:
    DAQmxCreateTask (primary & driven)
    DAQmxCreateAIVoltageChan (p & d)
    DAQmxExportSignal (p)
    DAQmxCfgDigEdgeStartTrig (d - trying to import the failed export of /Dev1/RTSI7)
    DAQmxStartTask (d & p)
    DAQmxReadAnalogF64 (p & d)
    DAQmxStopTask(p & d)
    This is my first time using M-Cards or the ANSI C functions, so I might have missed something essential.
    Can anyone give a hint as to what I need to do?
    Jens

    First, if you haven't, you should explicitly create a RTSI cable in MAX. This can be done by right-clicking on Devices and Interfaces -> NI-DAQmx Devices and choosing Create New NI-DAQmx Device -> RTSI Cable. Then, for each device that is connected to the RTSI cable, use MAX to edit its properties and in the "RTSI Configuration" tab, specify the RTSI cable. This will allow NI-DAQmx to automatically route signals of the RTSI cable.
    Now that a RTSI cable is configured, you don't need to explicitly export signals from the task. You can use the DAQmxGetMasterTimebaseSrc function to retrieve the master timebase terminal name from the primary task and the DAQmxSetMasterTimebaseSrc function to set the master timebase terminal name for the driven task. The DAQmxGetMasterTimebaseRate and DAQmxSetMasterTimebaseRate functions can be used in a similar manner. Configuring these properties will result in NI-DAQmx automatically routing the master timebase signal from the primary task to the driven task using the RTSI cable. To ensure the driven device starts at the same time, invoke the DAQmsxCfgDigEdgeStartTrip function passing a triggerSource parameter of "/ai/StartTrigger" which will result in NI-DAQmx automatically exporting the start trigger signal for the primary task over the RTSI bus and using it as a digital start trigger for the driven task.
    I assume that you will also want to invoke the DAQmxCfgSampClkTiming function for each task to specify the acquisition rate and number of samples to acquire. Note that since the master timebase signal and the start trigger signal are already routed using the RTSI cable, the sample clock itself does not need to be shared between the two tasks.
    geoff
    Geoffrey Schmit
    Fermi National Accelerator Laborary

  • Generate and synchronize 6 digital channels with differents phases/frequencies/duty cycles/...

    Hello,
    For some kind of tests we need to generate, with a 6534 card, 6 signals.
    The 6534 has 32 digital E/S and can go up to 20MB/s !
    Each channel must be independant so that it can have it's own frequency and duty cycle. But for exemple the second channel can be delayed in reference at first channel. I put an image so that you can understand better what i try to do (3 signals are shown but six are needed).
    I see a lot of things on forum that are close to my probleme, but none seems to be as advanced as mine.
    http://sine.ni.com/devzone/cda/epd/p/id/4683 -> 6534 doesn't have timers
    http://forums.ni.com/ni/board/message?board.id=40&message.id=5167 -> Just a phase probleme
    http://forums.ni.com/ni/board/message?board.id=170&message.id=261289 -> Another board
    http://forums.ni.com/ni/board/message?board.id=40&message.id=5090 -> Another probleme
    I contacted NI support, they send me an exemple on "patterns" but it generates frequencies that are multiple of one with no phase consideration or duty cycle.
    Any idea ?
    Thanks in advance for your advice and help.
    Eric.
    Message Edité par Eric31 le 08-10-2007 06:52 AM
    Message Edité par Eric31 le 08-10-2007 06:55 AM
    Attachments:
    Sans titre.PNG ‏8 KB

    At best, that's gonna be a pain in the neck with that board.  If you need very precise timing for freqs, duty cycles and offsets, it gets worse.  If they need to change on-the-fly, it'll be near-impossible.
    1. You can only operate 1 hw-timed digital output task at a time.  So all 6 signals must be part of that 1 task.
    2. Thus, you need to define an output buffer representing the states of those 6 bits throughout your entire generation.
    3. There's a bunch of greatest common factor and least common multiple stuff needed to figure out the right output rate and buffer size, assuming you'll want to regenerate repetitively.  You first need the gcf of all the transition times to come up with the right output rate since all the transitions need to occur on some integer multiple of the output period.   You'll then need the lcm of the 6 signals' periods, combined with the output rate, to size up a buffer that can be regenerated.
    4. Forming the output data array may be quite complex.   Personally, I always do my stuff with raw arrays and I know that interleaving all those signals can be quite tricky, especially if there may be an occasional simultaneous transition.   However, I suppose there's a chance that some of the digital waveform functions *might* make this step a bit simpler.  I just haven't played around with that format much.
    Editorial opinion: Buy a 6602.  You can trigger 6 counters to start with different initial phasing, and will be able to change freq & duty cycle on-the-fly for each one independently.
    Editorial opinion #2: For higher channel count apps, I'd also recommend checking out the DIO-64 board put out by Viewpoint Systems, an NI Alliance partner.  It gives you much smarter hardware-timed DIO.  With the NI board, there can be huge amounts of redundant info in the DO buffer.  If you find that your GCF is 10 microsec, but the time between consecutive transitions is 10 millisec, you'll have to stuff 1000 identical values into your output buffer.   With Viewpoint's board, your data acq buffer *only* contains data at the transition times.  Timing is controlled by delivering a separate array defining the timestamps that correspond to those transitions.
    -Kevin P.

Maybe you are looking for