python 通过RS-232 + SCPI从Keithley 2015读取DCV

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 通过RS-232 + SCPI从Keithley 2015读取DCV相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python3
import serial
import io
import time


def scpi_write(ser, s, term = '\r'):
    ser.write(str.encode(s))
    if term:
        ser.write(b'\r')
    ser.flush()

def scpi_read(ser):
    
    buf = []

    while True:
        c = ser.read(1)
        #print('read: ', repr(c))
        if c == b'\r':
            s = b''.join(buf).decode('ascii')
            #print("returning", repr(s))
            return s
        else:
            buf.append(c)


if __name__ == '__main__':
    ser = serial.Serial('/dev/ttyUSB2', 19200, timeout=2)
    print(ser)

    while True:
        print('canceling')
        scpi_write(ser, '\x03', None)
        resp = scpi_read(ser)
        print(repr(resp))
        if resp == 'CL\x11':
            break
        if resp == 'DCL\x11':
            break

    scpi_write(ser, ':SYSTem:VERSion?')
    resp = scpi_read(ser)
    print('response: {}'.format(repr(resp)))

    scpi_write(ser, ':SENSe:VOLTage')

    while True:
        scpi_write(ser, ':SENSe:DATA?')
        resp = scpi_read(ser)
        now = time.time()
        print('{:0.6f},{}'.format(now, resp))

以上是关于python 通过RS-232 + SCPI从Keithley 2015读取DCV的主要内容,如果未能解决你的问题,请参考以下文章

Python监听串口(RS-232)握手信号

“操作方法”:监听通过 RS232 到 USB 的数据 [关闭]

rs232转rs422电路原理图

如何将RS232接收到数据写入EXCEL

如何在测量过程中将数据存储在 Keithley2400 缓冲区中并通过 rs232 检索?

使用 Python 串行库处理从串口读取的原始数据?