ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python篇-程控电源

2022-03-29 11:03:07  阅读:583  来源: 互联网

标签:STATus 程控 校准 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有