Asynchrono​us Waveforms and the waveform variable

I am receiveing data from a piece of software outside of my control via a data socket. That software gets data from a piece of data acqusition hardware over a serial bus.  It is known to drop packets, but every packet sent (2/second) has a time stamp.  If I lose a packet of data, there seems to be no way of adjusting T0 in the waveform data so that the missing data is skipped rather than simply appended to the next good data.  How do I keep track of or fill with zeros missing time in waveform data?  Here is a VI showing the problem.  
Solved!
Go to Solution.
Attachments:
Asynchronous waveform TDMS write.vi ‏40 KB

manjagu wrote:
I was afraid of that.  It might be nice if the waveform data type were a bit smarter and incorporated handlers for such situations.  But then again, maybe most people don't deal with this problem.  Thanks.
Have no fear the WF chart is here (to do what you want).
As shown below
you can use the WF data to specify when in thime the value is plotted.
If you want to force a break in the line, throw in some "NaN" so the chart "lifts the pen" while drawing.
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction

Similar Messages

  • CFPOP and the FROM variable

    I use CFPOP too read mails,
    And I want to do different processing following the email adress found in the
    FROM variable.
    But, depending of the Mail agent sending mails,
    The FROM variable contains different types of values :
    1 - can be the Email (alone)
    2 - can be the name of the person, without any email
    3 - can be the name of the person followed by the email
    4 - can be the name of the person followed by an email of the mail server.
    As I need to find the Email of the sender, only in cases 1 and 3 can give me the right email.
    Can someone explain this ?
    I do not see anything in CF to solve this, even in programming or in the CF administrator.
    I have the impression that , what is retruned in the "FROM" depends of the mail server ?
    Thanks for any help, explanation on that subject,
    Pierre.

    Thanks for your suggestion,
    the header variable does not give the Email adress of the sender,
    it gives the same : the person name.
    here is the result of that variable :
    Received: from [192.168.13.131] by email.images-creations.fr [192.168.13.209] with SmartMax MailMax for [email protected]; Tue, 18 Oct 2011 16:56:29 +0200 Return-Path: X-SmartMax-AuthUser: Received: from mx1-1.images-creations.fr (localhost [127.0.0.1]) by mx1-1-relay.images-creations.fr (Postfix) with ESMTP id 76EC432E0D9 for ; Tue, 18 Oct 2011 16:56:26 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on mx1-1.images-creations.fr X-Spam-Level: ***** X-Spam-Status: No, score=6.0 required=8.0 tests=BAYES_50,HTML_MESSAGE, LIMSI_S36,RCVD_IN_NJABL_PROXY,TVD_SPACE_RATIO autolearn=no version=3.2.5 Received: from smtp.smtpout.orange.fr (smtp12.smtpout.orange.fr [80.12.242.134]) by mx1-1.images-creations.fr (Postfix) with ESMTP id 63CFE32E0D5 for ; Tue, 18 Oct 2011 16:56:26 +0200 (CEST) Received: from StationDev ([80.14.60.39]) by mwinf5d47 with ME id mEwR1h00J0qnSTU03EwRkh; Tue, 18 Oct 2011 16:56:26 +0200 X-ME-engine: default From: "Pierre LARDE" To: Subject: 13744 Date: Tue, 18 Oct 2011 16:56:24 +0200 Message-ID: <000501cc8da6$1b58e540$520aafc0$@fr> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0006_01CC8DB6.DEE1B540" X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AcyNpfyCtDyvnB33RuaPaOwckewWUg== Content-Language: fr
    the From is there also the name , not an Email.
    Thanks for any other suggestion,
    Pierre.

  • CFPOP and the FROM variable content

    I use CFPOP with no problem,
    except that when I send from my OutLook,
    the FROM variable content is a name (my name)
    not an Email adress.
    I need the Email adress like : [email protected]
    which is the unic identifier
    I am under CF 7 (or CF 8)
    How to get the Email adress in the  "from" variable of the CFPOP ?
    Thanks to any help
    plarts
    Messages: 6
    Inscription: Dim 21 Mar 2010 17:26
    Message privé
    E-mail

    I send (myself, as an example, could be anybody else) a mail to an Email address xxxx,
    With CFpop I want to get this mail and identify the sender with the Email adress (in the from variable).
    So in the "from" variable of CFpop , I should get the Email adress of the sender.
    Then 2 cases :
    - If the mail is sent from Outlook , the "from" content have the name of the person (not the Email adress)
         (and different person can have the same name)
    - If the mail is sent from a Webmail, the "from" content has the Email adress (format [email protected])
         (the email adress is unique)
    And I need the Email adress (not the name of the sender) to Identify the person in the DataBase.
    Hope, this is clearer ?
    Thanks for your help.
    Pierre

  • Simultaneous analog and digital waveform read with PXIe-6361 and BNC2120 ?

    Hi there,
    I am trying to collect both analog and digital signals from a PXIe-6361 linked to a BNC2120, using the attached VI. I am running Labview 2011 64bit. This is the first time I am working with digital input. On the 2120 board, I have the digital input BNC cable connected to User Input 1 and wire between the screw terminal of UserInput 1 and the P0.1 (Digtial I/O) screw terminal.
    I have two questions related to this:
    1) When I try to run the VI in its current state, I get the following error:
    Error -89137 occurred at DAQmx Start Task.vi:3
    Possible reason(s): Specified route cannot be satisfied, because it requires resources that are currently in use by another route.
    Property: RefClk.Src
    Source Device: PXI1Slot2
    Source Terminal: PXIe_Clk100
    Required Resources in Use by
    Task Name: _unnamedTask<6>
    Source Device: PXI1Slot2
    Source Terminal: None
    Destination Device: PXI1Slot2
    Destination Terminal: RefClockInternal
    Can anyone point me in the right direction for troubleshooting this?
    2) I would like to combine my regular waveforms and the digital waveform into one array which would then be written to file. I can't figure out how to combine the two different waveform types...can anyone give me a hint on this?
    Thanks for your help,
    Claire.
    Attachments:
    Export Waveforms To Spreadsheet File (1D)_wo extra line.vi ‏33 KB
    Multi-Device Synch-Analog Input-Finite Acq-Analog Start_Claire_wDigitalin.vi ‏105 KB

    Hi ClaireJ,
    Sounds like a reference clock conflict. This KnowledgeBase (KB) talks about this error when using simultaneous sampling. Also, might want to check the device routes in Measurement and Automation Explorer (MAX) as discussed here. Finally, if you are routing your PFI line over a RTSI connection, this error can occur. This KB discusses it.
    As to your second question, this post should help.
    Bill E. | Applications Engineer | National Instruments

  • Editing the waveform graph

    Hi,
        I have encountered some problem is finding waveform graph. I downloaded the tutorial for ASK modulation i tried to do a new one as practice. But the graph are very different. it seems that the borders are transparent which can only see the graph portion only. I have tried to use waveform graph from the graph palettes. I edited it by stretching the graph (waveform result) area and unchecked the visible plot legend, scales and etc.. but i just can't do it the same as the example and the waveform at the bottom is slightly different also (but i don't know isit different scales). I have no choice but copy the graph and paste on mine. Anyone know the trick or tips in doing it? Thanks..
    Attachments:
    ASK.vi ‏53 KB
    simple_ask_transceiver (SW).vi ‏172 KB
    Image.PNG ‏21 KB

    Hi Serina,
    have you tried to use the waveform graph/chart from the "Classic" palette?
    Those controls/indicators have a "flat" look making a lot easier to hide unneeded features
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How to keep the waveform chart updated when changing states in state machine/

    Hello Everyone,
                           Can anyone please sugest me how to keep the waveform chart updated even if I am changing the states in a state machine??
    I am having analog inputs on the waveform chart...
    Thanks in advance...
    Now on LabVIEW 10.0 on Win7

    hello guys,
                    thanks a lot for the suggestions, here is the attached code... please follow the following steps to run it..
    ONce you hit play,press either Start Main/Cyl UP button on the front panel,
    once you start observing the waveforms, you can press the Cyl_Dwn button on the front panel... You can observe that the state changes to Start Counter state,
    and the waveform chart also stops updating... I would like both the waveform charts to conitnuously show the data even if the state is changed....
    Now on LabVIEW 10.0 on Win7
    Attachments:
    Soda Vending MAchine.vi ‏212 KB

  • Add waveform and array

    While looking at this thread, I discovered an undocumented "feature" of LV which can cause severe performace problems with modest sized arrays and waveforms.
    In the original thread an attempt was made to remove the DC component from a waveform by subtracting  an array (rather than a scalar). Both the Y array in the waveform and the array of DC components were the same size with less than 15000 elements. Attempting to run that part of that VI resulted in severe slow down of not only LV but the OS and everything else running on the computer because it was paging data to/from disk.  The only thing wired to the output of Subtract was a graph.
    The result of subtracting an array of numerics from a waveform is an array of waveforms having the same number of elements as the array of numerics. The size of the Y array in the waveform does not seem to matter. The attached VI has the array of numerics and the Y array of the waveform the same size.
    The same thing happens with Add.
    The Detailed Help for Add and Subtract do not mention this combination. The example linked on those help pages also does not show this combination.
    The Profiler gives this data for the attached VI:
    Samples Bytes
    10               15 kB
    100           295 kB
    1000          24 MB
    2000          97 MB
    3000        217 MB
    4000        385 MB
    5000        602 MB
    6000        866 MB
    7000      1178 MB
    8000      1538 MB
    At 7000 samples I start to hear the disk drive while the VI runs and at 8000 the disk is very busy.
    After some thought I decided that this is not a bug, but because of the way the data size explodes, it should be documented.
    Clearly this is not a common use case, but I could see someone trying to do baseline correction on data from an instrument this way, as that is essentially what the thread linked above was trying to do.
    Output configuration is not available after a waveform is wired, probably because of the polymorphic VI used for waveforms. An output configuration option to create a single waveform with element by element addition/subtraction might be useful.
    Lynn
    Attachments:
    Subtract array from waveform.vi ‏20 KB

    Wow, that is kind of weird.  The way I see it, when you subtract a waveform and a numeric array, the subtraction should just be done on the Y component of the waveform.  So you should still just have a single waveform out.  So by subtracting a waveform with an array of numerics, it should act the same as if you extracted the Y, did the subtraction, and put the Y back in.  This could lead to a shortened size of Y, but I see no reason why you should get an array of waveforms out.
    But after running your VI, I guess I can see what LabVIEW is doing.  It is as if you used a FOR loop with just the numeric array autoindexed and then you autoindex the output waveform.
    I can see the intent, but it just doesn't sit right with me.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Problem in picking the system variable value in Calculation Script

    Hi All,
    We are using a Calculation Script to perform data export. And the target location where to crete the exported output file is given to the environment system variable.
    Now I am using this system variable in the calculation script as below:
    //ESS_LOCALE English_UnitedStates.Latin1@Binary
    SET DATAEXPORTOPTIONS
    DataExportLevel "ALL";
    DataExportOverwriteFile ON;
    Fix ( &CurrMiles, &CurrProj, &CurrVer,"No Project","No Version")
    DATAEXPORT "File" " " $DEXPORTPATH;
    ENDFIX
    Here "DEXPORTPATH" is the system variable
    I am creating this system variable from the batch script and the system variable value varies at the runtime.
    This calculation script works fine for first time and it picks the correct value from the system variable.
    But the problem occurs from next execution of calc script. Even if i update the system variable with other value, it picks only the last execution system variable value and it performs execution.
    Eg: Suppose for first execution system variable value is "D:\Bkup\PMV.txt"
    The calc script works fine with this.
    For next execution, system variable value is changed to "D:\Time\temp.txt"
    Now the calc script picks the system variable value as "D:\Bkup\PMV.txt"
    and performs execution which is wrong.
    Please help me on this issue how to handle system variables in calc scripts.
    Thanks in advance
    Regards
    Swathi

    811829 wrote:
    Hi All,
    We are using a Calculation Script to perform data export. And the target location where to crete the exported output file is given to the environment system variable.
    Now I am using this system variable in the calculation script as below:
    //ESS_LOCALE English_UnitedStates.Latin1@Binary
    SET DATAEXPORTOPTIONS
    DataExportLevel "ALL";
    DataExportOverwriteFile ON;
    Fix ( &CurrMiles, &CurrProj, &CurrVer,"No Project","No Version")
    DATAEXPORT "File" " " $DEXPORTPATH;
    ENDFIX
    Here "DEXPORTPATH" is the system variable
    I am creating this system variable from the batch script and the system variable value varies at the runtime.
    This calculation script works fine for first time and it picks the correct value from the system variable.
    But the problem occurs from next execution of calc script. Even if i update the system variable with other value, it picks only the last execution system variable value and it performs execution.
    Eg: Suppose for first execution system variable value is "D:\Bkup\PMV.txt"
    The calc script works fine with this.
    For next execution, system variable value is changed to "D:\Time\temp.txt"
    Now the calc script picks the system variable value as "D:\Bkup\PMV.txt"
    and performs execution which is wrong.
    Please help me on this issue how to handle system variables in calc scripts.
    Thanks in advance
    Regards
    SwathiAs of my knowledge system variables will not update immediately...you need to log off the session after changing the value.
    Update the system variable..
    Log off from the session..
    And Re-login with the same username ....and check...
    Regards,
    Prabhas

  • Resetting movieclip between levels and passing required variables

    Hi there,
    I'm currently working on my first flash game and have managed to near enough get everything working...
    I can play each level individually by manually changing the variable 'level =' (to whichever level I want to play) in the actionscript..
    Now i need to find out the correct way to reset the movie after each level but still pass the 'currentTime' Timer variable and the 'level' variable over...
    Is there any usual practice way of doing this ??
    Would I use variables I have saved in the init() function...
    I really hope someone can help I'm so close to being finished..

    OK this is what I have done.. all the eventListeners from my function Main() copied into the levelEnd() function... is this reammy good practise ?? Is there not a way I can just call Main() again :-
    function levelEnd(event:Event):void {
                gamePage = new GamePage;
                removeChildAt(0);
                addChildAt(gamePage, 0);
                mainTimer.start();
                //Is this in between really good practice ??
                gamePage.helpIcons.visible = false;
                gamePage.help_txt.text = "Passez la souris sur les indices à droite pour connaître leur signification.";
                var persoArray:Array = [gamePage.a1, gamePage.a2, gamePage.a3, gamePage.a4, gamePage.a5];
                var animalArray:Array = [gamePage.b1, gamePage.b2, gamePage.b3, gamePage.b4, gamePage.b5];
                var persoHitArray:Array = [gamePage.h1, gamePage.h2, gamePage.h3, gamePage.h4, gamePage.h5];
                var animalHitArray:Array = [gamePage.h6, gamePage.h7, gamePage.h8, gamePage.h9, gamePage.h10];
                function addPersoListeners():void {
                    for(var i:uint = 0; i < persoArray.length; i++) {
                        (persoArray[i]).addEventListener(MouseEvent.MOUSE_DOWN,persoMouseDown);
                        (persoArray[i]).addEventListener(MouseEvent.MOUSE_UP,persoMouseUp);
                        (persoArray[i]).buttonMode = true;
                function addAnimalListeners():void {
                    for(var i:uint = 0; i < persoArray.length; i++) {
                        (animalArray[i]).addEventListener(MouseEvent.MOUSE_DOWN,animalMouseDown);
                        (animalArray[i]).addEventListener(MouseEvent.MOUSE_UP,animalMouseUp);
                        (animalArray[i]).buttonMode = true;
                function persoHitAreaListeners():void {
                    for(var i:uint = 0; i < persoHitArray.length; i++) {
                        (persoHitArray[i]).visible = false;
                function animalHitAreaListeners():void {
                    for(var i:uint = 0; i < animalHitArray.length; i++) {
                        (animalHitArray[i]).visible = false;
                addPersoListeners();
                addAnimalListeners();
                persoHitAreaListeners();
                animalHitAreaListeners();
                //Add event listeners
                buttons.rulesButton.addEventListener(MouseEvent.CLICK,onRulesButtonClick);
                buttons.startGameButton.addEventListener(MouseEvent.CLICK,onStartGameButtonClick);
                buttons.highScoresButton.addEventListener(MouseEvent.CLICK,onHighScoresButtonClick);
                buttons.infoButton.addEventListener(MouseEvent.CLICK,onInfoButtonClick);
                mainTimer.addEventListener(TimerEvent.TIMER, incrementCounter);
                countdownTimer.addEventListener(TimerEvent.TIMER_COMPLETE, levelEnd);
                gamePage.validerButton.addEventListener(MouseEvent.CLICK,onValiderButtonClick);
                gamePage.recommencerButton.addEventListener(MouseEvent.CLICK,onRecommencerButtonClick);
                gamePage.infoBox.l1i1.addEventListener(MouseEvent.MOUSE_OVER,l1i1MouseOver);
                gamePage.infoBox.l1i1.addEventListener(MouseEvent.MOUSE_OUT,l1i1MouseOut);
                gamePage.infoBox.l1i2.addEventListener(MouseEvent.MOUSE_OVER,l1i2MouseOver);
                gamePage.infoBox.l1i2.addEventListener(MouseEvent.MOUSE_OUT,l1i2MouseOut);
                if(level == 1) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .01;
                    gamePage.house1.visible = false;
                    gamePage.house5.visible = false;
                    gamePage.a4.visible = false;
                    gamePage.a5.visible = false;
                    gamePage.b1.visible = false;
                    gamePage.b2.visible = false;
                    gamePage.b3.visible = false;
                    gamePage.b4.visible = false;
                    gamePage.b5.visible = false;
                    mainTimer.start();
                } else if(level == 11) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .11;
                    gamePage.house1.visible = false;
                    gamePage.house5.visible = false;
                    gamePage.a4.visible = false;
                    gamePage.a5.visible = false;
                    gamePage.b1.visible = false;
                    gamePage.b2.visible = false;
                    gamePage.b3.visible = false;
                    gamePage.b4.visible = false;
                    gamePage.b5.visible = false;
                } else if(level == 21) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .21;
                    gamePage.house1.visible = false;
                    gamePage.house5.visible = false;
                    gamePage.a4.visible = false;
                    gamePage.a5.visible = false;
                    gamePage.b4.visible = false;
                    gamePage.b5.visible = false;
                } else if(level ==31) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .31;
                    gamePage.house1.visible = false;
                    gamePage.house5.visible = false;
                    gamePage.a4.visible = false;
                    gamePage.a5.visible = false;
                    gamePage.b4.visible = false;
                    gamePage.b5.visible = false;
                } else if(level == 41) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .41;
                    gamePage.house1.visible = false;
                    gamePage.house5.visible = true;
                    gamePage.a5.visible = false;
                    gamePage.b1.visible = false;
                    gamePage.b2.visible = false;
                    gamePage.b3.visible = false;
                    gamePage.b4.visible = false;
                    gamePage.b5.visible = false;
                } else if(level == 51) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .51;
                    gamePage.house1.visible = true;
                    gamePage.house5.visible = true;
                } else if(level == 61) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .61;
                    gamePage.house1.visible = true;
                    gamePage.house5.visible = true;
                } else if(level == 71) {
                    gamePage.difficulty.difficultyIndicator.scaleY = .71;
                    gamePage.house1.visible = true;
                    gamePage.house5.visible = true;

  • The call library function require us to define the type of parameter that w are using.The type of parameter in cludes numeric, array, string,wav​eform and adapt to type.I would like to know more about waveform and adapt to type.

    In the labview manual, there is very little mention about the use of waveform.How is this waveform being called and can i have an example to see how this work.
    Also in the adapt to type paramete, what does this parameter do and in what circumstances do we need to use it.The manual say something about the use of this parametr.It says that scalar elements in arrays or clusters are in line.For example a cluster containing anumeric is passed as pointer to a structure containing a numeric. What does this statement mean?
    Can i imply t
    hat if my input is a struct, can i use a adapt to type parameter to overcome this incompatibility?Can i also have an example to let me have a better idea.thank you

    I'm going to share my experience with the "Adapt to Type" parameter.
    Attached to this message is an example. The attachment is a zip file with three files: a dll, a c file and a vi written in LabVIEW 6. The dll contains a function that return a structure with 3 values (like the coordinates of a point in space, that is, (x, y, z)). You can see how the function was constructed by looking at the c file.
    In LabVIEW, I created a cluster with the same three parameters. Then, I configured the call library function following the function prototype as in the c file. For the point variable I use "Adapt to Type".
    I hope this can give you a head star.
    Best regards;
    E. Vargas
    www.vartortech.com
    Attachments:
    pointexample.zip ‏63 KB

  • Programmatically Changing Waveform Graph and the number of plots

    I have a waveform graph that needs to display a variable number of plots based on the number of inputs.  Is there a way to programmatically adjust the number of plots displayed on the waveform graph?

    You need to use the Active Plot input before the Plot Name(s).  Property nodes are read from top to bottom so you can alternate several pairs of ActPlot,Plot.Name;ActPlot,Plot.Name, etc.  Then wire 0,1,2,etc to the ActPlot and your chosen name to the Plot.Name right under it.  Or, use for loops and index the ActPlot input.  See the pic.
    Using LabVIEW: 7.1.1, 8.5.1 & 2013
    Attachments:
    plot names.JPG ‏37 KB

  • Does a network published shared variable drop the waveform attributes?

    I have the analog input source for a waveform on one NI chassis. The trigger to begin the trend is on another NI chassis. Both of them feed data to a remote Windoze host. I would like to know how I can pass the waveform attributes, ie. Plot Names from the source machine to the Windoze host using a network published shared variable. I am using LV8.0. My two remote chassis are both running RTOS.
    I can see that when I set up the DAQ assistant and named my aquired signals, that these names are passed to a waveform chart on the same block diagram. I can use them to update the Plot Names on my front panel. However, when I create an "Array of Double Waveform based" network published shared variable, and then read that variable from the Windoze host there are no attributes attached. The waveform shows up just fine.
    I would like to be able to have the attributes update the plot name when I change the plot. I will have about 20 plots and I only want to display them a few at a time. I also want the user to be able to select which one they want to look at.

    Hello,
    I think you posted the same question to another thread, received an answer, and have now moved on.  Anyway, the workaround to the problem is to peform flatten to string and unflatten from string operations on the waveform before and after sending it to the shared variable respectively.  See the attached screenshot for the specifics.
    I hope this helps!
    Best Regards,
    JLS
    Best,
    JLS
    Sixclear
    Attachments:
    Workaround Screenshots.JPG ‏206 KB

  • When I record an audio track, there is a waveform. When I stop recording, the waveform disappears and becomes a straight line. It also disappears from the track edit window. But the sound is there. How can I stop the waveform from disappearing?

    When I record an audio track using Logic Pro X, there is a visible waveform which appears as I record. When I stop recording, the waveform disappears and becomes a straight line. It also disappears from the track edit window. But the sound is still there. How can I stop the waveform from disappearing? And can I do something to view it after it has disappeared? Anyone know the anser?

    In Logic:
    Preferences/Audio Set Recording Delay to 0 <zero>
    This should always be set to zero unless a specific set of circumstances exist and you're audio drivers do not report position correctly.
    On occasion, usually when importing a Logic 9 project, Logic-X randomly changes this to a negative/positive number.  It's actually a bug in Logic, as it should always display the waveform.

  • In Final Cut Pro x, Somehow my video got muted and I can't find a way to UNMUTE it! (it won't let me manually lift up or down the waveform - nor go in and raise the level of loudness) Any suggestions? (How to unmute)

    In Final Cut Pro x, Somehow my video got muted and I can't find a way to UNMUTE it!
    (it won't let me manually lift up or down the waveform - nor go in and raise the level of loudness)
    Any suggestions? (How to unmute)

    Do you know how to use the volume adjustment line?
    If so, is it not working?
    Can you post a screenshot of your audio?

  • Acquiring multiple voltage and current sine waveforms, and log them along with the respective time stamp in a file."

    "I am doing a data acquisition project using a 16 channel N.I. series 6020E card where I want to capture respective current and voltage sinusoidal signals. I am planning on capturing four pairs of matching current and voltage signals. I planned on taking one reading across the channels every fifteen minutes. This reading will need to be 60 data points per period or 3600 readings per second per channel in order for me to recreate the sine signal to determine the phase angle difference between the voltage and current. I was able to get one channel to capture a signal but could not get more than one working at a time. I am also trying to sycronize the data collection so all samples are with respect to each other. Thanks for any help."
    -posted by cappy on 2/11/2002
    John N on 2/12/2002 answered:
    "Hi Cappy,
    Could you post this question to the Hardware > Counter/Timer or Hardware > Multifunction I/O forums? I think you will get more responses there. Here is a link.
    The hardware is usually a better differentiation since software can support such a huge range of functionality.
    The data rates you are talking about sound reasonable. Are you using the USB or the AT interface?
    One other thing to be aware of is that the samples taken will not be simultaneous due to the multiplexed nature of the MIO board measurements. However if you know the channel clock rate(output from one of the VI's), then you can calculate the time difference between each measurement and correct your phase measurements by that amount.
    If you have more questions, please post this to the other forum and copy all of our discussion to let everyone know what we have talked about already.
    Best Regards,
    John Nieri
    Applications Engineer
    National Instruments"
    I am using the USB connection. If anyone can help with or has a similar VI for this, it owuld be appreciated so I can work on the larger aspect of the total project.

    The easiest VI to use for this acquisition is AI Acquire Waveforms in the data acquisition palette in LabVIEW. This VI allows you to perform a finite acquisition from multiple channels on your DAQ board. As John mentioned the acquisition from individual channels will not be truly simultaneous. There will be a slight time shift from one channel to the next on the order of the maximum acquisition speed of the card, 100kHz or 10 microseconds in your case. By accounting for this 10 microsecond delay between consecutive channels you can properly calculate the phase shift between voltage and current.
    Christian L
    NI Consulting Services
    Christian Loew, CLA
    Principal Systems Engineer, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense

Maybe you are looking for

  • Free of charge delivery(Samples)

    Dear Experts. Free of charge delivery(Samples). As per my client requirement my client send the samples to customer.First i have  created first a sales order (FD), Delivery. After delivery how to process how to clear the Excise part. In free of charg

  • Does anyone know if the IPOD Nano touch 6th Generation have videos+syncing?

    Hey guys my dad is gonna go to Dubai to get me an IPOD, and i need to tell him weather to get a 8gb or a 16gb, so if anyone knows if it has videos to preview. Plus i need DETAILED STEPS on how to sync music-photos-podcasts etc. to the IPOD Nano Touch

  • Dynamic Host Name -- Roadrunner

    I have a linux box that I would like to install Oracle 8i on for development purposes. I use this PC from home connecting to the internet using Roadrunner. The problem comes in that Roadrunner assigns me a dynamic server name/address each time I log

  • Trouble saving documents from Outlook to SharePoint 2010 library - missing tags

    Hello One of our users is seeing a strange issue with saving documents from Outlook.  It appears that the document already had tags from the library, but the user said the document was never uploaded to the library. All of the server tags show Curren

  • Oracle application developer job description

    Hi, Can anyone describe to me a tipical day for an oracle applications developer. thank you Michelle