einige Teile von EA an Excel angepasst. An HW weiter gearbeitet

This commit is contained in:
2022-04-14 17:45:27 +02:00
parent 5b61b633b9
commit fb7330564e
+201 -268
View File
@@ -174,7 +174,7 @@ class MG():
#in Excel Zellwerte und Bezüge der Spalte "G" können ignoriert werden
zmengen = {
"Sensor_optisch_Traverse": 0,
"Sensor_induktiv_Spulenalter_(Zug_positionierung)": 0,
"Sensor_induktiv_Spulenalter_Zug_positionierung": 0,
"Sensor_Spulenprüfung_voll/leer": 0,
"Seilzugsschalter": 0,
"Drucktaster_automatische_Umfahrung": 0,
@@ -214,7 +214,7 @@ class MG():
self._turm._Mengen.get("Sensor_optisch_Traverse",0)
zmengen["Sensor_induktiv_Spulenalter_(Zug_positionierung)"] = self._flyer_f40._Mengen.get("Sensor_induktiv_Spulenhalter",0) +\
zmengen["Sensor_induktiv_Spulenalter_Zug_positionierung"] = self._flyer_f40._Mengen.get("Sensor_induktiv_Spulenhalter",0) +\
self._neuenhauser._Mengen.get("Sensorik_Zugpositionierung",0)
zmengen["Sensor_Spulenprüfung_voll/leer"] = self._neuenhauser._Mengen.get("Sensor_WT18_Spulenprüfung_voll/leer",0)
@@ -504,8 +504,8 @@ class Flyer_F40_EJet_inc_Putz():
"Interface_Doffer_Korrektur":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_Flyer_(bipolar)":0,
"Weiche_nach_Flyer_(bipolar)_Korrektur":0,
#"Weiche_nach_Flyer_bipolar":0,
"Weiche_nach_Flyer_bipolar_Korrektur":0,
"Dreifachweiche":0,
"Wechsel":0,
"Stopper":0,
@@ -519,10 +519,10 @@ class Flyer_F40_EJet_inc_Putz():
"RRA_bi":0,
#"RRA_bi_Korrektur":0,
#"RRA_bi_ohne_SPS-Ansteuerung":0,
"RRA_bi_ohne_SPS-Ansteuerung_Korrektur":0,
"RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0,
#"Doppelstreckenantrieb":0,
"Doppelstreckenantrieb_Korrektur":0,
"RA_bi_abhebbar_(unger._Schiene)":0,
"RA_bi_abhebbar_unger_Schiene":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein-Meldung":0,
@@ -558,10 +558,10 @@ class Flyer_F40_EJet_inc_Putz():
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
if (anzahl.get("Single-Line_/_Durchfahrt", False)):
self._Mengen["Weiche_nach_Flyer_(bipolar)"] = self._Flyer_Anzahl + anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
self._Mengen["Weiche_nach_Flyer_bipolar"] = self._Flyer_Anzahl + anzahl.get("Weiche_nach_Flyer_bipolar_Korrektur", 0)
else:
self._Mengen["Weiche_nach_Flyer_(bipolar)"] = anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
self._Mengen["Weiche_nach_Flyer_(bipolar)_Korrektur"] = anzahl.get("Weiche_nach_Flyer_(bipolar)_Korrektur", 0)
self._Mengen["Weiche_nach_Flyer_bipolar"] = anzahl.get("Weiche_nach_Flyer_bipolar_Korrektur", 0)
self._Mengen["Weiche_nach_Flyer_bipolar_Korrektur"] = anzahl.get("Weiche_nach_Flyer_bipolar_Korrektur", 0)
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
self._Mengen["Wechsel"] = anzahl.get("Wechsel", 0)
self._Mengen["Stopper"] = anzahl.get("Stopper", 0)
@@ -591,7 +591,7 @@ class Flyer_F40_EJet_inc_Putz():
self._Mengen["RRA_bi"] = anzahl.get("RRA_bi", 0)
if (anzahl.get("Single-Line_/_Durchfahrt", False)):
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RRA_bi_ohne_SPS-Ansteuerung_Korrektur", 0)
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = anzahl.get("RRA_bi_ohne_SPS_Ansteuerung_Korrektur", 0)
else:
self._Mengen["RRA_bi_ohne_SPS-Ansteuerung"] = self._Flyer_Anzahl
@@ -600,7 +600,7 @@ class Flyer_F40_EJet_inc_Putz():
else:
self._Mengen["Doppelstreckenantrieb"] = self._Flyer_Anzahl * math.floor(self._Mengen.get("Anzahl_Schienen", 0)/2) + anzahl.get("Doppelstreckenantrieb_Korrektur", 0)
self._Mengen["Doppelstreckenantrieb_Korrektur"] = anzahl.get("Doppelstreckenantrieb_Korrektur", 0)
self._Mengen["RA_bi_abhebbar_(unger._Schiene)"] = anzahl.get("RA_bi_abhebbar_(unger._Schiene)", 0)
self._Mengen["RA_bi_abhebbar_unger_Schiene"] = anzahl.get("RA_bi_abhebbar_unger_Schiene", 0)
self._Mengen["Meldelampe_Überstrom"] = self._Flyer_Anzahl + anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
self._Mengen["Meldelampe_Überstrom_Korrektur"] = anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
@@ -707,12 +707,12 @@ class Flyer_EJet():
"Anzahl_Schienen:":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Sensor_induktiv_Spulenalter_(Zug_positionierung)":0,
#"Sensor_induktiv_Spulenalter_Zug_positionierung":0,
#"Bedientableau_2fach":0,
#"Interface_Doffer":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_Flyer_(bipolar)":0,
#"Weiche_nach_Flyer_bipolar":0,
"Dreifachweiche":0,
#"Wechsel":0,
"Wechsel_Korrektur":0,
@@ -721,7 +721,7 @@ class Flyer_EJet():
"RA_bi_abhebbar_Korrektur":0,
"RA_bi":0,
#"Doppelstreckenantrieb":0,
"RA_bi_abhebbar_(unger._Schiene)":0,
"RA_bi_abhebbar_unger_Schiene":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein-Meldung":0,
@@ -739,21 +739,21 @@ class Flyer_EJet():
self._Mengen["Sensor_optisch_Traverse"] = self._Flyer_Anzahl * (2*self._Schienen_Anzahl + 3) + anzahl.get("Sensor_optisch_Traverse_Korrektur", 0)
self._Mengen["Sensor_optisch_Traverse_Korrektur"] = anzahl.get("Sensor_optisch_Traverse_Korrektur", 0)
self._Mengen["Sensor_induktiv_Spulenalter_(Zug_positionierung)"] = self._Flyer_Anzahl
self._Mengen["Sensor_induktiv_Spulenalter_Zug_positionierung"] = self._Flyer_Anzahl
self._Mengen["Bedientableau_2fach"] = self._Flyer_Anzahl
self._Mengen["Interface_Doffer"] = self._Flyer_Anzahl
self._Mengen["Weiche"] = self._Flyer_Anzahl * self._Schienen_Anzahl + anzahl.get("Weiche_Korrektur", 0)
self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0)
self._Mengen["Weiche_nach_Flyer_(bipolar)"] = self._Flyer_Anzahl
self._Mengen["Weiche_nach_Flyer_bipolar"] = self._Flyer_Anzahl
self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0)
self._Mengen["Wechsel"] = self._Flyer_Anzahl + anzahl.get("Wechsel_Korrektur", 0)
self._Mengen["Wechsel_Korrektur"] = anzahl.get("Wechsel_Korrektur", 0)
self._Mengen["RA_bi_ohne_SPS-Ansteuerung"] = self._Flyer_Anzahl
self._Mengen["RA_bi_abhebbar"] = self._Flyer_Anzahl + anzahl.get("RA_bi_abhebbar_(unger._Schiene)", 0) + anzahl.get("RA_bi_abhebbar_Korrektur", 0)
self._Mengen["RA_bi_abhebbar"] = self._Flyer_Anzahl + anzahl.get("RA_bi_abhebbar_unger_Schiene", 0) + anzahl.get("RA_bi_abhebbar_Korrektur", 0)
self._Mengen["RA_bi_abhebbar_Korrektur"] = anzahl.get("RA_bi_abhebbar_Korrektur", 0)
self._Mengen["RA_bi"] = anzahl.get("RA_bi", 0)
self._Mengen["Doppelstreckenantrieb"] = self._Flyer_Anzahl * math.floor(self._Schienen_Anzahl/2)
self._Mengen["RA_bi_abhebbar_(unger._Schiene)"] = anzahl.get("RA_bi_abhebbar_(unger._Schiene)", 0)
self._Mengen["RA_bi_abhebbar_unger_Schiene"] = anzahl.get("RA_bi_abhebbar_unger_Schiene", 0)
self._Mengen["Meldelampe_Überstrom"] = self._Flyer_Anzahl + anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
self._Mengen["Meldelampe_Überstrom_Korrektur"] = anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
self._Mengen["Hauptschalter_Ein-Meldung"] = self._Flyer_Anzahl + anzahl.get("Hauptschalter_Ein-Meldung_Korrektur", 0)
@@ -906,19 +906,21 @@ class EA():
# "Leuchtdrucktaster_Anlage_EIN": (1, 1),
# "Leuchtdrucktaster_Start_nach_Stoerung": (1, 1),
# "Leuchtdrucktaster_Laufzeitfehler": (1, 1),
# "Sammeleingang_Ueberstrom": (1, 1),
# "Sammeleingang_Not_Aus": (1, 1),
# "Drucktaster_Lampentest": (1, 0),
# "Sammeleingang_Ueberstrom": (5, 1),
# "Sammeleingang_Not_Aus": (2, 1),
# "Sammeleingang_Druckluft_fehlt": (1, 1),
# "Drucktaster_Reset": (1, 0),
# "Sammeleingang_Antriebe_abheben": (1, 1),
# "Reserve": (7, 9),
"Bedienelemente_Steuerschrank": (16, 16),
# "Sammeleingang_Antriebe_abheben": (1, 2),
# "Reserve": (9, 7),
"Bedienelemente_Steuerschrank": (24, 16),
# Bedienstation,
"bedienstation_1fach_Not_Aus": (1, 1),
"bedienstation_einfach_Zug_Wechseln": (1, 1),
"bedienstation_zweifach_Wechs_BCD_8f": (4, 1),
"bedienstation_zweifach_Not_Aus_Fahrdauerueb": (2, 2),
"bedienstation_automatische_Umfahrung": (1, 1),
"bedienstation_zweifach_Wechs_BCD_10f": (5, 1),
"bedienstation_zweifach_Not_Aus_Reset": (3, 3),
"bedienst_dreifach": (3, 3),
"bedienst_vierfach": (4, 4),
"bedienst_sechsfach": (6, 6),
@@ -930,19 +932,21 @@ class EA():
"Seilzugschalter": (1, 0),
"Weiche": (0, 1),
"Weiche_mit_gemeinsamer_Rueckstellung": (0, 1),
"Weiche_nach_PM_bipolar": (0, 2),
"gemeinsame_Weichenrueckstellung": (0, 1),
"Dreifach_Weiche_DIRECT": (0, 4),
"Kreuzungsweiche": (0, 10),
"Stopper": (0, 0),
"Stopper": (0, 1),
"Ventil_RA_3_2_abhebbar": (0, 1),
"Ventil_Doppelstreckenantrieb_5_2_abhebbar": (0, 2),
"Blitzleuchte_Stoerung": (0, 1),
"Schnittstelle_Flyer_Mazoli": (1, 2),
"Schnittstelle_Putzmaschine_Cason": (3, 1),
"Schnittstelle_Flyer_ElectroJet": (2, 2),
"Schnittstelle_Flyer_Putzmaschine_ElectroJet": (2, 2),
"Schnittstelle_Flyer_Neuhauser": (4, 4),
"FEldbux_UV_EinAusgang": (2, 1),
"Spulenumsetzstation": (0, 20),
"Spulenumsetzstation": (40, 20),
"RA_unidirektional": (0, 1),
"RA_unidirektional_abhebbar": (0, 1),
@@ -952,11 +956,11 @@ class EA():
"RA_bidirektional_abhebbar": (0, 2),
"RA_bidirektional_abhebbar_gemeinsWend": (0, 1),
"RA_bidirektional_ohne_SPS_Ansteuerung": (0, 0),
"RA_in_RSM_bidirektional": (0, 2),
"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": (0, 2),
"gemeinsame_Wendung": (1, 3),
}
self._Anzahl = anzahl
@@ -1382,20 +1386,25 @@ class HW():
if (mg.get_value_of_object("rsm_fa", "Flex_A_Premium") == False):
num_rsms = mg.get_value_of_object("rsm_fa", "Anzahl_RSM")
self._anzahl["unterverteiler_fuer_5_rsm_fa"] = math.ceil(num_rsms/5) + anzahl.get("korrektur_1_rsm_zusaetzlich_im_unterverteiler", 0)
# self._anzahl[] = anzahl.get(, 0)
# "unterverteiler_fuer_10_rsm_fa"
# "unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar"
# "korrektur_3_rsm_zusaetzlich_im_unterverteiler"
if (mg.get_value_of_object("rsm_fa", "Flex_A_Premium") == False):
num_rsms = mg.get_value_of_object("rsm_fa", "Anzahl_RSM")
self._anzahl["unterverteiler_fuer_10_rsm_fa"] = math.ceil(num_rsms/10)
else:
num_rsms = mg.get_value_of_object("rsm_fa", "Anzahl_RSM")
self._anzahl["unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar"] = math.ceil(num_rsms/3)
# TODO "korrektur_3_rsm_zusaetzlich_im_unterverteiler"
# "unterverteiler_fuer_4_rsm_direct"
# TODO "unterverteiler_fuer_4_rsm_direct" ist 0. Warum?
# "korrektur_4_rsm_zusaetzlich_im_unterverteiler"
# "unterverteiler_fuer_12_rsm_direct"
self._anzahl["unterverteiler_fuer_12_rsm_direct"] = mg.get_deckblatt_value("RSM") /12.
# "korrektur_12_rsm_zusaetzlich_im_unterverteiler"
# "unterverteiler_fuer_8_rsm_direct"
# TODO "unterverteiler_fuer_8_rsm_direct" ist 0, warum?
# "korrektur_8_rsm_zusaetzlich_im_unterverteiler"
self._anzahl["unterverteiler_fuer_8_rsm_direct"] = mg.get_deckblatt_value("RSM") /8.
# "busverteiler_6_rsm_direct"
# "korrektur_6_rsm_zusaetzlich_im_unterverteiler"
@@ -1403,6 +1412,123 @@ 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")
# TODO warum ist hier bi drin?
motoren_uni_rsm_direct = mg.get_value_of_object("rsm_direct", "RA_bi_abhebbar") \
+ mg.get_value_of_object("rsm_direct", "Doppelstreckenantrieb")
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_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")
self._anzahl["antrieb_bidirektional_halbleiter"] = motoren_bi_flyer_f40 + motoren_uni_rsm_direct
# "antrieb_unidirektional_schuetz" TODO wo sind die? in Excel 0
# "antrieb_bidirektional_schuetz"
# "motorschutzschalter" TODO von EAS holen?
# "wendeschuetzschaltung"
self._anzahl["frequenzumrichter"] = eas.anzahl("frequenzumrichter")
# # summe_motorstarter
# "bedienstation_1fach_kpl"
# "bedienst_2fach_wechs_bcd_10f"
# "bedienstation_2fach_kpl"
# "bedienstation_3fach_kpl"
# "bedienstation_4fach_kpl"
# "bedienstation_10fach_kpl"
# "drucktaster_automatische_umfahrung"
# "halter_fuer_drucktaster"
# # summe_bedienstationen
# # bis
# "sps_hardware_siemens_s7"
# "s7_1500_cpu_1515_2_pn_mit_ethernet"
# "s7_1500_cpu_1517_3_pn_dp_mit_ethernet"
# "s7_1500_mmc_12mb_"
# "simatic_pn_pn_coupler_6es7158_3ad10_0xa0_+_busadapter_ba_2xrj45"
# "_et200_mp_im155_5_pn"
# "et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"
# "profinetstrecker_je_1st_cpu_und_im153"
# "s7_1500_eingangskarte_sm_321_16de"
# "s7_1500_ausgangskarte_sm_322_16da"
# "s7_1500_eingangskarte_sm_321_32de"
# "s7_1500_ausgangskarte_sm_322_32da"
# # _summe_sps_hardware
# # ET200_SP
# "et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"
# "et200_sp_eingangskarte_8_de"
# "et200_sp_eingangskarte_16_de"
# "et200_sp_eingangskarte_8_do"
# "et200_sp_eingangskarte_16_do"
# "et200_sp_base_unit_neue_last"
# "et200_sp_base_unit_links_gebrueckt"
# "et200_sp_base_unit_neue_last"
# "et200_sp_base_unit_links_gebrueckt"
# # SLIO
# "et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"
# "slio_eingangskarte_4_de"
# "slio_eingangskarte_8_de"
# "slio_ausgangskarte_4_do"
# "slio_ausgangskarte_8_do"
# "slio_power_modul"
# "slio_4_x_dc_24v_4_x_dc_0v"
# "slio_8_x_dc_24v"
# "slio_8_x_dc_0v"
# # Summe_material_in_ll
# # MATERIAL VOR ORT
# "movimot_fu_mit_anschaltung"
# "sensor_optisch_traverse"
# "sensorhalter_ohne_sensor_"
# "reflexionslichtschranke_rsm_direct"
# "stoppersensor_induktiv_mit_halter"
# "sensor_spulenpruefung_voll_leer"
# "seilzugschalter"
# "seil_fuer_seilzugschalter"
# "blitzleuchte"
# "spulenumsetzstation"
# "sensorkabel_je_20m"
# "stopper_weichenkabel_je_5m"
# "motorkabel_je_30m"
# "kabelpritschen_leitern_200_60"
# "kabelpritsche_rsm_100_60"
# "kabelpritsche_rsm_50_35"
# "klemmkasten_rsm"
# "klemmkasten_direct_in_rsm"
# "erdung"
# "kleinteile_rohre_schellen_kabelbinder_ect"
# "kabel_fuer_klemmkasten_und_bts_60m"
# "zuleitung_75_m_unterverteiler_4x4mm2_400vac"
# "zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"
# "zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"
# "zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm"
# "zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm"
# "profinetkabel"
# "schnittstellen_8x1mm2_30m"
@@ -1653,191 +1779,6 @@ class EMO():
print(self._Mengen)
class calc_main_tab():
# Stundensätze
Preis_Ewerkstatt = 35 # €/h
Preis_Dienstl_LL = 50 # €/h
SPS_Programmierung = 80 # €/h
SPS_Programmtest = 80 # €/h
PC_Visualisierung = 15 # €/h
Montage_elektrisch = 50 # €/h
Inbetriebnahmetest_Hardware_durch_Montage = 50 # €/h
SPS_Inbetriebsetzung = 80 # €/h
PC_Inbetriebsetzung = 80 # €/h
Inbetriebnahmeunterstützung_durch_Montage = 50 # €/h
Übersetzung_Dokumentation = 1.000 # €/h
Schulung_vor_Ort_beim_Kunden = 50 # €/h
Abnahme = 50 # €/h
SPS_Anlagenbetreuung = 80 # €/h
PC_Anlagenbetreuung = 80 # €/h
Anlagenbetreuung_durch_Montage = 50 # €/h
montage_elektrisch = 41 # €/h
sps_inbetriebsetzung = 41 # €/h
pc_inbetriebsetzung = 41 # €/h
hotelkosten_pro_tag = 70 # €/h
def __init__(self, hw, dl):
"""
:type dl: class Dienstleistung
"""
# KOSTENART
installationsmaterial_vor_ort = hw.summe_vorort()
material_in_ll = hw.summe_in_LL()
HARDWARE_GESAMT = installationsmaterial_vor_ort + hw.summe_in_LL()
e_werkstatt = dl.stunden_elektrowerkstatt() * self.Preis_Ewerkstatt
dienstleistung_in_ll = dl.stunden_elektro_Landsberg() * self.Preis_Dienstl_LL
sps_programmierung = 7400
sps_programmtest = 0
pc_visualisierung = 2000
montage_elektrisch = self.Montage_elektrisch * 114
inbetriebnahmetest_hardware_durch_montage = 0
sps_inbetriebsetzung = 0
pc_inbetriebsetzung = 0
inbetriebnahmeunterstützung_durch_montage = 0
übersetzung_dokumentation = 1000
schulung_vor_ort_beim_kunden = 0
abnahme = 0
sps_anlagenbetreuung = 0
pc_anlagenbetreuung = 0
anlagenbetreuung_durch_montage = 0
# Reisekosten, Spesen
montage_elektrisch = 0
sps_inbetriebsetzung = 0
pc_inbetriebsetzung = 0
hotelkosten_pro_tag = 0
def test1_old():
# Anzahl der für das Projekt benutzten
deckblatt_eingabe = {
"SYSTEM":"",
"RSM":13,
"Flyer":7,
"Flyer_Puffer":13,
"Flyer_Electrojet_incl_intergrierte_Putzmaschine":4,
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2,
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":3,
"Neuenhauser-Putzmaschine":11,
"Neuenhauser-Putzmaschine_Vorpuffer":12,
"Neuenhauser-Putzmaschine_Nachpuffer":14,
"Cason-Putzmaschine":0,
"Cason-Putzmaschine_Vorpuffer":0,
"Cason-Putzmaschine_Nachpuffer":0,
"Puffer":5,
"Anzahl_der_Pufferstrecken_pro_Puffer":11,
"Begegnungsstrecke_Bypass":0,
"Turm":2,
"Turm_Anzahl_Wendlungen":5,
}
rsm_direct_eingabe = {}
rsm_fa_eingabe = {}
flyer_f40_eingabe = {}
neuenhauser_eingabe = {}
flyer_eingabe = {}
verbindungsstrecken_w_mengen = {}
puffer_eingabe = {}
turm_eingabe = {}
mg = MG(deckblatt_eingabe,
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_mengen,
puffer=puffer_eingabe,
turm=turm_eingabe)
Anzahl_EAS = {
"Bedienelemente_Steuerschrank" : 1,
# Bedienstation,
"bedienstation_1fach_Not_Aus": 0,
"bedienstation_einfach_Zug_Wechseln": 9,
"bedienstation_zweifach_Wechs_BCD_8f": 0,
"bedienstation_zweifach_Not_Aus_Fahrdauerueb": 4,
"bedienst_dreifach": 0,
"bedienst_vierfach": 0,
"bedienst_sechsfach": 0,
# Ermittlung_Mengengeruest
"Sensor_Traversenabfrage_optisch": 21,
"Reflexionslichtschranke_RSM_DIRECT": 0,
"Seilzugschalter": 0,
"Weiche": 16,
"Weiche_mit_gemeinsamer_Rueckstellung": 0,
"gemeinsame_Weichenrueckstellung": 0,
"Dreifach_Weiche_DIRECT": 0,
"Kreuzungsweiche": 0,
"Stopper": 3,
"Blitzleuchte_Stoerung": 2,
"Schnittstelle_Flyer_Mazoli": 3,
"Schnittstelle_Putzmaschine_Cason": 0,
"Spulenumsetzstation": 0,
"RA_unidirektional": 0,
"RA_unidirektional_abhebbar": 0,
"RA_unidirektional_mit_gemeinsamer_Wendung": 9,
"RA_unidirektional_ohne_SPS_Ansteuerung": 0,
"RA_bidirektional": 3,
"RA_bidirektional_abhebbar": 3,
"RA_bidirektional_abhebbar_gemeinsWend": 0,
"RA_bidirektional_ohne_SPS_Ansteuerung": 4,
"RA_in_RSM_bidirektional": 0,
"RA_in_RSM_bi_Anzahl_Antriebe_je_Seite": 3,
"Doppelstreckenantrieb": 3,
"Doppelstreckenantriebgemeinsame_Wendung": 0,
"gemeinsame_Wendung": 1,
}
Anzahl_HW = {
}
Anzahl_DL = {
"Pflichtenheft_Autom_Schnittstellen": 0,
# Test_und_Installation
"PC_Installation": 0,
## Dokumentation
"Bedienerhandbuch": 0,
"SPS_Doku": 0,
"PC_Doku": 0,
## Elektrowerkstatt
"Vormontage_im_Haus": 0,
}
eas = EA(Anzahl_EAS)
hw = HW(Anzahl_HW, mg, eas)
dl = Dienstleistung(Anzahl_DL, hw)
calc_main_tab(hw, dl)
def test_deckblatt_neuenhauser(self, deckblatt:MG):
self.assertEqual(deckblatt._neuenhauser.anzahl("Anzahl"), 11)
self.assertEqual(deckblatt._neuenhauser.anzahl("Anzahl_Vorstaustrecken"), 12)
self.assertEqual(deckblatt._neuenhauser.anzahl("Anzahl_Nachstaustrecken"), 14)
self.assertEqual(deckblatt._neuenhauser.anzahl("Sensor_optisch_Traverse"), 319)
self.assertEqual(deckblatt._neuenhauser.anzahl("Sensorik_Zugpositionierung"), 44)
self.assertEqual(deckblatt._neuenhauser.anzahl("Sensor_WT18_Spulenprüfung_voll/leer"), 22)
self.assertEqual(deckblatt._neuenhauser.anzahl("Bedientableau_2fach"), 11)
self.assertEqual(deckblatt._neuenhauser.anzahl("Interface_Putzmaschine"), 11)
self.assertEqual(deckblatt._neuenhauser.anzahl("Weiche"), 132)
class TestObjectMethods(unittest.TestCase):
@@ -1939,8 +1880,8 @@ class TestObjectMethods(unittest.TestCase):
"Interface_Doffer_Korrektur":2,
#"Weiche":0,
"Weiche_Korrektur":3,
#"Weiche_nach_Flyer_(bipolar)":0,
"Weiche_nach_Flyer_(bipolar)_Korrektur":2,
#"Weiche_nach_Flyer_bipolar":0,
"Weiche_nach_Flyer_bipolar_Korrektur":2,
"Dreifachweiche":7,
"Wechsel":6,
"Stopper":5,
@@ -1954,10 +1895,10 @@ class TestObjectMethods(unittest.TestCase):
"RRA_bi":0,
#"RRA_bi_Korrektur":0,
#"RRA_bi_ohne_SPS-Ansteuerung":0,
"RRA_bi_ohne_SPS-Ansteuerung_Korrektur":3,
"RRA_bi_ohne_SPS_Ansteuerung_Korrektur":3,
#"Doppelstreckenantrieb":0,
"Doppelstreckenantrieb_Korrektur":2,
"RA_bi_abhebbar_(unger._Schiene)":3,
"RA_bi_abhebbar_unger_Schiene":3,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":3,
#"Hauptschalter_Ein-Meldung":0,
@@ -2002,13 +1943,13 @@ class TestObjectMethods(unittest.TestCase):
#"Anzahl_Schienen:":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":3,
#"Sensor_induktiv_Spulenalter_(Zug_positionierung)":0,
#"Sensor_induktiv_Spulenalter_Zug_positionierung":0,
#"Bedientableau_2fach":0,
#"Interface_Doffer":0,
#"Weiche":0,
"Weiche_Korrektur":4,
#"Weiche_nach_Flyer_(bipolar)":0,
"Weiche_nach_Flyer_(bipolar)_Korrektur":3,
#"Weiche_nach_Flyer_bipolar":0,
"Weiche_nach_Flyer_bipolar_Korrektur":3,
"Dreifachweiche":3,
#"Wechsel":0,
"Wechsel_Korrektur":4,
@@ -2017,7 +1958,7 @@ class TestObjectMethods(unittest.TestCase):
"RA_bi_abhebbar_Korrektur":3,
"RA_bi":3,
#"Doppelstreckenantrieb":0,
"RA_bi_abhebbar_(unger._Schiene)":4,
"RA_bi_abhebbar_unger_Schiene":4,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":3,
#"Hauptschalter_Ein-Meldung":0,
@@ -2064,7 +2005,7 @@ class TestObjectMethods(unittest.TestCase):
flyer_f40=flyer_f40_eingabe,
neuenhauser=neuenhauser_eingabe,
flyer=flyer_eingabe,
verbindungsstrecken_w=verbindungsstrecken_w_mengen,
#verbindungsstrecken_w=,
puffer=puffer_eingabe,
turm=turm_eingabe)
#Testmethoden:
@@ -2107,7 +2048,7 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(deckblatt._flyer_f40.anzahl("Bedientableau_2fach"), 9)
self.assertEqual(deckblatt._flyer_f40.anzahl("Interface_Doffer"), 8)
self.assertEqual(deckblatt._flyer_f40.anzahl("Weiche"), 39)
self.assertEqual(deckblatt._flyer_f40.anzahl("Weiche_nach_Flyer_(bipolar)"), 8)
self.assertEqual(deckblatt._flyer_f40.anzahl("Weiche_nach_Flyer_bipolar"), 8)
self.assertEqual(deckblatt._flyer_f40.anzahl("Dreifachweiche"), 7)
self.assertEqual(deckblatt._flyer_f40.anzahl("Wechsel"), 6)
self.assertEqual(deckblatt._flyer_f40.anzahl("Stopper"), 5)
@@ -2117,7 +2058,7 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(deckblatt._flyer_f40.anzahl("RRA_BI_abhebbar"), 9)
self.assertEqual(deckblatt._flyer_f40.anzahl("RRA_bi_ohne_SPS-Ansteuerung"), 3)
self.assertEqual(deckblatt._flyer_f40.anzahl("Doppelstreckenantrieb"), 13.5)
self.assertEqual(deckblatt._flyer_f40.anzahl("RA_bi_abhebbar_(unger._Schiene)"), 3)
self.assertEqual(deckblatt._flyer_f40.anzahl("RA_bi_abhebbar_unger_Schiene"), 3)
self.assertEqual(deckblatt._flyer_f40.anzahl("Meldelampe_Überstrom"), 9)
self.assertEqual(deckblatt._flyer_f40.anzahl("Hauptschalter_Ein-Meldung"), 8)
self.assertEqual(deckblatt._flyer_f40.anzahl("Werma_Rundumleuchte_Störung"), 9)
@@ -2143,11 +2084,11 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(deckblatt._flyer.anzahl("Anzahl"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Anzahl_Schienen"), 13)
self.assertEqual(deckblatt._flyer.anzahl("Sensor_optisch_Traverse"), 206)
self.assertEqual(deckblatt._flyer.anzahl("Sensor_induktiv_Spulenalter_(Zug_positionierung)"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Sensor_induktiv_Spulenalter_Zug_positionierung"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Bedientableau_2fach"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Interface_Doffer"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Weiche"), 95)
self.assertEqual(deckblatt._flyer.anzahl("Weiche_nach_Flyer_(bipolar)"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Weiche_nach_Flyer_bipolar"), 7)
self.assertEqual(deckblatt._flyer.anzahl("Wechsel"), 11)
self.assertEqual(deckblatt._flyer.anzahl("Dreifachweiche"), 3)
self.assertEqual(deckblatt._flyer.anzahl("RA_bi_ohne_SPS-Ansteuerung"), 7)
@@ -2461,25 +2402,18 @@ class TestObjectMethods(unittest.TestCase):
"panel_pc": 1,
"antrieb_unidirektional_halbleiter": 1,
}
eas = EA(Anzahl_EAS)
hw = HW(Anzahl_HW, eas)
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)
hw = HW(Anzahl_HW, mg, eas)
self.assertEqual(hw.anzahl("hauptschalter"), 2)
self.assertEqual(hw.anzahl("panel_pc"), 1)
print (hw)
#self.assertEqual(hw.anzahl("antrieb_unidirektional_halbleiter"), 1)
self.assertEqual(hw.summe_gesamt(), 460.736)
self.assertEqual(hw.summe_in_LL(), 294)
self.assertEqual(hw.summe_vorort(), 166.736)
# mg = MG(deckblatt, {})
# eas = EA(Anzahl_EAS)
# hw = HW(Anzahl_HW, eas)
# hw = HW(Anzahl_HW, mg, eas)
# self.assertEqual(hw.anzahl("hauptschalter"), 2)
# self.assertEqual(hw.anzahl("panel_pc"), 1)
# print (hw)
# #self.assertEqual(hw.anzahl("antrieb_unidirektional_halbleiter"), 1)
# self.assertEqual(hw.summe_gesamt(), 460.736)
# self.assertEqual(hw.summe_in_LL(), 294)
# self.assertEqual(hw.summe_vorort(), 166.736)
# TODO: Check dependencies step by step
@@ -2591,8 +2525,8 @@ def test2():
"Interface_Doffer_Korrektur":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_Flyer_(bipolar)":0,
"Weiche_nach_Flyer_(bipolar)_Korrektur":0,
#"Weiche_nach_Flyer_bipolar":0,
"Weiche_nach_Flyer_bipolar_Korrektur":0,
"Dreifachweiche":0,
"Wechsel":0,
"Stopper":0,
@@ -2606,10 +2540,10 @@ def test2():
"RRA_bi":0,
#"RRA_bi_Korrektur":0,
#"RRA_bi_ohne_SPS-Ansteuerung":0,
"RRA_bi_ohne_SPS-Ansteuerung_Korrektur":0,
"RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0,
#"Doppelstreckenantrieb":0,
"Doppelstreckenantrieb_Korrektur":0,
"RA_bi_abhebbar_(unger._Schiene)":0,
"RA_bi_abhebbar_unger_Schiene":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein-Meldung":0,
@@ -2654,12 +2588,12 @@ def test2():
#"Anzahl_Schienen:":0,
#"Sensor_optisch_Traverse":0,
"Sensor_optisch_Traverse_Korrektur":0,
#"Sensor_induktiv_Spulenalter_(Zug_positionierung)":0,
#"Sensor_induktiv_Spulenalter_Zug_positionierung":0,
#"Bedientableau_2fach":0,
#"Interface_Doffer":0,
#"Weiche":0,
"Weiche_Korrektur":0,
#"Weiche_nach_Flyer_(bipolar)":0,
#"Weiche_nach_Flyer_bipolar":0,
"Dreifachweiche":0,
#"Wechsel":0,
"Wechsel_Korrektur":0,
@@ -2668,7 +2602,7 @@ def test2():
"RA_bi_abhebbar_Korrektur":0,
"RA_bi":0,
#"Doppelstreckenantrieb":0,
"RA_bi_abhebbar_(unger._Schiene)":0,
"RA_bi_abhebbar_unger_Schiene":0,
#"Meldelampe_Überstrom":0,
"Meldelampe_Überstrom_Korrektur":0,
#"Hauptschalter_Ein-Meldung":0,
@@ -2767,6 +2701,5 @@ def test_Unittests():
unittest.main()
if __name__ == '__main__':
# test1_old()
test2()
# test_Unittests()
#test_Unittests()