# -*- coding: utf-8 -*-
#!/usr/bin/python
"""
Module implementing Watch_MainWindow.
@Author: TOBY
@Email: hejunwang@
@DateTime: 2019-07-18 09:16:43
@Description: keithley 2303 程控电源 ,RIGOL dm3068 读取电压和电流软件
"""
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from Ui_watchcurrent_ui import Ui_MainWindow
import sys
import visa
import threading
import time
from PyQt5.QtWidgets import qApp
class Watch_MainWindow(QMainWindow, Ui_MainWindow):
"""
Class documentation goes here.
"""
def __init__(self, parent=None):
"""
Constructor
@param parent reference to the parent widget
@type QWidget
"""
super(Watch_MainWindow, self).__init__(parent)
self.setupUi(self)
self.init()
#设置框架的大小, 取消最大化
self.setFixedSize(self.width(), self.height())
self.statusBar.showMessage("Ready")
#TODO 初始化设备
def init(self):
self.rm = visa.ResourceManager()
self.dev =self.rm.list_resources()
print(self.dev)
self.rm2 = visa.ResourceManager()
self.dev2 =self.rm2.list_resources()
print(self.dev2)
self.rigol = visa.ResourceManager()
self.dm3068 =self.rigol.list_resources()
print(self.dm3068)
#停止按键设置灰色不可点击状态
self.w_stop_btn.setEnabled(False)
#设备是否连接
self.IsCon = False
self.IsCon2 = False
self.IsCon3 = False
#保存数据列表
self.dataList=[]
#保存测试的电压的数据
self.dm3068List=[]
#菜单
self.menuAction()
#TODO 计时器显示
def lcdNum(self):
#定时器
self.second = 0
self.minute = 0
self.hour = 0
self.days = 0
self.lcdtimer = QTimer(self)
self.lcdtimer.timeout.connect(self.onTimerOut)
self.lcdtimer.start(1000)
#计数器
self.jishu = 0
def onTimerOut(self):
self.second += 1
self.jishu += 1
if self.second%60==0:
self.minute+=1
self.second =0
print('minute:'+str(self.minute))
if self.minute%60==0:
self.hour+=1
self.minute=0
print('minute:---'+str(self.minute))
print('hour:'+str(self.hour))
else:
print('minute:--->'+str(self.minute))
print('hour-->:'+str(self.hour))
#采集时间长度
self.duration_time= int(self.w_duration.text())
#按照规定采集的时间到了 ,进行停止
if self.jishu %self.duration_time==0:
print('停止计时')
self.data_save()
self.data2_save()
self.w_remind.append("###测量的实际电压###:"+str(self.t2)+
" V"+ '---'+"###平均电流###:"+str(self.avgdata)+" mA"+
"###充电平均电流###:"+str(self.avgdata2)+" mA")
# self.all_timer_stop()
# self.stopbtn_set()
#保存数据
# self.data_save()
# self.w_remind.append('采集数据数量:'+str(self.lendata)+"\n")
self.w_lcd.display(str(self.hour)+":"+str(self.minute)+
":"+str(self.second))
@pyqtSlot()
def on_w_connect_btn_clicked(self):
"""
Slot documentation goes here.
"""
# TODO: 连接仪器一
# self.init()
# raise NotImplementedError
try :
print('on_w_connect_btn_clicked')
self.my_instrument = self.rm.open_resource(self.dev[1])
self.w_remind.append('仪器仪表查询结果:\n'+self.my_instrument.query('*IDN?'))
print('读取*IDN?结果:\n'+self.my_instrument.query('*IDN?'))
self.w_remind.append('当前查询到的设备:'+str(self.dev))
#设置按键灰色
self.w_connect_btn.setEnabled(False)
self.IsCon = True
print(self.IsCon)
self.read_config() #读取配置文件
python程控电源编程(2)
最新推荐文章于 2025-10-11 12:31:37 发布
本软件通过Python和PyQt5实现了Keithley2303程控电源与RIGOLDM3068万用表的控制与数据读取功能,支持自动电压调节、数据采集、计时和数据统计,同时具备设备连接状态监测和异常处理机制。

最低0.47元/天 解锁文章
4568

被折叠的 条评论
为什么被折叠?



