编程语言
首页 > 编程语言> > python篇-程控电源

python篇-程控电源

作者:互联网

# coding:utf-8
from datetime import *

import pyvisa, os, pyautogui, time, wexpect

def clear():
    pyautogui.click(500, 100, duration=1)

    pyautogui.dragRel(-495, duration=1)

    count = 0
    while count < 2:
        pyautogui.press('backspace')

        time.sleep(0.1)

        count += 1

    print('clear end')

def ping(host):
    try:
        p = wexpect.spawn('ping -n 1 ' + host)
        p.expect('TTL=', timeout = 5)
    except:
        return 1

    return 0

def adbdevices(deviceid):
    try:
        p = wexpect.spawn('adb devices')
        p.expect(deviceid, timeout=5)
    except:
        return 1

    return 0

def printp(p):
    print(p.before, end='')
    print(p.after, end='')

def setv(v):
    inst.write(':VOLT ' + str(v))
    #clear()
    #pyautogui.typewrite(':VOLT ' + str(v))

    #pyautogui.press('enter')

def read():
    i = inst.query('MEAS:CURR?')
    v = inst.query('MEAS?')

rm = pyvisa.ResourceManager()
inst = rm.open_resource('USB0::0x1AB1::0x0E11::DP8D234500333::INSTR')

SCPI 标准命令
4.3.1IEEE488.2共同命令

*CLS

*ESE

*ESE?

*ESR?

*IDN?

*OPC

*OPC?

*PSC

*PSC?

*RST

*SRE

*SRE?

*STB?

*SAV

*RCL

 

4.3.2SCPI标准命令

SYSTem

:ERRor?

:VERSion?

:BEEPer[:IMMediate]

:ADDRess?

STATus

:QUEStionable

:ENABle 

:ENABle?

[:EVENt]?

:CONDition?

:OPERation

:ENABle 

:ENABle?

[:EVENt]?

:CONDition?

:INSTrumenu

[:EVENt]?

:ENABle 

:ENABle?

CONDition?

INSTrument

[:SELect] {FIRst|SECOnd|THIrd}

[:SELect]?

NSELect {1|2|3}

NSELect?

OUTPut

[:STATe] {0|1}

[:STATe]?

[SOURce:]

CURRent[:LEVel][:IMMediate][:AMPLitude] {|MIN|MAX}

CURRent[:LEVel][:IMMediate][:AMPLitude]? {MIN|MAX}

VOLTage[:LEVel][:IMMediate][:AMPLitude] {|MIN|MAX}

VOLTage[:LEVel][:IMMediate][:AMPLitude]? {MIN|MAX}

VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude]

VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude]?

非SCPI标准命令

CALibration

:SECure[:STATe] {ON|OFF,}

:SECure[:STATe]?

:VOLTage

LEVel 

[:DATA] 

:CURRent

LEVel 

[:DATA] 

:CODE

:SAVe

:INITital

:OUTPut

:TIMer

:DATA 

:DATA?

SYSTem

:LOCal

:REMote

:RWLock

DISPlay:

[:WINDow][:STATe] {OFF|ON}

[:WINDow][:STATe]?

MEASure[:SCALer]

:CURRent[:DC]?

[:VOLTage][:DC]?

:POWer[:DC]?

 

 

 

 

SCPI解释

IEEE488.2共同命令

*CLS

这条命令清除下面的寄存器:标准事件寄存器、查询事件寄存器、操作状态寄存器、操作状态子寄存器、状态字节寄存器的错误信息。

命令语法:*CLS。

例:*CLS

*ESE

这条命令编辑了标准事件使能寄存器的值。编程参数判定了标准事件寄存器中哪些位为1时将会引起状态字节寄存器中ESC位置1。

命令语法:*ESE <</span>参数>

参数:0~255

上电值:参考*PSC命令。

例:*ESE 110

*ESR?

这条命令可以用来读取标准事件寄存器的值。在该命令被执行后,标准事件寄存器的值被清零。标准事件寄存器的位与标准事件使能寄存器的位定义相同。

命令语法:*ESR?

返回参数:

例:*ESR?

*IDN?

这条命令可以读电源的相关信息,它返回的参数包含了四个段。

命令语法:*IDN?

返回参数:”制造商“,”产品标号“,”产品序列号“,”软件版本号“。

例:ITECH,6322,000000000000111101,V1.68

*OPC

当在这条命令这前的所有命令被执行完成后,标准事件寄存器的OPC位被置1。

命令语法:*OPC

上电值:参考*PSC命令。

例:*OPC

*PSC

该命令用来控制当电源上电时是否会产生一个服务请求。

1|ON:当电源上电时,所有使能寄存器的值被清零。

0|OFF:当电源上电时。所有使能寄存器的值为上次保存的值。

命令语法:*PSC <</span>参数>

参数:0|1|ON|OFF

上电值:上次保存的值。

例:*PSC ON

*RST

这条命令复位电源所有的参数到出厂状态。

命令语法:*RST

例:*RST

*SRE

这条命令编辑了状态位组使能寄存器的值。编程参数决定了状态位组寄存器中哪些位为1

时将会引起状态位组寄存器中RQS位置1。状态位组使能寄存器的位定义与状态位组寄存

器的位定义相同。

命令语法:*SRE <</span>参数>

参数:0~255

上电值:参考*PSC命令。

例:*SRE 110

*STB?

这条命令用来读取状态字节寄存器的值。在该命令被执行后,状态字节寄存器的值被清零。

命令语法:*STB?

返回参数:

例:*STB?

*SAV

这条命令用来保存电源的当前用户设定值(当前电流、电压、最大电压、步进位)到指定

单元。

命令语法:*SAV <</span>参数>

参数:0~49

例:*SAV 10

*RCL

这条命令将从指定单元中恢复*SAV命令保存的设定值。

命令语法:*RCL <</span>参数>

参数:0~49

例:*RCL 10

 

SCPI标准命令

 

SYSTem:ERRor

这条命令用来读取电源的出错信息。

命令语法:SYSTem:ERRor?

返回参数:参见表5

例:SYST:ERR?

SYSTem:VERSion

这条命令用来查询软件的版本号。

命令语法:SYSTem:VERSion?

返回参数:软件的版本号。

例:SYST:VERS?

SYSTem:BEEPer

这条命令用来测试蜂鸣器,执行后电源应鸣叫一声。

命令语法:SYSTem:BEEPer[:IMMediate]

例:SYST:BEEP

SYSTem:LOCal

这条命令用来设置电源为本地操作状态。

命令语法:SYSTem:LOCal

例:SYST:LOC

SYSTem:REMote

这条命令用来设置电源为远程操作状态。

命令语法:SYSTem:REMote

例:SYST:REM

SYST:RWLock

这条命令也是用来设置电源为远程操作状态的。但与上一条不同的是,本命令无法在电源上按(LOCATE)键切换到本地操作状态,需用命令才能恢复。

命令语法:SYSTem:RWLock

例:SYST:RWL

SYSTem:ADDRess

这条命令用来查询电源的本机地址。

命令语法:SYSTem:ADDRess?

例:SYST:ADDR?

STATus:QUEStionable:ENABle

这条命令编辑了查询事件使能寄存器的值。编程参数决定了查询事件寄存器中哪些位为

1时将会引起状态位组寄存器中QUES位置1

命令语法:STATus:QUEStionable:ENABle <</span>参数>

参数:0~255

上电值:参考PSC命令。

例:STAT:QUES:ENAB 110

STATus:QUEStionable:ENABle?

这条命令用来读取查询事件使能寄存器的值。该命令被执行后,查询事件使能寄存的值

被清零。

命令语法:STATus:QUEStionable:ENABle?

返回参数:

例:STAT:QUES:ENAB?

STATus:QUEStionable?

这条命令可以用来读取查询事件寄存器的值。在该命令被执行后,查询事件寄存器的值

被清零。

命令语法:STATus:QUEStionable[:EVENt]?

返回参数:。

例:STAT:QUES?

STATus:QUEStionable:CONDition?

这条命令可以用来读取查询条件寄存器的值。当查询条件寄存器中某位的值变化时,则

查询事件寄存器中对应的位被置1

命令语法:STATus:QUEStionable:CONDition?

返回参数:

例:STAT:QUES:COND?

STATus:OPERation ENABle

这条命令编辑了操作事件使能寄存器的值。编程参数决定了操作事件寄存器中哪些位为

1时将会引起状态位组寄存器中OPER位置1。

命令语法:STATus: OPERation:ENABle <</span>参数>

参数:0~255

上电值:参考PSC命令。

例:STAT:OPER:ENAB 110

STATus:OPERation:ENABle?

这条命令可以用来读取操作使能寄存器的值。在该命令被执行后,操作使能寄存器的值

被清零。

查询语法:STATus:OPERation:ENABle?

返回参数:

 

<</span>操作使能寄存器的值>

例:STAT:OPER:ENAB?

STATus:OPERation?

这条命令可以用来读取操作事件寄存器的值。在该命令被执行后,操作事件寄存器的

值被清零。

查询语法:STATus:OPERation[:EVENt]?

返回参数:<</span>操作事件寄存器的值>

例:STAT:OPER?

STATus:OPERation:INSTrument?

这条命令用来读取操作事件子寄存器的值。在该命令被执行后,操作事件子寄存器的值

被清零。(注意:仅对当前通道的寄存器有效)

查询语法:STATus:OPERation:INSTrument[:EVENt]?

返回参数:<</span>操作事件子寄存器的值>

例:STAT:OPER:INST?

STATus:OPERation:INSTrument:ENABle

这条命令用来设置操作事件使能子寄存器的值,编程参数决定了操作事件使能子寄存器

中哪些位为1时将会引起状态字节寄存器中OPER位位置1。(注意:仅对当前通道的寄

存器有效)

命令语法:STATus:OPERation:INSTrument:ENABle 

参数:0~255

上电值:参考PSC命令。

例:STAT:OPER:INST:ENAB 110

STATus:OPERation:INSTrument:ENABle?

这条命令用来读取操作使能子寄存器的值。在该命令被执行后,操作使能子寄存器的值

被清零。(注意:仅对当前通道的寄存器有效)

查询语法:STATus:OPERation:INSTrument:ENABle?

返回参数:<</span>操作事件使能子寄存器的值>

例:STAT:OPER:INST:ENAB?

STATus:OPERation:INSTrument:CONDition?

这条命令用来读取操作条件子寄存器的值,在该命令被执行后,操作条件子寄存器的值

被清零。(注意:仅对当前通道的寄存器有效)

查询语法:STATus:OPERation:INSTrument:CONDition?

返回参数:<</span>操作条件寄存器的值>

例:STAT:OPER:INST:COND?

INSTrument[SELect]

这条命令用来选择当前的通道。

命令语法:INSTrument[:SELect] <</span>参数>

参数:FIRst|SECOnd|THIrd,表示三个通道。

上电值:FIRst

例:INST SECO

INSTrument[:SELect]?

这条命令用来读取当前选择的通道。

查询语法:INSTrument[:SELect]?

返回参数:FIRst(第一通道)|SECOnd(第二通道)|THIrd(第三通道)

例:INST?

INSTrument:NSELect

这条命令与INSTrument[SELect]命令相似,不同仅在用数字表示通道。

命令语法:INSTrument:NSELect <</span>参数>

参数:1~3

上电值:1

例:INST:NSEL?

查询语法:[SOURce:]CURRent[:LEVel][:IMMediate][:AMPLitude]? <</span>参数>

参数:MIN | MAX |无

返回参数:MIN TO MAX

单位:A

例:CURR?

[SOURce:]VOLTage[:LEVel][:IMMediate][:AMPLitude]

这条命令用来设置电源的当前通道的输出电压值。

命令语法:[SOURce:]VOLTage[:LEVel][:IMMediate][:AMPLitude]

参数:MIN|MAX|MIN TO MAX

单位:V mV uV kV

上电值:参考菜单设置。

复位值:MIN

例:VOLT 10V

[SOURce:]VOLTage[:LEVel][:IMMediate][:AMPLitude]?

这条命令用来查询电源的当前通道的设置电压值。

命令语法:[SOURce:]VOLTage[:LEVel][:IMMediate][:AMPLitude]? <</span>参数>

参数:MIN|MAX|无

返回参数:MIN TO MAX

单位:V

例:VOLT?

[SOURce:]VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude]

这条命令用来设置电源的当前通道的最大输出电压值。

命令语法:[SOURce:]VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude] <</span>参数>

参数:不超过电源所能输出的最大电压。

单位:V mV kV uV

上电值:参考菜单设置。

复位值:电源所能输出的最大电压。

例:VOLT:PROT 20V

[SOURce:]VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude]?

这条命令用来查询电源的当前通道的最大设置电压。

命令语法:[SOURce:]VOLTage:PROTection[:LEVel][:IMMediate][:AMPLitude]?

返回参数:电源的当前通道的最大输出电压值

单位:V

例:VOLT:PROT?

MEASure[:SCALer]:CURRent[:DC]?

读取实际输出电流。

命令语法:MEASure[:SCALer]:CURRent[:DC]?

返回参数:实际输出电流。

单位:A

例:MEAS:CURR?

MEAS[:SCALer][:VOLTage][:DC]?

读取实际输出电压。

命令语法:MEAS[:SCALer][:VOLTage][:DC]?

返回参数:实际输出电压。

单位:V

例:MEAS?

MEASure[:SCALer]:POWer[:DC]?

读取实际输出功率。

命令语法:MEASure[:SCALer]:POWer[:DC]?

返回参数:实际输出功率。

单位:W

例:MEAS:POW?

DISPlay[:WINDow][:STATe]

开启显示屏/关闭显示屏。

命令语法:DISPlay[:WINDow][:STATe] <</span>参数>

参数:0(关闭)|1(开启)

上电值:1(开启)

复位值:1(开启)

例:DISP 1

DISPlay[:WINDow][:STATe]?

开启显示屏/关闭显示屏状态查询。

返回参数:1(开启)|0(关闭)

例:DISP?

CALibration:SECure[:STATe]

关闭/开启校准保护,当校准保护被禁止后才能进行校准。且在校准保护被禁止后命令

表中除标准命令外其它的命令都不能用,且仅能校准当前通道。

命令语法:CALibration:SECure[:STATe] <</span>参数1>,<</span>参数2>

参数1:0(关闭)|1(开启)

参数2:校验密码

单位:无。

上电值:1|(开启)

复位值:1|(开启)

例:CAL:SEC 0,"6322"

CALibration:SECure[:STATe]?

读取校准保护位的状态。

查询语法:CALibration:SECure[:STATe]?

返回参数:0(关闭)|1(开启)

例:CAL:SEC?

CALibration:VOLTage:LEVel

设置电压校准的校准点。

命令语法:CALibration:VOLTage:LEVel <</span>参数>

参数:P1<</span>第1点>|P2<</span>第2点>

例:CAL:VOLT P1

CALibration:VOLT[:DATA]

设置电压校准的校准点电压。

命令语法:CALibration:VOLT[:DATA] <</span>参数>

参数:当前的实际输出电压。

单位:V mV uV kV

例:CAL:VOLT 1V

CALibration:CURRent:LEVel

设置电流校准的校准点。

命令语法:CALibration:CURRent:LEVel <</span>参数>

参数:P1<</span>第1点>|P2<</span>第2点>

例:CAL:CURR:LEV P1

CALibration:CURRent[:DATA]

设置电流校准的校准点电流。

命令语法:CALibration:CURRent[:DATA] <</span>参数>

参数:P1<</span>第1点>|P2<</span>第2点>

例:CAL:CURR 0.3A

CALibration:SECure:CODE

设置新的校准密码

命令语法:CALibration:SECure:CODE <</span>参数>

参数:长度为4的校准密码字符串。

例:CAL:SEC:CODE "1234"

CALibration:STRing

设置校准时的校准信息。

命令语法:CALibration:STRing <</span>参数>

参数:最大长度为24个字母的字符串,也就是用户校准时记录的相关信息。如校准时

的时间、次数等。

例:CAL:STR "2005-1-9 20:12"

CALibration:STRing?

查看当时的校准信息。

查询语法:CALibration:STRing?

返回参数:保存在电源中的校准信息

例:CAL:STR?

CALibration:SAVe

保存校准系数到EEPROM

命令语法:CALibration:SAVe

例:CAL:SAV

说明:校准后的校准数据只有保存后才会在下次生效。

CALibration:INITital

初始化校准系数,恢复到出厂值。

命令语法:CALibration:INITital

例:CAL:INIT

说明:当校准失败后可用此命令恢复。
SCPI 标准命令

 

标签:STATus,程控,校准,python,电源,语法,命令,参数,寄存器
来源: https://www.cnblogs.com/147258llj/p/16070670.html