1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| """
Created on Tue Feb 5 11:41:34 2019
@author: A7XZBZZ
"""
from tkinter import *
import serial
import minimalmodbus
import time
instrument = minimalmodbus.Instrument('COM1', 32, mode='rtu')
instrument.serial.baudrate = 9600
instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_NONE
com = serial.Serial("COM2",38400,timeout=2,rtscts=True)
com.write("*RST;*CLS\n".encode('utf-8'))
class MaFenetre(Toplevel):
def __init__(self, i):
Toplevel.__init__(self)
self.title(""+str(i))
self.geometry("220x90")
self.l1 = Label(self, text="ETAT")
self.l2 = Label(self, text="ZERO")
self.l3 = Label(self, text="SENS")
self.l4 = Label(self, text="_DEF")
self.e1 = Entry(self)
self.e2 = Entry(self)
self.e3 = Entry(self)
self.e4 = Entry(self)
self.l5 = Label(self, text="------")
self.l6 = Label(self, text="------")
self.l7 = Label(self, text="------")
self.l8 = Label(self, text="------")
self.l1.grid(row=0, column=0)
self.l2.grid(row=1, column=0)
self.l3.grid(row=2, column=0)
self.l4.grid(row=3, column=0)
self.e1.grid(row=0, column=1)
self.e2.grid(row=1, column=1)
self.e3.grid(row=2, column=1)
self.e4.grid(row=3, column=1)
self.l5.grid(row=0, column=2)
self.l6.grid(row=1, column=2)
self.l7.grid(row=2, column=2)
self.l8.grid(row=3, column=2)
fen = Tk(className="scan")
liste_des_fenetres=[]
liste_voies_mesures=[]
for num in range(4):
ma_fenetre = MaFenetre(num)
liste_des_fenetres.append(ma_fenetre)
def maj():
for num in range(4):
instrument = minimalmodbus.Instrument('COM1', 32+num, mode='rtu')
etat = instrument.read_register(16384, 0)
defaut = instrument.read_register(16385, 0)
organigramme = etat & 0b0000000011110000
if organigramme == 0: #mesure normal
liste_des_fenetres[num].e1.delete(0,7)
liste_des_fenetres[num].e4.delete(0,7)
liste_des_fenetres[num].e1.insert(0,str(hex(etat)))
liste_des_fenetres[num].l5.config(text="Mesure", fg='black', bg='green')
liste_des_fenetres[num].e4.insert(0,str(hex(defaut)))
if organigramme == 16: #en stabilisation
liste_des_fenetres[num].e1.delete(0,7)
liste_des_fenetres[num].e4.delete(0,7)
liste_des_fenetres[num].e1.insert(0,str(hex(etat)))
liste_des_fenetres[num].l5.config(text="En stab", fg='black', bg='yellow')
liste_des_fenetres[num].e4.insert(0,str(hex(defaut)))
if organigramme == 32: #debut calibraion init du zero
liste_des_fenetres[num].e1.delete(0,7)
liste_des_fenetres[num].e2.delete(0,30)
liste_des_fenetres[num].e4.delete(0,7)
liste_des_fenetres[num].e1.insert(0,str(hex(etat)))
liste_des_fenetres[num].l5.config(text="Init Zero", bg='red')
#com.write(("MEAS:VOLT:DC? 1,0.001,(@"+str(num+101)+")\r\n").encode('utf-8'))
#time.sleep(0.3)
#buffer = com.in_waiting
#zero = com.read(buffer)
#liste_des_fenetres[num].e2.insert(0,float(zero))
liste_des_fenetres[num].e4.insert(0,str(hex(defaut)))
"""
com.write(("MEAS:VOLT:DC? 1,0.001,(@"+str(num+101)+")\r\n").encode('utf-8'))
time.sleep(0.3)
buffer = com.in_waiting
zero = com.read(buffer)
liste_des_fenetres[num].e1.delete(0,7)
liste_des_fenetres[num].e2.delete(0,30)
liste_des_fenetres[num].e3.delete(0,30)
liste_des_fenetres[num].e4.delete(0,7)
liste_des_fenetres[num].e1.insert(0,str(hex(etat)))
liste_des_fenetres[num].e2.insert(0,float(zero))
liste_des_fenetres[num].e3.insert(0,float(zero))
liste_des_fenetres[num].e4.insert(0,str(hex(defaut)))
"""
liste_des_fenetres[num].after(500,maj)
maj()
fen.mainloop() |