Einbinden Pythonprogramm in Qt Oberfläche
Verfasst: Sonntag 24. Mai 2020, 09:34
				
				Hallo Zusammen,
ich habe ein Pythonprogramm (Regler.py) erstellt, dem ich jetzt über eine Oberfläche Sollwerte zur Initialisierung geben möchte und die laufenden Istwerte anzeigen will, dazu habe ich mit dem Qt-Designer mir die Oberfläche erstellt und compiliert (Stufensteuerung).
Ich möchte das Reglerprogramm jetzt in die Stufensteuerung einbinden und scheitere daran. Könnt ihr mir weiterhelfen?
Regler.py
Stufensteuerung.py
			ich habe ein Pythonprogramm (Regler.py) erstellt, dem ich jetzt über eine Oberfläche Sollwerte zur Initialisierung geben möchte und die laufenden Istwerte anzeigen will, dazu habe ich mit dem Qt-Designer mir die Oberfläche erstellt und compiliert (Stufensteuerung).
Ich möchte das Reglerprogramm jetzt in die Stufensteuerung einbinden und scheitere daran. Könnt ihr mir weiterhelfen?
Regler.py
Code: Alles auswählen
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue May  5 04:07:56 2020
@author: pi
"""
import time
def Temperatur():
          
    file = open('/mnt/1wire/10.D0DAB4020800/temperature','r')
    Temp_ist = file.read()
    file.close()
    T=float(Temp_ist)
    print(T)
    return (T)
def Relais1(R1_EA):
    
      file = open('/mnt/1wire/29.85610C000000/PIO.0','w')    
      file.write(R1_EA)
      file.close()
      
def Stufe(Gw,Zt,S):        
    GwT=Gw
    Zw=Zt
    T=Temperatur()
    Lt=Zt
    
    while T < GwT:
       Ein="1" 
       Relais1(Ein)
       T=Temperatur()
       print(T,Lt,Ein,S)
       #return (T,Lt)        
    else:
        start = time.time()
        stop = start + Zw*60
        T=Temperatur()
        #print(T,Lt,Ein)
        #return (T,Lt)
        while time.time() < stop:
                Lt = stop-time.time()
                T=Temperatur()
                print(T,Lt,Ein,S)
                #return (T,Lt)
                if T < GwT:
                   Ein="1" 
                   Relais1(Ein)
                   print(T,Lt,Ein,S)
                   #return (T,Lt)
                else:
                    T=Temperatur()
                    Ein = "0"
                    Relais1(Ein)
                    print(T,Lt,Ein,S)
                    #return (T,Lt)
                b=S+1
        print(T,Lt,Ein,S)
        return(b,T)
          
#Initwerte
b=0
Ein="0"                            
                        
Gw1 = 25    # °C
Zt1 = 2.5     # min
Gw2 = 28    # °C
Zt2 = 3.0    # min
Gw3 = 31    # °C
Zt3 = 3.5     # min
                          
while b <=4:
    b=b+1
    if b==1:                        
        Stufe(Gw1,Zt1,b)
    if b==2:
        Stufe(Gw2,Zt2,b)
    if b==3:
        Stufe(Gw3,Zt3,b)
    if b==4:
        Ein = "0"
        Relais1(Ein)
        print("Alle Stufen fertig")Code: Alles auswählen
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Stufensteuerung.ui'
#
# Created by: PyQt5 UI code generator 5.14.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(665, 574)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget.setGeometry(QtCore.QRect(350, 400, 87, 112))
        self.layoutWidget.setObjectName("layoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButtonStart = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButtonStart.setObjectName("pushButtonStart")
        self.verticalLayout.addWidget(self.pushButtonStart)
        self.pushButtonStop = QtWidgets.QPushButton(self.layoutWidget)
        self.pushButtonStop.setObjectName("pushButtonStop")
        self.verticalLayout.addWidget(self.pushButtonStop)
        self.layoutWidget1 = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget1.setGeometry(QtCore.QRect(40, 230, 513, 114))
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.layoutWidget1)
        self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.Z1soll = QtWidgets.QLabel(self.layoutWidget1)
        self.Z1soll.setObjectName("Z1soll")
        self.verticalLayout_7.addWidget(self.Z1soll)
        self.Z2soll = QtWidgets.QLabel(self.layoutWidget1)
        self.Z2soll.setObjectName("Z2soll")
        self.verticalLayout_7.addWidget(self.Z2soll)
        self.Z3soll = QtWidgets.QLabel(self.layoutWidget1)
        self.Z3soll.setObjectName("Z3soll")
        self.verticalLayout_7.addWidget(self.Z3soll)
        self.horizontalLayout_3.addLayout(self.verticalLayout_7)
        self.verticalLayout_8 = QtWidgets.QVBoxLayout()
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.spinBoxZ1soll = QtWidgets.QSpinBox(self.layoutWidget1)
        self.spinBoxZ1soll.setSpecialValueText("")
        self.spinBoxZ1soll.setMinimum(1)
        self.spinBoxZ1soll.setMaximum(60)
        self.spinBoxZ1soll.setObjectName("spinBoxZ1soll")
        self.verticalLayout_8.addWidget(self.spinBoxZ1soll)
        self.spinBoxZ2soll = QtWidgets.QSpinBox(self.layoutWidget1)
        self.spinBoxZ2soll.setSpecialValueText("")
        self.spinBoxZ2soll.setMinimum(1)
        self.spinBoxZ2soll.setMaximum(60)
        self.spinBoxZ2soll.setObjectName("spinBoxZ2soll")
        self.verticalLayout_8.addWidget(self.spinBoxZ2soll)
        self.spinBoxZ3soll = QtWidgets.QSpinBox(self.layoutWidget1)
        self.spinBoxZ3soll.setSpecialValueText("")
        self.spinBoxZ3soll.setMinimum(1)
        self.spinBoxZ3soll.setMaximum(60)
        self.spinBoxZ3soll.setObjectName("spinBoxZ3soll")
        self.verticalLayout_8.addWidget(self.spinBoxZ3soll)
        self.horizontalLayout_3.addLayout(self.verticalLayout_8)
        self.horizontalLayout_5.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.verticalLayout_9 = QtWidgets.QVBoxLayout()
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.Z1ist = QtWidgets.QLabel(self.layoutWidget1)
        self.Z1ist.setObjectName("Z1ist")
        self.verticalLayout_9.addWidget(self.Z1ist)
        self.Z2ist = QtWidgets.QLabel(self.layoutWidget1)
        self.Z2ist.setObjectName("Z2ist")
        self.verticalLayout_9.addWidget(self.Z2ist)
        self.Z3ist = QtWidgets.QLabel(self.layoutWidget1)
        self.Z3ist.setObjectName("Z3ist")
        self.verticalLayout_9.addWidget(self.Z3ist)
        self.horizontalLayout_4.addLayout(self.verticalLayout_9)
        self.verticalLayout_10 = QtWidgets.QVBoxLayout()
        self.verticalLayout_10.setObjectName("verticalLayout_10")
        self.lineEditZ1ist = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEditZ1ist.setObjectName("lineEditZ1ist")
        self.verticalLayout_10.addWidget(self.lineEditZ1ist)
        self.lineEditZ2ist = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEditZ2ist.setObjectName("lineEditZ2ist")
        self.verticalLayout_10.addWidget(self.lineEditZ2ist)
        self.lineEditZ3ist = QtWidgets.QLineEdit(self.layoutWidget1)
        self.lineEditZ3ist.setObjectName("lineEditZ3ist")
        self.verticalLayout_10.addWidget(self.lineEditZ3ist)
        self.horizontalLayout_4.addLayout(self.verticalLayout_10)
        self.horizontalLayout_5.addLayout(self.horizontalLayout_4)
        self.layoutWidget2 = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget2.setGeometry(QtCore.QRect(80, 20, 413, 114))
        self.layoutWidget2.setObjectName("layoutWidget2")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.layoutWidget2)
        self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.Temp1soll = QtWidgets.QLabel(self.layoutWidget2)
        self.Temp1soll.setObjectName("Temp1soll")
        self.verticalLayout_2.addWidget(self.Temp1soll)
        self.Temp2soll = QtWidgets.QLabel(self.layoutWidget2)
        self.Temp2soll.setObjectName("Temp2soll")
        self.verticalLayout_2.addWidget(self.Temp2soll)
        self.Temp3soll = QtWidgets.QLabel(self.layoutWidget2)
        self.Temp3soll.setObjectName("Temp3soll")
        self.verticalLayout_2.addWidget(self.Temp3soll)
        self.horizontalLayout_2.addLayout(self.verticalLayout_2)
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.doubleSpinBoxT1soll = QtWidgets.QDoubleSpinBox(self.layoutWidget2)
        self.doubleSpinBoxT1soll.setSpecialValueText("")
        self.doubleSpinBoxT1soll.setMinimum(0.5)
        self.doubleSpinBoxT1soll.setMaximum(101.0)
        self.doubleSpinBoxT1soll.setSingleStep(0.5)
        self.doubleSpinBoxT1soll.setProperty("value", 0.5)
        self.doubleSpinBoxT1soll.setObjectName("doubleSpinBoxT1soll")
        self.verticalLayout_6.addWidget(self.doubleSpinBoxT1soll)
        self.doubleSpinBoxT2soll = QtWidgets.QDoubleSpinBox(self.layoutWidget2)
        self.doubleSpinBoxT2soll.setSpecialValueText("")
        self.doubleSpinBoxT2soll.setMinimum(0.5)
        self.doubleSpinBoxT2soll.setMaximum(101.0)
        self.doubleSpinBoxT2soll.setSingleStep(0.5)
        self.doubleSpinBoxT2soll.setObjectName("doubleSpinBoxT2soll")
        self.verticalLayout_6.addWidget(self.doubleSpinBoxT2soll)
        self.doubleSpinBoxT3soll = QtWidgets.QDoubleSpinBox(self.layoutWidget2)
        self.doubleSpinBoxT3soll.setSpecialValueText("")
        self.doubleSpinBoxT3soll.setMinimum(0.5)
        self.doubleSpinBoxT3soll.setMaximum(101.0)
        self.doubleSpinBoxT3soll.setSingleStep(0.5)
        self.doubleSpinBoxT3soll.setObjectName("doubleSpinBoxT3soll")
        self.verticalLayout_6.addWidget(self.doubleSpinBoxT3soll)
        self.horizontalLayout_2.addLayout(self.verticalLayout_6)
        self.horizontalLayout_6.addLayout(self.horizontalLayout_2)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout()
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.Temp1ist = QtWidgets.QLabel(self.layoutWidget2)
        self.Temp1ist.setObjectName("Temp1ist")
        self.verticalLayout_5.addWidget(self.Temp1ist)
        self.Temp2ist = QtWidgets.QLabel(self.layoutWidget2)
        self.Temp2ist.setObjectName("Temp2ist")
        self.verticalLayout_5.addWidget(self.Temp2ist)
        self.Temp3ist = QtWidgets.QLabel(self.layoutWidget2)
        self.Temp3ist.setObjectName("Temp3ist")
        self.verticalLayout_5.addWidget(self.Temp3ist)
        self.horizontalLayout.addLayout(self.verticalLayout_5)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.lineEditT1ist = QtWidgets.QLineEdit(self.layoutWidget2)
        self.lineEditT1ist.setObjectName("lineEditT1ist")
        self.verticalLayout_3.addWidget(self.lineEditT1ist)
        self.lineEditT2ist = QtWidgets.QLineEdit(self.layoutWidget2)
        self.lineEditT2ist.setObjectName("lineEditT2ist")
        self.verticalLayout_3.addWidget(self.lineEditT2ist)
        self.lineEditT3ist = QtWidgets.QLineEdit(self.layoutWidget2)
        self.lineEditT3ist.setObjectName("lineEditT3ist")
        self.verticalLayout_3.addWidget(self.lineEditT3ist)
        self.horizontalLayout.addLayout(self.verticalLayout_3)
        self.horizontalLayout_6.addLayout(self.horizontalLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButtonStart.setText(_translate("MainWindow", "Start"))
        self.pushButtonStop.setText(_translate("MainWindow", "Stop"))
        self.Z1soll.setText(_translate("MainWindow", "Z1[min]"))
        self.Z2soll.setText(_translate("MainWindow", "Z2[min]"))
        self.Z3soll.setText(_translate("MainWindow", "Z3[min]"))
        self.Z1ist.setText(_translate("MainWindow", "Z1_ist"))
        self.Z2ist.setText(_translate("MainWindow", "Z2_ist"))
        self.Z3ist.setText(_translate("MainWindow", "Z3_ist"))
        self.Temp1soll.setText(_translate("MainWindow", "T1_soll"))
        self.Temp2soll.setText(_translate("MainWindow", "T2_soll"))
        self.Temp3soll.setText(_translate("MainWindow", "T3_soll"))
        self.Temp1ist.setText(_translate("MainWindow", "T1_ist"))
        self.Temp2ist.setText(_translate("MainWindow", "T2_ist"))
        self.Temp3ist.setText(_translate("MainWindow", "T3_ist"))
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())