an den EAS weiter gebaut
This commit is contained in:
+170
-197
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user