From 290a569b66c81f7ff2323a5a7954559840b19fb4 Mon Sep 17 00:00:00 2001 From: "m.stangl" Date: Tue, 19 Apr 2022 17:47:53 +0200 Subject: [PATCH] an den EAS weiter gebaut --- rieter_ekalk.py | 367 ++++++++++++++++++++++-------------------------- 1 file changed, 170 insertions(+), 197 deletions(-) diff --git a/rieter_ekalk.py b/rieter_ekalk.py index bbc0ed4..526eca4 100644 --- a/rieter_ekalk.py +++ b/rieter_ekalk.py @@ -1,4 +1,5 @@ #from distutils.log import debug +from logging import raiseExceptions import math import sys #from pickle import FALSE @@ -143,6 +144,8 @@ class MG(): if (objectname.lower() == "turm"): return self._turm.anzahl(key) + raise Exception("unkown element") + def getresult(self): res = { @@ -802,6 +805,9 @@ class Verbindungsstrecken_Wechsel(): self._Mengen["RA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RA_bi_ohne_SPS-Ansteuerung", 0) self._Mengen["Doppelstreckenantrieb"] = anzahl.get("Doppelstreckenantrieb", 0) + def anzahl(self, partname): + return self._Mengen.get(partname, 0) + def tojson(self): return json.dumps(self._Mengen) @@ -898,7 +904,7 @@ class Turm(): class EA(): - def __init__(self, anzahl:dict): + def __init__(self, anzahl:dict, mg: type[MG]): # Eingänge und Ausgänge jeder Hardwareeinheit self.EAs = { # # Bedienelemente_Steuerschrank @@ -924,6 +930,7 @@ class EA(): "bedienst_dreifach": (3, 3), "bedienst_vierfach": (4, 4), "bedienst_sechsfach": (6, 6), + "EAs_Unterverteiler_direct": (7, 6), # Ermittlung_Mengengeruest_Anzahl, "Sensor_Traversenabfrage_optisch": (1, 0), @@ -957,32 +964,73 @@ class EA(): "RA_bidirektional_abhebbar_gemeinsWend": (0, 1), "RA_bidirektional_ohne_SPS_Ansteuerung": (0, 0), "RA_in_RSM_bidirektional": (0, 1), - "RA_in_RSM_bi_Anzahl_Antriebe_je_Seite": (0, 0), # Füll zeile. Eigentlich gibt es hier keine E/As. Dies wird hier nur die Anzahl gebraucht "Doppelstreckenantrieb": (0, 2), "Doppelstreckenantriebgemeinsame_Wendung": (0, 1), - "gemeinsame_Wendung": (1, 3), + "gemeinsame_Wendung": (0, 2), + "Frequenzumrichter": (1, 3), } self._Anzahl = anzahl - Stopper = anzahl.get("Stopper", 0) - if Stopper > 0: - self._Anzahl["Sensor_Stopper_induktiv"] = anzahl.get("Stopper", 0) + zmengen = mg.zusammenfassung() + self._Anzahl["bedienstation_einfach_Zug_Wechseln"] = zmengen.get("Bedientableau_1fach", 0) + self._Anzahl["bedienstation_automatische_Umfahrung"] = zmengen.get("Drucktaster_automatische_Umfahrung", 0)/4 # TODO warum durch 4? + self._Anzahl["bedienstation_zweifach_Wechs_BCD_10f"] = mg.get_value_of_object("rsm_direct", "Bedientableau_2fach") + + self._Anzahl["bedienstation_zweifach_Not_Aus_Reset"] = zmengen.get("Bedientableau_2fach", 0) + # self._Anzahl["bedienst_dreifach"] = zmengen.get(, 0) TODO warum ist das leer + # self._Anzahl["bedienst_vierfach"] = zmengen.get(, 0) + # self._Anzahl["bedienst_sechsfach"] = zmengen.get(, 0) + # self._Anzahl["EAs_Unterverteiler_direct"] = zmengen.get(, 0) # TODO HW Abhängigkeit ? + + # Ermittlung_Mengengeruest_Anzahl + self._Anzahl["Sensor_Traversenabfrage_optisch"] = zmengen.get("Sensor_optisch_Traverse", 0) + zmengen.get("Sensor_Spulenprüfung_voll/leer", 0) + + self._Anzahl["Reflexionslichtschranke_RSM_DIRECT"] = mg.get_value_of_object("rsm_direct", "Lichtschranke_Traverse") + self._Anzahl["Sensor_Stopper_induktiv"] = zmengen.get("Sensor_induktiv_Spulenalter_Zug_positionierung", 0) + self._Anzahl["Seilzugschalter"] = zmengen.get("Seilzugsschalter", 0) + + self._Anzahl["Weiche"] = zmengen.get("Weiche", 0) + self._Anzahl["Weiche_nach_PM_bipolar"] = zmengen.get("Weiche_nach_PM_(bipolar)", 0) + # self._Anzahl["gemeinsame_Weichenrueckstellung"] = zmengen.get(, 0) # TODO warum leer + self._Anzahl["Dreifach_Weiche_DIRECT"] = zmengen.get("Dreifachweiche", 0) - RA_unidirektional_abhebbar = anzahl.get("RA_unidirektional_abhebbar", 0) - RA_bidirektional_abhebbar = anzahl.get("RA_bidirektional_abhebbar", 0) - RA_bidirektional_abhebbar_gemeinsWend = anzahl.get("RA_bidirektional_abhebbar_gemeinsWend", 0) - Ventil_RA_3_2_abhebbar = RA_unidirektional_abhebbar + \ - RA_bidirektional_abhebbar + RA_bidirektional_abhebbar_gemeinsWend - if Ventil_RA_3_2_abhebbar > 0: - self._Anzahl["Ventil_RA_3_2_abhebbar"] = Ventil_RA_3_2_abhebbar - Doppelstreckenantrieb = anzahl.get("Doppelstreckenantrieb", 0) - Doppelstreckenantriebgemeinsame_Wendung = anzahl.get("Doppelstreckenantriebgemeinsame_Wendung", 0) - Ventil_Doppelstreckenantrieb_5_2_abhebbar = Doppelstreckenantrieb + Doppelstreckenantriebgemeinsame_Wendung - if Ventil_Doppelstreckenantrieb_5_2_abhebbar > 0: - self._Anzahl["Ventil_Doppelstreckenantrieb_5_2_abhebbar"] = Ventil_Doppelstreckenantrieb_5_2_abhebbar + self._Anzahl["Kreuzungsweiche"] = mg.get_value_of_object("verbindungsstrecken_wechsel", "Kreuzungsweiche") + self._Anzahl["Stopper"] = zmengen.get("Stopper", 0) + + self._Anzahl["Ventil_RA_3_2_abhebbar"] = zmengen.get("RA_uni_abhebbar", 0) +\ + zmengen.get("RA_uni_ohne_SPS-Ansteuerung", 0) + # + zmengen.get("", 0) # TODO B65 ist immer 0 + self._Anzahl["Ventil_Doppelstreckenantrieb_5_2_abhebbar"] = zmengen.get("Doppelstreckenantrieb", 0) + self._Anzahl["Blitzleuchte_Stoerung"] = zmengen.get("Werma_Rundumleuchte_Störung", 0) + + + self._Anzahl["Schnittstelle_Flyer_ElectroJet"] = mg.get_value_of_object("flyer_f40_ejet_inc_putz", "Interface_Doffer") + \ + mg.get_value_of_object("flyer_ejet", "Interface_Doffer") + # TODO die Referenz von MG B89 ist eine Leerzeile + # self._Anzahl["Schnittstelle_Flyer_Putzmaschine_ElectroJet"] = zmengen.get(, 0) # TODO ist leer + self._Anzahl["Schnittstelle_Flyer_Neuhauser"] = mg.get_value_of_object("flyer_f40_ejet_inc_putz", "Interface_Doffer") + self._Anzahl["FEldbux_UV_EinAusgang"] = mg.get_value_of_object("rsm_fa", "Meldelampe_Überstrom") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "Meldelampe_Überstrom") + \ + mg.get_value_of_object("putzmaschine_neuenhauser", "Meldelampe_Überstrom") + \ + mg.get_value_of_object("flyer_ejet", "Meldelampe_Überstrom") - # TODO Letzer Abschnit der EAS? "Zentraler Aufbau der SPS..." wo verwendet? + + # self._Anzahl["Spulenumsetzstation"] = zmengen.get(, 0) # ist immer 0 + + self._Anzahl["RA_unidirektional"] = zmengen.get("RA_uni", 0) + self._Anzahl["RA_unidirektional_abhebbar"] =zmengen.get("RA_uni_abhebbar", 0) + # self._Anzahl["RA_unidirektional_mit_gemeinsamer_Wendung"] = zmengen.get(, 0) # TODO immer 0 + self._Anzahl["RA_unidirektional_ohne_SPS_Ansteuerung"] = zmengen.get("RA_uni_ohne_SPS-Ansteuerung", 0) + self._Anzahl["RA_bidirektional"] = zmengen.get("RA_bi", 0) + self._Anzahl["RA_bidirektional_abhebbar"] = zmengen.get("RA_bi_abhebbar", 0) + # self._Anzahl["RA_bidirektional_abhebbar_gemeinsWend"] = zmengen.get(, 0) # TODO wird nicht befüllt + self._Anzahl["RA_bidirektional_ohne_SPS_Ansteuerung"] = zmengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) + # self._Anzahl["RA_in_RSM_bidirektional"] = zmengen.get(, 0) # TODO immer 0 + self._Anzahl["Doppelstreckenantrieb"] = zmengen.get("Doppelstreckenantrieb", 0) + # self._Anzahl["Doppelstreckenantriebgemeinsame_Wendung"] = zmengen.get(, 0) # TODO immer 0 + # self._Anzahl["gemeinsame_Wendung"] = zmengen.get(, 0) # TODO immer 0 + # self._Anzahl["Frequenzumrichter"] = zmengen.get(, 0) # TODO immer 0 def getE(self, partname): return self.EAs[partname][0] @@ -1412,9 +1460,9 @@ class HW(): # "busverteiler_8_rsm_direct" # "korrektur_8_rsm_zusaetzlich_im_unterverteiler" - motoren_uni_flyer_f40= mg.get_value_of_object("flyer_f40", "RA_uni") \ - + mg.get_value_of_object("flyer_f40", "RA_uni_abhebbar") \ - + mg.get_value_of_object("flyer_f40", "RA_uni_abhebbar_Korrektur") + motoren_uni_flyer_f40= mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_uni") \ + + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_uni_abhebbar") \ + + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_uni_abhebbar_Korrektur") # TODO warum ist hier bi drin? motoren_uni_rsm_direct = mg.get_value_of_object("rsm_direct", "RA_bi_abhebbar") \ @@ -1422,19 +1470,19 @@ class HW(): self._anzahl["antrieb_unidirektional_halbleiter"] = motoren_uni_flyer_f40 + motoren_uni_rsm_direct - motoren_bi_flyer_f40 = mg.get_value_of_object("flyer_f40", "RRA_BI_abhebbar") + \ - mg.get_value_of_object("flyer_f40", "RRA_BI_abhebbar_Korrektur") + \ - mg.get_value_of_object("flyer_f40", "RRA_bi") + \ - mg.get_value_of_object("flyer_f40", "RRA_bi_Korrektur") + \ - mg.get_value_of_object("flyer_f40", "RRA_bi_ohne_SPS-Ansteuerung") + \ - mg.get_value_of_object("flyer_f40", "RRA_bi_ohne_SPS_Ansteuerung_Korrektur") + \ - mg.get_value_of_object("flyer_f40", "Doppelstreckenantrieb") + motoren_bi_flyer_f40 = mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_BI_abhebbar") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_BI_abhebbar_Korrektur") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_bi") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_bi_Korrektur") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_bi_ohne_SPS-Ansteuerung") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_bi_ohne_SPS_Ansteuerung_Korrektur") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "Doppelstreckenantrieb") motoren_uni_rsm_direct = mg.get_value_of_object("flyer_ejet", "RA_bi_abhebbar") + \ - mg.get_value_of_object("flyer_f40", "RA_bi_abhebbar_Korrektur") + \ - mg.get_value_of_object("flyer_f40", "RA_bi") + \ - mg.get_value_of_object("flyer_f40", "Doppelstreckenantrieb") + \ - mg.get_value_of_object("flyer_f40", "RA_bi_abhebbar_unger_Schiene-Ansteuerung") + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_bi_abhebbar_Korrektur") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_bi") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "Doppelstreckenantrieb") + \ + mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_bi_abhebbar_unger_Schiene-Ansteuerung") self._anzahl["antrieb_bidirektional_halbleiter"] = motoren_bi_flyer_f40 + motoren_uni_rsm_direct @@ -2160,11 +2208,42 @@ class TestObjectMethods(unittest.TestCase): self.assertEqual(mg.anzahl("Anzahl_Strecken/RSM"), 8) def test_EA(self): + + Anzahl_MG = { + "SYSTEM":"DIRECT", + "RSM": 0, + "Flyer":0, + "Flyer_Puffer": 0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer": 0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer": 0, + "Neuenhauser-Putzmaschine":0, + "Neuenhauser-Putzmaschine_Vorpuffer":0, + "Neuenhauser-Putzmaschine_Nachpuffer":0, + "Cason-Putzmaschine":0, + "Cason-Putzmaschine_Vorpuffer":0, + "Cason-Putzmaschine_Nachpuffer":0, + "Puffer":0, + "Anzahl_der_Pufferstrecken_pro_Puffer":0, + "Begegnungsstrecke_Bypass":0, + "Turm":0, + "Turm_Anzahl_Wendlungen":0, + } + mg = MG(Anzahl_MG, + # rsm_direct=rsm_direct_eingabe, + # rsm_fa=rsm_fa_eingabe, + # flyer_f40=flyer_f40_eingabe, + # neuenhauser=neuenhauser_eingabe, + # flyer=flyer_eingabe, + # verbindungsstrecken_w=verbindungsstrecken_w_eingabe, + # puffer=puffer_eingabe, + # turm=turm_eingabe + ) Anzahl_EAS = { "bedienstation_einfach_Zug_Wechseln": 9, "Weiche": 16, } - eas = EA(Anzahl_EAS) + eas = EA(Anzahl_EAS, mg) self.assertEqual(eas.anzahl("bedienstation_einfach_Zug_Wechseln"), 9) self.assertEqual(eas.anzahl("Weiche"), 16) @@ -2187,10 +2266,32 @@ class TestObjectMethods(unittest.TestCase): self.assertEqual(eas.gesamt_A(), 25) def test_EA_implicit(self): + + Anzahl_MG = { + "SYSTEM":"DIRECT", + "RSM": 0, + "Flyer":0, + "Flyer_Puffer": 0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer": 0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer": 0, + "Neuenhauser-Putzmaschine":0, + "Neuenhauser-Putzmaschine_Vorpuffer":0, + "Neuenhauser-Putzmaschine_Nachpuffer":0, + "Cason-Putzmaschine":0, + "Cason-Putzmaschine_Vorpuffer":0, + "Cason-Putzmaschine_Nachpuffer":0, + "Puffer":0, + "Anzahl_der_Pufferstrecken_pro_Puffer":0, + "Begegnungsstrecke_Bypass":0, + "Turm":0, + "Turm_Anzahl_Wendlungen":0, + } + mg = MG(Anzahl_MG) Anzahl_EAS = { "Stopper": 5, } - eas = EA(Anzahl_EAS) + eas = EA(Anzahl_EAS, mg) self.assertEqual(eas.anzahl("Stopper"), 5) self.assertEqual(eas.getE("Stopper"), 0) @@ -2203,6 +2304,37 @@ class TestObjectMethods(unittest.TestCase): self.assertEqual(eas.gesamt_A(), 0) def test_EA_A_La_Presa(self): + Anzahl_MG = { + "SYSTEM":"DIRECT", + "RSM": 0, + "Flyer":0, + "Flyer_Puffer": 0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer": 0, + "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer": 0, + "Neuenhauser-Putzmaschine":0, + "Neuenhauser-Putzmaschine_Vorpuffer":0, + "Neuenhauser-Putzmaschine_Nachpuffer":0, + "Cason-Putzmaschine":0, + "Cason-Putzmaschine_Vorpuffer":0, + "Cason-Putzmaschine_Nachpuffer":0, + "Puffer":0, + "Anzahl_der_Pufferstrecken_pro_Puffer":0, + "Begegnungsstrecke_Bypass":0, + "Turm":0, + "Turm_Anzahl_Wendlungen":0, + } + mg = MG(Anzahl_MG, + # rsm_direct=rsm_direct_eingabe, + # rsm_fa=rsm_fa_eingabe, + # flyer_f40=flyer_f40_eingabe, + # neuenhauser=neuenhauser_eingabe, + # flyer=flyer_eingabe, + # verbindungsstrecken_w=verbindungsstrecken_w_eingabe, + # puffer=puffer_eingabe, + # turm=turm_eingabe + ) + Anzahl_EAS_A_La_Presa = { "Bedienelemente_Steuerschrank": 1, "bedienstation_einfach_Zug_Wechseln": 9, @@ -2216,11 +2348,11 @@ class TestObjectMethods(unittest.TestCase): "RA_bidirektional": 3, "RA_bidirektional_abhebbar": 3, "RA_bidirektional_ohne_SPS_Ansteuerung": 4, - "RA_in_RSM_bi_Anzahl_Antriebe_je_Seite": 3, "Doppelstreckenantrieb": 3, "gemeinsame_Wendung": 1, } - eas_alapresa = EA(Anzahl_EAS_A_La_Presa) + + eas_alapresa = EA(Anzahl_EAS_A_La_Presa, mg) self.assertEqual(eas_alapresa.gesamt_E(), 60) self.assertEqual(eas_alapresa.gesamt_A(), 95) @@ -2229,166 +2361,7 @@ class TestObjectMethods(unittest.TestCase): self.assertEqual(math.floor(res_eas_alapresa_E), 69) self.assertEqual(math.floor(res_eas_alapresa_A), 109) - def test_HW_A_La_Presa(self): - Anzahl_EAS_A_La_Presa = { - "Bedienelemente_Steuerschrank": 1, - "bedienstation_einfach_Zug_Wechseln": 9, - "bedienstation_zweifach_Not_Aus_Fahrdauerueb": 4, - "Sensor_Traversenabfrage_optisch": 21, - "Weiche": 16, - "Stopper": 3, - "Blitzleuchte_Stoerung": 2, - "Schnittstelle_Flyer_Mazoli": 3, - "RA_unidirektional_mit_gemeinsamer_Wendung": 9, - "RA_bidirektional": 3, - "RA_bidirektional_abhebbar": 3, - "RA_bidirektional_ohne_SPS_Ansteuerung": 4, - "RA_in_RSM_bi_Anzahl_Antriebe_je_Seite": 3, - "Doppelstreckenantrieb": 3, - "gemeinsame_Wendung": 1, - } - Anzahl_HW_A_La_Presa = { - # Material Anzahl - # Material in LL - # schaltschrank_anzahl - "schaltschrankgehäuse_und_zubehör": 1.2, - "einspeisungssatz": 1, - "kleinmaterial": 1, - # _Summe_Schaltschrank - # unterverteiler, - "unterverteilergehäuse_und_zubehör": 2, - "hauptschalter": 1, - "hauptschütz": 1, - "kleinmaterial_unterverteiler": 1, - # _Summe_Unterverteiler - # _Anzahl_Unterverteiler - - "schnittstellenrelais": 6, - - "antrieb_unidirektional_halbleiter": 9, - "antrieb_bidirektional_halbleiter": 13, - "antrieb_unidirektional_schütz": 0, - "antrieb_bidirektional_schütz": 0, - "motorschutzschalter": 0, - "gemeinsame_wendung": 1, - # _Summe_Motorstarter - - "bedienstation_1fach": 9, - "bedienst_2fach_red": 0, - "bedienstation_2": 4, - "bedienstation_3": 0, - "bedienstation_4": 0, - "bedienstation_6": 0, - # _Summe_Bedienstationen - - "panel_pc": 0, - "pc": 1, - "switch": 2, - "ewon_router_für_fernwartung": 1, - "drucker": 0, - # _Summe_PC - - "profibus_asi_gateway_netzteil": 0, - "ein_ausgangsmodul": 0, - "blindverschlüsse": 0, - "asi_buskabel": 0, - "buskabel_24V": 0, - "extension_plug": 0, - "profibus_stecker": 0, - # _Summe_ASI_Hardware - - # bis_64_E/A - # sps_hardware_vipa_100, - "cpu_114r_16de_8da": 0, - "mmc_512kb_memory_64": 0, - "eingangskarte_8de": 0, - "ausgangskarte_8da_bereits_integriert": 0, - "eingangskarte_16de": 0, - "ausgangskarte_16da_bereits_integriert": 0, - - # bis_1.000_E_A - # sps_hardware_siemens_s7_300 - "cpu_315_2_pn_dp_mit_ethernet": 1, - "cpu_315sn_net_vipa": 0, - "mmc_512kb_memory_1000": 1, - "cpu_317_2_pn_dp_mit_ethernet": 0, - "cpu_317sn_net_vipa": 0, - "cpu_319_2_pn_dp_mit_ethernet": 0, - "mmc_2mb_memory": 0, - "kommunikationsprozessor_cp_343_1": 0, - "et200m_anschaltung_im_153": 0, - "profibusstecker_je_1st_cpu_und_im153": 1, - "eingangskarte_sm_321_16de": 1, - "ausgangskarte_sm_322_16da": 1, - "frontstecker_für_ein_ausgangskarte_16": 2, - "eingangskarte_sm_321_32de": 2, - "ausgangskarte_sm_322_32da": 3, - "frontstecker_für_ein_ausgangskarte_32": 5, - - # über_1.000_E_A - # sps_hardware_siemens_s7_400, - "cpu_414_2": 0, - "baugruppenträger_ur_1": 0, - "stromversorgung_ps405_230vac10A": 0, - "pufferbatterie": 0, - "speicherkarte_2_mb": 0, - "ethernet_anschaltung_cp443_1": 0, - "eingangskarte_sm_421_32de": 0, - "ausgangskarte_sm_422_32da": 0, - "frontstecker_für_ein_ausgangskarte": 0, - - # _Summe_Material_in_LL - - # Material_vor_Ort - "movimot_fu_mit_anschaltung": 0, - "trolleytraversensabfrage_optisch": 21, - "reflexionslichtschranke_rsm_direct": 0, - "stoppersensor_induktiv": 3, - "seilzugschalter": 0, - "blitzleuchte": 2, - "spulenumsetzstation": 0, - "sensorkabel_je_20m": 24, - "stopper_weichenkabel_je_5m": 25, - "motorkabel_je_40m": 22, - "kabelpritschen_leitern": 117, - "kabelpritsche_rsm": 0, - "klemmkasten_flyer_und_putzmaschine": 3, - "klemmkasten_direct_in_rsm": 0, - "erdung": 1, - "kleinteile": 1, - - "sonstige_kabel_busleitung_etc": 1, - "zuleitung_unterverteiler_4x10_40m": 1, - "zuleitung_unterverteiler_7x4_40m": 1, - "profibuskabel": 1, - "schnittstellen_8x1mm": 3, - } - - - hw = HW(Anzahl_HW_A_La_Presa, EA(Anzahl_EAS_A_La_Presa)) - - self.assertEqual(hw.anzahl("schaltschrankgehäuse_und_zubehör"), 1.2) - self.assertEqual(hw.anzahl("einspeisungssatz"), 1) - self.assertEqual(hw.anzahl("kleinmaterial"), 1) - self.assertEqual(hw.anzahl("unterverteilergehäuse_und_zubehör"), 2) - self.assertEqual(hw.anzahl("hauptschalter"), 1) - self.assertEqual(hw.anzahl("hauptschütz"), 1) - self.assertEqual(hw.anzahl("kleinmaterial_unterverteiler"), 1) - - self.assertEqual(hw.anzahl("schnittstellenrelais"), 6) - - self.assertEqual(hw.anzahl("antrieb_unidirektional_halbleiter"), 9) - #self.assertEqual(hw.anzahl("antrieb_bidirektional_halbleiter"), 13) - #self.assertEqual(hw.anzahl("antrieb_unidirektional_schütz"), 0) - #self.assertEqual(hw.anzahl("antrieb_bidirektional_schütz"), 0) - self.assertEqual(hw.anzahl("motorschutzschalter"), 0) - self.assertEqual(hw.anzahl("gemeinsame_wendung"), 1) - - #self.assertEqual(hw.anzahl("antrieb_bidirektional_halbleiter"), 13) #in HW korrekte Rechnung auskommentiert? - #self.assertEqual(hw.summe_in_LL(), 8727) - #self.assertEqual(hw.summe_vorort(), 5503) - #self.assertEqual(hw.summe_gesamt(), 14230) def test_HW(self): @@ -2679,7 +2652,7 @@ def test2(): "panel_pc": 1, "antrieb_unidirektional_halbleiter": 1, } - eas = EA(Anzahl_EAS) + eas = EA(Anzahl_EAS, mg) hw = HW(Anzahl_HW, mg, eas) emo_eingabe = { "Schaltschrank_aufstellen": 1,