Compare commits
40 Commits
355a17852a
...
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 | |||
| 4dc8125155 | |||
| 3e497f94b8 | |||
| 8d15e21a08 | |||
| 3140a15d8a | |||
| be776feee4 | |||
| c1ae3b680c | |||
| cd5514f96b | |||
| c0023e4652 | |||
| 86ba921420 | |||
| a04f467b3f | |||
| 29c09edde5 | |||
| e51a8feb95 | |||
| ef0567c4ea |
@@ -16,7 +16,6 @@ dist/
|
|||||||
downloads/
|
downloads/
|
||||||
eggs/
|
eggs/
|
||||||
.eggs/
|
.eggs/
|
||||||
lib/
|
|
||||||
lib64/
|
lib64/
|
||||||
parts/
|
parts/
|
||||||
sdist/
|
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"
|
||||||
}
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,3 +1,104 @@
|
|||||||
# Rieter-EKalk
|
# Rieter-EKalk
|
||||||
|
|
||||||
Umsetzung der Excel-Datei von Herrn Schellhammer und Boes in Python
|
## 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
|
||||||
|
|
||||||
|
Bsp. für eine config-Datei mit den Sivas-Preisen in €:
|
||||||
|
```ini
|
||||||
|
[HW_Einzelpreise]
|
||||||
|
schaltschrankgehaeuse_b2x800_zubehoer = 9490.23
|
||||||
|
schaltschrankgehaeuse_b1x1200_plus_1x800_zubehoer = 10862.85
|
||||||
|
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 = 2162.35
|
||||||
|
sps_simatic_s7_1517_3 = 4328.65
|
||||||
|
sps_et200_1512sp = 705.75
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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 = ----
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
[Preise durch Sivas nicht ermittelbar]
|
||||||
|
schaltschrankgehaeuse_b1x800_zubehoer = ----
|
||||||
|
sps_simatic_s7_1518_4 = 6ES7518-4AP00-0AB0 ### Siemens Bestellnummer Artikel nicht in Sivas geführt
|
||||||
|
abgang_400v = ---- ### 703000192 + 703000201 + 703001022 * 2 + 700004301 * 3 + 700004304 + 700004207 + 700004053 + 700004042 + 700004035
|
||||||
|
abgang_24_v = ---- ### 400009208 + 705002010 + 700004053 + 700004042 + 700004035 * 2 + 700004301 * 10 + 700004304 * 2 + 700004207
|
||||||
|
netzwerk_display_adapter_lindy = ---- ### 790011002
|
||||||
|
zusaetzlicher_bildschirm = ---- ### 711003028
|
||||||
|
antrieb_unidirektional_halbleiter = ---- ### 703001070
|
||||||
|
antrieb_bidirektional_halbleiter = ---- ### 703001075
|
||||||
|
antrieb_unidirektional_schuetz = ---- ### 703001049
|
||||||
|
antrieb_bidirektional_schuetz = ---- ### 703001058
|
||||||
|
motorschutzschalter = ---- ### 703001007
|
||||||
|
wendeschuetzschaltung = ---- ### 703001026 * 2 + 703001029
|
||||||
|
frequenzumrichter = ---- ### nicht mehr verwendet
|
||||||
|
bedienstation_1fach_kpl = ---- ### 790002022
|
||||||
|
drucktaster_automatische_umfahrung = ---- ### 400102435
|
||||||
|
halter_fuer_drucktaster = ---- ### fällt raus rsm fa mit drucktaster * 4 statt * 8
|
||||||
|
movimot_fu_mit_anschaltung = ---- ### fällt raus
|
||||||
|
sensorhalter_ohne_sensor = 827072xxx ### fällt raus
|
||||||
|
seilzugschalter = ---- ### 827336009 rsm fa seilzugschalter wenn deckblatt d5 ja *1 nicht mehr *2
|
||||||
|
seil_fuer_seilzugschalter = ---- ### 719001012 pro maschinenlänge doppelte länge(dann muss die Maschinenlänge aber noch angegeben werden)
|
||||||
|
spulenumsetzstation = ---- ### fällt raus
|
||||||
|
sensorkabel_je_20m = 722001xxx ### 722001022 (je 40m)
|
||||||
|
stopper_weichenkabel_je_5m = 722001xxx ### 722001040 (je 50m)
|
||||||
|
motorkabel_je_30m = ---- ### 725000015 (1 m)
|
||||||
|
kabelpritschen_leitern_200_60 = ----
|
||||||
|
klemmkasten_rsm = ----
|
||||||
|
erdung = ----
|
||||||
|
kleinteile_rohre_schellen_kabelbinder_ect = ----
|
||||||
|
kabel_fuer_klemmkasten_und_bts_60m = ----
|
||||||
|
kabel_fuer_1fach_bts_zug_wechseln = ----
|
||||||
|
profinetkabel = 726001xxx
|
||||||
@@ -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
|
|
||||||
@@ -0,0 +1,171 @@
|
|||||||
|
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 Sivas_Daten.cfg-Datei abzugleichen ist, auf die rieter_ekalk zugreift.
|
||||||
|
"""
|
||||||
|
|
||||||
|
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.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, Laufende Materialkosten
|
||||||
|
"""
|
||||||
|
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):
|
||||||
|
self._zuordnung = configparser.ConfigParser(inline_comment_prefixes="#")
|
||||||
|
self._zuordnung.read_file(open(pathNew))
|
||||||
|
else:
|
||||||
|
self._given = False
|
||||||
|
self._zuordnung = None
|
||||||
|
|
||||||
|
self._default = configparser.ConfigParser(inline_comment_prefixes="#")
|
||||||
|
self._default.read_file(open(pathOld))
|
||||||
|
|
||||||
|
# wird verwendet, um die Werte der alten config zu speichern
|
||||||
|
self._HW_Einzelpreise = None
|
||||||
|
|
||||||
|
def exists(self):
|
||||||
|
return self._given
|
||||||
|
|
||||||
|
def getNewPricesAsDict(self, not_found_keys):
|
||||||
|
"""
|
||||||
|
Gibt die neuen Preise als Dict zurück.
|
||||||
|
|
||||||
|
: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("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
|
||||||
|
|
||||||
|
def getPriceFromAddedNumbers(self, key, split_sivas_ids, newDict, not_found_keys):
|
||||||
|
"""
|
||||||
|
Trägt die Zuordnung Bauteil:Gesamtpreis in das newDict Dictionary ein, wenn das Bauteil mehrere Sivas-Nummern beinhaltet.
|
||||||
|
Ist die Nummer eines Summanden nicht in Sivas enthalten, wird er in das Dict "not_found_keys" eingetragen.
|
||||||
|
|
||||||
|
:param split_sivas_ids: Liste von Sivas IDs, die addiert werden z.B. [' 827072204', ' 721000041']
|
||||||
|
:param key: Name z.B. "anlagenrechner_ohne_bildschirm"
|
||||||
|
: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': '----'}
|
||||||
|
"""
|
||||||
|
price = 0
|
||||||
|
for summand in split_sivas_ids:
|
||||||
|
summand = summand.strip()
|
||||||
|
# summand: einzelner Summand z.B. '827072204'
|
||||||
|
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
|
||||||
|
# price: Gesamtpreis
|
||||||
|
newDict.update({key: price})
|
||||||
|
else:
|
||||||
|
not_found_keys.update({key:summand})
|
||||||
|
|
||||||
|
|
||||||
|
def getPriceFromNumber(self, key, number, newDict, not_found_keys):
|
||||||
|
"""
|
||||||
|
Trägt die Zuordnung Bauteil:Gesamtpreis in das newDict Dictionary ein, wenn das Bauteil eine Sivas-Nummer beinhaltet.
|
||||||
|
In Sivas nicht existierende Nummern werden in das Dict "not_found_keys" zurückgegeben.
|
||||||
|
|
||||||
|
:param key: Name z.B. "anlagenrechner_ohne_bildschirm"
|
||||||
|
:param number: Sivas Nummer zum key z.B. '827072204'
|
||||||
|
: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["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, section_name):
|
||||||
|
res = dict()
|
||||||
|
for key, val in self._default.items(section_name):
|
||||||
|
res[key] = float(val)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def getZuordnungTeilenummernAsDict(self, section_name):
|
||||||
|
res = dict()
|
||||||
|
for key, val in self._zuordnung.items(section_name):
|
||||||
|
res[key] = val
|
||||||
|
return res
|
||||||
|
|
||||||
|
def writeNewConfig(self, name='Sivas_Abgleich.cfg'):
|
||||||
|
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)
|
||||||
|
|
||||||
|
def writePriceIncrements(self, name='Preis_Increments.xlsx'):
|
||||||
|
not_found_in_sivas = dict()
|
||||||
|
latest_costs = self.getNewPricesAsDict(not_found_in_sivas)
|
||||||
|
sivas_numbers = list()
|
||||||
|
old_prices = list()
|
||||||
|
new_prices = list()
|
||||||
|
for sivas_number in latest_costs.keys():
|
||||||
|
sivas_numbers.append(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")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+581
-1965
File diff suppressed because it is too large
Load Diff
+2199
File diff suppressed because it is too large
Load Diff
@@ -1147,7 +1147,6 @@ class HW():
|
|||||||
"sps_simatic_s7_1517_3": 1,
|
"sps_simatic_s7_1517_3": 1,
|
||||||
"sps_simatic_s7_1518_4": 0,
|
"sps_simatic_s7_1518_4": 0,
|
||||||
"sps_et200_1512sp": 0,
|
"sps_et200_1512sp": 0,
|
||||||
#"memory_card_256_mb": 0
|
|
||||||
#"memory_card_2_gb": 0
|
#"memory_card_2_gb": 0
|
||||||
"et200_sp_ea_ebene":2,
|
"et200_sp_ea_ebene":2,
|
||||||
"netzwerk_fernwartung":1,
|
"netzwerk_fernwartung":1,
|
||||||
@@ -1299,7 +1298,6 @@ class HW():
|
|||||||
"sps_simatic_s7_1517_3": 3828, # 790008101
|
"sps_simatic_s7_1517_3": 3828, # 790008101
|
||||||
"sps_simatic_s7_1518_4": 5402, # 6ES7518-4AP00-0AB0
|
"sps_simatic_s7_1518_4": 5402, # 6ES7518-4AP00-0AB0
|
||||||
"sps_et200_1512sp": 623, # 709000003
|
"sps_et200_1512sp": 623, # 709000003
|
||||||
"memory_card_256_mb": 250, # 708015093
|
|
||||||
"memory_card_2_gb": 474, # 708015094
|
"memory_card_2_gb": 474, # 708015094
|
||||||
"et200_sp_ea_ebene": 0, # 790009001
|
"et200_sp_ea_ebene": 0, # 790009001
|
||||||
"netzwerk_fernwartung": 750, # 790011001
|
"netzwerk_fernwartung": 750, # 790011001
|
||||||
@@ -1436,7 +1434,6 @@ class HW():
|
|||||||
"sps_simatic_s7_1517_3": 0,
|
"sps_simatic_s7_1517_3": 0,
|
||||||
"sps_simatic_s7_1518_4": 0,
|
"sps_simatic_s7_1518_4": 0,
|
||||||
"sps_et200_1512sp": 0,
|
"sps_et200_1512sp": 0,
|
||||||
"memory_card_256_mb": 0,
|
|
||||||
"memory_card_2_gb": 0,
|
"memory_card_2_gb": 0,
|
||||||
"et200_sp_ea_ebene":60,
|
"et200_sp_ea_ebene":60,
|
||||||
"netzwerk_fernwartung":0,
|
"netzwerk_fernwartung":0,
|
||||||
@@ -1476,7 +1473,6 @@ class HW():
|
|||||||
"sps_simatic_s7_1517_3": 0,
|
"sps_simatic_s7_1517_3": 0,
|
||||||
"sps_simatic_s7_1518_4": 0,
|
"sps_simatic_s7_1518_4": 0,
|
||||||
"sps_et200_1512sp": 0,
|
"sps_et200_1512sp": 0,
|
||||||
"memory_card_256_mb": 0,
|
|
||||||
"memory_card_2_gb": 0,
|
"memory_card_2_gb": 0,
|
||||||
"et200_sp_ea_ebene":120,
|
"et200_sp_ea_ebene":120,
|
||||||
"netzwerk_fernwartung":0,
|
"netzwerk_fernwartung":0,
|
||||||
@@ -1567,7 +1563,6 @@ class HW():
|
|||||||
"sps_simatic_s7_1517_3",
|
"sps_simatic_s7_1517_3",
|
||||||
"sps_simatic_s7_1518_4",
|
"sps_simatic_s7_1518_4",
|
||||||
"sps_et200_1512sp",
|
"sps_et200_1512sp",
|
||||||
"memory_card_256_mb",
|
|
||||||
"memory_card_2_gb",
|
"memory_card_2_gb",
|
||||||
"et200_sp_ea_ebene",
|
"et200_sp_ea_ebene",
|
||||||
"netzwerk_fernwartung",
|
"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_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["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["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)
|
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_1517_3",
|
||||||
"sps_simatic_s7_1518_4",
|
"sps_simatic_s7_1518_4",
|
||||||
"sps_et200_1512sp",
|
"sps_et200_1512sp",
|
||||||
"memory_card_256_mb",
|
|
||||||
"memory_card_2_gb",
|
"memory_card_2_gb",
|
||||||
"et200_sp_ea_ebene",
|
"et200_sp_ea_ebene",
|
||||||
"netzwerk_fernwartung",
|
"netzwerk_fernwartung",
|
||||||
@@ -2114,7 +2103,6 @@ class HW():
|
|||||||
"sps_simatic_s7_1517_3",
|
"sps_simatic_s7_1517_3",
|
||||||
"sps_simatic_s7_1518_4",
|
"sps_simatic_s7_1518_4",
|
||||||
"sps_et200_1512sp",
|
"sps_et200_1512sp",
|
||||||
"memory_card_256_mb",
|
|
||||||
"memory_card_2_gb",
|
"memory_card_2_gb",
|
||||||
"et200_sp_ea_ebene",
|
"et200_sp_ea_ebene",
|
||||||
"netzwerk_fernwartung",
|
"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_1517_3"), 1)
|
||||||
self.assertEqual(hw.anzahl("sps_simatic_s7_1518_4"), 0)
|
self.assertEqual(hw.anzahl("sps_simatic_s7_1518_4"), 0)
|
||||||
self.assertEqual(hw.anzahl("sps_et200_1512sp"), 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("memory_card_2_gb"), 0)
|
||||||
self.assertEqual(hw.anzahl("et200_sp_ea_ebene"), 2)
|
self.assertEqual(hw.anzahl("et200_sp_ea_ebene"), 2)
|
||||||
self.assertEqual(hw.anzahl("netzwerk_fernwartung"), 1)
|
self.assertEqual(hw.anzahl("netzwerk_fernwartung"), 1)
|
||||||
-332
@@ -1,332 +0,0 @@
|
|||||||
import rieter_ekalk as rek
|
|
||||||
import unittest
|
|
||||||
class TestObjectMethods(unittest.TestCase):
|
|
||||||
def test_A_JayJay(self):
|
|
||||||
# Anzahl der für das Projekt benutzten
|
|
||||||
Anzahl_MG = {
|
|
||||||
"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_eingabe = {
|
|
||||||
}
|
|
||||||
rsm_fa_eingabe = {
|
|
||||||
"Flex_A_Premium":False, # braucht man das noch?
|
|
||||||
"Getriebe_in_der_Mitte":False, # braucht man das noch?
|
|
||||||
"RSM_Einfahrt_Ein_Beidseitig":False, # braucht man das noch?
|
|
||||||
"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_eingabe = {
|
|
||||||
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
|
||||||
#"Anzahl":0,
|
|
||||||
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, #wird in deckblatt-Klasse berechnet
|
|
||||||
"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur":0,
|
|
||||||
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2, #wird in deckblatt-Klasse berechnet
|
|
||||||
#"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2, #wird in deckblatt-Klasse berechnet
|
|
||||||
#"Anzahl_Schienen":0,
|
|
||||||
"Single_Line_Durchfahrt":False,
|
|
||||||
"Nachpuffer":False,
|
|
||||||
#"Sensor_optisch_Traverse":0,
|
|
||||||
"Sensor_optisch_Traverse_Korrektur":0,
|
|
||||||
#"Sensor_induktiv_Spulenhalter":0,
|
|
||||||
"Sensor_induktiv_Spulenhalter_Korrektur":0,
|
|
||||||
#"Bedientableau_2fach":0,
|
|
||||||
"Bedientableau_2fach_Korrektur":0,
|
|
||||||
#"Interface_Doffer":0,
|
|
||||||
"Interface_Doffer_Korrektur":0,
|
|
||||||
#"Weiche":0,
|
|
||||||
"Weiche_Korrektur":0,
|
|
||||||
#"Weiche_nach_Flyer_bipolar":0,
|
|
||||||
"Weiche_nach_Flyer_bipolar_Korrektur":0,
|
|
||||||
"Dreifachweiche":0,
|
|
||||||
"Wechsel":0,
|
|
||||||
"Stopper":0,
|
|
||||||
"RA_uni":0,
|
|
||||||
#"RA_uni_abhebbar":0,
|
|
||||||
"RA_uni_abhebbar_Korrektur":0,
|
|
||||||
#"RA_uni_ohne_SPS_Ansteuerung":0,
|
|
||||||
"RA_uni_ohne_SPS_Ansteuerung_Korrektur":0,
|
|
||||||
#"RRA_BI_abhebbar":0,
|
|
||||||
"RRA_BI_abhebbar_Korrektur":0,
|
|
||||||
"RRA_bi":0,
|
|
||||||
#"RRA_bi_Korrektur":0,
|
|
||||||
#"RRA_bi_ohne_SPS_Ansteuerung":0,
|
|
||||||
"RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0,
|
|
||||||
#"Doppelstreckenantrieb":0,
|
|
||||||
"Doppelstreckenantrieb_Korrektur":0,
|
|
||||||
"RA_bi_abhebbar_unger_Schiene":0,
|
|
||||||
#"Meldelampe_Überstrom":0,
|
|
||||||
"Meldelampe_Überstrom_Korrektur":0,
|
|
||||||
#"Hauptschalter_Ein_Meldung":0,
|
|
||||||
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
|
||||||
#"Werma_Rundumleuchte_Störung":0,
|
|
||||||
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
|
||||||
}
|
|
||||||
neuenhauser_eingabe = {
|
|
||||||
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
|
||||||
#"Anzahl":0,
|
|
||||||
#"Neuenhauser-Putzmaschine":0, #wird in deckblatt-Klasse zugewiesen
|
|
||||||
#"Neuenhauser-Putzmaschine_Vorpuffer":0, #wird in deckblatt-Klasse zugewiesen
|
|
||||||
#"Neuenhauser-Putzmaschine_Nachpuffer":0, #wird in deckblatt-Klasse zugewiesen
|
|
||||||
#"Anzahl_Vorstaustrecken":0,
|
|
||||||
#"Anzahl_Nachstaustrecken":0,
|
|
||||||
#"Sensor_optisch_Traverse":0,
|
|
||||||
"Sensor_optisch_Traverse_Korrektur":0,
|
|
||||||
#"Sensorik_Zugpositionierung":0,
|
|
||||||
#"Sensor_WT18_Spulenprüfung_voll_leer":0,
|
|
||||||
#"Bedientableau_2fach":0,
|
|
||||||
"Bedientableau_2fach_Korrektur":0,
|
|
||||||
#"Interface_Putzmaschine":0,
|
|
||||||
#"Weiche":0,
|
|
||||||
"Weiche_Korrektur":0,
|
|
||||||
#"Weiche_nach_PM_bipolar":0,
|
|
||||||
#"RA_uni_abhebbar":0,
|
|
||||||
"RA_uni_abhebbar_Korrektur":0,
|
|
||||||
#"RA_uni_ohne_SPS_Ansteuerung":0,
|
|
||||||
#"RA_uni_abhebbar_unger_Sch":0,
|
|
||||||
#"Doppelstreckenantrieb":0,
|
|
||||||
#"Meldelampe_Überstrom":0,
|
|
||||||
"Meldelampe_Überstrom_Korrektur":0,
|
|
||||||
#"Hauptschalter_Ein_Meldung":0,
|
|
||||||
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
|
||||||
#"Werma_Rundumleuchte_Störung":0,
|
|
||||||
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
|
||||||
}
|
|
||||||
flyer_eingabe = {
|
|
||||||
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
|
||||||
#"Anzahl":0,
|
|
||||||
#"Flyer":0, # äquivalent zu 'Anzahl'
|
|
||||||
#"Anzahl_Schienen:":0,
|
|
||||||
#"Sensor_optisch_Traverse":0,
|
|
||||||
"Sensor_optisch_Traverse_Korrektur":0,
|
|
||||||
#"Sensor_induktiv_Spulenalter_Zug_positionierung":0,
|
|
||||||
#"Bedientableau_2fach":0,
|
|
||||||
#"Interface_Doffer":0,
|
|
||||||
#"Weiche":0,
|
|
||||||
"Weiche_Korrektur":0,
|
|
||||||
#"Weiche_nach_Flyer_bipolar":0,
|
|
||||||
"Dreifachweiche":0,
|
|
||||||
#"Wechsel":0,
|
|
||||||
"Wechsel_Korrektur":0,
|
|
||||||
#"RA_bi_ohne_SPS-Ansteuerung":0,
|
|
||||||
#"RA_bi_abhebbar":0,
|
|
||||||
"RA_bi_abhebbar_Korrektur":0,
|
|
||||||
"RA_bi":4,
|
|
||||||
#"Doppelstreckenantrieb":0,
|
|
||||||
"RA_bi_abhebbar_unger_Schiene":0,
|
|
||||||
#"Meldelampe_Überstrom":0,
|
|
||||||
"Meldelampe_Überstrom_Korrektur":0,
|
|
||||||
#"Hauptschalter_Ein_Meldung":0,
|
|
||||||
"Hauptschalter_Ein-Meldung_Korrektur":0,
|
|
||||||
#"Werma_Rundumleuchte_Störung":0,
|
|
||||||
"Werma_Rundumleuchte_Störung_Korrektur":0,
|
|
||||||
}
|
|
||||||
verbindungsstrecken_w_eingabe = {
|
|
||||||
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
|
||||||
#"Sensor_optisch_Traverse":0,
|
|
||||||
"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_eingabe = {
|
|
||||||
# auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
|
||||||
# "Anzahl":0,
|
|
||||||
# "Puffer":0, #äquivalent zu Anzahl
|
|
||||||
# "Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken
|
|
||||||
# "Anzahl_Staustrecken":0,
|
|
||||||
# "Sensor_optisch_Traverse":0,
|
|
||||||
"Sensor_optisch_Traverse_Korrektur": 1,
|
|
||||||
# "Weiche":0,
|
|
||||||
"Weiche_Korrektur": 0,
|
|
||||||
"RA_bi_ungerade_Schiene": 2,
|
|
||||||
# "Doppelstreckenantrieb":0,
|
|
||||||
# "Meldelampe_Überstrom":0,
|
|
||||||
"Meldelampe_Überstrom_Korrektur": 0,
|
|
||||||
# "Hauptschalter_Ein_Meldung":0,
|
|
||||||
"Hauptschalter_Ein-Meldung_Korrektur": 0,
|
|
||||||
}
|
|
||||||
turm_eingabe = {
|
|
||||||
#auskommentiert => kein Übergabeparameter, wird in Klasse berechnet
|
|
||||||
#"Anzahl":0,
|
|
||||||
#"Turm":0, #äquivalent zu Anzahl
|
|
||||||
#"Anzahl_Wendlungen":0, #äquivalent zu Anzahl_Staustrecken
|
|
||||||
#"Anzahl_Staustrecken":0,
|
|
||||||
#"Sensor_optisch_Traverse":0,
|
|
||||||
#"Weiche":0,
|
|
||||||
#"RA_bi":0,
|
|
||||||
"RA_bi_Korrektur":0,
|
|
||||||
#"RA_bi_ohne_SPS":0,
|
|
||||||
"RA_bi_ohne_SPS_Korrektur":0,
|
|
||||||
#"Bedientableau_2fach":0,
|
|
||||||
}
|
|
||||||
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)
|
|
||||||
|
|
||||||
# check data of Mengengerüst
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Anzahl_RSM'), 14)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Flex_A_Premium'), False)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Getriebe_in_der_Mitte'), False)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RSM_Einfahrt_Ein_Beidseitig'), False)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse'), 20)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse_zusätzlich'), 6)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_1fach'), 14)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_1fach_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_2fach'), 6)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_2fach_Korrektur'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Weiche'), 18)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Weiche_Korrektur'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi'), 24)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_auf_Haupstrecke'), 10)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_ohne_SPS_Ansteuerung'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'gemeinsame_Wendung'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Seilzugschalter'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Mit_Drucktaster'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Mit_Drucktaster_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom'), 2)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Hauptschalter_Ein_Meldung'), 2)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung'), 2)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('rsm_fa', 'klemmkasten_rsm'), 2)
|
|
||||||
|
|
||||||
# check data of the flyer
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Anzahl'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Anzahl_Schienen'), 2)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Flyer'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse'), 28)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_induktiv_Spulenalter_Zug_positionierung'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Bedientableau_2fach'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Interface_Doffer'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche'), 8)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche_nach_Flyer_bipolar'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Dreifachweiche'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Wechsel'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Wechsel_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_ohne_SPS-Ansteuerung'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Doppelstreckenantrieb'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_unger_Schiene'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein_Meldung'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung_Korrektur'), 0)
|
|
||||||
|
|
||||||
# Verbindungsstrecken Wechsel
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Sensor_optisch_Traverse'), 10)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_1fach'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_2fach'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_14fach'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Weiche'), 4)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Dreifachweiche'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Kreuzungsweiche'), 1)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Werma_Rundumleuchte_Störung'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni_ohne_SPS_Ansteuerung'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi_ohne_SPS-Ansteuerung'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Doppelstreckenantrieb'), 0)
|
|
||||||
|
|
||||||
# Puffer
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Anzahl'), 1)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Anzahl_Staustrecken'), 5)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Sensor_optisch_Traverse'), 6)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Sensor_optisch_Traverse_Korrektur'), 1)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Weiche'), 5)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'RA_bi_ungerade_Schiene'), 2)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Weiche_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Doppelstreckenantrieb'), 2)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Meldelampe_Überstrom'), 1)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Meldelampe_Überstrom_Korrektur'), 0)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Hauptschalter_Ein_Meldung'), 1)
|
|
||||||
self.assertEqual(mg.get_value_of_object('puffer', 'Hauptschalter_Ein-Meldung_Korrektur'), 0)
|
|
||||||
|
|
||||||
zf = mg.zusammenfassung()
|
|
||||||
self.assertEqual(zf['Gesamtanzahl_Antriebe'], 44)
|
|
||||||
self.assertEqual(zf['Sensor_optisch_Traverse'], 68)
|
|
||||||
self.assertEqual(zf['Sensor_induktiv_Spulenalter_Zug_positionierung'], 4)
|
|
||||||
self.assertEqual(zf['Sensor_Spulenprüfung_voll_leer'], 0)
|
|
||||||
self.assertEqual(zf['Seilzugsschalter'], 0)
|
|
||||||
self.assertEqual(zf['Drucktaster_automatische_Umfahrung'], 0)
|
|
||||||
self.assertEqual(zf['Bedientableau_1fach'], 14)
|
|
||||||
self.assertEqual(zf['Bedientableau_2fach'], 10)
|
|
||||||
self.assertEqual(zf['Bedientableau_14fach'], 0)
|
|
||||||
self.assertEqual(zf['Interface_Putzmaschine'], 0)
|
|
||||||
self.assertEqual(zf['Interface_Doffer'], 4)
|
|
||||||
self.assertEqual(zf['Weiche'], 35)
|
|
||||||
self.assertEqual(zf['Dreifachweiche'], 0)
|
|
||||||
self.assertEqual(zf['Wechsel'], 4)
|
|
||||||
self.assertEqual(zf['Stopper'], 0)
|
|
||||||
self.assertEqual(zf['Meldelampe_Überstrom'], 7)
|
|
||||||
self.assertEqual(zf['Hauptschalter_Ein_Meldung'], 7)
|
|
||||||
self.assertEqual(zf['Werma_Rundumleuchte_Störung'], 6)
|
|
||||||
self.assertEqual(zf['Weiche_nach_PM_bipolar'], 0)
|
|
||||||
self.assertEqual(zf['Kreuzungsweiche'], 1)
|
|
||||||
self.assertEqual(zf['RA_uni'], 4)
|
|
||||||
self.assertEqual(zf['RA_uni_abhebbar'], 0)
|
|
||||||
self.assertEqual(zf['RA_uni_ohne_SPS_Ansteuerung'], 0)
|
|
||||||
self.assertEqual(zf['RA_bi'], 30)
|
|
||||||
self.assertEqual(zf['RA_bi_ohne_SPS-Ansteuerung'], 4)
|
|
||||||
self.assertEqual(zf['RA_bi_abhebbar'], 4)
|
|
||||||
self.assertEqual(zf['Doppelstreckenantrieb'], 6)
|
|
||||||
self.assertEqual(zf['gemeinsame_Wendung'], 0)
|
|
||||||
self.assertEqual(zf['klemmkasten_rsm'], 2)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_Unittests():
|
|
||||||
unittest.main()
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
test_Unittests()
|
|
||||||
+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