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.

作者:Karl57

物联沃分享整理
物联沃-IOTWORD物联网 » Python实现SCPI可编程命令控制可编程电源全解析

发表回复