电源66319D控制方法

实现自动化控制,电源为基础的模块,下面为大家讲解电源66319D的控制逻辑。

新建底层控制逻辑

在这里插入图片描述
在文件basis_contorl.py中写入仪器控制底层代码,代码如下:

import tkinter.messagebox
import pyvisaclass InstrumentControl(object):inst = Nonedef __init__(self, equipment_name: str, equipment_visa: str, visa_dll='c:/Windows/System32/visa32.dll'):"""建立仪器初始对象@param equipment_name: 仪器名@param equipment_visa: 仪器visa地址@param visa_dll: visa.all地址"""try:self.rm = pyvisa.ResourceManager(visa_dll)print("打开visa32.dll文件成功")self.inst = self.open_by_name(equipment_name, equipment_visa)except Exception as e:tkinter.messagebox.showerror('错误', '在{}中找不到visa32.dll,请确认正确安装了NI-MAX和驱动')print(f"打开visa32.dll文件失败, 报错原因:{e}")passdef open_by_name(self, device_name, gpib_ip):"""仪表通讯@param device_name:@param gpib_ip:@return: 仪器控制对象"""self.inst = self.rm.open_resource(gpib_ip)print(self.inst)print("打开资源:" + gpib_ip)query_name_str = self.command_query("*IDN?")print("查询名称为:" + query_name_str)if device_name in query_name_str:print("打开仪表成功,打开的是:" + device_name)print("打开仪表成功,打开的是:" + device_name)return self.instreturn self.instdef command_write(self, write_cmd):"""命令写入@param write_cmd: 写入指令@return: 执行结果"""print("执行了写入指令:" + write_cmd)ret_res = self.inst.write(write_cmd)print("返回了:" + str(ret_res))return ret_resdef command_read(self, read_cmd):"""命令读取@param read_cmd: 读取指令@return: 读取信息"""print("执行了读取指令:" + read_cmd)ret_res = self.inst.read(read_cmd)print("返回了:" + str(ret_res))return ret_resdef command_query(self, query_cmd):"""命令查询@param query_cmd: 查询指令@return: 查询信息"""print("执行了查询指令:" + query_cmd)ret_res = self.inst.query(query_cmd).replace('\n', '')print("返回了:" + str(ret_res))return ret_res

编写好底层控制代码,在文件instrument_66319d.py写入电源66139D的控制指令,代码如下:

from instrument_control.basis_contorl import InstrumentControlclass D66319(InstrumentControl):def __init__(self, equipment_name: str, equipment_visa: str):super(D66319, self).__init__(equipment_name, equipment_visa)def query_equipment_info(self):"""查询设备信息:return: 设备信息"""result = self.command_query("*IDN?")return resultdef switch_display(self, interface: int):"""切换显示界面:param interface: 1 or 2"""self.command_write(f"DISPLAY:CHANNEL {interface}")def set_output_2(self, output_2: int):"""设置output2的输出功率:param output_2: 1,2....."""self.command_write(f"OUTP2 {output_2};*OPC?")def set_output(self, output: int):"""设置output1的输出功率:param output: 1,2....."""self.command_write(f"OUTP1 {output};*OPC?")def set_voltage_2(self, voltage_2: int):"""设置二口的电压:param voltage_2: 1,2....."""self.command_write(f'VOLT2 {voltage_2}')def set_voltage(self, voltage):"""设置一口的电压:param voltage: 1,2....."""self.command_write(f'VOLT1 {voltage}')def open_output_2(self):"""打开二口的输出开关"""self.command_write('OUTP2 ON')def open_output(self):"""打开一口的输出开关"""self.command_write('OUTP1 ON')def query_maximum_voltage(self):"""查询可编程的最大输出电压:return: 电压值"""result = self.command_query("VOLT? MAX").replace("\n", '')return resultdef open_over_voltage_protection(self):"""开启过压保护"""self.command_write("CURR:PROT:ON")def close_over_voltage_protection(self):"""关闭过压保护"""self.command_write("CURR:PROT:OFF")def set_output_resistance(self, output_resistance: int):"""设置输出电阻:param output_resistance: 输出电阻值"""self.command_write(f"RES {output_resistance}")def query_average_output_voltage(self):"""查询平均输出电压:return: 均输出电压"""result = self.command_query("MEAS:VOLT?")return resultdef query_average_output_current(self):"""查询平均输出电流:return: 平均输出电流"""result = self.command_query("MEAS:CURR?")return resultdef query_average_output_current_2(self):"""查询二口的平均输出电流:return: 二口的平均输出电流"""result = self.command_query("MEAS:CURR2?")return resultdef set_samples(self, samples: int):"""设置采样的样本数量:param samples: 样本数量"""self.command_write(f"SENS:SWE:POIN {samples}")def set_time_interval(self, time_interval: float):"""设置每个样本的间隔时间:param time_interval: 间隔时间"""self.command_write(f"SENS:SWE:TINT {time_interval}")def set_measurement_ranges(self, measurement_range: str):"""设置电流测试范围(3A:0~MAX, 1A:0~1, 0.02:0~0.02):param measurement_range: 测试范围"""self.command_write(f"SENS:CURR:RANG {measurement_range}")def query_measurement_ranges(self):"""查询电流测试范围:return: 电流测试范围"""result = self.command_query("SENS:CURR:RANG?")return resultdef set_measurement_detectors(self, measurement_detectors):"""设置电流探测器类型(AC_DC, DC):param measurement_detectors: 电流探测器类型"""self.command_write(f"SENS:CURR:DET {measurement_detectors}")def query_measurement_detectors(self):"""查询电流探测器类型:return: 电流探测器类型"""result = self.command_query("SENS:CURR:DET?")return resultdef query_voltage_rms_measurement(self, electric_type):"""查询电压的rms测量值(AC:交流电, DC:直流电, AC_DC:直流加交流, DC:直流):param electric_type: 电流类型:return: 电压的rms测量值"""result = self.command_query(f"MEAS:VOLT:{electric_type}?")return resultdef query_current_rms_measurement(self, electric_type):"""查询电流的rms测量值(AC:交流电, DC:直流电, AC_DC:直流加交流, DC:直流):param electric_type: 电流类型:return: 电流的rms测量值"""result = self.command_query(f"MEAS:CURR:{electric_type}?")return resultdef query_voltage_max_min(self):"""查询电压的脉冲或交流波形的最大或最小值:return: 电压的脉冲或交流波形的最大或最小值"""result_max = self.command_query("FETC:VOLT:MAX?")result_min = self.command_query("FETC:VOLT:MIN?")return result_max, result_mindef query_current_max_min(self):"""查询电流的脉冲或交流波形的最大或最小值:return: 电流的脉冲或交流波形的最大或最小值"""result_max = self.command_query("FETC:CURR:MAX?")result_min = self.command_query("FETC:CURR:MIN?")return result_max, result_mindef query_average_voltage(self):"""测试平均电压:return: 平均电压"""result = self.command_query("MEAS:DVM:DC?")return resultdef query_rms_voltage(self):"""测试rms电压:return: rms电压"""result = self.command_query("MEAS:DVM:ACDC?")return result

控制仪器时先设置控制对象,具体例子如下:

    set_equipment_name = "D66319"set_equipment_visa = "仪器的GPIB地址"d66319_object = D66319(equipment_name=set_equipment_name, equipment_visa=set_equipment_visa)

关于电源66319D的控制方法就到这里了,博主后续还会更新不同仪器的控制方法,各位敬请期待吧,有疑问欢迎找博主解答,我是活动的笑脸。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/778578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探析Zoho Projects项目管理系统功能优势

世上万物,都是有难有易,有简单,也有复杂,项目也不例外。面对复杂的项目,应该如何有效管理呢?答案无疑是项目管理系统,项目管理系统有哪些强大的功能?Zoho Projects项目管理系统的功能…

要提升视频面试效率,需要留意以下几点

在当今远程工作的世界里,视频面试对于成功招聘至关重要。在这个过程中,过度沟通,要有耐心,提供电子产品,并表现出同理心。 随着世界转向远程工作,视频面试已经开始成为维持成功招聘策略的重要组成部分。多…

政安晨:专栏目录【TensorFlow与Keras实战演绎机器学习】

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 本篇是作者政安晨的专栏《TensorFlow与Keras…

碳素光线疗法与宠物健康

碳素光线与宠物健康 生息在地球上的所有动物、在自然太阳光奇妙的作用下、生长发育。太阳光的能量使它们不断进化、繁衍种族。现在、生物能够生存、全仰仗于太阳的光线。太阳光线中、包含有动物健康所需要的极为重要的波长。因此、和户外饲养的动物相比、在室内喂养的观赏动物、…

比较AI编程工具Copilot、Tabnine、Codeium和CodeWhisperer

主流的几个AI智能编程代码助手包括Github Copilot、Codeium、Tabnine、Replit Ghostwriter和Amazon CodeWhisperer。 你可能已经尝试过其中的一些,也可能还在不断寻找最适合自己或公司使用的编程助手。但是,这些产品都会使用精选代码示例来实现自我宣传…

无货源采集软件必备API--支持多平台爆款采集-淘宝-天猫-拼多多-整店采集和淘客功能

如何获取API测试权限? item_get 获得淘宝商品详情item_get_pro 获得淘宝商品详情高级版item_review 获得淘宝商品评论item_fee 获得淘宝商品快递费用item_password 获得淘口令真实urlitem_list_updown 批量获得淘宝商品上下架时间seller_info 获得淘宝店铺详情item…

Ubuntu通过分用户进行多版本jdk配置

前言:本文内容为实操记录,仅供参考! linux安装jdk参考:http://t.csdnimg.cn/TeECj 出发点:最新的项目需要用jdk17来编译,就把服务器的jdk版本升级到了17,但是有一些软件例如nexus还需要jdk1.8进…

增强现实(AR)的开发工具

增强现实(AR)的开发工具涵盖了一系列的软件和平台,它们可以帮助开发者创造出能够将虚拟内容融入现实世界的应用程序。以下是一些在AR领域内广泛使用的开发工具。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎…

I.MX6ULL_Linux_系统篇(25) buildroot文件系统构建

前面我们学习了如何使用 busybox 来构建根文件系统,但是 busybox 构建的根文件系统不齐全,很多东西需要我们自行添加,比如 lib 库文件。在我们后面的驱动开发中很多第三方软件也需要我们自己去移植,这些第三方软件有很多又依赖其他…

5.6 物联网RK3399项目开发实录-Android开发之U-Boot 编译及使用(wulianjishu666)

物联网入门到项目实干案例下载: https://pan.baidu.com/s/1fHRxXBqRKTPvXKFOQsP80Q?pwdh5ug --------------------------------------------------------------------------------------------------------------------------------- U-Boot 使用 前言 RK U-B…

【CKA模拟题】如何用Nslookup轻松检查集群服务名的DNS解析?

题干 For this question, please set this context (In exam, diff cluster name) kubectl config use-context kubernetes-adminkubernetes Create an nginx pod named nginx-pod-cka using the nginx image, and expose it internally with a service named nginx-service-…

Jenkins拉取github项目相关问题

1.私有仓库问题 1.1如果你的仓库是私有的,21年起github就不支持账号密码的方式拉取代码了 那么就需要在github上面创建一个token (classic) 然后在Jenkins代码设置那里 然后应该就可以顺利打包了。 2.找不到pom(多了一层文件夹)问题 解…

护眼大路灯智商税吗?五款最佳护眼落地灯分享!

大路灯能够提供更加舒适健康的光线,而且大路灯还提供许多能够提高使用便捷度的大路灯,尤其是对于学生党以及上班族来说,大路灯是一款很好的用眼照明小帮手。然而,对于护眼大路灯智商税吗这个问题,很冥想不是&#xff0…

1.java openCV4.x 入门-环境搭建

专栏简介 💒个人主页 📖心灵鸡汤📖大家 📰专栏目录 点击上方查看更多内容 环境搭建 一、开发环境二、环境搭建1.openCV安装1.下载程序包 2.程序包安装3.搭建项目 三、非必要资源1.扩展库2.cmake 一、开发环境 开发工具 i…

数据库索引及优化

数据库索引及优化 什么是索引? MySQL官方对索引的定义为:索引(INDEX)是帮助MySQL高效获取数据的数据结构。 索引的本质: 数据结构 为什么要引入索引? 引入索引的目的在于提高查询效率,就好像是…

常用的8个应用和中间件的Docker运行示例

文章目录 1、Docker Web 管理工具 portainer2、在线代码编辑器 Code Server3、MySQL4、Redis5、Nginx6、PostgreSQL7、媒体管理工具 Dim8、Gitlab 1、Docker Web 管理工具 portainer Portainer 是一个轻量级的管理 UI ,可让你轻松管理不同的 Docker 环境&#xff0…

软件测试面试——你准备好了吗?

软件的生命周期 计划阶段-〉需求分析-〉设计阶段-〉编码->测试->运行与维护 测试用例:用例ID,测试项,重要级别,优先级别,预置条件,测试标题,操作步骤,预期结果。&#xff08…

【Vue】computed 和 watch 的区别

Watch 上一篇文章事件绑定和计算属性讲了computed属性,现在来讲讲Watches属性 data() {return {counter: 0,name: "",fullname: "",}},watch: {counter(value) {if (value > 50) {this.counter 0}},name(value) {if (value "") {return (t…

无忧微服务:如何实现大流量下新版本的发布自由

作者:项良、十眠 微服务上云门槛降低,用好微服务才是关键 据调研数据显示,约 70% 的生产故障是由变更引起的。在阿里云上的企业应用如茶百道、极氪汽车和来电等,他们是如何解决变更引起的稳定性风险,实现了在白天高流…

ES学习日记(二)-------集群设置

上一节写了elasticsearch单节点安装和配置,现在说集群,简单地说就是在多台服务器上搭建单节点,在配置文件里面增加多个ip地址即可,过程同单节点部署,主要说集群配置 注意:不建议在之前单节点es上修改配置为集群,据说运行之后会生成很多文件,在单点基础上修改容易出现未知问题,…