LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

difference between low level and high level with visa

I have to use a pxi board on a RT rack (1000B)
this board work up very well under linux  ie: we send  a command (in fact  an array) and then we poll a flag
and we get back  the results (we wait about 70-90 us) all is ok under linux
But under my PXI rack  i use the high level visa functions to open visa session and VISA Move Out 32 to  copy my command array
and i notice that the flag put 2ms to react .I can't explain this . I do exactly the same protocol of  linux programer
Is it the high level who produce these effects
If i use low level function i will find the same behaviour that under linux
What the difference between high and low level VISA functions
Thanks For your help
chris
0 Kudos
Message 1 of 7
(4,830 Views)
When you do a series of high level register access (i.e. VISA Out32 , the function probably does a VISA map address every time and it probably does a VISA unmap address every time. When you do a series of VISA low level functions (i.e. VISA Poke 32), you only do the map and unmap once at the beginning and end.
Message 2 of 7
(4,809 Views)
So, if it is like what you say, what the advantage of high level visa applications, just wondering.
0 Kudos
Message 3 of 7
(4,801 Views)
The same advantage of using other high level functions or VIs. If you're doing a single read or write, you can have a single icon on the block diagram. Many other VIs (File I/O, DAQ, instrument drivers) consist of lower level functions that open, read, write, close. If you only need to do this once or twice, the additional overhead is usually not noticed. If you call a lot of high level functions, then you can optimize by using the low level calls instead.
Message 4 of 7
(4,797 Views)
I've read  this  messages  with  interest.
First of all, sorry for my english, i'm an italian student. Smiley Tongue
I would like to know if there are differences in the access of registers shared by several devices using low level or high level visa vi.
Thanks very much.
0 Kudos
Message 5 of 7
(4,707 Views)
I'm not sure I understand 'registers shared by several devices'. Each device will have a unique VISA Resource Name and that is what will determine which device gets written to. I've got one system with 12 identical devices and I used a mix of high and low level VISA functions.
0 Kudos
Message 6 of 7
(4,688 Views)
I've to say again: sorry for my english. :womansad:
I've found the answer to my problems in the NI-VISA user manual.

"Accessing Multiple Address Spaces
You can use LLA operations to access only the address space currently
mapped. To access a different address space, you need to perform a
remapping, which involves calling viUnmapAddress() and
viMapAddress(). Therefore, LLA programming becomes more
complex, without much of a performance increase, for accessing several
address spaces concurrently. In these cases, the HLA operations are
superior.
In addition, if you have several sessions to the same or different devices all
performing register I/O, they must compete for the finite number of
windows available
. When using LLA operations, you must allocate the
windows and always ensure that the program does not ask for more
windows than are available. The HLA operations avoid this problem by
restoring the window to the previous setting when they are done. Even if all
windows are currently in use by LLA operations, you can still use HLA
functions because they will save the state of the window, remap, access, and
then restore the window. As a result, you can have an unlimited number of
HLA windows."

But how many windows are available?

Thanks very much fot your patience!

Message Edited by Alessio Zanetti on 07-18-2006 10:08 AM

Message 7 of 7
(4,680 Views)