Double frequency loop with elapsed time.

I'm making VI which is supposed to communicate with an external device. It should send a message every 60s and recieve a message every 256ms. In order to accomplish this I've tried to make a loop in which two events reoccur at different frequencies. First I did this as the included test program blink2.vi where two LED:s flash at different frequencies. Then I made the also included library ET_loop.llb where messages are sent and recieved based on the time synchronization principle of blink2.
It almost works, but it has some problems. First of all, the stop button, which works perfectly in blink2.vi doesn't work at all. Second, I get an error in two lower wire reading:
Error -1073807252 occurred at VISA Read in SerialPortControl.vi->readVISA2.vi->Getstring2.vi->ET_loop.vi->Main_control_sequence.vi
Possible reason(s):
VISA:  (Hex 0xBFFF006C) An overrun error occurred during transfer. A character was not read from the hardware before the next character arrived.
Any suggestions?

Tzench wrote:
While the loop is running, the status of the stop button in the main program is obviously not checked.
Most likely, the stop button is set to latch action, meaning it resets to false as soon as it is read once by the code. I suspect that your main loop also does not have a wait, so the button will only turn TRUE for a nanosecond and you won't see it. It could also be that your main VI is stalled until the subVI completes, in which case probing does not do anything useful.
For further help, please attach all the missing parts (main VI, missing subVIs).
LabVIEW Champion . Do more with less code and in less time .

Similar Messages

  • Synchronise loop with computer time

    I would like to run a while loop exactly every 1 minute, with the minute occuring as per the computer time at 0 seconds.
    a timed loop runs a minute after the loop is started and is not syncronised with the 0 seconds of the computer time.
    how do I achieve this? I realise the first loop will be less than 1 minute due to the synchonisation.
    Solved!
    Go to Solution.

    Technically there's a miniscule change you can miss a minute by this approach. As the windows timer isn't perfect and due to the multitasking the 1000ms wait can be a couple ms longer in some cases (not all the time). If this happens you could end up with the ms timer reading just before and after the '0'-second.
    (It's basically the Nyquist theorem applied on these timings)
    The solution is simple, check at a time that cant miss, e.g. 750ms.
    If checking <500ms you'll have to handle the case of 2-3 hits during the same second.
    A common solution is to store and compare to last used time, and when >=1min has passed, do action, set new last time.
    /Y
    LabVIEW 8.2 - 2014
    "Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
    G# - Free award winning reference based OOP for LV

  • How to use elapsed time function with state machine in Lab VIEW

    Hello
    I've been trying to use state machine with elapsed time function in order to sequentially start and stop my code. The arrangement is to start the code for 1 minute then stop for 5 minutes. I've attached the code, the problem is when I place the elapsed time function out of the while loop it doesn't work, on the other hand when I place it inside the loop it does work but it doesn't give the true  signal to move to the next state. 
    Could you please have a look to my code and help me to solve this issue.
    Regards 
    Rajab
    Solved!
    Go to Solution.
    Attachments:
    daq assistance thermocouple(sate machine raj).vi ‏436 KB

    Rajab84 wrote:
    Thanks apok for your help
    even with pressing start it keeps running on wait case 
    could you please explain the code for me, the use of Boolean crossing, increment , and equal functions 
    Best Regards 
    Rajab 
    OK..I modded the example to stop after 2 cycles. Also recommend taking the free online LabVIEW tutorials.
    run vi. case statement goes to "initialize", shift registers are initialized to their constants. goto "wait"
    "start"= false, stay in current state. If true, transition to "1 min" case
    reset elapsed timer with True from shift register(counter starts at zero)."time has elapsed"=false, stay in current state(1 min). If true, goto "5min" case
    reset elapsed timer with True from shift register of previous case(counter starts at zero)."time has elapsed"=false, stay in current state(5 min). If true, goto "1min" case. Also, bool crossing is looking for "true-false" from "5 min" compare function to add cycle count.
    Once cycle count reaches 2, stop while loop.... 
    Attachments:
    Untitled%202[1].vi ‏42 KB

  • How can I build a table with the time values of a timer from a while loop

    Hi:
    I have a question concerning building a table:
    Every 100ms I read a value from a sensor (while loop with a timer). I would like to build a table with the actual time and the concerning value. For example:
    0msec         1V
    100msec     2V
    200msec     3V
    300msec     4V
    etc.
    If I use the Express VI for building a table, I always get the date and time, but I don't need the date and the time is in the following format: HH:MMS, which is nonsensical for me as I can't differentiate within msec. Can I change the format anywhere?
    Can I also save the table to a file or even to an Excelsheet? How can I do that?
    Thanks for your help!

    Hi Craig:
    thank you very much. To solve the mystery : ) :
    I want to drive a stepper motor with a specific frequency. To get the current degree value of the motor I would like to measure the current time (from the beginning of the move on). (With a formula I get the degree value out of the time)
    Concurrently I would like to get data from a torque sensor and from a pressure sensor. That's why I asked you about the time and the table. The measurement should start with the movement of the motor. How can I do that? Right now I have different block diagrams (different while loops) (see attachment) and I would like to put them in one.
    I haven't done the block diagram for the pressure sensor yet, so there is only the one for the torque sensor and the one for the motor.
    I also would like to set a mark in the table when the voltage value of an analog input gets under a specific threshold value. Is that possible?
    I'm sorry, I'm a novice in LabVIEW. But maybe you can help me.
    Thank you very much!
    Steffi
    Attachments:
    motor.vi ‏238 KB
    sensor.vi ‏59 KB

  • BPM Loop controlled by time

    I'm working in a scenario mapping n:1 message. In my case i need receive a number(100) of message until process mapping transformation will be executed. But i need too the loop that receive message and save in a multiline container break when one hour past. How can I control the loop with a timer? How can I use time or date functions to assign a value to a simple data?.
    Thanks a lot.

    Hi Carlos,
    Welcome to the SDN Forums!
    You can you possibly have a fork with two branches that needs at least one branch to complete. Have your loop to collect the messages in one branch and the Wait step in the other. Process should continue when one of them is complete - that is 100 messages are collected or 1 hour has elapsed. I had a very brief overview of BPM in XI and do not exactly remember how the start time for the wait step is determined.

  • Aborting from double while loops

    Hi,
    I am trying to do a X-Y movement with one of my piezostage automatically. It would be required for it to move in x-y direction for a certain user defined steps.
    However, I have problem with trying to abort the motion at will. Previously I have used a for loop and I know that there did not exist any stop condition for it and I have switched to a while loop. THe existing program structure has a double while loop with one while loop nested within another one.
    HOwever, I have a problem with terminating the program. The program will still finish the execution of the outer while loop before it goes out of the main while loop. I have used the same local variable which connects to the stop condition of both inner and outer while loop? Is there any methods to prevent any execution of the outer while loop and immediately looped out of the program?
    Thanks for your help!

    Yes, for the outer loop to regain control, the inner loop must finish first. It's all in the dataflow!
    (Of course the wait in the outer loop is not really necessary here because the outer loop speed is entirely governed by the inner loop, which must run at least once per iteration of the outer loop.)
    Don't confuse it with a situation where you have two parallel independent loops without any data dependency between them.
    Message Edited by altenbach on 01-06-2007 10:11 AM
    LabVIEW Champion . Do more with less code and in less time .

  • What is wrong with this elapsed time counter?

    I have been using this simple counter for a while. After unbundling the timestamp - there is always a '19' in the hours indicator. At first I was simply subtracting '19' and it worked fine. Then I ran a program for about 5 hours and the hour display changed to something odd (like a 16 or 17). Any ideas where the '19' comes from?
    Thanks - Paul
    Attachments:
    simple elapsed timer.vi ‏9 KB

    OK, typically you don't want to jump through all these hoops and drag along comlex timing fiunctions just to keep elapsed time.
    Some simpler suggestions would be (see image):
    (A) To place a 1000ms wait inside the loop, then place a simple indicator at the [i] terminal. Set the indicator to relative time format with HH:MMS. Voila!
    (B) If you need s, m, h in seperate indicators, just do a few simple calculations
    (C) If you don't trust the loop delay, maybe because you do complicated calculations that might take longer than a second in the same loop, Get the elapsed time from the tick count difference.
    Message Edited by altenbach on 02-08-2007 04:05 PM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    elapsedTime.png ‏14 KB

  • Check Scan for NI435X and elapsed time doesn't run in loop

    Dear all Labview Experts
    i have 2 questions
    (1) i written program with Check Scan for NI435X (input to no of scan to NI 435X read ) and one with only NI435X read( to read in voltage) with constant input to no of  scan,
    the data i obtained is attached in 2 doucments; With Check Scan and without check scan ( the left column is temperature read in ( a formula is used to convert volt to temperature, right column is time)
    strangely the program with check scan shows values in negative ==> Voltage read in is 0, strange, why is this so??? and why is there a diff?? Hope u understand my question
    (2) For elapsed time, i want to find the total elapsed time for the whole program as well as individual cases,  there is no "running"  elapsed time or individual running time,
    what happen is that when the each case end, the time will jump (e.g. from 0 at start, it will change to 5.35 at end of case) , is there any where to make the time run, i need it because some case required
    c
    ondition such as case will move to next after 5 seconds, but if above case happen, the vi will only stop if i put >= 5 rather than just place = 5
    hope u understand,
    does it help if i placed the condition as another loop , will it mean the same things
    Attach are vi and some doucments, however as my vi contains PID tool kit as will as ni435x ni DC power which cannot be opened if you do
    not have these kits.......however mayb u can help to look at the portion of timing as this is the main problem i faced now.........
    Hope it is not too confusing for you to understand me...........
    i can only attach max 3, the next post i will attach 2 vis...........
    Attachments:
    Picture of check scan and without.rtf ‏15 KB
    With Check Scan.txt ‏4 KB
    Without Check Scan.txt ‏1 KB

    Thks Brian
    Attached are 3 VIs
    1.the first vi is the one with the check scan
    2. the next two vi the only diff is the placement of the where i put the elapsed time and time of each case.........(without check scan)--the first
    one is within the big loop, the other outside  big loop -- the purpose i did this is because when i run the vi with the timing in the big loop, the timing does not run continuously but "skip". for e.g. Denature time: from 0 . it jump to 5.15s without showing the running.............
    i will attached another 2 vi s in my next attachment
    Hope this clarifies a bit
    your help is really appreciated
    thks
    Attachments:
    PCR Control_State Machine_4 channel_Timing within Loop.vi ‏438 KB
    PCR Control_State Machine_4 channel_with_check scan.vi ‏443 KB
    PCR Control_State Machine_4 channel_Timing outside of loop.vi ‏442 KB

  • Same sqlID with different  execution plan  and  Elapsed Time (s), Executions time

    Hello All,
    The AWR reports for two days  with same sqlID with different  execution plan  and  Elapsed Time (s), Executions time please help me to find out what is  reason for this change.
    Please find the below detail 17th  day my process are very slow as compare to 18th
    17th Oct                                                                                                          18th Oct
    221,808,602
    21
    2tc2d3u52rppt
    213,170,100
    72,495,618
    9c8wqzz7kyf37
    209,239,059
    71,477,888
    9c8wqzz7kyf37
    139,331,777
    1
    7b0kzmf0pfpzn
    144,813,295
    1
    0cqc3bxxd1yqy
    102,045,818
    1
    8vp1ap3af0ma5
    128,892,787
    16,673,829
    84cqfur5na6fg
    89,485,065
    1
    5kk8nd3uzkw13
    127,467,250
    16,642,939
    1uz87xssm312g
    67,520,695
    8,058,820
    a9n705a9gfb71
    104,490,582
    12,443,376
    a9n705a9gfb71
    62,627,205
    1
    ctwjy8cs6vng2
    101,677,382
    15,147,771
    3p8q3q0scmr2k
    57,965,892
    268,353
    akp7vwtyfmuas
    98,000,414
    1
    0ybdwg85v9v6m
    57,519,802
    53
    1kn9bv63xvjtc
    87,293,909
    1
    5kk8nd3uzkw13
    52,690,398
    0
    9btkg0axsk114
    77,786,274
    74
    1kn9bv63xvjtc
    34,767,882
    1,003
    bdgma0tn8ajz9
    Not only queries are different but also the number of blocks read by top 10 queries are much higher on 17th than 18th.
    The other big difference is the average read time on two days
    Tablespace IO Stats
    17th Oct
    Tablespace
    Reads
    Av Reads/s
    Av Rd(ms)
    Av Blks/Rd
    Writes
    Av Writes/s
    Buffer Waits
    Av Buf Wt(ms)
    INDUS_TRN_DATA01
    947,766
    59
    4.24
    4.86
    185,084
    11
    2,887
    6.42
    UNDOTBS2
    517,609
    32
    4.27
    1.00
    112,070
    7
    108
    11.85
    INDUS_MST_DATA01
    288,994
    18
    8.63
    8.38
    52,541
    3
    23,490
    7.45
    INDUS_TRN_INDX01
    223,581
    14
    11.50
    2.03
    59,882
    4
    533
    4.26
    TEMP
    198,936
    12
    2.77
    17.88
    11,179
    1
    732
    2.13
    INDUS_LOG_DATA01
    45,838
    3
    4.81
    14.36
    348
    0
    1
    0.00
    INDUS_TMP_DATA01
    44,020
    3
    4.41
    16.55
    244
    0
    1,587
    4.79
    SYSAUX
    19,373
    1
    19.81
    1.05
    14,489
    1
    0
    0.00
    INDUS_LOG_INDX01
    17,559
    1
    4.75
    1.96
    2,837
    0
    2
    0.00
    SYSTEM
    7,881
    0
    12.15
    1.04
    1,361
    0
    109
    7.71
    INDUS_TMP_INDX01
    1,873
    0
    11.48
    13.62
    231
    0
    0
    0.00
    INDUS_MST_INDX01
    256
    0
    13.09
    1.04
    194
    0
    2
    10.00
    UNDOTBS1
    70
    0
    1.86
    1.00
    60
    0
    0
    0.00
    STG_DATA01
    63
    0
    1.27
    1.00
    60
    0
    0
    0.00
    USERS
    63
    0
    0.32
    1.00
    60
    0
    0
    0.00
    INDUS_LOB_DATA01
    62
    0
    0.32
    1.00
    60
    0
    0
    0.00
    TS_AUDIT
    62
    0
    0.48
    1.00
    60
    0
    0
    0.00
    18th Oct
    Tablespace
    Reads
    Av Reads/s
    Av Rd(ms)
    Av Blks/Rd
    Writes
    Av Writes/s
    Buffer Waits
    Av Buf Wt(ms)
    INDUS_TRN_DATA01
    980,283
    91
    1.40
    4.74

    The AWR reports for two days  with same sqlID with different  execution plan  and  Elapsed Time (s), Executions time please help me to find out what is  reason for this change.
    Please find the below detail 17th  day my process are very slow as compare to 18th
    You wrote with different  execution plan, I  think, you saw plans. It is very difficult, you get old plan.
    I think Execution plans is not changed in  different days, if you not added index  or ...
    What say ADDM report about this script?
    As you know, It is normally, different Elapsed Time for same statement in different  day.
    It is depend your database workload.
    It think you must use SQL Access and SQl Tuning advisor for this script.
    You can get solution for slow running problem.
    Regards
    Mahir M. Quluzade

  • How can I make a timer that will record elapsed time up to 15 hours with a PCI-6503E DAQ card?

    I'm a beginner LabVIEW programmer, but need to take measurements of elapsed time from the start of data acquisition for up to 15 hours. I'm using a PCI-6503E card. Looking at examples on the web and LabVIEW, itself, I was only able to find a way to take time measurements with a DAQ card up to 167 s, unless two counters were tied together, but there are no instructions on how to do that. Could someone help me? Thanks.

    I suggest you to look in the Resouce Library: inside it there is plenty of useful examples.
    I found this VI with two cascaded timers in the Measurement hardware > Counter/Timer > Event/Time Measurement cathegory:
    http://zone.ni.com/devzone/devzoneweb.nsf/opendoc?​openagent&5293158F4EC950C4862568C1005F6CD9&cat=C70​29C9ACBD3DF7386256786000F8EE6
    Hope this helps.
    Roberto
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • How to stop a while loop after certain time using Elapsed time vi

    how to stop a while loop after certain time using Elapsed time vi.

    Hi Frankie,
    Just place the Elapsed Time VI inside the WHILE loop, and wire the 'Time Has Elapsed' output to the conditional terminal in the lower right corner (which should be set to 'stop if true' by default).
    In the future, please post your LabVIEW questions to the LabVIEW Forum.  You have a much better chance of getting your questions answered sooner, and those answers can then help others who are searching the LabVIEW forums.  Thanks!
    Justin M
    National Instruments

  • Restarting a elapsed time function in a for loop

    Hello,
    I am having an issue while using an elasped time function inside of a while loop (I wire the Time has elapsed? boolean to the stop function of the while loop), that is consequently inside of a for loop.  The elapsed time function works correctly on its own in a while loop, but when added to a for loop will not reset for each iteration of the for loop.  I can post an example if it is needed, but has anyone run into this problem before?  I have tried wiring all the reset boolean's but I cannot get the timer to reset untill the for loop has finished.
    Any suggestions on how to achieve this another way are welcome.
    Thanks,
    Andrew

    I found the issue, I was using 2 timers inside of the for loop on the assumption that they are completely independant of one another....they are not.  if time has elapsed on one timer then it uses that time to start off the next timer, kind of a wierd behaviour but I guess I am not really using the timer in a normal manner.
    Andrew

  • Help with quit function and elapsed time function.

    I have this annoying assignment game here and I am almost finished with it. I got two problems, the first is that the quit function partly works it quits from the game but it is giving me a "Guess is to high" message. I've tried so many things but nothing seems to work.
    The other problem is that the elapsed time " *(long f = System.currentTimeMillis()/1000;)* " starts to count before you actually write something for example if you run the program without writing something for 5 minutes, the highscore list will show your time you finished the game + these 5 minutes.
    If somebody could give me a hint or could explain to me how I could fix these problems I would be very thankful.
    import java.util.*;
    class Game  {
         public static void main(String[] arg) {
              int RAN,Entered_number=0,count=0;
              String guess1[] = new String[1];
              int guess2[] = new int[1];
              int time[] = new int[1];
              String NP1[];
              int NP2[];
              int NP3[];
              int j=0;
              Scanner scan=new Scanner(System.in);
              Scanner kb = new Scanner(System.in);
              Random myRandomizer = new Random();
              RAN= Math.abs(myRandomizer.nextInt() % 1000) + 1;
              System.out.println("\t\t\t"+"Hello and welcome to this guessing game!");
              System.out.println("\t\t\t"+"Start guessing, it's a number between 1 and 1000...");
              System.out.print("--------------------------------------------------");
              System.out.println("-----------------------------");
              System.out.println("please enter your number:");
              String control="";//control is just a name for the variable. it's used to read in the whole line if you have written something that is not a number.
              String name="";
              String answer="";
              boolean okgame=true;//is used so that you can play the game as long as the variable okgame is true.
              long f = System.currentTimeMillis()/1000;
              while((Entered_number!=RAN) && okgame)//controls if the number is different then RAN and that okgame is true.
                   System.out.print(RAN);
                   System.out.print(">");
                   if(scan.hasNextInt())//checks in advance that what you have written is a number, if so then it can read it as Entered_number.
                        Entered_number=scan.nextInt();
                   else
                        control=scan.nextLine();//Reads int the whole line to control what has been written in.
                        if(control.equalsIgnoreCase("quit"))//if control is = quit, then compare to will return 0.
                             okgame=false; //if you have written quit okgame, you put in false to quit the game.
                             // Entered_number=0;//initiates entered_number all over again to show message stupid guess i wont count that.
                   if(okgame)//as long as okgame is true it will show the result otherwise you go to else to show that the game is finished.
                        if((Entered_number>RAN)&&(Entered_number>=1)&&(Entered_number<=1000))
                             System.out.println("Guess is too high!");
                             count++;
                        else if((Entered_number<RAN)&&(Entered_number>=1)&&(Entered_number<=1000))
                             System.out.println("Guess is too low!");
                             count++;
                        else if((Entered_number>1000)||(Entered_number<1))
                             System.out.println("Stupid guess! I won't count that...");
                        else if (Entered_number==RAN)
                             long p = System.currentTimeMillis()/1000;
                             count++;
                             System.out.println("****Guess is CORRECT!");
                             System.out.print("****You guessed it in"+" "+count+" guesses and ");
                             System.out.print(p - f);
                             System.out.println(" seconds.");
                             System.out.println("please enter your name:");
                             System.out.print(">");
                             name=kb.next();
                             System.out.println("Do you want to play again ?(y/n)"); 
                             System.out.print(">");
                             answer=kb.next();
                             if(answer.equalsIgnoreCase("n"))
                                  System.out.println("**** The game is over.");
                                  okgame=false;
                             if(answer.equalsIgnoreCase("y"))
                                  Random myRandom = new Random();
                                  RAN = Math.abs(myRandom.nextInt() % 1000) + 1;
                                  System.out.println("current high score list:");
                                  long ttime = p-f;
                                  int ta = (int)ttime;
                                  j++;
                                  if (j > 1){
                                       NP1 = new String[j];
                                       NP2 = new int[j];
                                       NP3 = new int[j];
                                       for (int n = 1; n < j; n++){
                                            NP1[n-1] = guess1[n-1];
                                            NP2[n-1] = guess2[n-1];
                                            NP3[n-1] = time[n-1];
                                       NP1[j-1] = name;
                                       NP2[j-1] = count;
                                       NP3[j-1] = ta;
                                       guess1 = new String[j];
                                       guess1 = NP1;
                                       time = new int[j];
                                       guess2 = new int[j];
                                       guess2 = NP2; 
                                       time = NP3;
                                       for (int w = 1; w < guess2.length; w++) {
                                            for (int x = 1; x < guess2.length; x++) {
                                                 if (guess2[x] < guess2[x-1]) {
                                                      int z4, z5,z6,z7;
                                                      String z2, z3;
                                                      z4 = guess2[x];
                                                      z5 = guess2[x-1];
                                                      guess2[x] = z5;
                                                      guess2[x-1] = z4;
                                                      z2 = guess1[x];
                                                      z3 = guess1[x-1];
                                                      guess1[x] = z3;
                                                      guess1[x-1] = z2;
                                                      z6 = time[x];
                                                      z7 = time[x-1];
                                                      time[x] = z7;
                                                      time[x-1] = z6;
                                       for (int al = 1; al < time.length; al++) {
                                            for (int o = 1; o < time.length; o++) {
                                                 if (guess2[o] == guess2[o-1]) {
                                                      if (time[o] < time[o-1]) {
                                                           int z4, z5, z6 ,z7;
                                                           String z2, z3;
                                                           z2 = guess1[o]; z3 = guess1[o-1];
                                                           z4 = guess2[o]; z5 = guess2[o-1];
                                                           z6 = time[o]; z7 = time[o-1];
                                                           guess1[o] = z3; guess1[o-1] = z2;
                                                           guess2[o] = z5; guess2[o-1] = z4;
                                                           time[o] = z7; time[o-1] = z6;
                                  else {
                                       guess1[j-1] = name;
                                       guess2[j-1] = count;
                                       time[j-1] = ta;
                                  System.out.println("Number\t\tName\t\tHigh Score\tTime (Seconds)");
                                  System.out.println("------\t\t----\t\t----------\t--------------");
                                  for (int h = 0; h < j; h++) {
                                       System.out.println(" " + (h+1) + "\t\t" + guess1[h] + "\t\t" + guess2[h] + "\t\t" + time[h]);
                                  System.out.println("");
                                  System.out.println("Start guessing, it's a number between 1 and 1000...");
                             count=0;
    //-----------------------------------------------------------------------------------------------------------------------------------------------------PS I'm not done with the comments yet so that could be a little confusing for you guys =P
    Thanks!
    /chill

    else {
                                       guess1[j-1] = name;
                                       guess2[j-1] = count;
                                       time[j-1] = ta;
                                  System.out.println("Number\t\tName\t\tHigh Score\tTime (Seconds)");
                                  System.out.println("------\t\t----\t\t----------\t--------------");
                                  for (int h = 0; h < j; h++) {
                                       System.out.println(" " + (h+1) + "\t\t" + guess1[h] + "\t\t" + guess2[h] + "\t\t" + time[h]);
                                  System.out.println("");
                                  System.out.println("Start guessing, it's a number between 1 and 1000...");
                                                                                               f=System.currentTimeMillis()/1000;////////////include this line here
                             count=0;
                   }

  • Processing in Time Loop with microseconds.

    Hello,
    I am make one application in Labview where I capture the frame of one camera and I processing the image. The camera is communicate with the board NI PCIe 1433 in the PC with camera link. This camera can work with one frame rate of 2000 fps. For processing every frame in the pc I need one time loop that work with microseconds. The problem is that this time loop only work with millisecond in Windows. If I use the module Real Time, Can I configure this time loop with microsecond or are there other solution?
    Thanks

    Thanks,
    The purpose of this is controller the application. In this timeloop I obtain the frame and I the processer. If I configure the timeloop with 1 ms I lose frames and if I configure the application with one normal loop I can obteain several time the same frame. The frame rate can change and with this change I configure the timeloop for controller all the time the captures, not lose any and not obtain replay.
     

  • Calculate elapsed time with VBS/PowerShell

    I'm trying to calculate MDT task sequence execution time. What could be the best method for this? It can be PowerShell or VBS code.
    Plan is to execute a script at the beginning of a task sequence that stores a start time in variable and at the end of task sequence execute another script that reads that start time from variable and calculates total time taken and saves it to another variable.
    I have tried few VB scripts but I have had some odd results some times with them. We are using 24 hour clock and it might have caused some problems for my previous scripts.

    I think you can enable monitoring and then validate from a console the elapsed time.  It's a slow morning so I also wrote something that would work in powershell for fun -
    param($start, $stop)
    $file = $(get-date -f mmddyyyy) + '_timer.log'
    $filepath = "$env:temp\$file"
    function Start-Time {
    if(test-path $filepath){
    Remove-Item -path $filepath -force
    else{
    New-Item -ItemType File -Path $filepath
    function Calculate-Time {
    if(!(Test-Path $filepath)){
    Write-Error "Calculate-Time: ERROR - Timer file was not found at path $filepath. Please validate you are running this script with the -start parameter before running with the -finish parameter."
    else{
    $fileinfo = gci $filepath
    $stime = $fileinfo.CreationTime
    $etime = (Get-Date)
    $time = New-TimeSpan -start $stime -end $etime
    return "Time from creation of file to finish is $time."
    function Main{
    if($start){
    Start-Time | Out-Null
    if($stop){
    Calculate-Time | Out-Null
    else{
    return "Main: You must provide a parameter to use this tool. Parameters are -start to start the timer or -stop to end the timer and calculate time elapsed."
    Main
    You can modify filepath at the top to set where it saves the file.  What it does is creates a file in the environment temp directory and then uses that file creation time against current date/time to give you a duration.  Parameter -start creates
    the file starting the timer and parameter -stop finds that file and calculates the difference in time between creation and current time.  Either way I needed to get some powershell practice and maybe this will help you. 
    Ryan

Maybe you are looking for

  • BOMBOS interface "warning" message after changes saved in the BOM.

    Hello, We our client is facing an issue, regarding BOM change / Modification in CS02. After any modifications saved in the BOM (transaction CS02), in SLG1 transaction system gives u201Cwarning messageu201D as given below. 1.     Entry already exists

  • SSRS Subscription.

    Hi, In my old scenario the report subscriptions are trigger from JOB from SQL name as "sp_start_job" and after trigger happen subscription will be done the file generated in path. Here  don't have input parameters. This job will be handled from withi

  • Adobe Reader XI privilege escalation

    ...I know, this is not really a privilege escalation in the classical way... Hi. With both the current versions of Adobe Reader X and XI, standard users are able to repair adobe reader going via appwiz.cpl/control panel. Problem is: if reader is open

  • Need help please guys :(

    Hey all, i'm trying to follow along to this video, https://www.youtube.com/watch?v=AGSYg3QZcp8 i'm doing everything he says up until about 3mins30secs where i need to copy the mask over to the cracks layer, it just completley over writes my cracks- i

  • Error at starting disk

    hi. when i check my macbook using install disk A and using disk utilities to check it, it says i have an error in a volume. then i repair it and it says that a volume HFS has been repaired but it couldn´t repair a volume. then i ask to check again an