DAQmx: Digital - Continuous Output.vi example with PCI-6519 (error -200077)

Bonjour everyone,
Main goal :
I want to use 1 digital output of the PCI-6519 harware to make  a staked light indicator blink when user is needed to operate the test station. 
What I am trying:
I open the labview 2013 wxample "DAQmx: Digital - Continuous Output.vi" to learn how I could use a DAQmx task to perform this blink instead of using a dynamic call of a VI changing the output in 'while loop'.
The example states that my hardware should be able to run it but I always get an error -200077 right at the beginning with the DAQmx Timing.vi mentionning that my PORT2, line 0 does not support the 'Sample Clock' property which is hard coded in the example. I can't find a different property that this example will accept to try to change the status of my digital output on a time basis.  Does the PCI-6519 device support timing for a digital output or not?
If anyone has a better or simplier idea to achieve such a simple goal, feel free to suggest.  I am using DAQmx for the first time and I don't know much about what my options are.
Thanks 

Hi Nienscecco,
Unfortunately PCI-6519 doesn't support HW timing, I've just tried with a simulate PCI-6519 device and I confirm you that you must specify an external clock in order to use this example.
Do you have some kind of frequency generator to provide it ? Or maybe another NI board with embedded counters in order to build it ?
Thanks in advance for your answers.
Mathieu_T
Certified LabVIEW Developer
Certified TestStand Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
LabVIEW Tour
Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014

Similar Messages

  • Count digital events on a Counter with pci-6602 with callback on CVI

    Hi,
    I'm using a PCI-6602 card with CVI 8.5 and I need to trig on event.
    On every pulse I received, I need to do some actions like increasing a counter, send a message on Rs232 etc.. I don't want to do any loop checking that the counter value has changed. I would like to use a callback to execute this code only on the edge or counter value event.
    My problem is that I don't know which function can do this. Is there any way to get an event on a pci-6602? 
     Thanks 
    James 
    Solved!
    Go to Solution.

    Hello.
    It's completely possible to create a callback that will allow you to do what you want when a edge will occur on an external signal you define.
    To do this, you can for exemple create a counting edges task that will use one of the 6602 counters,and the set your external signal to be the source of your sample clock.You'll then be able to register a callback with the function DAQmxRegisterSignalEvent, and your callback will be called each time an edge will occur on your specified sample clock source.
    Here's 2 links that explain the events in DAQmx and how to handle them in CVI. The example ReadDigChan-ChangeDetectionEvent.pr that ships with DAQmx examples (Hardware Input and Output<<DAQmx<<Digital measurements) can be very useful to understand how to do. This example creates a signal event callback to detect change detection for digital inputs.
    Regards.

  • Problems triggering with NI-myDAQ, error: 200077

    I am trying to do analog edge triggering on an analog output, but whenever I try to add a triggering block it throws error -200077, and tells me...
    Property: Ref.TrigType
    You Have Requested: Analog Edge
    You Can Select: None
    I'm pretty sure that my hardware supports analog triggering because I can trigger in the pre-compiled NI ELVISmx tools.
    Any ideas?
    Attachments:
    Triggering.vi ‏129 KB

    Hello
    Just to clarify, are you attempting to trigger the device based on an output from the device?
    Product Support Engineer
    National Instruments

  • How to output square wave with pci 6110 from digital output

    and the frequency of the wave should be variable and quite precise.

    "from digital output" is not possible if
    your timing req's are less than a second
    and
    you are not running Real-Time.
    It can be done from the analog output port.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Example: "Digital - Conitinuous Output" How does it work?

    I have to generate a sequence on three channels (with my NI 9375 Digital Output card on a cDAQ9188).
    In 1 second, the sequence consists of, for example:
    channel 1: starting low .. on 15 ms high .. on 865 ms low again
    channel 2: starting high .. on 115 ms low .. on 650 ms high again
    channel 3: starting low .. on 85 ms high .. on 920 ms low again
    This have to be conituously generated and hardware timed.
    For this application, they advised me to work with the example "Digital - Continuous Output". Can anyone explain to me how I get this sequence with the "Data To Write" Controls-box on the Front Panel? And how can I visualise my generated sequence?
    Thanks in advance!
    Solved!
    Go to Solution.

    Hello Hannes,
    There are 2 major things that you have to keep in mind in this case regarding the example you're using:
    - The sample rate you're going to use has to be high enough.
    In your case the minimum sample rate has to be 200 Hz (seeing that your smallest step is 5 ms).
    Of course you could also use any multiple of this.
    - At the other side you have to check how the array of unsigned integers in the Data to Write is related to your digital outputs.
    Depending on which Digital Outputs you're using one of the bits in your unsigned integer will correspond to one of your Digital Ouputs.
    This mentioned the "difficult" part starts:
    Seeing the period is 1 second and if you have selected 200 Hz (5 ms period sampleclock) as the sample rate, then:
    - For channel 1:
    the first 3 bits should be 0, the next 170 [= (865-15)/5] should be 1, the remaining 27 (200-173) bits should be 0.
    - For channel 2:
    the first 23 bits should be 1, the next 107 [= (650-115)/5] should be 0, the remaining 70 (200-130) bits should be 1.
    - For channel 3:
    the first 17 bits should be 0, the next 167 [= (920-85)/5] should be 1, the remaining 16 (200-184) bits should be 0.
    To represent this visually the best thing you can do is to use 3 arrays of 200 booleans for the 3 channels.
    These arrays can be easily shown in a Digital graph
    You then have to make a very simple conversion algorythm to convert these 3 arrays of 200 bits/booleans to 1 array of 200 unsigned integers.
    Is my explanation a bit clear to you?
    Note: Here we took 1 as high and 0 as low.
    Kind Regards,
    Thierry C - Applications Engineering Specialist Northern European Region - National Instruments
    CLD, CTA
    If someone helped you, let them know. Mark as solved and/or give a kudo.

  • Pci1200 digital input output

    Hi,I'm a student using labview 6.1 for the first time. I use the digital input/output lines of a pci 1200 card. I use 8 digital input lines placed in one sequence, and 7 digital output lines placed in another sequence. The VI can read the input lines but the output lines give a voltage of 0.5 Volts instead of 5 VOLTS, how can I solve this problem?

    What are you writing to the digital output lines in LabVIEW? Writing a Boolean value of False to a digital line will write a TTL logic low voltage and writing a Boolean value of True to a digital line will write a TTL logic high voltage. Make sure you are writing a true Boolean value to the lines you want to output 5 V.
    Also, make sure you are not loading down the digital outputs. The digital lines can source 13 mA of current. If you are connecting a small resistance load across the digital outputs, you might be loading down the digital ouputs. I hope this helps.
    Regards,
    Todd D.
    Applications Engineer
    National Instruments

  • How can I wire two PWM outputs of Accelerometer into PCI-MIO-16E boad with SC-2043-SG?

    I have been using counter/timer pin since the accelerometer (ADXL202AE, Analog Device) provides about 550Hz PWM signal. The purpose of the project is:
    - To acquire PWM signals with Full cycle(ms) and Posity duty cycle(ms) generated in Accelerometer.
    - To convert the cycles into acceleration value.
    By using counte/timer(GPCTR0_Source) and Trigger(Trig1) on SC-2043-SG board, the signal was obtained.
    However, after converting the PWM signal to acceleration value and plotting with labview on-line, the sampling rate was pretty low (26-28samples/sec).
    Then, I began to doubt that there is a wrong wire connection. Even though I am using one counter/timer pin, the sampling rate
    was low. The purpose of using the acceleration was to obtain two output using two counter/timer pins.
    Could anyone help me wire pins and solve the problem?
    GINO.

    Gino,
    You should definitely be getting many more values in your buffer. You should actually be getting 500,000 values every second because a measurement is being taken for every pulse. I found a couple knowledgebases that describe error -10920 and how to remedy it. One is pasted below and the other can be found through the link.
    But I'm not sure if you're going to be able to fix this problem because you're measuring pulses at a very high rate. What is happening is every time a pulse width measurement is taken it is put into an onboard (DAQ board) FIFO buffer that is 9 samples long. The computer then reads these samples out of the FIFO and into an a buffer that you can see in LabVIEW. I think the FIFO is filling up too fast and the computer is not able to read the data out fast enough. Therefore you are losing samples because they are being overwritten. This is all dependent on your system.
    Here are some benchmarks for pulse measurements:
    The following numbers were derived from a Gateway with 128 MB-RAM and an Athlon 700 for ONE counter of the PCI-6602. The number of counters you are using will affect these numbers.
    Finite Buffer
    Buff Period - 7.25 MHz
    Buff Pulse Width - 7.25 MHz
    Buff Semi-Period - 3.35 MHz
    Continuous Buffer
    Buff Period - 250 kHz
    Buff Pulse Width - 250 kHz
    Buff Semi-Period - 140 kHz
    You should still be getting many more samples than 26 though. Try using this example with a very slow frequency pulse to make sure it operates correctly. Then start speeding up the pulse and determine when you get error -10920.
    Here is an internal knowledgebase that may help you:
    Title:
    After Long Periods of Acquisition with AI and Counters, a -10920 Error Occurs
    Problem:
    A customer has a PCI-MIO-16E-4 and his application is acquiring analog input signals and performing event counting with the buffered event counting mode. The problem is that the buffered event counting is at some arbitrary amount of time (e.g., after 2 days) getting an error with the number -10920. The questions are:
    1. Why is he getting this error?
    2. Do you know how big the FIFO is for this buffered event counting?
    3. When he shares a DMA channel with the floppy controller, how can we make sure they use separate DMA channels?
    Solution :
    Here are the answers to the above questions:
    1. There is probably just some noise on the signal line coming in at some point. The STC is VERY sensitive, so if there is any fast glitching, it will attempt to transfer all of these. This can also happen if the signal does not ramp up fast enough, resulting in double-triggering in the middle region. Use a filter, or a Schmidt trigger*, to clean up the signals. Another suggestion is to use the PCI-6602 with filtering.
    2. There is no FIFO used for the counters. The mMite has its own FIFO, but it is only about 9 samples long.
    3. PCI does not "share" DMA channels. It may technically be the same DMA channel number, but this is just for reference. PCI cards use Bus Mastering. With Bus Mastering, the operating system gives up control of the PCI bus so that the hardware (in this case, our DAQ board) can handle its own data streaming, eliminating the extra step of having the OS monitor the transfers. The DMA channel numbers are just the "channels" that are supported by the mMite chip. You can have 3 PCI cards in the PC, each with DMA 1, 2, 3, and none of them will actually be sharing any resources.
    And another knowledgebase about error -10920
    http://digital.ni.com/public.nsf/websearch/8FB9091CB9BB452B8525642000554799?OpenDocument
    Hopefully this all helps,
    Erick D.
    NI Applications Engineer

  • Interface with I2C SDA and SCL with PCI 6224 digital ouputs in C/C++

    I am trying to use the pci 6224 in order to send SDA and SCL to an I2C. I have been able to control the Digital Output, but I have been unsuccessful with generating a clock source to satify the I2C. I am writing this code in C/C++. Any ideas or examples would surely be appreciated. I need a good starting point, but I have not been able to find any useful examples that have worked. I am using the SCB-68 and I am trying to use my digital multi-meter to verify my code. 
    I have looked at the examples provided, but is there a description of these functions that are being called using the NIDAQmx.h? 

    Hello VJohnson,
    The counter will give you control of the clock frequency and duty cycle.  However, this card also has correlated DIO, which means that you can clock your digital lines.  Because of this, you can write a specific pattern (101010) to the buffer and just have it continuously output.  However, you will have to write this in a way that you know what values you're writing based on the part of the clock you're at.  
    My I2C implemetation knowledge isn't the greatest, so I do not know how big each of your communication packets will be, but one implemetation would be to write your data in packets to regulate your SDA and SCL lines.  The WriteDigChan-ExtClk is the best option that shows how to write a digital channel with a clock.  You will just need to modify the DAQmxCfgSampClkTiming( function call.  The second input should be changed from "/Dev1/PFI0" to OnboardClock or NULL.  Hope this helps! 
    ColeR
    Field Engineer

  • How can i output a voltage on PCI-6229 port with visual basic 6 ?

    Hello,
    PCI-6229 card is using DAQmx, that not support VB 6 officially.
    However, members of this forum found out a way to write/read on digital port with vb6 and DAQmx.
    This was working well for me indeed.
    Then, i wanted to output a voltage on AO. I followed the same procedure they used for DI/DO but in vain.
    Apparently, the function DAQmxCreateAOVoltageChan()* causes trouble.
    Using the .exe of the program, i get this error :
    "error -200077 : Requested value is not a supported value for this property."
    Thank you for any ideas that can sort this out.
    * Public Declare Function DAQmxCreateAOVoltageChan Lib "nicaiu.dll" (ByVal TaskHandle As Long, ByVal lines As String, ByVal nameToAssignToLines As String, ByVal min As Single, ByVal max As Single, ByVal units As DAQmxUnits, ByVal customScaleName As String) As Long
    call : DAQmxErrChk DAQmxCreateAOVoltageChan(TaskAnalog, txtChanAnalog.Text, "", Min, Max, DAQmx_Val_Volts, 0)

    Hello,
    What is your buffer size ? The buffer should be 0 or greater than 2. You can get this error if your buffer size is equal to 1.
    Regards,
    Isabelle
    National Instruments France
    Isabelle
    Ingénieur d'applications
    National Instruments France

  • Lag on DAQmx continuous Outputs?

    I'm trying to use DAQmx to set up an output that is "continuous".  By that I mean that it would keep going without stop but, I want to be able to control the magnitude of the signal.  I don't know why but when I try to change the output I get a lot of lag.  Does anyone know how to control lag levels on continuous Outputs?
    Attachments:
    DataLoop Rev1.5.vi ‏30 KB
    Untitled 18 (SubVI).vi ‏8 KB

    Hi Over_Nyquest, 
    I tried running your code on my system and did not get the same underflow error that you are seeing. What device are you using? Have you tried reducing your sampling rate as suggested in the error message?
    Also, below are some articles that discuss how to use the properties available in LabVIEW to tune latency:
    http://www.ni.com/white-paper/3874/en
    http://digital.ni.com/public.nsf/websearch/45A7AC6B59E026B386256F90006DAA49?OpenDocument
    Catherine B.
    Applications Engineer
    National Instruments

  • Is there any successful example of USRP RIO with PCIe adapter?

    Hi All,
           Can I ask who has ever had successful experience of achieving high IQ rate using USRP RIO with PCIe adapter? If so, what PC were you using?
           I am working on the USRP RIO. I tried to run the LabVIEW code for the USRP-2920 on the USRP 2950R but could not achieve a high IQ rate. The PC I am using has a mini-itx motherboard with H97 chipset, 16GB 1600MHz DDR3 memory, 256GB SSD, i7-4790K quad-core 4.0GHz CPU. Even if I connect the USRP-2920 to the PC, I could not achieve 20MS/s. When I was using a Macbook Pro with i7-3840QM, I could achieve 25MS/s IQ rate. But there is no way I installed a PCIe adapter to the laptop. 
           Thank you very much.

    I have a benchmarking utility that I will attach here that can run through a number of IQ Rates and the number of samples in each Write call.  Here are the results when I ran with an USRP-2940R over a x4 MXIe (PCIe) link.  I configured to run a 2-channel continuous generation for 10 s for each test.  
    Device connected over PCIe
    Conducting benchmarks for continuous writes (CDB, 16-bit).
    IQ Rate        363 726 1000 3000 6000 10000 100000
    1000000      0      0       0       0        0         0           0
    2500000      0      0       0       0        0         0           0
    5000000      0      0       0       0        0         0           0
    10000000    0      0       0       0        0         0           0
    20000000    39    0      0       0        0          0           0
    40000000    18    18    0       0        0          0           0
    60000000    9      36    15     2        0          0           0
    80000000    22    17    14     0        2          0           0
    90000000    15    22    15     9        9          9           9
    95000000    21    21     22    9        9          9           2
    97500000    16    14     31    9        9          9           9
    100000000  15    34     25    9        9          9          10
    The formatting may be hard to figure out, but the small numbers are the number of underflows.  So 0 is what you want.  As you can see, I can sustain rates up to 80 MS/s for at least 10 s IF my write size is big enough.  That is, if I write at least 10,000 samples with each call to niUSRP Write, I don't see underflows.  That's two channels, so we're talking 640 MB/s over the bus.
    Here are some tips to increase your Tx streaming throughput:
    0) Don't use a continuous generation at all.  For many applications you don't need to stream continuously- a finite transmission (and you can loop a finite transmission) will do and you will basically not underflow in that case if you provide all the data up front.
    1) As you can see from the chart, the bigger the data buffer you provide in each Write call, the faster you can stream.
    2) Write sizes in multiples of the maximum packet size seem to work well.  That number is 2044 for the USRP-294x/5x series (although that may change in future driver releases).  Try sending bursts of 10220 samples.
    3) If your application allows it, set a Start Trigger Time a little in the future.  Then start writing data before the device starts transmitting.  For example, set the Start Trigger Time to the (current device time + 1 second).  Then start writing data and you will have a second to pre-fill the on-device buffers.  This will substantially reduce the number of underflows.
    4) Be sure to do your data processing out of your write loop, to keep the write loop filling the pipleline as quickly as possible.

  • Continuous, gap-free acquisition and processing with PCI-5142 and Labview

    I am trying to continuously acquire data from a PCI-5142 in Labview 7.0.  I have NI-SCOPE software installed, and right now, the best I can do is to acquire the data in chunks and then stitch the chunks together.  However, this results in a short (approx. 10ms) amount of data loss between chunks.  Since I am trying to do a cross-correlation of a function with my data, across chunks, I need the chunks to be contiguous.  Additionally, I need to do this processing in real time so I cannot just stream to disk. What are my options?

    Be sure that you are not stopping and re-starting the acquisition in between reads.  Also, be sure you are not reading from a new record each time.  There will be some time between separate acquisitions or separate records.
    The best way to acquire continuously is to configure a single record, set the Reference Trigger to Software, and never send a Software Trigger.  Set the Fetch Relative To attibute to Read Position.  That way, every time you read data, it will start at the first unread data point.  So you shouldn't see any gaps in the data (the chunks will be contiguous).
    Please refer to two examples included in the NI-Scope driver:
      - niScope EX Fetch Forever
      - niScope EX Fetch In Chunks

  • How to address digital input & output, analogue input & output when communicate with mitsubishi fx1n plc

    dear all,
    i am new to labview, how to code or address digital input & output, analogue input & output when communicate with mitsubishi fx1n plc or crouzet plc.
    pls help.
    HM

    http://search.mywebsearch.com/mywebsearch/redirect.jhtml?searchfor=mitsubishi+fx1n&cb=ZO&p2=%5EZO%5E...
    Try the above link. I know it is a screen-full, but is a search result for Matrikon. They have a whole slew of OPC servers/clients you can try out. Personally, I would go with their OPC server for the Mitsubishi, and use Labview Datasockets. That would be the simplest with the lowest learning curve.
    Otherwise, if you wish to use Modbus, you would have to get the commands/syntax from Mitsubishi; might be in their user manual, but I wouldn't lay bets on it. With the Matrikon stuff, the syntax is all built in.
    Good luck which ever way you decide to go.
    Dave

  • I am trying to make a Phase Locked Loop and I have to produce a continuous output with the incom

    ing data; so I should not use a buffer which is refreshed in every 3 seconds (by this way I am not able to get a continuous output). How am I going to obtain a continuous output signal which uses a continuous buffer (or no buffer maybe), from my DAQ board?When I try to produce a continuous output (a sine wave) according to a continuously changing input data, I see that the sine wave I can get from the DAQ board output has straight horizontal lines between waves. This means the buffer creates a wave, then stops until it fills, and then creates another output sine wave again; so I can't get a continuous sine wave output from the DAQ board. How am I going to deal with it when im
    plementing a PLL in labview.

    ing data; so I should not use a buffer which is refreshed in every 3 seconds (by this way I am not able to get a continuous output). How am I going to obtain a continuous output signal which uses a continuous buffer (or no buffer maybe), from my DAQ board?Greetings:
    It looks like you need to increase your number of samples by quite a bit. Can you supply any more information, such as your sample rate, which DAQ vi you're using, etc?
    Eric
    Eric P. Nichols
    P.O. Box 56235
    North Pole, AK 99705

  • Can PCI 6519 IO card support waveform(digital) output ??

    It is quite hard to find out in the spec.
    NI group all the series of DAQ board in the spec.
    Can anyone tell me if it can support waveform output .
    The waveform is about 1Khz
    thx very much.

    The PCI-6519 does not support hardware-timed digital I/O. You can update the digital output one sample at a time in software, so you are limited by the speed of the computer you are using as to how fast the updates can be.
    Michael P
    National Instruments

Maybe you are looking for

  • HZ_CUST_ACCOUNT_SITE_V2PUB.CREATE_CUST_ACCT_SITE fails in R12

    Hi, I am loading customers/accounts/adresses into Ebs R12 using concurrent program based on standard API's. The creating account site API fails with error : Unable to process your transaction. The operating unit is either invalid or it cannot be deri

  • Can't Export U3D files in photoshop v13.0.2

    I have just updated Photoshop CS6 Extended to v13.0.2 (from v13.0.1) but when exporting 3D files now it no longer has the option to export U3D file type but v13.0.1 does. Does anyone else have this problem? or is there a way to export U3D file type i

  • How to measure work centre performance in the pp point and pm pinot of view

    Dear Guru`s, how to evaluate the work centre performance in the pp,pm point? how to evaluate the OEE (overall equipment efficieny)? can anybody suggest that, if there is any transactions are avialable to get the reports or any process is to be follow

  • Downconver​t my file from labview version 12.0 to 8.5

    Hello, Could somebody help me downconvert my files from version 12.0 to version 8.5?? Thanks, Marky Solved! Go to Solution. Attachments: Fits.vi ‏130 KB FitsModel.vi ‏20 KB Fits.zip ‏24 KB

  • "AD Organization Lookup Recon" Error

    Using the Active Directory Connector 9.1.1 Running "AD Organization Lookup Recon" I am getting this error, Exception in thread "QuartzWorkerThread-0" java.lang.NoClassDefFoundError: com/sun/jndi/ldap/ctl/PagedResultsControl at com.thortech.xl.integra