Labview performance suffering with analog input

Hello,
I am using a PCI-6036E and a cDAQ-9172 with LabView 8.0. I have created a VI that systematically writes four different digital outputs, three to the PCI-6036E and one to the cDAQ-9172.
Just recently I added a thermocouple to the mix, using an analog input on the PCI-6036E to monitor temperature. Since doing so, I have noticed that the entire VI runs extremely slowly.
Before installing the thermocouple, the VI slowed down a bit if left to run continuously (for days at a time). Now, however, the VI slows down a great deal if left to run for more than a few minutes. It is so bad that the "Elapsed Time" display will not properly display the elapsed time.
Because this application will be run for days, even weeks at a time without being stopped, this gradual decrease in performance is a huge problem. The application needs to run very accurately and precisely. I have attached my VI below. Is there any way to fix this issue? Any help is greatly appreciated, as I am new to LabView.
Thanks,
Nick

I didn't look at the code (yet), but do you have a slow analog samplerate?
Look here
And here (a KB aticle)
Ton
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas
LabVIEW, programming like it should be!

Similar Messages

  • When reading an encoder the computer performance suffers with program duration.

    I�m working with a PCTIO-10 counter/timer card with Atmel AM9513A microcontrollers and a LAB-PC-1200AI Card. The Computer I�m using is an older Compaq proliant 600 MHZ server running NT and Labview 5.1
    The objective of our application is to create a VI that controls a photometric lab. We swing a boom with a photocell attached to the end through a light source and collect intensity measurements along the way. We use the 1200AI card to activate a solenoid that controls direction of the boom and the TIO card is used to count encoder pulses and monitor boom location. The application then collects intensity measurements at specified boom angles. This is where we start to have problems� The application works, as it should, monitoring boom location and collecting data at the correct angles: 10 deg, 20 deg, 30 deg, etc� I wrote the application to execute in a do while loop constantly reading the TIO card and generating a boom angle. I then poke the results into a shift register. As soon as I read the correct angles from the shift register I collect the photocell data. The problem comes in after the program executes for a few minutes. The machine performance degrades as execution time elapses until ultimately the machine starts to miss pulses. Let me clarify this statement: the card/machine seem to keep track of all pulses emitted by the encoder BUT the machine can�t get back to read the cards register before it misses the required angles. E.g. I want to collect data at 50 deg boom angle. The register is counting the pulses but the computer reads the register in a loop as: 46, 46, 46, 46, 47, 47, 47, 48, 48, 51, 51, 52, 52, etc� The machine is counting the encoder pulses but the software can�t seem to �get back� to the register in time to pick up on the correct angles. This problem is amplified as program execution time elapses until the machine starts to miss a series of numbers and also has trouble with monitor redraws/updates. The Windows NT task manager shows no memory leaking. I�ve also tried to add small wait durations in the program to allow Windows time to multitask and do maintenance. It didn�t help. I then scraped the original program and wrote a new one that starts and stops the counters when not needed for short periods. I also reset the registers at the top and bottom of the boom stroke in an effort to free up the processor and/or memory, but the problem persists. I�m either writing a poor program or I need a way to dedicate to processor to this task. Any input will be appreciated.

    It's difficult to pinpoint without any code posted. However, a sluggishness that increases with run time can be a symptom of a program that keeps resizing and/or copying fairly big arrays. Can you post some of the code?
    Also, there may be a different approach that will let you hardware-capture excess data, then extract the subset of interest in a post-processing step. This way you can be sure not to miss any points.
    The idea would be to perform a buffered analog acquisition of your photocell(s), using the encoder pulses as an external scan clock. There are shipping examples that show how to do such things, and I think the Lab-PC-1200AI should support them.
    You could set up an acquisition buffer a bit bigger than the # of encoder pul
    ses in your boom's range of travel. After collecting one scan for each encoder position, you can then extract data at or around the positions of particular interest. Just note that the data at index i corresponds to your previous method's position i+1.
    -Kevin P.

  • Dv video time stamp with analog input

    Hi,
    I have a dv video which I want to time stamp with a analog input.  For the video, which is dv brought into the computer with ieee1394, LabView calls up a C++ program which then stores the video.  Simultaneously, in the program which calls up the C++, an analog signal is also stored (seperately).  I know it sounds tricky as well as messy but this is the best we've been able to work out, given the uncorroperative nature of LabView with dv camera.  Does anyone have suggections for time stamping these two signals so that I know exactly where in the video the analog signal occurs?  The PCI board we use is the NI 6014, which I know is timestamp capable, but I dont know if it can stamp the video feed since it doesnt come in through the NI card.
    All thanks in advance for any help!
    Daniel

    Daniel,
    Does your DV camera have any sort of timing or triggering signals? Without these, it will be virtually impossible to correlate measurements. It is cetainly possible to accurately time an analog input with your DAQ card, but correlating these to the digital video would be extremely difficult. Is this video streaming in real time? Or are you reading it off of an already-recorded tape? If this video is streaming in real time, with an acquisition started in software, I would suggest attempting to start the software DV reading at the same time as your DAQ task. If you do have an external signal that can trigger the video acquisition, then I would suggest using that same signal to start your analog acquisition.
    Hope this helps,
    Ryan Verret
    Product Marketing Engineer
    Signal Generators
    National Instruments

  • Measuring PWM duty cycle with Analog Input

    Hello folks,
    I have a NI 9205 module and was wondering if there was a way to measure the duty cycle of a PWM signal that I am generating with a separate microcontroller?  I have found a lot of examples with Digital inputs but not analog.. Is this possible?
    Thank you,
    Bob

    Hi Robert,
    I'm not sure what that error is, try searching for it.
    If you want to measure a PWM signal you would usually use a counter input.  A counter is a dedicated piece of hardware that is used to measure digital signals.  Since the NI 9205 is an analogue device and it doesn't have any counters onboard, you will not be able to select counter input.
    I would recommend you get the right tools for the job and buy a digital acquisition device with an onboard counter.  It will make reading PWM much easier for you.  The NI 6008 has a counter onboard and is only £99.  It will also offload processing from software to hardware since you don't have to calculate duty cycle.
    If you still want to use analogue post back and we can look into why its not working for you.  Tips to start you off: Voltage is the correct setting and  Look in the manual and make sure you have connected it like you have configured it (differential, RSE, NRSE page 14)
    Lewis Gear CLD
    Check out my LabVIEW UAV

  • LF a home theater with analog inputs to support my creative x-fi 5.1 card. Budget is 225.

    My card does not support true surround sound in anything other than movies through SPDIF so I need to get a home theater that has analog inputs. Could someone recommend me a good speakers system for 225 or less. I current have a 1000 watt JVC TH-G30 that uses SPDIF. Thanks for any help
    My card is USB is why this is an issue.

    'Re: Creative X-Fi 5. Surround Problem. Hi,
    As far as I know, you can only get stereo audio from the optical output unless you are playing encoded Dolby or DTS audio. See this link for more info. http://forums.creative.com/creativel...&thread.id=270
    For your analog output, it seems strange that your speaker test only have audio in the front left and right but music is ok. Maybe you can try using earphone or something and connect to the rear jack and the centre/subwoofer jack to see if you can hear any audio from them? This may help to check if the problem is due to audio not coming out from your x-fi 5. surround or due to your speakers setup. It should also help to know which version of drivers you are running on. You may also want to try the new beta drivers that was release in Feb just to check.

  • Performance issues with query input variable selection in ODS

    Hi everyone
    We've upgraded from BW 3.0B to NW04s BI using SP12.
    There is a problem encountered with input variable selection. This happens regardless of using BEx (new or old 3.x) or using RSRT. When using the F4 search help (or "Select from list" in BEx context) to list possible values, this takes forever for large ODS (containing millions of records).
    Using ST01 and SM50 to trace the code in the same query, we see a difference here:
    <u>NW04s BI SQL command</u>
    SELECT                                                                               
    "P0000"."COMP_CODE" AS "0000000032" ,"T0000"."TXTMD" AS "0000000032_TXTMD"                             
    FROM                                                                               
    ( "/BI0/PCOMP_CODE" "P0000" ) LEFT OUTER JOIN "/BI0/TCOMP_CODE" "T0000" ON  "P0000"."COMP_CODE" = "T0000
      "."COMP_CODE"                                                                               
    WHERE                                                                               
    "P0000"."OBJVERS" = 'A' AND "P0000"."COMP_CODE" IN ( SELECT "O"."COMP_CODE" AS "KEY" FROM              
      "/BI0/APY_PP_C100" "O" )                                                                               
    ORDER BY                                                                               
    "P0000"."COMP_CODE" ASC#                                                                               
    <u>BW 3.0B SQL command:</u>
    SELECT ROWNUM < 500 ....
    In 3.0B, rownum is limited to 500 and this results in a speedy, though limited query. In the new NW04s BI, this renders the selection screen unusable as ABAP dumps for timing out will occur first due to the large data volume searched using sequential read.
    It will not be feasible to create indexes for every single query selection parameter (issues with oerformance when loading, space required etc.). Is there a reason why SAP seems have fallen back on a less effective code for this?
    I have tried to change the number of selected rows to <500 in BEx settings but one must reach a responsive screen in order to get to that setting and it is not always possible or saved for the next run.
    Anyone with similar experience or can provide help on this?

    here is a reason why the F4 help on ODS was faster in BW 3.x.
    In BW 3.x the ODS did not support the read mode "Only values in
    InfoProvider". So If I compare the different SQL statements I propose
    to change the F4 mode in the InfoProvider specific properties to
    "About master data". This is the fastest F4 mode.
    As an alternative you can define indexes on your ODS to speed up F4.
    So would need a non-unique index on InfoObject 0COMP_CODE in your ODS
    Check below for insights
    https://forums.sdn.sap.com/click.jspa?searchID=6224682&messageID=2841493
    Hope it Helps
    Chetan
    @CP..

  • My question has to do with analog input and triggering? Does anyone have any suggestions on how i can improve the attached vi so it can trigger on a 50kHz ten cycles pulse after the pulse has been sent out on the output?

    Could you just look at this vi and tell me if i am doing anything wrong? I get errors that are different each time I change something. here are the inputs I am using
    Output Side:
    amplitude = 1
    freuency = 50kHz
    Sampling Frequency = 1MHz
    3 of Samples = 200
    Input Side:
    Input Buffer 4000
    trigger type = analog
    pretrigger = 5
    edge or slope = rising
    scan rate = 500kHz
    # of scans = 2000
    Conditional Retrieval
    mode = on
    slope = rising
    skip count = 0
    level = .1
    offset = 0
    hysteresis = 0
    So what we want to do is capture the ten
    cycles of the 50k output pulse on the input and need to store that so we can plot it later, do you have any suggestions. we are using the PCI-MIO- 16E board.
    Thanks,
    Jarrod
    Attachments:
    InputOutput2.vi ‏88 KB

    1) Toss the sequence frames (no flames please).
    2) Set you read and have it ready to trigger before oing the output.
    3) After the output, go back and read the data that is waiting for you.
    4) If you have errors tell us what they are and under what conditions they occured.
    End of Ben's suggestions for now.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Servo tune with analog input (no encoder)

    I have a PXI-7340 motion controller and MID-7654/7652 Drive connected to a servo motor. As position information I use an analog signal, no encoder (it has to work in a radioactive zone and an encoder wouldn't resist). Can someone tell me how to find the PID coefficients in MAX and also where I can see the position information in MAX ? I use Servo Tune manually but no results .. the red line is always flat and the motor doesn't move;
    thanks for any help,
    otilia
    otilia

    Hello,
    Have you taken a look at the following link?
    http://digital.ni.com/public.nsf/allkb/19668AB2D4997F3D86256E940082F1EF
    Message Edited by ThiCop on 04-23-2010 06:55 AM
    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.

  • Synchroniz​ing two counter frequency inputs with multiple analog inputs

    Hello all,
    I'm fairly new to LabVIEW and I'm trying to collec​t data from multiple sources with synchronized tim​ing on the acquisition but I'm having trouble figu​ring it out. My problem is that I've got two count​er frequency inputs, one optical tachometer readin​g one pulse per revolution, and a max machinery fl​ow meter with a k factor of 12000. I can't seem to​ figure out how to sync the timing with my multiple analog inputs. I've be​en attempting to get the tachometer  to sync with ​the analog inputs first by following the example l​inked here. (https://decibel.ni.com/content/docs/DOC-10785) So far each time I run it I either get a timeout e​rror on the DAQmx read or a "Multiple sample clock​ pulses were detected" error (see attached image).  It seems if I slow the sampling rate way down to ​say 10 hz and ensure that the tachometer signal is​ over 800-1000 RPM (13-17 Hz) before starting the VI then the program will run without errors until ​the RPM drops below that threshold then the "Multi​ple sample clock pulses" error occurs.  The code is attached below.
    Does anyone know of a more effective way of syncin​g counter frequency inputs with analog inputs?  I'd like to have a VI that can show 0 RPM (and ev​entually 0 flow as well, but I think I need to fig​ure out the timing of one counter before I add ano​ther as it seems I can't have two counters in the ​same task). Any help on this would be greatly appr​eciated.
    LabVIEW version 13.0
    cDAQ-9178 Chassis with NI 9401 for the two counter inputs and NI 9205 for the analog inputs.
    Thanks!
    Richard
    Solved!
    Go to Solution.
    Attachments:
    SimpleDAQ.vi ‏44 KB
    LV_Error.JPG ‏31 KB

    Maybe third times the charm? 
    So I've finally got a good handle on why the VI is having problems at low RPM though I'm somewhat embarassed how long it took me to do that
    Because I have the counter time synced to my Analog input task if it doesn't see at least two pulses between the two clock pulses set by the analog input task I get the -201314 "Multiple sample clock pulses" error. This seems fine at first as it just sets a minimum RPM that I can measure and it's well below the area I'm interested in so no problems there.  I tried a simple error handler that would clear the error when it happend assuming the loop would keep iterating until the RPM went above that minimum at which point I would get a signal again. This is not the case, the read function just continues to spit out the -201314 error even after the RPM is back in the readable range. So then I tried adding two case structures so that when the error occured it would stop the task, clear the error, and then start the task again on the next loop iteration (Code Attached). This also doesn't work as the error shows up again on the stop task and then AGAIN on the start task on the next loop iteration. It seems this error is not actually being cleared and once it happens it stays with the task regardless of what the error cluster is carrying. 
    Anyone have any ideas?  The only solution I can think of is to just clear all tasks and recreate them each loop iteration until the RPM is readable again but that strikes me as a horribly clunky solution.
    Richard 
    Attachments:
    SimpleDAQ_1_Start Stop.vi ‏48 KB

  • Measuring frequency with counter or analog input?

    I have some frequencies which I need to measure. Some signals are digital and some are analog.
    I have a PXI-6040E DAQ which has both counters and analog inputs. 
    I heard that you can measure higher frequencies with the counters than with analog inputs.
    What is the range of frequencies an analog input can determine versus a digital counter? 
    Where is the cutoff that you must absolutely use a digital counter to determine the frequency?
    Is the cutoff different for different DAQ cards? Or is generally the same.

    Have you looked at the specs for the device? The max sample rate and the max counter input will be listed there. The max frequency for an analog input is based on nyquist sampling theory. Are you at all familiar with? It states your sampling frequency has to be at least twice the frequency you are measuring.
    Since each device might have a different max sample rate, your last question is answered.

  • I am getting a -50101 error when trying to get analog input from a compact rio

    I am just doing the initial setup of my compactRIO system and have been able to successfully add the cRio in Max and then into a new project.  I created a very simple VI with analog input that I am trying to read into an indicator, following one of teh tutorials.  The module I am reading the input from is a cRio-9201.  The input is voltage.  I have already added the module to teh project under the FPGA, which is under the RIO in the project tree.  Any ideas what I may be missing would be greatly appreciated!
    Thanks

    The 9201 C Series module needs to be created under the FPGA Target
    (cRIO-910x) in the LabVIEW Project. You can either discover the module
    or create it by type. In case you haven't created the FPGA Target
    (cRIO-910x) under the cRIO Controller (cRIO-900x), you must do that
    first. You also have the option of discovering the cRIO-910x or to
    create it by type. I suggest you do it through discovery, so you don't
    need to manually configure the addresses.
    As how to create the items, that's done through right-click on the
    cRIO-900x and select New>>Targets and Devices.... It will pop up
    a dialog in which you expand FPGA Target and it will discover the FPGA
    Target. Similar steps are followed to create the 9201 module.
    If you don't see the FPGA Target and C Series module options, then you
    need to make sure NI-RIO 2.0 is installed in you computer.
    JMota

  • How to use counter output pulses to trigger analog input?

    Hello all,
    I hope the kind people using this forum can help me, a lowly beginner LV programmer! I have been attempting to create a VI that produces a user defined number of TTL pulses, separated by every n seconds. Each TTL would be outputted to a stimulator, which in turn generates its own TTL. Using the stimulator-generated TTL, I would like to trigger finite analog data acquisition (e.g. for every TTL, trigger the collection of a data sweep that contains 4000 samples (collected at 4000 Hz), with 1000 samples collected pre-trigger. I would like to also be able to see each data sweep as it is triggered on a chart. As I understand things (lots of online/book/forum reading), I should be using the counter output to generate my TTL pulses, and syncing each counter produced TTL with analog input, as well as using a reference trigger. Also, the AI part should be started first, so that I don' t miss any counter outputs. If it matters, I also need to use one of the AI channels to acquire the TTL, so I can see my stimulator-induced responses to the stimulator in time.
    I am able to generate the TTL pulses from the counter output, but I am having a problem with the AI part. I am unsure how to sync the counter output with AI. Also, since I need to acquire pre-trigger samples, I would be needing to acquire samples continuously, but when I set 'continuous samples' on daqmx timing, the VI doesn't work (hence why's its set to 'finite samples').
     I hope someone out there can help, as I have been at this for what seems ages, with limited success. I am using a USB-6259 and LabView v8.2. Thanks!
    Attachments:
    RC001 v_1.vi ‏49 KB

    Hello,
    Due to the fact that analog tasks themselves are not retriggerable, a
    pulse train produced by a counter is always used as the sample clock
    for the analog input task in order to recreate a retriggerable effect
    for analog input. This can be done by creating a finite pulse train set
    to retriggerable using the DAQmx Trigger Property Node, or the pulse
    train could be continuous and just be gated by another signal. Neither
    of these methods can be properly applied in hardware to create a
    retriggerable reference trigger. You can however implement something
    similar in software by just stopping and restarting your reference
    triggered analog input task within a loop. There will be some delay
    between when the task is stopped and restarted, as these events require
    software intervention, but if there is enough time between when each
    trigger signal is generated, there should not be any noticeable delay
    or missed samples.
    I have attached an example of this!
    Mark B
    ===If this fixes your problem, mark as solution!===
    Attachments:
    RC001 v_1mod.vi ‏25 KB

  • Can I use the 2 digital triggers on the PCI-6023E to trigger 2 seperate Analog inputs on the same board?

    I want to monitor 2 analog DC signals (single point measurements, not a waveform) and I want to use the digital triggers to start the acquisition, 1 trigger for 1 AI. the measurements need to be made at 1Hz, maybe slower. Is this possible with the PCI-6023E?
    If not what hardware should I be looking at? I have a total of 6 triggers and 6 AI.

    Dimentia,
    I would need confirmation on what you want to do:
    1) I want to monitor 2 analog DC signals
    This means that you will have one Analog Input operation monitoring two channels. Please confirm.
    2) single point measurements, not a waveform
    Ok, no buffers.
    3) I want to use the digital triggers to start the acquisition, 1 trigger for 1 AI
    This would mean that a single digital pulse or edge on a single line would start your 2-channel analog input operation. Please confirm.
    4) the measurements need to be made at 1Hz, maybe slower.
    Hardware-timed or software-timed? 1 Hz could be easily implemented with software timing. But the triggering could force you to use hardware timing. It will not be a problem but it would be good to know.
    5) Is
    this possible with the PCI-6023E?
    Everything I mention above is possible with the PCI-6023E.
    6) I have a total of 6 triggers and 6 AI.
    This last phrase is what really confuses me and seems to contradict the previous sentences. Does this mean that you will want to perform 6 independent Analog Input operations, with its own triggers (one each)? Will every Analog Input operation have 2 channels?
    I'll clarify why this is important:
    - Each Analog Input operation can only have one hardware digital start trigger assigned to it.
    - Only one Analog Input operation (multiple channels allowed) can be performed per board at any time.
    Since the rates are so slow I would recommend that you perform sample all channels within a continuous acquisition and then discard the data that does not meet a certain condition. You could sample the triggers as well and discard those channels for which the trigger has not been received.
    These are just some ideas based on my assumptions on the
    problem. Assumptions are never a good thing so please confirm on the point s above and we'll try to help.
    Thanks
    Alejandro Asenjo
    Applications Engineering
    National Instruments

  • How to use both digital and analog input modules in the same worksheet - MCC USB1208LS

    Dear all,
    Hi, I am Imran. I am using MCC USB1208LS. I have created the worksheet using digital input module as below and able to execute (run).
    But when i add another analog input module in the same worksheet and executes, An error Message pops-up as in the below image
    I have connected temperature sensor sognal to the analog input of USB1208LS. When using analog input alone in the worksheet, it indiates the actual values. 
    is any black box solve? please guide me. I am attaching in images
    We already placed a purchase order for USB1208FS. Will it sort out my issues?.
    Thanking you,
    Imran Mohamed.
    Attachments:
    present worksheet digital input only.JPG ‏67 KB
    with analog input module.JPG ‏81 KB
    error menu.JPG ‏77 KB

    Hello Imran,
    the USB-1208LS is not capable of running concurrent operations such as an analog input scan and ANY digital Ins, Outs, counter reads, or analog outs.  In Dasylab, the 1208LS is scanning, and nothing else from that particular device can be requested of it while that is happening.
    Yes, using the 1208FS will resolve some of these issues.
    Please refer to the ULHELP.CHM file installed on your computer in c:\program files\measurement computing\daq for details on this issue, et al.
    also I recommend you send your MCC/DASYLab requests for support to [email protected] as MCC staff (that includes me) does not normally monitor NI's Developer Zone.

  • MyRIO analog input express Vi (n samples) missing file

    Dear Users, 
    I am trying to read analog data with an express VI in myRIO. This works with Analog input (1 sample), but fails with Analog input (n samples) due a missing file "myRIO v1.1 FPGA Throughput.lvbitx".
    I googled it and searched it on ni.com, but nobody seems to have the same isssue (I suppose because of the myRIO is quite new right now)
    Thank you!
    Solved!
    Go to Solution.

    I would try doing a repair of your installation.  It looks like something didn't get installed properly.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

Maybe you are looking for

  • LDB error

    *& Report  ZPV003HR_ANIV_EMP                                           REPORT  zpv003hr_aniv_emp  . TABLES: pernr. INFOTYPES: 0002,            0001. DATA: age TYPE d,       serv TYPE d,       curdate TYPE d. DATA: years TYPE d,       enddate TYPE d .

  • Event Handling to Toggle Between Graphs

    I am trying to create a user interface in which a container at the top of the screen contains a drop down menu that will list a few graphs. I want the user to be able to select a graph from this list and then have the selected graph displayed in a se

  • I know it's an old question, but are we ever going to see network indexing on x64 Windows?

    I know it's been asked time and time again, but I would like to know if anyone knows of any plans to allow non-Windows Server network locations (such as NAS devices, Linux boxes, and storage plugged into supporting routers) to be indexed and used in

  • High sea procurement ????

    hii experts Can anybody explain me about the Hige sea procurement in SAP. What is this business process?? How it 'll be carried out in SAP.;??? Thanks SAP-MM

  • How do I make an Array Of Strings

    I want to make a program that will accept up to 10 lines of text but maybe less depending on the what the user want to put in... i can't seem to figure out where i put the number after a string... after String [10] text; or String text[10]?? am i eve