Pulselength USB 6501

Hello,
I want to use one or more USB 6501 Boards to fire up some 10s of IGBTs. Each of these switches turns on ~10A for 1ms-3ms (each IGBT has a different turn-on length). Since the pulse pattern repeats after at least 40ms, i want to fire them step by step to minimize the stress for my main power line.
I managed to create a VI which does exactly what I want - with one exception: The digital waveform gets created from an array using "build waveform". But no matter what value I feed into "dt" to control the length of each digit/pulse, all I get is pulses of 1 ms for each logical "1".
From my point of view, "dt" tells the Channel how long it should stay "high" for each "1" it receives. Is this incorrect? I want to control the length of each pulse in steps of 0.1 ms - in other threads I read something about the need to use some kernel-functions to be able to use sub-millisecons resolutions. If this is correct, shouldn´t I be able to see a 2 ms pulse when setting "dt" to 0.002?
Thank you for every hint, Sascha
BTW: Labview 8.5 Evaluation / Labview 6.1 full
BTW2: In the attached file you will only find 8 digital waveforms for 24 digital ports... I don´t know how to save the full 24*20 binary array, therefore you will receive an error if you try to run this VI without correcting the number of physical ports to use.
Attachments:
IGBT.vi ‏49 KB
6501.png ‏53 KB

Hello Philosoph,
the USB-6501 is a static DIO device, which means it does not have an onboard clock to switch the digital ports with a certain frequency.
You can turn on and off the digital lines with software timing in LabVIEW. That is ok if the timing does not have to be very accurate - i.e. it does not matter if the pulse is 10 ms or 12 ms - and if the frequency is not too high.  A pulse length of 1 ms is borderline - most of the time, it will probably work, but when your PC does have to do other tasks, you might get a delay of up to  100 ms. In any case, you will have a jitter on the pulse length. For higher timing accuracy requirements, you would have to use a DIO device with correlated, which means clocked, outputs.
Having said that, I would recommend a different approach for the signal generation. I attached a VI that writes state information to the digital outputs; you can modify the digital pattern in the array, and set the desired pulse length. As the first iteration of "Wait for next ms multiple" does not have a determined duration, I would leave the first line all zeros and start signal generation with the second line. If needed, you can wrap the for-loop in another loop to repeat the pattern.
Regards,
Johannes
NI Germany
Attachments:
Digital Signal - static.vi ‏19 KB

Similar Messages

  • Usb 6501 unresponsive causing BSOD(Blue Screen Error)

    There are a lot posts about the same issue but mine is a little peculiar so i decided to post it.
    I am using two usb DAQ in the same pc(usb-6501, usb-6001), connected to the usb port on the back. The usb-6501 is used to obtain digital inputs from read switches, Sensors through an ssr. The usb-6001 is used to control 2 double valve solenoid, 1 dc motor, 2 indicator lamps. usb-6001 is also used to read analog values of current(using hall effect sensor) and voltage(using potentiometer).
    At first i was facing problems with the usb-6001(the usb-6501 was working fine at this point) resetting during operation accompanied by BSOD. Then i learned it was due to my relay, which requires 30 mA of current to switch so i used the ULN2003a to interface the usb-6001 with the relays and after that the application was running perfectly for 4 days.
    Now the usb-6501 is having the same problem and when i perform "Self Test" from NI MAX it shows "Error Code:50405" and i am able to reset the device from NI MAX only sometimes, other times i would have to unplug the USB device then plug it back in. As the application is used for an automated test rig the customer is frustrated by this problem. Once the card becomes unresponsive(or after the card is reset) BSOD occours.
    I have checked all the device drivers and OS for any errors but they are fine. i have even tried changing the ram to solve the BSOD with no use.
    System Details:
    Windows 7 SP1
    NI MAX 14.0
    power saving is disabled 
    I have attached the latest mini dump files as they might help in finding out the reason behind this problem(File extensions changed for the purpouse of uploading).
    I need to know: Is there any permanent solution for this problem? and what is the reason for this problem.
    Attachments:
    060115-12480-01.txt ‏315 KB
    053015-12324-01.txt ‏315 KB
    052615-17440-01.txt ‏315 KB

    Additional info : i did an analysis of the dump files and this is the result
    0: kd> !analyze -v
    * Bugcheck Analysis *
    DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    An attempt was made to access a pageable (or completely invalid) address at an
    interrupt request level (IRQL) that is too high. This is usually
    caused by drivers using improper addresses.
    If kernel debugger is available get stack backtrace.
    Arguments:
    Arg1: fffff88009fe10b1, memory referenced
    Arg2: 0000000000000002, IRQL
    Arg3: 0000000000000000, value 0 = read operation, 1 = write operation
    Arg4: fffff8800657922e, address which referenced memory
    Debugging Details:
    READ_ADDRESS: GetPointerFromAddress: unable to read from fffff800032c30e8
    fffff88009fe10b1
    CURRENT_IRQL: 2
    FAULTING_IP:
    nifslk+822e
    fffff880`0657922e 0fb650ff movzx edx,byte ptr [rax-1]
    CUSTOMER_CRASH_COUNT: 1
    DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
    BUGCHECK_STR: 0xD1
    PROCESS_NAME: System
    TRAP_FRAME: fffff80000b9c6b0 -- (.trap 0xfffff80000b9c6b0)
    NOTE: The trap frame does not contain all registers.
    Some register values may be zeroed or incorrect.
    rax=fffff88009fe10b2 rbx=0000000000000000 rcx=0000000000000000
    rdx=fffff80000b9c8e0 rsi=0000000000000000 rdi=0000000000000000
    rip=fffff8800657922e rsp=fffff80000b9c840 rbp=fffff88009fe10b1
    r8=0000000000000000 r9=0000000000000000 r10=0000000000000000
    r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
    r14=0000000000000000 r15=0000000000000000
    iopl=0 nv up ei ng nz na po nc
    nifslk+0x822e:
    fffff880`0657922e 0fb650ff movzx edx,byte ptr [rax-1] ds:c8e0:fffff880`09fe10b1=??
    Resetting default scope
    LAST_CONTROL_TRANSFER: from fffff80003091be9 to fffff80003092640
    STACK_TEXT:
    fffff800`00b9c568 fffff800`03091be9 : 00000000`0000000a fffff880`09fe10b1 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
    fffff800`00b9c570 fffff800`03090860 : fffffa80`06adc250 fffffa80`05c3a060 fffffa80`06adc250 00000000`0000ffff : nt!KiBugCheckDispatch+0x69
    fffff800`00b9c6b0 fffff880`0657922e : fffff880`05d47468 fffff880`01d91f90 00000000`00000000 fffff880`09fe0770 : nt!KiPageFault+0x260
    fffff800`00b9c840 fffff880`05d47468 : fffff880`01d91f90 00000000`00000000 fffff880`09fe0770 fffff880`09fe17a0 : nifslk+0x822e
    fffff800`00b9c848 fffff880`01d91f90 : 00000000`00000000 fffff880`09fe0770 fffff880`09fe17a0 fffff880`09fe10b1 : 0xfffff880`05d47468
    fffff800`00b9c850 00000000`00000000 : fffff880`09fe0770 fffff880`09fe17a0 fffff880`09fe10b1 fffff800`00b9c8e0 : nipalk+0x75f90
    STACK_COMMAND: kb
    FOLLOWUP_IP:
    nifslk+822e
    fffff880`0657922e 0fb650ff movzx edx,byte ptr [rax-1]
    SYMBOL_STACK_INDEX: 3
    SYMBOL_NAME: nifslk+822e
    FOLLOWUP_NAME: MachineOwner
    MODULE_NAME: nifslk
    IMAGE_NAME: nifslk.dll
    DEBUG_FLR_IMAGE_TIMESTAMP: 51f2daeb
    FAILURE_BUCKET_ID: X64_0xD1_nifslk+822e
    BUCKET_ID: X64_0xD1_nifslk+822e
    Can anyone help me with what this means?

  • How to I connect Sourcing digital output from My Interface Board to NI USB 6501 channel configured as Digital input

    When I connect an input to DI channel of USB 6501 card  from my board which has sourcing Output t, iIn the Off state it is not pulled down properly. The volatge on the port in is 2.1V -2.5V based on the pull down resistor on my board. I suspect that  it acts as a voltage divider.
    The state on the card is still show as "HIGH "state, even my sourcing output driver has a pull down  resister.  when I use this interface board for PCI mseries devices it works fine. Do the pull down resister on my sourcing output is not worth. Is this because of pull up resister 4.7k inside USB card 6501.
    USB 6501 specifications shows the Digital input accepts both source and sink modes. By default the card is in sourcing digital input mode. How do we can convert this in Sinkind digital input mode.
    Could anyone Please give your suggestions to overcome this issue .
    Thanks you.

    You really should not have both a pull up and pull down on the same line.  Really weird things can happen.  If you insist on having a pull down on your board, then I highly recommend putting a digital buffer chip between the DAQ and your board.
    Some boards with DIO have a pull up, while others have pull down.  You just have to watch the specs.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Can I measure period with USB 6501?

    Hi,
    I was told that I can use the one counter in the NI USB 6501 to measure period.  So, I wrote this little VI, modeled after the VI I have that measures encoder period using the counters built into the NI cDAQ 9174 with the NI 9401 digital I/O module.  I have my encoder wires GND and 5VDC on terminals 1 and 2, respectively.  Also, I have encoder channel A and Channel B wires connected to terminals 9 (P2.7) and 24 (P0.7) respectively.  With the MAX, I can count edges with this wiring.  The purpose of this VI is to display an average value of 25 period measurements of the encoder.  The encoder (120 cpt) is turning at about 2-5 rev/second, so, not that fast, maybe a total of 500 period per second; should be easy for this counter.  I'm just spinning it with my finger, so, not that fast.
    Please advise how to use the USB 6501.  I can't find any wiring instructions, other than the pinout, but, the pinout doesn't tell you which channel is the counter gate on the USB 6501, so, I found a response on MAX at channel 24.
    When I run this, the array is correctly initialized to 0.5, but, then I get this error, 200431. I found some things on the forum that suggest I cannot measure period, that I can only count edges.  Should I throw this 6501 away?
    Thanks,
    Dave
    Attachments:
    USB 6501 error.docx ‏24 KB
    USB 6501 period measurement.vi ‏26 KB

    The 9178 also only has 4 counters.
    Do the 5 period measurements actually have to take place at the same time?  Sometimes it might make sense to cycle through the channels to reduce the number of counters used (you wouldn't have to rewire connections or anything as the input terminals are software-defined).  Switching from channel to channel in software should take on the order of ms depending on which hardware you end up using.
    The 9171+(9401/9402) is a relatively cheap way to add additional counters to a system as the 9171 chassis has 4 counters just like the 9174 and 9178.
    Best Regards,
    John Passiak

  • Set up Signal Express to log when there is a change in state of the inputs (NI USB-6501 logger)

    Hello NI Forum, I have recently purchased digital I/O logger NI USB-6501.  This arrived with Signal Express, which I intend to use as a Lite version.  I just wondered if it was possible to set up Signal Express to only add a log entry when there is a change in state of the inputs?  I have this working on a 0.1sec sample period and can interrogate the logs after recording.  Most of the time nothing will be happenning, I just wondered if there was a way to reduce the ammount of data captured?  Cheers.

    Ah that unfortunate, and yes start/stop conditions for loging are part of the Full version of SignalExpress
    Here's the comparision: http://www.ni.com/labview/signalexpress/purchasing-options.htm
    Sorry about that

  • Reading states of usb-6501 kit from command prompt?

    Hi all!
    I have been planning to use USB-6501 kit as one part of my test bench.
    There will be need of checking state of some relays on 
    tested  unit.
    I would like to connect  6501  to those relays and read those
    states using bare command prompt commands like readDigPort.exe
    1. What software in need to install minimum to use writeDigPort.exe or readDigPort.exe commands at command prompt??
    Those commands should be included in python script.
    2. Is there such Linux commands also included somewhere in installation media/net ?
    I am Using Fedora 3 ( Comedi not supporting 6501 ?)
    3. I need only easy way to set and read values from 6501 ports which are my possibilities to do it?
    Thank you!
    Narsu Man

    Hello,
    Here are the answers:
    1) You need NI-DAQmx Base driver for Linux. You may find the driver from web:
    http://digital.ni.com/softlib.nsf/websearch/930D8687AD03A02C86256F8C00823BDB
    Supported platforms and installation instructions can be found from here:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/42b73a7b82f0fec786256fb1007227ec
    Please read the readme-file before installation.
    2 & 3) LabVIEW and C-examples are shipped with the driver. C examples are installed by default to /usr/local/natinst/nidaqmxbase/examples. Use the example as a basic body for your application. NI-DAQmx Base Function reference help can be found from here:
    http://digital.ni.com/manuals.nsf/websearch/D7184CB9E6366E2186256FBF0076BBC3
    This should help you to continue.
    Vesa K
    National Instruments

  • How can i use the NI USB-6501 digital I/O with matlab?

    I want to use the  NI USB-6501 digital I/O with data acquisition toolbox in matlab?

    The USB-6501 is supported by Data Acquisition Toolbox in MATLAB releases R14SP3+ and later.
    The full list of National Instruments devices supported by Data Acquisition Toolbox is here:
    http://www.mathworks.com/products/daq/supportedio14005.html
    Begin to learn how to use digital input and output here:
    http://www.mathworks.com/access/helpdesk/help/toolbox/daq/f11-17944.html
    Inside MATLAB you can view demos in the documentation.
    To see two digital demos you can type these commands at the MATLAB command line:
    >> showdemo('demodio_intro')
    >> showdemo('demodio_line')
    Best regards,
    Sherryl
    Sherryl Radbil
    Data Acquisition Engineer
    The MathWorks

  • Build applicatio​n freezes, USB-6501

    I am running LabView 7.1.1 on Mac OS X 10.3.9. I am controlling a couple of instruments via GPIB and the USB-6501 with DAQmx Base. My VI works fine. I'm trying to build a stand alone application with the application builder and it freezes during the build. I have unchecked the box to "Disconnect type definitions and remove unused polymorphic VI instances" in the Application Settings of the Application Builder and it still freezes during the build. I've tried to recompile the VI by holding down the option and shift keys while clicking the run button and it locks up then too. I have successfully built applications without the USB-6501. Can anyone offer some help? Thank you.

    Hi All-
    Unfortunately MAX is not available on Mac for troubleshooting, Mike.  Vob, can you please verify whether you installed NI-DAQmx Base prior to or after installing the LabVIEW 7.1.1 patch?  The driver must be reinstalled after installing the LabVIEW patch and after mass compiling your directories.  You should not mass compile after the NI-DAQmx Base installation.
    Also, this line from from the NI-DAQmx Base ReadMe might be pertinent:
    If, when building an executable or shared object project using NI-DAQmx Base VIs, the Application Builder catches an error, you must restart LabVIEW before running any NI-DAQmx Base VI.
    Please give these suggestions a try and repost if you are still experiencing problems.
    Thanks-
    Tom W
    National Instruments

  • Driving and dimming LEDs with USB-6501

    I have a strip of LEDs hooked up to a power source with an intermediate dimmer. The specs for all that hardware is listed below. I am looking to switch from manual control to digital I/O. I have a NI USB-6501 DAQ but have never worked with it before and so would appreciate some guidance. The goal is to maintain maximum brightness but be able to dim the LEDs from my software. I've read several threads about simple on/off control but haven't found anything on dimming.
    John.
    LEDs: (color red)
    http://www.superbrightleds.com/moreinfo/led-strips-and-bars/snfls-series-120-side-emitting-led-flexi...
    Dimmer:
    http://www.superbrightleds.com/moreinfo/single-color-dimmer-switches/ldp-2a-12-volt-dc-single-color-...
    Power Source: (15 Watts)
    http://www.superbrightleds.com/moreinfo/power-supplies/12vdc-cps-series-power-supply/68/
    Solved!
    Go to Solution.

    In order to control something, you would need to be able to physically connect the 6501 but it does not appear you have anything to connect it to. From the image of the dimmer, it just has a knob.

  • Use DAQmxSetDigitalPowerUpStates In VB6 for USB-6501

     How do I use DAQmxSetDigitalPowerUpStates In VB6 for USB-6501
    I am trying to set thre default power on state for all digital lines
    DAQmxErrChk DAQmxSetDigitalPowerUpStates("Dev3", "Dev3/port0/line0:7", DAQmx_Val_Low, 8)
    The above line of code Crashes VB6.0 SP5 VB shuts down as soon as I try to exicute this code

    Hi CUImsch,
    The DAQmxSetDigitalPowerUpStates function takes four arguments: deviceName,
    channelNames, state, and "...".  The "..." indicates
    that you can include additional channelNames and state arguments. The final
    channelNames and state pair must be followed by a NULL argument. For example,
    to set port0 to a default low state use:
        DAQmxSetDigitalPowerUpStates("Dev3",
    "Dev3/port0/line0:7", DAQmx_Val_Low, NULL)
    If you want to set multiple ports with the same function call, include their
    channelNames and state arguments after the first port's arguments and follow it
    with NULL to indicate that you're done listing channels.
        DAQmxSetDigitalPowerUpStates("Dev3",
    "Dev3/port0/line0:7", DAQmx_Val_Low, "Dev3/port1/line0:7",
    DAQmx_Val_Low, NULL)
    The NI-DAQmx C Reference Help contains more information on this function.
    Specifically under the Help Contents: NI-DAQmx C Functions » System
    Configuration » DAQmxSetDigitalPowerUpStates.
    I hope this helps! Let me know if there is anything else I can help with or
    clarify. Have a great day!
    Message Edited by ryan_d on 09-24-2007 06:10 PM
    Ryan D.
    District Sales Manager for Boston & Northern New England
    National Instruments
    Attachments:
    SetDigitalPowerUpStates.JPG ‏155 KB

  • Error "Device identifier is invalid" USB-6501???

    HI
    When i run the script "USB-6501 Interactive Control.llb", i have this error  "Device identifier is invalid"?
    If you know another script that drives the "USB-6501" to check its lines,  please help me?
    Best regards      
    Solved!
    Go to Solution.

    USRP wrote:
    When i run the script "USB-6501 Interactive Control.llb", i have this error  "Device identifier is invalid"?
    What do you mean by When i run the script "USB-6501 Interactive Control.llb"...???
    --> Do you've USB 6501 listed in MAX, as shown in the picture below...???
    --> Are you using correct string identifier as device name...???
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • USB 6501

    I'm using the USB 6501 Digital I/O module, NI MAX 14.0.1 Driver, LabWindows/CVI.
    Why all the outputs / inputs go high state when I restart and bootup my PC.?
    They should stay at the state that the program has set. or at the low state when the PC restart

    No, you have not read the specs. The device defaults to high impedance inputs on power up and it does not support programmable power up states.

  • NI USB-6501 questions

    Hi Guys,
    I have a question regarding on the NI USB-6501, is can support GPIB function? Because I am planning to interface it one of our equipments here which have the GPIB terminal in order to automate the calibration and/or set it automatically using GUI/Labview software.
    Thank you and Regards,
    Red

    duplicate

  • NI USB-6501 - 24-line Digital I/O (NI-DAQ) with LabWindows/CVI 7.0 ?

    Hi
    Can I use a recent NI USB-6501 - 24-line Digital I/O (NI-DAQ) with LabWindows/CVI 7.0, even if Labwindows/CVI 8.x is required ?
    Thank you
    Dayn
    Solved!
    Go to Solution.

    Hello.
    In DAQmx Readme, you can see which version of CVI are supported by the actuel DAQmx version. For a 6501 card, 8.7.2 or 8.9.5 DAQmx versions will work.
    Regards

  • Use USB-6501 output like a chopper circuit

    I’m terribly new to this sort of thing so forgive me if my questions seem trivial. I’m looking for VB code that allows me to pulse the outputs on the USB-6501 24pin I/O. Or, is it possible to view/edit the code that that MAX uses in its test panel ?
    If any of these are possible, could someone point me to a link please? I’m trying to edit the output so that I can make the ports behave like a chopper circuit (ie. Pulse the output high for 25ms, low for 75ms. My expected result would be 25% of ttl voltage or read from a meter connected to the output – 1.25V rms). Does anyone see a problem with this?

    Hi Gunnar-6501,
    I meant that, while you will be able to generate a pulse, it will not be an accurate 25ms each time.  Because you will have to use software timing, the operating system will experience periods of slow operation that will cause the pulse to not reliably repeat every 75ms.  It will also not be exactly 25ms each time either.  Software timing will allow you +/- 5-10ms with each pulse in regard to both the duration and the duty cycle.  
    In regard to the TTL voltage, you are only able to output a TTL signal.  The NI-6501 does not have the capability to output low-TTL steps.  You may be able to do this with an analog DC signal, however.  I would recommend looking into some of our hardware that includes some type of sampling clock such as many of our PCI cards or compact DAQ solutions.  These will give you a reliable sample clock to base your pulses and duty cycle on and many also have low-TTL steps for digital I/O.
    | Zach J. | Applications Engineer | National Instruments |

Maybe you are looking for