ソースを参照

修复一个bug,修改逻辑为开切时存储

oldwine 5 ヶ月 前
コミット
70989138c8
2 ファイル変更9 行追加4 行削除
  1. 2 1
      models/billet_counter.py
  2. 7 3
      models/billet_trace_pusher.py

+ 2 - 1
models/billet_counter.py

@@ -207,7 +207,7 @@ class Counter:
             tmp = self.send_list[i]
             self.send_list[i] = []
             tmp.append(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
-            self.send_dst.data_from_casting(i, tmp)
+            self.send_dst.data_from_casting(i, tmp, True)
 
             # 检查自己是否是本炉最后一根钢坯
             if self.last_cutting_strand == i+1:
@@ -252,6 +252,7 @@ class Counter:
 
             # [坯号, 炉次信息, 定尺, 拉速, 开浇时间, 停浇时间]
             self.send_list[sno-1] = [billetNo, heatData, sizing, speed, time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())]
+            self.send_dst.data_from_casting(sno-1, self.send_list[sno-1])
             # self.sender.begin_cut(heatData, billetNo, heatIndex, sizing, speed)
             # 使用sender发送炉次首次开切信号
             if heatIndex == 1:

+ 7 - 3
models/billet_trace_pusher.py

@@ -175,18 +175,22 @@ class Trace_pusher:
             strandNo = i[0][9]
             self.total += 1
             self.strand[int(strandNo)-1] += 1
-            billetNo = self.current_heatNo + ccmNo + strandNo + '{:0>2}'.format(self.strand[int(strandNo)])
+            billetNo = self.current_heatNo + ccmNo + strandNo + '{:0>2}'.format(self.strand[int(strandNo)-1])
             billetsNo.append(billetNo)
             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)}")
 
 
-    def data_from_casting(self, i, data):
+    def data_from_casting(self, i, data, extend=False):
         with self.locks[i]:
-            if self.strands[i]:
+            if self.strands[i] and self.strands[i][0] != data[0]:
                 self.logger.warning(f"{i+1}流有未经过挡板的钢坯被后坯顶出系统")
                 self.strands[i] = data
+            elif self.strands[i] and self.strands[i][0] == data[0]:
+                self.logger.info(f"{i+1}流补充了钢坯停切时间")
+            elif extend:
+                self.logger.warning(f"{i+1}流对已经离开的钢坯补充停切时间,无效")
             else:
                 self.logger.info(f"{i+1}流新增钢坯存储")
                 self.strands[i] = data