|
@@ -31,6 +31,7 @@ import random
|
|
|
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg as FigureCanvas
|
|
|
import io
|
|
|
from flask import make_response
|
|
|
+from distutils.util import strtobool
|
|
|
|
|
|
import psutil
|
|
|
|
|
@@ -323,7 +324,7 @@ def dry_auto_test():
|
|
|
DI1 = 'DI_InputtingBean'
|
|
|
print('-- DI1 狀態更新:入豆中 --')
|
|
|
|
|
|
- elif DI1 == 'DI_InputtingBean' and (DI_UP_UltraSoniclist[0] > 55) and (FO1 != 'FO_OutputtingBean') :
|
|
|
+ elif DI1 == 'DI_InputtingBean' and (DI_UP_UltraSoniclist[0] > 35) and (FO1 != 'FO_OutputtingBean') :
|
|
|
DI1 = 'DI_OutputtingBean'
|
|
|
print('-- DI1 狀態更新:可出豆 --')
|
|
|
|
|
@@ -333,7 +334,7 @@ def dry_auto_test():
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -352,7 +353,7 @@ def dry_auto_test():
|
|
|
|
|
|
|
|
|
|
|
|
- if DO1 == ('DO_InputtingBean' and DO_UP_UltraSoniclist[0] > 55):
|
|
|
+ if DO1 == ('DO_InputtingBean' and DO_UP_UltraSoniclist[0] > 35):
|
|
|
DO1 = 'DO_OutputtingBean'
|
|
|
|
|
|
|
|
@@ -468,9 +469,11 @@ def ferment_auto():
|
|
|
def ferment_auto_test():
|
|
|
info = request.args.to_dict()
|
|
|
Ferment_Tank_bean_height = int(info['Ferment_Tank_bean_height'])
|
|
|
+ FermentAuto_fermenting = strtobool(info['FermentAuto_fermenting'])
|
|
|
print('發酵自動化_指定生豆高度: ', Ferment_Tank_bean_height)
|
|
|
+ print('發酵自動化_發酵排程: ', FermentAuto_fermenting, type(FermentAuto_fermenting))
|
|
|
|
|
|
- Ferment_btn = True
|
|
|
+ Ferment_btn = FermentAuto_fermenting
|
|
|
|
|
|
ferment_status = ferment_container_status.query.order_by(text('datetime desc')).first()
|
|
|
FI1 = ferment_status.Ferment_Input_1
|
|
@@ -494,13 +497,53 @@ def ferment_auto_test():
|
|
|
F_UP_tanklist = [F1, F2, F3, F4, F5, F6]
|
|
|
F_DOWN_tanklist = [F7, F8, F9, F10, F11, F12]
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ FermentUp_InputtingBean_number = int(F_UP_tanklist.count('F_InputtingBean'))
|
|
|
+ FermentUp_InputtingBeanPause_number = int(F_UP_tanklist.count('F_InputtingBean_Pause'))
|
|
|
+
|
|
|
+ FI_UP_UltraSoniclist = []
|
|
|
+ for i in range(1, 3, 1):
|
|
|
+ input_UltraSonic = ferment_input_UltraSonic.query.filter_by(tank_num='FI' + str(i)).order_by(text('datetime desc')).first()
|
|
|
+ UltraSonic = int(input_UltraSonic.UltraSonic)
|
|
|
+ FI_UP_UltraSoniclist.append(UltraSonic)
|
|
|
+ print('FI_UP_UltraSoniclist: ', FI_UP_UltraSoniclist)
|
|
|
+
|
|
|
+
|
|
|
+ if FI1 == 'FI_Waiting' and PO1 == 'PO_OutputtingBean':
|
|
|
+ FI1 = 'FI_InputtingBean'
|
|
|
+ print('-- FI1 狀態更新:入豆中 --')
|
|
|
+
|
|
|
+ elif FI1 == 'FI_InputtingBean' and (FI_UP_UltraSoniclist[0] <= 5) and (PO1 != 'PO_OutputtingBean') :
|
|
|
+ FI1 = 'FI_Waiting'
|
|
|
+ print('-- FI1 狀態更新:空桶等待 --')
|
|
|
+
|
|
|
+ elif FI1 == 'FI_InputtingBean' and (FI_UP_UltraSoniclist[0] >= 35) and (PO1 != 'PO_OutputtingBean') :
|
|
|
+ FI1 = 'FI_OutputtingBean'
|
|
|
+ print('-- FI1 狀態更新:可出豆 --')
|
|
|
+
|
|
|
+ elif FI1 == 'FI_OutputtingBean' and (FI_UP_UltraSoniclist[0] < 40) and PO1 == 'PO_OutputtingBean' and FermentUp_InputtingBean_number == 0 and FermentUp_InputtingBeanPause_number == 0:
|
|
|
+ FI1 = 'FI_InputtingBean'
|
|
|
+ print('-- FI1 狀態更新:入豆中 --')
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
- Ferment_InputtingBean_number = int(F_UP_tanklist.count('F_InputtingBean'))
|
|
|
- Ferment_InputtingBeanPause_number = int(F_UP_tanklist.count('F_InputtingBean_Pause'))
|
|
|
|
|
|
F_UP_UltraSoniclist = []
|
|
|
for i in range(1, 7, 1):
|
|
@@ -534,11 +577,11 @@ def ferment_auto_test():
|
|
|
F6 = 'F_InputtingBean_Finish'
|
|
|
print('-- F6 狀態更新:入料完成 --')
|
|
|
|
|
|
- if Ferment_InputtingBean_number >= 1:
|
|
|
+ if FermentUp_InputtingBean_number >= 1:
|
|
|
print('發酵槽 F'+str(F_UP_tanklist.index('F_InputtingBean')+1)+' 優先入豆中')
|
|
|
- print('-- F'+str(F_UP_tanklist.index('F_InputtingBean')+1)+' 入料中 --')
|
|
|
+ print('-- F'+str(F_UP_tanklist.index('F_InputtingBean')+1)+' 狀態更新:入料中 --')
|
|
|
|
|
|
- elif Ferment_InputtingBeanPause_number >= 1:
|
|
|
+ elif FermentUp_InputtingBeanPause_number >= 1:
|
|
|
if F1 == 'F_InputtingBean_Pause':
|
|
|
F1 = 'F_InputtingBean'
|
|
|
print('-- F1 狀態更新:入料中 --')
|
|
@@ -558,7 +601,7 @@ def ferment_auto_test():
|
|
|
F6 = 'F_InputtingBean'
|
|
|
print('-- F6 狀態更新:入料中 --')
|
|
|
|
|
|
- elif Ferment_InputtingBean_number == 0 and Ferment_InputtingBeanPause_number == 0:
|
|
|
+ elif FermentUp_InputtingBean_number == 0 and FermentUp_InputtingBeanPause_number == 0:
|
|
|
if F1 == 'F_Waiting':
|
|
|
F1 = 'F_InputtingBean'
|
|
|
print('-- F1 狀態更新:入料中 --')
|
|
@@ -578,7 +621,7 @@ def ferment_auto_test():
|
|
|
F6 = 'F_InputtingBean'
|
|
|
print('-- F6 狀態更新:入料中 --')
|
|
|
|
|
|
- elif FI1 != 'FI_InputtingBean' and Ferment_InputtingBean_number >= 1:
|
|
|
+ elif FI1 != 'FI_InputtingBean' and FermentUp_InputtingBean_number >= 1:
|
|
|
if F1 == 'F_InputtingBean' and F_UP_UltraSoniclist[0] < Ferment_Tank_bean_height:
|
|
|
F1 = 'F_InputtingBean_Pause'
|
|
|
print('-- F1 狀態更新:入料暫停 --')
|
|
@@ -624,12 +667,10 @@ def ferment_auto_test():
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -733,43 +774,8 @@ def ferment_auto_test():
|
|
|
print('-- F6 狀態更新:出豆中 --')
|
|
|
print('-- FO1 狀態更新:入豆中 --')
|
|
|
|
|
|
-
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- FI_UP_UltraSoniclist = []
|
|
|
- for i in range(1, 3, 1):
|
|
|
- input_UltraSonic = ferment_input_UltraSonic.query.filter_by(tank_num='FI' + str(i)).order_by(text('datetime desc')).first()
|
|
|
- UltraSonic = int(input_UltraSonic.UltraSonic)
|
|
|
- FI_UP_UltraSoniclist.append(UltraSonic)
|
|
|
- print('FI_UP_UltraSoniclist: ', FI_UP_UltraSoniclist)
|
|
|
-
|
|
|
- if FI1 == 'FI_Waiting' and PO1 == 'PO_OutputtingBean':
|
|
|
- FI1 = 'FI_InputtingBean'
|
|
|
- print('-- FI1 狀態更新:入豆中 --')
|
|
|
-
|
|
|
- elif FI1 == 'FI_InputtingBean' and ((FI_UP_UltraSoniclist[0] <= 30) and (PO1 != 'PO_OutputtingBean')) :
|
|
|
- FI1 = 'FI_Waiting'
|
|
|
- print('-- FI1 狀態更新:空桶等待 --')
|
|
|
-
|
|
|
- elif FI1 == 'FI_InputtingBean' and ((FI_UP_UltraSoniclist[0] > 30) and (PO1 != 'PO_OutputtingBean')) :
|
|
|
- FI1 = 'FI_OutputtingBean'
|
|
|
- print('-- FI1 狀態更新:可出豆 --')
|
|
|
-
|
|
|
- elif FI1 == 'FI_OutputtingBean' and (FI_UP_UltraSoniclist[0] < 40) and PO1 == 'PO_OutputtingBean' and Ferment_InputtingBean_number == 0 and Ferment_InputtingBeanPause_number == 0:
|
|
|
- FI1 = 'FI_InputtingBean'
|
|
|
- print('-- FI1 狀態更新:入豆中 --')
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -784,7 +790,7 @@ def ferment_auto_test():
|
|
|
|
|
|
|
|
|
|
|
|
- if FO1 == ('FO_InputtingBean' and FO_UP_UltraSoniclist[0] > 55):
|
|
|
+ if FO1 == ('FO_InputtingBean') and FO_UP_UltraSoniclist[0] > 35:
|
|
|
FO1 = 'FO_OutputtingBean'
|
|
|
print('-- FO1 狀態更新:可出豆 --')
|
|
|
|
|
@@ -830,30 +836,30 @@ def ferment_auto_test():
|
|
|
elif FO1 == 'FO_OutputtingBean' and FO_UP_UltraSoniclist[0] < 5:
|
|
|
FO1 = 'FO_Waiting'
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+ F_status = ferment_container_status()
|
|
|
+ F_status.Ferment_Input_1 = FI1
|
|
|
+ F_status.Ferment_Input_2 = FI2
|
|
|
+ F_status.Ferment_Tank_1 = F1
|
|
|
+ F_status.Ferment_Tank_2 = F2
|
|
|
+ F_status.Ferment_Tank_3 = F3
|
|
|
+ F_status.Ferment_Tank_4 = F4
|
|
|
+ F_status.Ferment_Tank_5 = F5
|
|
|
+ F_status.Ferment_Tank_6 = F6
|
|
|
+ F_status.Ferment_Tank_7 = F7
|
|
|
+ F_status.Ferment_Tank_8 = F8
|
|
|
+ F_status.Ferment_Tank_9 = F9
|
|
|
+ F_status.Ferment_Tank_10 = F10
|
|
|
+ F_status.Ferment_Tank_11 = F11
|
|
|
+ F_status.Ferment_Tank_12 = F12
|
|
|
+ F_status.Ferment_Output_1 = FO1
|
|
|
+ F_status.Ferment_Output_2 = FO2
|
|
|
+
|
|
|
+ db.session.add(F_status)
|
|
|
+
|
|
|
+ db.session.commit()
|
|
|
+
|
|
|
|
|
|
return jsonify({"Ferment_Input_1":FI1,
|
|
|
"Ferment_Tank_1":F1,
|