GPIB

From SweepMe! Wiki
Jump to navigation Jump to search

SweepMe! relies on the pyvisa module [1].

Requirements

  • Install the latest version of ni-visa runtime [2]
  • Install the driver of your GPIB interface card or USB adapter which you get from the manufacturer
    • National Instruments [3]
    • Keithley/Tektronix KUSB-488B [4]
    • Keithley/Tektronic KUSB-488A [5]
    • Keysight [6]

Alternative adapters

Besides using GPIB via a visa runtime and an appropriate controller, there are alternative controllers that can be connected via COM port or ethernet and that translate the commands on the controller.

Prologix controller

Beginning with SweepMe! 1.5.5, we will support the GPIB-USB controller from Prologix [7]. Commands are sent via COM port to the controller. To configure it, go to menu 'File' -> 'Options' -> 'Ports' and select "Add port". Type in the COM port at which the Prologix controller appears. Check the device manager to find the correct port, e.g "COM7". This port will be added permanently for all users. Thus, make sure that the COM port does not change by giving it a fixed port number. You can remove a port using "Remove port". Once you added a COM port, you can find new GPIB resources in the port manager or when you press 'Find ports' button of a module that loads a device class that support GPIB. The new resources looks like "GPIB::20::Prologix@COM7" if you added COM7 as a Prologix controller port. You can add multiple COM ports if you have multiple Prologix adapters.

The Prologix GPIB-ETHERNET adapters are not yet supported but it can be done on request.

Limitations

During our tests, we saw that the Prologix GPIB adapters work smoothly. However, they achieved a somewhat lower number of readings. For example, we achieved reading 4 measurement points per second while we achieved 10 readings per second with a standard GPIB-USB adapter. Furthermore, if a large amount of data is transferred, it might be that the buffer of the FTDI USB driver is filled which has a size of about 4KB. The maximum read timeout seems to be 3s and if an instruments responds after a longer time, e.g. because it is averaging, one might need to use other program commands that immediately respond, e.g. "is_average_complete" before the final result is called.