基于python通过SCPI可编程命令控制可编程电源

可编程电源:电源Henghui PLD,电源艾德克斯IT6333A都可以使用

编程手册:ITECH | 为您提供更加精准、稳定的测试解决方案 (itechate.com)登录查询

编程需求:每5秒增加0.2V电压,从9到24V

import serial
import time
#========================调用python库需要提前安装pyserial (pip install pyserial)串口需要注意RS232电压与TTL的电压不同
ser = serial.Serial()    #调用pyserial库函数
ser.port = 'COM6'        #选择电脑认到的对应串口{一般需要更改}
ser.baudrate = 9600      #串口波特率一般不需要改变,注意设备端和电脑端需要一致,设备端一般可以设置
print(ser)
ser.open()               #连接串口的函数
print("串口连接完成")

ser.write(b'OUTP OFF\n') #先关闭电源
time.sleep(5)            #等待5秒
ser.write(b'OUTP ON\n')  #再开启电源

step = 0.2               #====测试步进0.2V增长一次
start_voltage = 9        #====起始电压
stop_voltage  = 24       #====结束电压
voltage_range = int(stop_voltage /step - start_voltage /step)    #range的范围是整数型不能用于浮点型,所以0.2是不行的
float_sequence = [i * step + start_voltage for i in range( voltage_range ) ]  # for i in range(9,18,1)以1v为步进
for i in range(len(float_sequence)):   #循环语句float_sequence是集合,需要调用len。 上面也可以import nmbpy  调用 nmbpy.arange()
     #print(float_sequence[i])
     #print(f"VOLT {float_sequence[i]}\n".encode('utf-8'))           #====调试用的,打印语句方便看发送的语句格式是否ok
     time.sleep(5)                                                   #====等待时间5秒
     ser.write(f"VOLT {float_sequence[i]}\n".encode('utf-8'))        #====对串口发送控制命令b'VOLT 9.0\n'数字依次变化

ser.write(b'OUTP OFF\n')                                             #====结束关闭电源
print("电源关闭")

在实践中发现的问题主要有:

1,编程环境问题,刚开始写是用CANoe的CAPL语言写的直接调用rs232send标准函数就可以了但是因为之后要做的东西需要调用usb口和以太网口,但是capl写起来比较麻烦(不知道怎么用CAPL调用usb)所以只好转移到python选择了pycharm的社区版。刚开始安装由于python的编译器老是出错。

空的不能自己认到地址,之后百度,加了环境变量和把python的exe运行文件地址手动选择出来。才OK的。

2,要加对应的串口库,需要去安装,但是第一次安装成了serial,结果函数运行不起来,之后换成pyserial。安装方式可以直接在终端里面输入 pip install pyserial.

C语言实现的SCPI命令解释器可以用于控制和管理各种仪器设备,例如示波器、信号发生器、电源等。下面是一个基本的SCPI命令解释器的设计: 1. 定义SCPI命令格式,包括命令头和参数部分,例如:“MEASure:VOLTage:DC?”。 2. 使用C语言编写解析器函数,将接收到的SCPI命令解析为命令头和参数部分,例如:“MEASure:VOLTage:DC”和“?”。 3. 根据不同的命令头,调用相应的处理函数,例如针对“MEASure:VOLTage:DC”命令头,调用相应的函数进行电压测量操作。 4. 在处理函数中,根据参数部分的不同,执行相应的操作,例如根据“?”返回电压值。 5. 将结果返回给用户或者其他系统,例如将测量结果显示在屏幕上或者将结果发送到其他设备。 基于PythonSCPI命令解释器的设计与C语言类似,但是可以使用Python的高级特性和库来简化开发过程。 1. 定义SCPI命令格式,包括命令头和参数部分,例如:“MEASure:VOLTage:DC?”。 2. 使用Python的正则表达式库或者字符串操作函数,将接收到的SCPI命令解析为命令头和参数部分,例如:“MEASure:VOLTage:DC”和“?”。 3. 根据不同的命令头,使用Python的面向对象编程特性,调用相应的处理类和方法,例如针对“MEASure:VOLTage:DC”命令头,调用相应的类进行电压测量操作。 4. 在处理类中,根据参数部分的不同,执行相应的操作,例如根据“?”返回电压值。 5. 使用Python的网络编程库或者GUI库,将结果返回给用户或者其他系统,例如将测量结果显示在屏幕上或者将结果发送到其他设备。 总之,无论是基于C语言还是PythonSCPI命令解释器,都需要定义命令格式、编写解析器、实现处理函数、返回结果等基本步骤,并且需要根据具体应用场景选择合适的语言和库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值