Advertisement
Savelyev_Vyacheslav

RdMaxEx

Mar 13th, 2022
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.02 KB | None | 0 0
  1. import openpyxl
  2. import time
  3. import numpy as np
  4. Book = openpyxl.Workbook()
  5. sheetBook = Book.active
  6. bookRoster = openpyxl.open('inAll.xlsx')
  7. sheetRoster = bookRoster.active
  8.  
  9. def ConsTop():
  10.     print("Реультат будет записан в фаил in.xlsx")
  11.     print("IN set value - Acetylene C2H2 / Methane CH4 / Ethylene C2H4: ")
  12.     print("OUT defect type - Разр низк энерг(D1) / Разр высок энерг(D2) / Tепл поврежд и разр (DT)")
  13.     print("Тепл поврежд (Т1)<300 / Тепл поврежд (Т2)>300 / Тепл поврежд (Т3)>700 / Частич разр (PD)")
  14. ConsTop()
  15.  
  16. numBase = int(sheetRoster[4][8].value+1)
  17. print(numBase)
  18.  
  19. ############
  20. pIn = []
  21.  
  22. def setIn(H2,text):
  23.     try:
  24.         H2.append(float(input(text)))
  25.     except:
  26.         print("Ошибка ввода")
  27.         vvod()
  28. def vvod():
  29.     print('I Тип среды')
  30.     print("  1 - Tрансформатор с азотной или пленочной защитой масла")
  31.     print("  0 - Tрансформатор со свободным дыханием")
  32.     setIn(pIn,' Введите >> ')
  33.     print('II Время в эксплуатации')
  34.     print("  1 - Эксплуатация до 10 лет")
  35.     print("  0 - Эксплуатация более 10 лет")
  36.     setIn(pIn,' Введите >> ')
  37. vvod()
  38.  
  39.  
  40. def PpmToPr(GasPPM):
  41.     GasPr = np.divide(GasPPM, 1000000/100)
  42.     return GasPr
  43.  
  44. def Inborder(GasPPM,conRr,conName):
  45.     out = []
  46.     GasPr = PpmToPr(GasPPM)
  47.     for i in range(len(GasPr)):
  48.         if GasPr[i] >= conRr[i]:
  49.             out.append(conName[i])
  50.     print(out)
  51.     if len(out)==0:
  52.         return 0
  53.     else:
  54.         return 1
  55.  
  56. def GasBord(GasPPM,conName, pIn):
  57.     conRr110_500_do10Let = [0.01,0.01,0.001,0.01,0.005,0.05,0.2] # значение для трансформаторов с азотной или пленочной защитами масла
  58.     conRr110_500_do10LetD = [0.01,0.01,0.001,0.01,0.005,0.06,0.6] # для трансформаторов со свободным дыханием
  59.     conRr110_500_Posle10Let = [0.01,0.01,0.001,0.01,0.005,0.05,0.4] # значение для трансформаторов с азотной или пленочной защитами масла
  60.     conRr110_500_Posle10LetD = [0.01,0.01,0.001,0.01,0.005,0.06,0.8] # для трансформаторов со свободным дыханием
  61.     conRr750 = [0.01,0.002,0.001,0.002,0.001,0.05,0.4] #
  62.     conRr750Rctr = [0.01,0.003,0.001,0.001,0.002,0.05,0.4]
  63.     conRr = []
  64.     if pIn == [1,1]:
  65.         conRr = conRr110_500_do10Let
  66.     elif pIn == [0,1]:
  67.         conRr = conRr110_500_do10LetD
  68.     elif pIn == [1,0]:
  69.         conRr = conRr110_500_Posle10Let
  70.     elif pIn == [0,0]:
  71.         conRr = conRr110_500_Posle10LetD
  72.     else:
  73.         print("Ошибка ввода 1 или 2")
  74.         vvod()
  75.         GasBord(GasPPM,conName, pIn)
  76.     return Inborder(GasPPM, conRr, conName)
  77.    
  78.  
  79.  
  80.  
  81.  
  82. ###############
  83.  
  84. # чтение  
  85. def GetExell(numBase):
  86.     ArExell = []
  87.     for row in range(5,numBase):
  88.         try:
  89.             H2 = int(sheetRoster[row][0].value) #
  90.             CH4 = int(sheetRoster[row][1].value) #
  91.             C2H2 = int(sheetRoster[row][2].value) #
  92.             C2H4 = int(sheetRoster[row][3].value) #
  93.             C2H6 = int(sheetRoster[row][4].value) #
  94.             CO = int(sheetRoster[row][5].value) #
  95.             CO2 = int(sheetRoster[row][6].value) #
  96.         except:
  97.             print("Something went wrong")
  98.             ArExell.append("None")
  99.             continue
  100.         GasPPM = [H2, CH4, C2H2, C2H4, C2H6, CO, CO2]
  101.         conName = [ 'H2','CH4', 'C2H2', 'C2H4','C2H6', 'CO','CO2']
  102.         ArExell.append(GasBord(GasPPM,conName, pIn))
  103.     return ArExell
  104.  
  105. # Записьы
  106. i=1
  107. for item in GetExell(numBase):
  108.     sheetRoster.cell(i+4,10).value = int(item)
  109.     print(item)
  110.     i+=1
  111.  
  112.  
  113.  
  114. bookRoster.save("OUT_RDmaxExel.xlsx")
  115. print("ГОТОВО")
  116.  
  117. Book.close()
  118.  
  119. bookRoster.close()
  120. time.sleep(15)
  121.  
  122.  
  123.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement