oldwine 3 månader sedan
förälder
incheckning
92a2ad6d2c
2 ändrade filer med 28 tillägg och 2 borttagningar
  1. 16 0
      models/billet_stacks.py
  2. 12 2
      models/billet_trace_pusher.py

+ 16 - 0
models/billet_stacks.py

@@ -0,0 +1,16 @@
+from utils.s7data import *
+
+class Billet_stack:
+    def __init__(self, name, data_s7: S7data):
+        self.name = name
+        self.height = data_s7.make_point(f"{name}堆垛高度")
+        self.toptotal = data_s7.make_point(f"{name}堆垛组数")
+        self.groups = []
+        self.vertical = data_s7.make_point(f"{name}堆垛摆放方式")
+        self.crane = data_s7.make_point(f"{name}堆垛行车")
+        self.update_sig = data_s7.make_point(f"{name}堆垛更新信号")
+        for i in range(12):
+            self.groups.append(data_s7.make_point(f"{name}堆垛第{i+1}组"))
+
+    def sda():
+        pass

+ 12 - 2
models/billet_trace_pusher.py

@@ -4,7 +4,7 @@ from utils.s7data import *
 from models.data_sender import *
 
 class Trace_pusher:
-    def __init__(self, data_s7: S7data, logger: logging.Logger, sender: Sender, strand_position: list, hostsend_flag=False):
+    def __init__(self, data_s7: S7data, logger: logging.Logger, sender: Sender, strand_position: list, hostsend_flag=False, hostmove_flag=False):
         self.data_s7 = data_s7
         self.logger = logger
         self.sender = sender
@@ -13,6 +13,7 @@ class Trace_pusher:
         self.locks = [threading.Lock() for i in range(8)]
         self.strand_position = strand_position
         self.hostsend_flag = hostsend_flag
+        self.hostmove_flag = hostmove_flag
         
         self.old_heatNo = "00000000"
         self.current_heatNo = "00000000"
@@ -87,11 +88,17 @@ class Trace_pusher:
                 self.data_s7.make_point('热送挡板[7]'),
             ]
 
+        if self.hostmove_flag:
+            self.hostmove_sig = data_s7.make_point('推钢机激光')
+            self.hostmove_sig.hmd_add(0)
+            self.hostmove_sig.set_convertor(lambda data: data > 19000)
+            self.hostmove_sig.set_excite_action(lambda: self.billet_to_stack("步进冷床", self.get_billet('right')))
+
         for i in range(8):
             # 坯子出现
             self.billet_position[i].allow_update(False)
             self.billet_position[i].set_state(False)
-            self.billet_position[i].set_convertor(lambda data: 12000 < data < 16000)
+            self.billet_position[i].set_convertor(lambda data: 12000 < data < 20000)
             self.billet_position[i].set_excite_action(lambda i=i: self.billet_out_action(i))
             self.billet_position[i].set_reset_action(lambda i=i: self.billet_in_buffer_action(i))
             self.billet_position[i].allow_update()
@@ -347,6 +354,9 @@ class Trace_pusher:
                 return tmp
         
         return []
+    
+    def billet_to_stack(self, stackNo, billets):
+        self.logger.info(f"有钢坯放入{stackNo}堆垛")