Compare commits
27 Commits
4dc8125155
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 5701a2f5a0 | |||
| 6ada3b48b4 | |||
| 0f9ba338d4 | |||
| b1d7c011c6 | |||
| 0f61d73628 | |||
| ee8989ff5f | |||
| d93e2b6c28 | |||
| 6350ddf850 | |||
| 844aedc02b | |||
| 7b4c761656 | |||
| 66aa17a470 | |||
| 264b62681b | |||
| 2eeac20acd | |||
| 193fa1d277 | |||
| 44a565aa11 | |||
| 523d7ae097 | |||
| 3a0c1ed964 | |||
| 1f0e4137f2 | |||
| 4e70f5a600 | |||
| f4e507b2a2 | |||
| 4d011f2ebd | |||
| 1d655e471e | |||
| 2ff0e8b01d | |||
| 245592f215 | |||
| 4c64ee7f18 | |||
| cda9a6713d | |||
| efdb57fd52 |
@@ -16,7 +16,6 @@ dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
{
|
||||
// Verwendet IntelliSense zum Ermitteln möglicher Attribute.
|
||||
// Zeigen Sie auf vorhandene Attribute, um die zugehörigen Beschreibungen anzuzeigen.
|
||||
// Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Python-Modul",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
|
||||
"justMyCode": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+2
-1
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"python.formatting.provider": "yapf"
|
||||
"python.formatting.provider": "yapf",
|
||||
"python.analysis.typeCheckingMode": "off"
|
||||
}
|
||||
-272
@@ -1,272 +0,0 @@
|
||||
# HARDWARE
|
||||
|
||||
[HW_Einzelpreise]
|
||||
# Schaltschrank Einzelpreis
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 2000 #
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4663.45 # 790821101
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5720.94 # 790821102
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 2237.25 # 708003004
|
||||
speicherkarte_fuer_sps_512_kb = 172.5 # 708003012
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 3957 # 708003007
|
||||
speicherkarte_fuer_sps2_mb = 246 # 708003027
|
||||
sps_simatic_s7_1515_2 = 2173.9 # 790008100
|
||||
sps_simatic_s7_1517_3 = 3827.8 # 790008101
|
||||
sps_simatic_s7_1518_4 = 5892 # 6ES7518-4AP00-0AB0
|
||||
sps_et200_1512sp = 705.75 # 709000003
|
||||
memory_card_256_mb = 0 # 708015093
|
||||
memory_card_2_gb = 515.9 # 708015094
|
||||
et200_sp_ea_ebene = 0 # 790009001
|
||||
netzwerk_fernwartung = 750 # 790011001
|
||||
abgang_400v = 250 # ----
|
||||
abgang_24_v = 250 # ----
|
||||
anlagenrechner = 1657 # 790011000
|
||||
anlagenrechner_ohne_bildschirm = 1487 # 1x 711003025 PC; 1x 711003026 Filter; 1x 711003111Softnet; 1x711003049 UPS
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 1200 # 400009058
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 350 # 400009057
|
||||
netzwerk_display_adapter_lindy = 650 #
|
||||
zusaetzlicher_bildschirm = 1100 #
|
||||
unterverteiler_fuer_1neuenhauser_pm = 1000 # 790820210
|
||||
unterverteiler_fuer_1flyer = 1000 # 790820207_A
|
||||
unterverteiler_fuer_2flyer = 1000 # 790820209_A
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine = 1000 # 790820210
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine = 1000 # 790820210
|
||||
unterverteiler_fuer_puffer = 1000 # 790820210_F
|
||||
unterverteiler_fuer_5_rsm_fa = 1000 # 790820210_D
|
||||
unterverteiler_fuer_10_rsm_fa = 1000 # 790820210_F
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar = 1000 # 790820209_C
|
||||
unterverteiler_fuer_4_rsm_direct = 5584 # 790820300
|
||||
unterverteiler_fuer_12_rsm_direct = 8258 # 790820302
|
||||
unterverteiler_fuer_8_rsm_direct = 6736 # 790820301
|
||||
busverteiler_6_rsm_direct = 1747.53 # 790801002
|
||||
busverteiler_8_rsm_direct = 2052.26 # 790801001
|
||||
antrieb_unidirektional_halbleiter = 90
|
||||
antrieb_bidirektional_halbleiter = 105
|
||||
antrieb_unidirektional_schuetz = 0
|
||||
antrieb_bidirektional_schuetz = 0
|
||||
motorschutzschalter = 0
|
||||
wendeschuetzschaltung = 75
|
||||
frequenzumrichter = 250
|
||||
bedienstation_1fach_kpl = 59
|
||||
bedienst_2fach_wechs_bcd_10f = 105 # 790002024
|
||||
bedienstation_2fach_kpl = 65.63 # 790000020
|
||||
halter_bedientableau_2fach = 42 # 825304006
|
||||
bedienstation_3fach_kpl = 99 # 790000040
|
||||
halter_bedientableau_3fach = 46 # 825304007
|
||||
bedienstation_4fach_kpl = 121 # 790000045
|
||||
halter_bedientableau_4fach = 52 # 825304003
|
||||
bedienstation_6fach_kpl = 145.8 # 790000033
|
||||
halter_bedientableau_6fach = 56 # 825304002
|
||||
drucktaster_automatische_umfahrung = 28
|
||||
halter_fuer_drucktaster = 33
|
||||
|
||||
# ET200_SP
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45 = 198.90 # 709000006
|
||||
et200_sp_eingangskarte_8_de = 35 # 709000021
|
||||
et200_sp_eingangskarte_16_de = 58 # 709000022
|
||||
et200_sp_eingangskarte_8_do = 46 # 709000031_A
|
||||
et200_sp_eingangskarte_16_do = 66.30 # 709000032
|
||||
et200_sp_base_unit_neue_last_mit_potKlemmen = 23 # 709000014
|
||||
et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen = 15 # 709000015
|
||||
et200_sp_base_unit_neue_last = 19 # 709000011
|
||||
et200_sp_base_unit_links_gebrueckt = 11 # 709000010
|
||||
|
||||
# SLIO
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO = 175 # 709000500
|
||||
slio_eingangskarte_4_de = 31 # 709000510
|
||||
slio_eingangskarte_8_de = 38 # 709000511
|
||||
slio_ausgangskarte_4_do = 39 # 709000021
|
||||
slio_ausgangskarte_8_do = 46 # 709000021
|
||||
slio_power_modul = 18.22 # 709000014
|
||||
slio_4_x_dc_24v_4_x_dc_0v = 18 # 709000015
|
||||
slio_8_x_dc_24v = 18 # 709000011
|
||||
slio_8_x_dc_0v = 13 # 709000010
|
||||
|
||||
# MATERIAL VOR ORT
|
||||
movimot_fu_mit_anschaltung = 550
|
||||
sensor_optisch_traverse = 27 # 827072200
|
||||
sensorhalter_ohne_sensor = 8 # 827072xxx
|
||||
reflexionslichtschranke_rsm_direct = 45 # 827072207
|
||||
stoppersensor_induktiv_mit_halter = 63 # 827072205
|
||||
sensor_spulenpruefung_voll_leer = 126 # 827072204 + 721000041
|
||||
seilzugschalter = 150
|
||||
seil_fuer_seilzugschalter = 0.40
|
||||
blitzleuchte = 72 # 790000006
|
||||
spulenumsetzstation = 0
|
||||
sensorkabel_je_20m = 25 # 722001xxx
|
||||
stopper_weichenkabel_je_5m = 20 # 722001xxx
|
||||
motorkabel_je_30m = 26
|
||||
kabelpritschen_leitern_200_60 = 15
|
||||
kabelpritsche_rsm_100_60 = 12 # 715000020
|
||||
kabelpritsche_rsm_50_35 = 9 # 715003010
|
||||
klemmkasten_rsm = 120
|
||||
klemmkasten_direct_in_rsm = 122 # 790000703
|
||||
erdung = 13
|
||||
kleinteile_rohre_schellen_kabelbinder_ect = 750
|
||||
kabel_fuer_klemmkasten_und_bts_60m = 145
|
||||
kabel_fuer_1fach_bts_zug_wechseln = 50
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 146 # 725000050
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 450 # 725000057
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 280 # 725000057
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 145 # 725000007
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 136 # 725000004
|
||||
profinetkabel = 42 # 726001xxx
|
||||
schnittstellen_8x1mm2_30m = 35.4 # 725000019
|
||||
|
||||
[HW_Zeiten Hardwareplanung]
|
||||
# pro Einheit in min
|
||||
schaltschrankgehaeuse_b1x1200_zubehoer = 4200
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4200
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 4800
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps_512_kb = 0
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps2_mb = 0
|
||||
sps_simatic_s7_1515_2 = 0
|
||||
sps_simatic_s7_1517_3 = 0
|
||||
sps_simatic_s7_1518_4 = 0
|
||||
sps_et200_1512sp = 0
|
||||
memory_card_256_mb = 0
|
||||
memory_card_2_gb = 0
|
||||
et200_sp_ea_ebene =60
|
||||
netzwerk_fernwartung =0
|
||||
abgang_400v =60
|
||||
abgang_24_v =60
|
||||
anlagenrechner =0
|
||||
anlagenrechner_ohne_bildschirm = 0
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 60
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 0
|
||||
netzwerk_display_adapter_lindy = 30
|
||||
zusaetzlicher_bildschirm =0
|
||||
schaltschrank =0
|
||||
unterverteiler_fuer_1neuenhauser_pm =1200
|
||||
unterverteiler_fuer_1flyer =720
|
||||
unterverteiler_fuer_2flyer =1020
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine =810
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine =1110
|
||||
unterverteiler_fuer_puffer =1200
|
||||
unterverteiler_fuer_5_rsm_fa =960
|
||||
unterverteiler_fuer_10_rsm_fa =1020
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar =1200
|
||||
unterverteiler_fuer_4_rsm_direct =3000
|
||||
unterverteiler_fuer_12_rsm_direct =4800
|
||||
unterverteiler_fuer_8_rsm_direct =3900
|
||||
busverteiler_6_rsm_direct =600
|
||||
busverteiler_8_rsm_direct =960
|
||||
|
||||
[HW_Zeiten Elektro-Werkstatt]
|
||||
# pro Einheit in min
|
||||
schaltschrankgehaeuse_b1x1200_zubehoer = 2400
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4800
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5160
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps_512_kb = 0
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps2_mb = 0
|
||||
sps_simatic_s7_1515_2 = 0
|
||||
sps_simatic_s7_1517_3 = 0
|
||||
sps_simatic_s7_1518_4 = 0
|
||||
sps_et200_1512sp = 0
|
||||
memory_card_256_mb = 0
|
||||
memory_card_2_gb = 0
|
||||
et200_sp_ea_ebene =120
|
||||
netzwerk_fernwartung =0
|
||||
abgang_400v =90
|
||||
abgang_24_v =90
|
||||
anlagenrechner =0
|
||||
anlagenrechner_ohne_bildschirm = 0
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 240
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 0
|
||||
netzwerk_display_adapter_lindy = 120
|
||||
zusaetzlicher_bildschirm =0
|
||||
schaltschrank =0
|
||||
unterverteiler_fuer_1neuenhauser_pm =1200
|
||||
unterverteiler_fuer_1flyer =1020
|
||||
unterverteiler_fuer_2flyer =1200
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine =1140
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine =1200
|
||||
unterverteiler_fuer_puffer =1200
|
||||
unterverteiler_fuer_5_rsm_fa =1020
|
||||
unterverteiler_fuer_10_rsm_fa =1140
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar =1500
|
||||
unterverteiler_fuer_4_rsm_direct =3600
|
||||
unterverteiler_fuer_12_rsm_direct =4800
|
||||
unterverteiler_fuer_8_rsm_direct =4200
|
||||
busverteiler_6_rsm_direct =480
|
||||
busverteiler_8_rsm_direct =480
|
||||
antrieb_unidirektional_halbleiter =10
|
||||
antrieb_bidirektional_halbleiter =10
|
||||
antrieb_unidirektional_schuetz =0
|
||||
antrieb_bidirektional_schuetz =0
|
||||
motorschutzschalter =0
|
||||
wendeschuetzschaltung =0
|
||||
frequenzumrichter =0
|
||||
bedienstation_1fach_kpl =25
|
||||
bedienst_2fach_wechs_bcd_10f =90
|
||||
bedienstation_2fach_kpl =30
|
||||
halter_bedientableau_2fach =30
|
||||
bedienstation_3fach_kpl =25
|
||||
halter_bedientableau_3fach =30
|
||||
bedienstation_4fach_kpl =30
|
||||
halter_bedientableau_4fach =30
|
||||
bedienstation_6fach_kpl =45
|
||||
halter_bedienstation_6fach =30
|
||||
drucktaster_automatische_umfahrung =15
|
||||
halter_fuer_drucktaster =0
|
||||
|
||||
# ELEKTROMONTAGE
|
||||
[Elektro-Montagezeiten]
|
||||
Schaltschrank_aufstellen = 6.0 #(h/St)
|
||||
Unterverteiler_montieren = 3.0 #(h/St)
|
||||
Pritsche_montieren_umbauen_demontieren = 6.0 #(m/h)
|
||||
Pritsche_in_RSM_montieren = 21.0
|
||||
Motor_verdrahten_und_anschliessen = 0.9 #(h/Motor)
|
||||
Tableau_befestigen_und_anschliessen = 0.75 #(h/St)
|
||||
Schnittstelle_Flyer_Putzmaschine = 1.5 #(h/St)
|
||||
Sensoren_montieren = 0.45 #(h/St)
|
||||
Seilzugschalter_installieren = 4.0 #(h/St)
|
||||
Blitzleuchte_installieren = 0.5 #(h/St)
|
||||
Weiche_Stopper_anschliessen = 0.35 #(h/St)
|
||||
Erdung = 0.5 #(h)
|
||||
|
||||
# ANSCHLUSSLEISTUNG
|
||||
|
||||
# Key ist die Leistung des jeweiligen Motors [kW]. Value ist der Leistungsfaktor
|
||||
[cos phi]
|
||||
0.09=0.77
|
||||
0.12=0.77
|
||||
0.18=0.77
|
||||
0.37=0.7
|
||||
0.55=0.77
|
||||
0.75=0.73
|
||||
1.1=0.81
|
||||
|
||||
# Key ist die Leistung des jeweiligen Motors [kW]. Value ist der Strom [A]
|
||||
[Antriebsstrom]
|
||||
0.09=0.4
|
||||
0.12=0.55
|
||||
0.18=0.75
|
||||
0.37=1.24
|
||||
0.55=1.62
|
||||
0.75=1.75
|
||||
1.1=2.55
|
||||
|
||||
# ERGEBNIS
|
||||
[Kosten pro h] #[€/h] der jeweiligen Kostenart
|
||||
E_Werkstatt = 32
|
||||
Schaltschrankbau_extern_Mehrkosten = 0 #Wenn Schaltschrankbau extern die Mehrkosten eintragen Standard = 18 € Hier wird nur die Diverenz zwischen Kosten intern(32€) und dem externen Kosten eingetragen. Beispiel= extern = 50€ intern 32 € = Wert= 18€
|
||||
Dienstleistung_in_LL = 45
|
||||
Pflichtenheft = 60
|
||||
SPS_Programmierung = 75
|
||||
PC_Programmierung_Visualisierung = 75
|
||||
Montage_elektrisch = 36
|
||||
Inbetriebnahmetest_Hardware_durch_Montage = 36
|
||||
SPS_Inbetriebsetzung = 75
|
||||
PC_Inbetriebsetzung = 75
|
||||
Inbetriebnahmeunterstützung_durch_Montage = 36
|
||||
Dokumentation = 35
|
||||
Bedienungsanleitung_Emmert = 75
|
||||
Schulung_vor_Ort_beim_Kunden = 36
|
||||
Abnahme = 36
|
||||
SPS_Anlagenbetreuung = 75
|
||||
PC_Anlagenbetreuung = 60
|
||||
Anlagenbetreuung_durch_Montage = 36
|
||||
@@ -1,5 +1,89 @@
|
||||
# Rieter-EKalk
|
||||
|
||||
## Installation
|
||||
|
||||
Am einfachsten erhält man das Programm auf seinem Rechner, indem man dieses Repository per git client auf den lokalen Rechner klont.
|
||||
Anschliessend in den **/bin** Unterordner wechseln und die Umgebungsvariable ECALC in der *ecalc_setenv.bat* so modifizieren, dass der Pfad dort aufgeführt ist, an dem der Ordner nach dem clonen entstanden ist.
|
||||
|
||||
Angenommen ich clone das Projekt Rieter-Ekalk in meinen **Dokumente** Ordner in den den Unterordner **Rieter-Ekalk**, lautet der Pfad dann
|
||||
|
||||
```bat
|
||||
set ECALC=C:\Users\<MeinWindowsUsername>\Documents\Rieter\Rieter-EKalk
|
||||
```
|
||||
Anschliessend kann man das Programm durch einen Doppelklick auf eine der Batch JayJay.bat Dateien gestartet werden.
|
||||
|
||||
|
||||
## Aufruf des Programmes
|
||||
|
||||
Das Programm arbeitet nach dem **EVA** Prinzip, also **E**ingabe **V**erarbeitung **A**usgabe.
|
||||
Es gibt keine Oberfläche. Alle Eingaben werden in eine Textdatei geschrieben, welche vom Programm eingelesen und verarbeitet wird. Anschliessend werden die Ergebnisse in dem Wunschformat ausgegeben. Möglich ist eine Form von Ergebnisse als .xlsx oder als .json Datei.
|
||||
|
||||
Excel ist natürlich Standard. Zum Vergleich zweier unterschiedlicher Preise empfiehlt sich die Verwendung des json formats.
|
||||
|
||||
Will man z.B. die Kosten des Projekts Jayjay berechnen, müssen alle Angaben zu diesem Projekt in eine Textdatei nach dem Vorbild der Datei jayjay.cfg geschrieben werden. Diese Datei muss sich im **work** Ordner befinden.
|
||||
Anschliessend macht man einen **Doppelklick** auf ecalc_cmd.bat und erhält eine schwarze Dos Shell.
|
||||
Ein Aufruf des Programmes erfolgt über das Tippen des Befehle in dieser Shell:
|
||||
|
||||
```bat
|
||||
ecalc --infile=jayjay.cfg
|
||||
```
|
||||
Anschliessend sieht man, dass eine Ausgabe im Unterordner work entstanden ist. Per default entsteht eine *Excel Datei* **jayjay.xlsx** und ein *json file* **jayjay.json**.
|
||||
|
||||
|
||||
Die Json Datei ist eine Textdatei (mit einem beliebigen Editor wie z.B. notepad öffnen) mit allen Preisen zum jeweiligen Projekt.
|
||||
|
||||
```json
|
||||
{
|
||||
"ergebnisse": {
|
||||
"Installationsmaterial_vor_Ort": 20103.6,
|
||||
"Material_in_LL": 27363.44,
|
||||
"Schulung_vor_Ort_beim_Kunden": 0.0,
|
||||
"SPS_Anlagenbetreuung": 0.0,
|
||||
"Inbetriebnahmetest_Hardware_durch_Montage": 0.0,
|
||||
"Bedienungsanleitung_Emmert": 1125.0,
|
||||
"Dienstleistung_in_LL": 10129.5,
|
||||
"Pflichtenheft": 0.0,
|
||||
"Montage_elektrisch": 9424.8,
|
||||
"Abnahme": 0.0,
|
||||
"SPS_Programmierung": 11250.0,
|
||||
"SPS_Inbetriebsetzung": 9750.0,
|
||||
"PC_Inbetriebsetzung": 0.0,
|
||||
"PC_Anlagenbetreuung": 0.0,
|
||||
"PC_Programmierung_Visualisierung": 3375.0,
|
||||
"Schaltschrankbau_extern_Mehrkosten": 0.0,
|
||||
"Anlagenbetreuung_durch_Montage": 0.0,
|
||||
"Inbetriebnahmeunterstützung_durch_Montage": 4680.0,
|
||||
"E_Werkstatt": 6298.67,
|
||||
"Dokumentation": 560.0,
|
||||
"GESAMT": 104060.01
|
||||
},
|
||||
```
|
||||
|
||||
Da man normalerweise nicht gerne Befehle in einer Shell tippt, kann man diese Befehle auch in einer .bat Datei ausschreiben. Vor allem, wenn man bei der Auslegung einer Anlage diese Berechnung öfter ausführt.
|
||||
Die folgenden Zeilen rufen das Programm zweimal auf. Einmal mit der Standard Configurations Datei **Sivas_Daten.cfg**, und ein zweites mal mit der Configurations Datei **newer_prices.cfg** mit erneuerten Hardwarepreisen.
|
||||
|
||||
```.bat
|
||||
call ecalc_setenv.bat
|
||||
python %ECALC_LIB%\calc_site.py --infile=jayjay.cfg --xlsx=JayJay_old.xlsx
|
||||
python %ECALC_LIB%\calc_site.py --infile=jayjay.cfg --xlsx=JayJay_new.xlsx --config=newer_prices.cfg
|
||||
```
|
||||
|
||||
Die ersten Ergebnisse landen in der Excel Datei JayJay_old, die Berechnung mit den neueren Preisen in der Datie JayJay_new
|
||||
|
||||
## Aktualisierung der Preise aus der Sivas Datenbank
|
||||
|
||||
Da die Preise sich über die Zeit des Projektes ändern, gibt es im **bin** Ordner das Hilfspgrogramm **newSivasConfigExtract.bat**. Ein Doppelklickt schreibt eine neue Config Datei im Work Ordner mit allen neuen Preise der Teile, welche in dem Programm benötigt werden.
|
||||
|
||||
Für die Erneuerung der Config Datei *Sivas_Daten.cfg* muss zuerst ein Export aus dem Materialstammdaten von Sivas vorgenommen werden.
|
||||
|
||||
Nach dem Export aus Sivas, muss der Nutzer die neu entstandene Datei **grid_export.xlsx** in den **/cfg** Ordner dieses Programmes kopieren. Dann sollte der Nutzer die Datei auf die Spalten *"Teilenummer", "Bezeichnung1", "Laufende Materialkosten"* reduzieren, damit das Programm schneller läuft.
|
||||
|
||||
Der Doppelklick auf **newSivasConfigExtract.bat** schreibt dann im **/work** Ordner eine **neue .cfg Datei** mit den neuen Preisen.
|
||||
Diese sollte man dann unter einem eigenen Namen in den **/cfg** Ordner kopieren, so dass man diesen Stand der Preise für eine Berechnung mit dem Schalter --config verwenden kann.
|
||||
|
||||
## Libraries und Programmdateien
|
||||
|
||||
|
||||
*rieter_ekalk.py* : Umsetzung der Excel-Datei von Herrn Schellhammer und Boes in Python
|
||||
|
||||
*Abfrage_Sivas.py* : liest die aktuellen Preise der Bauteile aus einem Sivas_Export.xlsx aus und erzeugt eine config-Datei (Sivas_Abgleich.cfg) für einen Programmlauf mit den wahren Preisen
|
||||
@@ -16,6 +100,5 @@ speicherkarte_fuer_sps2_mb = 246.0
|
||||
sps_simatic_s7_1515_2 = 2162.35
|
||||
sps_simatic_s7_1517_3 = 4328.65
|
||||
sps_et200_1512sp = 705.75
|
||||
memory_card_256_mb = 266.35
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
[HW_Einzelpreise]
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 2877.85
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4972.14
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5994.88
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 2237.25
|
||||
speicherkarte_fuer_sps_512_kb = 172.5
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 3957.0
|
||||
speicherkarte_fuer_sps2_mb = 246.0
|
||||
sps_simatic_s7_1515_2 = 2150.8
|
||||
sps_simatic_s7_1517_3 = 4305.55
|
||||
sps_simatic_s7_1518_4 = 5892.0
|
||||
sps_et200_1512sp = 705.75
|
||||
memory_card_2_gb = 515.9
|
||||
et200_sp_ea_ebene = 417.48
|
||||
netzwerk_fernwartung = 678.15
|
||||
abgang_400v = 213.35
|
||||
abgang_24_v = 99.41
|
||||
anlagenrechner = 1427.05
|
||||
anlagenrechner_ohne_bildschirm = 1269.8367055018189
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 968.0
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 326.0
|
||||
netzwerk_display_adapter_lindy = 481.98
|
||||
zusaetzlicher_bildschirm = 170.0
|
||||
unterverteiler_fuer_1neuenhauser_pm = 701.05
|
||||
unterverteiler_fuer_1flyer = 1634.74
|
||||
unterverteiler_fuer_2flyer = 2324.64
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine = 701.05
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine = 701.05
|
||||
unterverteiler_fuer_puffer = 2180.42
|
||||
unterverteiler_fuer_5_rsm_fa = 2601.27
|
||||
unterverteiler_fuer_10_rsm_fa = 2180.42
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar = 3059.28
|
||||
unterverteiler_fuer_4_rsm_direct = 5897.51
|
||||
unterverteiler_fuer_12_rsm_direct = 9125.58
|
||||
unterverteiler_fuer_8_rsm_direct = 7330.96
|
||||
busverteiler_6_rsm_direct = 1746.36
|
||||
busverteiler_8_rsm_direct = 2052.26
|
||||
antrieb_unidirektional_halbleiter = 71.39
|
||||
antrieb_bidirektional_halbleiter = 76.2256573006879
|
||||
antrieb_unidirektional_schuetz = 68.5
|
||||
antrieb_bidirektional_schuetz = 123.18
|
||||
motorschutzschalter = 37.77
|
||||
wendeschuetzschaltung = 27.25
|
||||
bedienstation_1fach_kpl = 38.52
|
||||
bedienst_2fach_wechs_bcd_10f = 94.87
|
||||
bedienstation_2fach_kpl = 67.48290909090909
|
||||
halter_bedientableau_2fach = 34.84
|
||||
bedienstation_3fach_kpl = 88.32432432432432
|
||||
halter_bedientableau_3fach = 23.99
|
||||
bedienstation_4fach_kpl = 102.50559670781892
|
||||
halter_bedientableau_4fach = 30.49
|
||||
bedienstation_6fach_kpl = 91.33
|
||||
halter_bedientableau_6fach = 26.19
|
||||
drucktaster_automatische_umfahrung = 46.57
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45 = 198.9
|
||||
et200_sp_eingangskarte_8_de = 31.59
|
||||
et200_sp_eingangskarte_16_de = 57.1
|
||||
et200_sp_eingangskarte_8_do = 43.22
|
||||
et200_sp_eingangskarte_16_do = 66.3
|
||||
et200_sp_base_unit_neue_last_mit_potklemmen = 21.09
|
||||
et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen = 13.39
|
||||
et200_sp_base_unit_neue_last = 16.621860966339366
|
||||
et200_sp_base_unit_links_gebrueckt = 9.815854569787543
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_slio = 164.20142857142858
|
||||
slio_eingangskarte_4_de = 23.915
|
||||
slio_eingangskarte_8_de = 31.68
|
||||
slio_ausgangskarte_4_do = 31.59
|
||||
slio_ausgangskarte_8_do = 31.59
|
||||
slio_power_modul = 21.09
|
||||
slio_4_x_dc_24v_4_x_dc_0v = 13.39
|
||||
slio_8_x_dc_24v = 16.621860966339366
|
||||
slio_8_x_dc_0v = 9.815854569787543
|
||||
sensor_optisch_traverse = 29.41
|
||||
reflexionslichtschranke_rsm_direct = 44.88
|
||||
stoppersensor_induktiv_mit_halter = 38.08
|
||||
sensor_spulenpruefung_voll_leer = 345.6954020423345
|
||||
seilzugschalter = 223.74
|
||||
seil_fuer_seilzugschalter = 0.299
|
||||
blitzleuchte = 64.29
|
||||
sensorkabel_je_20m = 6.4712
|
||||
stopper_weichenkabel_je_5m = 1.5406000000000002
|
||||
motorkabel_je_30m = 21.212410173633465
|
||||
kabelpritschen_leitern_200_60 = 7.859553174017099
|
||||
kabelpritsche_rsm_100_60 = 5.95
|
||||
kabelpritsche_rsm_50_35 = 6.1
|
||||
klemmkasten_rsm = 142.96
|
||||
klemmkasten_direct_in_rsm = 93.67
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 149.959130518692
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 414.68625
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 414.68625
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 124.1031862745098
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 88.5401
|
||||
profinetkabel = 44.4
|
||||
schnittstellen_8x1mm2_30m = 33.07799374121692
|
||||
|
||||
[Preise durch Sivas nicht ermittelbar]
|
||||
erdung = ----
|
||||
kleinteile_rohre_schellen_kabelbinder_ect = ----
|
||||
kabel_fuer_klemmkasten_und_bts_60m = ----
|
||||
kabel_fuer_1fach_bts_zug_wechseln = ----
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
[HW_Einzelpreise]
|
||||
# Schaltschrank Einzelpreis
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = ----
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 790821101
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 790821102
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 708003004
|
||||
speicherkarte_fuer_sps_512_kb = 708003012
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 708003007
|
||||
speicherkarte_fuer_sps2_mb = 708003027
|
||||
sps_simatic_s7_1515_2 = 790008100
|
||||
sps_simatic_s7_1517_3 = 790008101
|
||||
sps_simatic_s7_1518_4 = 6ES7518-4AP00-0AB0
|
||||
sps_et200_1512sp = 709000003
|
||||
memory_card_256_mb = 708015093
|
||||
memory_card_2_gb = 708015094
|
||||
et200_sp_ea_ebene = 790009001
|
||||
netzwerk_fernwartung = 790011001
|
||||
abgang_400v = ----
|
||||
abgang_24_v = ----
|
||||
anlagenrechner = 790011000
|
||||
anlagenrechner_ohne_bildschirm = 711003025 + 711003026 + 711003111 + 711003049
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 400009058
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 400009057
|
||||
netzwerk_display_adapter_lindy = ----
|
||||
zusaetzlicher_bildschirm = ----
|
||||
|
||||
unterverteiler_fuer_1neuenhauser_pm = 790820210
|
||||
unterverteiler_fuer_1flyer = 790820207_A
|
||||
unterverteiler_fuer_2flyer = 790820209_A
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine = 790820210
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine = 790820210
|
||||
unterverteiler_fuer_puffer = 790820210_F
|
||||
|
||||
unterverteiler_fuer_5_rsm_fa = 790820210_D
|
||||
|
||||
unterverteiler_fuer_10_rsm_fa = 790820210_F
|
||||
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar = 790820209_C
|
||||
|
||||
unterverteiler_fuer_4_rsm_direct = 790820300
|
||||
|
||||
unterverteiler_fuer_12_rsm_direct = 790820302
|
||||
|
||||
unterverteiler_fuer_8_rsm_direct = 790820301
|
||||
|
||||
busverteiler_6_rsm_direct = 790801002
|
||||
|
||||
busverteiler_8_rsm_direct = 790801001
|
||||
|
||||
antrieb_unidirektional_halbleiter = ----
|
||||
antrieb_bidirektional_halbleiter = ----
|
||||
antrieb_unidirektional_schuetz = ----
|
||||
antrieb_bidirektional_schuetz = ----
|
||||
motorschutzschalter = ----
|
||||
wendeschuetzschaltung = ----
|
||||
frequenzumrichter = ----
|
||||
|
||||
|
||||
bedienstation_1fach_kpl = ----
|
||||
bedienst_2fach_wechs_bcd_10f = 790002024
|
||||
bedienstation_2fach_kpl = 790000020
|
||||
halter_bedientableau_2fach = 825304006
|
||||
bedienstation_3fach_kpl = 790000040
|
||||
halter_bedientableau_3fach = 825304007
|
||||
bedienstation_4fach_kpl = 790000045
|
||||
halter_bedientableau_4fach = 825304003
|
||||
bedienstation_6fach_kpl = 790000033
|
||||
halter_bedientableau_6fach = 825304002
|
||||
drucktaster_automatische_umfahrung = ----
|
||||
halter_fuer_drucktaster = ----
|
||||
|
||||
# ET200_SP
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45 = 709000006
|
||||
et200_sp_eingangskarte_8_de = 709000021
|
||||
et200_sp_eingangskarte_16_de = 709000022
|
||||
et200_sp_eingangskarte_8_do = 709000031_A
|
||||
et200_sp_eingangskarte_16_do = 709000032
|
||||
et200_sp_base_unit_neue_last_mit_potKlemmen = 709000014
|
||||
et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen = 709000015
|
||||
et200_sp_base_unit_neue_last = 709000011
|
||||
et200_sp_base_unit_links_gebrueckt = 709000010
|
||||
|
||||
# SLIO
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO = 709000500
|
||||
slio_eingangskarte_4_de = 709000510
|
||||
slio_eingangskarte_8_de = 709000511
|
||||
slio_ausgangskarte_4_do = 709000021
|
||||
slio_ausgangskarte_8_do = 709000021
|
||||
slio_power_modul = 709000014
|
||||
slio_4_x_dc_24v_4_x_dc_0v = 709000015
|
||||
slio_8_x_dc_24v = 709000011
|
||||
slio_8_x_dc_0v = 709000010
|
||||
|
||||
# MATERIAL VOR ORT
|
||||
movimot_fu_mit_anschaltung = ----
|
||||
sensor_optisch_traverse = 827072200
|
||||
sensorhalter_ohne_sensor = 827072xxx
|
||||
reflexionslichtschranke_rsm_direct = 827072207
|
||||
stoppersensor_induktiv_mit_halter = 827072205
|
||||
sensor_spulenpruefung_voll_leer = 827072204 + 721000041
|
||||
seilzugschalter = ----
|
||||
seil_fuer_seilzugschalter = ----
|
||||
blitzleuchte = 790000006
|
||||
spulenumsetzstation = ----
|
||||
sensorkabel_je_20m = 722001xxx
|
||||
stopper_weichenkabel_je_5m = 722001xxx
|
||||
motorkabel_je_30m = ----
|
||||
kabelpritschen_leitern_200_60 = ----
|
||||
kabelpritsche_rsm_100_60 = 715000020
|
||||
kabelpritsche_rsm_50_35 = 715003010
|
||||
klemmkasten_rsm = ----
|
||||
klemmkasten_direct_in_rsm = 790000703
|
||||
erdung = ----
|
||||
kleinteile_rohre_schellen_kabelbinder_ect = ----
|
||||
kabel_fuer_klemmkasten_und_bts_60m = ----
|
||||
kabel_fuer_1fach_bts_zug_wechseln = ----
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 725000050
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 725000057
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 725000057
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 725000007
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 725000004
|
||||
profinetkabel = 726001xxx
|
||||
schnittstellen_8x1mm2_30m = 725000019
|
||||
@@ -0,0 +1,2 @@
|
||||
call ecalc_setenv.bat
|
||||
python %ECALC_LIB%\calc_site.py %*
|
||||
@@ -0,0 +1,4 @@
|
||||
call ecalc_setenv.bat
|
||||
REM nun vergleich als .json files
|
||||
python %ECALC_LIB%\calc_site.py --infile=jayjay.cfg --json=JayJay_old.json
|
||||
python %ECALC_LIB%\calc_site.py --infile=jayjay.cfg --config=Sivas_Daten_jayjay.cfg --json=JayJay_new.json
|
||||
@@ -0,0 +1,3 @@
|
||||
call ecalc_setenv.bat
|
||||
python %ECALC_LIB%\calc_site.py --infile=jayjay.cfg --xlsx=JayJay_old.xlsx
|
||||
python %ECALC_LIB%\calc_site.py --infile=jayjay.cfg --config=Sivas_Daten_jayjay.cfg --xlsx=JayJay_new.xlsx
|
||||
@@ -0,0 +1,2 @@
|
||||
call ecalc_setenv.bat
|
||||
start
|
||||
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
set ECALC=C:\Users\m.stangl\Documents\02-Verbesserungen\06-Rieter-Kalkulationen\Rieter-EKalk
|
||||
set ECALC_BIN=%ECALC%\bin
|
||||
set ECALC_WORK=%ECALC%\work
|
||||
set ECALC_CFG=%ECALC%\cfg
|
||||
set ECALC_LIB=%ECALC%\lib
|
||||
|
||||
set PATH=%ECALC%\bin;%PATH%
|
||||
REM PYTHON_INCLUDE_DIR
|
||||
REM PYTHON_LIBRARY
|
||||
@@ -0,0 +1,3 @@
|
||||
call ecalc_setenv.bat
|
||||
python %ECALC_LIB%\calc_site.py --infile=a_tfk.cfg --xlsx=ATFK_old.xlsx
|
||||
python %ECALC_LIB%\calc_site.py --infile=a_tfk.cfg --config=Sivas_Daten_jayjay.cfg --xlsx=ATFK_new.xlsx
|
||||
@@ -0,0 +1,2 @@
|
||||
call ecalc_setenv.bat
|
||||
python %ECALC_LIB%\Abfrage_Sivas.py %*
|
||||
@@ -0,0 +1,274 @@
|
||||
# HARDWARE
|
||||
|
||||
[HW_Einzelpreise]
|
||||
# Schaltschrank Einzelpreis
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 2000 #
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4663.45 # 790821101
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5720.94 # 790821102
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 2237.25 # 708003004
|
||||
speicherkarte_fuer_sps_512_kb = 172.5 # 708003012
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 3957 # 708003007
|
||||
speicherkarte_fuer_sps2_mb = 246 # 708003027
|
||||
sps_simatic_s7_1515_2 = 2173.9 # 790008100
|
||||
sps_simatic_s7_1517_3 = 3827.8 # 790008101
|
||||
sps_simatic_s7_1518_4 = 5892 # 6ES7518-4AP00-0AB0
|
||||
sps_et200_1512sp = 705.75 # 709000003
|
||||
memory_card_2_gb = 515.9 # 708015094
|
||||
et200_sp_ea_ebene = 0 # 790009001
|
||||
netzwerk_fernwartung = 750 # 790011001
|
||||
abgang_400v = 250 # ----
|
||||
abgang_24_v = 250 # ----
|
||||
anlagenrechner = 1657 # 790011000
|
||||
anlagenrechner_ohne_bildschirm = 1487 # 1x 711003025 PC; 1x 711003026 Filter; 1x 711003111Softnet; 1x711003049 UPS
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 1200 # 400009058
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 350 # 400009057
|
||||
netzwerk_display_adapter_lindy = 650 #
|
||||
zusaetzlicher_bildschirm = 1100 #
|
||||
unterverteiler_fuer_1neuenhauser_pm = 1000 # 790820210
|
||||
unterverteiler_fuer_1flyer = 1000 # 790820207_A
|
||||
unterverteiler_fuer_2flyer = 1000 # 790820209_A
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine = 1000 # 790820210
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine = 1000 # 790820210
|
||||
unterverteiler_fuer_puffer = 1000 # 790820210_F
|
||||
unterverteiler_fuer_5_rsm_fa = 1000 # 790820210_D
|
||||
unterverteiler_fuer_10_rsm_fa = 1000 # 790820210_F
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar = 1000 # 790820209_C
|
||||
unterverteiler_fuer_4_rsm_direct = 5584 # 790820300
|
||||
unterverteiler_fuer_12_rsm_direct = 8258 # 790820302
|
||||
unterverteiler_fuer_8_rsm_direct = 6736 # 790820301
|
||||
busverteiler_6_rsm_direct = 1747.53 # 790801002
|
||||
busverteiler_8_rsm_direct = 2052.26 # 790801001
|
||||
antrieb_unidirektional_halbleiter = 90
|
||||
antrieb_bidirektional_halbleiter = 105
|
||||
antrieb_unidirektional_schuetz = 0
|
||||
antrieb_bidirektional_schuetz = 0
|
||||
motorschutzschalter = 0
|
||||
wendeschuetzschaltung = 75
|
||||
frequenzumrichter = 250
|
||||
bedienstation_1fach_kpl = 59
|
||||
bedienst_2fach_wechs_bcd_10f = 105 # 790002024
|
||||
bedienstation_2fach_kpl = 65.63 # 790000020
|
||||
halter_bedientableau_2fach = 42 # 825304006
|
||||
bedienstation_3fach_kpl = 99 # 790000040
|
||||
halter_bedientableau_3fach = 46 # 825304007
|
||||
bedienstation_4fach_kpl = 121 # 790000045
|
||||
halter_bedientableau_4fach = 52 # 825304003
|
||||
bedienstation_6fach_kpl = 145.8 # 790000033
|
||||
halter_bedientableau_6fach = 56 # 825304002
|
||||
drucktaster_automatische_umfahrung = 28
|
||||
halter_fuer_drucktaster = 33
|
||||
|
||||
# ET200_SP
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45 = 198.90 # 709000006
|
||||
et200_sp_eingangskarte_8_de = 35 # 709000021
|
||||
et200_sp_eingangskarte_16_de = 58 # 709000022
|
||||
et200_sp_eingangskarte_8_do = 46 # 709000031_A
|
||||
et200_sp_eingangskarte_16_do = 66.30 # 709000032
|
||||
et200_sp_base_unit_neue_last_mit_potKlemmen = 23 # 709000014
|
||||
et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen = 15 # 709000015
|
||||
et200_sp_base_unit_neue_last = 19 # 709000011
|
||||
et200_sp_base_unit_links_gebrueckt = 11 # 709000010
|
||||
|
||||
# SLIO
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO = 175 # 709000500
|
||||
slio_eingangskarte_4_de = 31 # 709000510
|
||||
slio_eingangskarte_8_de = 38 # 709000511
|
||||
slio_ausgangskarte_4_do = 39 # 709000021
|
||||
slio_ausgangskarte_8_do = 46 # 709000021
|
||||
slio_power_modul = 18.22 # 709000014
|
||||
slio_4_x_dc_24v_4_x_dc_0v = 18 # 709000015
|
||||
slio_8_x_dc_24v = 18 # 709000011
|
||||
slio_8_x_dc_0v = 13 # 709000010
|
||||
|
||||
# MATERIAL VOR ORT
|
||||
movimot_fu_mit_anschaltung = 550
|
||||
sensor_optisch_traverse = 27 # 827072200
|
||||
sensorhalter_ohne_sensor = 8 # 827072xxx
|
||||
reflexionslichtschranke_rsm_direct = 45 # 827072207
|
||||
stoppersensor_induktiv_mit_halter = 63 # 827072205
|
||||
sensor_spulenpruefung_voll_leer = 126 # 827072204 + 721000041
|
||||
seilzugschalter = 150
|
||||
seil_fuer_seilzugschalter = 0.40
|
||||
blitzleuchte = 72 # 790000006
|
||||
spulenumsetzstation = 0
|
||||
# Angabe im Sivas je 40m
|
||||
sensorkabel_je_20m = 25 # 722001xxx
|
||||
# Angabe im Sivas je 50m
|
||||
stopper_weichenkabel_je_5m = 20 # 722001xxx
|
||||
# Angabe im Sivas je 50m
|
||||
motorkabel_je_30m = 26
|
||||
kabelpritschen_leitern_200_60 = 15
|
||||
kabelpritsche_rsm_100_60 = 12 # 715000020
|
||||
kabelpritsche_rsm_50_35 = 9 # 715003010
|
||||
klemmkasten_rsm = 120
|
||||
klemmkasten_direct_in_rsm = 122 # 790000703
|
||||
erdung = 13
|
||||
kleinteile_rohre_schellen_kabelbinder_ect = 750
|
||||
kabel_fuer_klemmkasten_und_bts_60m = 145
|
||||
kabel_fuer_1fach_bts_zug_wechseln = 50
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 146 # 725000050
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 450 # 725000057
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 280 # 725000057
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 145 # 725000007
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 136 # 725000004
|
||||
profinetkabel = 42 # 726001xxx
|
||||
schnittstellen_8x1mm2_30m = 35.4 # 725000019
|
||||
|
||||
[HW_Zeiten Hardwareplanung]
|
||||
# pro Einheit in min
|
||||
schaltschrankgehaeuse_b1x1200_zubehoer = 4200
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4200
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 4800
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps_512_kb = 0
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps2_mb = 0
|
||||
sps_simatic_s7_1515_2 = 0
|
||||
sps_simatic_s7_1517_3 = 0
|
||||
sps_simatic_s7_1518_4 = 0
|
||||
sps_et200_1512sp = 0
|
||||
memory_card_2_gb = 0
|
||||
et200_sp_ea_ebene =60
|
||||
netzwerk_fernwartung =0
|
||||
abgang_400v =60
|
||||
abgang_24_v =60
|
||||
anlagenrechner =0
|
||||
anlagenrechner_ohne_bildschirm = 0
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 60
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 0
|
||||
netzwerk_display_adapter_lindy = 30
|
||||
zusaetzlicher_bildschirm =0
|
||||
schaltschrank =0
|
||||
unterverteiler_fuer_1neuenhauser_pm =1200
|
||||
unterverteiler_fuer_1flyer =720
|
||||
unterverteiler_fuer_2flyer =1020
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine =810
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine =1110
|
||||
unterverteiler_fuer_puffer =1200
|
||||
unterverteiler_fuer_5_rsm_fa =960
|
||||
unterverteiler_fuer_10_rsm_fa =1020
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar =1200
|
||||
unterverteiler_fuer_4_rsm_direct =3000
|
||||
unterverteiler_fuer_12_rsm_direct =4800
|
||||
unterverteiler_fuer_8_rsm_direct =3900
|
||||
busverteiler_6_rsm_direct =600
|
||||
busverteiler_8_rsm_direct =960
|
||||
|
||||
[HW_Zeiten Elektro-Werkstatt]
|
||||
# pro Einheit in min
|
||||
schaltschrankgehaeuse_b1x1200_zubehoer = 2400
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4800
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5160
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps_512_kb = 0
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps2_mb = 0
|
||||
sps_simatic_s7_1515_2 = 0
|
||||
sps_simatic_s7_1517_3 = 0
|
||||
sps_simatic_s7_1518_4 = 0
|
||||
sps_et200_1512sp = 0
|
||||
memory_card_2_gb = 0
|
||||
et200_sp_ea_ebene =120
|
||||
netzwerk_fernwartung =0
|
||||
abgang_400v =90
|
||||
abgang_24_v =90
|
||||
anlagenrechner =0
|
||||
anlagenrechner_ohne_bildschirm = 0
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 240
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 0
|
||||
netzwerk_display_adapter_lindy = 120
|
||||
zusaetzlicher_bildschirm =0
|
||||
schaltschrank =0
|
||||
unterverteiler_fuer_1neuenhauser_pm =1200
|
||||
unterverteiler_fuer_1flyer =1020
|
||||
unterverteiler_fuer_2flyer =1200
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine =1140
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine =1200
|
||||
unterverteiler_fuer_puffer =1200
|
||||
unterverteiler_fuer_5_rsm_fa =1020
|
||||
unterverteiler_fuer_10_rsm_fa =1140
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar =1500
|
||||
unterverteiler_fuer_4_rsm_direct =3600
|
||||
unterverteiler_fuer_12_rsm_direct =4800
|
||||
unterverteiler_fuer_8_rsm_direct =4200
|
||||
busverteiler_6_rsm_direct =480
|
||||
busverteiler_8_rsm_direct =480
|
||||
antrieb_unidirektional_halbleiter =10
|
||||
antrieb_bidirektional_halbleiter =10
|
||||
antrieb_unidirektional_schuetz =0
|
||||
antrieb_bidirektional_schuetz =0
|
||||
motorschutzschalter =0
|
||||
wendeschuetzschaltung =0
|
||||
frequenzumrichter =0
|
||||
bedienstation_1fach_kpl =25
|
||||
bedienst_2fach_wechs_bcd_10f =90
|
||||
bedienstation_2fach_kpl =30
|
||||
halter_bedientableau_2fach =30
|
||||
bedienstation_3fach_kpl =25
|
||||
halter_bedientableau_3fach =30
|
||||
bedienstation_4fach_kpl =30
|
||||
halter_bedientableau_4fach =30
|
||||
bedienstation_6fach_kpl =45
|
||||
halter_bedienstation_6fach =30
|
||||
drucktaster_automatische_umfahrung =15
|
||||
halter_fuer_drucktaster =0
|
||||
|
||||
# ELEKTROMONTAGE
|
||||
[Elektro-Montagezeiten]
|
||||
Schaltschrank_aufstellen = 6.0 #(h/St)
|
||||
Unterverteiler_montieren = 3.0 #(h/St)
|
||||
Pritsche_montieren_umbauen_demontieren = 6.0 #(m/h)
|
||||
Pritsche_in_RSM_montieren = 21.0
|
||||
Motor_verdrahten_und_anschliessen = 0.9 #(h/Motor)
|
||||
Tableau_befestigen_und_anschliessen = 0.75 #(h/St)
|
||||
Schnittstelle_Flyer_Putzmaschine = 1.5 #(h/St)
|
||||
Sensoren_montieren = 0.45 #(h/St)
|
||||
Seilzugschalter_installieren = 4.0 #(h/St)
|
||||
Blitzleuchte_installieren = 0.5 #(h/St)
|
||||
Weiche_Stopper_anschliessen = 0.35 #(h/St)
|
||||
Erdung = 0.5 #(h)
|
||||
|
||||
# ANSCHLUSSLEISTUNG
|
||||
|
||||
# Key ist die Leistung des jeweiligen Motors [kW]. Value ist der Leistungsfaktor
|
||||
[cos phi]
|
||||
0.09=0.77
|
||||
0.12=0.77
|
||||
0.18=0.77
|
||||
0.37=0.7
|
||||
0.55=0.77
|
||||
0.75=0.73
|
||||
1.1=0.81
|
||||
|
||||
# Key ist die Leistung des jeweiligen Motors [kW]. Value ist der Strom [A]
|
||||
[Antriebsstrom]
|
||||
0.09=0.4
|
||||
0.12=0.55
|
||||
0.18=0.75
|
||||
0.37=1.24
|
||||
0.55=1.62
|
||||
0.75=1.75
|
||||
1.1=2.55
|
||||
|
||||
# ERGEBNIS
|
||||
#[€/h] der jeweiligen Kostenart
|
||||
[Kosten pro h]
|
||||
E_Werkstatt = 32
|
||||
# Wenn Schaltschrankbau extern die Mehrkosten eintragen Standard = 18 € Hier wird nur die Diverenz zwischen Kosten intern(32€) und dem externen Kosten eingetragen. Beispiel= extern = 50€ intern 32 € = Wert= 18€
|
||||
Schaltschrankbau_extern_Mehrkosten = 0
|
||||
Dienstleistung_in_LL = 45
|
||||
Pflichtenheft = 60
|
||||
SPS_Programmierung = 75
|
||||
PC_Programmierung_Visualisierung = 75
|
||||
Montage_elektrisch = 36
|
||||
Inbetriebnahmetest_Hardware_durch_Montage = 36
|
||||
SPS_Inbetriebsetzung = 75
|
||||
PC_Inbetriebsetzung = 75
|
||||
Inbetriebnahmeunterstützung_durch_Montage = 36
|
||||
Dokumentation = 35
|
||||
Bedienungsanleitung_Emmert = 75
|
||||
Schulung_vor_Ort_beim_Kunden = 36
|
||||
Abnahme = 36
|
||||
SPS_Anlagenbetreuung = 75
|
||||
PC_Anlagenbetreuung = 60
|
||||
Anlagenbetreuung_durch_Montage = 36
|
||||
@@ -0,0 +1,254 @@
|
||||
[HW_Einzelpreise]
|
||||
abgang_24_v = 99.41
|
||||
abgang_400v = 213.35
|
||||
anlagenrechner = 1427.05
|
||||
anlagenrechner_ohne_bildschirm = 1269.8367055018189
|
||||
antrieb_bidirektional_halbleiter = 76.2256573006879
|
||||
antrieb_bidirektional_schuetz = 123.18
|
||||
antrieb_unidirektional_halbleiter = 71.39
|
||||
antrieb_unidirektional_schuetz = 68.5
|
||||
bedienst_2fach_wechs_bcd_10f = 94.87
|
||||
bedienstation_1fach_kpl = 38.52
|
||||
bedienstation_2fach_kpl = 67.48290909090909
|
||||
bedienstation_3fach_kpl = 88.32432432432432
|
||||
bedienstation_4fach_kpl = 102.50559670781892
|
||||
bedienstation_6fach_kpl = 91.33
|
||||
blitzleuchte = 64.29
|
||||
busverteiler_6_rsm_direct = 1746.36
|
||||
busverteiler_8_rsm_direct = 2052.26
|
||||
drucktaster_automatische_umfahrung = 46.57
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45 = 198.9
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_slio = 164.20142857142858
|
||||
et200_sp_base_unit_links_gebrueckt = 9.815854569787543
|
||||
et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen = 13.39
|
||||
et200_sp_base_unit_neue_last = 16.621860966339366
|
||||
et200_sp_base_unit_neue_last_mit_potklemmen = 21.09
|
||||
et200_sp_ea_ebene = 417.48
|
||||
et200_sp_eingangskarte_16_de = 57.1
|
||||
et200_sp_eingangskarte_16_do = 66.3
|
||||
et200_sp_eingangskarte_8_de = 31.59
|
||||
et200_sp_eingangskarte_8_do = 43.22
|
||||
halter_bedientableau_2fach = 34.84
|
||||
halter_bedientableau_3fach = 23.99
|
||||
halter_bedientableau_4fach = 30.49
|
||||
halter_bedientableau_6fach = 26.19
|
||||
kabelpritsche_rsm_100_60 = 5.95
|
||||
kabelpritsche_rsm_50_35 = 6.1
|
||||
kabelpritschen_leitern_200_60 = 7.859553174017099
|
||||
klemmkasten_direct_in_rsm = 93.67
|
||||
klemmkasten_rsm = 142.96
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 326.0
|
||||
memory_card_2_gb = 515.9
|
||||
motorkabel_je_30m = 21.212410173633465
|
||||
motorschutzschalter = 37.77
|
||||
netzwerk_display_adapter_lindy = 481.98
|
||||
netzwerk_fernwartung = 678.15
|
||||
profinetkabel = 44.4
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 968.0
|
||||
reflexionslichtschranke_rsm_direct = 44.88
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5994.88
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 2877.85
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4972.14
|
||||
schnittstellen_8x1mm2_30m = 33.07799374121692
|
||||
seil_fuer_seilzugschalter = 0.299
|
||||
seilzugschalter = 223.74
|
||||
sensor_optisch_traverse = 29.41
|
||||
sensor_spulenpruefung_voll_leer = 345.6954020423345
|
||||
sensorkabel_je_20m = 6.4712
|
||||
slio_4_x_dc_24v_4_x_dc_0v = 13.39
|
||||
slio_8_x_dc_0v = 9.815854569787543
|
||||
slio_8_x_dc_24v = 16.621860966339366
|
||||
slio_ausgangskarte_4_do = 31.59
|
||||
slio_ausgangskarte_8_do = 31.59
|
||||
slio_eingangskarte_4_de = 23.915
|
||||
slio_eingangskarte_8_de = 31.68
|
||||
slio_power_modul = 21.09
|
||||
speicherkarte_fuer_sps_512_kb = 172.5
|
||||
speicherkarte_fuer_sps2_mb = 246.0
|
||||
sps_et200_1512sp = 705.75
|
||||
sps_simatic_s7_1515_2 = 2150.8
|
||||
sps_simatic_s7_1517_3 = 4305.55
|
||||
sps_simatic_s7_1518_4 = 5892.0
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 2237.25
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 3957.0
|
||||
stopper_weichenkabel_je_5m = 1.5406000000000002
|
||||
stoppersensor_induktiv_mit_halter = 38.08
|
||||
unterverteiler_fuer_10_rsm_fa = 2180.42
|
||||
unterverteiler_fuer_12_rsm_direct = 9125.58
|
||||
unterverteiler_fuer_1flyer = 1634.74
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine = 701.05
|
||||
unterverteiler_fuer_1neuenhauser_pm = 701.05
|
||||
unterverteiler_fuer_2flyer = 2324.64
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine = 701.05
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar = 3059.28
|
||||
unterverteiler_fuer_4_rsm_direct = 5897.51
|
||||
unterverteiler_fuer_5_rsm_fa = 2601.27
|
||||
unterverteiler_fuer_8_rsm_direct = 7330.96
|
||||
unterverteiler_fuer_puffer = 2180.42
|
||||
wendeschuetzschaltung = 27.25
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 88.5401
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 124.1031862745098
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 414.68625
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 414.68625
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 149.959130518692
|
||||
zusaetzlicher_bildschirm = 170.0
|
||||
|
||||
|
||||
[HW_Zeiten Hardwareplanung]
|
||||
# pro Einheit in min
|
||||
schaltschrankgehaeuse_b1x1200_zubehoer = 4200
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4200
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 4800
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps_512_kb = 0
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps2_mb = 0
|
||||
sps_simatic_s7_1515_2 = 0
|
||||
sps_simatic_s7_1517_3 = 0
|
||||
sps_simatic_s7_1518_4 = 0
|
||||
sps_et200_1512sp = 0
|
||||
memory_card_2_gb = 0
|
||||
et200_sp_ea_ebene =60
|
||||
netzwerk_fernwartung =0
|
||||
abgang_400v =60
|
||||
abgang_24_v =60
|
||||
anlagenrechner =0
|
||||
anlagenrechner_ohne_bildschirm = 0
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 60
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 0
|
||||
netzwerk_display_adapter_lindy = 30
|
||||
zusaetzlicher_bildschirm =0
|
||||
schaltschrank =0
|
||||
unterverteiler_fuer_1neuenhauser_pm =1200
|
||||
unterverteiler_fuer_1flyer =720
|
||||
unterverteiler_fuer_2flyer =1020
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine =810
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine =1110
|
||||
unterverteiler_fuer_puffer =1200
|
||||
unterverteiler_fuer_5_rsm_fa =960
|
||||
unterverteiler_fuer_10_rsm_fa =1020
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar =1200
|
||||
unterverteiler_fuer_4_rsm_direct =3000
|
||||
unterverteiler_fuer_12_rsm_direct =4800
|
||||
unterverteiler_fuer_8_rsm_direct =3900
|
||||
busverteiler_6_rsm_direct =600
|
||||
busverteiler_8_rsm_direct =960
|
||||
|
||||
[HW_Zeiten Elektro-Werkstatt]
|
||||
# pro Einheit in min
|
||||
schaltschrankgehaeuse_b1x1200_zubehoer = 2400
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 4800
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 5160
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps_512_kb = 0
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 0
|
||||
speicherkarte_fuer_sps2_mb = 0
|
||||
sps_simatic_s7_1515_2 = 0
|
||||
sps_simatic_s7_1517_3 = 0
|
||||
sps_simatic_s7_1518_4 = 0
|
||||
sps_et200_1512sp = 0
|
||||
memory_card_2_gb = 0
|
||||
et200_sp_ea_ebene =120
|
||||
netzwerk_fernwartung =0
|
||||
abgang_400v =90
|
||||
abgang_24_v =90
|
||||
anlagenrechner =0
|
||||
anlagenrechner_ohne_bildschirm = 0
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 240
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 0
|
||||
netzwerk_display_adapter_lindy = 120
|
||||
zusaetzlicher_bildschirm =0
|
||||
schaltschrank =0
|
||||
unterverteiler_fuer_1neuenhauser_pm =1200
|
||||
unterverteiler_fuer_1flyer =1020
|
||||
unterverteiler_fuer_2flyer =1200
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine =1140
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine =1200
|
||||
unterverteiler_fuer_puffer =1200
|
||||
unterverteiler_fuer_5_rsm_fa =1020
|
||||
unterverteiler_fuer_10_rsm_fa =1140
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar =1500
|
||||
unterverteiler_fuer_4_rsm_direct =3600
|
||||
unterverteiler_fuer_12_rsm_direct =4800
|
||||
unterverteiler_fuer_8_rsm_direct =4200
|
||||
busverteiler_6_rsm_direct =480
|
||||
busverteiler_8_rsm_direct =480
|
||||
antrieb_unidirektional_halbleiter =10
|
||||
antrieb_bidirektional_halbleiter =10
|
||||
antrieb_unidirektional_schuetz =0
|
||||
antrieb_bidirektional_schuetz =0
|
||||
motorschutzschalter =0
|
||||
wendeschuetzschaltung =0
|
||||
frequenzumrichter =0
|
||||
bedienstation_1fach_kpl =25
|
||||
bedienst_2fach_wechs_bcd_10f =90
|
||||
bedienstation_2fach_kpl =30
|
||||
halter_bedientableau_2fach =30
|
||||
bedienstation_3fach_kpl =25
|
||||
halter_bedientableau_3fach =30
|
||||
bedienstation_4fach_kpl =30
|
||||
halter_bedientableau_4fach =30
|
||||
bedienstation_6fach_kpl =45
|
||||
halter_bedienstation_6fach =30
|
||||
drucktaster_automatische_umfahrung =15
|
||||
halter_fuer_drucktaster =0
|
||||
|
||||
# ELEKTROMONTAGE
|
||||
[Elektro-Montagezeiten]
|
||||
Schaltschrank_aufstellen = 6.0 #(h/St)
|
||||
Unterverteiler_montieren = 3.0 #(h/St)
|
||||
Pritsche_montieren_umbauen_demontieren = 6.0 #(m/h)
|
||||
Pritsche_in_RSM_montieren = 21.0
|
||||
Motor_verdrahten_und_anschliessen = 0.9 #(h/Motor)
|
||||
Tableau_befestigen_und_anschliessen = 0.75 #(h/St)
|
||||
Schnittstelle_Flyer_Putzmaschine = 1.5 #(h/St)
|
||||
Sensoren_montieren = 0.45 #(h/St)
|
||||
Seilzugschalter_installieren = 4.0 #(h/St)
|
||||
Blitzleuchte_installieren = 0.5 #(h/St)
|
||||
Weiche_Stopper_anschliessen = 0.35 #(h/St)
|
||||
Erdung = 0.5 #(h)
|
||||
|
||||
# ANSCHLUSSLEISTUNG
|
||||
|
||||
# Key ist die Leistung des jeweiligen Motors [kW]. Value ist der Leistungsfaktor
|
||||
[cos phi]
|
||||
0.09=0.77
|
||||
0.12=0.77
|
||||
0.18=0.77
|
||||
0.37=0.7
|
||||
0.55=0.77
|
||||
0.75=0.73
|
||||
1.1=0.81
|
||||
|
||||
# Key ist die Leistung des jeweiligen Motors [kW]. Value ist der Strom [A]
|
||||
[Antriebsstrom]
|
||||
0.09=0.4
|
||||
0.12=0.55
|
||||
0.18=0.75
|
||||
0.37=1.24
|
||||
0.55=1.62
|
||||
0.75=1.75
|
||||
1.1=2.55
|
||||
|
||||
# ERGEBNIS
|
||||
#[€/h] der jeweiligen Kostenart
|
||||
[Kosten pro h]
|
||||
E_Werkstatt = 32
|
||||
# Wenn Schaltschrankbau extern die Mehrkosten eintragen Standard = 18 € Hier wird nur die Diverenz zwischen Kosten intern(32€) und dem externen Kosten eingetragen. Beispiel= extern = 50€ intern 32 € = Wert= 18€
|
||||
Schaltschrankbau_extern_Mehrkosten = 0
|
||||
Dienstleistung_in_LL = 45
|
||||
Pflichtenheft = 60
|
||||
SPS_Programmierung = 75
|
||||
PC_Programmierung_Visualisierung = 75
|
||||
Montage_elektrisch = 36
|
||||
Inbetriebnahmetest_Hardware_durch_Montage = 36
|
||||
SPS_Inbetriebsetzung = 75
|
||||
PC_Inbetriebsetzung = 75
|
||||
Inbetriebnahmeunterstützung_durch_Montage = 36
|
||||
Dokumentation = 35
|
||||
Bedienungsanleitung_Emmert = 75
|
||||
Schulung_vor_Ort_beim_Kunden = 36
|
||||
Abnahme = 36
|
||||
SPS_Anlagenbetreuung = 75
|
||||
PC_Anlagenbetreuung = 60
|
||||
Anlagenbetreuung_durch_Montage = 36
|
||||
@@ -0,0 +1,147 @@
|
||||
[HW_Einzelpreise]
|
||||
# Schaltschrank Einzelpreis
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 790821100
|
||||
schaltschrankgehaeuse_b2x800_zubehoer = 790821101
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer = 790821102
|
||||
sps_simatic_s7_cpu315_2_pn_dp = 708003004
|
||||
speicherkarte_fuer_sps_512_kb = 708003012
|
||||
sps_simatic_s7_cpu317_2_pn_dp = 708003007
|
||||
speicherkarte_fuer_sps2_mb = 708003027
|
||||
sps_simatic_s7_1515_2 = 790008100
|
||||
sps_simatic_s7_1517_3 = 790008101
|
||||
sps_simatic_s7_1518_4 = 708015006
|
||||
sps_et200_1512sp = 709000003
|
||||
memory_card_2_gb = 708015094
|
||||
et200_sp_ea_ebene = 790009001
|
||||
netzwerk_fernwartung = 790011001
|
||||
abgang_400v= 790003001
|
||||
#abgang_400v= 790003002
|
||||
abgang_24_v = 790004001
|
||||
anlagenrechner = 790011000
|
||||
anlagenrechner_ohne_bildschirm = 711003025 + 711003026 + 711003111 + 711003049
|
||||
pulteinbau_monitor_srline_rflat_24fhd = 400009058
|
||||
kurzhubtastatur_kbt06_mit_touchpad_uslayout = 400009057
|
||||
netzwerk_display_adapter_lindy = 790011002
|
||||
zusaetzlicher_bildschirm = 711003028
|
||||
|
||||
unterverteiler_fuer_1neuenhauser_pm = 790820210
|
||||
unterverteiler_fuer_1flyer = 790820207_A
|
||||
unterverteiler_fuer_2flyer = 790820209_A
|
||||
unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine = 790820210
|
||||
unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine = 790820210
|
||||
unterverteiler_fuer_puffer = 790820210_F
|
||||
|
||||
unterverteiler_fuer_5_rsm_fa = 790820210_D
|
||||
|
||||
unterverteiler_fuer_10_rsm_fa = 790820210_F
|
||||
|
||||
unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar = 790820209_C
|
||||
|
||||
unterverteiler_fuer_4_rsm_direct = 790820300
|
||||
|
||||
unterverteiler_fuer_12_rsm_direct = 790820302
|
||||
|
||||
unterverteiler_fuer_8_rsm_direct = 790820301
|
||||
|
||||
busverteiler_6_rsm_direct = 790801002
|
||||
|
||||
busverteiler_8_rsm_direct = 790801001
|
||||
|
||||
antrieb_unidirektional_halbleiter = 703001070
|
||||
antrieb_bidirektional_halbleiter = 703001075
|
||||
antrieb_unidirektional_schuetz = 703001049
|
||||
antrieb_bidirektional_schuetz = 703001059
|
||||
motorschutzschalter = 703001007
|
||||
wendeschuetzschaltung = 703001026
|
||||
|
||||
|
||||
bedienstation_1fach_kpl = 790002022
|
||||
bedienst_2fach_wechs_bcd_10f = 790002024
|
||||
bedienstation_2fach_kpl = 790000020
|
||||
halter_bedientableau_2fach = 825304006
|
||||
bedienstation_3fach_kpl = 790000040
|
||||
halter_bedientableau_3fach = 825304007
|
||||
bedienstation_4fach_kpl = 790000045
|
||||
halter_bedientableau_4fach = 825304003
|
||||
bedienstation_6fach_kpl = 790000033
|
||||
halter_bedientableau_6fach = 825304002
|
||||
drucktaster_automatische_umfahrung = 400102435
|
||||
|
||||
# ET200_SP
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45 = 709000006
|
||||
et200_sp_eingangskarte_8_de = 709000021
|
||||
et200_sp_eingangskarte_16_de = 709000022_A
|
||||
et200_sp_eingangskarte_8_do = 709000031_A
|
||||
et200_sp_eingangskarte_16_do = 709000032_A
|
||||
et200_sp_base_unit_neue_last_mit_potKlemmen = 709000014
|
||||
et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen = 709000015
|
||||
et200_sp_base_unit_neue_last = 709000011
|
||||
et200_sp_base_unit_links_gebrueckt = 709000010
|
||||
|
||||
# SLIO
|
||||
et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO = 709000500
|
||||
slio_eingangskarte_4_de = 709000510
|
||||
slio_eingangskarte_8_de = 709000511
|
||||
slio_ausgangskarte_4_do = 709000021
|
||||
slio_ausgangskarte_8_do = 709000021
|
||||
slio_power_modul = 709000014
|
||||
slio_4_x_dc_24v_4_x_dc_0v = 709000015
|
||||
slio_8_x_dc_24v = 709000011
|
||||
slio_8_x_dc_0v = 709000010
|
||||
|
||||
# MATERIAL VOR ORT
|
||||
sensor_optisch_traverse = 827072200
|
||||
reflexionslichtschranke_rsm_direct = 827072207
|
||||
stoppersensor_induktiv_mit_halter = 827072205
|
||||
sensor_spulenpruefung_voll_leer = 827072204 + 721000041
|
||||
# rsm fa seilzugschalter wenn deckblatt d5 ja *1 nicht mehr *2
|
||||
seilzugschalter = 827336009
|
||||
# pro maschinenlänge doppelte länge(dann muss die Maschinenlänge aber noch angegeben werden)
|
||||
seil_fuer_seilzugschalter = 719001012
|
||||
blitzleuchte = 790000006
|
||||
sensorkabel_je_20m = 722001022
|
||||
stopper_weichenkabel_je_5m = 722001040
|
||||
motorkabel_je_30m = 725000015
|
||||
kabelpritschen_leitern_200_60 = 715000061
|
||||
kabelpritsche_rsm_100_60 = 715000020
|
||||
kabelpritsche_rsm_50_35 = 715003010
|
||||
klemmkasten_rsm = 790000700
|
||||
klemmkasten_direct_in_rsm = 790000703
|
||||
erdung = ----
|
||||
kleinteile_rohre_schellen_kabelbinder_ect = ----
|
||||
kabel_fuer_klemmkasten_und_bts_60m = ----
|
||||
kabel_fuer_1fach_bts_zug_wechseln = ----
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 725000050
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 725000057
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 725000057
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 725000007
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 725000004
|
||||
profinetkabel = 726001053
|
||||
schnittstellen_8x1mm2_30m = 725000019
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#WENDEKOMBIBAUSATZ = 703001029
|
||||
#kabelpritschen_leitern_200_60 = ----
|
||||
#klemmkasten_rsm = ----
|
||||
#erdung = ----
|
||||
#kleinteile_rohre_schellen_kabelbinder_ect = ----
|
||||
#kabel_fuer_klemmkasten_und_bts_60m = ----
|
||||
#kabel_fuer_1fach_bts_zug_wechseln = ----
|
||||
|
||||
|
||||
[Faktoren]
|
||||
# wenn SIVAS Meterpreise gespeichert hat, muss man die Preise für die Variable
|
||||
# nach dem Auslesen entsprechend mit der Länge multiplizieren
|
||||
motorkabel_je_30m=30
|
||||
zuleitung_75_m_unterverteiler_4x4mm2_400vac = 75
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc = 75
|
||||
zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc = 75
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm = 55
|
||||
zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm = 55
|
||||
schnittstellen_8x1mm2_30m = 30
|
||||
sensorkabel_je_20m = 0.5
|
||||
stopper_weichenkabel_je_5m = 0.1
|
||||
@@ -1 +0,0 @@
|
||||
{"Bedienelemente_Steuerschrank": 1, "bedienstation_einfach_Zug_Wechseln": 14, "bedienstation_automatische_Umfahrung": 0, "bedienstation_zweifach_Wechs_BCD_10f": 0, "bedienstation_zweifach_Not_Aus_Reset": 10, "bedienst_dreifach": 0, "bedienst_vierfach": 0, "bedienst_sechsfach": 0, "EAs_Unterverteiler_direct": 0, "Sensor_Traversenabfrage_optisch": 68, "Reflexionslichtschranke_RSM_DIRECT": 0, "Sensor induktiv Flyer+PM": 4, "Seilzugschalter": 0, "Weiche": 35, "Weiche_nach_PM_bipolar": 0, "gemeinsame_Weichenrueckstellung": 0, "Dreifach_Weiche_DIRECT": 0, "Kreuzungsweiche": 1, "Stopper": 0, "RA_unidirektional": 4, "RA_unidirektional_abhebbar": 0, "RA_unidirektional_mit_gemeinsamer_Wendung": 0, "RA_unidirektional_ohne_SPS_Ansteuerung": 0, "RA_bidirektional": 30, "RA_bidirektional_abhebbar": 4, "RA_bidirektional_abhebbar_gemeinsWend": 0, "RA_bidirektional_ohne_SPS_Ansteuerung": 4, "RA_in_RSM_bidirektional": 0, "Doppelstreckenantrieb": 6, "Doppelstreckenantriebgemeinsame_Wendung": 0, "gemeinsame_Wendung": 0, "Frequenzumrichter": 0, "Ventil_RA_3_2_abhebbar": 4, "Ventil_Doppelstreckenantrieb_5_2_abhebbar": 6, "Blitzleuchte_Stoerung": 6, "Schnittstelle_Flyer_ElectroJet": 4, "Schnittstelle_Putzmaschine_Neuhauser": 0, "FEldbux_UV_EinAusgang": 7, "Spulenumsetzstation": 0}
|
||||
@@ -1,36 +0,0 @@
|
||||
import json
|
||||
import math
|
||||
|
||||
anzahl = dict()
|
||||
anzahl["et200_sp_ea_ebene"] = 1
|
||||
anzahl["schaltschrank"] = 1
|
||||
# a = 5 * math.ceil((anzahl.get("et200_sp_ea_ebene", 0) * anzahl.get("schaltschrank", 0) * 4 ))
|
||||
a = (math.ceil((anzahl.get("et200_sp_ea_ebene", 0) * \
|
||||
anzahl.get("schaltschrank", 0) * 4 + \
|
||||
anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) * 6 + \
|
||||
anzahl.get("unterverteiler_fuer_1flyer", 0) * 4 + \
|
||||
anzahl.get("unterverteiler_fuer_2flyer", 0) * 6 + \
|
||||
anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) * 5 + \
|
||||
anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) * 5 + \
|
||||
anzahl.get("unterverteiler_fuer_puffer", 0) * 7 + \
|
||||
anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) * 4 + \
|
||||
anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) * 6 + \
|
||||
anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) * 9 / 1.5)) + \
|
||||
anzahl.get("korrektur_et200_sp_eingangskarte_8_do", 0))
|
||||
|
||||
|
||||
|
||||
# details = {'Name': "Bob",
|
||||
# 'Age' :28}
|
||||
|
||||
# with open('convert.txt', 'w') as convert_file:
|
||||
# convert_file.write(json.dumps(details))
|
||||
|
||||
# https://www.geeksforgeeks.org/write-a-dictionary-to-a-file-in-python/
|
||||
# Michael Stangl13:56
|
||||
# cat a.txt | sort > a_neu.txt
|
||||
|
||||
|
||||
|
||||
# Fragen:
|
||||
# EAs Bedienstation automatische umfahrung in excel
|
||||
@@ -1,40 +0,0 @@
|
||||
Bedienst._2_fach_ Wechs._+_BCD_10f. _ DIR. 0
|
||||
Bedienstation_1_fach_Not_Aus
|
||||
Bedienstation_1_fach_Zug_wechseln 14
|
||||
Bedienstation_2_fach_ Not_Aus_Reset 10
|
||||
Bedienstation_3_fach 0
|
||||
Bedienstation_4_fach 0
|
||||
Bedienstation_6_fach 0
|
||||
Blitzleuchte_Störung 6
|
||||
Doppelstreckenantrieb 6
|
||||
Doppelstreckenantriebgemeinsame_Wendung 0
|
||||
Dreifach_Weiche 0
|
||||
Drucktaster_automatische_Umfahrung 0
|
||||
E/As_Unterverteiler_DIRECT 0
|
||||
Feldbus_UV_Ein_/Ausgang 7
|
||||
Frequenzumrichter 0
|
||||
gemeinsame_Weichenrückstellung 0
|
||||
gemeinsame_Wendung 0
|
||||
Kreuzungsweiche 1
|
||||
RA_in_RSM;_bidirektional;_1_gemeinsame_Wendung_je_Seite;_je_Antrieb_ein_Motorschutzschalter 0
|
||||
RA_bidirektional 30
|
||||
RA_bidirektional_abhebbar 4
|
||||
RA_bidirektional_abhebbar_gemeins._Wend. 0
|
||||
RA_bidirektional;_ohne_SPS_Ansteuerung 4
|
||||
RA_unidirektional 4
|
||||
RA_unidirektional_abhebbar_ohne_SPS_Ansteuerung 0
|
||||
RA_unidirektional_mit_gemeinsamer_Wendung 0
|
||||
RA_unidirektional_abhebbar 0
|
||||
Reflexionslichtschranke_RSM_ DIRECT 0
|
||||
Schnittstelle_Flyer_ Electro_Jet 4
|
||||
Schnittstelle_Putzmaschine_ Electro_Jet
|
||||
Schnittstelle_Putzmaschine_ Neuenhauser 0
|
||||
Seilzugschalter 0
|
||||
Sensor_Traversenabfrage_optisch 68
|
||||
Sensor_induktiv_ Flyer+PM 4
|
||||
Spulenumsetzstation 0
|
||||
Stopper 0
|
||||
Ventil_Doppelstreckenantrieb_ 5/2 _abhebbar 6
|
||||
Ventil_RA_ 3/2 _abhebbar 4
|
||||
Weiche 35
|
||||
Weiche_nach_PM_ bipolar 0
|
||||
@@ -1,36 +1,28 @@
|
||||
import pandas as pd
|
||||
import configparser
|
||||
import os.path
|
||||
import argparse
|
||||
|
||||
"""
|
||||
Erstellung einer Excel-Datei mit aktuellen Preisen aus Sivas ist leicht möglich.
|
||||
Diese soll in einer config-Datei für die Berechnung der rieter-eKalkulation verwendet werden.
|
||||
Den Parametern der rieter_ekalk werden die entsprechenden Sivas-Nummern zugewiesen, und damit die aktuellen Preise.
|
||||
Diese Zuordnung von Parametern und ihren aktuellen Preisen wird wieder in eine config-Datei geschrieben, die mit den Preisen der Daten_cfg.txt-Datei abzugleichen ist, auf die rieter_ekalk zugreift.
|
||||
Diese Zuordnung von Parametern und ihren aktuellen Preisen wird wieder in eine config-Datei geschrieben, die mit den Preisen der Sivas_Daten.cfg-Datei abzugleichen ist, auf die rieter_ekalk zugreift.
|
||||
"""
|
||||
faktoren_sivas_Nummern = {
|
||||
"zuleitung_75_m_unterverteiler_4x4mm2_400vac":75,
|
||||
"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":75,
|
||||
"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc":75,
|
||||
"zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm":55,
|
||||
"zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm":55,
|
||||
"schnittstellen_8x1mm2_30m":30
|
||||
|
||||
}
|
||||
class Kosten():
|
||||
"""
|
||||
Liest die Sivas-Excel-Liste ein und schreibt eine neue config Datei mit den aktuellen Preisen der in rieter-ekalk verwendeten Sivas-IDs.
|
||||
"""
|
||||
|
||||
def __init__(self, pathNew="Zuordnung_Teilenummern.txt", pathOld="Daten_cfg.txt", sivasData="grid_export.xlsx"):
|
||||
def __init__(self, pathNew="Zuordnung_Teilenummern.cfg", pathOld="Sivas_Daten.cfg", sivasData="grid_export.xlsx"):
|
||||
"""
|
||||
:param pathNew: cfg-Datei, die den Bauteilen ihre Sivas-Nummern zuweist z.B. "schaltschrankgehaeuse_b2x800_zubehoer = 790821101"
|
||||
:param pathOld: cfg-Datei, die in rieter_ekalk verwendet wird und den Bauteilen Preise zuweist z.B. "schaltschrankgehaeuse_b2x800_zubehoer = 4663.45"
|
||||
:param sivasData: Excel-Datei mit Sivas-Nummern und entsprechenden Preisen, Überschrift: Teilenummer, Herstellkosten
|
||||
:param sivasData: Excel-Datei mit Sivas-Nummern und entsprechenden Preisen, Überschrift: Teilenummer, Laufende Materialkosten
|
||||
"""
|
||||
df = pd.read_excel(sivasData, header=0, index_col="Teilenummer")
|
||||
tab = df.drop(columns=["Bezeichnung1"])
|
||||
self._kosten = tab.to_dict()
|
||||
df = pd.read_excel(sivasData, header=0, index_col=0, usecols=["Teilenummer", "Laufende Materialkosten" ])
|
||||
self._kosten = df.to_dict()
|
||||
|
||||
self._given = True
|
||||
if os.path.exists(pathNew):
|
||||
@@ -55,14 +47,17 @@ class Kosten():
|
||||
|
||||
:param not_found_keys: Dict von Bauteilen, denen eine Nummer zugeordnet ist, die in Sivas nicht existiert z.B. {'schaltschrankgehaeuse_b1x800_zubehoer': '----'}
|
||||
"""
|
||||
faktoren = self.getZuordnungTeilenummernAsDict("Faktoren")
|
||||
newDict = {}
|
||||
for key, val in self.getZuordnungTeilenummernAsDict().items():
|
||||
for key, val in self.getZuordnungTeilenummernAsDict("HW_Einzelpreise").items():
|
||||
number = val.strip()
|
||||
self.getPriceFromNumber(key, number, newDict, not_found_keys)
|
||||
if "+" in number:
|
||||
del not_found_keys[key]
|
||||
split_sivas_ids = number.split('+')
|
||||
self.getPriceFromAddedNumbers(key, split_sivas_ids, newDict, not_found_keys)
|
||||
if key in faktoren:
|
||||
newDict[key] *= float(faktoren[key])
|
||||
|
||||
return newDict
|
||||
|
||||
@@ -80,8 +75,8 @@ class Kosten():
|
||||
for summand in split_sivas_ids:
|
||||
summand = summand.strip()
|
||||
# summand: einzelner Summand z.B. '827072204'
|
||||
if summand in self._kosten["Herstellkosten"]:
|
||||
cost = self._kosten["Herstellkosten"][summand]
|
||||
if summand in self._kosten["Laufende Materialkosten"]:
|
||||
cost = self._kosten["Laufende Materialkosten"][summand]
|
||||
# cost: Einzelpreis eines Summanden [€]
|
||||
if type(cost) is type(int) or type(float):
|
||||
price += cost
|
||||
@@ -101,21 +96,21 @@ class Kosten():
|
||||
:param newDict: z.B. {'schaltschrankgehaeuse_b2x800_zubehoer':9490.23, ...}
|
||||
:param not_found_keys: Dict von Bauteilen, denen eine Nummer zugeordnet ist, die in Sivas nicht existiert z.B. {'schaltschrankgehaeuse_b1x800_zubehoer': '----'}
|
||||
"""
|
||||
if number in self._kosten["Herstellkosten"]:
|
||||
price = self._kosten["Herstellkosten"][number]
|
||||
if number in self._kosten["Laufende Materialkosten"]:
|
||||
price = self._kosten["Laufende Materialkosten"][number]
|
||||
if price is int or float:
|
||||
newDict.update({key: price})
|
||||
else:
|
||||
not_found_keys.update({key:number})
|
||||
def getDefaultDictAsFloat(self):
|
||||
def getDefaultDictAsFloat(self, section_name):
|
||||
res = dict()
|
||||
for key, val in self._default.items("HW_Einzelpreise"):
|
||||
for key, val in self._default.items(section_name):
|
||||
res[key] = float(val)
|
||||
return res
|
||||
|
||||
def getZuordnungTeilenummernAsDict(self):
|
||||
def getZuordnungTeilenummernAsDict(self, section_name):
|
||||
res = dict()
|
||||
for key, val in self._zuordnung.items("HW_Einzelpreise"):
|
||||
for key, val in self._zuordnung.items(section_name):
|
||||
res[key] = val
|
||||
return res
|
||||
|
||||
@@ -123,6 +118,7 @@ class Kosten():
|
||||
config = configparser.ConfigParser()
|
||||
config["HW_Einzelpreise"] = latest_costs
|
||||
config["Preise durch Sivas nicht ermittelbar"] = not_found_in_sivas
|
||||
print("writing new config file", name)
|
||||
with open(name, 'w') as configfile:
|
||||
config.write(configfile)
|
||||
|
||||
@@ -134,20 +130,42 @@ class Kosten():
|
||||
new_prices = list()
|
||||
for sivas_number in latest_costs.keys():
|
||||
sivas_numbers.append(sivas_number)
|
||||
old_prices.append(self.getDefaultDictAsFloat().get(sivas_number))
|
||||
old_prices.append(self.getDefaultDictAsFloat("HW_Einzelpreise").get(sivas_number))
|
||||
new_prices.append(latest_costs.get(sivas_number))
|
||||
data = {"Sivas-Nummern":sivas_numbers, "Alte Preise":old_prices, "Neue Preise":new_prices}
|
||||
df = pd.DataFrame.from_dict(data)
|
||||
print("write price increments", name)
|
||||
df.to_excel(name, sheet_name="Preisänderungen", index_label="Sivas-Nummern")
|
||||
|
||||
|
||||
# lies die alte config und die Excel-Liste mit den Sivas-Daten
|
||||
costs = Kosten()
|
||||
not_found_in_sivas = dict()
|
||||
latest_costs = costs.getNewPricesAsDict(not_found_in_sivas)
|
||||
# schreibe die neue config mit den aktuellen Preisen
|
||||
costs.writeNewConfig('Sivas_Abgleich.cfg')
|
||||
|
||||
# schreibe die Preisänderungen in eine Excel-Datei
|
||||
costs.writePriceIncrements('Preis_Increments.xlsx')
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='calculation of a system according to Bös', prog='ecalc')
|
||||
parser.add_argument('-o', '--outfile', action='store', help='name of the output excel file', default="Preis_Increments.xlsx")
|
||||
|
||||
args = parser.parse_args()
|
||||
base = os.environ.get('ECALC_CFG')
|
||||
zuordCfgFilePath = os.path.join(base, "Zuordnung_Teilenummern.cfg")
|
||||
sivasCfgFilePath = os.path.join(base, "Sivas_Daten.cfg")
|
||||
gridExportFilePath = os.path.join(base, "grid_export.xlsx")
|
||||
|
||||
|
||||
if not os.path.exists(zuordCfgFilePath):
|
||||
print("no Zuordnung_Teilenummern.cfg in ECALC_CFG")
|
||||
if not os.path.exists(sivasCfgFilePath):
|
||||
print("no Sivas_Daten.cfg in ECALC_CFG")
|
||||
if not os.path.exists(gridExportFilePath):
|
||||
print("no grid_export.xlsx with prices from SIVAS in ECALC_CFG")
|
||||
|
||||
# lies die alten config und die Excel-Liste mit den Sivas-Daten
|
||||
costs = Kosten(zuordCfgFilePath, sivasCfgFilePath, gridExportFilePath)
|
||||
not_found_in_sivas = dict()
|
||||
latest_costs = costs.getNewPricesAsDict(not_found_in_sivas)
|
||||
# schreibe die neue config mit den aktuellen Preisen
|
||||
outCfg = os.path.join(os.environ.get('ECALC_WORK'), "Sivas_Abgleich.cfg")
|
||||
costs.writeNewConfig(outCfg)
|
||||
|
||||
# schreibe die Preisänderungen in eine Excel-Datei
|
||||
outPath = os.path.join(os.environ.get('ECALC_WORK'), args.outfile)
|
||||
costs.writePriceIncrements(outPath)
|
||||
@@ -0,0 +1,463 @@
|
||||
import rieter_ekalk as rek
|
||||
import pandas as pd
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import configparser
|
||||
|
||||
|
||||
order_dienstleistungen = [
|
||||
"Pflichtenheft_Autom_Schnittstellen",
|
||||
|
||||
"Erstellung_Steuerungslayout",
|
||||
"Schaltplanerstellung_incl_Korrekturen",
|
||||
"Projektkoordination",
|
||||
"Materialdispo",
|
||||
"Abstimmung_mit_E_Werkstatt",
|
||||
"Erstellen_E_Montageunterlagen",
|
||||
|
||||
"PC_Installation",
|
||||
"Oberfläche_Simulation",
|
||||
"SPS_Test_im_Haus_Simulation",
|
||||
"Bedienerhandbuch",
|
||||
"SPS_Doku",
|
||||
"PC_Doku",
|
||||
"Summe_Dienstleistungen_Hardwareplanung",
|
||||
|
||||
"Schaltschrankbau",
|
||||
"Unterverteilerbau",
|
||||
"Klemmkastenbau_je_2h",
|
||||
"Bedientableaubau",
|
||||
"Vormontage_im_Haus",
|
||||
"Summe_Dienstleistungen_Elektrowerkstatt",
|
||||
|
||||
"Summe_Dienstleistungen_in_LL",
|
||||
]
|
||||
order_ergebnisse = [
|
||||
"E_Werkstatt",
|
||||
"Schaltschrankbau_extern_Mehrkosten",
|
||||
"Dienstleistung_in_LL",
|
||||
"Pflichtenheft",
|
||||
"SPS_Programmierung",
|
||||
"PC_Programmierung_Visualisierung",
|
||||
"Montage_elektrisch",
|
||||
"Inbetriebnahmetest_Hardware_durch_Montage",
|
||||
"SPS_Inbetriebsetzung",
|
||||
"PC_Inbetriebsetzung",
|
||||
"Inbetriebnahmeunterstützung_durch_Montage",
|
||||
"Dokumentation",
|
||||
"Bedienungsanleitung_Emmert",
|
||||
"Schulung_vor_Ort_beim_Kunden",
|
||||
"Abnahme",
|
||||
"SPS_Anlagenbetreuung",
|
||||
"PC_Anlagenbetreuung",
|
||||
"Anlagenbetreuung_durch_Montage",
|
||||
"GESAMT",
|
||||
]
|
||||
order_hardware = [
|
||||
"schaltschrankgehaeuse_b1x1200_zubehoer",
|
||||
"schaltschrankgehaeuse_b2x800_zubehoer",
|
||||
"schaltschrankgehaeuse_b1x1200+1x800_zubehoer",
|
||||
"sps_simatic_s7_cpu315_2_pn_dp",
|
||||
"speicherkarte_fuer_sps_512_kb",
|
||||
"sps_simatic_s7_cpu317_2_pn_dp",
|
||||
"speicherkarte_fuer_sps2_mb",
|
||||
"sps_simatic_s7_1515_2",
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
"abgang_400v",
|
||||
"abgang_24_v",
|
||||
"anlagenrechner",
|
||||
"anlagenrechner_ohne_bildschirm",
|
||||
"pulteinbau_monitor_srline_rflat_24fhd",
|
||||
"kurzhubtastatur_kbt06_mit_touchpad_uslayout",
|
||||
"netzwerk_display_adapter_lindy",
|
||||
"zusaetzlicher_bildschirm",
|
||||
"schaltschrank",
|
||||
"unterverteiler_fuer_1neuenhauser_pm",
|
||||
"unterverteiler_fuer_1flyer",
|
||||
"unterverteiler_fuer_2flyer",
|
||||
"unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine",
|
||||
"unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine",
|
||||
"unterverteiler_fuer_puffer",
|
||||
"unterverteiler_fuer_5_rsm_fa",
|
||||
"korrektur_5_rsm_zusaetzlich_im_unterverteiler",
|
||||
"unterverteiler_fuer_10_rsm_fa",
|
||||
"korrektur_10_rsm_zusaetzlich_im_unterverteiler",
|
||||
"unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar",
|
||||
"korrektur_3_rsm_zusaetzlich_im_unterverteiler",
|
||||
"unterverteiler_fuer_4_rsm_direct",
|
||||
"korrektur_4_rsm_zusaetzlich_im_unterverteiler",
|
||||
"unterverteiler_fuer_12_rsm_direct",
|
||||
"korrektur_12_rsm_zusaetzlich_im_unterverteiler",
|
||||
"unterverteiler_fuer_8_rsm_direct",
|
||||
"korrektur_8_rsm_direct_zusaetzlich_im_unterverteiler",
|
||||
"busverteiler_6_rsm_direct",
|
||||
"korrektur_6_rsm_zusaetzlich_im_busverteiler",
|
||||
"busverteiler_8_rsm_direct",
|
||||
"korrektur_8_rsm_zusaetzlich_im_busverteiler",
|
||||
"antrieb_unidirektional_halbleiter",
|
||||
"antrieb_bidirektional_halbleiter",
|
||||
"antrieb_unidirektional_schuetz",
|
||||
"antrieb_bidirektional_schuetz",
|
||||
"motorschutzschalter",
|
||||
"wendeschuetzschaltung",
|
||||
"frequenzumrichter",
|
||||
"bedienstation_1fach_kpl",
|
||||
"bedienst_2fach_wechs_bcd_10f",
|
||||
"bedienstation_2fach_kpl",
|
||||
"halter_bedientableau_2fach",
|
||||
"bedienstation_3fach_kpl",
|
||||
"halter_bedientableau_3fach",
|
||||
"bedienstation_4fach_kpl",
|
||||
"halter_bedientableau_4fach",
|
||||
"bedienstation_6fach_kpl",
|
||||
"halter_bedienstation_6fach",
|
||||
"drucktaster_automatische_umfahrung",
|
||||
"halter_fuer_drucktaster",
|
||||
"ET200_SP",
|
||||
"et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45",
|
||||
"korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45",
|
||||
"et200_sp_eingangskarte_8_de",
|
||||
"korrektur_et200_sp_eingangskarte_8_de",
|
||||
"et200_sp_eingangskarte_16_de",
|
||||
"et200_sp_eingangskarte_8_do",
|
||||
"korrektur_et200_sp_eingangskarte_8_do",
|
||||
"et200_sp_eingangskarte_16_do",
|
||||
"et200_sp_base_unit_neue_last_mit_potKlemmen",
|
||||
"korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen",
|
||||
"et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen",
|
||||
"et200_sp_base_unit_neue_last",
|
||||
"korrektur_et200_sp_base_unit_neue_last",
|
||||
"et200_sp_base_unit_links_gebrueckt",
|
||||
"korrektur_et200_sp_base_unit_links_gebrueckt",
|
||||
"SLIO",
|
||||
"et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO",
|
||||
"korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO",
|
||||
"slio_eingangskarte_4_de",
|
||||
"korrektur_slio_eingangskarte_4_de",
|
||||
"slio_eingangskarte_8_de",
|
||||
"korrektur_slio_eingangskarte_8_de",
|
||||
"slio_ausgangskarte_4_do",
|
||||
"korrektur_slio_ausgangskarte_4_do",
|
||||
"slio_ausgangskarte_8_do",
|
||||
"korrektur_slio_ausgangskarte_8_do",
|
||||
"slio_power_modul",
|
||||
"korrektur_slio_power_modul",
|
||||
"slio_4_x_dc_24v_4_x_dc_0v",
|
||||
"korrektur_slio_4_x_dc_24v_4_x_dc_0v",
|
||||
"slio_8_x_dc_24v",
|
||||
"slio_8_x_dc_0v",
|
||||
"korrektur_slio_8_x_dc_0v",
|
||||
"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",
|
||||
"kabel_fuer_1fach_bts_zug_wechseln",
|
||||
"zuleitung_75_m_unterverteiler_4x4mm2_400vac",
|
||||
"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc",
|
||||
"korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc",
|
||||
"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc",
|
||||
"korrektur_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",
|
||||
"korrektur_profinetkabel",
|
||||
"schnittstellen_8x1mm2_30m",
|
||||
"Summe_Landsberg",
|
||||
"Summe_vorOrt",
|
||||
"Summe_gesamt",
|
||||
]
|
||||
order_eas = [
|
||||
'bedienstation_1fach_Not_Aus',
|
||||
'bedienstation_einfach_Zug_Wechseln',
|
||||
'bedienstation_automatische_Umfahrung',
|
||||
'bedienstation_zweifach_Wechs_BCD_10f',
|
||||
'bedienstation_zweifach_Not_Aus_Reset',
|
||||
'bedienst_dreifach',
|
||||
'bedienst_vierfach',
|
||||
'bedienst_sechsfach',
|
||||
'EAs_Unterverteiler_direct',
|
||||
|
||||
'Sensor_Traversenabfrage_optisch',
|
||||
'Reflexionslichtschranke_RSM_DIRECT',
|
||||
'Sensor induktiv Flyer+PM',
|
||||
'Seilzugschalter',
|
||||
|
||||
'Weiche',
|
||||
'Weiche_nach_PM_bipolar',
|
||||
'gemeinsame_Weichenrueckstellung',
|
||||
'Dreifach_Weiche_DIRECT',
|
||||
'Kreuzungsweiche',
|
||||
'Stopper',
|
||||
'Ventil_RA_3_2_abhebbar',
|
||||
'Ventil_Doppelstreckenantrieb_5_2_abhebbar',
|
||||
'Blitzleuchte_Stoerung',
|
||||
|
||||
'Schnittstelle_Flyer_ElectroJet',
|
||||
'Schnittstelle_Putzmaschine_Neuhauser',
|
||||
'FEldbux_UV_EinAusgang',
|
||||
|
||||
'Spulenumsetzstation',
|
||||
|
||||
'RA_unidirektional',
|
||||
'RA_unidirektional_abhebbar',
|
||||
'RA_unidirektional_mit_gemeinsamer_Wendung',
|
||||
'RA_unidirektional_ohne_SPS_Ansteuerung',
|
||||
'RA_bidirektional',
|
||||
'RA_bidirektional_abhebbar',
|
||||
'RA_bidirektional_abhebbar_gemeinsWend',
|
||||
'RA_bidirektional_ohne_SPS_Ansteuerung',
|
||||
'RA_in_RSM_bidirektional',
|
||||
'Doppelstreckenantrieb',
|
||||
'Doppelstreckenantriebgemeinsame_Wendung',
|
||||
'gemeinsame_Wendung',
|
||||
'Frequenzumrichter',
|
||||
|
||||
'Summe Komponenten',
|
||||
'Summe Komponenten inkcl. Reserve',
|
||||
]
|
||||
order_emo = [
|
||||
'Schaltschrank_aufstellen',
|
||||
'Unterverteiler_montieren',
|
||||
'Pritsche_montieren_umbauen_demontieren',
|
||||
'Pritsche_in_RSM_montieren',
|
||||
'Motor_verdrahten_und_anschliessen',
|
||||
'Tableau_befestigen_und_anschliessen',
|
||||
'Schnittstelle_Flyer_Putzmaschine',
|
||||
'Sensoren_montieren',
|
||||
'Seilzugschalter_installieren',
|
||||
'Blitzleuchte_installieren',
|
||||
'Weiche_Stopper_anschliessen',
|
||||
'Erdung',
|
||||
'Summe',
|
||||
'Summe inkl. Mehraufwand',
|
||||
]
|
||||
class cfg():
|
||||
"""
|
||||
Liest die config-Datei ein, in der Stückpreise und Zeiteinheiten pro Bauteil wie in der rieter_ekalk Excel-Datei verwendet angegeben sind, und schreibt sie in ein Dictionary.
|
||||
"""
|
||||
def __init__(self, path="Sivas_Daten.cfg"):
|
||||
"""
|
||||
:param path: Die config-Datei, in der Stückpreise und Zeiteinheiten der jeweiligen Bauteile aufgelistet sind z.B.[HW_Einzelpreise]
|
||||
# Schaltschrank Einzelpreis
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 2000
|
||||
"""
|
||||
self._hasConfig = True
|
||||
if os.path.exists(path):
|
||||
self._cfg = configparser.ConfigParser(inline_comment_prefixes="#")
|
||||
self._cfg.optionxform = str
|
||||
self._cfg.read_file(open(path))
|
||||
else:
|
||||
self._hasConfig = False
|
||||
self._cfg = None
|
||||
|
||||
def exists(self):
|
||||
return self._hasConfig
|
||||
|
||||
def isfloat(self, num):
|
||||
try:
|
||||
float(num)
|
||||
return True
|
||||
except ValueError:
|
||||
return False
|
||||
|
||||
def getTypedDict(self, section:str):
|
||||
"""
|
||||
Schreibt die Zuordnungen von Bauteil:Stückpreis/Zeiteinheit (je nach gewählter Überschrift) aus der config-Datei in ein Dictionary.
|
||||
:param section: Überschrift in der config-Datei z.B. "HW_Einzelpreise"
|
||||
"""
|
||||
if section not in self._cfg.sections():
|
||||
return dict()
|
||||
res = dict()
|
||||
for key, val in self._cfg.items(section):
|
||||
if val.lower() in ['true']:
|
||||
res[key] =True
|
||||
elif val.lower() in ['false']:
|
||||
res[key] =False
|
||||
elif val.startswith("-"):
|
||||
res[key] = float(val)
|
||||
elif self.isfloat(val):
|
||||
res[key] = float(val)
|
||||
else:
|
||||
res[key] = val
|
||||
return res
|
||||
|
||||
def to_dicts(eas:rek.EA, hw:rek.HW, emo:rek.EMO, dl:rek.Dienstleistung, erg:rek.Ergebnis):
|
||||
dEas = eas.getSEAs(order_eas)
|
||||
dEas['Summe Komponenten'] = [eas.gesamt_E(), eas.gesamt_A()]
|
||||
dEas['Summe Komponenten inkcl. Reserve'] = [eas.gesamt_E_incl_reserve(), eas.gesamt_A_incl_reserve()]
|
||||
|
||||
dhardware = hw.to_dict()
|
||||
hoursEMO = emo.to_dict()
|
||||
dDienstleistung = dl.to_dict()
|
||||
|
||||
dSummary = erg.summary_costs(hw)
|
||||
return (dEas, dhardware, hoursEMO, dDienstleistung, dSummary)
|
||||
|
||||
def to_json(eas:rek.EA, hw:rek.HW, emo:rek.EMO, dl:rek.Dienstleistung, erg:rek.Ergebnis, outfile):
|
||||
(dEas, hardware, hoursEMO, dienstleistung, ergebnisse) = to_dicts(eas, hw, emo, dl, erg)
|
||||
dOut = {
|
||||
'ergebnisse': ergebnisse,
|
||||
'hardware': hardware,
|
||||
'eas': dEas,
|
||||
'dienstleistung': dienstleistung,
|
||||
'emo': hoursEMO,
|
||||
}
|
||||
with open(outfile, 'w', encoding ='utf8') as json_file:
|
||||
json.dump(dOut, json_file, ensure_ascii=False, indent=2)
|
||||
|
||||
def to_excel(eas:rek.EA, hw:rek.HW, emo:rek.EMO, dl:rek.Dienstleistung, erg:rek.Ergebnis, outfile):
|
||||
|
||||
(dEas, hardware, hoursEMO, dienstleistung, ergebnisse) = to_dicts(eas, hw, emo, dl, erg)
|
||||
|
||||
df_temp = pd.DataFrame.from_dict(data=dEas, orient='index', columns=['S.E', 'S.A'])
|
||||
df_eas = pd.DataFrame(data=df_temp, index=order_eas)
|
||||
|
||||
df_temp = pd.DataFrame.from_dict(data=hardware, orient='index', columns=['Strück'])
|
||||
df_hardware = pd.DataFrame(data=df_temp, index=order_hardware)
|
||||
|
||||
df_temp = pd.DataFrame.from_dict(data=hoursEMO, orient='index', columns=['Aufwand [h]'])
|
||||
df_emo = pd.DataFrame(data=df_temp, index=order_emo)
|
||||
|
||||
df_temp = pd.DataFrame.from_dict(data=dienstleistung, orient='index', columns=['Aufwand [h]'])
|
||||
df_dienst = pd.DataFrame(data=df_temp, index=order_dienstleistungen)
|
||||
|
||||
df_temp = pd.DataFrame.from_dict(data=ergebnisse, orient='index', columns=['Aufwand [€]'])
|
||||
df_aufwand = pd.DataFrame(data=df_temp, index=order_ergebnisse)
|
||||
|
||||
#df = pd.DataFrame.from_dict(data=dienstleistung, orient='index', columns=['Dienstleistungen'])
|
||||
|
||||
with pd.ExcelWriter(outfile) as writer:
|
||||
df_aufwand.to_excel(writer, sheet_name='Kostenaufstellung')
|
||||
df_hardware.to_excel(writer, sheet_name='Hardware')
|
||||
df_dienst.to_excel(writer, sheet_name='Dienstleistungen')
|
||||
df_eas.to_excel(writer, sheet_name='EAs')
|
||||
df_emo.to_excel(writer, sheet_name='EMO')
|
||||
# TODO Mengengerüst, ev. Anschlussleistung und Ausgangsstrom
|
||||
|
||||
def run_calc(infile, SivasConfig):
|
||||
|
||||
|
||||
infileCfg = cfg(infile)
|
||||
|
||||
Anzahl_MG = infileCfg.getTypedDict("allgemein")
|
||||
rsm_direct_eingabe = infileCfg.getTypedDict("rsm_direct")
|
||||
rsm_fa_eingabe = infileCfg.getTypedDict("rsm_fa")
|
||||
flyer_f40_eingabe = infileCfg.getTypedDict("flyer_f40")
|
||||
neuenhauser_eingabe = infileCfg.getTypedDict("neuenhauser")
|
||||
flyer_eingabe = infileCfg.getTypedDict("flyer")
|
||||
verbindungsstrecken_w_eingabe = infileCfg.getTypedDict("verbindungsstrecken_w")
|
||||
puffer_eingabe = infileCfg.getTypedDict("puffer")
|
||||
turm_eingabe = infileCfg.getTypedDict("turm")
|
||||
mg = rek.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)
|
||||
|
||||
|
||||
anStr = SivasConfig.getTypedDict("Antriebsstrom")
|
||||
cosPhi = SivasConfig.getTypedDict("cos phi")
|
||||
al = rek.Anschlussl(anStr, cosPhi)
|
||||
Anzahl_AL ={}
|
||||
al.calc(Anzahl_AL, mg)
|
||||
# self.assertEqual(al._ANZAHL.get("Anzahl_Motor"), 48)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("Summe_Strom_Motor"), 26.4)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("Summe_Strom_Motor_SPS_Peripherie"), 29.4)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("GZF"), 16.2)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("Res"), 1.62)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("Gesamtstrom"), 17.82)
|
||||
# self.assertAlmostEqual(al._Anschlussspannung, 400)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("Leistung"), 12.345696)
|
||||
# self.assertAlmostEqual(al._ANZAHL.get("Gesamtanschlussleistung"), 13)
|
||||
|
||||
Anzahl_EAS = infileCfg.getTypedDict("EAS")
|
||||
eas = rek.EA(Anzahl_EAS, mg)
|
||||
|
||||
hwep = SivasConfig.getTypedDict("HW_Einzelpreise")
|
||||
hwhp = SivasConfig.getTypedDict("HW_Zeiten Hardwareplanung")
|
||||
hwzew = SivasConfig.getTypedDict("HW_Zeiten Elektro-Werkstatt")
|
||||
|
||||
Anzahl_HW = infileCfg.getTypedDict("HW")
|
||||
hw = rek.HW(hwep, hwhp, hwzew)
|
||||
hw.calc(Anzahl_HW, mg, eas)
|
||||
|
||||
emoz = SivasConfig.getTypedDict("ElektSro-Montagezeiten")
|
||||
emo = rek.EMO(emoz)
|
||||
emo.calc(eas, hw, mg)
|
||||
|
||||
Anzahl_DL = infileCfg.getTypedDict("DL")
|
||||
dl = rek.Dienstleistung(Anzahl_DL, hw)
|
||||
|
||||
Anzahl_Ergebnis = infileCfg.getTypedDict("Ergebnis")
|
||||
kph = SivasConfig.getTypedDict("Kosten pro h")
|
||||
erg = rek.Ergebnis(kph)
|
||||
erg.calc(Anzahl_Ergebnis, hw, dl, emo)
|
||||
|
||||
return (eas, hw, emo, dl, erg)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description='calculation of a system according to Bös', prog='ecalc')
|
||||
parser.add_argument('-i', '--infile', action='store', help='name of the input file', default="jayjay.cfg")
|
||||
parser.add_argument('-x', '--xlsx', action='store', help='name of the output .xlsx file. If none given, name of the input file is used.')
|
||||
parser.add_argument('-c', '--config', action='store', help='name of the config file inside of cfg folder to use. Default is Sivas_Daten.cfg', default="Sivas_Daten.cfg")
|
||||
parser.add_argument('-j', '--json', action='store', help='name of the json file as output. If none given, name of the input file is used. ')
|
||||
|
||||
args = parser.parse_args()
|
||||
sivasCfgFilePath = os.path.join(os.environ.get('ECALC_CFG'), args.config)
|
||||
RieterConfig = cfg(sivasCfgFilePath)
|
||||
|
||||
inFilePath = os.path.join(os.environ.get('ECALC_WORK'), args.infile)
|
||||
if os.path.isfile(inFilePath):
|
||||
(fname, ext) = os.path.splitext(args.infile)
|
||||
(eas, hw, emo, dl, erg) = run_calc(inFilePath, RieterConfig)
|
||||
if args.xlsx:
|
||||
xlsPath = os.path.join(os.environ.get('ECALC_WORK'), args.xlsx)
|
||||
else:
|
||||
xlsPath = os.path.join(os.environ.get('ECALC_WORK'), fname + '.xlsx')
|
||||
to_excel(eas, hw, emo, dl, erg, xlsPath)
|
||||
if args.json:
|
||||
jsonPath = os.path.join(os.environ.get('ECALC_WORK'), args.json)
|
||||
else:
|
||||
jsonPath = os.path.join(os.environ.get('ECALC_WORK'), fname + '.json')
|
||||
to_json(eas, hw, emo, dl, erg, jsonPath)
|
||||
|
||||
else:
|
||||
print("no such file in ECALC_WORK")
|
||||
# os.environ.get('ECALC_BIN')
|
||||
# os.environ.get('ECALC_WORK')
|
||||
# os.environ.get('ECALC_CFG')
|
||||
# os.environ.get('ECALC_LIB')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,42 +1,6 @@
|
||||
import math
|
||||
import json
|
||||
import configparser
|
||||
import os.path
|
||||
|
||||
JSON_IDENT = 5
|
||||
|
||||
|
||||
class cfg():
|
||||
"""
|
||||
Liest die config-Datei ein, in der Stückpreise und Zeiteinheiten pro Bauteil wie in der rieter_ekalk Excel-Datei verwendet angegeben sind, und schreibt sie in ein Dictionary.
|
||||
"""
|
||||
def __init__(self, path="Daten_cfg.txt"):
|
||||
"""
|
||||
:param path: Die config-Datei, in der Stückpreise und Zeiteinheiten der jeweiligen Bauteile aufgelistet sind z.B.[HW_Einzelpreise]
|
||||
# Schaltschrank Einzelpreis
|
||||
schaltschrankgehaeuse_b1x800_zubehoer = 2000
|
||||
"""
|
||||
self._hasConfig = True
|
||||
if os.path.exists(path):
|
||||
self._cfg = configparser.ConfigParser(inline_comment_prefixes="#")
|
||||
self._cfg.read_file(open(path))
|
||||
else:
|
||||
self._hasConfig = False
|
||||
self._cfg = None
|
||||
|
||||
def exists(self):
|
||||
return self._hasConfig
|
||||
|
||||
def getDictAsFloat(self, section):
|
||||
"""
|
||||
Schreibt die Zuordnungen von Bauteil:Stückpreis/Zeiteinheit (je nach gewählter Überschrift) aus der config-Datei in ein Dictionary.
|
||||
:param section: Überschrift in der config-Datei z.B. "HW_Einzelpreise"
|
||||
"""
|
||||
res = dict()
|
||||
for key, val in self._cfg.items(section):
|
||||
res[key] = float(val)
|
||||
return res
|
||||
RieterConfig = cfg()
|
||||
|
||||
class MG():
|
||||
def __init__(self, deckblatt:dict, **kwargs):
|
||||
@@ -189,7 +153,7 @@ class MG():
|
||||
"""
|
||||
return self._deckblatt.get(key, 0)
|
||||
|
||||
def get_value_of_object(self, objectname, key):
|
||||
def get_value_of_object(self, objectname:str, key:str):
|
||||
"""
|
||||
:param objectname: Name der Klasse, zu der das Bauteil gehört, dessen Wert man wissen will z.B. "puffer"
|
||||
:param key: Name des Bauteils, dessen Wert ermittelt werden soll z.B. "Sensor_optisch_Traverse"
|
||||
@@ -926,7 +890,7 @@ class Puffer():
|
||||
self._Mengen["Meldelampe_Überstrom_Korrektur"] = anzahl.get("Meldelampe_Überstrom_Korrektur", 0)
|
||||
self._Mengen["Hauptschalter_Ein_Meldung"] = self._Puffer_Anzahl + anzahl.get("Hauptschalter_Ein-Meldung_Korrektur", 0)
|
||||
self._Mengen["Hauptschalter_Ein-Meldung_Korrektur"] = anzahl.get("Hauptschalter_Ein-Meldung_Korrektur", 0)
|
||||
def anzahl(self, partname, defaultv = 0):
|
||||
def anzahl(self, partname:str, defaultv = 0):
|
||||
return self._Mengen.get(partname, defaultv)
|
||||
# Turm
|
||||
class Turm():
|
||||
@@ -961,7 +925,6 @@ class Turm():
|
||||
def anzahl(self, partname, defaultv = 0):
|
||||
return self._Mengen.get(partname, defaultv)
|
||||
|
||||
|
||||
class EA():
|
||||
|
||||
stueckzahl = {
|
||||
@@ -1146,7 +1109,13 @@ class EA():
|
||||
return self.EAs[partname][1]
|
||||
def anzahl(self, partname, defaultv = 0):
|
||||
return self._Anzahl.get(partname, defaultv)
|
||||
|
||||
def getSEAs(self, partnames:list):
|
||||
res = dict()
|
||||
for partname in partnames:
|
||||
if partname not in self.EAs:
|
||||
continue
|
||||
res[partname] = [self.get_SE(partname), self.get_SA(partname)]
|
||||
return res
|
||||
def get_SE(self, partname):
|
||||
num_of_e = self.getE(partname)
|
||||
zahl = self.anzahl(partname)
|
||||
@@ -1193,7 +1162,6 @@ class EA():
|
||||
SiemensS7_32DA_incl_reserve = math.ceil(self.gesamt_A_incl_reserve()/32)
|
||||
return (SiemensS7_32DE_incl_reserve, SiemensS7_32DA_incl_reserve)
|
||||
|
||||
|
||||
class HW():
|
||||
#TODO "bedienstation_1fach_Not_Aus" keine Anzahl manuelle eingabe aber dann noch bezüge in mengengerüst und hardware; muss noch eingepflegt werden
|
||||
mengen = {
|
||||
@@ -1209,7 +1177,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 0,
|
||||
"sps_simatic_s7_1518_4": 0,
|
||||
"sps_et200_1512sp": 0,
|
||||
#"memory_card_256_mb": 0
|
||||
#"memory_card_2_gb": 0
|
||||
"et200_sp_ea_ebene":1,
|
||||
"netzwerk_fernwartung":1,
|
||||
@@ -1363,7 +1330,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 3827.8, # 790008101
|
||||
"sps_simatic_s7_1518_4": 5892, # 6ES7518-4AP00-0AB0
|
||||
"sps_et200_1512sp": 705.75, # 709000003
|
||||
"memory_card_256_mb": 0, # 708015093
|
||||
"memory_card_2_gb": 515.9, # 708015094
|
||||
"et200_sp_ea_ebene": 0, # 790009001
|
||||
"netzwerk_fernwartung": 750, # 790011001
|
||||
@@ -1488,8 +1454,8 @@ class HW():
|
||||
"schnittstellen_8x1mm2_30m": 35.4, # 725000019
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
ep.update(RieterConfig.getDictAsFloat("HW_Einzelpreise"))
|
||||
# if RieterConfig.exists():
|
||||
# ep.update(RieterConfig.getDictAsFloat("HW_Einzelpreise"))
|
||||
# Zeit pro Einheit in min
|
||||
zpe_dienstl_hardwareplanung = {
|
||||
"schaltschrankgehaeuse_b1x1200_zubehoer": 4200,
|
||||
@@ -1503,7 +1469,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 0,
|
||||
"sps_simatic_s7_1518_4": 0,
|
||||
"sps_et200_1512sp": 0,
|
||||
"memory_card_256_mb": 0,
|
||||
"memory_card_2_gb": 0,
|
||||
"et200_sp_ea_ebene":60,
|
||||
"netzwerk_fernwartung":0,
|
||||
@@ -1532,8 +1497,8 @@ class HW():
|
||||
"busverteiler_8_rsm_direct":960
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
zpe_dienstl_hardwareplanung.update(RieterConfig.getDictAsFloat("HW_Zeiten Hardwareplanung"))
|
||||
# if RieterConfig.exists():
|
||||
# zpe_dienstl_hardwareplanung.update(RieterConfig.getDictAsFloat("HW_Zeiten Hardwareplanung"))
|
||||
zpe_e_werkstatt = {
|
||||
"schaltschrankgehaeuse_b1x1200_zubehoer": 2400,
|
||||
"schaltschrankgehaeuse_b2x800_zubehoer": 4800,
|
||||
@@ -1546,7 +1511,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 0,
|
||||
"sps_simatic_s7_1518_4": 0,
|
||||
"sps_et200_1512sp": 0,
|
||||
"memory_card_256_mb": 0,
|
||||
"memory_card_2_gb": 0,
|
||||
"et200_sp_ea_ebene":120,
|
||||
"netzwerk_fernwartung":0,
|
||||
@@ -1594,8 +1558,8 @@ class HW():
|
||||
"halter_fuer_drucktaster":0,
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
zpe_e_werkstatt.update(RieterConfig.getDictAsFloat("HW_Zeiten Elektro-Werkstatt"))
|
||||
# if RieterConfig.exists():
|
||||
# zpe_e_werkstatt.update(RieterConfig.getDictAsFloat("HW_Zeiten Elektro-Werkstatt"))
|
||||
Keys_of_Vor_Ort = [
|
||||
"movimot_fu_mit_anschaltung",
|
||||
"sensor_optisch_traverse",
|
||||
@@ -1640,7 +1604,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_256_mb",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
@@ -1653,49 +1616,87 @@ class HW():
|
||||
"netzwerk_display_adapter_lindy",
|
||||
"zusaetzlicher_bildschirm"
|
||||
]
|
||||
def __init__(self, anzahl:dict, mg: type[MG], eas: type[EA]):
|
||||
def __init__(self, hwep=None, hwhp=None, hwew=None):
|
||||
if hwep:
|
||||
self.set_config_data("HW_Einzelpreise", hwep)
|
||||
if hwhp:
|
||||
self.set_config_data("HW_Zeiten Hardwareplanung", hwhp)
|
||||
if hwew:
|
||||
self.set_config_data("HW_Zeiten Elektro-Werkstatt", hwew)
|
||||
|
||||
def anzahl_set(self, numbers:dict):
|
||||
self._anzahl["schaltschrankgehaeuse_b1x1200_zubehoer"] = numbers.get("schaltschrankgehaeuse_b1x1200_zubehoer", 0)
|
||||
self._anzahl["schaltschrankgehaeuse_b2x800_zubehoer"] = numbers.get("schaltschrankgehaeuse_b2x800_zubehoer", 0)
|
||||
self._anzahl["schaltschrankgehaeuse_b1x1200+1x800_zubehoer"] = numbers.get("schaltschrankgehaeuse_b1x1200+1x800_zubehoer", 0)
|
||||
self._anzahl["sps_simatic_s7_cpu315_2_pn_dp"] = numbers.get("sps_simatic_s7_cpu315_2_pn_dp", 0)
|
||||
self._anzahl["speicherkarte_fuer_sps_512_kb"] = numbers.get("speicherkarte_fuer_sps_512_kb", 0)
|
||||
self._anzahl["sps_simatic_s7_cpu317_2_pn_dp"] = numbers.get("sps_simatic_s7_cpu317_2_pn_dp", 0)
|
||||
self._anzahl["speicherkarte_fuer_sps2_mb"] = numbers.get("speicherkarte_fuer_sps2_mb", 0)
|
||||
self._anzahl["sps_simatic_s7_1515_2"] = numbers.get("sps_simatic_s7_1515_2", 0)
|
||||
self._anzahl["sps_simatic_s7_1517_3"] = numbers.get("sps_simatic_s7_1517_3", 0)
|
||||
self._anzahl["sps_simatic_s7_1518_4"] = numbers.get("sps_simatic_s7_1518_4", 0)
|
||||
self._anzahl["sps_et200_1512sp"] = numbers.get("sps_et200_1512sp", 0)
|
||||
self._anzahl["et200_sp_ea_ebene"] = numbers.get("et200_sp_ea_ebene", 0)
|
||||
self._anzahl["netzwerk_fernwartung"] = numbers.get("netzwerk_fernwartung", 0)
|
||||
self._anzahl["abgang_400v"] = numbers.get("abgang_400v", 0)
|
||||
self._anzahl["abgang_24_v"] = numbers.get("abgang_24_v", 0)
|
||||
self._anzahl["anlagenrechner"] = numbers.get("anlagenrechner", 0)
|
||||
self._anzahl["anlagenrechner_ohne_bildschirm"] = numbers.get("anlagenrechner_ohne_bildschirm", 0)
|
||||
self._anzahl["pulteinbau_monitor_srline_rflat_24fhd"] = numbers.get("pulteinbau_monitor_srline_rflat_24fhd", 0)
|
||||
self._anzahl["kurzhubtastatur_kbt06_mit_touchpad_uslayout"] = numbers.get("kurzhubtastatur_kbt06_mit_touchpad_uslayout", 0)
|
||||
self._anzahl["netzwerk_display_adapter_lindy"] = numbers.get("netzwerk_display_adapter_lindy", 0)
|
||||
self._anzahl["zusaetzlicher_bildschirm"] = numbers.get("zusaetzlicher_bildschirm", 0)
|
||||
|
||||
|
||||
self._anzahl["unterverteiler_fuer_1flyer"] = numbers.get("unterverteiler_fuer_1flyer", 0)
|
||||
self._anzahl["unterverteiler_fuer_2flyer"] = numbers.get("unterverteiler_fuer_2flyer", 0)
|
||||
self._anzahl["unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine"] = numbers.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0)
|
||||
self._anzahl["unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine"] = numbers.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0)
|
||||
self._anzahl["unterverteiler_fuer_puffer"] = numbers.get("unterverteiler_fuer_puffer", 0)
|
||||
self._anzahl["korrektur_5_rsm_zusaetzlich_im_unterverteiler"] = numbers.get("korrektur_5_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["korrektur_10_rsm_zusaetzlich_im_unterverteiler"] = numbers.get("korrektur_10_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
|
||||
self._anzahl["unterverteiler_fuer_4_rsm_direct"] = numbers.get("unterverteiler_fuer_4_rsm_direct", 0)
|
||||
self._anzahl["korrektur_4_rsm_zusaetzlich_im_unterverteiler"] = numbers.get("korrektur_4_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["korrektur_12_rsm_zusaetzlich_im_unterverteiler"] = numbers.get("korrektur_12_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
|
||||
self._anzahl["unterverteiler_fuer_8_rsm_direct"] = numbers.get("unterverteiler_fuer_8_rsm_direct", 0)
|
||||
self._anzahl["korrektur_8_rsm_zusaetzlich_im_unterverteiler"] = numbers.get("korrektur_8_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["korrektur_6_rsm_zusaetzlich_im_busverteiler"] = numbers.get("korrektur_6_rsm_zusaetzlich_im_busverteiler", 0)
|
||||
self._anzahl["korrektur_8_rsm_zusaetzlich_im_busverteiler"] = numbers.get("korrektur_8_rsm_zusaetzlich_im_busverteiler", 0)
|
||||
|
||||
self._anzahl["ET200_SP"] = numbers.get("ET200_SP", 0)
|
||||
self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = numbers.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0)
|
||||
self._anzahl["korrektur_et200_sp_eingangskarte_8_de"] = numbers.get("korrektur_et200_sp_eingangskarte_8_de", 0)
|
||||
|
||||
self._anzahl["et200_sp_eingangskarte_16_de"] = numbers.get("et200_sp_eingangskarte_16_de", 0)
|
||||
|
||||
self._anzahl["korrektur_et200_sp_eingangskarte_8_do"] = numbers.get("korrektur_et200_sp_eingangskarte_8_do", 0)
|
||||
|
||||
self._anzahl["korrektur_et200_sp_base_unit_links_gebrueckt"] = numbers.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0)
|
||||
self._anzahl["SLIO"] = numbers.get("SLIO", 0)
|
||||
|
||||
self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = numbers.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO", 0)
|
||||
self._anzahl["korrektur_slio_eingangskarte_4_de"] = numbers.get("korrektur_slio_eingangskarte_4_de", 0)
|
||||
self._anzahl["korrektur_slio_eingangskarte_8_de"] = numbers.get("korrektur_slio_eingangskarte_8_de", 0)
|
||||
self._anzahl["korrektur_slio_ausgangskarte_4_do"] = numbers.get("korrektur_slio_ausgangskarte_4_do", 0)
|
||||
self._anzahl["korrektur_slio_ausgangskarte_8_do"] = numbers.get("korrektur_slio_ausgangskarte_8_do", 0)
|
||||
self._anzahl["korrektur_slio_power_modul"] = numbers.get("korrektur_slio_power_modul", 0)
|
||||
self._anzahl["korrektur_slio_4_x_dc_24v_4_x_dc_0v"] = numbers.get("korrektur_slio_4_x_dc_24v_4_x_dc_0v", 0)
|
||||
self._anzahl["slio_8_x_dc_24v"] = numbers.get("slio_8_x_dc_0v", 0)
|
||||
self._anzahl["korrektur_slio_8_x_dc_0v"] = numbers.get("korrektur_slio_8_x_dc_0v", 0)
|
||||
|
||||
def calc(self, anzahl:dict, mg: type[MG], eas: type[EA]):
|
||||
self._anzahl = self.mengen
|
||||
|
||||
self._anzahl["schaltschrankgehaeuse_b1x1200_zubehoer"] = anzahl.get("schaltschrankgehaeuse_b1x1200_zubehoer", 0)
|
||||
self._anzahl["schaltschrankgehaeuse_b2x800_zubehoer"] = anzahl.get("schaltschrankgehaeuse_b2x800_zubehoer", 0)
|
||||
self._anzahl["schaltschrankgehaeuse_b1x1200+1x800_zubehoer"] = anzahl.get("schaltschrankgehaeuse_b1x1200+1x800_zubehoer", 0)
|
||||
self._anzahl["sps_simatic_s7_cpu315_2_pn_dp"] = anzahl.get("sps_simatic_s7_cpu315_2_pn_dp", 0)
|
||||
self._anzahl["speicherkarte_fuer_sps_512_kb"] = anzahl.get("speicherkarte_fuer_sps_512_kb", 0)
|
||||
self._anzahl["sps_simatic_s7_cpu317_2_pn_dp"] = anzahl.get("sps_simatic_s7_cpu317_2_pn_dp", 0)
|
||||
self._anzahl["speicherkarte_fuer_sps2_mb"] = anzahl.get("speicherkarte_fuer_sps2_mb", 0)
|
||||
self._anzahl["sps_simatic_s7_1515_2"] = anzahl.get("sps_simatic_s7_1515_2", 0)
|
||||
self._anzahl["sps_simatic_s7_1517_3"] = anzahl.get("sps_simatic_s7_1517_3", 0)
|
||||
self._anzahl["sps_simatic_s7_1518_4"] = anzahl.get("sps_simatic_s7_1518_4", 0)
|
||||
self._anzahl["sps_et200_1512sp"] = anzahl.get("sps_et200_1512sp", 0)
|
||||
self.anzahl_set(anzahl)
|
||||
|
||||
self._anzahl["memory_card_256_mb"] = self.anzahl("speicherkarte_fuer_sps2_mb") + \
|
||||
self.anzahl("sps_simatic_s7_1515_2") + \
|
||||
self.anzahl("sps_simatic_s7_1517_3") + \
|
||||
self.anzahl("sps_simatic_s7_1518_4")
|
||||
|
||||
self._anzahl["memory_card_2_gb"] = self.anzahl("sps_simatic_s7_1518_4")
|
||||
|
||||
self._anzahl["et200_sp_ea_ebene"] = anzahl.get("et200_sp_ea_ebene", 0)
|
||||
self._anzahl["netzwerk_fernwartung"] = anzahl.get("netzwerk_fernwartung", 0)
|
||||
self._anzahl["abgang_400v"] = anzahl.get("abgang_400v", 0)
|
||||
self._anzahl["abgang_24_v"] = anzahl.get("abgang_24_v", 0)
|
||||
self._anzahl["anlagenrechner"] = anzahl.get("anlagenrechner", 0)
|
||||
self._anzahl["anlagenrechner_ohne_bildschirm"] = anzahl.get("anlagenrechner_ohne_bildschirm", 0)
|
||||
self._anzahl["pulteinbau_monitor_srline_rflat_24fhd"] = anzahl.get("pulteinbau_monitor_srline_rflat_24fhd", 0)
|
||||
self._anzahl["kurzhubtastatur_kbt06_mit_touchpad_uslayout"] = anzahl.get("kurzhubtastatur_kbt06_mit_touchpad_uslayout", 0)
|
||||
self._anzahl["netzwerk_display_adapter_lindy"] = anzahl.get("netzwerk_display_adapter_lindy", 0)
|
||||
self._anzahl["zusaetzlicher_bildschirm"] = anzahl.get("zusaetzlicher_bildschirm", 0)
|
||||
self._anzahl["schaltschrank"] = eas.stueckzahl.get("Bedienelemente_Steuerschrank")
|
||||
self._anzahl["unterverteiler_fuer_1neuenhauser_pm"] = mg.get_deckblatt_value("Neuenhauser-Putzmaschine")
|
||||
|
||||
self._anzahl["unterverteiler_fuer_1flyer"] = anzahl.get("unterverteiler_fuer_1flyer", 0)
|
||||
self._anzahl["unterverteiler_fuer_2flyer"] = anzahl.get("unterverteiler_fuer_2flyer", 0)
|
||||
self._anzahl["unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine"] = anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0)
|
||||
self._anzahl["unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine"] = anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0)
|
||||
self._anzahl["unterverteiler_fuer_puffer"] = anzahl.get("unterverteiler_fuer_puffer", 0)
|
||||
|
||||
self._anzahl["korrektur_5_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_5_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["korrektur_10_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_10_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["busverteiler_6_rsm_direct"] = math.ceil(mg.get_deckblatt_value("Anzahl") /6) + anzahl.get("korrektur_6_rsm_zusaetzlich_im_busverteiler", 0)
|
||||
self._anzahl["busverteiler_8_rsm_direct"] = math.ceil(mg.get_deckblatt_value("Anzahl") /8) + anzahl.get("korrektur_8_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["memory_card_2_gb"] = self.anzahl("sps_simatic_s7_1518_4")
|
||||
|
||||
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_5_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
@@ -1706,17 +1707,9 @@ class HW():
|
||||
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)
|
||||
self._anzahl["unterverteiler_fuer_4_rsm_direct"] = anzahl.get("unterverteiler_fuer_4_rsm_direct", 0)
|
||||
self._anzahl["korrektur_4_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_4_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["korrektur_12_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_12_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["unterverteiler_fuer_12_rsm_direct"] = math.ceil(mg.get_deckblatt_value("Anzahl") / 12) +\
|
||||
anzahl.get("korrektur_12_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["unterverteiler_fuer_8_rsm_direct"] = anzahl.get("unterverteiler_fuer_8_rsm_direct", 0)
|
||||
self._anzahl["korrektur_8_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_8_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
self._anzahl["busverteiler_6_rsm_direct"] = math.ceil(mg.get_deckblatt_value("Anzahl") /6) + anzahl.get("korrektur_6_rsm_zusaetzlich_im_busverteiler", 0)
|
||||
self._anzahl["korrektur_6_rsm_zusaetzlich_im_busverteiler"] = anzahl.get("korrektur_6_rsm_zusaetzlich_im_busverteiler", 0)
|
||||
self._anzahl["korrektur_8_rsm_zusaetzlich_im_busverteiler"] = anzahl.get("korrektur_8_rsm_zusaetzlich_im_busverteiler", 0)
|
||||
self._anzahl["busverteiler_8_rsm_direct"] = math.ceil(mg.get_deckblatt_value("Anzahl") /8) + anzahl.get("korrektur_8_rsm_zusaetzlich_im_unterverteiler", 0)
|
||||
|
||||
|
||||
self._anzahl["antrieb_unidirektional_halbleiter"] = \
|
||||
mg.zusammenfassung().get("RA_uni") +\
|
||||
@@ -1737,6 +1730,9 @@ class HW():
|
||||
mg.get_value_of_object("rsm_fa", "RRA_bi") +\
|
||||
mg.get_value_of_object("rsm_fa", "RRA_bi_ohne_SPS_Ansteuerung")
|
||||
|
||||
self._anzahl["drucktaster_automatische_umfahrung"] = mg.zusammenfassung().get("Drucktaster_automatische_Umfahrung", 0)
|
||||
|
||||
self._anzahl["schaltschrank"] = eas.stueckzahl.get("Bedienelemente_Steuerschrank")
|
||||
self._anzahl["frequenzumrichter"] = eas.anzahl("frequenzumrichter", 0)
|
||||
|
||||
# # summe_motorstarter
|
||||
@@ -1750,11 +1746,9 @@ class HW():
|
||||
self._anzahl["halter_bedientableau_4fach"] = self.anzahl("bedienstation_4fach_kpl")
|
||||
self._anzahl["bedienstation_6fach_kpl"] = eas.anzahl("bedienstation_6fach_kpl", 0)
|
||||
self._anzahl["halter_bedientableau_6fach"] = self.anzahl("bedienstation_6fach_kpl")
|
||||
self._anzahl["drucktaster_automatische_umfahrung"] = mg.zusammenfassung().get("Drucktaster_automatische_Umfahrung", 0)
|
||||
self._anzahl["halter_fuer_drucktaster"] = self.anzahl("drucktaster_automatische_umfahrung")
|
||||
# # summe_bedienstationen
|
||||
|
||||
self._anzahl["ET200_SP"] = anzahl.get("ET200_SP", 0)
|
||||
self._anzahl["et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = self.anzahl("ET200_SP") * (self.anzahl("et200_sp_ea_ebene") * 2 * self.anzahl("schaltschrank") +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") +\
|
||||
@@ -1766,8 +1760,6 @@ class HW():
|
||||
self.anzahl("unterverteiler_fuer_10_rsm_fa") +\
|
||||
self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") +\
|
||||
self.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"))
|
||||
self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = anzahl.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0)
|
||||
self._anzahl["korrektur_et200_sp_eingangskarte_8_de"] = anzahl.get("korrektur_et200_sp_eingangskarte_8_de", 0)
|
||||
self._anzahl["et200_sp_eingangskarte_8_de"] = self.anzahl("ET200_SP") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 3 +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 4 +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") * 3 +\
|
||||
@@ -1781,9 +1773,6 @@ class HW():
|
||||
self.anzahl("korrektur_et200_sp_eingangskarte_8_de") +\
|
||||
mg.zusammenfassung().get("Kreuzungsweiche"))
|
||||
|
||||
self._anzahl["et200_sp_eingangskarte_16_de"] = anzahl.get("et200_sp_eingangskarte_16_de", 0)
|
||||
|
||||
self._anzahl["korrektur_et200_sp_eingangskarte_8_do"] = anzahl.get("korrektur_et200_sp_eingangskarte_8_do", 0)
|
||||
self._anzahl["et200_sp_eingangskarte_8_do"] = \
|
||||
self.anzahl("ET200_SP") *\
|
||||
(math.ceil((self.anzahl("et200_sp_ea_ebene") *\
|
||||
@@ -1824,26 +1813,25 @@ class HW():
|
||||
|
||||
self._anzahl["et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.anzahl("ET200_SP") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 +
|
||||
self.anzahl("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"))
|
||||
et200_sp_base_unit_neue_last_mit_potKlemmen = self.anzahl("ET200_SP") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 + self.anzahl("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"))
|
||||
self._anzahl["et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen"] = self.anzahl("ET200_SP", 0) * (math.ceil((self.anzahl("et200_sp_eingangskarte_8_de") +
|
||||
self.anzahl("et200_sp_eingangskarte_8_do"))) -
|
||||
self.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen"))
|
||||
|
||||
self._anzahl["et200_sp_base_unit_neue_last"] = self.anzahl("ET200_SP") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 +
|
||||
self.anzahl("korrektur_et200_sp_base_unit_neue_last"))
|
||||
et200_sp_base_unit_neue_last = self.anzahl("ET200_SP") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 + self.anzahl("korrektur_et200_sp_base_unit_neue_last"))
|
||||
|
||||
if self.anzahl("et200_sp_base_unit_neue_last") > 0 and self.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen") > 0:
|
||||
raise Exception("et200_sp_base_unit_neue_last und et200_sp_base_unit_neue_last_mit_potKlemmen sollten nicht beide verwendet werden")
|
||||
# TODO Markus fragen
|
||||
# if self.anzahl("et200_sp_base_unit_neue_last") > 0 and self.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen") > 0:
|
||||
# raise Exception("et200_sp_base_unit_neue_last und et200_sp_base_unit_neue_last_mit_potKlemmen sollten nicht beide verwendet werden")
|
||||
|
||||
self._anzahl["korrektur_et200_sp_base_unit_links_gebrueckt"] = anzahl.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0)
|
||||
self._anzahl["et200_sp_base_unit_links_gebrueckt"] = self.anzahl("ET200_SP") * (math.ceil((self.anzahl("et200_sp_eingangskarte_16_de") +
|
||||
self.anzahl("et200_sp_eingangskarte_16_do"))) -
|
||||
self.anzahl("et200_sp_base_unit_neue_last") +
|
||||
self.anzahl("korrektur_et200_sp_base_unit_links_gebrueckt"))
|
||||
|
||||
|
||||
self._anzahl["SLIO"] = anzahl.get("SLIO", 0)
|
||||
|
||||
self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = anzahl.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO", 0)
|
||||
self._anzahl["et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") +\
|
||||
@@ -1861,7 +1849,6 @@ class HW():
|
||||
self.anzahl("busverteiler_8_rsm_direct") +\
|
||||
self.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"))
|
||||
|
||||
self._anzahl["korrektur_slio_eingangskarte_4_de"] = anzahl.get("korrektur_slio_eingangskarte_4_de", 0)
|
||||
self._anzahl["slio_eingangskarte_4_de"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 6 +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 8 +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") * 6 +\
|
||||
@@ -1877,7 +1864,6 @@ class HW():
|
||||
self.anzahl("busverteiler_8_rsm_direct") * 16 +\
|
||||
self.anzahl("korrektur_slio_eingangskarte_4_de"))
|
||||
|
||||
self._anzahl["korrektur_slio_eingangskarte_8_de"] = anzahl.get("korrektur_slio_eingangskarte_8_de", 0)
|
||||
self._anzahl["slio_eingangskarte_8_de"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 3 +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 4 +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") * 3 +\
|
||||
@@ -1892,7 +1878,6 @@ class HW():
|
||||
self.anzahl("unterverteiler_fuer_8_rsm_direct") * 4 +\
|
||||
self.anzahl("busverteiler_8_rsm_direct") * 8 +\
|
||||
self.anzahl("korrektur_slio_eingangskarte_8_de", 0))
|
||||
self._anzahl["korrektur_slio_ausgangskarte_4_do"] = anzahl.get("korrektur_slio_ausgangskarte_4_do", 0)
|
||||
self._anzahl["slio_ausgangskarte_4_do"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 4 +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 12 +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") * 7 +\
|
||||
@@ -1907,7 +1892,6 @@ class HW():
|
||||
self.anzahl("unterverteiler_fuer_8_rsm_direct") * 44 +\
|
||||
self.anzahl("busverteiler_8_rsm_direct") * 16 +\
|
||||
self.anzahl("korrektur_slio_ausgangskarte_4_do"))
|
||||
self._anzahl["korrektur_slio_ausgangskarte_8_do"] = anzahl.get("korrektur_slio_ausgangskarte_8_do", 0)
|
||||
self._anzahl["slio_ausgangskarte_8_do"] = self.anzahl("SLIO") * ((self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 4 +\
|
||||
self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 12 +\
|
||||
self.anzahl("unterverteiler_fuer_1flyer") * 8 +\
|
||||
@@ -1922,15 +1906,11 @@ class HW():
|
||||
self.anzahl("unterverteiler_fuer_8_rsm_direct") * 44 +\
|
||||
self.anzahl("busverteiler_8_rsm_direct") * 16) / 2 +\
|
||||
self.anzahl("korrektur_slio_ausgangskarte_8_do"))
|
||||
self._anzahl["korrektur_slio_power_modul"] = anzahl.get("korrektur_slio_power_modul", 0)
|
||||
self._anzahl["slio_power_modul"] = self.anzahl("SLIO") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO") * 1 +\
|
||||
self.anzahl("korrektur_slio_power_modul"))
|
||||
self._anzahl["korrektur_slio_4_x_dc_24v_4_x_dc_0v"] = anzahl.get("korrektur_slio_4_x_dc_24v_4_x_dc_0v", 0)
|
||||
self._anzahl["slio_4_x_dc_24v_4_x_dc_0v"] = self.anzahl("SLIO") * (math.ceil((self.anzahl("slio_eingangskarte_4_de") +
|
||||
self.anzahl("korrektur_slio_4_x_dc_24v_4_x_dc_0v"))))
|
||||
|
||||
self._anzahl["slio_8_x_dc_24v"] = anzahl.get("slio_8_x_dc_0v", 0)
|
||||
self._anzahl["korrektur_slio_8_x_dc_0v"] = anzahl.get("korrektur_slio_8_x_dc_0v", 0)
|
||||
self._anzahl["slio_power_modul"] = self.anzahl("SLIO") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO") * 1 +\
|
||||
self.anzahl("korrektur_slio_power_modul"))
|
||||
self._anzahl["slio_8_x_dc_0v"] = self.anzahl("SLIO") * ((self.anzahl("slio_eingangskarte_8_de") +
|
||||
(self.anzahl("slio_ausgangskarte_4_do") / 2)) * 1 +
|
||||
self.anzahl("korrektur_slio_8_x_dc_0v"))
|
||||
@@ -2018,11 +1998,12 @@ class HW():
|
||||
# self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0)
|
||||
self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = 0
|
||||
self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = 0
|
||||
|
||||
|
||||
|
||||
self._anzahl["zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") +\
|
||||
self.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc")
|
||||
anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0)
|
||||
self._anzahl["zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") +\
|
||||
self.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc")
|
||||
anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0)
|
||||
|
||||
if self._anzahl["zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] > 0 and self._anzahl["zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] > 0:
|
||||
raise Exception("zuleitung 12x4 und 12x2.5 sollten nicht beide verwendet werden")
|
||||
@@ -2056,15 +2037,26 @@ class HW():
|
||||
l.append(k)
|
||||
for item in l:
|
||||
del self._anzahl[item]
|
||||
with open('HW_Daten.txt', 'w') as convert_file:
|
||||
convert_file.write(json.dumps(self._anzahl))
|
||||
|
||||
# with open('HW_Daten.txt', 'w') as convert_file:
|
||||
# convert_file.write(json.dumps(self._anzahl))
|
||||
|
||||
def __repr__(self):
|
||||
return repr(self._anzahl)
|
||||
|
||||
def set_config_data(self, section, newDict):
|
||||
if section == "HW_Einzelpreise":
|
||||
self.ep.update(newDict)
|
||||
if section == "HW_Zeiten Hardwareplanung":
|
||||
self.zpe_dienstl_hardwareplanung.update(newDict)
|
||||
if section == "HW_Zeiten Elektro-Werkstatt":
|
||||
self.zpe_e_werkstatt.update(newDict)
|
||||
|
||||
def anzahl(self, partname, default_val = 0):
|
||||
return self._anzahl.get(partname, default_val)
|
||||
|
||||
def get_anzahl(self):
|
||||
return self._anzahl
|
||||
|
||||
def summe_gesamt(self):
|
||||
"""
|
||||
:return: price sum of all given items within self._anzahl
|
||||
@@ -2185,7 +2177,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_256_mb",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
@@ -2219,7 +2210,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_256_mb",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
@@ -2243,6 +2233,14 @@ class HW():
|
||||
summe_h_schaltschrank_hardware = self.summe_h_schaltschrank_hardware()
|
||||
summe_h_unterverteiler_hardware = self.summe_h_unterverteiler_hardware()
|
||||
return (summe_h_schaltschrank_hardware + summe_h_unterverteiler_hardware)
|
||||
def to_dict(self):
|
||||
dhardware = self.get_anzahl()
|
||||
dhardware["Summe_vorOrt"] = self.summe_vorort()
|
||||
dhardware["Summe_Landsberg"] = self.summe_in_LL()
|
||||
dhardware["Zeiten_Hardwareplanung"] = self.summe_h_zeiten_hardwareplanung()
|
||||
dhardware["Zeiten_Unterverteiler_Werkstatt"] = self.summe_h_unterverteiler_e_werkstatt()
|
||||
dhardware["Summe_gesamt"] = self.summe_gesamt()
|
||||
return dhardware
|
||||
|
||||
class Dienstleistung():
|
||||
# Angaben in h
|
||||
@@ -2324,7 +2322,8 @@ class Dienstleistung():
|
||||
return self._Hours.get(partname, default_val)
|
||||
def get_hours_of(self, dlname):
|
||||
return self._Hours.get(dlname, 0)
|
||||
|
||||
def get_hours(self):
|
||||
return self._Hours
|
||||
def summe_stunden_dienstleistung_in_landsberg(self):
|
||||
"""returns hours necessary"""
|
||||
hours_necessary = self.stunden_diensleistung_hardwareplanung() +\
|
||||
@@ -2365,6 +2364,12 @@ class Dienstleistung():
|
||||
|
||||
def stunden_elektro_Landsberg(self):
|
||||
return 0
|
||||
def to_dict(self):
|
||||
dDienstleistung = self.get_hours()
|
||||
dDienstleistung["Summe_Dienstleistungen_Hardwareplanung"] = self.stunden_diensleistung_hardwareplanung()
|
||||
dDienstleistung["Summe_Dienstleistungen_Elektrowerkstatt"] = self.stunden_elektrowerkstatt()
|
||||
dDienstleistung["Summe_Dienstleistungen_in_LL"] = self.summe_stunden_dienstleistung_in_landsberg()
|
||||
return dDienstleistung
|
||||
|
||||
#EMO
|
||||
class EMO():
|
||||
@@ -2383,9 +2388,14 @@ class EMO():
|
||||
"Erdung": 0.5, #(h)
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
montagezeiten.update(RieterConfig.getDictAsFloat("Elektro-Montagezeiten"))
|
||||
def __init__(self, ea: type[EA], hw: type[HW], mg: type[MG]):
|
||||
# if RieterConfig.exists():
|
||||
# montagezeiten.update(RieterConfig.getDictAsFloat("Elektro-Montagezeiten"))
|
||||
def __init__(self, emoz=None):
|
||||
if emoz:
|
||||
self.set_config_data("Elektro-Montagezeiten", emoz)
|
||||
self._Mengen = {}
|
||||
|
||||
def calc(self, ea: type[EA], hw: type[HW], mg: type[MG]):
|
||||
#für jede Zeile (Eintrag im dict 'mengen') muss ein Wert übergeben werden, der aus den Klassen HW(), MG() oder EA() stammt
|
||||
self._mehraufwand = 0.1
|
||||
mengen = {
|
||||
@@ -2432,22 +2442,25 @@ class EMO():
|
||||
self._Mengen["Blitzleuchte_installieren"] = ea.anzahl("Blitzleuchte_Stoerung")
|
||||
self._Mengen["Weiche_Stopper_anschliessen"] = hw.anzahl("stopper_weichenkabel_je_5m")
|
||||
self._Mengen["Erdung"] = self._Mengen.get("Unterverteiler_montieren") * 10
|
||||
def set_config_data(self, section, newDict):
|
||||
if section == "Elektro-Montagezeiten":
|
||||
self.montagezeiten.update(newDict)
|
||||
def set_mehraufwand(self, PS):
|
||||
if PS > 1 or PS < 0:
|
||||
raise Exception("Falsche Spanne")
|
||||
self._mehraufwand = PS
|
||||
def dauer_emo_h(self):
|
||||
keys_tätigkeiten_1 = [
|
||||
"Unterverteiler_montieren",
|
||||
"Sensoren_montieren",
|
||||
"Seilzugschalter_installieren",
|
||||
"Blitzleuchte_installieren",
|
||||
"Weiche_Stopper_anschliessen",
|
||||
"Erdung",
|
||||
"Schaltschrank_aufstellen",
|
||||
"Motor_verdrahten_und_anschliessen",
|
||||
"Tableau_befestigen_und_anschliessen",
|
||||
"Schnittstelle_Flyer_Putzmaschine"
|
||||
"Unterverteiler_montieren",
|
||||
"Sensoren_montieren",
|
||||
"Seilzugschalter_installieren",
|
||||
"Blitzleuchte_installieren",
|
||||
"Weiche_Stopper_anschliessen",
|
||||
"Erdung",
|
||||
"Schaltschrank_aufstellen",
|
||||
"Motor_verdrahten_und_anschliessen",
|
||||
"Tableau_befestigen_und_anschliessen",
|
||||
"Schnittstelle_Flyer_Putzmaschine"
|
||||
]
|
||||
keys_1 = 0
|
||||
for k in keys_tätigkeiten_1:
|
||||
@@ -2462,11 +2475,38 @@ class EMO():
|
||||
for k in keys_tätigkeiten_2:
|
||||
dauer = self._Mengen.get(k) / self.montagezeiten.get(k)
|
||||
keys_2 += dauer
|
||||
|
||||
|
||||
return math.ceil((keys_1 + keys_2))
|
||||
def dauer_emo_h_incl_mehrauwand(self):
|
||||
return math.ceil((keys_1 + keys_2))
|
||||
def dauer_emo_h_incl_mehraufwand(self):
|
||||
return (self.dauer_emo_h() * (1 + self._mehraufwand))
|
||||
def get_dict_of_hours(self):
|
||||
res = dict()
|
||||
keys_tätigkeiten_1 = [
|
||||
"Unterverteiler_montieren",
|
||||
"Sensoren_montieren",
|
||||
"Seilzugschalter_installieren",
|
||||
"Blitzleuchte_installieren",
|
||||
"Weiche_Stopper_anschliessen",
|
||||
"Erdung",
|
||||
"Schaltschrank_aufstellen",
|
||||
"Motor_verdrahten_und_anschliessen",
|
||||
"Tableau_befestigen_und_anschliessen",
|
||||
"Schnittstelle_Flyer_Putzmaschine"
|
||||
]
|
||||
for k in keys_tätigkeiten_1:
|
||||
res[k] = self.montagezeiten.get(k) * self._Mengen.get(k)
|
||||
|
||||
keys_tätigkeiten_2 = [
|
||||
"Pritsche_montieren_umbauen_demontieren",
|
||||
"Pritsche_in_RSM_montieren"
|
||||
]
|
||||
for k in keys_tätigkeiten_2:
|
||||
res[k] = self._Mengen.get(k) / self.montagezeiten.get(k)
|
||||
return res
|
||||
def to_dict(self):
|
||||
hoursEMO = self.get_dict_of_hours()
|
||||
hoursEMO['Summe'] = self.dauer_emo_h()
|
||||
hoursEMO['Summe inkl. Mehraufwand'] = self.dauer_emo_h_incl_mehraufwand()
|
||||
return hoursEMO
|
||||
|
||||
class Anschlussl():
|
||||
"""
|
||||
@@ -2483,8 +2523,8 @@ class Anschlussl():
|
||||
1.1:0.81
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
antrieb_cos_phi.update(RieterConfig.getDictAsFloat("cos phi"))
|
||||
# if RieterConfig.exists():
|
||||
# antrieb_cos_phi.update(RieterConfig.getDictAsFloat("cos phi"))
|
||||
antrieb_strom = {
|
||||
0.09:0.4,
|
||||
0.12:0.55,
|
||||
@@ -2495,8 +2535,8 @@ class Anschlussl():
|
||||
1.1:2.55
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
antrieb_strom.update(RieterConfig.getDictAsFloat("Antriebsstrom"))
|
||||
# if RieterConfig.exists():
|
||||
# antrieb_strom.update(RieterConfig.getDictAsFloat("Antriebsstrom"))
|
||||
mengen = {
|
||||
#auskommentiert, was später berechnet wird
|
||||
#"Anschlussspannung":400, #Volt
|
||||
@@ -2517,7 +2557,12 @@ class Anschlussl():
|
||||
#leistung
|
||||
#gesamtanschlussleistung
|
||||
}
|
||||
def __init__(self, anzahl:dict, mg: type[MG]):
|
||||
def __init__(self, aStr=None, cosPhi=None):
|
||||
if aStr:
|
||||
self.set_config_data("Antriebsstrom", aStr)
|
||||
if cosPhi:
|
||||
self.set_config_data("cos phi", cosPhi)
|
||||
def calc(self, anzahl:dict, mg: type[MG]):
|
||||
self._ANZAHL = self.mengen
|
||||
anzahl = self.mengen ###vorerst
|
||||
self._GZE_Faktor = 0.5
|
||||
@@ -2549,6 +2594,11 @@ class Anschlussl():
|
||||
anzahl.get("Gesamtstrom", 0) *\
|
||||
self._x_Wurzel_3 / 1000
|
||||
self._ANZAHL["Gesamtanschlussleistung"] = math.ceil((self._ANZAHL.get("Leistung")))
|
||||
def set_config_data(self, section, newDict):
|
||||
if section == "Antriebsstrom":
|
||||
self.antrieb_strom.update(newDict)
|
||||
if section == "cos phi":
|
||||
self.antrieb_cos_phi.update(newDict)
|
||||
def set_Versorgung_SPS_und_Peripherie(self, Strom):
|
||||
self._Versorgung_SPS_und_Peripherie = Strom
|
||||
def set_x_Wurzel_3 (self, x):
|
||||
@@ -2588,8 +2638,8 @@ class Ergebnis():
|
||||
"Anlagenbetreuung_durch_Montage": 36
|
||||
}
|
||||
|
||||
if RieterConfig.exists():
|
||||
preis_kostenart_h.update(RieterConfig.getDictAsFloat("Kosten pro h"))
|
||||
# if RieterConfig.exists():
|
||||
# preis_kostenart_h.update(RieterConfig.getDictAsFloat("Kosten pro h"))
|
||||
eingaben_h = {
|
||||
"Pflichtenheft":0,
|
||||
"SPS_Programmierung":150,
|
||||
@@ -2601,12 +2651,16 @@ class Ergebnis():
|
||||
"PC_Anlagenbetreuung":0,
|
||||
"Anlagenbetreuung_durch_Montage":0
|
||||
}
|
||||
def __init__(self, anzahl_h:dict, hw: type[HW], dl: type[Dienstleistung], emo: type[EMO]):
|
||||
def __init__(self, kph=None):
|
||||
if kph:
|
||||
self.set_config_data("Kosten pro h", kph)
|
||||
def calc(self, anzahl_h:dict, hw: type[HW], dl: type[Dienstleistung], emo: type[EMO]):
|
||||
self._Anteil_Inbetriebnahmeunterstützung_durch_Montage = 1
|
||||
self._Anteil_PC_Visualisierung_an_SPS = 0.3
|
||||
self._Abweichung_softwareerstellung = 0
|
||||
self._Abweichung_dienstleistung_in_LL = 0
|
||||
self._anzahl = anzahl_h
|
||||
# TODO die folgende Zeile raus?
|
||||
self._anzahl = dict()
|
||||
self._anzahl["E_Werkstatt"] = dl.stunden_elektrowerkstatt()
|
||||
self._anzahl["Schaltschrankbau_extern_Mehrkosten"] = hw.get_h_of("unterverteiler_fuer_1neuenhauser_pm") +\
|
||||
hw.get_h_of("unterverteiler_fuer_1flyer") +\
|
||||
@@ -2620,7 +2674,7 @@ class Ergebnis():
|
||||
self._anzahl["Pflichtenheft"] = anzahl_h.get("Pflichtenheft", 0)
|
||||
self._anzahl["SPS_Programmierung"] = anzahl_h.get("SPS_Programmierung", 0) * (1 + self._Abweichung_softwareerstellung)
|
||||
self._anzahl["PC_Programmierung_Visualisierung"] = anzahl_h.get("SPS_Programmierung", 0) * self._Anteil_PC_Visualisierung_an_SPS
|
||||
self._anzahl["Montage_elektrisch"] = emo.dauer_emo_h_incl_mehrauwand()
|
||||
self._anzahl["Montage_elektrisch"] = emo.dauer_emo_h_incl_mehraufwand()
|
||||
self._anzahl["Inbetriebnahmetest_Hardware_durch_Montage"] = anzahl_h.get("Montage_elektrisch", 0) * 0.1
|
||||
self._anzahl["SPS_Inbetriebsetzung"] = anzahl_h.get("SPS_Inbetriebsetzung", 0)
|
||||
self._anzahl["PC_Inbetriebsetzung"] = anzahl_h.get("PC_Inbetriebsetzung", 0)
|
||||
@@ -2632,6 +2686,9 @@ class Ergebnis():
|
||||
self._anzahl["SPS_Anlagenbetreuung"] = anzahl_h.get("SPS_Anlagenbetreuung", 0)
|
||||
self._anzahl["PC_Anlagenbetreuung"] = anzahl_h.get("PC_Anlagenbetreuung", 0)
|
||||
self._anzahl["Anlagenbetreuung_durch_Montage"] = anzahl_h.get("Anlagenbetreuung_durch_Montage", 0)
|
||||
def set_config_data(self, section, newDict):
|
||||
if section == "Kosten pro h":
|
||||
self.preis_kostenart_h.update(newDict)
|
||||
def set_Abweichung_dienstleistung_in_LL(self, PS):
|
||||
if PS > 1 :
|
||||
raise Exception("Falsche Spanne")
|
||||
@@ -832,7 +832,6 @@ class TestObjectMethods(unittest.TestCase):
|
||||
self.assertEqual(hw.anzahl("sps_simatic_s7_1517_3"), 0)
|
||||
self.assertEqual(hw.anzahl("sps_simatic_s7_1518_4"), 0)
|
||||
self.assertEqual(hw.anzahl("sps_et200_1512sp"), 0)
|
||||
self.assertEqual(hw.anzahl("memory_card_256_mb"), 1)
|
||||
self.assertEqual(hw.anzahl("memory_card_2_gb"), 0)
|
||||
self.assertEqual(hw.anzahl("et200_sp_ea_ebene"), 1)
|
||||
self.assertEqual(hw.anzahl("netzwerk_fernwartung"), 1)
|
||||
@@ -1192,7 +1191,7 @@ class TestObjectMethods(unittest.TestCase):
|
||||
hw = rek.HW(Anzahl_HW, mg, eas)
|
||||
emo = rek.EMO(eas, hw, mg)
|
||||
self.assertAlmostEqual(emo.dauer_emo_h(), 241)
|
||||
self.assertAlmostEqual(emo.dauer_emo_h_incl_mehrauwand(), 265.1)
|
||||
self.assertAlmostEqual(emo.dauer_emo_h_incl_mehraufwand(), 265.1)
|
||||
|
||||
def test_dienstleistung(self):
|
||||
Anzahl_MG = {
|
||||
@@ -1147,7 +1147,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 1,
|
||||
"sps_simatic_s7_1518_4": 0,
|
||||
"sps_et200_1512sp": 0,
|
||||
#"memory_card_256_mb": 0
|
||||
#"memory_card_2_gb": 0
|
||||
"et200_sp_ea_ebene":2,
|
||||
"netzwerk_fernwartung":1,
|
||||
@@ -1299,7 +1298,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 3828, # 790008101
|
||||
"sps_simatic_s7_1518_4": 5402, # 6ES7518-4AP00-0AB0
|
||||
"sps_et200_1512sp": 623, # 709000003
|
||||
"memory_card_256_mb": 250, # 708015093
|
||||
"memory_card_2_gb": 474, # 708015094
|
||||
"et200_sp_ea_ebene": 0, # 790009001
|
||||
"netzwerk_fernwartung": 750, # 790011001
|
||||
@@ -1436,7 +1434,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 0,
|
||||
"sps_simatic_s7_1518_4": 0,
|
||||
"sps_et200_1512sp": 0,
|
||||
"memory_card_256_mb": 0,
|
||||
"memory_card_2_gb": 0,
|
||||
"et200_sp_ea_ebene":60,
|
||||
"netzwerk_fernwartung":0,
|
||||
@@ -1476,7 +1473,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3": 0,
|
||||
"sps_simatic_s7_1518_4": 0,
|
||||
"sps_et200_1512sp": 0,
|
||||
"memory_card_256_mb": 0,
|
||||
"memory_card_2_gb": 0,
|
||||
"et200_sp_ea_ebene":120,
|
||||
"netzwerk_fernwartung":0,
|
||||
@@ -1567,7 +1563,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_256_mb",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
@@ -1594,11 +1589,6 @@ class HW():
|
||||
self._anzahl["sps_simatic_s7_1518_4"] = self.mengen.get("sps_simatic_s7_1518_4", 0)
|
||||
self._anzahl["sps_et200_1512sp"] = self.mengen.get("sps_et200_1512sp", 0)
|
||||
|
||||
self._anzahl["memory_card_256_mb"] = anzahl.get("speicherkarte_fuer_sps2_mb") + \
|
||||
anzahl.get("sps_simatic_s7_1515_2") + \
|
||||
anzahl.get("sps_simatic_s7_1517_3") + \
|
||||
anzahl.get("sps_simatic_s7_1518_4")
|
||||
|
||||
self._anzahl["memory_card_2_gb"] = anzahl.get("sps_simatic_s7_1518_4", 0)
|
||||
|
||||
self._anzahl["et200_sp_ea_ebene"] = self.mengen.get("et200_sp_ea_ebene", 0)
|
||||
@@ -2080,7 +2070,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_256_mb",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
@@ -2114,7 +2103,6 @@ class HW():
|
||||
"sps_simatic_s7_1517_3",
|
||||
"sps_simatic_s7_1518_4",
|
||||
"sps_et200_1512sp",
|
||||
"memory_card_256_mb",
|
||||
"memory_card_2_gb",
|
||||
"et200_sp_ea_ebene",
|
||||
"netzwerk_fernwartung",
|
||||
@@ -2976,7 +2964,6 @@ class TestObjectMethods(unittest.TestCase):
|
||||
self.assertEqual(hw.anzahl("sps_simatic_s7_1517_3"), 1)
|
||||
self.assertEqual(hw.anzahl("sps_simatic_s7_1518_4"), 0)
|
||||
self.assertEqual(hw.anzahl("sps_et200_1512sp"), 0)
|
||||
self.assertEqual(hw.anzahl("memory_card_256_mb"), 1)
|
||||
self.assertEqual(hw.anzahl("memory_card_2_gb"), 0)
|
||||
self.assertEqual(hw.anzahl("et200_sp_ea_ebene"), 2)
|
||||
self.assertEqual(hw.anzahl("netzwerk_fernwartung"), 1)
|
||||
+175
@@ -0,0 +1,175 @@
|
||||
# Mengengerüst
|
||||
[allgemein]
|
||||
SYSTEM=fa
|
||||
RSM=25
|
||||
Flyer=7
|
||||
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=2
|
||||
Neuenhauser-Putzmaschine_Vorpuffer=4
|
||||
Neuenhauser-Putzmaschine_Nachpuffer=2
|
||||
Cason-Putzmaschine=0
|
||||
Cason-Putzmaschine_Vorpuffer=0
|
||||
Cason-Putzmaschine_Nachpuffer=0
|
||||
Puffer=0
|
||||
Anzahl_der_Pufferstrecken_pro_Puffer=1
|
||||
Begegnungsstrecke_Bypass=2
|
||||
Turm=0
|
||||
Turm_Anzahl_Wendlungen=0
|
||||
|
||||
[rsm_direct]
|
||||
#Bedientableau_2fach_Direct=
|
||||
#Bedientableau_2fach_Direct=
|
||||
#Lichtschranke_Traverse=
|
||||
|
||||
[rsm_fa]
|
||||
Flex_A_Premium=False
|
||||
Getriebe_in_der_Mitte=False
|
||||
RSM_Einfahrt_Ein_Beidseitig=False
|
||||
Sensor_optisch_Traverse_zusätzlich=3
|
||||
Bedientableau_1fach_Korrektur=0
|
||||
Bedientableau_2fach_Korrektur=-2
|
||||
Weiche_Korrektur=1
|
||||
RRA_bi_Korrektur=0
|
||||
RRA_bi_auf_Haupstrecke=3
|
||||
RRA_uni_Begegnung=4
|
||||
gemeinsame_Wendung=0
|
||||
Mit_Drucktaster_Korrektur=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
klemmkasten_rsm=0
|
||||
|
||||
[flyer_f40]
|
||||
Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur=0
|
||||
Single_Line_Durchfahrt=False
|
||||
Nachpuffer=False
|
||||
Sensor_optisch_Traverse_Korrektur=0
|
||||
Sensor_induktiv_Spulenhalter_Korrektur=0
|
||||
Bedientableau_2fach_Korrektur=0
|
||||
Interface_Doffer_Korrektur=0
|
||||
Weiche_Korrektur=0
|
||||
Weiche_nach_Flyer_bipolar_Korrektur=0
|
||||
Dreifachweiche=0
|
||||
Wechsel=0
|
||||
Stopper=0
|
||||
RA_uni=0
|
||||
RA_uni_abhebbar_Korrektur=0
|
||||
RA_uni_ohne_SPS_Ansteuerung_Korrektur=0
|
||||
RRA_BI_abhebbar_Korrektur=0
|
||||
RRA_bi=0
|
||||
RRA_bi_ohne_SPS_Ansteuerung_Korrektur=0
|
||||
Doppelstreckenantrieb_Korrektur=0
|
||||
RA_bi_abhebbar_unger_Schiene=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
|
||||
[neuenhauser]
|
||||
Sensor_optisch_Traverse_Korrektur=2
|
||||
Bedientableau_2fach_Korrektur=0
|
||||
Weiche_Korrektur=0
|
||||
RA_uni_abhebbar_Korrektur=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=-1
|
||||
Werma_Rundumleuchte_Störung_Korrektur=-1
|
||||
|
||||
[flyer]
|
||||
Sensor_optisch_Traverse_Korrektur=0
|
||||
Weiche_Korrektur=0
|
||||
Dreifachweiche=0
|
||||
Wechsel_Korrektur=0
|
||||
RA_bi_abhebbar_Korrektur=0
|
||||
RA_bi=4
|
||||
RA_bi_abhebbar_unger_Schiene=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
|
||||
[verbindungsstrecken_w]
|
||||
Bedientableau_1fach=0
|
||||
Bedientableau_2fach=0
|
||||
Bedientableau_14fach=0
|
||||
Weiche=0
|
||||
Dreifachweiche=0
|
||||
Kreuzungsweiche=0
|
||||
Werma_Rundumleuchte_Störung=0
|
||||
RA_uni=0
|
||||
RA_uni_ohne_SPS_Ansteuerung=0
|
||||
RA_bi=0
|
||||
RA_bi_ohne_SPS-Ansteuerung=0
|
||||
Doppelstreckenantrieb=0
|
||||
|
||||
[puffer]
|
||||
Sensor_optisch_Traverse_Korrektur= 0
|
||||
Weiche_Korrektur= 0
|
||||
RA_bi_ungerade_Schiene= 0
|
||||
Meldelampe_Überstrom_Korrektur= 0
|
||||
Hauptschalter_Ein-Meldung_Korrektur= 0
|
||||
|
||||
[turm]
|
||||
RA_bi_Korrektur=0
|
||||
RA_bi_ohne_SPS_Korrektur=0
|
||||
|
||||
# Ein und Ausgaenge
|
||||
[EAS]
|
||||
schaltschrank=1
|
||||
#bedienst_dreifach=0
|
||||
#bedienst_vierfach=0
|
||||
#bedienst_sechsfach=0
|
||||
#gemeinsame_Weichenrueckstellung=0
|
||||
#RA_unidirektional_mit_gemeinsamer_Wendung= 0
|
||||
#RA_bidirektional_abhebbar_gemeinsWend= 0
|
||||
#RA_in_RSM_bidirektional= 0
|
||||
#Doppelstreckenantriebgemeinsame_Wendung= 0
|
||||
#gemeinsame_Wendung= 0
|
||||
#Frequenzumrichter= 0
|
||||
#Spulenumsetzstation=0
|
||||
|
||||
# Hardware
|
||||
[HW]
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer=1
|
||||
sps_simatic_s7_1515_2=0
|
||||
sps_simatic_s7_1517_3=1
|
||||
sps_et200_1512sp=1
|
||||
et200_sp_ea_ebene=1
|
||||
netzwerk_fernwartung=1
|
||||
anlagenrechner=1
|
||||
unterverteiler_fuer_1flyer=1
|
||||
unterverteiler_fuer_2flyer=3
|
||||
unterverteiler_fuer_puffer=0
|
||||
korrektur_5_rsm_zusaetzlich_im_unterverteiler=0
|
||||
korrektur_10_rsm_zusaetzlich_im_unterverteiler=0
|
||||
ET200_SP=0
|
||||
#et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last='et200_sp_base_unit_neue_last_mit_potKlemmen'
|
||||
|
||||
# MATERIAL VOR ORT
|
||||
kabelpritschen_leitern_200_60=560
|
||||
kleinteile_rohre_schellen_kabelbinder_ect=1
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc='zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc'
|
||||
#korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc=-5
|
||||
|
||||
# Dienstleistungen
|
||||
[DL]
|
||||
# Angaben in [h]
|
||||
Bedienerhandbuch= 4
|
||||
SPS_Doku=0
|
||||
#Oberfläche_Simulation=0
|
||||
#SPS_Test_im_Haus_Simulation=0
|
||||
#PC_Doku=0
|
||||
#Vormontage_im_Haus=0
|
||||
|
||||
[Ergebnis]
|
||||
#Pflichtenheft=0
|
||||
SPS_Programmierung=150
|
||||
SPS_Inbetriebsetzung=160
|
||||
#Montage_elektrisch=0
|
||||
#SPS_Inbetriebsetzung=0
|
||||
#PC_Inbetriebsetzung=0
|
||||
#Schulung_vor_Ort_beim_Kunden=0
|
||||
#Abnahme=0
|
||||
#SPS_Anlagenbetreuung=0
|
||||
#PC_Anlagenbetreuung=0
|
||||
#Anlagenbetreuung_durch_Montage=0
|
||||
+172
@@ -0,0 +1,172 @@
|
||||
# Mengengerüst
|
||||
[allgemein]
|
||||
SYSTEM=fa
|
||||
RSM=14
|
||||
Flyer=4
|
||||
Flyer_Puffer=2
|
||||
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=1
|
||||
Anzahl_der_Pufferstrecken_pro_Puffer=5
|
||||
Begegnungsstrecke_Bypass=2
|
||||
Turm=0
|
||||
Turm_Anzahl_Wendlungen=0
|
||||
|
||||
[rsm_direct]
|
||||
#Bedientableau_2fach_Direct=
|
||||
#Bedientableau_2fach_Direct=
|
||||
#Lichtschranke_Traverse=
|
||||
|
||||
[rsm_fa]
|
||||
Flex_A_Premium=False
|
||||
Getriebe_in_der_Mitte=False
|
||||
RSM_Einfahrt_Ein_Beidseitig=False
|
||||
Sensor_optisch_Traverse_zusätzlich=6
|
||||
Bedientableau_1fach_Korrektur=0
|
||||
Bedientableau_2fach_Korrektur=4
|
||||
Weiche_Korrektur=4
|
||||
RRA_bi_Korrektur=0
|
||||
RRA_bi_auf_Haupstrecke=10
|
||||
RRA_uni_Begegnung=4
|
||||
gemeinsame_Wendung=0
|
||||
Mit_Drucktaster_Korrektur=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
klemmkasten_rsm=2
|
||||
|
||||
[flyer_f40]
|
||||
Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur=0
|
||||
Single_Line_Durchfahrt=False
|
||||
Nachpuffer=False
|
||||
Sensor_optisch_Traverse_Korrektur=0
|
||||
Sensor_induktiv_Spulenhalter_Korrektur=0
|
||||
Bedientableau_2fach_Korrektur=0
|
||||
Interface_Doffer_Korrektur=0
|
||||
Weiche_Korrektur=0
|
||||
Weiche_nach_Flyer_bipolar_Korrektur=0
|
||||
Dreifachweiche=0
|
||||
Wechsel=0
|
||||
Stopper=0
|
||||
RA_uni=0
|
||||
RA_uni_abhebbar_Korrektur=0
|
||||
RA_uni_ohne_SPS_Ansteuerung_Korrektur=0
|
||||
RRA_BI_abhebbar_Korrektur=0
|
||||
RRA_bi=0
|
||||
RRA_bi_ohne_SPS_Ansteuerung_Korrektur=0
|
||||
Doppelstreckenantrieb_Korrektur=0
|
||||
RA_bi_abhebbar_unger_Schiene=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
|
||||
[neuenhauser]
|
||||
Sensor_optisch_Traverse_Korrektur=0
|
||||
Bedientableau_2fach_Korrektur=0
|
||||
Weiche_Korrektur=0
|
||||
RA_uni_abhebbar_Korrektur=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
|
||||
[flyer]
|
||||
Sensor_optisch_Traverse_Korrektur=0
|
||||
Weiche_Korrektur=0
|
||||
Dreifachweiche=0
|
||||
Wechsel_Korrektur=0
|
||||
RA_bi_abhebbar_Korrektur=0
|
||||
RA_bi=4
|
||||
RA_bi_abhebbar_unger_Schiene=0
|
||||
Meldelampe_Überstrom_Korrektur=0
|
||||
Hauptschalter_Ein-Meldung_Korrektur=0
|
||||
Werma_Rundumleuchte_Störung_Korrektur=0
|
||||
|
||||
[verbindungsstrecken_w]
|
||||
Bedientableau_1fach=0
|
||||
Bedientableau_2fach=0
|
||||
Bedientableau_14fach=0
|
||||
Weiche=0
|
||||
Dreifachweiche=0
|
||||
Kreuzungsweiche=1
|
||||
Werma_Rundumleuchte_Störung=0
|
||||
RA_uni=0
|
||||
RA_uni_ohne_SPS_Ansteuerung=0
|
||||
RA_bi=0
|
||||
RA_bi_ohne_SPS-Ansteuerung=0
|
||||
Doppelstreckenantrieb=0
|
||||
|
||||
[puffer]
|
||||
Sensor_optisch_Traverse_Korrektur= 1
|
||||
Weiche_Korrektur= 0
|
||||
RA_bi_ungerade_Schiene= 2
|
||||
Meldelampe_Überstrom_Korrektur= 0
|
||||
Hauptschalter_Ein-Meldung_Korrektur= 0
|
||||
|
||||
[turm]
|
||||
RA_bi_Korrektur=0
|
||||
RA_bi_ohne_SPS_Korrektur=0
|
||||
|
||||
# Ein und Ausgaenge
|
||||
[EAS]
|
||||
schaltschrank=1
|
||||
#bedienst_dreifach=0
|
||||
#bedienst_vierfach=0
|
||||
#bedienst_sechsfach=0
|
||||
#gemeinsame_Weichenrueckstellung=0
|
||||
#RA_unidirektional_mit_gemeinsamer_Wendung= 0
|
||||
#RA_bidirektional_abhebbar_gemeinsWend= 0
|
||||
#RA_in_RSM_bidirektional= 0
|
||||
#Doppelstreckenantriebgemeinsame_Wendung= 0
|
||||
#gemeinsame_Wendung= 0
|
||||
#Frequenzumrichter= 0
|
||||
#Spulenumsetzstation=0
|
||||
|
||||
# Hardware
|
||||
[HW]
|
||||
schaltschrankgehaeuse_b1x1200+1x800_zubehoer=1
|
||||
sps_simatic_s7_1515_2=1
|
||||
et200_sp_ea_ebene=1
|
||||
netzwerk_fernwartung=1
|
||||
anlagenrechner=1
|
||||
unterverteiler_fuer_2flyer=2
|
||||
unterverteiler_fuer_puffer=1
|
||||
korrektur_5_rsm_zusaetzlich_im_unterverteiler=-1
|
||||
korrektur_10_rsm_zusaetzlich_im_unterverteiler=-2
|
||||
ET200_SP=1
|
||||
et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last='et200_sp_base_unit_neue_last_mit_potKlemmen'
|
||||
|
||||
# MATERIAL VOR ORT
|
||||
kabelpritschen_leitern_200_60=348
|
||||
kleinteile_rohre_schellen_kabelbinder_ect=1.5
|
||||
zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc='zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc'
|
||||
korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc=-5
|
||||
|
||||
# Dienstleistungen
|
||||
[DL]
|
||||
# Angaben in [h]
|
||||
Bedienerhandbuch= 16
|
||||
SPS_Doku=15
|
||||
#Oberfläche_Simulation=0
|
||||
#SPS_Test_im_Haus_Simulation=0
|
||||
#PC_Doku=0
|
||||
#Vormontage_im_Haus=0
|
||||
|
||||
[Ergebnis]
|
||||
#Pflichtenheft=0
|
||||
SPS_Programmierung=150
|
||||
SPS_Inbetriebsetzung=130
|
||||
#Montage_elektrisch=0
|
||||
#SPS_Inbetriebsetzung=0
|
||||
#PC_Inbetriebsetzung=0
|
||||
#Schulung_vor_Ort_beim_Kunden=0
|
||||
#Abnahme=0
|
||||
#SPS_Anlagenbetreuung=0
|
||||
#PC_Anlagenbetreuung=0
|
||||
#Anlagenbetreuung_durch_Montage=0
|
||||
Reference in New Issue
Block a user