当前位置: 首页 > news >正文

东莞专业网站建设平台长沙手机网站建设哪些内容

东莞专业网站建设平台,长沙手机网站建设哪些内容,网站视频接口 怎么做,济南php网站开发文章目录 说明使用的库openpyxlpyvisa 代码说明效果展示参考代码 说明 本文介绍了 Keysight 34465A 的基本使用和 SCPI 指令设置,演示了使用 Python 的 PyVISA 库控制两台 34465A 同时采集数据的完整流程,包括设置采样参数、触发测量、读取数据、使用 O…

文章目录

  • 说明
  • 使用的库
    • openpyxl
    • pyvisa
  • 代码说明
  • 效果展示
  • 参考
  • 代码

说明

本文介绍了 Keysight 34465A 的基本使用和 SCPI 指令设置,演示了使用 Python 的 PyVISA 库控制两台 34465A 同时采集数据的完整流程,包括设置采样参数、触发测量、读取数据、使用 OpenPyXL 保存到 Excel 并生成折线图。整个过程采用模块化代码并加入详细注释,每一步都以教程形式说明,并增加了异常处理逻辑来提高健壮性。

使用的库

openpyxl

  • https://openpyxl.readthedocs.io/
  • OpenPyXL 用于生成 Excel 文件和绘制图表。

pyvisa

  • https://pyvisa.readthedocs.io/en/latest/
  • 在 Python 环境中,通过 pip install pyvisa pyvisa-py openpyxl 安装依赖库。PyVISA 用于与万用表通讯,PyVISA-Py(或 NI-VISA)提供 VISA 后端。

代码说明

  1. 生成Excel文件每次采集后直接保存;
  2. 使用Excel折线图展示数据;
  3. 可设定采集参数(采集点数、采集时长、NPLC);
  4. 代码包含异常处理(比如设备未连接、超时等);

效果展示

在这里插入图片描述

参考

  • https://pyvisa.readthedocs.io/en/latest/
  • https://docs.keysight.com/
  • https://www.keysight.com/
  • https://openpyxl.readthedocs.io/
  • https://blog.csdn.net/Jzy140222010108/article/details/125111682
  • https://blog.csdn.net/palzhj/article/details/129339224
  • https://bloghome.com.cn/post/ru-he-li-yong-pyvisaku-yu-gpibjie-kou-de-ce-liang-she-bei-jin-xing-tong-xin-shi-xian-shu-ju-de-cai-ji-he-fa-song-kong-zhi-ming-ling-csdnwen-ku.html

代码

import pyvisa
from time import sleep
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
from datetime import datetime
import logging
# 查看详细通信过程
#logging.basicConfig(level=logging.DEBUG)  # 获取当前时间并格式化
current_time = datetime.now().strftime("%Y%m%d-%H%M%S")# 配置日志格式和文件
logging.basicConfig(level=logging.DEBUG,  # 设置日志级别format='%(asctime)s [%(levelname)s] %(message)s',  # 含时间戳和日志级别handlers=[logging.FileHandler(f'DMMRecorder_{current_time}.log', encoding='utf-8'),  # 输出到文件logging.StreamHandler()  # 同时输出到控制台]
)# 示例参数:采样 1000 点,总时间 1秒
sample_points = 1000                # 采样点数
total_time = 1.0                    # 秒,总时间
DMM_NPLC = 0.001                    # NPLC
DMM_IP_ADDR_1 = "10.0.1.83"         # 万用表1 IP 地址
DMM_IP_ADDR_2 = "10.0.1.86"         # 万用表2 IP 地址def setup_scpi(inst, dmm_nplc, sample_count, total_time):"""通过 SCPI 配置万用表采样参数"""inst.write(':CONF:VOLT:DC 10')                          # 直流量程 10Vinst.write(f':SENS:VOLT:DC:NPLC {dmm_nplc}')            # NPLC=0.001inst.write(':VOLT:DC:RANG:AUTO OFF')                    # 关闭自动量程inst.write(':TRIG:SOUR INTERNAL')                       # 内部触发inst.write(f':SAMP:COUN {sample_count}')                # 采样点数inst.write(f':SAMP:TIM {total_time/sample_count}')      # 采样间隔inst.write(':TRIG:COUN 1')                              # 单次触发inst.write(':TRIG:DEL 0')                               # 无延时#inst.write(':INIT')                                    # 初始化采集try:# 创建资源管理器rm = pyvisa.ResourceManager() # 列出所有可见的 VISA 资源         #devices = rm.list_resources()          #logging.info("Available devices:", devices)# 打开第一个万用表mtr1 = rm.open_resource(f'TCPIP0::{DMM_IP_ADDR_1}::hislip0::INSTR')# 打开第二个万用表mtr2 = rm.open_resource(f'TCPIP0::{DMM_IP_ADDR_2}::hislip0::INSTR')
except Exception as e:logging.info("无法连接仪器,请检查连接:", e)exit(1)logging.info(f'连接万用表:{DMM_IP_ADDR_1} {DMM_IP_ADDR_2}')
logging.info(f'启动参数:采样点数 {sample_points},总时间 {total_time}s,NPLC {DMM_NPLC}')# 配置两台万用表
setup_scpi(mtr1, DMM_NPLC, sample_points, total_time)
setup_scpi(mtr2, DMM_NPLC, sample_points, total_time)try:# 启动采集mtr1.write(':INIT'); mtr2.write(':INIT')sleep(total_time + 3)  # 等待采集完成# 读取采集数据data1 = mtr1.query(':FETCh?')   # 假设 FETCh? 返回 1000 个数据的逗号分隔字符串data2 = mtr2.query(':FETCh?')# 将字符串分割并转换为浮点数列表voltages1 = [float(val) for val in data1.split(',')]voltages2 = [float(val) for val in data2.split(',')]
except pyvisa.VisaIOError as ve:logging.info("通讯错误:", ve)voltages1, voltages2 = [], []
except Exception as e:logging.info("测量失败:", e)voltages1, voltages2 = [], []# 建立工作簿与工作表
wb = Workbook()
ws = wb.active
ws.title = "DMM_Data"# 写入表头
ws.append(["Time (s)", "Meter1 (V)", "Meter2 (V)"])# 写入数据行:假设等间隔采样
for i in range(len(voltages1)):t = i * (total_time / sample_points)ws.append([t, voltages1[i], voltages2[i]])# 创建折线图
chart = LineChart()
chart.title = "Voltage vs Time"
chart.x_axis.title = "Time (s)"
chart.y_axis.title = "Voltage (V)"# Y 轴数据范围:第2列和第3列(不包括表头)
data = Reference(ws, min_col=2, min_row=2, max_col=3, max_row=len(voltages1)+1)
chart.add_data(data, titles_from_data=False)# X 轴类别:第1列(时间)
cats = Reference(ws, min_col=1, min_row=2, max_row=len(voltages1)+1)
chart.set_categories(cats)# 显示所有数据点(关键步骤)
for series in chart.series:series.marker.symbol = "circle"                 # 点形状:圆形series.marker.size = 3                          # 点大小series.graphicalProperties.line.noFill = False  # 显示连接线# 将图表插入到工作表,例如 E2 单元格开始
ws.add_chart(chart, "E2")# 保存 Excel 文件
file_name = "measurement_data_" + current_time + ".xlsx"
wb.save(file_name)
logging.info(f"数据已保存到 {file_name}")
http://www.dtcms.com/a/509370.html

相关文章:

  • 工程施工行业在哪个网站容易找事做宿迁房产网签备案查询系统
  • 网站开发时如何设计英文版本做进口产品的网站
  • mie-散射-远场
  • 中山制作网站的公司怎么做俄语网站
  • 北京手机网站设计建设银行网站未响应
  • 玉溪网站开发网站关键词密度怎么计算的
  • 网站开发工程师获奖北京市朝阳区网站制作公司
  • 河北中瑞建设集团有限公司网站西安专用网站建设
  • 网站开发所需要的知识营销网站 深圳
  • 视频图像应用平台
  • 做图在哪个网站上找英国做电商网站
  • Java面试八股 CAP理论详解
  • 网站app免费制作软件网站改版需要多久
  • 江苏省品牌专业群建设专题网站零基础网站建设教学培训
  • 电商网站规划的开发背景wordpress 同步phpcms
  • 外贸网站怎么做seo品牌建设的定义
  • 商城模板网站主题及样式优化
  • 网站制作报价doc安装网站源码
  • “链表” 咋理解?用 “糖葫芦串” 讲透单链表 / 双向链表​
  • 建设外贸网站wordpress设置2个网站
  • 诸城哪有做公司网站的初中学历怎么提升大专学历
  • 做外贸需要关注国外哪些网站公司网站备案流程
  • 8、【Ubuntu】【VSCode】VSCode 断联问题分析
  • 石家庄建站公司比价 wordpress 插件下载
  • 北京大兴网站建设首选公司网站建设业务员招聘
  • 网站建设出现乱码是怎么回事做竞争小的网站
  • Xshell效率实战系列二:动态端口转发与多环境切换——从安全访问到毫秒级切换
  • 张家口外贸网站建设如何安装wordpress主题
  • 做旅游网站的目的营销和运营的区别是什么
  • 做微商想做个网站指纹锁在什么网站做宣传好