VISA control of oscilloscope

I am having problems using the Igor VISA XOP to control an oscilloscope with a peer-to-peer Ethernet connection.

Configuration: PC with WindowsXP, IP6.04; IP set to
Scope - TEK TDS 3054B; IP set to
peer-to-peer LAN connection with cross-over CAT5 Ethernet cable. No other internet, switch, or router connections.

Using the DOS command window, I can successfully ping the scope (send and receive test packets).

When I try the Igor example experiment to test the VISA XOP, the scope is not recognized.

I would appreciate any ideas on how to proceed.
Not sure if this helps, but it's possible to control a LeCroy oscilloscope using the SOCKIT XOP (, which can be used for TCPIP connections. Thus if you know the commands you need you can construct a message to send to the oscilloscope.
When I last looked at it (2006), TekVISA did not support TCP/IP (as noted in the VISA XOP Help file).

NI VISA did support TCP/IP.

And of course you need to get the resourceName string right.

In response to andyfaff, I wanted to start with some higher level commands that I hoped would be available through the Igor VISA XOP and demo. If this does not work, I may try the SOCKIT route.

I believe Howard's comment about TCP/IP is no longer valid. Tek provides an "OpenChoice" application that gives a GUI to control the scope through a LAN connection, using TekVISA ( and NI VISA, they claim). I have just successfully tried this with TekVISA; OpenChoice provides a search option that comes up with two addresses (using the LAN cross-over connection):


Both addresses seem to work, and waveform data transfer using their application is remarkably easy.

I was under the impression that the Igor demo pxp had a function that was supposed to discover connected instruments. In view of the findings above, are there reasons this should not work?

Stephen R. Chinn
I have had partial success with the IP6.04 demo function "Test_viFindRsrc()". It properly reports the same two instruments strings returned by the Tektronix utility. I had to change "ASLR?*INSTR" to "TCPIP?*INSTR" in that function.

The "test()" function also works, after using the string resourcename = "TCPIP::"

The rest of the functions still generate errors. My guess is that this relates to the constants defined in VISA.ipf. Either some need to be added to refer to the proper TCPIP instrument resource, or I need to edit the existing calls in the demo functions.

Any suggestions?

Stephen R. Chinn
With help from Howard Rodstein and Tek, I was able to set up a convenient control/data-transfer link between a laptop PC and a Tek scope (TDS3054B), using Igor's VISA XOP over a LAN connection. This was motivated by the requirement for readily fieldable, near-real-time test data analyis (with the PC using IP6.04). The functionality is much like using GPIB, but without the requirement for the bulky GPIB connectors, cables, or interface cards. All you need are LAN connectors on the scope and PC, and VISA installed on the PC. The scope should have configurable network settings and be VISA compliant.

There are data formatting issues that may differ from scope to scope. I pass on the following general observations:
(1) Use binary waveform data transfer. ASCII is unacceptably slow.
(2) I used TekVISA, which comes with a nice utility called OpenChoice Call Monitor for background recording of all VISA calls and data transfers. Tek claims that NI VISA should also work (but perhaps with a limited set of functions).
(3) Igor Tech Note #19 about GPIB is useful in understanding the Igor VISA programming structure, with the GPIB functions getting replaced with VISA functions, or their closest equivalent.

My code is presently not user friendly, but I would be happy to provide more details to those interested (

Stephen R. Chinn