Usage¶
To use socketscpi in a project:
import socketscpi
To create an instrument object, do something like this:
ipAddress = '192.168.1.123'
instrument = socketscpi.SocketInstrument(ipAddress)
To send SCPI commands and queries to the instrument, do something like this:
instrument.write('*rst')
instrument.query('*opc?')
To check for and print out errors, do something like this:
try:
instrument.err_check()
except socketscpi.SockInstError as e:
print(str(e))
When you’re finished communicating with your instrument, close it gracefully like this:
instrument.close()
SocketInstrument¶
socketscpi.SocketInstrument(host, port=5025, timeout=10, noDelay=True, globalErrCheck=False, verboseErrCheck=True)
Class constructor that connects to the test equipment and returns a SocketInstrument object that can be used to communicate with the equipment.
Arguments
host
(string)
: Instrument host IP address. Argument is a string containing a valid IP address.port
(int)
: Port used by the instrument to facilitate socket communication (Keysight equipment uses port 5025 by default).timeout
(int)
: Timeout in seconds. This is how long the instrument will wait before sending a timeout error in response to a command or query. Argument is an int. Default is10
.noDelay
(bool)
: True turns on the TCP_NODELAY flag, which sends data immediately without concatenating multiple packets together. Just leave this alone.globalErrCheck
(bool)
: Determines if error checking will be done automatically after calling class methods.verboseErrCheck
(bool)
: Determines if verbose error checking will be attempted.
Returns
socketscpi.SocketInstrument
: Instrument object to be used for communication and control.
write¶
SocketInstrument.write(cmd)
Writes a command to the instrument.
Arguments
cmd
(string)
: Documented SCPI command to be sent to the instrument.
Returns
- None
read¶
SocketInstrument.read()
Reads the output buffer of the instrument.
Arguments
- None
Returns
(string)
: Contents of the instrument’s output buffer.
query¶
SocketInstrument.query(cmd)
Sends query to instrument and reads the output buffer immediately afterward.
Arguments
cmd
(string)
: Documented SCPI query to be sent to instrument (should end in a “?” character).
Returns
(string)
Response from instrument’s output buffer as a latin_1-encoded string.
err_check¶
SocketInstrument.err_check()
Prints out all errors and clears error queue. Raises SockInstError with the info of the error encountered.
Arguments
- None
Returns
- None
query_binary_values¶
SocketInstrument.query_binary_values(cmd, datatype='b')
Sends a query and parses response in IEEE 488.2 binary block format.
Arguments
cmd
(string)
: Documented SCPI query that causes the instrument to return a binary block.datatype
(string)
: Data type for the returned data. Uses the same naming convention used by Python’s built-instruct
module. Generally, test equipment includes a command to configure the data type of binary blocks, and the instrument’s data type should match the data type used here. Default is'b'
, which specifies a signed 8 bit integer.
Returns
(NumPy ndarray)
Array containing the data from the instrument buffer.
write_binary_values¶
SocketInstrument.write_binary_values(cmd, data)
Sends a command and payload data in IEEE 488.2 binary block format.
Arguments
cmd
(string)
: SCPI command used to send data to instrument as a binary block.data
(NumPy ndarray)
: Data to be sent to the instrument. Refer to the documentation of the SCPI command being used for correct argument formatting.esr
(bool)
: Determines whether to append an ESR query to the end of the binary block write for error checking purposes.
Returns
- None