Johannes Müller 3 роки тому
батько
коміт
95770cd034

+ 86 - 3
box-pc/application/inputs/snap7_connect.py

@@ -51,10 +51,93 @@ class SiemensCPU(Input):
     data = struct.unpack(">BBBB", status)
     #print(''.join(["{:02X}".format(x) for x in inputs]))
 
-    cooling_enabled = tuple([data[1] & (1 << i) > 0 for i in range(8)])
-    heating_enabled = tuple([data[2] & (1 << i) > 0 for i in range(8)])
+    unterteil_faehrt_aus, \
+    unterteil_faehrt_ein, \
+    auswerfer_1_heben, \
+    auswerfer_1_senken, \
+    auswerfer_2_heben, \
+    auswerfer_2_senken, \
+    abdruecker_seitenteil_links_einfahren, \
+    abdruecker_seitenteil_links_ausfahren = [data[0] & (1 << i) > 0 for i in range(8)]
 
-    self._q.put(PlantState(timestamp, "S7", cpu_state, hydraulics_powered, cooling_enabled, heating_enabled))
+    abdruecker_seitenteil_rechts_einfahren, \
+    abdruecker_seitenteil_rechts_ausfahren, \
+    rolltor_schliessen, \
+    rolltor_oeffnen, \
+    gaswagen_ausfahren, \
+    gaswagen_einfahren, \
+    schwenkplatte_abklappen, \
+    schwenkplatte_einklappen = [data[1] & (1 << i) > 0 for i in range(8)]
+
+    losteil_1_unterteil_einfahren, \
+    losteil_1_unterteil_ausfahren, \
+    losteil_2_einfahren, \
+    losteil_2_ausfahren, \
+    losteil_3_einfahren, \
+    losteil_3_ausfahren, \
+    losteil_4_einfahren, \
+    losteil_4_ausfahren = [data[2] & (1 << i) > 0 for i in range(8)]
+
+    losteil_5_einfahren, \
+    losteil_5_ausfahren, \
+    seitenteil_links_schliessen, \
+    seitenteil_rechts_schliessen, \
+    seitenteil_links_und_rechts_oeffnen, \
+    sandschleuse_schliessen, \
+    sandschleuse_oeffnen, \
+    sandmessung_3_wege_ventil_schliessen = [data[3] & (1 << i) > 0 for i in range(8)]
+
+    sandmessung_3_wege_ventil_oeffnen, \
+    schuss, \
+    hubtisch_senken, \
+    hubtisch_heben, \
+    oberteil_heben, \
+    oberteil_senken = [data[4] & (1 << i) > 0 for i in range(6)]
+
+    self._q.put(PlantState(timestamp, "S7", cpu_state, 
+      unterteil_faehrt_aus, \
+      unterteil_faehrt_ein, \
+      auswerfer_1_heben, \
+      auswerfer_1_senken, \
+      auswerfer_2_heben, \
+      auswerfer_2_senken, \
+      abdruecker_seitenteil_links_einfahren, \
+      abdruecker_seitenteil_links_ausfahren, \
+
+      abdruecker_seitenteil_rechts_einfahren, \
+      abdruecker_seitenteil_rechts_ausfahren, \
+      rolltor_schliessen, \
+      rolltor_oeffnen, \
+      gaswagen_ausfahren, \
+      gaswagen_einfahren, \
+      schwenkplatte_abklappen, \
+      schwenkplatte_einklappen, \
+
+      losteil_1_unterteil_einfahren, \
+      losteil_1_unterteil_ausfahren, \
+      losteil_2_einfahren, \
+      losteil_2_ausfahren, \
+      losteil_3_einfahren, \
+      losteil_3_ausfahren, \
+      losteil_4_einfahren, \
+      losteil_4_ausfahren, \
+
+      losteil_5_einfahren, \
+      losteil_5_ausfahren, \
+      seitenteil_links_schliessen, \
+      seitenteil_rechts_schliessen, \
+      seitenteil_links_und_rechts_oeffnen, \
+      sandschleuse_schliessen, \
+      sandschleuse_oeffnen, \
+      sandmessung_3_wege_ventil_schliessen, \
+
+      sandmessung_3_wege_ventil_oeffnen, \
+      schuss, \
+      hubtisch_senken, \
+      hubtisch_heben, \
+      oberteil_heben, \
+      oberteil_senken
+    ))
 
   def get_timestamp(self, cpu_time):
     if not self.cpu_start_time:

+ 43 - 3
box-pc/application/structures/plant.py

@@ -7,8 +7,48 @@ class PlantState:
   source: str
 
   cpu_running: bool
-  hydraulics_powered: bool
-  cooling_enabled: tuple[bool, ...]
-  heating_enabled: tuple[bool, ...]
+  
+  unterteil_faehrt_aus: bool
+  unterteil_faehrt_ein: bool
+  auswerfer_1_heben: bool
+  auswerfer_1_senken: bool
+  auswerfer_2_heben: bool
+  auswerfer_2_senken: bool
+  abdruecker_seitenteil_links_einfahren: bool
+  abdruecker_seitenteil_links_ausfahren: bool
+
+  abdruecker_seitenteil_rechts_einfahren: bool
+  abdruecker_seitenteil_rechts_ausfahren: bool
+  rolltor_schliessen: bool
+  rolltor_oeffnen: bool
+  gaswagen_ausfahren: bool
+  gaswagen_einfahren: bool
+  schwenkplatte_abklappen: bool
+  schwenkplatte_einklappen: bool
+
+  losteil_1_unterteil_einfahren: bool
+  losteil_1_unterteil_ausfahren: bool
+  losteil_2_einfahren: bool
+  losteil_2_ausfahren: bool
+  losteil_3_einfahren: bool
+  losteil_3_ausfahren: bool
+  losteil_4_einfahren: bool
+  losteil_4_ausfahren: bool
+
+  losteil_5_einfahren: bool
+  losteil_5_ausfahren: bool
+  seitenteil_links_schliessen: bool
+  seitenteil_rechts_schliessen: bool
+  seitenteil_links_und_rechts_oeffnen: bool
+  sandschleuse_schliessen: bool
+  sandschleuse_oeffnen: bool
+  sandmessung_3_wege_ventil_schliessen: bool
+  
+  sandmessung_3_wege_ventil_oeffnen: bool
+  schuss: bool
+  hubtisch_senken: bool
+  hubtisch_heben: bool
+  oberteil_heben: bool
+  oberteil_senken: bool
 
   series = "plant"