an den EAS weiter gebaut
This commit is contained in:
+170
-197
@@ -1,4 +1,5 @@
|
|||||||
#from distutils.log import debug
|
#from distutils.log import debug
|
||||||
|
from logging import raiseExceptions
|
||||||
import math
|
import math
|
||||||
import sys
|
import sys
|
||||||
#from pickle import FALSE
|
#from pickle import FALSE
|
||||||
@@ -143,6 +144,8 @@ class MG():
|
|||||||
if (objectname.lower() == "turm"):
|
if (objectname.lower() == "turm"):
|
||||||
return self._turm.anzahl(key)
|
return self._turm.anzahl(key)
|
||||||
|
|
||||||
|
raise Exception("unkown element")
|
||||||
|
|
||||||
|
|
||||||
def getresult(self):
|
def getresult(self):
|
||||||
res = {
|
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["RA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RA_bi_ohne_SPS-Ansteuerung", 0)
|
||||||
self._Mengen["Doppelstreckenantrieb"] = anzahl.get("Doppelstreckenantrieb", 0)
|
self._Mengen["Doppelstreckenantrieb"] = anzahl.get("Doppelstreckenantrieb", 0)
|
||||||
|
|
||||||
|
def anzahl(self, partname):
|
||||||
|
return self._Mengen.get(partname, 0)
|
||||||
|
|
||||||
def tojson(self):
|
def tojson(self):
|
||||||
return json.dumps(self._Mengen)
|
return json.dumps(self._Mengen)
|
||||||
|
|
||||||
@@ -898,7 +904,7 @@ class Turm():
|
|||||||
|
|
||||||
|
|
||||||
class EA():
|
class EA():
|
||||||
def __init__(self, anzahl:dict):
|
def __init__(self, anzahl:dict, mg: type[MG]):
|
||||||
# Eingänge und Ausgänge jeder Hardwareeinheit
|
# Eingänge und Ausgänge jeder Hardwareeinheit
|
||||||
self.EAs = {
|
self.EAs = {
|
||||||
# # Bedienelemente_Steuerschrank
|
# # Bedienelemente_Steuerschrank
|
||||||
@@ -924,6 +930,7 @@ class EA():
|
|||||||
"bedienst_dreifach": (3, 3),
|
"bedienst_dreifach": (3, 3),
|
||||||
"bedienst_vierfach": (4, 4),
|
"bedienst_vierfach": (4, 4),
|
||||||
"bedienst_sechsfach": (6, 6),
|
"bedienst_sechsfach": (6, 6),
|
||||||
|
"EAs_Unterverteiler_direct": (7, 6),
|
||||||
|
|
||||||
# Ermittlung_Mengengeruest_Anzahl,
|
# Ermittlung_Mengengeruest_Anzahl,
|
||||||
"Sensor_Traversenabfrage_optisch": (1, 0),
|
"Sensor_Traversenabfrage_optisch": (1, 0),
|
||||||
@@ -957,32 +964,73 @@ class EA():
|
|||||||
"RA_bidirektional_abhebbar_gemeinsWend": (0, 1),
|
"RA_bidirektional_abhebbar_gemeinsWend": (0, 1),
|
||||||
"RA_bidirektional_ohne_SPS_Ansteuerung": (0, 0),
|
"RA_bidirektional_ohne_SPS_Ansteuerung": (0, 0),
|
||||||
"RA_in_RSM_bidirektional": (0, 1),
|
"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),
|
"Doppelstreckenantrieb": (0, 2),
|
||||||
"Doppelstreckenantriebgemeinsame_Wendung": (0, 1),
|
"Doppelstreckenantriebgemeinsame_Wendung": (0, 1),
|
||||||
"gemeinsame_Wendung": (1, 3),
|
"gemeinsame_Wendung": (0, 2),
|
||||||
|
"Frequenzumrichter": (1, 3),
|
||||||
}
|
}
|
||||||
|
|
||||||
self._Anzahl = anzahl
|
self._Anzahl = anzahl
|
||||||
Stopper = anzahl.get("Stopper", 0)
|
zmengen = mg.zusammenfassung()
|
||||||
if Stopper > 0:
|
self._Anzahl["bedienstation_einfach_Zug_Wechseln"] = zmengen.get("Bedientableau_1fach", 0)
|
||||||
self._Anzahl["Sensor_Stopper_induktiv"] = anzahl.get("Stopper", 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)
|
self._Anzahl["Kreuzungsweiche"] = mg.get_value_of_object("verbindungsstrecken_wechsel", "Kreuzungsweiche")
|
||||||
Doppelstreckenantriebgemeinsame_Wendung = anzahl.get("Doppelstreckenantriebgemeinsame_Wendung", 0)
|
self._Anzahl["Stopper"] = zmengen.get("Stopper", 0)
|
||||||
Ventil_Doppelstreckenantrieb_5_2_abhebbar = Doppelstreckenantrieb + Doppelstreckenantriebgemeinsame_Wendung
|
|
||||||
if Ventil_Doppelstreckenantrieb_5_2_abhebbar > 0:
|
self._Anzahl["Ventil_RA_3_2_abhebbar"] = zmengen.get("RA_uni_abhebbar", 0) +\
|
||||||
self._Anzahl["Ventil_Doppelstreckenantrieb_5_2_abhebbar"] = Ventil_Doppelstreckenantrieb_5_2_abhebbar
|
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):
|
def getE(self, partname):
|
||||||
return self.EAs[partname][0]
|
return self.EAs[partname][0]
|
||||||
@@ -1412,9 +1460,9 @@ class HW():
|
|||||||
# "busverteiler_8_rsm_direct"
|
# "busverteiler_8_rsm_direct"
|
||||||
# "korrektur_8_rsm_zusaetzlich_im_unterverteiler"
|
# "korrektur_8_rsm_zusaetzlich_im_unterverteiler"
|
||||||
|
|
||||||
motoren_uni_flyer_f40= mg.get_value_of_object("flyer_f40", "RA_uni") \
|
motoren_uni_flyer_f40= mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_uni") \
|
||||||
+ mg.get_value_of_object("flyer_f40", "RA_uni_abhebbar") \
|
+ mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_uni_abhebbar") \
|
||||||
+ mg.get_value_of_object("flyer_f40", "RA_uni_abhebbar_Korrektur")
|
+ mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_uni_abhebbar_Korrektur")
|
||||||
|
|
||||||
# TODO warum ist hier bi drin?
|
# TODO warum ist hier bi drin?
|
||||||
motoren_uni_rsm_direct = mg.get_value_of_object("rsm_direct", "RA_bi_abhebbar") \
|
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
|
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") + \
|
motoren_bi_flyer_f40 = mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_BI_abhebbar") + \
|
||||||
mg.get_value_of_object("flyer_f40", "RRA_BI_abhebbar_Korrektur") + \
|
mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_BI_abhebbar_Korrektur") + \
|
||||||
mg.get_value_of_object("flyer_f40", "RRA_bi") + \
|
mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_bi") + \
|
||||||
mg.get_value_of_object("flyer_f40", "RRA_bi_Korrektur") + \
|
mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RRA_bi_Korrektur") + \
|
||||||
mg.get_value_of_object("flyer_f40", "RRA_bi_ohne_SPS-Ansteuerung") + \
|
mg.get_value_of_object("flyer_f40_ejet_inc_putz", "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_ejet_inc_putz", "RRA_bi_ohne_SPS_Ansteuerung_Korrektur") + \
|
||||||
mg.get_value_of_object("flyer_f40", "Doppelstreckenantrieb")
|
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") + \
|
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_ejet_inc_putz", "RA_bi_abhebbar_Korrektur") + \
|
||||||
mg.get_value_of_object("flyer_f40", "RA_bi") + \
|
mg.get_value_of_object("flyer_f40_ejet_inc_putz", "RA_bi") + \
|
||||||
mg.get_value_of_object("flyer_f40", "Doppelstreckenantrieb") + \
|
mg.get_value_of_object("flyer_f40_ejet_inc_putz", "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_unger_Schiene-Ansteuerung")
|
||||||
|
|
||||||
self._anzahl["antrieb_bidirektional_halbleiter"] = motoren_bi_flyer_f40 + motoren_uni_rsm_direct
|
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)
|
self.assertEqual(mg.anzahl("Anzahl_Strecken/RSM"), 8)
|
||||||
|
|
||||||
def test_EA(self):
|
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 = {
|
Anzahl_EAS = {
|
||||||
"bedienstation_einfach_Zug_Wechseln": 9,
|
"bedienstation_einfach_Zug_Wechseln": 9,
|
||||||
"Weiche": 16,
|
"Weiche": 16,
|
||||||
}
|
}
|
||||||
eas = EA(Anzahl_EAS)
|
eas = EA(Anzahl_EAS, mg)
|
||||||
self.assertEqual(eas.anzahl("bedienstation_einfach_Zug_Wechseln"), 9)
|
self.assertEqual(eas.anzahl("bedienstation_einfach_Zug_Wechseln"), 9)
|
||||||
self.assertEqual(eas.anzahl("Weiche"), 16)
|
self.assertEqual(eas.anzahl("Weiche"), 16)
|
||||||
|
|
||||||
@@ -2187,10 +2266,32 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
self.assertEqual(eas.gesamt_A(), 25)
|
self.assertEqual(eas.gesamt_A(), 25)
|
||||||
|
|
||||||
def test_EA_implicit(self):
|
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 = {
|
Anzahl_EAS = {
|
||||||
"Stopper": 5,
|
"Stopper": 5,
|
||||||
}
|
}
|
||||||
eas = EA(Anzahl_EAS)
|
eas = EA(Anzahl_EAS, mg)
|
||||||
self.assertEqual(eas.anzahl("Stopper"), 5)
|
self.assertEqual(eas.anzahl("Stopper"), 5)
|
||||||
|
|
||||||
self.assertEqual(eas.getE("Stopper"), 0)
|
self.assertEqual(eas.getE("Stopper"), 0)
|
||||||
@@ -2203,6 +2304,37 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
self.assertEqual(eas.gesamt_A(), 0)
|
self.assertEqual(eas.gesamt_A(), 0)
|
||||||
|
|
||||||
def test_EA_A_La_Presa(self):
|
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 = {
|
Anzahl_EAS_A_La_Presa = {
|
||||||
"Bedienelemente_Steuerschrank": 1,
|
"Bedienelemente_Steuerschrank": 1,
|
||||||
"bedienstation_einfach_Zug_Wechseln": 9,
|
"bedienstation_einfach_Zug_Wechseln": 9,
|
||||||
@@ -2216,11 +2348,11 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
"RA_bidirektional": 3,
|
"RA_bidirektional": 3,
|
||||||
"RA_bidirektional_abhebbar": 3,
|
"RA_bidirektional_abhebbar": 3,
|
||||||
"RA_bidirektional_ohne_SPS_Ansteuerung": 4,
|
"RA_bidirektional_ohne_SPS_Ansteuerung": 4,
|
||||||
"RA_in_RSM_bi_Anzahl_Antriebe_je_Seite": 3,
|
|
||||||
"Doppelstreckenantrieb": 3,
|
"Doppelstreckenantrieb": 3,
|
||||||
"gemeinsame_Wendung": 1,
|
"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_E(), 60)
|
||||||
self.assertEqual(eas_alapresa.gesamt_A(), 95)
|
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_E), 69)
|
||||||
self.assertEqual(math.floor(res_eas_alapresa_A), 109)
|
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):
|
def test_HW(self):
|
||||||
@@ -2679,7 +2652,7 @@ def test2():
|
|||||||
"panel_pc": 1,
|
"panel_pc": 1,
|
||||||
"antrieb_unidirektional_halbleiter": 1,
|
"antrieb_unidirektional_halbleiter": 1,
|
||||||
}
|
}
|
||||||
eas = EA(Anzahl_EAS)
|
eas = EA(Anzahl_EAS, mg)
|
||||||
hw = HW(Anzahl_HW, mg, eas)
|
hw = HW(Anzahl_HW, mg, eas)
|
||||||
emo_eingabe = {
|
emo_eingabe = {
|
||||||
"Schaltschrank_aufstellen": 1,
|
"Schaltschrank_aufstellen": 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user