Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Trigger a measure on Digital I/O change on Keithley 3706

I'm kinda new to LabVIEW and have a question. I want to set up an application that starts a measure with the 3706 when it receives a pulse from another Keithley instrument (2602) over the TSP-Link connector. I have tried to set up a dynamic event structure to capture the pulse, but when the pulse occurs, it does not respond. I have checked for the presence of the pulse with a scope, so I know the other equipment is producing what I need.

 

Any assistance would be greatly appreciated.

 

Regards

0 Kudos
Message 1 of 6
(5,114 Views)

Hi estarkey,

 

Have you tried highlighting execution in your code to see if the event structure fires? Also, is there a reason you're dynamically registering that event? You can use any controls/indicators on your block diagram as events without having to dynamically register them.

 

Where did you obtain the 3706 driver? I checked our instrument driver network and could not find these VIs

Justin E
National Instruments R&D
0 Kudos
Message 2 of 6
(5,093 Views)

I have highlighted execution and it goes to the event structure and just stops. Then I can manually make the other instrument produce a pulse and it is present on the 3706, just not detected in LabVIEW. I was under the impression I would have to use a dynamic event structure to detect any event that is not an action on a front panel control. Since the pulse from the other instrument can come at any time, and I have to detect the pulse by using a VI which reads the port, I thought that this would be the way to do it.

 

I guess this would even be a broader problem as to how to determine any external asynchronous event, which can happen in test stand systems that interface with external hardware (loaders, hoppers, etc.). I have used the DAQ SA examples which go over this, but seeing this transferred to instruments is difficult to find info on.

 

Oh, by the way, I got the 3706 LabVIEW driver from Keithley's website.

 

Thanks again for your time Justin_E!!

 

Regards

 

 


0 Kudos
Message 3 of 6
(5,086 Views)

Hey,

 

In looking at your program, I saw that the ke37xx TSP-Link Trigger Control.vi runs once, and outputs a value to the Channel Ready Trigger. After this VI is called, the event is registered and the event structure waits for the event. The problem with this is that the TSP-Link Trigger Control VI is never called after the event is registered, so it makes sense that the Event Structure never catches that event and just hangs. Do you want to call the TSP-Link Trigger Control once, or do you want to call it multiple times? If you want to call it more than once, you'll have to put it inside some sort of while loop. 

Justin E
National Instruments R&D
0 Kudos
Message 4 of 6
(5,057 Views)
But if I place that VI in a loop, the VISA bus will be swamped with comm traffic, effectively making and event solution a into a polling loop? This seems to go against the logic of the event model. Is there another way that this can be accomplished?
0 Kudos
Message 5 of 6
(5,003 Views)
You don't need to have the VISA communication inside the same while loop as the event structure. You can have a second while loop that performs this task if it makes things more efficient for your program. You can also set a timeout value in the top left of your event structure to indicate how long to wait on that structure for an event to occur, if you want to keep everything within one loop. Yes it will poll, but you can specify how long it will wait.
Justin E
National Instruments R&D
0 Kudos
Message 6 of 6
(4,980 Views)