Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

gpib

Solved!
Go to solution

Hi gurus,

 

I am faced with a slight problem. I am currently communicating with a control box through GPIB. This control box has a specific GPIB address but about 18  channels. The issue seems to be that I am getting timeout errors or labview lockup/running slow when trying to communicate to more than one channel simultaneously.  My understanding was that most instruments should "buffer" several commands so this shouldn't be a problem ? or should it? I would like to know if  there is a vi or method I can use to check if the GPIB is currently communicating so that I can wait until its free to communicate with a different channel?

 

I should note that I have these GPIB calls in seperate while loops so I guess it is possible that there is some semi-syncronous calls to several channels on the same address so perhaps that is the problem. 

 

In short I think what i'm trying to do is something like.... if (gpib not active) then send gpib command else do nothing.....

 

Thanks for any help.

 

 

 

0 Kudos
Message 1 of 3
(3,464 Views)
Solution
Accepted by topic author resrchengee
All of your assumptions are incorrect. You cannot do communication in parallel and I'm not aware of instruments doing any sort of buffering. You need to establish some sort of syncrhonization so that only one write/read is done at a time. One way is with semaphores. Another way is provided by the VISA Lock/Unlock functions. Look in the example finder for both.
Message 2 of 3
(3,460 Views)

Thanks!

 

I'll look into both of those tommorow. Thank you for your time.

0 Kudos
Message 3 of 3
(3,457 Views)