Python控制程控电源
创始人
2024-02-19 21:14:57

文章目录

  • 前言
  • 一、环境搭建
  • 二、使用步骤
  • 三、执行结果
  • 总结


前言

本文章主要是记录汽车电子或嵌入式设备自动化测试中,部分场景需要控制被测设备的供电电源,以下就以常见的艾德克斯程控电源为例,分享如何通过Python来控制程控电源。


一、环境搭建

1.Python安装
安装python3.8版本
安装串口通信库:pip install pyserial==3.5

serial模块简介
串口(serial),全称串行通信接口或串行通讯接口,是一种常用于电子设备间通讯的全双工扩展接口
串行通信:串口通讯的技术基础,指一位一位地按顺序传送数据。其特点是线路简单,只需一对传输线,即可实现双向通信,大大降低成本。适用于远距离通信,但速度较慢;
pyserial为python中处理串口通讯的一个模块名
pyserial官方介绍文档
常用方法:
ser.isOpen() 查看端口是否被打开
ser.open() 打开端口
ser.close() 关闭端口
ser.read() 从端口读字节数据。默认1个字节。
ser.read_all() 从端口接收全部数据。
ser.write(“hello”) 向端口写数据。
ser.readline() 读一行数据。
ser.readlines() 读多行数据。
in_waiting() 返回接收缓存中的字节数。
flush() 等待所有数据写出。
flushInput() 丢弃接收缓存中的所有数据。
flushOutput() 终止当前写操作,并丢弃发送缓存中的数据。

2.安装程控电源串口调试工具
在这里插入图片描述

二、使用步骤

1.通过串口调试工具获得程控电源操作指令
设置远程模式:AA 00 20 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CB
设置电源ON:AA 00 21 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CC
设置电源OFF:AA 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CB
设置输出电压为12V:AA 00 23 E0 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB
设置输出电流为5A:AA 00 24 88 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69
读取电源的电流、电压、和电源状态:AA 00 26 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D1

2.Python代码

# -*- coding: utf-8 -*-import serial.tools.list_portsdef str_turn_16(str):"""字符串转16进制"""m = [str[i - 2:i] for i in range(len(str), 0, -2)]n = ''for i in m:n += iodata = 0for i in n:tmp = ord(i)if tmp <= ord('9'):odata = odata << 4odata += tmp - ord('0')elif ord('A') <= tmp <= ord('F'):odata = odata << 4odata += tmp - ord('A') + 10return odatadef write_recv(send):"发送指令并返回结果"ser.write(send)  # 项串口发送数据return ser.read(26)  # 获取串口数据if __name__ == '__main__':send_data1 = bytes.fromhex('AA 00 20 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CB')  # 设置远程模式send_data2 = bytes.fromhex('AA 00 21 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CC')  # 设置电源ONsend_data3 = bytes.fromhex('AA 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 CB')  # 设置电源OFFsend_data4 = bytes.fromhex('AA 00 23 E0 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB')  # 设置输出电压为12Vsend_data5 = bytes.fromhex('AA 00 24 88 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69')  # 设置输出电流为5Asend_data6 = bytes.fromhex('AA 00 26 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D1')  # 读取电源的电流、电压、和电源状态ser = serial.Serial("com2", 9600)  # 设置串口号、波特率if ser.is_open:write_recv(send_data1)  # 开启远程模式write_recv(send_data2)  # 电源ONwrite_recv(send_data4)  # 设置电源电压为12Vwrite_recv(send_data5)  # 设置电源电流为5Afor i in range(1):  # 设置读取次数return_data = write_recv(send_data6)  # 读取电源的电流、电压、和电源状态str_return_data = str(return_data.hex()).upper()  # bytes转16进制print("实际输出电流:%.2f A" % float(str_turn_16(str_return_data[6:10]) / 1000))print("实际输出电压:%.2f V" % float(str_turn_16(str_return_data[10:18]) / 1000))power_status = bin(int(str_turn_16(str_return_data[18:20])))print("电源输出状态(0为关闭,1为开启):%s" % power_status[9])print("电源过热状态(0为关闭,1为开启):%s" % power_status[8])print("电源输出模式(1为CV模式,2为CC模式,3为Unreg模式):%s" % power_status[6:8])print("风扇转速(0时风扇不转,5时转速最大):%s" % power_status[3:6])print("操作状态(0为面板操作模式,1为PC操作模式):%s" % power_status[2])print("设定电流值:%.2f A" % float(str_turn_16(str_return_data[20:24]) / 1000))print("最大电压设定值:%.2f V" % float(str_turn_16(str_return_data[24:32]) / 1000))print("设定电压值:%.2f V" % float(str_turn_16(str_return_data[32:40]) / 1000))ser.close()

三、执行结果


总结

嵌入式设备自动化测试过程中都会涉及到程控电源的控制,以上只是总结了电源控制的基础用法,在实际项目中可根据项目情况加以封装,后续再分享CAPL语言控制程控电源的方法。

上一篇:赞美筷子的句子

下一篇:造句:京城

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...