Bladeren bron

小冷床实际算法(测试版)

oldwine 5 maanden geleden
bovenliggende
commit
c9d2bb8623
1 gewijzigde bestanden met toevoegingen van 27 en 4 verwijderingen
  1. 27 4
      models/billet_trace_pusher.py

+ 27 - 4
models/billet_trace_pusher.py

@@ -22,6 +22,9 @@ class Trace_pusher:
         self.strand = [0, 0, 0, 0, 0, 0, 0, 0]
         self.count_lock = threading.Lock()
 
+        self.sizing_count_heatNo = "00000000"
+        self.sizing_count = {}
+
         self.pusher_left_list = []
         self.pusher_right_list = []
 
@@ -130,15 +133,15 @@ class Trace_pusher:
     def barrier_up_action(self, i):
         with self.locks[i]:
             if self.strands_buffer[i]:
+                self.barrier_checker[i] = True
+                time.sleep(5)
                 billetData = self.strands_buffer[i]
                 self.strands_buffer[i] = []
                 if self.strand_position[i] <= self.pusher_left.data:
                     self.logger.info(f"[TRACE]{i+1}流钢坯通过挡板进入推钢区域,在推钢机左侧")
-                    self.barrier_checker[i] = True
                     self.pusher_left_list.append(billetData)
                 else:
                     self.logger.info(f"[TRACE]{i+1}流钢坯通过挡板进入推钢区域,在推钢机右侧")
-                    self.barrier_checker[i] = True
                     self.pusher_right_list.append(billetData)
             
     def barrier_down_action(self, i):
@@ -269,7 +272,18 @@ class Trace_pusher:
             if self.current_heatData:
                 self.sender.billet_upload(self.current_heatData, billetNo, self.total, i[2], i[3], i[4], i[5])
         
-        self.logger.info(f"{self.current_heatNo}炉{len(billets)}根钢坯组成了一夹子:{'、'.join(billetsNo)}")
+        if self.sizing_count_heatNo != self.current_heatNo:
+            self.sizing_count_heatNo = self.current_heatNo
+            self.sizing_count = {}
+
+        if billets[0][2] not in self.sizing_count:
+            self.sizing_count[billets[0][2]] = 0
+
+        self.sizing_count[billets[0][2]] += 1
+
+        billet_unionNo = self.current_heatNo + '{:0>5}'.format(int(billets[0][2])) + '{:0>2}'.format(self.sizing_count[billets[0][2]])
+
+        self.logger.info(f"{self.current_heatNo}炉组号{billet_unionNo}钢坯{len(billets)}根:\n    {'、'.join(billetsNo)}")
 
 
     def data_from_casting(self, i, data, extend=False):
@@ -305,4 +319,13 @@ class Trace_pusher:
         self.logger.info(f"{self.current_heatNo}炉钢坯热送:{billetNo}")
 
 
-# [坯号, 炉次信息, 定尺, 拉速, 开浇时间, 停浇时间]
+    def clean_status(self):
+        self.logger.debug(f"[TRACE]小冷床状态清空")
+        with self.count_lock:
+            self.pusher_left_list = []
+            self.pusher_right_list = []
+            self.bed_left = [[], []]
+            self.bed_right = [[], []]
+
+
+# [坯号, 炉次信息, 定尺, 拉速, 开切时间, 停切时间]