LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Refresh rate for Numeric Indicator

I have application that displays 60 16 bit word of data in Hex format on the screen simulatanousely as I receive block of data at at approximately 10,000 times a second through USB. Obviously, at this 10,000Hz rate, it is an over-kill in terms of the human eye visually processing at that rate. Does anyone know what is the screen update rate for numberic indators and is there a way of controlling it. I was trying to see if I could set it for 10Hz.
 
Thanks.
Paul  
0 Kudos
Message 1 of 11
(7,851 Views)
The screen update rate depends on your CPU and graphics card. There is no setting in the indicator to set the update rate.
What you can do is to put the terminal into a case structure and run the case with the terminal when a timeout expires. There is a Express VI "Elapsed Time" which allows you to manage the timeout.
Waldemar

Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions
0 Kudos
Message 2 of 11
(7,842 Views)

If you wire directly to the terminal, or to a local variable, Labview updates the visible value only around 30 times a second. You do not have to do anything.

If you use a property node, value ,Labview updates the visible value every time the property is called. (do not do it)

0 Kudos
Message 3 of 11
(7,821 Views)
By default, indicators are updated at a suitable rate, independent on how many time you write to the terminal. (You could set the indicator to "synchronous display" if you want to force an update with each write operation, so don't do that!)
 
You can always reduce the update rate further by placing the terminal inside a case structure that only turns true every 100ms. How are you reading the data?
0 Kudos
Message 4 of 11
(7,810 Views)

I realize this is an old thread but...

 


@Pnt wrote:

If you wire directly to the terminal, or to a local variable, Labview updates the visible value only around 30 times a second. You do not have to do anything.

If you use a property node, value ,Labview updates the visible value every time the property is called. (do not do it)


 

Is there a way to write to a control through a reference (i.e. property node) while maintaining the behavior of writing directly to the terminal (i.e. it updates at an appropriate rate)?

 

Thanks.

 

 

0 Kudos
Message 5 of 11
(7,458 Views)

Yes, you can use the Value property to write to a control "asynchronously" (using your basic intention). You can also use a local variable, which would actually be faster. Either way, make sure you do not cause a race condition (i.e., read from the control before it's been written).

0 Kudos
Message 6 of 11
(7,452 Views)

 


@smercurio_fc wrote:

Yes, you can use the Value property to write to a control "asynchronously" (using your basic intention).


Maybe we are not talking about the same thing, but It was my impression that value property nodes execute synchronously.

 

(Of course you could defer panel updates, but that does not sound like such a good idea. 😉

 

0 Kudos
Message 7 of 11
(7,437 Views)

Yeah, we're not talking about the same thing. I was (loosely) using the term "asynchronously" (hence putting it in quotes) to mean to update the control "on-demand", as opposed to continously updating in the loop that he has, which I assumed he had based on his description. Although I wasn't quite sure about why this was being done with a control, as opposed to an indicator, but I assumed it might have been a typo.

0 Kudos
Message 8 of 11
(7,432 Views)

I use the Defer Panel Updates Property to update the Front Panel "On-Demand". Whenever I want to update it, I will first set it to False and update the indicator, while in other cases I will set it to True.

 

Defer Panel Updates.png

-FraggerFox!
Certified LabVIEW Architect, Certified TestStand Developer
"What you think today is what you live tomorrow"
0 Kudos
Message 9 of 11
(7,413 Views)

Let me clarify my question:

 

I have a project which could send data to the screen at a rapid rate (think oscope).  I do not want this to slow down the program more than necessary.  The data will be grabbed in a loop and displayed to the screen (and possibly enqueued for extra processing). 

 

It is my understanding that if I simply wire it to an indicator (yes I suppose this was a typo) or local variable it will be handled nicely, i.e. sent to an update buffer to handle screen updates at an appropriate rate.

 

However I would like to encapsulate my GUI (either using an action engine with USRs or a class) and so was planning on having references to all my controls and indicators within this encapsulation.

 

So again, my question is this: Is there a way to write to an indicator (or control) via the reference while still having the advantages (speed/display buffer) of a local variable?

 

Secondary question:

 

Where is the best place to find information on all the various efficiencies LabVIEW has built in.  For example, in my last project I was actually writing my data to a separate queue which was dequeued in a loop with a built in delay and only the most recent item was written to the screen and the rest deleted.  In other words, I had no idea LabVIEW already handled this in the background and I would like to know what else LabVIEW already takes care of for me.

 

Thanks.

0 Kudos
Message 10 of 11
(7,392 Views)