Skip to main content

An easy library for controlling SCPI instruments.

Project description

Easy SCPI

A simple and robust library making communication with SCPI (Standard Control of Programmbale Instruments) instruments easy. After creating an instrument object that connects to an actual instrument, commands are sent to the instrument using a property-like format. This class is useful for inheritance when creating a controller for a specific instrument. Communication with instruments is done with PyVISA.

Install

python -m pip install easy-scpi

API

SCPI Commands

Generic SCPI commands can be executed by transforming the SCPI code in to attributes via the hierarchy relationship, then calling it. Instrument properties can be queried by passing no arguments to the call (or specifying query=True). Commands with no arguments are run by passing an empty string to the call.

Examples

For more examples see the examples folder.

Basic

# import package
import easy_scpi as scpi 

# Connect to an instrument
inst = scpi.Instrument(<port>)
inst.connect()

# Read the voltage [MEASure:VOLTage:DC?]
inst.measure.voltage.dc()
# or
inst.meas.volt.dc()

# Passing args to a query [MEASure:VOLTage:DC? MIN]
inst.measure.voltage.dc("MIN", query=True)

# Set the voltage to 1 V [MEASure:VOLTage:DC 1]
inst.measure.voltage.dc(1)
# or
inst.source.voltage('1')

# Execute a command to take a reading [SYSTem:ZCORrect:ACQuire]
inst.syst.zcor.aqc('')

Full

For use with Tektronix PWS4305

import easy_scpi as scpi

class PowerSupply( scpi.Instrument ):
    def __init__( self ):
        super().__init__( 
            port = None, 
            timeout = 5000,
            read_termination = '\n', 
            write_termination = '\n' 
        )

        # other initialization code...

    @property        
    def voltage(self):
        """
        Returns the voltage setting.
        """
        return self.source.volt.level()
    
    @voltage.setter
    def voltage(self, volts):
        """
        Sets the voltage of the instrument.
        """
        self.source.volt.level(volts)
    
    @property
    def current(self):
        """
        Returns the current setting in Amps
        """
        return self.source.current.level()
        
    @current.setter
    def current(self, amps):
        """
        Set the current of the instrument
        """
        self.source.current.level(amps)
    
    def on(self):
        """
        Turns the output on
        """
        self.output.state('on')
        
    def off(self):
        """
        Turns the output off
        """
        self.output.state('off')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easy_scpi-0.1.7.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

easy_scpi-0.1.7-py2.py3-none-any.whl (11.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file easy_scpi-0.1.7.tar.gz.

File metadata

  • Download URL: easy_scpi-0.1.7.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for easy_scpi-0.1.7.tar.gz
Algorithm Hash digest
SHA256 0f2ceb898acb7b34b1a0038f3ffc8918ed741133b39584ca79b7332eff96566b
MD5 c476f49f97b2e3fd2d77e9d88ff54f01
BLAKE2b-256 f974f6eb533dc6d61a8edfbe609bb52354047b8d7cf2fa4dac6cea244fd1b517

See more details on using hashes here.

File details

Details for the file easy_scpi-0.1.7-py2.py3-none-any.whl.

File metadata

  • Download URL: easy_scpi-0.1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for easy_scpi-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f69dba785acf83a5da6b09d54a400127732c9e27228e28243d198dc28d117846
MD5 1b752c48f0d691df5b71e827728d83bc
BLAKE2b-256 273276b8bc505b28b40a9835a04ff62d47b006fd88600a5e7d8d07d3235f74d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page