diff --git a/Kalkulation Spinnerei.ipynb b/Kalkulation Spinnerei.ipynb index 2645681..9b7a5b6 100644 --- a/Kalkulation Spinnerei.ipynb +++ b/Kalkulation Spinnerei.ipynb @@ -21,19 +21,19 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 92, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Flyer-Puffern': 103104.44666666667, 'Mit 2 Flyer-Puffern': 104833.16666666667, 'Mit 3 Flyer-Puffern': 105546.96666666667, 'Mit 4 Flyer-Puffern': 107232.12666666668, 'Mit 5 Flyer-Puffern': 107945.92666666667}\n" + "{1: 103604.44666666666, 2: 105333.16666666666, 3: 106046.96666666665, 4: 107732.12666666665, 5: 108445.92666666667, 6: 110174.64666666667, 7: 110888.44666666666, 8: 112573.60666666666, 9: 113287.40666666665}\n" ] }, { "data": { - "image/png": "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", + "image/png": "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ZsJiRURERGQmLFZEREREZsJiRURERGQmNlIHaEuEEAAAnU4ncRIiIiJqrKuf21c/x/8Ki1ULKi8vBwD4+vpKnISIiIiaqry8HM7Ozn85RiYaU7/ILIxGI4qKiuDk5ASZTGbWbet0Ovj6+qKgoABqtdqs224NuH+Wz9r3kftn+ax9H7l/t08IgfLycnh5eUEu/+urqHjEqgXJ5XL4+Pg063uo1Wqr/AtzFffP8ln7PnL/LJ+17yP37/bc6kjVVbx4nYiIiMhMWKyIiIiIzITFykqoVCrMmDEDKpVK6ijNgvtn+ax9H7l/ls/a95H71zJ48ToRERGRmfCIFREREZGZsFgRERERmQmLFREREZGZsFgRERERmQmLlYXbsWMHhgwZAi8vL8hkMqxbt07qSGY1Z84cREZGwsnJCW5ubhg2bBiOHz8udSyzWbBgAXr37m26oV1MTAx++uknqWM1m3feeQcymQyTJk2SOorZzJw5EzKZrMEjODhY6lhmVVhYiDFjxsDV1RX29vYIDQ3Fvn37pI5lNgEBAdf9N5TJZJg4caLU0czCYDBg2rRpCAwMhL29PTp37ozZs2c3at47S1FeXo5JkybB398f9vb2GDBgAPbu3StJFt553cJVVlYiLCwMycnJGD58uNRxzO7XX3/FxIkTERkZifr6evzrX//C4MGDcezYMTg6Okod7475+PjgnXfeQdeuXSGEwOLFizF06FBkZ2ejZ8+eUsczq7179+KLL75A7969pY5idj179sQvv/xiem5jYz2/Wi9fvoyBAwfivvvuw08//YROnTrh5MmT6NChg9TRzGbv3r0wGAym50eOHMH999+PESNGSJjKfN59910sWLAAixcvRs+ePbFv3z4kJSXB2dkZL7zwgtTxzGL8+PE4cuQIli5dCi8vLyxbtgxxcXE4duwYvL29WzaMIKsBQKxdu1bqGM2qtLRUABC//vqr1FGaTYcOHcTChQuljmFW5eXlomvXrmLz5s3innvuES+++KLUkcxmxowZIiwsTOoYzWbq1KkiNjZW6hgt6sUXXxSdO3cWRqNR6ihmkZCQIJKTkxssGz58uBg9erREicyrqqpKKBQKsX79+gbL+/btK15//fUWz8NTgWRRtFotAMDFxUXiJOZnMBjw9ddfo7KyEjExMVLHMauJEyciISEBcXFxUkdpFidPnoSXlxeCgoIwevRo5OfnSx3JbP773/8iIiICI0aMgJubG/r06YOvvvpK6ljNpq6uDsuWLUNycjJkMpnUccxiwIAB2LJlC06cOAEAOHjwIHbu3IkHH3xQ4mTmUV9fD4PBADs7uwbL7e3tsXPnzhbPYz3Hq8nqGY1GTJo0CQMHDkSvXr2kjmM2hw8fRkxMDGpqatCuXTusXbsWISEhUscym6+//hoHDhyQ7HqH5hYdHY309HR0794d586dw6xZs3DXXXfhyJEjcHJykjreHTt9+jQWLFiAyZMn41//+hf27t2LF154AUqlEomJiVLHM7t169ahrKwM48aNkzqK2bz66qvQ6XQIDg6GQqGAwWDA22+/jdGjR0sdzSycnJwQExOD2bNno0ePHnB3d8fKlSuRkZGBLl26tHygFj9GRs0GVn4qcMKECcLf318UFBRIHcWsamtrxcmTJ8W+ffvEq6++Kjp27CiOHj0qdSyzyM/PF25ubuLgwYOmZdZ2KvDPLl++LNRqtdWczrW1tRUxMTENlj3//POif//+EiVqXoMHDxYPP/yw1DHMauXKlcLHx0esXLlSHDp0SCxZskS4uLiI9PR0qaOZTW5urrj77rsFAKFQKERkZKQYPXq0CA4ObvEsPGJFFuG5557D+vXrsWPHDvj4+Egdx6yUSqXpX1X9+vXD3r178Z///AdffPGFxMnu3P79+1FaWoq+ffualhkMBuzYsQOffvopamtroVAoJExofu3bt0e3bt2Qm5srdRSz8PT0vO4Iao8ePfDdd99JlKj55OXl4ZdffsGaNWukjmJWr7zyCl599VU88cQTAIDQ0FDk5eVhzpw5VnPUsXPnzvj1119RWVkJnU4HT09PjBw5EkFBQS2ehddYUasmhMBzzz2HtWvXYuvWrQgMDJQ6UrMzGo2ora2VOoZZDBo0CIcPH0ZOTo7pERERgdGjRyMnJ8fqShUAVFRU4NSpU/D09JQ6ilkMHDjwulucnDhxAv7+/hIlaj5paWlwc3NDQkKC1FHMqqqqCnJ5w497hUIBo9EoUaLm4+joCE9PT1y+fBkbN27E0KFDWzwDj1hZuIqKigb/MtZoNMjJyYGLiwv8/PwkTGYeEydOxIoVK/D999/DyckJxcXFAABnZ2fY29tLnO7Ovfbaa3jwwQfh5+eH8vJyrFixAtu3b8fGjRuljmYWTk5O110P5+joCFdXV6u5Tu6f//wnhgwZAn9/fxQVFWHGjBlQKBR48sknpY5mFi+99BIGDBiAf//733j88ceRlZWFL7/8El9++aXU0czKaDQiLS0NiYmJVnW7DAAYMmQI3n77bfj5+aFnz57Izs7Ghx9+iOTkZKmjmc3GjRshhED37t2Rm5uLV155BcHBwUhKSmr5MC1+8pHMatu2bQLAdY/ExESpo5nFjfYNgEhLS5M6mlkkJycLf39/oVQqRadOncSgQYPEpk2bpI7VrKztGquRI0cKT09PoVQqhbe3txg5cqTIzc2VOpZZ/fDDD6JXr15CpVKJ4OBg8eWXX0odyew2btwoAIjjx49LHcXsdDqdePHFF4Wfn5+ws7MTQUFB4vXXXxe1tbVSRzObVatWiaCgIKFUKoWHh4eYOHGiKCsrkySLTAgruvUqERERkYR4jRURERGRmbBYEREREZkJixURERGRmbBYEREREZkJixURERGRmbBYEREREZkJixURERGRmbBYEREREZkJixURWZV7770XkyZNkjrGbfvyyy/h6+sLuVyOefPm3XQZEbVOLFZEZHHGjRsHmUx23ePaeTNb2vbt2xtkcXd3x6OPPorTp083ehs6nQ7PPfccpk6disLCQjzzzDM3XEZErReLFRFZpAceeADnzp1r8AgMDGyR99br9Tddd/z4cRQVFeGbb77B0aNHMWTIEBgMhkZtNz8/H3q9HgkJCfD09ISDg8MNl5k7MxGZD4sVEVkklUoFDw+PBg+FQtFgzJtvvolevXpd99rw8HBMmzbN9HzhwoXo0aMH7OzsEBwcjM8++8y07syZM5DJZFi1ahXuuece2NnZYfny5TfN5ebmBk9PT9x9992YPn06jh07htzcXKSnp6N9+/YNxq5btw4ymQwAkJ6ejtDQUABAUFAQZDLZDZedOXMGAPD999+jb9++sLOzQ1BQEGbNmoX6+nrTtmUyGRYsWID/+7//g6OjI95+++1G/FSJ6E7ZSB2AiKi5JCcnY9asWdi7dy8iIyMBANnZ2Th06BDWrFkDAFi+fDmmT5+OTz/9FH369EF2djaefvppODo6IjEx0bStV199FR988AH69OkDOzu7Rr2/vb09AKCuru6WY0eOHAlfX1/ExcUhKysLvr6+cHJyum5Zp06d8Ntvv+Gpp57Cxx9/jLvuugunTp0ynSKcMWOGaZszZ87EO++8g3nz5sHGhr/uiVoCj1gRkUVav3492rVrZ3qMGDHiujE+Pj6Ij49HWlqaaVlaWhruueceBAUFAbhSRD744AMMHz4cgYGBGD58OF566SV88cUXDbY1adIk0xhPT89b5jt37hzef/99eHt7o3v37rccb29vD1dXVwBAp06d4OHhAUdHx+uWKRQKzJo1C6+++ioSExMRFBSE+++/H7Nnz74u86hRo5CUlISgoCD4+fndMgMR3Tn+E4aILNJ9992HBQsWmJ47OjrecNzTTz+N5ORkfPjhh5DL5VixYgU++ugjAEBlZSVOnTqFlJQUPP3006bX1NfXw9nZucF2IiIiTP+/Z8+eyMvLAwDcdddd+Omnn0zrfHx8IIRAVVUVwsLC8N1330GpVN75Dl/j4MGD2LVrV4PTewaDATU1NaiqqjJdh3VtZiJqGSxWRGSRHB0d0aVLl1uOGzJkCFQqFdauXQulUgm9Xo/HHnsMAFBRUQEA+OqrrxAdHd3gdX++Xuva4rZhwwbTxeBXT/dd9dtvv0GtVsPNzQ1OTk6m5XK5HEKIBmNv94LyiooKzJo1C8OHD79u3bWnKW9WNomo+bBYEZFVs7GxQWJiItLS0qBUKvHEE0+YypC7uzu8vLxw+vRpjB49utHb9Pf3v+m6wMDA6y5SB66cyisvL0dlZaWp8OTk5DRpX67q27cvjh8/3qhiSUQti8WKiKze+PHj0aNHDwDArl27GqybNWsWXnjhBTg7O+OBBx5AbW0t9u3bh8uXL2Py5MlmyxAdHQ0HBwf861//wgsvvIDMzEykp6ff1ramT5+Ohx9+GH5+fnjssccgl8tx8OBBHDlyBG+99ZbZMhNR0/HidSKyel27dsWAAQMQHBx83Sm/8ePHY+HChUhLS0NoaCjuuecepKenm/2eWC4uLli2bBk2bNiA0NBQrFy5EjNnzrytbcXHx2P9+vXYtGkTIiMj0b9/f3z00Ud/eSSNiFqGTPz5pD8RkZURQqBr1674xz/+YdajUEREf8ZTgURk1c6fP4+vv/4axcXFSEpKkjoOEVk5Fisismpubm7o2LEjvvzyS3To0EHqOERk5VisiMiq8WoHImpJvHidiIiIyExYrIiIiIjMhMWKiIiIyExYrIiIiIjMhMWKiIiIyExYrIiIiIjMhMWKiIiIyExYrIiIiIjM5P8B1/nvrKn+vz0AAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -229,17 +229,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -268,10 +296,10 @@ "\n", "variationen = {}\n", "k = 1\n", - "while k < 6:\n", + "while k < 10:\n", " Anzahl_MG.update({\"Flyer_Puffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Flyer-Puffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "\n", @@ -280,6 +308,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Flyer-Puffer\")\n", "plt.show()\n", "\n" ] @@ -294,19 +324,19 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 93, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Puffern': 104833.16666666667, 'Mit 2 Puffern': 105853.08666666667, 'Mit 3 Puffern': 106873.00666666667, 'Mit 4 Puffern': 107892.92666666667, 'Mit 5 Puffern': 108956.40666666668}\n" + "{1: 105333.16666666666, 2: 106353.08666666667, 3: 107373.00666666665, 4: 108392.92666666667, 5: 109456.40666666665, 6: 110476.32666666666, 7: 111496.24666666666, 8: 112516.16666666666, 9: 113536.08666666667}\n" ] }, { "data": { - "image/png": "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RkxMDNavX48//vjDvJSDTCa7Z5aGoLTchEW7TuDTA9kAgI6+blg5KhyBns4SJyMiIqI7qunXDvft2ycA3HYZM2aMEOLm8ggzZ84U3t7eQqVSiX79+omMjAzz/RMTE0VERIRQq9XCwcFBtG/fXrz//vuipKSk0nFSU1NFz549hUqlEs2bNxcLFiy4LcvGjRtFmzZthFKpFB07dhQ7duyodPu9styL1F/zPHu1UDy24oAImLZdBEzbLmZvSxMlZeWSZCEiImoopH7+FkIImRBCSNjvrJper4darYZOp6v3z2N9m3oJf998FPmGcqgd7fHBsBD07+B97zsSERE1clI+f1fgB3isTHGpEfO2pyP+8HkAQLcAdyyPC4NvE0eJkxEREVF1sWBZkczcfIxbl4STuQWQyYBxDwVhUlQw7BQW/S4CERER1TEWLCsghMDGP85j9jfpKCkzwdNFhaUjQtEzmCdpJiIiaohYsCSWX1KGGVvS8E3qJQBAr2BPfDg8FM1ceZJmIiKihooFS0JHLuRhQnwyzl4rgkIuwxsD2uKl3q0gl/N0N0RERA0ZC5YEhBD4969nsOC74ygzCjRv4ojlcWHoGsCTNBMREdkCFiwJpF3U453txwAAAztq8I+hXaB2spc4FREREVkKC5YEOrdQ47V+wfB0UeKpBwIgk/EtQSIiIlvCgiWR1/u3kToCERER1REusERERERkYSxYRERERBbGgkVERERkYSxYRERERBbGgkVERERkYSxYRERERBbGgkVERERkYSxYRERERBbGgkVERERkYSxYRERERBbGgkVERERkYSxYRERERBbGgkVERERkYXZSB7BmQggAgF6vlzgJERERVVfF83bF87gUWLDuIj8/HwDg5+cncRIiIiKqqfz8fKjVakmOLRNS1jsrZzKZcOnSJbi6ukImk1l033q9Hn5+fjh//jzc3Nwsum+qH5zDho3z1/BxDhu+uppDIQTy8/Ph6+sLuVyaT0PxFay7kMvlaNGiRZ0ew83Njf8wNHCcw4aN89fwcQ4bvrqYQ6leuarAD7kTERERWRgLFhEREZGFsWBJRKVSYfbs2VCpVFJHoVriHDZsnL+Gj3PY8NnyHPJD7kREREQWxlewiIiIiCyMBYuIiIjIwliwiIiIiCys0Reshx56CJMmTZI6RrUVFRVh6NChcHNzg0wmQ15eXpXbGouGNn9arRb9+/eHs7MzmjRpcsdtjQnnsOHjHDZ8nMM6IGzMmDFjBADx0ksv3Xbbq6++KgCIMWPGmLddu3ZN6PV68/WAgACxZMmSex7nk08+EX369BGurq4CgLhx40a1swEQ9vb2onXr1mLu3LmirKysOg9NCCHERx99JJo1ayaOHj0qcnJyhMlkqnJbQ1Uf83ft2jUxfvx40aZNG+Hg4CD8/PzEhAkTRF5e3l3v16dPH/P8qVQq0b59e7Fq1aoaPb6pU6eKjh07ipMnT4rc3Nw7bmvI6ut38MUXXxStWrUSDg4OwtPTUzz22GPi+PHjd70P57B66msOK5hMJjFw4EABQGzZsuWuYzmH1VNfc3jrfFRcqjrmne5jy3Nok69g+fn5Yf369SguLjZvKykpwbp16+Dv719prIeHB1xdXWt8jKKiIgwcOBB///vfa3S/gQMHIicnB5mZmZgyZQrmzJmDRYsWVfv+p06dQvv27dGpUydoNBrIZLIqt9WU0WiEyWSq8f3qQl3P36VLl3Dp0iV88MEHSEtLw9q1a/H999/j+eefv+d9/+///g85OTk4duwYhg8fjnHjxiE+Pr7axz516hS6du2K4OBgeHl53XFbTZWWltbqfnWlPn4Hu3btijVr1uD48ePYtWsXhBAYMGAAjEbjXe/HOaye+pjDCkuXLq3Rv1ucw+qprzmsmI+Ky8KFC6t9H5ueQ6kbnqWNGTNGDBkyRHTq1El88cUX5u1ffvml6NKlixgyZEil1t6nTx/x2muvmf+MvzTxe9m3b1+NXsEaMmRIpW39+/cXDzzwwG1ZKtya96/5+vTpU+U2IYQoKSkRU6ZMEb6+vsLJyUl0795d7Nu3z7zfNWvWCLVaLbZt2ybat28vFAqFyM7OFgEBAeK9994TY8eOFS4uLsLPz0988skn93xsllLf81dh48aNQqlU3vXVxKrmJzg4WIwcOVIIUfX/+EJCQsTs2bPNt9+abcyYMVVuE0KIGzduiOeff154enoKV1dX0bdvX5GSkmLe7+zZs0VISIj49NNPRcuWLYVMJhNCCAFAfPrppyI2NlY4OjqKoKAgsW3btmr/HCxBqjlMTU0VAERWVtYdx3AOq6c+5zA5OVk0b95c5OTkVPsVLM7hvdXXHFY1H/fSWObQJl/BAoDnnnsOa9asMV//97//jbFjx971Pps3b0aLFi0wb948cxOva46OjtVuzJs3b8b//d//ITIyEjk5Odi8eXOV2wBg/PjxOHToENavX48jR45g2LBhGDhwIDIzM837Kyoqwj/+8Q989tlnSE9PNzf+xYsXo1u3bkhOTsarr76KV155BRkZGZZ/8HdR3/On0+ng5uYGO7uanZ6zJvP3+++/Y+DAgRg+fDhycnKwbNmyKrcBwLBhw3D58mV89913SExMRHh4OPr164fr16+b95eVlYWvv/4amzdvRkpKinn73LlzMXz4cBw5cgSPPvooRo8eXel+9aU+57CwsBBr1qxBYGAg/Pz8apSTc3hndT2HRUVFGDVqFFatWgWNRlPrnJzDO6uP38Mvv/wSnp6e6NSpE6ZPn46ioqIa57TFObTZgvXUU0/hl19+wdmzZ3H27Fn8+uuveOqpp+56Hw8PDygUCri6ukKj0dzXL/y9CCHw448/YteuXXj44YerdR8PDw84OTlBqVRCo9HAw8Ojym3nzp3DmjVrsGnTJvTq1QutW7fGG2+8gZ49e1b6RSsrK8NHH32EHj16oG3btnBycgIAPProo3j11VcRFBSEadOmwdPTE/v27auTn8Od1Of8Xb16Fe+88w5efPHFauczGo344osvcOTIkWrPX7NmzaBSqeDo6AiNRgO1Wl3ltl9++QWHDx/Gpk2b0K1bNwQHB+ODDz5AkyZN8NVXX5n3V1paiv/85z8ICwtDly5dzNufffZZxMXFISgoCO+//z4KCgpw+PDhaj82S6mPOfzoo4/g4uICFxcXfPfdd9i9ezeUSmW18nEO762u5/D1119Hjx49MGTIkFrl4xzeW13P4ahRo/DFF19g3759mD59Ov773//ec/+3suU5rNl/1xuQZs2aISYmBmvXroUQAjExMfD09JQ6FrZv3w4XFxeUlZXBZDJh1KhRmDNnjkWPcfToURiNRrRp06bSdoPBgKZNm5qvK5XKSn+ZKty6TSaTQaPR4PLlyxbNeC/1NX96vR4xMTHo0KFDtebho48+wmeffYbS0lIoFAq8/vrreOWVVyyaKTU1FQUFBZXmCgCKi4tx6tQp8/WAgAA0a9bstvvfOn/Ozs5wc3Or9/kD6mcOR48ejf79+yMnJwcffPABhg8fjl9//RUODg53vA/nsPrqcg6/+eYb7N27F8nJyTW+L+ew+ur69/DW/5h27twZPj4+6NevH06dOoXWrVvf8X6NYQ5ttmABN18aHT9+PABg1apVEqe5qW/fvli9ejWUSiV8fX0rvSUll8sh/nLmorKyshofo6CgAAqFAomJiVAoFJVuc3FxMf/Z0dGxyg+W2tvbV7ouk8kk+QB8Xc9ffn4+Bg4cCFdXV2zZsuW2x12V0aNHY8aMGXB0dISPjw/k8v+9CGzJ+fPx8cFPP/102223fvXY2dm5yvtby/wBdT+HarUaarUawcHBeOCBB+Du7o4tW7YgLi7ujvfhHNZMXc3h3r17cerUqdu+Tj906FD06tWryp9dBc5hzdTnc2FERASAm2+73a1gNYY5tOmCNXDgQJSWlkImkyE6Orpa91Eqlff8FtL9cHZ2RlBQUJW3NWvWrNJ73UajEWlpaejbt2+NjhEWFgaj0YjLly+jV69e95VXSnU5f3q9HtHR0VCpVPjmm2/u+orHrdRqdbXnT6/XIzs7u1r7vVV4eDi0Wi3s7OzQsmXLGt/fmtTn76AQAkIIGAyGu47jHNZMXc3hW2+9hRdeeKHSts6dO2PJkiUYPHjwXe/LOayZ+vw9rPgMk4+Pz13HNYY5tNnPYAGAQqHA8ePHcezYsdteybmTli1bYv/+/bh48SKuXr16x3FarRYpKSnIysoCcPNtuZSUlPv6EOPDDz+MHTt2YMeOHThx4gReeeWVWi0a2qZNG4wePRrPPPMMNm/ejOzsbBw+fBjz58/Hjh07ap2vvtXV/On1egwYMACFhYX417/+Bb1eD61WC61We1/l+uGHH8Z///tfHDhwAEePHsWYMWOqnftWUVFRiIyMRGxsLH744QecOXMGBw8exIwZM/DHH3/UOp8U6moOT58+jfnz5yMxMRHnzp3DwYMHMWzYMDg6OuLRRx+tdV7O4e3qag41Gg06depU6QIA/v7+CAwMrHVezuHt6moOT506hXfeeQeJiYk4c+YMvvnmGzzzzDPo3bt3lR8/qS5bmUObfgULANzc3Go0ft68eXjppZfQunVrGAyG216mrPDxxx9j7ty55uu9e/cGAKxZswbPPvtsrbI+99xzSE1NxTPPPAM7Ozu8/vrrNX71qsKaNWvw7rvvYsqUKbh48SI8PT3xwAMPYNCgQbXan1TqYv6SkpKQkJAAALf9Dyo7O7vW/9OZPn06srOzMWjQIKjVarzzzju1+l+XTCbDzp07MWPGDIwdOxZXrlyBRqNB79694e3tXatsUqqLOXRwcMCBAwewdOlS3LhxA97e3ujduzcOHjxY6/VvAM7hndTVv6N1gXNYtbqYQ6VSiR9//BFLly5FYWEh/Pz8MHToULz99tv3ldVW5lAm6vNvPhEREVEjYNNvERIRERFJgQWLiIiIyMJYsIiIiIgsjAWLiIiIyMJYsIiIiIgsjAWLiIiIyMJYsIiIiIgsjAWLiIiIyMJYsIiIiIgsjAWLiIiIyMJYsIiIiIgsjAWLiIiIyML+H/MYzfd7mXFVAAAAAElFTkSuQmCC", + "image/png": "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11buZubaAwDERtZk+tBYGtT0tziViIhI9aNiVQXENKqFzQYjb27OuNtb4euwWx1JRESkWlKxqgJ6tKvHl+NupnndGlZHERERqdZ0aKOKUKkSERGxnoqViIiIiJeoWImIiIh4iYqViIiIiJeoWImIiIh4iYqViIiIiJeoWImIiIh4iYqViIiIiJeoWImIiIh4iYqViIiIiJeoWImIiIh4iYqViIiIiJeoWImIiIh4iYqViIiIiJf4WB2gOjHGAJCRkWFxEhERESmtC+/bF97Hf4uK1VWUmZkJQKNGjSxOIiIiImWVmZlJSEjIb46xmdLUL/EKj8dDamoqQUFB2Gw2r247IyODRo0aceTIEYKDg7267YpA+1f5VfV91P5VflV9H7V/l88YQ2ZmJhEREdjtv30WlY5YXUV2u52GDRuW63MEBwdXyR+YC7R/lV9V30ftX+VX1fdR+3d5fu9I1QU6eV1ERETES1SsRERERLxExaqKcLlcTJkyBZfLZXWUcqH9q/yq+j5q/yq/qr6P2r+rQyevi4iIiHiJjliJiIiIeImKlYiIiIiXqFiJiIiIeImKlYiIiIiXqFhVcuvXr6dv375ERERgs9lYunSp1ZG8aurUqVx77bUEBQURFhZG//792bNnj9WxvOadd96hU6dOxRe069atG59//rnVscrNyy+/jM1mY+zYsVZH8Zpnn30Wm81W4tamTRurY3nVsWPHuO+++6hduzb+/v507NiRH374wepYXtOkSZOL/gxtNhvx8fFWR/MKt9vNM888Q9OmTfH396d58+a88MILpfreu8oiMzOTsWPH0rhxY/z9/bn++uvZvHmzJVl05fVKLjs7m6ioKEaMGMGAAQOsjuN1X331FfHx8Vx77bUUFRXx5JNP0rNnT3788UcCAwOtjnfFGjZsyMsvv0zLli0xxjBnzhz69etHYmIi7du3tzqeV23evJl//OMfdOrUyeooXte+fXu+/PLL4vs+PlXnV+u5c+e44YYb6N69O59//jl169Zl37591KpVy+poXrN582bcbnfx/R07dnD77bczcOBAC1N5zyuvvMI777zDnDlzaN++PT/88AMPPvggISEhPPLII1bH84qHHnqIHTt28L//+79ERETw/vvv06NHD3788UcaNGhwdcMYqTIAs2TJEqtjlKuTJ08awHz11VdWRyk3tWrVMv/617+sjuFVmZmZpmXLlmbVqlXm5ptvNmPGjLE6ktdMmTLFREVFWR2j3EycONHceOONVse4qsaMGWOaN29uPB6P1VG8Ii4uzowYMaLEsgEDBphhw4ZZlMi7cnJyjMPhMMuWLSuxPDY21jz11FNXPY+mAqVSSU9PByA0NNTiJN7ndruZP38+2dnZdOvWzeo4XhUfH09cXBw9evSwOkq52LdvHxERETRr1oxhw4aRkpJidSSv+eSTT7jmmmsYOHAgYWFhxMTE8N5771kdq9wUFBTw/vvvM2LECGw2m9VxvOL6669n9erV7N27F4CtW7fyzTff0Lt3b4uTeUdRURFutxs/P78Sy/39/fnmm2+uep6qc7xaqjyPx8PYsWO54YYb6NChg9VxvGb79u1069aNvLw8atSowZIlS2jXrp3Vsbxm/vz5JCQkWHa+Q3nr2rUrs2fPpnXr1hw/fpznnnuOm266iR07dhAUFGR1vCt28OBB3nnnHcaNG8eTTz7J5s2beeSRR3A6nQwfPtzqeF63dOlSzp8/zwMPPGB1FK954oknyMjIoE2bNjgcDtxuN3/9618ZNmyY1dG8IigoiG7duvHCCy/Qtm1b6tWrx7x589i4cSMtWrS4+oGu+jEyKTdU8anAkSNHmsaNG5sjR45YHcWr8vPzzb59+8wPP/xgnnjiCVOnTh2zc+dOq2N5RUpKigkLCzNbt24tXlbVpgJ/6dy5cyY4OLjKTOf6+vqabt26lVg2evRoc91111mUqHz17NnT9OnTx+oYXjVv3jzTsGFDM2/ePLNt2zbz73//24SGhprZs2dbHc1r9u/fb/7whz8YwDgcDnPttdeaYcOGmTZt2lz1LDpiJZXCqFGjWLZsGevXr6dhw4ZWx/Eqp9NZ/K+qzp07s3nzZt5++23+8Y9/WJzsym3ZsoWTJ08SGxtbvMztdrN+/XpmzJhBfn4+DofDwoTeV7NmTVq1asX+/futjuIV9evXv+gIatu2bfnoo48sSlR+Dh8+zJdffsnixYutjuJVjz/+OE888QSDBw8GoGPHjhw+fJipU6dWmaOOzZs356uvviI7O5uMjAzq16/PoEGDaNas2VXPonOspEIzxjBq1CiWLFnCmjVraNq0qdWRyp3H4yE/P9/qGF5x2223sX37dpKSkopv11xzDcOGDSMpKanKlSqArKwsDhw4QP369a2O4hU33HDDRZc42bt3L40bN7YoUfmZNWsWYWFhxMXFWR3Fq3JycrDbS77dOxwOPB6PRYnKT2BgIPXr1+fcuXOsXLmSfv36XfUMOmJVyWVlZZX4l3FycjJJSUmEhoYSGRlpYTLviI+PZ+7cuXz88ccEBQWRlpYGQEhICP7+/hanu3KTJk2id+/eREZGkpmZydy5c1m3bh0rV660OppXBAUFXXQ+XGBgILVr164y58k99thj9O3bl8aNG5OamsqUKVNwOBwMGTLE6mhe8eijj3L99dfz0ksvce+997Jp0yb++c9/8s9//tPqaF7l8XiYNWsWw4cPr1KXywDo27cvf/3rX4mMjKR9+/YkJiby5ptvMmLECKujec3KlSsxxtC6dWv279/P448/Tps2bXjwwQevfpirPvkoXrV27VoDXHQbPny41dG84lL7BphZs2ZZHc0rRowYYRo3bmycTqepW7euue2228wXX3xhdaxyVdXOsRo0aJCpX7++cTqdpkGDBmbQoEFm//79Vsfyqk8//dR06NDBuFwu06ZNG/PPf/7T6khet3LlSgOYPXv2WB3F6zIyMsyYMWNMZGSk8fPzM82aNTNPPfWUyc/Ptzqa1yxYsMA0a9bMOJ1OEx4ebuLj48358+ctyWIzpgpdelVERETEQjrHSkRERMRLVKxEREREvETFSkRERMRLVKxEREREvETFSkRERMRLVKxEREREvETFSkRERMRLVKxEREREvETFSkTkCuTk5HD33XcTHByMzWbj/Pnzl1wmItWDipWIVGsPPPAANpsNm82G0+mkRYsWPP/88xQVFZXq8XPmzOHrr79mw4YNHD9+nJCQkEsuE5HqoWp906SIyGW44447mDVrFvn5+Xz22WfEx8fj6+vLpEmTfvexBw4coG3btiW+VPpSy8rK7XZjs9mw2/XvX5HKRD+xIlLtuVwuwsPDady4MQ8//DA9evTgk08+4ZZbbmHs2LElxvbv358HHngAgFtuuYU33niD9evXY7PZuOWWWy65DCA/P5/HHnuMBg0aEBgYSNeuXVm3bl3xdmfPnk3NmjX55JNPaNeuHS6Xi5SUlKvzAoiI1+iIlYjIL/j7+3PmzBlcLtdvjlu8eDFPPPEEO3bsYPHixTidToBLLhs1ahQ//vgj8+fPJyIigiVLlnDHHXewfft2WrZsCfx0vtYrr7zCv/71L2rXrk1YWFj57qiIeJ2KlYjI/zHGsHr1alauXMno0aPZvHnzb44PDQ0lICAAp9NJeHh48fJfLktJSWHWrFmkpKQQEREBwGOPPcaKFSuYNWsWL730EgCFhYX8/e9/Jyoqqpz2UETKm4qViFR7y5Yto0aNGhQWFuLxeBg6dCjPPvsscXFxXtn+9u3bcbvdtGrVqsTy/Px8ateuXXzf6XTSqVMnrzyniFhDxUpEqr3u3bvzzjvv4HQ6iYiIwMfnp1+NdrsdY0yJsYWFhWXeflZWFg6Hgy1btuBwOEqsq1GjRvH/+/v7Y7PZLmMPRKSiULESkWovMDCQFi1aXLS8bt26HD9+vPi+2+1mx44ddO/evUzbj4mJwe12c/LkSW666aYrzisiFZc+FSgi8ituvfVWli9fzvLly9m9ezcPP/zwZV3ss1WrVgwbNow//elPLF68mOTkZDZt2sTUqVNZvny594OLiGV0xEpE5FeMGDGCrVu38qc//QkfHx8effTRMh+tumDWrFm8+OKLjB8/nmPHjlGnTh2uu+46+vTp4+XUImIlm/nlCQQiIiIiclk0FSgiIiLiJSpWIiIiIl6iYiUiIiLiJSpWIiIiIl6iYiUiIiLiJSpWIiIiIl6iYiUiIiLiJSpWIiIiIl6iYiUiIiLiJSpWIiIiIl6iYiUiIiLiJf8PUOe6bBH2eQAAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -502,17 +532,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -541,10 +599,10 @@ "\n", "variationen = {}\n", "k = 1\n", - "while k < 6:\n", + "while k < 10:\n", " Anzahl_MG.update({\"Puffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Puffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "\n", @@ -553,6 +611,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Puffer\")\n", "plt.show()\n" ] }, @@ -566,20 +626,20 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 94, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 2 Pufferstrecken pro Puffer': 104265.42666666667, 'Mit 3 Pufferstrecken pro Puffer': 104380.98666666666, 'Mit 4 Pufferstrecken pro Puffer': 104717.60666666666, 'Mit 5 Pufferstrecken pro Puffer': 104833.16666666667}\n", + "{2: 104765.42666666667, 3: 104880.98666666666, 4: 105217.60666666666, 5: 105333.16666666666, 6: 105669.78666666665, 7: 105785.34666666665, 8: 106121.96666666665, 9: 106237.52666666666}\n", "Hinweis: mind. 2 Pufferstrecken pro Puffer sollten existieren\n" ] }, { "data": { - "image/png": "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", + "image/png": "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lketlEol1qxZg2HDhqFPnz7YvXs3PD090bFjR2g0GmRkZFicT1Vd4uPjcf/99wMAysvLkZSUhOeff/6W67dq1QpqtRp//PEHdDodgIoCtH//fkyePPlf96XVaiv998FoNCItLa2Kz6biZ5GdnQ0bGxv4+vpW+fFE1o7Fiohuqm/fvpg6dSq2bduGVq1a4f3337+jyT7btm2LiIgIDB8+HO+99x4CAgJw8eJFxMbGomvXrggPD7/p49LS0vDZZ5/hP//5Dzw9PZGamooTJ05g+PDhAABfX1+kpaVJH+M5OjrecITompkzZ+Kxxx6Dj48PnnzySSiVShw6dAgpKSmYO3cuevfujfvvvx9PPPEE3n//fbRu3RrHjh2DQqHAww8/LG1HpVJh7dq1GDp0KPr27Yvdu3fD3d0dL730EqZMmQKz2Yx7770XBoMBf/zxB5ycnBAVFVXl1+x6y5YtQ5s2bdChQwcsXrwYV69exahRo265voODA5577jm8/PLLcHZ2ho+PDxYuXIjCwkKMHj36jnP07dsXK1euRP/+/dGkSRPMnDnzjk4qDw0NRUhICAYOHIiFCxeibdu2yMrKwrZt2/D444/f8DEuUV3DYkVENzVq1CgcOnQIw4cPh42NDaZMmVLlo1XXrFixAnPnzsWLL76Ic+fOoXnz5ggODsZjjz12y8c0atQIx44dw6pVq3D58mV4eHhgwoQJGDduHADgiSeewKZNm9CnTx/k5uZixYoVGDFixE23FRYWhq1bt2LOnDl45513YGtri/bt22PMmDHSOt988w1eeuklDB06FAUFBWjdujUWLFhww7ZsbGwQExODIUOGSOXqrbfegouLC+bPn4/Tp0+jSZMm6N69O1577bU7er2ut2DBAixYsADJyclo3bo1vvvuOzRv3vy2jzGbzXjmmWeQl5eHoKAgbN++HU2bNr3jHNOnT0daWhoee+wxaLVavPXWW3d0xEqhUOCHH37A66+/jpEjR+LixYtwd3fH/fffDzc3tzvOR2QtFOKfH5oTEZHszpw5Az8/Pxw8eJAzzBPVIZx5nYiIiKiasFgRERERVRN+FEhERERUTXjEioiIiKiasFgRERERVRMWKyIiIqJqwmJFREREVE1YrIiIiIiqCYsVERERUTVhsSIiIiKqJixWRERERNXk/wHXMq9EjH3glgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -775,17 +835,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -814,10 +902,10 @@ "\n", "variationen = {}\n", "k = 2\n", - "while k < 6:\n", + "while k < 10:\n", " Anzahl_MG.update({\"Anzahl_der_Pufferstrecken_pro_Puffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Pufferstrecken pro Puffer\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "print(\"Hinweis: mind. 2 Pufferstrecken pro Puffer sollten existieren\")\n", @@ -826,6 +914,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Pufferstrecken pro Puffer\")\n", "plt.show()\n" ] }, @@ -839,20 +929,20 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 95, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 2 Vorpuffern': 104833.16666666667, 'Mit 3 Vorpuffern': 104833.16666666667, 'Mit 4 Vorpuffern': 104833.16666666667, 'Mit 5 Vorpuffern': 104833.16666666667}\n", + "{2: 108484.83666666667, 3: 108600.39666666667, 4: 108937.01666666666, 5: 109052.57666666666, 6: 109389.19666666666, 7: 109504.75666666667, 8: 109841.37666666666, 9: 109956.93666666666}\n", "Vorpuffer sollte > 1 sein\n" ] }, { "data": { - "image/png": "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95Wd43Jzc02S3X///SfMPfDAAybJcnNzvbGvv/7awuGwd96zZ0+bOXPmKa/x9ddf24MPPmh9+/a16OhoS0pKsl/84he2f//+kz7mBz/4QaN7MjN75ZVXzO/32969e0/95FrZn//8Z5NkRUVFtnv3bjt8+HCjY99HZ6OvzMzuu+8+6927t0VHR1vXrl3txz/+sW3evPmk9fRV23e2eqteXV2djRgxwvv6nwy91badrb667rrrTFLEcbK+MaOvWkqbeGcsKSlJ8+fP16FDh7yxw4cP67XXXlNycnJEbefOndWpU6dmrb9r1y7t2rVLTz/9tDZu3Ki5c+dq2bJlysvLO+lj8vLyTthTvcLCQv34xz9W165dm7UPSaqpqWn2Y07myy+/lCTdfPPNSkhIUCAQaHTs22jJfbrS2n0lSYMHD1ZhYaE2b96s9957T2amzMxM1dbWNlpPX7X9vpLOTm/Ve/bZZ5v069rorbbfW2err+69917t3r3bO/Lz809aS1+10D6dRsEmyM3NtZtvvtl+8IMf2KuvvuqN/+d//qf98Ic/tJtvvjnifwPXXXedPfTQQ96fdVzCb6qFCxea3++3mpqaRuf37t1rfr/ffv/730eMb9u2zXw+n7377rtmZjZ79mzr3bu3tW/f3vr27WuvvPJKRL0kmz17to0cOdI6dOhgU6ZMsVWrVpkke+edd2zQoEEWCAQsLS3NNmzY4D1uypQplpqaGrHWzJkzrWfPnt788c+9sbF6L7/8svXv398CgYD169fPCgoKvLny8nKTZPPnz7drr73WAoGAFRYWen83M2bMsISEBOvcubM98MADduTIkSZ/nV1x1Vfr1q0zSbZ169ZG5+mrtt1XZme3t9auXWs9evSw3bt3n/adMXqrbffW2eqrho9rCvqqZfqqzYSx3/zmNzZ8+HBvfPjw4TZz5sxTNuDXX39tF110kT355JO2e/du2717d5Ov+/LLL1vXrl1PWXPrrbfasGHDIsYmT55sSUlJVltba2+++aa1b9/eCgoKbMuWLfbMM89Yu3btbOXKlV69JOvWrZv9x3/8h3355Zf2l7/8xWvASy+91P77v//b1q9fbzfddJP16tXL+8s9XQMeOHDACgsLTZL33BsbMzN79dVXrXv37vbGG2/Ytm3b7I033rDOnTvb3Llzzez/G7BXr15eza5duyw3N9eCwaCNGTPGNm/ebG+//bZ16NDBXnrppSZ/nV1x0VcHDx60cePGWUpKilVXV5+0jr5qu31ldvZ6q6qqyi699FJbvHixmdlpw5gZvdWWe+ts9dV1111nXbt2tS5dutjAgQPtl7/8pVVVVZ1yb/TVmfdVmwlje/bssUAgYNu3b7ft27dbdHS07d2795QNaNb8z1+YHUv6ycnJ9qtf/eqUdcuWLTOfz2fbtm0zs2Of3ejZs6c9/vjjZmb2ox/9yO69996Ix9x666124403eueSbNy4cRE19Q04f/58b+zrr7+2mJgYW7BggZmdvgHNzIqKik74H1BjYxdffLG99tprEWP/+q//aunp6Wb2/w347LPPRtTk5uZaz5497ejRoxHP7/bbb7dz3dnsq4KCAuvYsaNJsn79+p30XbF69FXb7Suzs9db9913n+Xl5XnnTQlj9Fbb7a2z1VcvvviiLVu2zNavX2+vvvqq9ejRw37yk5+c8jH01Zn3VZv4zJgkXXjhhcrOztbcuXNVWFio7Ozsb/V96NMJh8PKzs7WgAEDNHXq1FPW/v3f/70uuugiFRYWSpJWrFihHTt2aPTo0ZKkzZs366qrrop4zFVXXaXNmzdHjA0ZMqTR9dPT070/d+7cWf369TvhsWeqqqpKX375pfLy8nT++ed7x1NPPeV9T/1U+xw4cKDatWvnnXfv3l179uxp0T22prPRV3feeafWrl2rP/zhD+rbt69uu+02HT58+KT19FXb7yupdXvrrbfe0sqVK/Xss88263H0Vtvvrdb+N+u+++5TVlaWBg0apDvvvFOvvPKKioqKTvjaNkRfnXlfnfftt3723X333XrwwQclSQUFBS2+/oEDBzRixAh16tRJRUVFat++/Snro6Ki9POf/1zz5s3T1KlTVVhYqGHDhql3797Num7Hjh2bvdeoqCjZcb/J6tt8kPDgwYOSpJdffllpaWkRcw0bS2p8n8d/jXw+n+rq6pq9D5dau69iY2MVGxurSy65RFdeeaXi4uJUVFSkUaNGNVpPX303+kpqvd5auXKlvvzyS11wwQUR47fccouuueYaffDBB40+jt76bvRWa/+b1VD913jr1q26+OKLG62hr868r9rMO2OSNGLECB05ckQ1NTXKyspq0mP8fv9J71xrKBwOKzMzU36/X2+99Zaio6ObtP7o0aO1c+dOvfnmmyoqKoq4A/PSSy/Vhx9+GFH/4YcfasCAAU1a+6OPPvL+vG/fPn3++ee69NJLJR3731FFRUVEE5aVlTVp3Ybi4+OVmJiobdu2qU+fPhFHSkpKs9dri1qzr45nxz4aoOrq6lPW0VffDa3VW7/85S+1fv16lZWVeYckzZw503t34mTorbbvbP6bVf931L1791PW0Vdnpk29M9auXTvvrcnjk+rJ9OrVS8XFxfrHf/xHBQKBRt/OrQ9if/vb3/Tqq68qHA4rHA5LOvYXfaprpaSk6O/+7u903333KRAI6Kc//ak39+ijj+q2227T5ZdfroyMDL399tt688039f777zdp708++aS6dOmi+Ph4/frXv1bXrl2Vk5Mj6dgP9Nu7d6/y8/P1D//wD1q2bJneffddBYPBJq3d0BNPPKF//ud/VmxsrEaMGKHq6mp98skn2rdvn8aPH9/s9dqa1uqrbdu2acGCBcrMzNSFF16o//3f/9X06dMVExOjG2+88ZTr01ffDa3VWwkJCUpISDhhPDk5+bQvHPRW29daffXll1/qtdde04033qguXbpo/fr1evjhh3Xttdfqhz/84SnXp6/OTJt6Z0ySgsFgs77ITz75pLZv366LL75YF154YaM1n376qUpLS7Vhwwb16dNH3bt3946dO3ee9hp5eXnat2+f7rjjjoh31HJycvTcc8/p6aef1sCBA/Xiiy+qsLBQ119/fZP2Pn36dD300EMaPHiwKioq9Pbbb8vv90s69j+N2bNnq6CgQKmpqfr444/1L//yL01a93j33HOPfve736mwsFCDBg3Sddddp7lz535v/pcptU5fRUdH649//KNuvPFG9enTR7fffrs6deqk1atXq1u3bqe9Bn313dAavXWm6K22rzX6yu/36/3331dmZqb69++vRx55RLfccovefvvtJl2Dvvr2fHb8N1vh3AcffKBhw4Zp3759J3wmBPi26Cu0FnoLreH71Fdt7p0xAACA7xLCGAAAgEN8mxIAAMAh3hkDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcOj/AMaDfbhS99szAAAAAElFTkSuQmCC", + "image/png": "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7t27AwB8fHygUChqHLt06RIA4LvvvkPv3r1haWkJHx8fvPHGG6iqqpL2rVAo8Omnn+If//gHrKys8M4779THS0hEf5csP/1MRNRApk2bJtq3by+MRqM09uWXXwqNRiN+/vlnoVQqxZtvvinS09PF6tWrhUajEatXr5bmenl5CVtbW/H++++LCxcuiAsXLojMzEwBQLi7u4uvv/5anDlzRkyePFnY2NiIGzduCCGEWL16tbCzs6uWZfv27eLuX7O3b98W+/fvFwDE8ePHxdWrV0VxcfE9Y1VVVeLw4cPC1tZWrFmzRvz2229i7969ol27dmLevHnSvgEIZ2dn8eWXX4rffvtNZGVlNdyLSkS1xmJFRM3K2bNnBQBx6NAhaeyBBx4QERERYvz48WLYsGHV5k+bNk107dpVuu/l5SXCw8OrzblbrBYsWCCNVVZWCnd3d/Hee+8JIf66WAkhxIkTJwQAkZmZ+adjQ4cOFe+++261fX311VfC1dVVug9ATJ069c9fDCJqdPwqkIialc6dO6N///748ssvAQAXLlzAkSNHEBUVhbNnz2LAgAHV5g8YMAAZGRkwGAzSWEBAQI37Dg4Olv7Z3NwcAQEBOHv2bL0/h9TUVLz55puwtraWbs8++yyuXr2K27dv/2VOIpKPudwBiIjqW1RUFF566SUsW7YMq1evRvv27fHggw/W+vFWVlZ1PqZSqYT4/y6yvt8TyouLi/HGG29g1KhR92yztLSU/vl+chJRw+InVkTU7IwePRpKpRIbN27EunXrMGnSJCgUCnTp0gW//vprtbm//vorOnXqBDMzs7/cb1xcnPTPVVVVSEpKQpcuXQAAbdq0QVFREUpKSqQ5KSkp95W/d+/eSE9PR4cOHe65KZX8a5vIlPETKyJqdqytrTFmzBjMmjULer0eEydOBAC88sor6Nu3L9566y2MGTMGsbGxWLp0KZYvX16r/S5btgwdO3ZEly5d8OGHH6KgoACTJk0CAAQGBqJVq1Z49dVX8fLLLyM+Pv6eqxNra86cOXj00Ufh6emJJ554AkqlEqmpqTh9+jTefvvt+9onETUO/qcPETVLUVFRKCgoQGhoKNzc3ADc+SRo69at2Lx5M7p164Y5c+bgzTfflIrXX1mwYAEWLFgAf39/HD16FN9//z1at24NAHB0dMT69euxa9cudO/eHZs2bcK8efPuK3toaCh27tyJvXv3om/fvggKCsKHH34ILy+v+9ofETUerrxORPQXLl26BG9vb5w4cQI9e/aUOw4RmTB+YkVERERUT1isiIiIiOoJvwokIiIiqif8xIqIiIionrBYEREREdUTFisiIiKiesJiRURERFRPWKyIiIiI6gmLFREREVE9YbEiIiIiqicsVkRERET15P8BUFwjH9qc4/gAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -1048,17 +1138,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -1087,10 +1205,10 @@ "\n", "variationen = {}\n", "k = 2\n", - "while k < 6:\n", + "while k < 10:\n", " Anzahl_MG.update({\"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Vorpuffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "print(\"Vorpuffer sollte > 1 sein\")\n", @@ -1099,6 +1217,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Vorpuffer\")\n", "plt.show()" ] }, @@ -1112,19 +1232,20 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Nachpuffern': 104833.16666666667, 'Mit 2 Nachpuffern': 104833.16666666667, 'Mit 3 Nachpuffern': 104833.16666666667, 'Mit 4 Nachpuffern': 104833.16666666667, 'Mit 5 Nachpuffern': 104833.16666666667}\n" + "{2: 108937.01666666666, 3: 109052.57666666666, 4: 109389.19666666666, 5: 109504.75666666667, 6: 109841.37666666666, 7: 109956.93666666666, 8: 110337.11666666667, 9: 110409.11666666667}\n", + "Vorpuffer sollte > 1 sein\n" ] }, { "data": { - "image/png": "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7+x3uutXa8mSJcbtdp/06t/QoUPN6NGjTfv27U1mZqbTfvx3gdu3bzc//OEPTceOHU2bNm3M4MGDzcqVK0PGOnLkiJk0aZLp0qWLcbvd5sILLzS//e1vQz4W77//vhk0aJDxer0mMTHRfP75587+06dPN/Hx8Wb+/PmmS5cuxuv1mptvvjnkqmDdj02tup//x3+8hg4d2mBb7XwnTpxoYmNjTWRkpBkyZIhZs2aNM27t59Of//xnZ/369u1r2rdvb5555hkzevRo4/F4TOvWrU18fHyzfg3W2rBhg5Fktm/ffsIa1tC+NczPzzedO3c2e/fubfQVNdbQnjVs6PxOhTVs3BpedNFFJjw83BQVFZlu3bo5a3jeeeeZuLg4s2DBgiZ93K26oiZJY8aMUVZWlvP6f//3fzV69OiT7vPmm2+qS5cumjlzpvOdQXMLDw/Xs88+q7lz5+rf//53gzVHjhzRoEGDlJ2drc2bN+uee+7RnXfeqY8++sipmTJlip577jlNnTpVn332mf74xz8qJiYmZJwnnnhCjz76qAoKCtSnTx+NHDlSR48edfoPHTqkZ555Rq+99prWrVunsrIy/fSnP230ubzyyiuaOXOmunTpor179+rjjz9usE2SMjIy9Nprr2n+/PnasmWLHnnkEd1xxx3661//GjJmXl6e+vfvr8cff1x///vfJUmLFi3SZ599psmTJ2vAgAHasGGDVq5cWW8+p7N+gUBAPp/vlFf/fD6fnnjiCc2cOVPl5eUN1hw8eFA33HCDVq1apfz8fA0fPlwjRoxQcXGxUzNq1CgtXrxYc+bM0datW7VgwQKdd955IeM88cQTevHFF/XJJ5+oVatWGjNmTEj/9u3btWTJEr399tt69913lZ+frwceeKDR5/zmm2/q7rvvVmJiovbu3as333yzwTZJevDBB5WTk6PXX39dGzdu1M0336zhw4dr27ZtzniHDh3S888/ryuvvFLDhg3T6NGjVV5erhdffFGDBw/WoEGDlJycrA0bNigQCJxwTl9nDcvLy5WVlaUePXooLi7upLWsoT1reOjQId12223KzMyU3+9v9HmzhvasoST94Q9/UIcOHXTxxRdrypQpOnTo0CnPmzU89Rr+9re/1ZYtW9SxY0dJctawdn7333+/CgsLGz1P666o7du3z3g8HrNz506zc+dOExERYb744ouTXlEzpun3VjT1ilrtFaorrrjCjBkzxhjTuHvUUlNTzcSJE40xxgSDQePxeMxvfvObBmtrr6jVfldhjDFbtmwxkpx7eLKysowk8+GHHzo1W7duNZJMbm5uvfnWqntFzZiG7yk4vu3IkSMmMjIy5IqeMcaMHTvWjBw50hjz34/jddddF7J+CQkJZvDgwSHr1759ezN58mRjzOmvnzHGfPHFF6Zr167m8ccfP2ld7bGOHDliunXrZmbOnHnCj8HxBgwYYObOnWuMMaawsNBIqvedYa263wXWys7ONpLM4cOHjTHHvgsMDw83//73v52av/zlLyYsLMzs3bs3ZL51Hf/5f/x6NtT2r3/9y4SHh5vdu3eH1A0bNsxMmTLFGPPfz6eCgoKQr0FJJi0tzfka3Ldvn3G73eaKK65wxjmdNczMzDRt2rRxrhyc7Gpa3WOxhse09Brec889ZuzYsc5rNfKKGmv4Xy29hgsWLDDvvvuu2bhxo/n9739vOnfubH70ox+ddB/WsHFrWFe3bt3MHXfc4byuqakxHTt2NK+++mqD596Qpt2EdAZccMEFSk1N1cKFC2WMUWpqqjp06NDS03I8//zz+t73vqdHH320Xl91dbWeffZZLVmyRLt371ZlZaUqKioUGRkpSdq6dasqKio0bNiwkx7jkksucf7dqVMnSdK+ffvUr18/SVKrVq30ne98x6np16+fzj//fG3dulVDhgw57XOstX37dh06dEjf//73Q9orKyt12WWXhbR16NBBlZWVzvrl5eU5/65dv8jISO3bt69Z5hYMBpWamqr+/ftrxowZjdrH4/Fo5syZeuihh3T//ffX6z948KBmzJih7Oxs7d27V0ePHtXhw4ed7wILCgoUHh6uoUOHnvQ4J1q/2ntLunbtqs6dOzs1iYmJqqmpUWFhYZOuTpzKpk2bVF1drT59+oS0V1RUqH379s5rt9sdMucLLrhAkZGRztWu1NRUXXDBBYqIiNCRI0eaZW633367vv/972vv3r164YUXdMstt2jdunWKiIg46X6s4TEtuYZvvfWWVq9erfz8/K+1P2t4TEt/Hd5zzz3OvwcOHKhOnTpp2LBh2rFjhy688MKT7ssaHnOqNWzoPFwul/x+f5PeC60LatKxH38++OCDkqTMzMwWnk2oa665RikpKZoyZYruuuuukL7Zs2frlVde0csvv6yBAweqTZs2Gj9+vCorKyVJXq+3Ucdo3bq18+/amxibclNiWFiYzHF/Gezr3Ph58OBBSVJ2dnbIF4Oken+XrVWrVs55jhkzRitWrND+/fv11FNPhdQ1x82VBw4c0PDhw9W2bVstW7Ys5ON1KnfccYdeeOEFPf300+revXtI36OPPqqVK1fqhRdeUK9eveT1evWTn/zkrF6/8PBw5eXlKTw8PKSv7o8YvF5vvZtl27Rpo7y8PG3bti3ka/D4eX1dUVFRioqKUu/evXXFFVcoOjpay5Yt08iRI0+5L2t4TEut4erVq7Vjxw6df/75Ie033XSTrr76an3wwQenHIM1PKalvw7rSkhIkHTsG/RTBTWJNax1qjWUVO89yuVyNe08mjjfM2L48OGqrKxUVVWVUlJSGrWP2+0+5VNjzeW5557T22+/rZycnJD2devW6cYbb9Qdd9yh+Ph49ezZU//4xz+c/t69e8vr9WrVqlWndfyjR4/qk08+cV4XFhaqrKxMF110kaRj34kdf2/C1/mdaP3795fH41FxcbF69eoVsp3sfqLhw4erpqZGNTU1zb5+wWBQycnJcrvdeuutt055BeZ4YWFhysjI0KuvvqqdO3eG9K1bt0533XWXfvSjH2ngwIHy+/0hNQMHDlRNTU29+/Oaqri4WHv27HFef/jhhwoLC1Pfvn0l1V+/6upqbd68ucnHueyyy1RdXa19+/bVW79Tfbfp9XpVXV19Rr4GjTEyxqiioqJR9axhy67hz3/+c23cuFEFBQXOJkkvvfRSyP3FJ8Ma2vd1WLuOtVeuToU1bNwaNgcrg1p4eLi2bt2qzz77rF56PZHu3btr7dq12r17t7788ssT1pWUlKigoEDbt2+XdOySZkFBgb766qtGz2/gwIG6/fbbNWfOnJD23r17a+XKlVq/fr22bt2qe++9V6WlpU5/RESEJk+erEmTJum1117Tjh079OGHH+p3v/tdo48tHUvnDz30kHJzc5WXl6e77rpLV1xxhfNjz+9973v65JNP9Nprr2nbtm2aPn361/rkbNu2rR599FE98sgjWrRokXbs2KFPP/1Uc+fO1aJFi064X3h4uL7zne/ojjvuaNb1qw1p5eXl+t3vfqdgMKiSkhKVlJQ06T+m1NRUJSQkaMGCBSHtvXv31ptvvqmCggJt2LBBt912W8h3Pd27d1d6errGjBmj5cuXq6ioSB988IGWLFnS6GNLxz4P0tPTtWHDBv3tb3/T//zP/+iWW25xvuC/973vKTs7W9nZ2fr88891//33f61fuNinTx/dfvvtGjVqlN58800VFRXpo48+UkZGhrKzs0+6r8vl0s9//vNm/xr85z//qYyMDOXl5am4uFjr16/XzTffLK/XqxtuuKHR58Yattwa+v1+XXzxxSGbdOzHUD169Gj0ubGGLbeGO3bs0C9+8Qvl5eVp586deuuttzRq1Chdc801Df7o7kRYw1OvYXOwMqhJx54s8fl8ja6fOXOmdu7cqQsvvFAXXHDBCevmz5+vyy67THfffbekYz/KvOyyy/TWW281aX4zZ86sd+nyySef1OWXX66UlBRde+218vv9SktLC6mZOnWqJk6cqGnTpumiiy7Srbfe2uT7tiIjIzV58mTddttt+u53v6vzzjtPb7zxhtOfkpKiqVOnatKkSfrOd76jAwcOaNSoUU06Rq1f/OIXmjp1qjIyMnTRRRdp+PDhys7OPuV/yK1atar349GTacz6ffrpp8rNzdWmTZvUq1cvderUydl27drVpPN6/vnn693n8ctf/lLR0dG68sorNWLECKWkpOjyyy8PqXn11Vf1k5/8RA888ID69eunu++++4RPPp1Ir1699OMf/1g33HCDkpOTdckll2jevHlO/5gxY5Senq5Ro0Zp6NCh6tmzp6677romHaNWVlaWRo0apYkTJ6pv375KS0vTxx9/XO93MTUkIiKi2b8GIyIi9Le//U033HCDevXqpVtvvVVt27bV+vXrnSekGos1bJk1bE6sYcusodvt1vvvv6/k5GT169dPEydO1E033aS333670cepxRqeeg1Pl8t8Ez/sxjdm4cKFGj9+fMv/SQt8LTNmzNDy5cvPyJ8JwzeDNTz7sYZnv2/TGlp7RQ0AAODbjqAGAABgKX70CQAAYCmuqAEAAFiKoAYAAGApghoAAIClCGoAAACWIqgBAABYiqAGAABgKYIaAACApQhqAAAAliKoAQAAWOr/AWivfCVNwfnMAAAAAElFTkSuQmCC", + "image/png": "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", "text/plain": [ "
" ] @@ -1320,17 +1441,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -1340,9 +1489,9 @@ " \"RSM\":14,\n", " \"Flyer\":4,\n", " \"Flyer_Puffer\":2,\n", - " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine\":0,\n", - " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\":0,\n", - " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\":0,\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine\":1,\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\":4,\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\":2,\n", " \"Neuenhauser-Putzmaschine\":0,\n", " \"Neuenhauser-Putzmaschine_Vorpuffer\":0,\n", " \"Neuenhauser-Putzmaschine_Nachpuffer\":0,\n", @@ -1358,18 +1507,21 @@ "\n", "\n", "variationen = {}\n", - "k = 1\n", - "while k < 6:\n", + "k = 2\n", + "while k < 10:\n", " Anzahl_MG.update({\"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Nachpuffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", + "print(\"Vorpuffer sollte > 1 sein\")\n", "lists = sorted(variationen.items()) # sorted by key, return a list of tuples\n", "\n", "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Nachpuffer\")\n", "plt.show()" ] }, @@ -1383,19 +1535,19 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 97, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Vorpuffern': 104833.16666666667, 'Mit 2 Vorpuffern': 104833.16666666667, 'Mit 3 Vorpuffern': 104833.16666666667, 'Mit 4 Vorpuffern': 104833.16666666667, 'Mit 5 Vorpuffern': 104833.16666666667}\n" + "{2: 111554.98, 3: 111670.54, 4: 111945.72, 5: 112017.72, 6: 112292.9, 7: 112408.46, 8: 112640.08, 9: 112755.64}\n" ] }, { "data": { - "image/png": "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BQUFevTRRzV//nyVlpaqS5cuys7O1sGDB72aP/zhD7rppps0btw4rV+/Xm+++aZuuOEGb/+RI0eUk5OjQ4cOac2aNXr66ae1YMECTZs2zaupqKhQTk6ORowYobKyMk2YMEG33nqrXnvtNa9m8eLFmjhxoqZPn653331X6enpys7O1scff9za0wYAAGgb9iVIsqVLl3qP6+rqLCEhwebMmeON7d271/x+vy1cuNDMzGpra+2cc86x3/zmN83Ou3z5couMjLTKykpv7PHHH7dAIGA1NTVmZjZ58mQbNGhQ2PPGjh1r2dnZ3uNhw4bZ+PHjvcdHjhyxpKQkmzVrVovOLxgMmiQLBoMtqgcAAO61t9fvU3rNWEVFhSorK5WVleWNxcbGKiMjQyUlJZKkd999Vx999JEiIyN1wQUXKDExUVdccYU2bdrkPaekpESDBw9WfHy8N5adna1QKKTNmzd7NQ2PU19Tf5xDhw5p7dq1YTWRkZHKysryao5VU1OjUCgUtgEAALSlUxrGKisrJSksRNU/rt+3bds2SdKMGTN0//336+WXX1a3bt10+eWX6/PPP/fmaWqOhsdoriYUCunAgQP69NNPdeTIkeOu5VizZs1SbGystyUnJ7f6YwAAANAap/1uyrq6OknSz372M11zzTUaMmSIioqKFBERoeeff/50LyfMlClTFAwGvW3nzp1O1wMAAL76TmkYS0hIkCRVVVWFjVdVVXn7EhMTJUkDBw709vv9fvXu3Vs7duzw5mlqjobHaK4mEAgoOjpa3bt3V4cOHY67lmP5/X4FAoGwDQAAoC2d0jCWlpamhIQErVy50hsLhUIqLS1VZmamJGnIkCHy+/0qLy/3ampra7V9+3alpqZKkjIzM7Vx48awux5XrFihQCDghbjMzMyw49TX1B/H5/NpyJAhYTV1dXVauXKlVwMAAOBax9Y+Yf/+/dq6dav3uKKiQmVlZYqLi1NKSoomTJighx56SOeee67S0tI0depUJSUleX9HLBAI6M4779T06dOVnJys1NRUzZkzR5J07bXXSpJGjRqlgQMH6qabblJBQYEqKyt1//33a/z48fL7/ZKkO++8U7/+9a81efJk3XLLLVq1apWWLFmiV155xVvbxIkTlZeXp6FDh2rYsGF65JFHVF1drXHjxp30BwwAAOCUau3tl6tXrzZJjba8vDwz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", + "image/png": "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", "text/plain": [ "
" ] @@ -1591,19 +1743,47 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", - " return erg.get_sum_of_costs(hw)\n", + " return erg.summary_costs(hw).get(\"GESAMT\")\n", "\n", "\n", "Anzahl_MG = {\n", @@ -1614,9 +1794,9 @@ " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine\":0,\n", " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\":0,\n", " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\":0,\n", - " \"Neuenhauser-Putzmaschine\":0,\n", - " \"Neuenhauser-Putzmaschine_Vorpuffer\":0,\n", - " \"Neuenhauser-Putzmaschine_Nachpuffer\":0,\n", + " \"Neuenhauser-Putzmaschine\":1,\n", + " \"Neuenhauser-Putzmaschine_Vorpuffer\":2,\n", + " \"Neuenhauser-Putzmaschine_Nachpuffer\":2,\n", " \"Cason-Putzmaschine\":0,\n", " \"Cason-Putzmaschine_Vorpuffer\":0,\n", " \"Cason-Putzmaschine_Nachpuffer\":0,\n", @@ -1629,11 +1809,11 @@ "\n", "\n", "variationen = {}\n", - "k = 1\n", - "while k < 6:\n", + "k = 2\n", + "while k < 10:\n", " Anzahl_MG.update({\"Neuenhauser-Putzmaschine_Vorpuffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Vorpuffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "lists = sorted(variationen.items()) # sorted by key, return a list of tuples\n", @@ -1641,6 +1821,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Vorpuffer\")\n", "plt.show()" ] }, @@ -1654,19 +1836,19 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 98, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Nachpuffern': 104833.16666666667, 'Mit 2 Nachpuffern': 104833.16666666667, 'Mit 3 Nachpuffern': 104833.16666666667, 'Mit 4 Nachpuffern': 104833.16666666667, 'Mit 5 Nachpuffern': 104833.16666666667}\n" + "{2: 111554.97666666665, 3: 111734.09666666666, 4: 111985.71666666667, 5: 112164.83666666667, 6: 112416.45666666667, 7: 112552.01666666666, 8: 112847.19666666666, 9: 112982.75666666667}\n" ] }, { "data": { - "image/png": "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7+x3uutXa8mSJcbtdp/06t/QoUPN6NGjTfv27U1mZqbTfvx3gdu3bzc//OEPTceOHU2bNm3M4MGDzcqVK0PGOnLkiJk0aZLp0qWLcbvd5sILLzS//e1vQz4W77//vhk0aJDxer0mMTHRfP75587+06dPN/Hx8Wb+/PmmS5cuxuv1mptvvjnkqmDdj02tup//x3+8hg4d2mBb7XwnTpxoYmNjTWRkpBkyZIhZs2aNM27t59Of//xnZ/369u1r2rdvb5555hkzevRo4/F4TOvWrU18fHyzfg3W2rBhg5Fktm/ffsIa1tC+NczPzzedO3c2e/fubfQVNdbQnjVs6PxOhTVs3BpedNFFJjw83BQVFZlu3bo5a3jeeeeZuLg4s2DBgiZ93K26oiZJY8aMUVZWlvP6f//3fzV69OiT7vPmm2+qS5cumjlzpvOdQXMLDw/Xs88+q7lz5+rf//53gzVHjhzRoEGDlJ2drc2bN+uee+7RnXfeqY8++sipmTJlip577jlNnTpVn332mf74xz8qJiYmZJwnnnhCjz76qAoKCtSnTx+NHDlSR48edfoPHTqkZ555Rq+99prWrVunsrIy/fSnP230ubzyyiuaOXOmunTpor179+rjjz9usE2SMjIy9Nprr2n+/PnasmWLHnnkEd1xxx3661//GjJmXl6e+vfvr8cff1x///vfJUmLFi3SZ599psmTJ2vAgAHasGGDVq5cWW8+p7N+gUBAPp/vlFf/fD6fnnjiCc2cOVPl5eUN1hw8eFA33HCDVq1apfz8fA0fPlwjRoxQcXGxUzNq1CgtXrxYc+bM0datW7VgwQKdd955IeM88cQTevHFF/XJJ5+oVatWGjNmTEj/9u3btWTJEr399tt69913lZ+frwceeKDR5/zmm2/q7rvvVmJiovbu3as333yzwTZJevDBB5WTk6PXX39dGzdu1M0336zhw4dr27ZtzniHDh3S888/ryuvvFLDhg3T6NGjVV5erhdffFGDBw/WoEGDlJycrA0bNigQCJxwTl9nDcvLy5WVlaUePXooLi7upLWsoT1reOjQId12223KzMyU3+9v9HmzhvasoST94Q9/UIcOHXTxxRdrypQpOnTo0CnPmzU89Rr+9re/1ZYtW9SxY0dJctawdn7333+/CgsLGz1P666o7du3z3g8HrNz506zc+dOExERYb744ouTXlEzpun3VjT1ilrtFaorrrjCjBkzxhjTuHvUUlNTzcSJE40xxgSDQePxeMxvfvObBmtrr6jVfldhjDFbtmwxkpx7eLKysowk8+GHHzo1W7duNZJMbm5uvfnWqntFzZiG7yk4vu3IkSMmMjIy5IqeMcaMHTvWjBw50hjz34/jddddF7J+CQkJZvDgwSHr1759ezN58mRjzOmvnzHGfPHFF6Zr167m8ccfP2ld7bGOHDliunXrZmbOnHnCj8HxBgwYYObOnWuMMaawsNBIqvedYa263wXWys7ONpLM4cOHjTHHvgsMDw83//73v52av/zlLyYsLMzs3bs3ZL51Hf/5f/x6NtT2r3/9y4SHh5vdu3eH1A0bNsxMmTLFGPPfz6eCgoKQr0FJJi0tzfka3Ldvn3G73eaKK65wxjmdNczMzDRt2rRxrhyc7Gpa3WOxhse09Brec889ZuzYsc5rNfKKGmv4Xy29hgsWLDDvvvuu2bhxo/n9739vOnfubH70ox+ddB/WsHFrWFe3bt3MHXfc4byuqakxHTt2NK+++mqD596Qpt2EdAZccMEFSk1N1cKFC2WMUWpqqjp06NDS03I8//zz+t73vqdHH320Xl91dbWeffZZLVmyRLt371ZlZaUqKioUGRkpSdq6dasqKio0bNiwkx7jkksucf7dqVMnSdK+ffvUr18/SVKrVq30ne98x6np16+fzj//fG3dulVDhgw57XOstX37dh06dEjf//73Q9orKyt12WWXhbR16NBBlZWVzvrl5eU5/65dv8jISO3bt69Z5hYMBpWamqr+/ftrxowZjdrH4/Fo5syZeuihh3T//ffX6z948KBmzJih7Oxs7d27V0ePHtXhw4ed7wILCgoUHh6uoUOHnvQ4J1q/2ntLunbtqs6dOzs1iYmJqqmpUWFhYZOuTpzKpk2bVF1drT59+oS0V1RUqH379s5rt9sdMucLLrhAkZGRztWu1NRUXXDBBYqIiNCRI0eaZW633367vv/972vv3r164YUXdMstt2jdunWKiIg46X6s4TEtuYZvvfWWVq9erfz8/K+1P2t4TEt/Hd5zzz3OvwcOHKhOnTpp2LBh2rFjhy688MKT7ssaHnOqNWzoPFwul/x+f5PeC60LatKxH38++OCDkqTMzMwWnk2oa665RikpKZoyZYruuuuukL7Zs2frlVde0csvv6yBAweqTZs2Gj9+vCorKyVJXq+3Ucdo3bq18+/amxibclNiWFiYzHF/Gezr3Ph58OBBSVJ2dnbIF4Oken+XrVWrVs55jhkzRitWrND+/fv11FNPhdQ1x82VBw4c0PDhw9W2bVstW7Ys5ON1KnfccYdeeOEFPf300+revXtI36OPPqqVK1fqhRdeUK9eveT1evWTn/zkrF6/8PBw5eXlKTw8PKSv7o8YvF5vvZtl27Rpo7y8PG3bti3ka/D4eX1dUVFRioqKUu/evXXFFVcoOjpay5Yt08iRI0+5L2t4TEut4erVq7Vjxw6df/75Ie033XSTrr76an3wwQenHIM1PKalvw7rSkhIkHTsG/RTBTWJNax1qjWUVO89yuVyNe08mjjfM2L48OGqrKxUVVWVUlJSGrWP2+0+5VNjzeW5557T22+/rZycnJD2devW6cYbb9Qdd9yh+Ph49ezZU//4xz+c/t69e8vr9WrVqlWndfyjR4/qk08+cV4XFhaqrKxMF110kaRj34kdf2/C1/mdaP3795fH41FxcbF69eoVsp3sfqLhw4erpqZGNTU1zb5+wWBQycnJcrvdeuutt055BeZ4YWFhysjI0KuvvqqdO3eG9K1bt0533XWXfvSjH2ngwIHy+/0hNQMHDlRNTU29+/Oaqri4WHv27HFef/jhhwoLC1Pfvn0l1V+/6upqbd68ucnHueyyy1RdXa19+/bVW79Tfbfp9XpVXV19Rr4GjTEyxqiioqJR9axhy67hz3/+c23cuFEFBQXOJkkvvfRSyP3FJ8Ma2vd1WLuOtVeuToU1bNwaNgcrg1p4eLi2bt2qzz77rF56PZHu3btr7dq12r17t7788ssT1pWUlKigoEDbt2+XdOySZkFBgb766qtGz2/gwIG6/fbbNWfOnJD23r17a+XKlVq/fr22bt2qe++9V6WlpU5/RESEJk+erEmTJum1117Tjh079OGHH+p3v/tdo48tHUvnDz30kHJzc5WXl6e77rpLV1xxhfNjz+9973v65JNP9Nprr2nbtm2aPn361/rkbNu2rR599FE98sgjWrRokXbs2KFPP/1Uc+fO1aJFi064X3h4uL7zne/ojjvuaNb1qw1p5eXl+t3vfqdgMKiSkhKVlJQ06T+m1NRUJSQkaMGCBSHtvXv31ptvvqmCggJt2LBBt912W8h3Pd27d1d6errGjBmj5cuXq6ioSB988IGWLFnS6GNLxz4P0tPTtWHDBv3tb3/T//zP/+iWW25xvuC/973vKTs7W9nZ2fr88891//33f61fuNinTx/dfvvtGjVqlN58800VFRXpo48+UkZGhrKzs0+6r8vl0s9//vNm/xr85z//qYyMDOXl5am4uFjr16/XzTffLK/XqxtuuKHR58Yattwa+v1+XXzxxSGbdOzHUD169Gj0ubGGLbeGO3bs0C9+8Qvl5eVp586deuuttzRq1Chdc801Df7o7kRYw1OvYXOwMqhJx54s8fl8ja6fOXOmdu7cqQsvvFAXXHDBCevmz5+vyy67THfffbekYz/KvOyyy/TWW281aX4zZ86sd+nyySef1OWXX66UlBRde+218vv9SktLC6mZOnWqJk6cqGnTpumiiy7Srbfe2uT7tiIjIzV58mTddttt+u53v6vzzjtPb7zxhtOfkpKiqVOnatKkSfrOd76jAwcOaNSoUU06Rq1f/OIXmjp1qjIyMnTRRRdp+PDhys7OPuV/yK1atar349GTacz6ffrpp8rNzdWmTZvUq1cvderUydl27drVpPN6/vnn693n8ctf/lLR0dG68sorNWLECKWkpOjyyy8PqXn11Vf1k5/8RA888ID69eunu++++4RPPp1Ir1699OMf/1g33HCDkpOTdckll2jevHlO/5gxY5Senq5Ro0Zp6NCh6tmzp6677romHaNWVlaWRo0apYkTJ6pv375KS0vTxx9/XO93MTUkIiKi2b8GIyIi9Le//U033HCDevXqpVtvvVVt27bV+vXrnSekGos1bJk1bE6sYcusodvt1vvvv6/k5GT169dPEydO1E033aS333670cepxRqeeg1Pl8t8Ez/sxjdm4cKFGj9+fMv/SQt8LTNmzNDy5cvPyJ8JwzeDNTz7sYZnv2/TGlp7RQ0AAODbjqAGAABgKX70CQAAYCmuqAEAAFiKoAYAAGApghoAAIClCGoAAACWIqgBAABYiqAGAABgKYIaAACApQhqAAAAliKoAQAAWOr/AWivfCVNwfnMAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAGwCAYAAABrUCsdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABevElEQVR4nO3deXwU9eH/8dfm2E2AJNyEIwkEkEsOOYIRRFFMwEjBWzkMh6W0iFJUDrWGShVR2opC8cIEpFpAgVpQEAKISpQzQLiPQIAYICbs5oBcO78/+LHfpoAmsMnkeD8fj33gznxm5j0ryb6ZnZ2xGIZhICIiIiI3zMPsACIiIiJVhYqViIiIiJuoWImIiIi4iYqViIiIiJuoWImIiIi4iYqViIiIiJuoWImIiIi4iZfZAaoTp9NJamoqfn5+WCwWs+OIiIhICRiGQVZWFk2aNMHD45ePSalYlaPU1FSCgoLMjiEiIiLX4eTJkzRr1uwXx6hYlSM/Pz/g0v8Yf39/k9OIiIhISTgcDoKCglzv479ExaocXf74z9/fX8VKRESkkinJaTw6eV1ERETETVSsRERERNxExUpERETETVSsRERERNxExUpERETETVSsRERERNzE1GK1adMmBg4cSJMmTbBYLKxYsaLY/GXLlhEREUG9evWwWCwkJiZesY7f/e53tGzZEl9fXxo0aMCgQYM4cOBAsTEpKSlERUVRo0YNGjZsyPPPP09hYWGxMRs3bqRr167YbDZatWpFXFzcFduaO3cuzZs3x8fHh549e7Jly5YbfQlERESkCjG1WOXk5NC5c2fmzp17zfm9e/dm5syZ11xHt27diI2NZf/+/axZswbDMIiIiKCoqAiAoqIioqKiyM/PZ/PmzSxYsIC4uDhefvll1zqSk5OJioqib9++JCYmMmHCBJ588knWrFnjGrN48WImTpxITEwMO3bsoHPnzkRGRnL27Fk3vRoiIiJS6RkVBGAsX778qvOSk5MNwNi5c+evrmfXrl0GYBw5csQwDMP48ssvDQ8PDyMtLc01Zt68eYa/v7+Rl5dnGIZhTJo0yejQoUOx9Tz66KNGZGSk63lYWJgxbtw41/OioiKjSZMmxowZM0q6i4bdbjcAw263l3gZERERMVdp3r+r1DlWOTk5xMbG0qJFC9c9+RISEujYsSONGjVyjYuMjMThcLB3717XmH79+hVbV2RkJAkJCQDk5+ezffv2YmM8PDzo16+fa8zV5OXl4XA4ij1ERESk6qoSxeof//gHtWrVolatWnz11VesXbsWq9UKQFpaWrFSBbiep6Wl/eIYh8PBhQsXSE9Pp6io6KpjLq/jambMmEFAQIDroRswi4iIVG1VolgNHTqUnTt38s0333DTTTfxyCOPcPHiRbNjMXXqVOx2u+tx8uRJsyOJiIhIGaoSN2G+fESodevW3HrrrdSpU4fly5fz+OOPExgYeMW3986cOQNAYGCg68/L0/57jL+/P76+vnh6euLp6XnVMZfXcTU2mw2bzeaOXRQREZFfkZyegwVoXr+maRmqxBGr/2YYBoZhkJeXB0B4eDh79uwp9u29tWvX4u/vT/v27V1j4uPji61n7dq1hIeHA2C1WunWrVuxMU6nk/j4eNcYERERMcfRc9lMXJzI3X/dyGtf7jc1i6lHrLKzszly5IjreXJyMomJidStW5fg4GAyMjJISUkhNTUVgIMHDwKXjjAFBgZy7NgxFi9eTEREBA0aNODUqVO8/vrr+Pr6cu+99wIQERFB+/btGT58OG+88QZpaWm89NJLjBs3znU0aezYscyZM4dJkyYxatQo1q9fz5IlS1i1apUr28SJE4mOjqZ79+6EhYXx1ltvkZOTw8iRI8vr5RIREZH/cuRsFu+sP8J/dqXiNC5NK3Ia5Bc6sXqZdOyozL+j+As2bNhgAFc8oqOjDcMwjNjY2KvOj4mJMQzDME6fPm0MGDDAaNiwoeHt7W00a9bMGDJkiHHgwIFi2zl+/LgxYMAAw9fX16hfv77x7LPPGgUFBVdk6dKli2G1Wo3Q0FAjNjb2irzvvPOOERwcbFitViMsLMz44YcfSrW/utyCiIjIjTuU5jCe+mSH0XzKSiNk8qXH6Lgtxq6TmWWyvdK8f1sMwzDMqXTVj8PhICAgALvdjr+/v9lxREREKpWDaVm8HX+YL5N+4nJ7uad9I565uzU3Nw0os+2W5v27Spy8LiIiIlXX/p8cvB1/mK+S/u8SR/07BDL+7lZ0aFJ2hep6qFiJiIhIhbQ31c7b8YdZs/f/vpV/b8dAxt/VmnaNK+YnPypWIiIiUqHsOWVndvxh1u2/VKgsFojq2Jjxd7WmTaCfyel+mYqViIiIVAi7Tp7n7fjDxB+4dIkkiwUGdmrC+Lta0bpRxS5Ul6lYiYiIiKl2pmQyO/4wGw+eA8DDAoO6NGVc31a0aljL5HSlo2IlIiIipth+4lKh2nToUqHy9LAwqEsTnurbitAGlatQXaZiJSIiIuVq6/EMZq87zHdH0oFLheqBWy4doTLzdjTuoGIlIiIi5eLHYz8zO/4wm4/+DICXh4UHuzZjXN9WBNerYXI691CxEhERkTJjGAYJx35m9rrD/JicAYC3p4WHugXxhztbElS3ahSqy1SsRERExO0Mw2Dz0UuFasvx/ytUj3QP4vd3tqRZnapVqC5TsRIRERG3MQyDbw+n83b8YbadyATA6unBY2FBjL2jJU1q+5qcsGypWImIiMgNMwyDbw6dY3b8YXamnAfA6uXBkLBgxt7RksAAH3MDlhMVKxEREbluhmGw8eClQpV48jwANi8PhvYM4Xd3hNLIv3oUqstUrERERKTUDMMgfv9Z3l5/mN2n7AD4eHswrGcIY+4IpaFf9SpUl6lYiYiISIkZhsHafWd4e/1hkk47APD19mR4eAi/vT2UBn42kxOaS8VKREREfpXTafD1vjRmxx9h/0+XClUNqydPhDfnt7e3oF6t6l2oLlOxEhERkWtyOg1W703j7fjDHEjLAqCm1ZPo25rz5O2h1K1pNTlhxaJiJSIiIlcochp8uecn3ll/mENnsgHws3kxoldzRvduQe0aKlRXo2IlIiIiLkVOg5W7U3ln/RGOnP3/hcrHi5G9WjC6VwsCanibnLBiU7ESERERCoucrNx96QjV0XM5APj7eDG6dygjejUnwFeFqiRUrERERKqxwiIn/05MZc6GIySnXypUAb7ePNm7BdG9muPvo0JVGipWIiIi1VBBkZMVO08zd8MRjv+cC0DtGt789vZQnggPwU+F6rqoWImIiFQjBUVOlu04xdwNR0nJuFSo6ta08tvbQxkeHkItm6rBjdCrJyIiUg3kFzr5fMcp5m44wqnMCwDUq2llTJ9Qht0aQk0VKrfQqygiIlKF5RUW8dn2U/xjw1FOn79UqOrXsjH2jlCG9AymhlVVwJ30aoqIiFRBeYVFLNl6knkbj5JqvwhAAz8bY+9oyZCwYHytniYnrJpUrERERKqQiwVFLP7/hSrNcalQNfK38fs7WvJYWDA+3ipUZUnFSkREpAq4WFDEJz+m8O43RzmblQdA4wAffn9nSx7pHqRCVU5UrERERCq5C/lFPPHRj2w9nglAkwAf/tC3FQ93b4bNS4WqPKlYiYiIVGL5hU5+/8/tbD2eib+PF1MGtOOhbs2wenmYHa1aUrESERGppIqcBs8u3cXGg+fw9fYkdmQPuoXUNTtWtaY6KyIiUgkZhkHMF0n8Z1cq3p4W3h3eTaWqAlCxEhERqYT+tvYQi35IwWKBvz/ahTtuamB2JEHFSkREpNL58NtjvLP+CACvDu7IfZ2amJxILlOxEhERqUSWbjvJX1btB+D5yDYM6RlsciL5bypWIiIilcSavWlM/nw3AGP6hPKHO1uanEj+l6nFatOmTQwcOJAmTZpgsVhYsWJFsfnLli0jIiKCevXqYbFYSExMLDY/IyOD8ePH06ZNG3x9fQkODubpp5/GbrcXG7d161buvvtuateuTZ06dYiMjGTXrl3FxuzevZvbb78dHx8fgoKCeOONN67Iu3TpUtq2bYuPjw8dO3bkyy+/dMvrICIi8ms2H01n/Cc7cRrwSPdmTB3QFovFYnYs+R+mFqucnBw6d+7M3Llzrzm/d+/ezJw586rzU1NTSU1NZdasWSQlJREXF8fq1asZPXq0a0x2djb9+/cnODiYH3/8ke+++w4/Pz8iIyMpKCgAwOFwEBERQUhICNu3b+fNN99k2rRpvP/++671bN68mccff5zRo0ezc+dOBg8ezODBg0lKSnLjKyIiInKl3afO89sF28gvctK/QyCv3d9RpaqCshiGYZgdAsBisbB8+XIGDx58xbzjx4/TokULdu7cSZcuXX5xPUuXLmXYsGHk5OTg5eXFtm3b6NGjBykpKQQFBQGwZ88eOnXqxOHDh2nVqhXz5s3jxRdfJC0tDavVCsCUKVNYsWIFBw4cAODRRx8lJyeHlStXurZ166230qVLF959990S7aPD4SAgIAC73Y6/v3+JlhERkertyNksHn43gczcAnq1qsdHI3roaurlrDTv31XuHKvLO+3ldenap23atKFevXrMnz+f/Px8Lly4wPz582nXrh3NmzcHICEhgT59+rhKFUBkZCQHDx4kMzPTNaZfv37FthUZGUlCQsI1s+Tl5eFwOIo9RERESupUZi7D528hM7eAzs0CeG94d5WqCq5KFav09HSmT5/OmDFjXNP8/PzYuHEjixYtwtfXl1q1arF69Wq++uorV/lKS0ujUaNGxdZ1+XlaWtovjrk8/2pmzJhBQECA63H5iJmIiMivSc/OY/j8Lfxkv0jrhrWIGxlGLZtumFLRVZli5XA4iIqKon379kybNs01/cKFC4wePZpevXrxww8/8P3333PzzTcTFRXFhQsXyjTT1KlTsdvtrsfJkyfLdHsiIlI1OC4WEP3RFpLTc2ha25ePR/ekTk3rry8opqsS1TcrK4v+/fvj5+fH8uXL8fb2ds375JNPOH78OAkJCXh4eLim1alTh3//+9889thjBAYGcubMmWLrvPw8MDDQ9efVxlyefzU2mw2bzeaWfRQRkerhYkERTy7Yxt5UB/VrWVn0ZE8CA3zMjiUlVOmPWF3+Rp/VauWLL77Ax6f4X77c3Fw8PDyKfXvi8nOn0wlAeHg4mzZtcn1LEGDt2rW0adOGOnXquMbEx8cXW/fatWsJDw8vq10TEZFqpqDIybh/7mBLcgZ+Ni8WjAqjRf2aZseSUjC1WGVnZ5OYmOi6PlVycjKJiYmkpKQAl65TlZiYyL59+wA4ePAgiYmJrvOaLpeqnJwc5s+fj8PhIC0tjbS0NIqKigC45557yMzMZNy4cezfv5+9e/cycuRIvLy86Nu3LwBDhgzBarUyevRo9u7dy+LFi5k9ezYTJ050ZX3mmWdYvXo1f/3rXzlw4ADTpk1j27ZtPPXUU+X1comISBXmdBpM+mw38QfOYvPyYP6IHnRoEmB2LCktw0QbNmwwgCse0dHRhmEYRmxs7FXnx8TE/OLygJGcnOzaztdff2306tXLCAgIMOrUqWPcddddRkJCQrEsu3btMnr37m3YbDajadOmxuuvv35F3iVLlhg33XSTYbVajQ4dOhirVq0q1f7a7XYDMOx2e6mWExGRqs3pdBox/04yQiavNFpOXWXE708zO5L8l9K8f1eY61hVB7qOlYiIXM1b6w7x1rrDWCzw1qNdGNSlqdmR5L9U6+tYiYiIVCZx3yfz1rrDAPz5Nx1Uqio5FSsRERGTLN95imn/uXQe8cR7buKJ8ObmBpIbpmIlIiJignX7zvDc0t0AjOzVnPF3tTI5kbiDipWIiEg5+/HYz4z7ZAdFToMHujblT1HtdVPlKkLFSkREpBwlnbbz5IJt5BU66deuEW882AkPD5WqqkLFSkREpJwcO5dN9EdbyMorpGeLuswZcgtennorrkr0f1NERKQcpJ6/wPD5W/g5J5+bm/rzYXR3fLw9zY4lbqZiJSIiUsYycvIZPv9HTp+/QGiDmiwYGYafj/evLyiVjoqViIhIGcrOK2RE7BaOnsuhSYAPH4/uSb1aNrNjSRlRsRIRESkjFwuK+O2Cbew+ZaduTSsfP9mTprV9zY4lZUjFSkREpAwUFjl5+tOdJBz7mVo2LxaMDKNlg1pmx5IypmIlIiLiZk6nwZRle/h63xmsXh588ER3OjYLMDuWlAMVKxERETcyDINXv9zPZ9tP4elhYe6QroS3rGd2LCknKlYiIiJuNHfDEeZ/lwzAGw924p72jUxOJOVJxUpERMRNPv7hBLO+PgTAy/e158FuzUxOJOVNxUpERMQNvtiVysv/TgLg6btaMap3C5MTiRlUrERERG7QhoNnmbg4EcOAJ8JD+OM9N5kdSUyiYiUiInIDth3P4PeLtlPoNBjUpQnTBnbAYtFNlasrFSsREZHrtC/Vwci4rVwscNK3TQNmPdwZDw+VqupMxUpEROQ6HE/P4YmPtpB1sZAezevwj6Hd8PbU22p1p78BIiIipZRmv8iw+T+Snp1Hu8b+fBjdA1+rp9mxpAJQsRIRESmF87n5PPHRj5zKvEDzejVYOCqMAF9vs2NJBaFiJSIiUkI5eYWMiN3KoTPZBPr78PHonjTws5kdSyoQFSsREZESyCss4ncfbyfx5Hlq1/Dm49FhBNWtYXYsqWBUrERERH5FkdNgwr8S+e5IOjWsnsSNDKN1Iz+zY0kFpGIlIiLyCwzD4IVle/gqKQ2rpwcfPNGdLkG1zY4lFZSKlYiIyC94ffUBFm87iYcF3n68C71a1Tc7klRgKlYiIiLXMG/jUd775hgArz/Qif43NzY5kVR0KlYiIiJX8emWFGauPgDAC/e25ZEeQSYnkspAxUpEROR/rNr9Ey8s3wPAH+5syZg+LU1OJJWFipWIiMh/2XToHBMW78QwYEjPYJ6PbGN2JKlEVKxERET+vx0pmfzu4+0UFBlEdWrM9EE3Y7HopspScipWIiIiwMG0LEbGbuVCQRF9bmrA3x/pgqeHSpWUjoqViIhUeyk/5zJ8/o/YLxTQNbg27w7ritVLb5FSevpbIyIi1dpZx0WGzf+Rs1l5tA30I3ZEGDWsXmbHkkpKxUpERKote24BT3y0hZSMXILr1mDhqDACanibHUsqMVOL1aZNmxg4cCBNmjTBYrGwYsWKYvOXLVtGREQE9erVw2KxkJiYWGx+RkYG48ePp02bNvj6+hIcHMzTTz+N3W6/YltxcXF06tQJHx8fGjZsyLhx44rN3717N7fffjs+Pj4EBQXxxhtvXLGOpUuX0rZtW3x8fOjYsSNffvnlDb8GIiJijtz8QkYt2MqBtCwa+tlYNLonDf19zI4llZypxSonJ4fOnTszd+7ca87v3bs3M2fOvOr81NRUUlNTmTVrFklJScTFxbF69WpGjx5dbNzf/vY3XnzxRaZMmcLevXtZt24dkZGRrvkOh4OIiAhCQkLYvn07b775JtOmTeP99993jdm8eTOPP/44o0ePZufOnQwePJjBgweTlJTkhldCRETKU36hk98v2sH2E5n4+3ixcHQYwfVqmB1LqgCLYRiG2SEALBYLy5cvZ/DgwVfMO378OC1atGDnzp106dLlF9ezdOlShg0bRk5ODl5eXmRmZtK0aVP+85//cPfdd191mXnz5vHiiy+SlpaG1WoFYMqUKaxYsYIDBy5ddffRRx8lJyeHlStXupa79dZb6dKlC++++26J9tHhcBAQEIDdbsff379Ey4iIiHsVOQ2e+ddOVu7+CV9vTxY92ZNuIXXMjiUVWGnev6vcOVaXd9rL69KJh2vXrsXpdHL69GnatWtHs2bNeOSRRzh58qRrmYSEBPr06eMqVQCRkZEcPHiQzMxM15h+/foV21ZkZCQJCQnXzJKXl4fD4Sj2EBER8xiGwcv/TmLl7p/w9rTw7vBuKlXiVlWqWKWnpzN9+nTGjBnjmnbs2DGcTievvfYab731Fp999hkZGRncc8895OfnA5CWlkajRo2Krevy87S0tF8cc3n+1cyYMYOAgADXIyhI95kSETHTrK8P8s8fU7BY4O+PduGOmxqYHUmqmCpTrBwOB1FRUbRv355p06a5pjudTgoKCnj77beJjIzk1ltv5dNPP+Xw4cNs2LChTDNNnToVu93uevz3UTIRESlfH357jLkbjgLw6uCO3NepicmJpCqqEhfqyMrKon///vj5+bF8+XK8vf/vq7KNGzcGoH379q5pDRo0oH79+qSkpAAQGBjImTNniq3z8vPAwMBfHHN5/tXYbDZsNtsN7JmIiLjDkm0n+cuq/QBM6t+GIT2DTU4kVVWlP2J1+Rt9VquVL774Ah+f4l+V7dWrFwAHDx50TcvIyCA9PZ2QkBAAwsPD2bRpEwUFBa4xa9eupU2bNtSpU8c1Jj4+vti6165dS3h4eJnsl4iIuMfqpDSmfL4bgDF9Qvn9HS1NTiRVmanFKjs7m8TERNf1qZKTk0lMTHQdScrIyCAxMZF9+/YBl8pRYmKi67ymy6UqJyeH+fPn43A4SEtLIy0tjaKiIgBuuukmBg0axDPPPMPmzZtJSkoiOjqatm3b0rdvXwCGDBmC1Wpl9OjR7N27l8WLFzN79mwmTpzoyvrMM8+wevVq/vrXv3LgwAGmTZvGtm3beOqpp8rr5RIRkVL6/kg6T3+6E6cBj3YPYuqAtrqpspQtw0QbNmwwgCse0dHRhmEYRmxs7FXnx8TE/OLygJGcnOzajt1uN0aNGmXUrl3bqFu3rnH//fcbKSkpxbLs2rXL6N27t2Gz2YymTZsar7/++hV5lyxZYtx0002G1Wo1OnToYKxatapU+2u32w3AsNvtpVpORERKLzEl02j/p6+MkMkrjd8t3GYUFBaZHUkqqdK8f1eY61hVB7qOlYhI+ThyNouH300gM7eAXq3q8dGIHti8PM2OJZVUtb6OlYiIVG+nMnMZ9uEWMnML6BxUm/eGd1epknKjYiUiIlXGuaw8hs/fQprjIq0b1iJuRA9q2arEF+ClklCxEhGRKsFxsYDoj7aQnJ5D09q+fDy6J3VqWn99QRE3UrESEZFKb2+qneiPtrDvJwf1a1lZ9GRPAgN8fn1BETfT8VEREam0kk7bmR1/mLX7Ll3A2c/mxYJRYbSoX9PkZFJdqViJiEils/vUeWavO0z8gbMAWCwwsFMTJvRrTWiDWiank+pMxUpERCqNxJPnmb3uEBsOngPAwwK/6dyEp+5qTauGKlRiPhUrERGp8LafyGR2/GE2Hfq/QjX4lqY81beVjlBJhaJiJSIiFda24xnMjj/Mt4fTAfD0sHD//y9UzXUelVRAKlYiIlLh/HjsZ2bHH2bz0Z8B8PKw8GDXZvyhb0tC6qlQScWlYiUiIhVGwtGfmR1/iB+OZQCXCtXD3ZvxhztbEVS3hsnpRH6dipWIiJjKMAwSjv7MW/GH2ZJ8qVB5e1p4pHsQv7+zJc3qqFBJ5aFiJSIipjAMg++OpPN2/GG2Hs8EwOrpwaM9LhWqJrV9TU4oUnoqViIiUq4Mw2DT4XRmrzvEjpTzAFi9PBgSFszv7gilcYAKlVReKlYiIlIuDMNg48FzzI4/TOLJ8wDYvDwY0jOYsXe0pJG/bkEjlZ+KlYiIlCnDMFh/4Cxvxx9m1yk7AD7eHgztGcLv+oTSUIVKqhAVKxERKROGYbB23xneXn+YpNMOAHy9PRl2azBj+rSkgZ/N5IQi7qdiJSIibuV0Gny97wxvxx9m30+XClUNqyfDw0P47e2h1K+lQiVVl4qViIi4hdNpsHpvGm/HH+ZAWhYANa2ePHFbc357eyh1a1pNTihS9lSsRETkhjidBl8m/cQ78Uc4eOZSoapl82LEbc0Z3bsFdVSopBpRsRIRketS5DRYuTuVOeuPcPhsNgB+Ni9G9mrOqN4tqF1DhUqqHxUrEREplSKnwX92pfLO+sMcPZcDgL+PF6N6t2BkrxYE+HqbnFDEPCpWIiJSIoVFTr7YdekI1bH0S4UqwNeb0b1bMKJXc/x9VKhEVKxEROQXFRY5WZGYypz1hzn+cy4AtWt489vbQ3kiPAQ/FSoRFxUrERG5qoIiJ8t3nGbOhiOkZFwqVHVqePPbPqE8Ed6cWja9hYj8L/1UiIhIMfmFTpbtOMXcjUc4mXEBgHo1rfy2TyjDbw2hpgqVyDXpp0NERIBLhWrp9pP8Y8NRTp+/VKjq17Lyuz4tGXprMDWsessQ+TX6KRERqebyCotYsu0U8zYcIdV+EYAGfjZ+1yeUoT1D8LV6mpxQpPJQsRIRqaYuFhSxeOtJ5m08SprjUqFq6Gfj93e25PGwYHy8VahESkvFSkSkmrlYUMSnW1J495ujnHHkARDo78Pv72zJoz2CVKhEboCKlYhINXEhv4h//niC9zYd41zWpULVJMCH3/dtxSPdm2HzUqESuVEqViIiVVxufiH//CGF9zYdIz37UqFqWtuXP/RtyUPdVKhE3EnFSkSkisrJK+TjH07wwaZj/JyTD0CzOr481bcVD3RthtXLw+SEIlWPipWISBWTnVfIwoTjfPhtMhn/v1AF163BU31bcX/Xpnh7qlCJlBUVKxGRKiLrYgELE07wwbfHOJ9bAEBIvUuFavAtKlQi5UHFSkSkCvhyz09MXbYH+4VLhSq0fk2euqsVv+ncBC8VKpFyY+pP26ZNmxg4cCBNmjTBYrGwYsWKYvOXLVtGREQE9erVw2KxkJiYWGx+RkYG48ePp02bNvj6+hIcHMzTTz+N3W6/6vZ+/vlnmjVrhsVi4fz588Xmbdy4ka5du2Kz2WjVqhVxcXFXLD937lyaN2+Oj48PPXv2ZMuWLTew9yIi7rHohxOM+2QH9gsFhDaoyVuPdmHtxDt4oGszlSqRcmbqT1xOTg6dO3dm7ty515zfu3dvZs6cedX5qamppKamMmvWLJKSkoiLi2P16tWMHj36quNHjx5Np06drpienJxMVFQUffv2JTExkQkTJvDkk0+yZs0a15jFixczceJEYmJi2LFjB507dyYyMpKzZ89ex56LiNw4wzB4J/4wL61IwjBgSM9g1v7xDgbf0hRPD4vZ8USqJYthGIbZIQAsFgvLly9n8ODBV8w7fvw4LVq0YOfOnXTp0uUX17N06VKGDRtGTk4OXl7/90nnvHnzWLx4MS+//DJ33303mZmZ1K5dG4DJkyezatUqkpKSXOMfe+wxzp8/z+rVqwHo2bMnPXr0YM6cOQA4nU6CgoIYP348U6ZMKdE+OhwOAgICsNvt+Pv7l2gZEZGrcToNXlm5j7jNxwF4+q5W/PGem7BYVKhE3K00799V7hjx5Z3+71K1b98+XnnlFRYuXIiHx5W7nJCQQL9+/YpNi4yMJCEhAYD8/Hy2b99ebIyHhwf9+vVzjbmavLw8HA5HsYeIyI0qKHIycUmiq1TFDGzPxIg2KlUiFUCVKlbp6elMnz6dMWPGuKbl5eXx+OOP8+abbxIcHHzV5dLS0mjUqFGxaY0aNcLhcHDhwgXS09MpKiq66pi0tLRr5pkxYwYBAQGuR1BQ0A3snYjIpaunj1m4jRWJqXh5WHjr0S6M7NXC7Fgi8v9VmWLlcDiIioqiffv2TJs2zTV96tSptGvXjmHDhpV7pqlTp2K3212PkydPlnsGEak67LkFDJv/IxsOnsPH24MPnujO4Fuamh1LRP5LlShWWVlZ9O/fHz8/P5YvX463t7dr3vr161m6dCleXl54eXlx9913A1C/fn1iYmIACAwM5MyZM8XWeebMGfz9/fH19aV+/fp4enpedUxgYOA1c9lsNvz9/Ys9RESuxxnHRR55L4HtJzLx9/Fi0eie9G3b0OxYIvI/Kv11rBwOB5GRkdhsNr744gt8fHyKzf/888+5cOGC6/nWrVsZNWoU3377LS1btgQgPDycL7/8sthya9euJTw8HACr1Uq3bt2Ij493nVzvdDqJj4/nqaeeKsO9ExGB4+k5DJv/I6cyL9DQz8bC0WG0DdQ/1EQqohIVq+s56bokR2eys7M5cuSI63lycjKJiYnUrVuX4OBgMjIySElJITU1FYCDBw8Cl44wBQYG4nA4iIiIIDc3l0WLFhU7QbxBgwZ4enq6ytNl6enpALRr1871rcCxY8cyZ84cJk2axKhRo1i/fj1Llixh1apVruUmTpxIdHQ03bt3JywsjLfeeoucnBxGjhxZ6tdGRKSkkk7bGRG7hfTsfELq1WDR6J4E1a1hdiwRuRajBCwWi+Hh4VHih6enp3H06NFfXe+GDRsM4IpHdHS0YRiGERsbe9X5MTExv7g8YCQnJ//iNjMzM6+Y3qVLF8NqtRqhoaFGbGzsFcu+8847RnBwsGG1Wo2wsDDjhx9+KMnL52K32w3AsNvtpVpORKqnhKPpxs0vrzZCJq80Bry1yTjruGh2JJFqqTTv3yW6jpWHhweff/45devWLUlR49577yUpKYnQ0NDSN70qTNexEpGS+npvGk99upP8QidhLeryYXR3/H28f31BEXG70rx/l+ijwJCQEPr06UO9evVKFCA0NLTYCeQiIlJyS7adZMrnu3Ea0K9dI+YMuQUfb0+zY4lICZSoWCUnJ5dqpf99BXMRESm59745yoyvDgDwULdmvP5AR93vT6QSqfTfChQRqQoMw+D11Qd475tjAIzpE8rUAW11NXWRSqbE/wxavXo1jz322FXnnTp1irCwML7//nu3BRMRqS4Ki5xM/ny3q1RNGdCWF+5tp1IlUgmVuFi98sorDBkyBIDXX3+dixcvuuY1a9aMp556qsQ3IxYRkUsuFhTxh3/uYMm2U3hY4I0HOzH2jpa/vqCIVEglLlY7d+6kY8eOALz22mukpqYya9YsV8Hq06cP27ZtK5uUIiJVUNbFAkbEbuHrfWewenkwb1g3Humhe4qKVGYlLlb/e8NhwzB45ZVXXBfv3LdvH/Xr13d/QhGRKig9O4/H3v+BH45lUMvmxYKRYUR2uPYtskSkcihxserfvz+vvPIKBQUFAFgsFgzDwGKxkJSUxDPPPOP6qFBERK7tZEYuD83bzN5UB/VqWvnXmFsJb1myy9mISMVW4mI1bdo0kpOTadGiBRcvXmT69Onk5eVx77330qVLF3r06MH06dPLMquISKV3MC2Lh97dzPGfc2la25elY8O5uWmA2bFExE1KXKwCAwP58ccfmTRpEgD79+/HMAwiIiL49ttv+eSTT7BarWUWVESkstt+IoNH3kvgjCOPmxrV4vPf30Zog1pmxxIRNyrRLW3+V9euXVm6dCkPP/wwn332mW5dU0K6pY1I9bXh4Fl+v2g7FwucdA2uzUcjelC7hv4xKlIZuP2WNv9rx44dxf4UEZFr+3fiaZ5dsotCp8EdNzVg3rCu1LDq+swiVVGJPgp84IEHcDgcJV7p0KFDOXv27HWHEhGpKuK+T+aZfyVS6DT4TecmfPBEd5UqkSqsRB8Fenp6cujQIRo0aPCrKzQMg6CgIBITE/UR4f/QR4Ei1YdhGPx93WHejj8MQHR4CDEDO+Dhoaupi1Q2bv8o0DAMbrrpJreEExGp6oqcBjFfJLHohxQA/tjvJp6+u5VuUSNSDZSoWG3YsKHUK27atGmplxERqezyC51MXJLIyt0/YbHAK4NuZvitIWbHEpFyUqJidccdd5R1DhGRSi8nr5Cxi7bz7eF0vD0t/O2RLgzs3MTsWCJSjnQGpYiIG2Tm5DMybiuJJ8/j6+3Je8O70eemXz8vVUSqFhUrEZEb9JP9AsPnb+HI2Wxq1/AmdkQPbgmuY3YsETGBipWIyA04ei6bJ+Zv4fT5CwT6+/Dx6DBaN/IzO5aImETFSkTkOu0+dZ4RsVvJyMkntH5NFo4Oo1mdGmbHEhETlfhegZdduHCB3Nxc1/MTJ07w1ltv8fXXX7s1mIhIRbb5SDqPv/8DGTn5dGwawNKx4SpVIlL6YjVo0CAWLlwIwPnz5+nZsyd//etfGTRoEPPmzXN7QBGRiuarPT8xInYrOflF3NayHp+OuZV6tWxmxxKRCqDUxWrHjh3cfvvtAHz22Wc0atSIEydOsHDhQt5++223BxQRqUg+3ZLCuE92kF/kpH+HQGJH9qCWTWdViMglpf5tkJubi5/fpRMzv/76ax544AE8PDy49dZbOXHihNsDiohUBIZh8I+NR3lzzUEAHg8L4i+DO+KpW9SIyH8p9RGrVq1asWLFCk6ePMmaNWuIiIgA4OzZs7r/nYhUSU6nwV9W7XeVqnF9W/La/SpVInKlUherl19+meeee47mzZvTs2dPwsPDgUtHr2655Ra3BxQRMVNBkZPnPtvF/O+SAXgpqh3PR7bVff9E5KoshmEYpV0oLS2Nn376ic6dO+PhcambbdmyBX9/f9q2bev2kFVFae6OLSLmu1hQxLh/7iD+wFk8PSy88WAnHuzWzOxYIlLOSvP+fV1nXAYGBhIYGFhsWlhY2PWsSkSkQrJfKODJBVvZejwTm5cHc4d0pV/7RmbHEpEKrkTF6oEHHiAuLg5/f38eeOCBXxy7bNkytwQTETHL2ayLPDF/CwfSsvDz8WJ+dA/CWtQ1O5aIVAIlKlYBAQGu8wkCAgLKNJCIiJlO/JzD8PlbSMnIpYGfjQUjw2jfRB/di0jJXNc5VnJ9dI6VSMW2L9XBEx9tIT07j+C6Nfh4dBgh9WqaHUtETFaa9+9SfysQoLCwkHXr1vHee++RlZUFQGpqKtnZ2dezOhER021JzuDR9xNIz86jbaAfn40NV6kSkVIr9cnrJ06coH///qSkpJCXl8c999yDn58fM2fOJC8vj3fffbcscoqIlJn4/Wf4wz93kFfopEfzOnwY3YMAX2+zY4lIJVTqI1bPPPMM3bt3JzMzE19fX9f0+++/n/j4eLeGExEpa59vP8WYj7eTV+jk7rYNWTiqp0qViFy3Uh+x+vbbb9m8eTNWq7XY9ObNm3P69Gm3BRMRKWsffnuMv6zaD8ADXZsy88FOeHte1xkSIiLAdRQrp9NJUVHRFdNPnTrluoegiEhFZhgGb645yD82HgXgyd4teOHednjoFjUicoNK/U+ziIgI3nrrLddzi8VCdnY2MTEx3HvvvaVa16ZNmxg4cCBNmjTBYrGwYsWKYvOXLVtGREQE9erVw2KxkJiYWGx+RkYG48ePp02bNvj6+hIcHMzTTz+N3W53jdm1axePP/44QUFB+Pr60q5dO2bPnn1Flo0bN9K1a1dsNhutWrUiLi7uijFz586lefPm+Pj40LNnT7Zs2VKq/RUR8xU5DV5YvsdVqib1b8OLUSpVIuIepS5Ws2bN4vvvv6d9+/ZcvHiRIUOGuD4GnDlzZqnWlZOTQ+fOnZk7d+415/fu3fua601NTSU1NZVZs2aRlJREXFwcq1evZvTo0a4x27dvp2HDhixatIi9e/fy4osvMnXqVObMmeMak5ycTFRUFH379iUxMZEJEybw5JNPsmbNGteYxYsXM3HiRGJiYtixYwedO3cmMjKSs2fPlmqfRcQ8eYVFPPXJDj7dchIPC8x4oCN/uLOV7vsnIm5zXdexKiwsZPHixezatYvs7Gy6du3K0KFDi53MXuogFgvLly9n8ODBV8w7fvw4LVq0YOfOnXTp0uUX17N06VKGDRtGTk4OXl5X/6Rz3Lhx7N+/n/Xr1wMwefJkVq1aRVJSkmvMY489xvnz51m9ejUAPXv2pEePHq5C5nQ6CQoKYvz48UyZMuWq28nLyyMvL8/13OFwEBQUpOtYiZggO6+QMQu3sfnoz1g9PZj9WBcGdGxsdiwRqQTK7F6BBQUFtG3blpUrVzJ06FCGDh16Q0HLwuWdvlapujymbt3/uz1FQkIC/fr1KzYmMjKSCRMmAJCfn8/27duZOnWqa76Hhwf9+vUjISHhmtuZMWMGf/7zn69zT0TEXX7OzmNE7Fb2nLZT0+rJB09057ZW9c2OJSJVUKk+CvT29ubixYtlleWGpaenM336dMaMGXPNMZs3b2bx4sXFxqSlpdGoUfGbqzZq1AiHw8GFCxdIT0+nqKjoqmPS0tKuua2pU6dit9tdj5MnT17nnonI9Tp9/gIPv5vAntN26ta08umYW1WqRKTMlPocq3HjxjFz5kwKCwvLIs91czgcREVF0b59e6ZNm3bVMUlJSQwaNIiYmBgiIiLKPJPNZsPf37/YQ0TKz+EzWTz4j80cS8+haW1flo4Np1Oz2mbHEpEqrNSXW9i6dSvx8fF8/fXXdOzYkZo1i9/yYdmyZW4LV1JZWVn0798fPz8/li9fjrf3lRf327dvH3fffTdjxozhpZdeKjYvMDCQM2fOFJt25swZ/P398fX1xdPTE09Pz6uOCQwMdP8OicgN25mSyci4rZzPLaBVw1p8PDqMxgHXfx6oiEhJlLpY1a5dmwcffLAsslwXh8NBZGQkNpuNL774Ah8fnyvG7N27l7vuuovo6GheffXVK+aHh4fz5ZdfFpu2du1awsPDAbBarXTr1o34+HjXyfVOp5P4+Hieeuop9++UiNyQTYfOMXbRdnLzi+gSVJvYET2oU9P66wuKiNygUher2NhYt208OzubI0eOuJ4nJyeTmJhI3bp1CQ4OJiMjg5SUFFJTUwE4ePAgcOkIU2BgIA6Hg4iICHJzc1m0aBEOhwOHwwFAgwYN8PT0JCkpibvuuovIyEgmTpzoOifK09OTBg0aADB27FjmzJnDpEmTGDVqFOvXr2fJkiWsWrXKlW3ixIlER0fTvXt3wsLCeOutt8jJyWHkyJFuez1E5Mb9Z1cqE5ckUlBkcHvr+rw7rBs1baX+VScicn2MEioqKjJef/1147bbbjO6d+9uTJ482cjNzS3p4le1YcMGA7jiER0dbRiGYcTGxl51fkxMzC8uDxjJycmGYRhGTEzMVeeHhIRckaVLly6G1Wo1QkNDjdjY2CvyvvPOO0ZwcLBhtVqNsLAw44cffijV/trtdgMw7HZ7KV8pESmJhZuTjeZTVhohk1ca4/653cgrKDI7kohUAaV5/y7xdaymT5/OtGnT6NevH76+vqxZs4bHH3+cjz76yG0lr6orzXUwRKTkCoqczF53mDkbLh0BH35rCNN+0wFPXU1dRNygNO/fJS5WrVu35rnnnuN3v/sdAOvWrSMqKooLFy7g4aGblpaEipWI++1NtTPps93sTb10GsAzd7dmQr/Wupq6iLhNmVwgNCUlpdi9APv164fFYiE1NZVmzZpdf1oRkeuQV1jE3PVH+MfGoxQ6DQJ8vfnzbzow+JamZkcTkWqsxMWqsLDwim/ceXt7U1BQ4PZQIiK/ZGdKJpM+283hs9kADLg5kD8P6kBDvyu/FSwiUp5KXKwMw2DEiBHYbDbXtIsXLzJ27Nhi17Iy4zpWIlI9XMgv4u/rDvHht8dwGlC/lpVXBt3Mvbrnn4hUECUuVtHR0VdMGzZsmFvDiIhcy4/Hfmby57s5/nMuAPff0pSX72uv61OJSIVS4mLlzutXiYiUVHZeITO/OsDHP5wAINDfh9ceuJm72jb6lSVFRMqfrponIhXWN4fO8cKyPZw+fwGAx8OCmXpvW/x9rrxtlYhIRaBiJSIVjj23gL+s2sfS7acACKrry8wHOnFbq/omJxMR+WUqViJSoXy9N40XVyRxLisPiwVG3Nac5yPbUMOqX1ciUvHpN5WIVAg/Z+cR88VeVu7+CYDQBjV586FOdAupa3IyEZGSU7ESEVMZhsEXu1KZ9sVeMnML8PSw8Ls+oTx9d2t8vD3NjiciUioqViJimjOOi7y4PIl1+88A0DbQj1kPd+bmpgEmJxMRuT4qViJS7gzDYOm2U0xftY+si4V4e1oYf1drxt7REquX7j0qIpWXipWIlKuTGbm8sHwP3x5OB6BzswDeeKgzbQL9TE4mInLjVKxEpFw4nQYf/3CCmasPkJtfhM3Lg2cjbmJUrxZ4eeoolYhUDSpWIlLmjp3LZvLnu9l6PBOAsOZ1mflQJ1rUr/krS4qIVC4qViJSZgqLnMz/Lpm/rT1EXqGTmlZPpgxoy9CeIXh4WMyOJyLidipWIlImDqQ5mPTZbnafsgNwe+v6zHigI83q1DA5mYhI2VGxEhG3yi90Mm/jUeZsOExBkYG/jxcv3deeh7s1w2LRUSoRqdpUrETEbXafOs+kz3ZzIC0LgHvaN+Ivg2+mkb+PyclERMqHipWI3LCLBUW8te4w7286itOAujWt/Pk3HbivU2MdpRKRakXFSkRuyLbjGUz6bDfH0nMA+E3nJsQMbE+9WjaTk4mIlD8VKxG5Ljl5hby55iALEo5jGNDQz8ar93fknvaNzI4mImIaFSsRKbXvDqczZdluTmVeAOCR7s14Mao9Ab7eJicTETGXipWIlJjjYgGvrdrPv7aeBKBpbV9mPNCRPjc1MDmZiEjFoGIlIiUSv/8MLyzfwxlHHgDR4SFM6t+Wmjb9GhERuUy/EUXkF2Xk5PPKf/ayIjEVgBb1azLzwU6EtahrcjIRkYpHxUpErsowDL7ck8bL/07i55x8PCzw29tD+eM9N+Hj7Wl2PBGRCknFSkSucNZxkT/9O4k1e88AcFOjWrz5UGc6B9U2N5iISAWnYiUiLoZh8PmO07zyn704Lhbi5WHhD31bMa5vS2xeOkolIvJrVKxEBIDT5y/wwrI9fHPoHAAdmwbwxkOdaNfY3+RkIiKVh4qVSDXndBp8siWFGV/uJye/CKuXB3/sdxO/vb0FXp4eZscTEalUVKxEqrHj6TlM/nw3PyZnANAtpA5vPNSJlg1qmZxMRKRyUrESqYaKnAax3ycz6+uDXCxw4uvtyaT+bXgivDmeHrppsojI9VKxEqlmDp/J4vnPdpN48jwAvVrVY8b9nQiuV8PcYCIiVYCKlUg1UVDk5L1vjvJ2/BHyi5z42bx4Maodj/YIwmLRUSoREXcw9czUTZs2MXDgQJo0aYLFYmHFihXF5i9btoyIiAjq1auHxWIhMTGx2PyMjAzGjx9PmzZt8PX1JTg4mKeffhq73V5sXEpKClFRUdSoUYOGDRvy/PPPU1hYWGzMxo0b6dq1KzabjVatWhEXF3dF3rlz59K8eXN8fHzo2bMnW7ZsccfLIFLmkk7bGTTne2Z9fYj8Iid3t23I1xP78FhYsEqViIgbmVqscnJy6Ny5M3Pnzr3m/N69ezNz5syrzk9NTSU1NZVZs2aRlJREXFwcq1evZvTo0a4xRUVFREVFkZ+fz+bNm1mwYAFxcXG8/PLLrjHJyclERUXRt29fEhMTmTBhAk8++SRr1qxxjVm8eDETJ04kJiaGHTt20LlzZyIjIzl79qybXg0R98srLGLWmoMMmvs9+35yULuGN2892oUPo7vTOMDX7HgiIlWOxTAMw+wQABaLheXLlzN48OAr5h0/fpwWLVqwc+dOunTp8ovrWbp0KcOGDSMnJwcvLy+++uor7rvvPlJTU2nUqBEA7777LpMnT+bcuXNYrVYmT57MqlWrSEpKcq3nscce4/z586xevRqAnj170qNHD+bMmQOA0+kkKCiI8ePHM2XKlKtmycvLIy8vz/Xc4XAQFBSE3W7H31/XBpKytSMlk0mf7ebI2WwAojo2ZtpvOtDAz2ZyMhGRysXhcBAQEFCi9+8qd5Gayzvt5XXp9LGEhAQ6duzoKlUAkZGROBwO9u7d6xrTr1+/YuuJjIwkISEBgPz8fLZv315sjIeHB/369XONuZoZM2YQEBDgegQFBbltP0Wu5UJ+EdNX7uPBeZs5cjab+rVsvDusK3OHdlWpEhEpY1WqWKWnpzN9+nTGjBnjmpaWllasVAGu52lpab84xuFwcOHCBdLT0ykqKrrqmMvruJqpU6dit9tdj5MnT97Q/on8ms1H04l8axPzv0vGMODBrs1YN7EP/W9ubHY0EZFqocp8K9DhcBAVFUX79u2ZNm2a2XEAsNls2Gw6QiBl70J+EX9ZtY9//pgCQJMAH159oCN92zQ0OZmISPVSJYpVVlYW/fv3x8/Pj+XLl+Pt7e2aFxgYeMW3986cOeOad/nPy9P+e4y/vz++vr54enri6el51TGX1yFiFntuAaMXbGXbiUwAhvYMZsqAtvj5eP/KkiIi4m6V/qNAh8NBREQEVquVL774Ah8fn2Lzw8PD2bNnT7Fv761duxZ/f3/at2/vGhMfH19subVr1xIeHg6A1WqlW7duxcY4nU7i4+NdY0TMcNZxkUffT2DbiUz8fbxYNLonr97fUaVKRMQkph6xys7O5siRI67nycnJJCYmUrduXYKDg8nIyCAlJYXU1FQADh48CFw6whQYGOgqVbm5uSxatAiHw4HD4QCgQYMGeHp6EhERQfv27Rk+fDhvvPEGaWlpvPTSS4wbN871Md3YsWOZM2cOkyZNYtSoUaxfv54lS5awatUqV7aJEycSHR1N9+7dCQsL46233iInJ4eRI0eW18slUszx9ByGf/QjJzMu0NDPxoJRYbRrrG+bioiYyjDRhg0bDOCKR3R0tGEYhhEbG3vV+TExMb+4PGAkJye7tnP8+HFjwIABhq+vr1G/fn3j2WefNQoKCq7I0qVLF8NqtRqhoaFGbGzsFXnfeecdIzg42LBarUZYWJjxww8/lGp/7Xa7ARh2u71Uy4n8r6TT541u09caIZNXGn3eWG+cSM8xO5KISJVVmvfvCnMdq+qgNNfBELmWH4/9zJMLtpGVV0i7xv4sGNWDhn4+v76giIhcl9K8f1eJk9dFqou1+87w1Cc7yCt0EtaiLh9Gd8df51OJiFQYKlYilcTSbSeZsmwPRU6Dfu0aMWfILfh4e5odS0RE/ouKlUgl8MGmY7z65X7g0kU/Zz7YES/PSv+lXhGRKkfFSqQCMwyDmasP8u43RwH47e0tmDqgHR4eFpOTiYjI1ahYiVRQhUVOXlyexOJtl26FNGVAW8be0dLkVCIi8ktUrEQqoIsFRTzzr52s2XsGDwvMeKAjj/YINjuWiIj8ChUrkQom62IBYxZuJ+HYz1g9PXj78Vvof7NunSQiUhmoWIlUIOnZeYyI3ULSaQe1bF68/0Q3bmtZ3+xYIiJSQipWIhXEqcxchs/fQnJ6DvVqWlkwKoybmwaYHUtEREpBxUqkAjh0Josn5m8hzXGRprV9+Xh0GKENapkdS0RESknFSsRkO1IyGRm7FfuFAlo3rMXHo3sSGKBb1IiIVEYqViIm+ubQOcZ+vJ0LBUXcElyb2BE9qF3DanYsERG5TipWIib5Ylcqzy5JpKDI4I6bGjBvWFdqWPUjKSJSmem3uIgJFiYcJ+aLvRgG/KZzE2Y93Bmrl25RIyJS2alYiZQjwzB4a91hZscfBiA6PISYgR10ixoRkSpCxUqknDidBtP+s5eFCScAmNCvNc/c3RqLRaVKRKSqULESKQf5hU6eXbqL/+xKxWKBV37TgeHhzc2OJSIibqZiJVLGcvMLGbtoB5sOncPb08JfH+nCbzo3MTuWiIiUARUrkTJ0PjefkXFb2ZlyHl9vT94d3o07bmpgdiwRESkjKlYiZSTNfpHh83/k8Nlsatfw5qMRPegaXMfsWCIiUoZUrETKwLFz2Qyfv4XT5y8Q6O/Dx6PDaN3Iz+xYIiJSxlSsRNxszyk7I2K38HNOPqH1a7JwdBjN6tQwO5aIiJQDFSsRN9p8NJ0xC7eTnVdIx6YBxI3sQb1aNrNjiYhIOVGxEnGT1Uk/8fSnieQXObmtZT3eG94NPx9vs2OJiEg5UrEScYN/bUnhheV7cBrQv0Mgbz3WBR9vT7NjiYhIOVOxErkBhmHw7jfHmLn6AACP9Qji1fs74qlb1IiIVEsqViLXyek0mPHVfj74NhmA39/ZkkmRbXSLGhGRakzFSuQ6FBY5mfz5Hj7fcQqAF+9tx2/7hJqcSkREzKZiJVJKFwuKeOqTHazbfxZPDwszH+zEQ92amR1LREQqABUrkVJwXCzgybhtbDmegc3Lg7lDutKvfSOzY4mISAWhYiVSQmezLhL90Vb2/+TAz+bFh9Hd6Rlaz+xYIiJSgahYiZRAys+5DP/oR078nEv9WjYWjOpBhyYBZscSEZEKRsVK5Ffs/8nBEx9t4VxWHkF1fVk0uich9WqaHUtERCogFSuRX7D1eAaj4raSdbGQtoF+LBwVRkN/H7NjiYhIBaViJXIN6w+c4feLdpBX6KR7SB3mR/cgoIZuUSMiItemYiVyFct2nOL5z3ZT5DS4q21D5g7piq9Vt6gREZFf5mHmxjdt2sTAgQNp0qQJFouFFStWFJu/bNkyIiIiqFevHhaLhcTExCvW8f7773PnnXfi7++PxWLh/PnzV4w5dOgQgwYNon79+vj7+9O7d282bNhQbExKSgpRUVHUqFGDhg0b8vzzz1NYWFhszMaNG+natSs2m41WrVoRFxd3g6+AVETzv0tm4pJdFDkNHrilKe8N76ZSJSIiJWJqscrJyaFz587MnTv3mvN79+7NzJkzr7mO3Nxc+vfvzwsvvHDNMffddx+FhYWsX7+e7du307lzZ+677z7S0tIAKCoqIioqivz8fDZv3syCBQuIi4vj5Zdfdq0jOTmZqKgo+vbtS2JiIhMmTODJJ59kzZo117n3UtEYhsGsNQeZvnIfAKN6tWDWw53x9jT1x0RERCoRi2EYhtkhACwWC8uXL2fw4MFXzDt+/DgtWrRg586ddOnS5arLb9y4kb59+5KZmUnt2rVd09PT02nQoAGbNm3i9ttvByArKwt/f3/Wrl1Lv379+Oqrr7jvvvtITU2lUaNLF3t89913mTx5MufOncNqtTJ58mRWrVpFUlKSa92PPfYY58+fZ/Xq1VfNlJeXR15enuu5w+EgKCgIu92Ov79/KV8hKUtFToM//TuJT35MAeD5yDb84c6Wuu+fiIjgcDgICAgo0ft3lf+neL169WjTpg0LFy4kJyeHwsJC3nvvPRo2bEi3bt0ASEhIoGPHjq5SBRAZGYnD4WDv3r2uMf369Su27sjISBISEq657RkzZhAQEOB6BAUFlcEeyo3KKyxi/Kc7+OTHFCwWeO3+jozr20qlSkRESq3KFyuLxcK6devYuXMnfn5++Pj48Le//Y3Vq1dTp04dANLS0oqVKsD1/PLHhdca43A4uHDhwlW3PXXqVOx2u+tx8uRJd++e3KDsvEJGxW3lyz1pWD0v3aJmSM9gs2OJiEglVeW/FWgYBuPGjaNhw4Z8++23+Pr68uGHHzJw4EC2bt1K48aNy2zbNpsNm81WZuuXG5ORk8/I2C3sOmWnptWT95/oTq9W9c2OJSIilViVP2K1fv16Vq5cyb/+9S969epF165d+cc//oGvry8LFiwAIDAwkDNnzhRb7vLzwMDAXxzj7++Pr69vOeyJuNPp8xd46N3N7Dplp25NK5/89laVKhERuWFVvljl5uYC4OFRfFc9PDxwOp0AhIeHs2fPHs6ePeuav3btWvz9/Wnfvr1rTHx8fLF1rF27lvDw8LKML2XgyNksHpq3mWPncmgS4MOS34XTOai22bFERKQKMPWjwOzsbI4cOeJ6npycTGJiInXr1iU4OJiMjAxSUlJITU0F4ODBg8Clo0eXjySlpaWRlpbmWs+ePXvw8/MjODiYunXrEh4eTp06dYiOjubll1/G19eXDz74wHX5BICIiAjat2/P8OHDeeONN0hLS+Oll15i3Lhxro/yxo4dy5w5c5g0aRKjRo1i/fr1LFmyhFWrVpXb6yU3LvHkeUbGbiEzt4BWDWuxcFQYTWrriKOIiLiJYaINGzYYwBWP6OhowzAMIzY29qrzY2JiXOuIiYm56pjY2FjXmK1btxoRERFG3bp1DT8/P+PWW281vvzyy2JZjh8/bgwYMMDw9fU16tevbzz77LNGQUHBFXm7dOliWK1WIzQ0tNg2SsJutxuAYbfbS7WcuMemQ2eNdn/6ygiZvNL4zZzvjIzsPLMjiYhIJVCa9+8Kcx2r6qA018EQ91q1+ycmLN5JQZHB7a3r8+6wbtS0VfnvboiIiBuU5v1b7yxS5S364QR/+ncShgFRnRrzt0c6Y/PSLWpERMT9VKykyjIMgznrj/DXtYcAGNozmFcG3Yynhy78KSIiZUPFSqokp9PglZX7iNt8HICn727NH/u11tXURUSkTKlYSZVTUOTk+aW7WJF46dukMQPbM7JXC5NTiYhIdaBiJVXKhfwi/vDP7Ww4eA4vDwuzHu7M4Fuamh1LRESqCRUrqTLsuQWMWrCV7Scy8fH2YN6wbvRt09DsWCIiUo2oWEmVcMZxkSfmb+HgmSz8fbyIHdmDbiF1zY4lIiLVjIqVVGqGYbBy90/EfLGXjJx8GvrZWDg6jLaBuk6YiIiUPxUrqbTOOi7y4ook1u67dHPstoF+fPBEd4Lq1jA5mYiIVFcqVlLpGIbB0u2n+MvKfTguFuLtaWFc31b84c5WWL2q/H3FRUSkAlOxkkrlVGYuU5ft4dvD6QB0ahbAGw910kd/IiJSIahYSaXgdBr888cTvP7VAXLyi7B5eTDxnpsY3bsFXp46SiUiIhWDipVUeMnpOUz+fDdbkjMA6NG8DjMf7ERog1omJxMRESlOxUoqrCKnwUffJTPr64PkFTqpYfVkcv+2DL81BA/d709ERCogFSupkA6dyeL5z3az6+R5AHq3qs+MBzrqG38iIlKhqVhJhVJQ5GTexqO8s/4wBUUGfj5evBTVjke6B+kGyiIiUuGpWEmFkXTazvOf7Wb/Tw4A+rVryF8GdyQwwMfkZCIiIiWjYiWmu1hQxNvxh3lv0zGKnAZ1angz7Tcd+E3nJjpKJSIilYqKlZhq+4kMJn22m6PncgC4r1Njpv2mA/Vr2UxOJiIiUnoqVmKK3PxC3lxzkLjNxzEMaOBn4y+DbyayQ6DZ0URERK6bipWUu81H0pm8bDcnMy4A8FC3Zvwpqj0BNbxNTiYiInJjVKyk3DguFjDjywN8uiUFgKa1fXntgY7ccVMDk5OJiIi4h4qVlIv1B87wwrIk0hwXARh+awiTB7Sllk1/BUVEpOrQu5qUqcycfKav3MeynacBaF6vBq8/2IlbQ+uZnExERMT9VKykzHy55yde/ncS6dn5eFhgdO8WTLynDb5WT7OjiYiIlAkVK3G7s1kXifn3Xr5KSgOgdcNavPFQJ24JrmNyMhERkbKlYiVuYxgGy3ee5s//2Yf9QgFeHhZ+f2dLnrqrFTYvHaUSEZGqT8VK3CL1/AVeXL6HDQfPAdChiT9vPtSZ9k38TU4mIiJSflSs5IYYhsGnW07y2pf7yc4rxOrpwTP9WjOmTyjenh5mxxMRESlXKlZy3U78nMOUz/eQcOxnALoG1+aNhzrRqqGfyclERETMoWIlpVbkNIjbfJw31xzgYoETH28Pno9sy4jbmuPpoZsmi4hI9aViJaVy5GwWkz7bzY6U8wCEh9bj9Qc7ElKvprnBREREKgAVKymRgiIn7286xux1h8kvclLL5sUL97bj8bAgLBYdpRIREQEVKymBval2Jn22m72pDgD6tmnAq/d3pEltX5OTiYiIVCwqVnJNeYVFzFl/hHkbj1LoNAjw9SZmYHvuv6WpjlKJiIhchYqVXNXOlEwmfbabw2ezARhwcyB/HtSBhn4+JicTERGpuEy90NCmTZsYOHAgTZo0wWKxsGLFimLzly1bRkREBPXq1cNisZCYmHjFOt5//33uvPNO/P39sVgsnD9//qrbWrVqFT179sTX15c6deowePDgYvNTUlKIioqiRo0aNGzYkOeff57CwsJiYzZu3EjXrl2x2Wy0atWKuLi469/5CupCfhGvrtrHg/M2c/hsNvVrWfnH0K7MG9ZNpUpERORXmFqscnJy6Ny5M3Pnzr3m/N69ezNz5sxrriM3N5f+/fvzwgsvXHPM559/zvDhwxk5ciS7du3i+++/Z8iQIa75RUVFREVFkZ+fz+bNm1mwYAFxcXG8/PLLrjHJyclERUXRt29fEhMTmTBhAk8++SRr1qy5jj2vmH449jMDZm/ig2+TcRrwwC1NWfvHO7i3Y2Ozo4mIiFQKFsMwDLNDAFgsFpYvX37FkSSA48eP06JFC3bu3EmXLl2uuvzGjRvp27cvmZmZ1K5d2zW9sLCQ5s2b8+c//5nRo0dfddmvvvqK++67j9TUVBo1agTAu+++y+TJkzl37hxWq5XJkyezatUqkpKSXMs99thjnD9/ntWrV191vXl5eeTl5bmeOxwOgoKCsNvt+PtXnFu9ZOcVMvOrA3z8wwkAGgf48Nr9HenbtqHJyURERMzncDgICAgo0ft3lb/nyI4dOzh9+jQeHh7ccsstNG7cmAEDBhQrSAkJCXTs2NFVqgAiIyNxOBzs3bvXNaZfv37F1h0ZGUlCQsI1tz1jxgwCAgJcj6CgIDfv3Y375tA5Iv++yVWqHg8LZs0f+6hUiYiIXIcqX6yOHTsGwLRp03jppZdYuXIlderU4c477yQjIwOAtLS0YqUKcD1PS0v7xTEOh4MLFy5cddtTp07Fbre7HidPnnTrvt0Ie24Bzy3dRfRHWzh9/gJBdX355MmezHigI/4+3mbHExERqZSq/LcCnU4nAC+++CIPPvggALGxsTRr1oylS5fyu9/9rsy2bbPZsNlsZbb+67VmbxovrUjiXFYeFguMuK05z0e2oYa1yv91EBERKVNV/p20ceNLJ163b9/eNc1msxEaGkpKSgoAgYGBbNmypdhyZ86ccc27/Oflaf89xt/fH1/fynGhzJ+z84j5Yi8rd/8EQMsGNXnjoU50C6lrcjIREZGqocp/FNitWzdsNhsHDx50TSsoKOD48eOEhIQAEB4ezp49ezh79qxrzNq1a/H393cVsvDwcOLj44ute+3atYSHh5fDXtwYwzD4d+Jp+v3tG1bu/glPDwt/uLMlq56+XaVKRETEjUw9YpWdnc2RI0dcz5OTk0lMTKRu3boEBweTkZFBSkoKqampAK5yFBgY6DqSlJaWRlpamms9e/bswc/Pj+DgYOrWrYu/vz9jx44lJiaGoKAgQkJCePPNNwF4+OGHAYiIiKB9+/YMHz6cN954g7S0NF566SXGjRvn+ihv7NixzJkzh0mTJjFq1CjWr1/PkiVLWLVqVfm8WNcpzX6Rl1bsYd3+S6WxbaAfsx7uzM1NA0xOJiIiUgUZJtqwYYMBXPGIjo42DMMwYmNjrzo/JibGtY6YmJirjomNjXWNyc/PN5599lmjYcOGhp+fn9GvXz8jKSmpWJbjx48bAwYMMHx9fY369esbzz77rFFQUHBF3i5duhhWq9UIDQ0tto2SsNvtBmDY7fZSLXc9nE6n8a8tJ4ybY1YbIZNXGq1eWGXMXnfIyCsoKvNti4iIVCWlef+uMNexqg5Kcx2MG3EyI5epy/bw3ZF0ADoH1eaNBzvRJtCvzLYpIiJSVZXm/bvKn7xenTidBh//cIKZqw+Qm1+EzcuD5yLaMKp3Czw9dNNkERGRsqZiVUUcO5fN5M93s/V4JgBhLeoy88FOtKhf0+RkIiIi1YeKVRWwOimNZ/61k7xCJzWtnkwZ0JahPUPw0FEqERGRcqViVQV0CaqN1dODsBZ1mfFAR5rVqWF2JBERkWpJxaoKCAzw4YvxvWlerwYWi45SiYiImEXFqorQuVQiIiLmq/JXXhcREREpLypWIiIiIm6iYiUiIiLiJipWIiIiIm6iYiUiIiLiJipWIiIiIm6iYiUiIiLiJipWIiIiIm6iYiUiIiLiJipWIiIiIm6iYiUiIiLiJipWIiIiIm6iYiUiIiLiJl5mB6hODMMAwOFwmJxERERESury+/bl9/FfomJVjrKysgAICgoyOYmIiIiUVlZWFgEBAb84xmKUpH6JWzidTlJTU/Hz88Nisbh13Q6Hg6CgIE6ePIm/v79b110ZVPf9B70G2v/qvf+g16C67z+U3WtgGAZZWVk0adIED49fPotKR6zKkYeHB82aNSvTbfj7+1fbHyjQ/oNeA+1/9d5/0GtQ3fcfyuY1+LUjVZfp5HURERERN1GxEhEREXETFasqwmazERMTg81mMzuKKar7/oNeA+1/9d5/0GtQ3fcfKsZroJPXRURERNxER6xERERE3ETFSkRERMRNVKxERERE3ETFSkRERMRNVKwqsRkzZtCjRw/8/Pxo2LAhgwcP5uDBg2bHKlfz5s2jU6dOrovBhYeH89VXX5kdyzSvv/46FouFCRMmmB2l3EybNg2LxVLs0bZtW7NjlavTp08zbNgw6tWrh6+vLx07dmTbtm1mxyo3zZs3v+LvgMViYdy4cWZHKxdFRUX86U9/okWLFvj6+tKyZUumT59eovvaVRVZWVlMmDCBkJAQfH19ue2229i6daspWXTl9Ursm2++Ydy4cfTo0YPCwkJeeOEFIiIi2LdvHzVr1jQ7Xrlo1qwZr7/+Oq1bt8YwDBYsWMCgQYPYuXMnHTp0MDteudq6dSvvvfcenTp1MjtKuevQoQPr1q1zPffyqj6/2jIzM+nVqxd9+/blq6++okGDBhw+fJg6deqYHa3cbN26laKiItfzpKQk7rnnHh5++GETU5WfmTNnMm/ePBYsWECHDh3Ytm0bI0eOJCAggKefftrseOXiySefJCkpiY8//pgmTZqwaNEi+vXrx759+2jatGn5hjGkyjh79qwBGN98843ZUUxVp04d48MPPzQ7RrnKysoyWrdubaxdu9a44447jGeeecbsSOUmJibG6Ny5s9kxTDN58mSjd+/eZseoUJ555hmjZcuWhtPpNDtKuYiKijJGjRpVbNoDDzxgDB061KRE5Ss3N9fw9PQ0Vq5cWWx6165djRdffLHc8+ijwCrEbrcDULduXZOTmKOoqIh//etf5OTkEB4ebnaccjVu3DiioqLo16+f2VFMcfjwYZo0aUJoaChDhw4lJSXF7Ejl5osvvqB79+48/PDDNGzYkFtuuYUPPvjA7Fimyc/PZ9GiRYwaNcrtN7uvqG677Tbi4+M5dOgQALt27eK7775jwIABJicrH4WFhRQVFeHj41Nsuq+vL999912556k+x8urOKfTyYQJE+jVqxc333yz2XHK1Z49ewgPD+fixYvUqlWL5cuX0759e7NjlZt//etf7Nixw7TzCczWs2dP4uLiaNOmDT/99BN//vOfuf3220lKSsLPz8/seGXu2LFjzJs3j4kTJ/LCCy+wdetWnn76aaxWK9HR0WbHK3crVqzg/PnzjBgxwuwo5WbKlCk4HA7atm2Lp6cnRUVFvPrqqwwdOtTsaOXCz8+P8PBwpk+fTrt27WjUqBGffvopCQkJtGrVqvwDlfsxMikTY8eONUJCQoyTJ0+aHaXc5eXlGYcPHza2bdtmTJkyxahfv76xd+9es2OVi5SUFKNhw4bGrl27XNOq20eB/yszM9Pw9/evNh8He3t7G+Hh4cWmjR8/3rj11ltNSmSuiIgI47777jM7Rrn69NNPjWbNmhmffvqpsXv3bmPhwoVG3bp1jbi4OLOjlZsjR44Yffr0MQDD09PT6NGjhzF06FCjbdu25Z5FxaoKGDdunNGsWTPj2LFjZkepEO6++25jzJgxZscoF8uXL3f9Irn8AAyLxWJ4enoahYWFZkc0Rffu3Y0pU6aYHaNcBAcHG6NHjy427R//+IfRpEkTkxKZ5/jx44aHh4exYsUKs6OUq2bNmhlz5swpNm369OlGmzZtTEpknuzsbCM1NdUwDMN45JFHjHvvvbfcM+gcq0rMMAyeeuopli9fzvr162nRooXZkSoEp9NJXl6e2THKxd13382ePXtITEx0Pbp3787QoUNJTEzE09PT7IjlLjs7m6NHj9K4cWOzo5SLXr16XXGZlUOHDhESEmJSIvPExsbSsGFDoqKizI5SrnJzc/HwKP527unpidPpNCmReWrWrEnjxo3JzMxkzZo1DBo0qNwz6ByrSmzcuHF88skn/Pvf/8bPz4+0tDQAAgIC8PX1NTld+Zg6dSoDBgwgODiYrKwsPvnkEzZu3MiaNWvMjlYu/Pz8rjinrmbNmtSrV6/anGv33HPPMXDgQEJCQkhNTSUmJgZPT08ef/xxs6OViz/+8Y/cdtttvPbaazzyyCNs2bKF999/n/fff9/saOXK6XQSGxtLdHR0tbrcBsDAgQN59dVXCQ4OpkOHDuzcuZO//e1vjBo1yuxo5WbNmjUYhkGbNm04cuQIzz//PG3btmXkyJHlH6bcj5GJ2wBXfcTGxpodrdyMGjXKCAkJMaxWq9GgQQPj7rvvNr7++muzY5mqup1j9eijjxqNGzc2rFar0bRpU+PRRx81jhw5YnascvWf//zHuPnmmw2bzWa0bdvWeP/9982OVO7WrFljAMbBgwfNjlLuHA6H8cwzzxjBwcGGj4+PERoaarz44otGXl6e2dHKzeLFi43Q0FDDarUagYGBxrhx44zz58+bksViGNXo0qwiIiIiZUjnWImIiIi4iYqViIiIiJuoWImIiIi4iYqViIiIiJuoWImIiIi4iYqViIiIiJuoWImIiIi4iYqViIiIiJuoWImIXMPx48exWCwkJiaW+bYMw2DMmDHUrVvXtc2rTRORik3FSkQqpREjRmCxWHj99deLTV+xYgUWi8WkVNdv9erVxMXFsXLlSn766Sduvvnmq04TkYpNxUpEKi0fHx9mzpxJZmam2VFu2NGjR2ncuDG33XYbgYGBeHl5XXVaaRmGQWFhYRkkFpGrUbESkUqrX79+BAYGMmPGjKvO//nnn3n88cdp2rQpNWrUoGPHjnz66afFxjidTt544w1atWqFzWYjODiYV199tdiYY8eO0bdvX2rUqEHnzp1JSEhwzYuLi6N27dqsWLGC1q1b4+PjQ2RkJCdPnnSNGTFiBIMHDy62zgkTJnDnnXe65o8fP56UlBQsFgvNmze/6rTLeWfMmEGLFi3w9fWlc+fOfPbZZ671bty4EYvFwldffUW3bt2w2Wx89913pX1pReQ6lf6fPyIiFYSnpyevvfYaQ4YM4emnn6ZZs2bF5l+8eJFu3boxefJk/P39WbVqFcOHD6dly5aEhYUBMHXqVD744AP+/ve/07t3b3766ScOHDhQbD0vvvgis2bNonXr1rz44os8/vjjHDlyxHUEKTc3l1dffZWFCxditVr5wx/+wGOPPcb3339fov2YPXs2LVu25P3332fr1q14enpitVqvmAYwY8YMFi1axLvvvkvr1q3ZtGkTw4YNo0GDBtxxxx2udU6ZMoVZs2YRGhpKnTp1rvs1FpHSUbESkUrt/vvvp0uXLsTExDB//vxi85o2bcpzzz3nej5+/HjWrFnDkiVLCAsLIysri9mzZzNnzhyio6MBaNmyJb179y62nueee46oqCgA/vznP9OhQweOHDlC27ZtASgoKGDOnDn07NkTgAULFtCuXTu2bNniKnC/JCAgAD8/Pzw9PQkMDHRN/99peXl5vPbaa6xbt47w8HAAQkND+e6773jvvfeKFatXXnmFe+65p2Qvooi4jYqViFR6M2fO5K677ipWogCKiop47bXXWLJkCadPnyY/P5+8vDxq1KgBwP79+8nLy+Puu+/+xfV36tTJ9d+NGzcG4OzZs65i5eXlRY8ePVxj2rZtS+3atdm/f3+JilVJHTlyhNzc3CsKU35+Prfcckuxad27d3fbdkWk5FSsRKTS69OnD5GRkUydOpURI0a4pr/55pvMnj2bt956i44dO1KzZk0mTJhAfn4+AL6+viVav7e3t+u/L3/j0Ol0ljifh4cHhmEUm1ZQUFDi5S/Lzs4GYNWqVTRt2rTYPJvNVux5zZo1S71+EblxKlYiUiW8/vrrdOnShTZt2rimff/99wwaNIhhw4YBl8rQoUOHaN++PQCtW7fG19eX+Ph4nnzyyevedmFhIdu2bXMdnTp48CDnz5+nXbt2ADRo0ICkpKRiyyQmJhYrbCXRvn17bDYbKSkpxT72E5GKQ8VKRKqEjh07MnToUN5++23XtNatW/PZZ5+xefNm6tSpw9/+9jfOnDnjKlY+Pj5MnjyZSZMmYbVa6dWrF+fOnWPv3r2MHj26xNv29vZm/PjxvP3223h5efHUU09x6623uorWXXfdxZtvvsnChQsJDw9n0aJFJCUlXfHx3a/x8/Pjueee449//CNOp5PevXtjt9v5/vvv8ff3d50nJiLm0eUWRKTKeOWVV4p9RPfSSy/RtWtXIiMjufPOOwkMDLzisgd/+tOfePbZZ3n55Zdp164djz76KGfPni3VdmvUqMHkyZMZMmQIvXr1olatWixevNg1PzIykj/96U9MmjSJHj16kJWVxRNPPHFd+zh9+nT+9Kc/MWPGDNq1a0f//v1ZtWoVLVq0uK71iYh7WYz//eBfRERKLC4ujgkTJnD+/Hmzo4hIBaAjViIiIiJuomIlIiIi4ib6KFBERETETXTESkRERMRNVKxERERE3ETFSkRERMRNVKxERERE3ETFSkRERMRNVKxERERE3ETFSkRERMRNVKxERERE3OT/Aed5T30h9n0VAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -1862,17 +2044,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -1885,9 +2095,9 @@ " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine\":0,\n", " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\":0,\n", " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\":0,\n", - " \"Neuenhauser-Putzmaschine\":0,\n", - " \"Neuenhauser-Putzmaschine_Vorpuffer\":0,\n", - " \"Neuenhauser-Putzmaschine_Nachpuffer\":0,\n", + " \"Neuenhauser-Putzmaschine\":1,\n", + " \"Neuenhauser-Putzmaschine_Vorpuffer\":2,\n", + " \"Neuenhauser-Putzmaschine_Nachpuffer\":2,\n", " \"Cason-Putzmaschine\":0,\n", " \"Cason-Putzmaschine_Vorpuffer\":0,\n", " \"Cason-Putzmaschine_Nachpuffer\":0,\n", @@ -1900,11 +2110,11 @@ "\n", "\n", "variationen = {}\n", - "k = 1\n", - "while k < 6:\n", + "k = 2\n", + "while k < 10:\n", " Anzahl_MG.update({\"Neuenhauser-Putzmaschine_Nachpuffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Nachpuffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "lists = sorted(variationen.items()) # sorted by key, return a list of tuples\n", @@ -1912,6 +2122,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Nachpuffer\")\n", "plt.show()" ] }, @@ -1925,19 +2137,19 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 99, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Vorpuffern': 104833.16666666667, 'Mit 2 Vorpuffern': 104833.16666666667, 'Mit 3 Vorpuffern': 104833.16666666667, 'Mit 4 Vorpuffern': 104833.16666666667, 'Mit 5 Vorpuffern': 104833.16666666667}\n" + "{2: 105333.16666666666, 3: 105333.16666666666, 4: 105333.16666666666, 5: 105333.16666666666, 6: 105333.16666666666, 7: 105333.16666666666, 8: 105333.16666666666, 9: 105333.16666666666}\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmMAAAGdCAYAAABeuHSJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxYklEQVR4nO3de3RU5b3/8U8CzCRAJhIpuUgSAggIpVGhxFgVOaQEjdS0VjnqsRHj7UhbKf7AYuUieg402GK1QdSuBq1HLrbC8UK1CNi0EmNFwk1MRUKhQuINZiBCCOT7+4OVfTIkgQQJD7Hv11p7LebZ33n2s/NNMp9M9g4RZmYCAACAE5GuFwAAAPCvjDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAONTR9QLOZHV1ddq1a5diYmIUERHhejkAAKAFzEz79u1TUlKSIiPP/PedCGPHsWvXLiUnJ7teBgAAOAk7d+5Uz549XS/jhAhjxxETEyPpaDMDgYDj1QAAgJYIhUJKTk72XsfPdISx46j/1WQgECCMAQDQzrSXS4zO/F+kAgAAfIURxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwqNVhrLi4WGPGjFFSUpIiIiK0bNmysP0vvPCCRo0apbPPPlsREREqKytrNMfBgwc1fvx4nX322eratauuueYaVVVVhdXs2LFDOTk56ty5s3r06KFJkybp8OHDYTVvvPGGLrzwQvn9fvXt21cLFixodKzCwkL16tVLUVFRysjI0Ntvv93aUwYAAGgzrQ5j1dXVSk9PV2FhYbP7L7nkEv385z9vdo6f/OQneumll/T888/rz3/+s3bt2qXvfe973v4jR44oJydHhw4d0po1a/T0009rwYIFmjZtmldTUVGhnJwcjRgxQmVlZZowYYJuvfVWvfbaa17N4sWLNXHiRE2fPl3vvvuu0tPTlZ2drY8//ri1pw0AANA27EuQZEuXLm1yX0VFhUmydevWhY3v3bvXOnXqZM8//7w3tmXLFpNkJSUlZma2fPlyi4yMtMrKSq/m8ccft0AgYDU1NWZmNnnyZBs0aFDY3GPHjrXs7Gzv8bBhw2z8+PHe4yNHjlhSUpLNmjWrRecXDAZNkgWDwRbVAwAA99rb6/dpv2Zs7dq1qq2tVVZWljc2YMAApaSkqKSkRJJUUlKiwYMHKz4+3qvJzs5WKBTS5s2bvZqGc9TX1M9x6NAhrV27NqwmMjJSWVlZXs2xampqFAqFwjYAAIC2dNrDWGVlpXw+n84666yw8fj4eFVWVno1DYNY/f76fcerCYVCOnDggD799FMdOXKkyZr6OY41a9YsxcbGeltycvJJnycAAEBLcDdlA1OmTFEwGPS2nTt3ul4SAAD4iut4ug+YkJCgQ4cOae/evWHvjlVVVSkhIcGrOfaux/q7LRvWHHsHZlVVlQKBgKKjo9WhQwd16NChyZr6OY7l9/vl9/u/1PkBAAC0xml/Z2zIkCHq1KmTVq5c6Y2Vl5drx44dyszMlCRlZmZq48aNYXc9rlixQoFAQAMHDvRqGs5RX1M/h8/n05AhQ8Jq6urqtHLlSq8GAADAtVa/M7Z//35t3brVe1xRUaGysjLFxcUpJSVFn3/+uXbs2KFdu3ZJOhq0pKPvZCUkJCg2Nlb5+fmaOHGi4uLiFAgE9KMf/UiZmZm66KKLJEmjRo3SwIEDddNNN6mgoECVlZW6//77NX78eO+dqzvvvFO//vWvNXnyZN1yyy1atWqVlixZoldeecVb28SJE5WXl6ehQ4dq2LBheuSRR1RdXa1x48ad/EcMAADgVGrt7ZerV682SY22vLw8MzMrKipqcv/06dO9OQ4cOGB33XWXdevWzTp37mzf/e53bffu3WHH2b59u11xxRUWHR1t3bt3t3vuucdqa2sbreX88883n89nvXv3tqKiokbrfeyxxywlJcV8Pp8NGzbM3nrrrRafa3u7NRYAALS/1+8IMzM3MfDMFwqFFBsbq2AwqEAg4Ho5AACgBdrb6zd3UwIAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDrQ5jxcXFGjNmjJKSkhQREaFly5aF7TczTZs2TYmJiYqOjlZWVpY++OCDsJq///3vuvrqq9W9e3cFAgFdcsklWr16dVjNjh07lJOTo86dO6tHjx6aNGmSDh8+HFbzxhtv6MILL5Tf71ffvn21YMGCRustLCxUr169FBUVpYyMDL399tutPWUAAIA20+owVl1drfT0dBUWFja5v6CgQI8++qjmz5+v0tJSdenSRdnZ2Tp48KBXc9VVV+nw4cNatWqV1q5dq/T0dF111VWqrKyUJB05ckQ5OTk6dOiQ1qxZo6effloLFizQtGnTvDkqKiqUk5OjESNGqKysTBMmTNCtt96q1157zatZvHixJk6cqOnTp+vdd99Venq6srOz9fHHH7f2tAEAANqGfQmSbOnSpd7juro6S0hIsDlz5nhje/fuNb/fbwsXLjQzs08++cQkWXFxsVcTCoVMkq1YscLMzJYvX26RkZFWWVnp1Tz++OMWCASspqbGzMwmT55sgwYNClvP2LFjLTs723s8bNgwGz9+vPf4yJEjlpSUZLNmzWrR+QWDQZNkwWCwRfUAAMC99vb6fUqvGauoqFBlZaWysrK8sdjYWGVkZKikpESSdPbZZ6t///565plnVF1drcOHD+uJJ55Qjx49NGTIEElSSUmJBg8erPj4eG+e7OxshUIhbd682atpeJz6mvrjHDp0SGvXrg2riYyMVFZWlldzrJqaGoVCobANAACgLXU8lZPV/5qxYYiqf1y/LyIiQq+//rpyc3MVExOjyMhI9ejRQ6+++qq6devmzdPUHA2P0VxNKBTSgQMHtGfPHh05cqTJmvfff7/J9c+aNUsPPPDAyZw6AADASTntd1OamcaPH68ePXroL3/5i95++23l5uZqzJgx2r179+leTpgpU6YoGAx6286dO52uBwAAfPWd0jCWkJAgSaqqqgobr6qq8vatWrVKL7/8shYtWqRvfetbuvDCCzVv3jxFR0fr6aef9uZpao6Gx2iuJhAIKDo6Wt27d1eHDh2Ou5Zj+f1+BQKBsA0AAKAtndIwlpaWpoSEBK1cudIbC4VCKi0tVWZmpiTpiy++OHrgyPBDR0ZGqq6uTpKUmZmpjRs3ht31uGLFCgUCAQ0cONCraXic+pr64/h8Pg0ZMiSspq6uTitXrvRqAAAAXGt1GNu/f7/KyspUVlYm6ehF+2VlZdqxY4ciIiI0YcIEPfTQQ3rxxRe1ceNG/eAHP1BSUpJyc3MlHQ1R3bp1U15entavX6+///3vmjRpkvenKiRp1KhRGjhwoG666SatX79er732mu6//36NHz9efr9fknTnnXdq27Ztmjx5st5//33NmzdPS5Ys0U9+8hNvrRMnTtRTTz2lp59+Wlu2bNF//ud/qrq6WuPGjfuSHzYAAIBTpLW3X65evdokNdry8vLM7Oift5g6darFx8eb3++3kSNHWnl5edgcf/vb32zUqFEWFxdnMTExdtFFF9ny5cvDarZv325XXHGFRUdHW/fu3e2ee+6x2traRms5//zzzefzWe/eva2oqKjReh977DFLSUkxn89nw4YNs7feeqvF59rebo0FAADt7/U7wszMYRY8o4VCIcXGxioYDHL9GAAA7UR7e/3m/6YEAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAh1odxoqLizVmzBglJSUpIiJCy5YtC9tvZpo2bZoSExMVHR2trKwsffDBB43meeWVV5SRkaHo6Gh169ZNubm5Yft37NihnJwcde7cWT169NCkSZN0+PDhsJo33nhDF154ofx+v/r27asFCxY0Ok5hYaF69eqlqKgoZWRk6O23327tKQMAALSZVoex6upqpaenq7CwsMn9BQUFevTRRzV//nyVlpaqS5cuys7O1sGDB72aP/zhD7rppps0btw4rV+/Xm+++aZuuOEGb/+RI0eUk5OjQ4cOac2aNXr66ae1YMECTZs2zaupqKhQTk6ORowYobKyMk2YMEG33nqrXnvtNa9m8eLFmjhxoqZPn653331X6enpys7O1scff9za0wYAAGgb9iVIsqVLl3qP6+rqLCEhwebMmeON7d271/x+vy1cuNDMzGpra+2cc86x3/zmN83Ou3z5couMjLTKykpv7PHHH7dAIGA1NTVmZjZ58mQbNGhQ2PPGjh1r2dnZ3uNhw4bZ+PHjvcdHjhyxpKQkmzVrVovOLxgMmiQLBoMtqgcAAO61t9fvU3rNWEVFhSorK5WVleWNxcbGKiMjQyUlJZKkd999Vx999JEiIyN1wQUXKDExUVdccYU2bdrkPaekpESDBw9WfHy8N5adna1QKKTNmzd7NQ2PU19Tf5xDhw5p7dq1YTWRkZHKysryao5VU1OjUCgUtgEAALSlUxrGKisrJSksRNU/rt+3bds2SdKMGTN0//336+WXX1a3bt10+eWX6/PPP/fmaWqOhsdoriYUCunAgQP69NNPdeTIkeOu5VizZs1SbGystyUnJ7f6YwAAANAap/1uyrq6OknSz372M11zzTUaMmSIioqKFBERoeeff/50LyfMlClTFAwGvW3nzp1O1wMAAL76TmkYS0hIkCRVVVWFjVdVVXn7EhMTJUkDBw709vv9fvXu3Vs7duzw5mlqjobHaK4mEAgoOjpa3bt3V4cOHY67lmP5/X4FAoGwDQAAoC2d0jCWlpamhIQErVy50hsLhUIqLS1VZmamJGnIkCHy+/0qLy/3ampra7V9+3alpqZKkjIzM7Vx48awux5XrFihQCDghbjMzMyw49TX1B/H5/NpyJAhYTV1dXVauXKlVwMAAOBax9Y+Yf/+/dq6dav3uKKiQmVlZYqLi1NKSoomTJighx56SOeee67S0tI0depUJSUleX9HLBAI6M4779T06dOVnJys1NRUzZkzR5J07bXXSpJGjRqlgQMH6qabblJBQYEqKyt1//33a/z48fL7/ZKkO++8U7/+9a81efJk3XLLLVq1apWWLFmiV155xVvbxIkTlZeXp6FDh2rYsGF65JFHVF1drXHjxp30BwwAAOCUau3tl6tXrzZJjba8vDwzO/rnLaZOnWrx8fHm9/tt5MiRVl5eHjbHoUOH7J577rEePXpYTEyMZWVl2aZNm8Jqtm/fbldccYVFR0db9+7d7Z577rHa2tpGazn//PPN5/NZ7969raioqNF6H3vsMUtJSTGfz2fDhg2zt956q8Xn2t5ujQUAAO3v9TvCzMxhFjyjhUIhxcbGKhgMcv0YAADtRHt7/eb/pgQAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDHV0v4F+RmelA7RHXywAA4IwQ3amDIiIiXC/DGcKYAwdqj2jgtNdcLwMAgDPCezOz1dn3rxtJ+DUlAACAQ/+6MdSh6E4d9N7MbNfLAADgjBDdqYPrJThFGHMgIiLiX/rtWAAA8H/4NSUAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABxqdRgrLi7WmDFjlJSUpIiICC1btixsv5lp2rRpSkxMVHR0tLKysvTBBx80OVdNTY3OP/98RUREqKysLGzfhg0bdOmllyoqKkrJyckqKCho9Pznn39eAwYMUFRUlAYPHqzly5ef9FoAAABcaHUYq66uVnp6ugoLC5vcX1BQoEcffVTz589XaWmpunTpouzsbB08eLBR7eTJk5WUlNRoPBQKadSoUUpNTdXatWs1Z84czZgxQ08++aRXs2bNGl1//fXKz8/XunXrlJubq9zcXG3atOmk1gIAAOCEfQmSbOnSpd7juro6S0hIsDlz5nhje/fuNb/fbwsXLgx77vLly23AgAG2efNmk2Tr1q3z9s2bN8+6detmNTU13ti9995r/fv39x5fd911lpOTEzZnRkaG3XHHHa1eS3OCwaBJsmAw2KJ6AADgXnt7/T6l14xVVFSosrJSWVlZ3lhsbKwyMjJUUlLijVVVVem2227T7373O3Xu3LnRPCUlJbrsssvk8/m8sezsbJWXl2vPnj1eTcPj1NfUH6ela2mopqZGoVAobAMAAGhLpzSMVVZWSpLi4+PDxuPj4719Zqabb75Zd955p4YOHdrsPE3N0fAYzdU03H+itRxr1qxZio2N9bbk5OTjnzAAAMCXdNrvpnzssce0b98+TZky5XQf+oSmTJmiYDDobTt37nS9JAAA8BV3SsNYQkKCpKO/hmyoqqrK27dq1SqVlJTI7/erY8eO6tu3ryRp6NChysvL8+Zpao6Gx2iupuH+E63lWH6/X4FAIGwDAABoS6c0jKWlpSkhIUErV670xkKhkEpLS5WZmSlJevTRR7V+/XqVlZWprKzM+3MUixcv1n/9139JkjIzM1VcXKza2lpvnhUrVqh///7q1q2bV9PwOPU19cdpyVoAAABc69jaJ+zfv19bt271HldUVKisrExxcXFKSUnRhAkT9NBDD+ncc89VWlqapk6dqqSkJOXm5kqSUlJSwubr2rWrJKlPnz7q2bOnJOmGG27QAw88oPz8fN17773atGmTfvWrX2nu3Lne8+6++24NHz5cv/jFL5STk6NFixbpnXfe8f78RURExAnXAgAA4Fxrb79cvXq1SWq05eXlmdnRPykxdepUi4+PN7/fbyNHjrTy8vJm56uoqGj0py3MzNavX2+XXHKJ+f1+O+ecc2z27NmNnrtkyRLr16+f+Xw+GzRokL3yyith+1u7lmO1t1tjAQBA+3v9jjAzcxcFz2yhUEixsbEKBoNcPwYAQDvR3l6/+b8pAQAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwKFWh7Hi4mKNGTNGSUlJioiI0LJly8L2m5mmTZumxMRERUdHKysrSx988IG3f/v27crPz1daWpqio6PVp08fTZ8+XYcOHQqbZ8OGDbr00ksVFRWl5ORkFRQUNFrL888/rwEDBigqKkqDBw/W8uXLW7UWAAAA11odxqqrq5Wenq7CwsIm9xcUFOjRRx/V/PnzVVpaqi5duig7O1sHDx6UJL3//vuqq6vTE088oc2bN2vu3LmaP3++7rvvPm+OUCikUaNGKTU1VWvXrtWcOXM0Y8YMPfnkk17NmjVrdP311ys/P1/r1q1Tbm6ucnNztWnTphavBQAAwDn7EiTZ0qVLvcd1dXWWkJBgc+bM8cb27t1rfr/fFi5c2Ow8BQUFlpaW5j2eN2+edevWzWpqaryxe++91/r37+89vu666ywnJydsnoyMDLvjjju+1FoaCgaDJsmCwWCL6gEAgHvt7fX7lF4zVlFRocrKSmVlZXljsbGxysjIUElJSbPPCwaDiouL8x6XlJTosssuk8/n88ays7NVXl6uPXv2eDUNj1NfU3+ck1lLTU2NQqFQ2AYAANCWTmkYq6yslCTFx8eHjcfHx3v7jrV161Y99thjuuOOO8LmaWqOhsdorqbh/tauZdasWYqNjfW25OTk5k8WAADgFHB6N+VHH32k0aNH69prr9Vtt93mcimSpClTpigYDHrbzp07XS8JAAB8xZ3SMJaQkCBJqqqqChuvqqry9tXbtWuXRowYoYsvvjjswvz6eZqao+ExmqtpuL+la6nn9/sVCATCNgAAgLZ0SsNYWlqaEhIStHLlSm8sFAqptLRUmZmZ3thHH32kyy+/XEOGDFFRUZEiI8OXkZmZqeLiYtXW1npjK1asUP/+/dWtWzevpuFx6mvqj9PStQAAALjU6jC2f/9+lZWVqaysTNLRC+XLysq0Y8cORUREaMKECXrooYf04osvauPGjfrBD36gpKQk5ebmSvq/IJaSkqKHH35Yn3zyiSorK8Ou47rhhhvk8/mUn5+vzZs3a/HixfrVr36liRMnejV33323Xn31Vf3iF7/Q+++/rxkzZuidd97RD3/4Q0lq0VoAAACca+3tl6tXrzZJjba8vDwzO/onJaZOnWrx8fHm9/tt5MiRVl5e7j2/qKioyecfu5T169fbJZdcYn6/38455xybPXt2o7UsWbLE+vXrZz6fzwYNGmSvvPJK2P4TreVE2tutsQAAoP29fkeYmTlJge1AKBRSbGysgsEg148BANBOtLfXb/5vSgAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABwijAEAADhEGAMAAHCo1WGsuLhYY8aMUVJSkiIiIrRs2bKw/WamadOmKTExUdHR0crKytIHH3wQVvP555/rxhtvVCAQ0FlnnaX8/Hzt378/rGbDhg269NJLFRUVpeTkZBUUFDRay/PPP68BAwYoKipKgwcP1vLly1u9FgAAAJdaHcaqq6uVnp6uwsLCJvcXFBTo0Ucf1fz581VaWqouXbooOztbBw8e9GpuvPFGbd68WStWrNDLL7+s4uJi3X777d7+UCikUaNGKTU1VWvXrtWcOXM0Y8YMPfnkk17NmjVrdP311ys/P1/r1q1Tbm6ucnNztWnTplatBQAAwCn7EiTZ0qVLvcd1dXWWkJBgc+bM8cb27t1rfr/fFi5caGZm7733nkmyv/3tb17NH//4R4uIiLCPPvrIzMzmzZtn3bp1s5qaGq/m3nvvtf79+3uPr7vuOsvJyQlbT0ZGht1xxx0tXsuJBINBk2TBYLBF9QAAwL329vp9Sq8Zq6ioUGVlpbKysryx2NhYZWRkqKSkRJJUUlKis846S0OHDvVqsrKyFBkZqdLSUq/msssuk8/n82qys7NVXl6uPXv2eDUNj1NfU3+clqzlWDU1NQqFQmEbAABAWzqlYayyslKSFB8fHzYeHx/v7ausrFSPHj3C9nfs2FFxcXFhNU3N0fAYzdU03H+itRxr1qxZio2N9bbk5OQWnDUAAMDJ427KBqZMmaJgMOhtO3fudL0kAADwFXdKw1hCQoIkqaqqKmy8qqrK25eQkKCPP/44bP/hw4f1+eefh9U0NUfDYzRX03D/idZyLL/fr0AgELYBAAC0pVMaxtLS0pSQkKCVK1d6Y6FQSKWlpcrMzJQkZWZmau/evVq7dq1Xs2rVKtXV1SkjI8OrKS4uVm1trVezYsUK9e/fX926dfNqGh6nvqb+OC1ZCwAAgHOtveJ/3759tm7dOlu3bp1Jsl/+8pe2bt06+8c//mFmZrNnz7azzjrL/vd//9c2bNhgV199taWlpdmBAwe8OUaPHm0XXHCBlZaW2l//+lc799xz7frrr/f279271+Lj4+2mm26yTZs22aJFi6xz5872xBNPeDVvvvmmdezY0R5++GHbsmWLTZ8+3Tp16mQbN270alqyluNpb3djAACA9vf63eowtnr1apPUaMvLyzOzo39SYurUqRYfH29+v99Gjhxp5eXlYXN89tlndv3111vXrl0tEAjYuHHjbN++fWE169evt0suucT8fr+dc845Nnv27EZrWbJkifXr1898Pp8NGjTIXnnllbD9LVnL8bS3ZgIAgPb3+h1hZubqXbkzXSgUUmxsrILBINePAQDQTrS312/upgQAAHCIMAYAAOAQYQwAAMAhwhgAAIBDhDEAAACHCGMAAAAOEcYAAAAcIowBAAA4RBgDAABwiDAGAADgEGEMAADAIcIYAACAQ4QxAAAAhwhjAAAADhHGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA51dL2AM5mZSZJCoZDjlQAAgJaqf92ufx0/0xHGjmPfvn2SpOTkZMcrAQAArbVv3z7Fxsa6XsYJRVh7iY0O1NXVadeuXYqJiVFERMQpnTsUCik5OVk7d+5UIBA4pXPj9KCH7Rv9a//oYfvXVj00M+3bt09JSUmKjDzzr8jinbHjiIyMVM+ePdv0GIFAgG8i7Rw9bN/oX/tHD9u/tuhhe3hHrN6ZHxcBAAC+wghjAAAADhHGHPH7/Zo+fbr8fr/rpeAk0cP2jf61f/Sw/aOHR3EBPwAAgEO8MwYAAOAQYQwAAMAhwhgAAIBDX7kwdvnll2vChAmul3HGePLJJ5WcnKzIyEg98sgjzY6dSehhuBkzZig+Pl4RERFatmxZs2NnEnoYrr31kP6Fa2/9k+jhsc74HtoZLi8vzyTZHXfc0WjfXXfdZZIsLy/PG/vss88sFAp5j1NTU23u3LknPM4TTzxhw4cPt5iYGJNke/bsOW79VVddZdnZ2U3uKy4uNkm2fv36Ex63LQWDQevUqZM99thjtmvXLquurm5yrK2djh5+9tln9sMf/tD69etnUVFRlpycbD/60Y9s7969zT7n61//epNrMjN75plnzOfz2SeffHL8k2tj7733nkmypUuX2u7du+3gwYNNjrW10/V1ePvtt1vv3r0tKirKunfvbt/5zndsy5YtzdbTw5Y5Xf2rV1dXZ6NHj/bOsTn0r+VOVw+HDx9uksK25npkRg9PlXbxzlhycrIWLVqkAwcOeGMHDx7Uc889p5SUlLDauLg4xcTEtPoYX3zxhUaPHq377ruvRfX5+flasWKF/vnPfzbaV1RUpKFDh+ob3/hGq9dx6NChVj+nOTt27FBtba1ycnKUmJiozp07Nzl2Mmpra1tV39Y93LVrl3bt2qWHH35YmzZt0oIFC/Tqq68qPz+/2efk5+c3WlO9oqIifec731H37t1btQ6p9R+b4/nwww8lSVdffbUSEhLk9/ubHDsZZ1oPJWnIkCEqKirSli1b9Nprr8nMNGrUKB05cqTJenrY8nWejv7Ve+SRR1r0X8jRvzPva1CSbrvtNu3evdvbCgoKmq2lh6donU6jYAvk5eXZ1VdfbV//+tft2Wef9cb/53/+x77xjW/Y1VdfHfbTwPDhw+3uu+/2/q1jEv6JrF69ukXvjNXW1lp8fLw9+OCDYeP79u2zrl272uOPP25mZr///e9t4MCB5vP5LDU11R5++OGw+tTUVJs5c6bddNNNFhMTY3l5eVZRUWGSbOHChZaZmWl+v98GDRpkb7zxhve8oqIii42NDZtr6dKl3jkWFRU1OvemxioqKszMbNmyZXbBBReY3++3tLQ0mzFjhtXW1npzS7J58+bZmDFjrHPnzjZ9+nSbPn26paen2zPPPGOpqakWCARs7NixYT+NmZ3+HtZbsmSJ+Xy+sPNo6JNPPjGfz2e/+93vwsa3bdtmERER9sc//tHMzObNm2e9e/e2Tp06Wb9+/eyZZ54Jq2/qY1P/efTyyy/b4MGDze/3W0ZGhm3cuNF7Xv3Hr6G5c+daamqqt//Yc29qrN5TTz1lAwYMML/fb/3797fCwkJvX/3n1KJFi+yyyy4zv99vRUVFXm/mzJljCQkJFhcXZ3fddZcdOnQobF2uerh+/XqTZFu3bm1yPz1sWQ9PZ//WrVtn55xzju3evfuE74zRvzPva7Dh81qCHra8h8fTbsLYL3/5Sxs5cqQ3PnLkSJs7d+5xPwE/++wz69mzp82cOdN2795tu3fvPuHxWhrGzMwmTZpkffr0sbq6Om/st7/9rUVHR9vevXvtnXfescjISJs5c6aVl5dbUVGRRUdHW1FRkVdfH2Iefvhh27p1q23dutVreM+ePe33v/+9vffee3brrbdaTEyMffrpp2Z24jD2xRdf2Ouvv26S7O2337bdu3fb/v37G40dPnzYiouLLRAI2IIFC+zDDz+0P/3pT9arVy+bMWOGN7ck69Gjh/32t7+1Dz/80P7xj3/Y9OnTrWvXrva9733PNm7caMXFxZaQkGD33Xdf2LpOdw/rPfXUU9a9e/fj1lx77bU2YsSIsLFp06ZZcnKyHTlyxF544QXr1KmTFRYWWnl5uf3iF7+wDh062KpVq477san/PDrvvPPsT3/6k23YsMGuuuoq69Wrl/cFeqJvIvv27fMCdP25NzVmZvbss89aYmKi/eEPf7Bt27bZH/7wB4uLi7MFCxaY2f99E+nVq5dXs2vXLsvLy7NAIGB33nmnbdmyxV566SXr3LmzPfnkk2HrctHD/fv324QJEywtLc1qamqaraOHJ+7h6epfdXW1nXfeebZs2TLv43q8MEb/zryvweHDh1v37t3t7LPPtkGDBtlPf/rTE17OQg9b1sPjaTdh7OOPPza/32/bt2+37du3W1RUlH3yySfH/QQ0a/21Dq0JY1u2bDFJtnr1am/s0ksvtf/4j/8wM7MbbrjBvv3tb4c9Z9KkSTZw4MCw9eXm5obV1Dd89uzZ3lhtba317NnTfv7zn5vZicOY2dGfUBu++9Xc2MiRI+2///u/w+b63e9+Z4mJid5jSTZhwoSwmunTp1vnzp3D3gmbNGmSZWRkhNWd7h6aHf1pLSUlpVEwPNarr75qERERtm3bNjM7eq1Lamqq3X///WZmdvHFF9ttt90W9pxrr73WrrzySu9xUx+b+s+jRYsWeWOfffaZRUdH2+LFi83sxN9EzBr3tLmxPn362HPPPRc29uCDD1pmZqaZ/d/n1COPPBJWk5eXZ6mpqXb48OGw8xs7dmyjutPVw8LCQuvSpYtJsv79+zf7rlg9enjiHp6u/t1+++2Wn5/vPW5JGKN/Z9bX4BNPPGGvvvqqbdiwwZ599lk755xz7Lvf/e5xn0MPW9bD42kX14xJ0te+9jXl5ORowYIFKioqUk5Ozkn9HvpUGjBggC6++GL99re/lSRt3bpVf/nLX7zrlLZs2aJvfetbYc/51re+pQ8++CDsGpihQ4c2OX9mZqb3744dO2ro0KHasmXLqT4NrV+/XjNnzlTXrl29rf6agS+++OK46+zVq1fYdQmJiYn6+OOPmzzO6ephKBRSTk6OBg4cqBkzZhy39tvf/rZ69uypoqIiSdLKlSu1Y8cOjRs3TlLzPTy2Dy3pYVxcnPr373/Ke1hdXa0PP/xQ+fn5YT186KGHvOsijrfOQYMGqUOHDt5j1z288cYbtW7dOv35z39Wv379dN111+ngwYPN1tPDlvewLfv34osvatWqVa2+Q5v+nVlfg7fffruys7M1ePBg3XjjjXrmmWe0dOnSRufRED1sXQ+b0vHkl3763XLLLfrhD38oSSosLHS8mqPy8/P1ox/9SIWFhSoqKlKfPn00fPjwVs3RpUuXVh83MjJSdsz/ZHWyFxLu379fDzzwgL73ve812hcVFeX9u6l1durUKexxRESE6urqmj1WW/dw3759Gj16tGJiYrR06dJG6ztWZGSkbr75Zj399NOaMWOGioqKNGLECPXu3btVx3XZw/3790uSnnrqKWVkZITta/jNQWofPYyNjVVsbKzOPfdcXXTRRerWrZuWLl2q66+/vsl6eti6HrZV/1atWqUPP/xQZ511Vtj4Nddco0svvVRvvPFGk8+jf2fe12BD9eezdetW9enTp8kaetj6Hh6r3bwzJkmjR4/WoUOHVFtbq+zs7BY9x+fzNXsn1qlw3XXXKTIyUs8995yeeeYZ3XLLLd5dROedd57efPPNsPo333xT/fr1a9Tcprz11lvevw8fPqy1a9fqvPPOk3T0p6N9+/apurraqykrKzupc7jwwgtVXl6uvn37NtoiI0/tp0hb9jAUCmnUqFHy+Xx68cUXw4Lk8YwbN047d+7UCy+8oKVLl4bdgdlcDwcOHNiiuRv2cM+ePfr73/8e1sPKysqwbyQn08P4+HglJSVp27ZtjfqXlpbW6vlO5HR+HdrRSylUU1Nz3Dp62HJt1b+f/vSn2rBhg8rKyrxNkubOneu9Y9Ic+tc6p/NrsP7jkZiYeNw6evjltKt3xjp06OC9NdmSMCMd/TVacXGx/v3f/11+v7/Zt3MrKytVWVmprVu3SpI2btyomJgYpaSkKC4urtn5u3btqrFjx2rKlCkKhUK6+eabvX333HOPvvnNb+rBBx/U2LFjVVJSol//+teaN29ei9ZeWFioc889V+edd57mzp2rPXv26JZbbpF09KeVzp0767777tOPf/xjlZaWasGCBS2a91jTpk3TVVddpZSUFH3/+99XZGSk1q9fr02bNumhhx46qTmb01Y9rA9iX3zxhZ599lmFQiGFQiFJR79Yj3estLQ0/du//Ztuv/12+f3+sHcIJ02apOuuu04XXHCBsrKy9NJLL+mFF17Q66+/3qK1z5w5U2effbbi4+P1s5/9TN27d1dubq6ko3+U8ZNPPlFBQYG+//3v69VXX9Uf//hHBQKBFs3d0AMPPKAf//jHio2N1ejRo1VTU6N33nlHe/bs0cSJE1s93/G0VQ+3bdumxYsXa9SoUfra176mf/7zn5o9e7aio6N15ZVXHnd+ethybdW/hIQEJSQkNBpPSUk54YsZ/Wudturhhx9+qOeee05XXnmlzj77bG3YsEE/+clPdNlll53wTzXRwy+nXb0zJkmBQKBVH+SZM2dq+/bt6tOnj772ta81Wzd//nxdcMEFuu222yRJl112mS644AK9+OKLJzxGfn6+9uzZo+zsbCUlJXnjF154oZYsWaJFixbp61//uqZNm6aZM2eGBbbjmT17tmbPnq309HT99a9/1Ysvvuh9AcXFxenZZ5/V8uXLNXjwYC1cuPCE10c1Jzs7Wy+//LL+9Kc/6Zvf/KYuuugizZ07V6mpqSc134m0RQ/fffddlZaWauPGjerbt68SExO9befOnSc8Rn0Pb7jhhrB31HJzc/WrX/1KDz/8sAYNGqQnnnhCRUVFuvzyy1u09tmzZ+vuu+/WkCFDVFlZqZdeekk+n0/S0Z8W582bp8LCQqWnp+vtt9/W//t//69F8x7r1ltv1W9+8xsVFRVp8ODBGj58uBYsWNBmP9G1RQ+joqL0l7/8RVdeeaX69u2rsWPHKiYmRmvWrFGPHj1OeAx62HJt9X30y6B/rdMWPfT5fHr99dc1atQoDRgwQPfcc4+uueYavfTSSy06Bj08eRF27C9b4dz27duVlpamdevW6fzzz3e9HJyEN954QyNGjNCePXsaXUOD9oEetm/0r/37V+phu3tnDAAA4KuEMAYAAOAQv6YEAABwiHfGAAAAHCKMAQAAOEQYAwAAcIgwBgAA4BBhDAAAwCHCGAAAgEOEMQAAAIcIYwAAAA4RxgAAABz6/7h9FZCGZidpAAAAAElFTkSuQmCC", + "image/png": "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OHvVO1j958deZqaHH35Ye/bskSRt27ZNHTp0cK2x5ORkxcfHKy8vzxkLBAJat26d0tLSJEn9+vWT1+tVcXGxU1NRUaFdu3apS5cukqS0tDRt3rxZX375pVOzatUq+Xw+J5ClpaUF7aempmY/ERER6tevX1BNdXW18vLynBoAAIB6fyvwnnvuseuuu86OHz9u0dHR9umnn1qbNm3ss88+s82bN1v37t1t4sSJDbrL/uDBg1ZYWGiFhYUmyZ566ikrLCy0zz//3MzMZsyYYW3btrWXX37ZPvroI7vxxhstOTnZjh496swxduxY69ixo61cudI+/vhjy87OttjYWPv666/NzKyystIuueQSGzJkiBUVFdnrr79u559/vk2aNMmZ47PPPrNWrVrZhAkTbPv27TZ79mwLDw+3119/3alZvHixeb1eW7BggW3bts3uvvtua9u2bdC3DU+FbwUCAND8NOT8Xe9gtXfvXuvRo4d17NjRWrZsabfffru1bNnSUlJSLDw83EaMGOE8vqC+1qxZY5JqLaNGjTKzbx65MHnyZIuLizOv12uDBw+24uLioDmOHz9u9913n8XGxlp0dLSlp6fbli1bgmp27dpl119/vUVFRVmHDh3svvvus4qKilq9XHrppRYREWHdunWz3NzcWv0+99xz1rlzZ4uIiLABAwbY+++/36DjJVgBAND8NOT87TEzq+/VLb/fr4ULF+qXv/yl+vbtq40bN+qnP/2pfvjDH/KRWD0EAgHFxMTI7/dzvxUAAM1EQ87fDQpWNfr27aulS5fq5ptv1ksvvcRvAtYTwQoAgOanIefvev2kzX/68MMPg/4JAACAen4rcNiwYQ16avjIkSODvoUHAABwLqjXR4Hh4eH65JNPdP75559yQjNTUlKSioqK+IjwP/BRIAAAzY/rHwWamS666CJXmgMAADhb1StYrVmzpsETd+zYscGvAQAAaM7qFayuueaaM90HAABAs1fvn7QBAADAtyNYAQAAuIRgBQAA4BKCFQAAgEsaHKyOHj2qI0eOOOuff/65nnnmGb3xxhuuNgYAANDcNPgnbW688UYNGzZMY8aM0YEDB5SamqqWLVvqq6++0lNPPaWf/OQnZ6JPfAsz09GKqlC3AQBAyEW1DJfH4wnZ/hscrD788EM9/fTTkqSXXnpJcXFxKiws1N/+9jdNmTKFYBUC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JF1//fXq3LmzDh48qL/+9a966623tHLlylC31iiio6Nr3VPXunVrnXfeeefMvXa//OUvNXToUHXp0kV79uzR1KlTFR4erhEjRoS6tUZx77336sorr9Tjjz+uW265RevXr9f8+fM1f/78ULfWaKqrq5Wbm6tRo0adU4/aqDF06FA99thj6ty5s3r16qXCwkI99dRTGj16dKhbazQrV66UmalHjx7auXOnJkyYoJSUFN1xxx2N30yjXyODayTVueTm5oa6tUYzevRo69Kli0VERNj5559vgwcPtjfeeCPUbYXUuXaP1fDhwy0hIcEiIiKsY8eONnz4cNu5c2eo22pU//jHP+ySSy4xr9drKSkpNn/+/FC31KhWrlxpkqy4uDjUrYREIBCwsWPHWufOnS0yMtK6detmv/rVr6y8vDzUrTWaJUuWWLdu3SwiIsLi4+MtJyfHDhw4EJJePGbn0KNZAQAAziDusQIAAHAJwQoAAMAlBCsAAACXEKwAAABcQrACAABwCcEKAADAJQQrAAAAlxCsAAAAXEKwAoBGNH/+fCUlJSksLEzPPPPMSccANE88eR3AWWPo0KGqqKjQ66+/XmvbO++8o0GDBmnTpk36zne+E4LupEAgoA4dOuipp57STTfdpJiYGFVWVtYaa9WqVUj6A/Df44oVgLNGdna2Vq1apX/961+1tuXm5qp///4NDlXHjx93qz2VlpaqoqJCmZmZSkhIUKtWreocOx0VFRWu9Qng9BGsAJw1brjhBp1//vlasGBB0PihQ4e0dOlSZWdn629/+5t69eolr9errl276je/+U1QbdeuXfXII4/otttuk8/n0913361du3bJ4/Fo8eLFuvLKKxUZGalLLrlEb7/9tvO6BQsWqG3btkFzLV++XB6Px9neu3dvSVK3bt3k8XjqHNu1a5ck6eWXX1bfvn0VGRmpbt266aGHHlJlZaUzt8fj0dy5c/W///u/at26tR577DE33kIA/62Q/PQzAJwhEyZMsAsuuMCqq6udsT/+8Y8WFRVlb731loWFhdnDDz9sxcXFlpuba1FRUZabm+vUdunSxXw+nz355JO2c+dO27lzp5WUlJgk69Spk7300ku2bds2u/POOy06Otq++uorMzPLzc21mJiYoF6WLVtmNX/NHjlyxN58802TZOvXr7e9e/faoUOHao1VVlZafn6++Xw+W7BggX366af2xhtvWNeuXW3atGnO3JIsNjbW/vjHP9qnn35qn3/++Zl7UwHUG8EKwFll+/btJsnWrFnjjF199dX2ox/9yG699Vb73ve+F1Q/YcIE69mzp7PepUsXy8rKCqqpCVYzZsxwxioqKqxTp072xBNPmNmpg5WZWWFhoUmykpKSbx0bPHiwPf7440Fz/elPf7KEhARnXZKNGzfu298MAI2OjwIBnFVSUlJ05ZVX6o9//KMkaefOnXrnnXeUnZ2t7du3a+DAgUH1AwcO1I4dO1RVVeWM9e/fv86509LSnD+3aNFC/fv31/bt210/hk2bNunhhx9WmzZtnOWuu+7S3r17deTIkVP2CSB0WoS6AQBwW3Z2tn7+859r9uzZys3N1QUXXKBrrrmm3q9v3bp1g/cZFhYm+48vWZ/uDeWHDh3SQw89pGHDhtXaFhkZ6fz5dPoEcGZxxQrAWeeWW25RWFiY/vrXv+qFF17Q6NGj5fF4dPHFF+u9994Lqn3vvfd00UUXKTw8/JTzvv/++86fKysrtXHjRl188cWSpPPPP18HDx7U4cOHnZqioqLT6r9v374qLi5W9+7day1hYfy1DTRlXLECcNZp06aNhg8frkmTJikQCOj222+XJN133326/PLL9cgjj2j48OEqKCjQ7373O82ZM6de886ePVsXXnihLr74Yj399NPav3+/Ro8eLUlKTU1Vq1at9OCDD+oXv/iF1q1bV+vbifU1ZcoU3XDDDercubP+7//+T2FhYdq0aZO2bNmiRx999LTmBNA4+F8fAGel7Oxs7d+/XxkZGUpMTJT0zZWgF198UYsXL9Yll1yiKVOm6OGHH3aC16nMmDFDM2bMUJ8+ffTuu+/qlVdeUYcOHSRJ7du315///GetWLFCvXv31qJFizRt2rTT6j0jI0Ovvvqq3njjDV1++eW64oor9PTTT6tLly6nNR+AxsOT1wHgFHbt2qXk5GQVFhbq0ksvDXU7AJowrlgBAAC4hGAFAADgEj4KBAAAcAlXrAAAAFxCsAIAAHAJwQoAAMAlBCsAAACXEKwAAABcQrACAABwCcEKAADAJQQrAAAAl/x/FMv+DRo1avEAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -2133,17 +2345,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -2159,9 +2399,9 @@ " \"Neuenhauser-Putzmaschine\":0,\n", " \"Neuenhauser-Putzmaschine_Vorpuffer\":0,\n", " \"Neuenhauser-Putzmaschine_Nachpuffer\":0,\n", - " \"Cason-Putzmaschine\":0,\n", - " \"Cason-Putzmaschine_Vorpuffer\":0,\n", - " \"Cason-Putzmaschine_Nachpuffer\":0,\n", + " \"Cason-Putzmaschine\":1,\n", + " \"Cason-Putzmaschine_Vorpuffer\":3,\n", + " \"Cason-Putzmaschine_Nachpuffer\":2,\n", " \"Puffer\":1,\n", " \"Anzahl_der_Pufferstrecken_pro_Puffer\":5,\n", " \"Begegnungsstrecke_Bypass\":2,\n", @@ -2171,11 +2411,11 @@ "\n", "\n", "variationen = {}\n", - "k = 1\n", - "while k < 6:\n", + "k = 2\n", + "while k < 10:\n", " Anzahl_MG.update({\"Cason-Putzmaschine_Vorpuffer\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Vorpuffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "lists = sorted(variationen.items()) # sorted by key, return a list of tuples\n", @@ -2183,6 +2423,8 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Vorpuffer\")\n", "plt.show()" ] }, @@ -2191,24 +2433,24 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Cason-Putzmaschine Nachpuffer" + "### Turm Wendlungen" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{'Mit 1 Nachpuffern': 104833.16666666667, 'Mit 2 Nachpuffern': 104833.16666666667, 'Mit 3 Nachpuffern': 104833.16666666667, 'Mit 4 Nachpuffern': 104833.16666666667, 'Mit 5 Nachpuffern': 104833.16666666667}\n" + "{1: 106893.90666666668, 2: 106893.90666666668, 3: 106893.90666666668, 4: 106893.90666666668, 5: 106893.90666666668, 6: 106893.90666666668, 7: 106893.90666666668, 8: 106893.90666666668, 9: 106893.90666666668}\n" ] }, { "data": { - "image/png": "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7+x3uutXa8mSJcbtdp/06t/QoUPN6NGjTfv27U1mZqbTfvx3gdu3bzc//OEPTceOHU2bNm3M4MGDzcqVK0PGOnLkiJk0aZLp0qWLcbvd5sILLzS//e1vQz4W77//vhk0aJDxer0mMTHRfP75587+06dPN/Hx8Wb+/PmmS5cuxuv1mptvvjnkqmDdj02tup//x3+8hg4d2mBb7XwnTpxoYmNjTWRkpBkyZIhZs2aNM27t59Of//xnZ/369u1r2rdvb5555hkzevRo4/F4TOvWrU18fHyzfg3W2rBhg5Fktm/ffsIa1tC+NczPzzedO3c2e/fubfQVNdbQnjVs6PxOhTVs3BpedNFFJjw83BQVFZlu3bo5a3jeeeeZuLg4s2DBgiZ93K26oiZJY8aMUVZWlvP6f//3fzV69OiT7vPmm2+qS5cumjlzpvOdQXMLDw/Xs88+q7lz5+rf//53gzVHjhzRoEGDlJ2drc2bN+uee+7RnXfeqY8++sipmTJlip577jlNnTpVn332mf74xz8qJiYmZJwnnnhCjz76qAoKCtSnTx+NHDlSR48edfoPHTqkZ555Rq+99prWrVunsrIy/fSnP230ubzyyiuaOXOmunTpor179+rjjz9usE2SMjIy9Nprr2n+/PnasmWLHnnkEd1xxx3661//GjJmXl6e+vfvr8cff1x///vfJUmLFi3SZ599psmTJ2vAgAHasGGDVq5cWW8+p7N+gUBAPp/vlFf/fD6fnnjiCc2cOVPl5eUN1hw8eFA33HCDVq1apfz8fA0fPlwjRoxQcXGxUzNq1CgtXrxYc+bM0datW7VgwQKdd955IeM88cQTevHFF/XJJ5+oVatWGjNmTEj/9u3btWTJEr399tt69913lZ+frwceeKDR5/zmm2/q7rvvVmJiovbu3as333yzwTZJevDBB5WTk6PXX39dGzdu1M0336zhw4dr27ZtzniHDh3S888/ryuvvFLDhg3T6NGjVV5erhdffFGDBw/WoEGDlJycrA0bNigQCJxwTl9nDcvLy5WVlaUePXooLi7upLWsoT1reOjQId12223KzMyU3+9v9HmzhvasoST94Q9/UIcOHXTxxRdrypQpOnTo0CnPmzU89Rr+9re/1ZYtW9SxY0dJctawdn7333+/CgsLGz1P666o7du3z3g8HrNz506zc+dOExERYb744ouTXlEzpun3VjT1ilrtFaorrrjCjBkzxhjTuHvUUlNTzcSJE40xxgSDQePxeMxvfvObBmtrr6jVfldhjDFbtmwxkpx7eLKysowk8+GHHzo1W7duNZJMbm5uvfnWqntFzZiG7yk4vu3IkSMmMjIy5IqeMcaMHTvWjBw50hjz34/jddddF7J+CQkJZvDgwSHr1759ezN58mRjzOmvnzHGfPHFF6Zr167m8ccfP2ld7bGOHDliunXrZmbOnHnCj8HxBgwYYObOnWuMMaawsNBIqvedYa263wXWys7ONpLM4cOHjTHHvgsMDw83//73v52av/zlLyYsLMzs3bs3ZL51Hf/5f/x6NtT2r3/9y4SHh5vdu3eH1A0bNsxMmTLFGPPfz6eCgoKQr0FJJi0tzfka3Ldvn3G73eaKK65wxjmdNczMzDRt2rRxrhyc7Gpa3WOxhse09Brec889ZuzYsc5rNfKKGmv4Xy29hgsWLDDvvvuu2bhxo/n9739vOnfubH70ox+ddB/WsHFrWFe3bt3MHXfc4byuqakxHTt2NK+++mqD596Qpt2EdAZccMEFSk1N1cKFC2WMUWpqqjp06NDS03I8//zz+t73vqdHH320Xl91dbWeffZZLVmyRLt371ZlZaUqKioUGRkpSdq6dasqKio0bNiwkx7jkksucf7dqVMnSdK+ffvUr18/SVKrVq30ne98x6np16+fzj//fG3dulVDhgw57XOstX37dh06dEjf//73Q9orKyt12WWXhbR16NBBlZWVzvrl5eU5/65dv8jISO3bt69Z5hYMBpWamqr+/ftrxowZjdrH4/Fo5syZeuihh3T//ffX6z948KBmzJih7Oxs7d27V0ePHtXhw4ed7wILCgoUHh6uoUOHnvQ4J1q/2ntLunbtqs6dOzs1iYmJqqmpUWFhYZOuTpzKpk2bVF1drT59+oS0V1RUqH379s5rt9sdMucLLrhAkZGRztWu1NRUXXDBBYqIiNCRI0eaZW633367vv/972vv3r164YUXdMstt2jdunWKiIg46X6s4TEtuYZvvfWWVq9erfz8/K+1P2t4TEt/Hd5zzz3OvwcOHKhOnTpp2LBh2rFjhy688MKT7ssaHnOqNWzoPFwul/x+f5PeC60LatKxH38++OCDkqTMzMwWnk2oa665RikpKZoyZYruuuuukL7Zs2frlVde0csvv6yBAweqTZs2Gj9+vCorKyVJXq+3Ucdo3bq18+/amxibclNiWFiYzHF/Gezr3Ph58OBBSVJ2dnbIF4Oken+XrVWrVs55jhkzRitWrND+/fv11FNPhdQ1x82VBw4c0PDhw9W2bVstW7Ys5ON1KnfccYdeeOEFPf300+revXtI36OPPqqVK1fqhRdeUK9eveT1evWTn/zkrF6/8PBw5eXlKTw8PKSv7o8YvF5vvZtl27Rpo7y8PG3bti3ka/D4eX1dUVFRioqKUu/evXXFFVcoOjpay5Yt08iRI0+5L2t4TEut4erVq7Vjxw6df/75Ie033XSTrr76an3wwQenHIM1PKalvw7rSkhIkHTsG/RTBTWJNax1qjWUVO89yuVyNe08mjjfM2L48OGqrKxUVVWVUlJSGrWP2+0+5VNjzeW5557T22+/rZycnJD2devW6cYbb9Qdd9yh+Ph49ezZU//4xz+c/t69e8vr9WrVqlWndfyjR4/qk08+cV4XFhaqrKxMF110kaRj34kdf2/C1/mdaP3795fH41FxcbF69eoVsp3sfqLhw4erpqZGNTU1zb5+wWBQycnJcrvdeuutt055BeZ4YWFhysjI0KuvvqqdO3eG9K1bt0533XWXfvSjH2ngwIHy+/0hNQMHDlRNTU29+/Oaqri4WHv27HFef/jhhwoLC1Pfvn0l1V+/6upqbd68ucnHueyyy1RdXa19+/bVW79Tfbfp9XpVXV19Rr4GjTEyxqiioqJR9axhy67hz3/+c23cuFEFBQXOJkkvvfRSyP3FJ8Ma2vd1WLuOtVeuToU1bNwaNgcrg1p4eLi2bt2qzz77rF56PZHu3btr7dq12r17t7788ssT1pWUlKigoEDbt2+XdOySZkFBgb766qtGz2/gwIG6/fbbNWfOnJD23r17a+XKlVq/fr22bt2qe++9V6WlpU5/RESEJk+erEmTJum1117Tjh079OGHH+p3v/tdo48tHUvnDz30kHJzc5WXl6e77rpLV1xxhfNjz+9973v65JNP9Nprr2nbtm2aPn361/rkbNu2rR599FE98sgjWrRokXbs2KFPP/1Uc+fO1aJFi064X3h4uL7zne/ojjvuaNb1qw1p5eXl+t3vfqdgMKiSkhKVlJQ06T+m1NRUJSQkaMGCBSHtvXv31ptvvqmCggJt2LBBt912W8h3Pd27d1d6errGjBmj5cuXq6ioSB988IGWLFnS6GNLxz4P0tPTtWHDBv3tb3/T//zP/+iWW25xvuC/973vKTs7W9nZ2fr88891//33f61fuNinTx/dfvvtGjVqlN58800VFRXpo48+UkZGhrKzs0+6r8vl0s9//vNm/xr85z//qYyMDOXl5am4uFjr16/XzTffLK/XqxtuuKHR58Yattwa+v1+XXzxxSGbdOzHUD169Gj0ubGGLbeGO3bs0C9+8Qvl5eVp586deuuttzRq1Chdc801Df7o7kRYw1OvYXOwMqhJx54s8fl8ja6fOXOmdu7cqQsvvFAXXHDBCevmz5+vyy67THfffbekYz/KvOyyy/TWW281aX4zZ86sd+nyySef1OWXX66UlBRde+218vv9SktLC6mZOnWqJk6cqGnTpumiiy7Srbfe2uT7tiIjIzV58mTddttt+u53v6vzzjtPb7zxhtOfkpKiqVOnatKkSfrOd76jAwcOaNSoUU06Rq1f/OIXmjp1qjIyMnTRRRdp+PDhys7OPuV/yK1atar349GTacz6ffrpp8rNzdWmTZvUq1cvderUydl27drVpPN6/vnn693n8ctf/lLR0dG68sorNWLECKWkpOjyyy8PqXn11Vf1k5/8RA888ID69eunu++++4RPPp1Ir1699OMf/1g33HCDkpOTdckll2jevHlO/5gxY5Senq5Ro0Zp6NCh6tmzp6677romHaNWVlaWRo0apYkTJ6pv375KS0vTxx9/XO93MTUkIiKi2b8GIyIi9Le//U033HCDevXqpVtvvVVt27bV+vXrnSekGos1bJk1bE6sYcusodvt1vvvv6/k5GT169dPEydO1E033aS333670cepxRqeeg1Pl8t8Ez/sxjdm4cKFGj9+fMv/SQt8LTNmzNDy5cvPyJ8JwzeDNTz7sYZnv2/TGlp7RQ0AAODbjqAGAABgKX70CQAAYCmuqAEAAFiKoAYAAGApghoAAIClCGoAAACWIqgBAABYiqAGAABgKYIaAACApQhqAAAAliKoAQAAWOr/AWivfCVNwfnMAAAAAElFTkSuQmCC", + "image/png": "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fFGLFi3Sv/71L91+++2qrKzUhAkTTup7BgAAWrGW/yPF48vLyzOSGhypqanGmB8euTB9+nQTFhZmXC6XGT16tNmxY4fXGhs2bDBjxowxXbp0MUFBQebcc88177zzjtecr776ylx22WXG7Xabbt26mbvvvtvU1NQ0qGXQoEHG6XSamJgYk5WV1aDeZ555xkRFRRmn02ni4uLMJ5980qzz5XELAAC0Pc35/HYYY4wPc92visfjUUhIiMrLy7nfCgCANqI5n9+t9h4rAACAtoZgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADY5pSmTPB5PsxcODg5u9msAAADasiYFq06dOsnhcDR5UYfDoZ07dyomJuaECwMAAGhrmhSsJOmNN95Qly5dfnaeMUaXX375LyoKAACgLWpSsOrZs6cuvPBCde3atUmLxsTEqEOHDr+oMAAAgLamScGqpKSkWYtu27bthIoBAABoy/irQAAAAJs0OVi99957uu666xod+/rrrxUXF6ePP/7YtsIAAADamiYHq1mzZumGG26QJD3xxBOqqqqyxrp3764777xT999/v/0VAgAAtBFNDlaffvqpBg4cKEl6/PHH9e233+qPf/yjFbAuvPBCbdy4sWWqBAAAaAOaHKzCwsJUWlpqtY0xmjVrlr799ltJ0hdffKFu3brZXyEAAEAb0eRgdemll2rWrFmqqamR9MNDQI0xcjgc2rZtm6ZMmWJ9VQgAAPBr1ORg9fDDD6ukpETR0dGqqqrSo48+qurqal1++eUaNGiQhg8frkcffbQlawUAAGjVmhyswsPDVVhYqKlTp0qS/vWvf8kYozFjxmjt2rV69dVX5XQ6W6xQAACA1s5hjDHNfdGQIUP0+uuv65prrtEbb7zBbwI2kcfjUUhIiMrLy/mRagAA2ojmfH43+bcCj7V582av/wQAAEATvwq86qqr5PF4mrzo+PHjtX///hMuCgAAoC1q0leB/v7+2rlzp0477bSfXdAYox49eqioqIivCH+ErwIBAGh7bP8q0BijM88805biAAAA2qsmBau8vLxmL3z66ac3+zUAAABtWZOC1ciRI1u6DgAAgDavyc+xAgAAwE8jWAEAANiEYAUAAGATnwar/Px8jR07VpGRkXI4HFq+fLnXuDFGM2bMUEREhNxutxITE1VcXGyNr1mzRg6Ho9Fjw4YNkqSvvvqq0fFPPvnEa6/XX39d/fr1U0BAgAYOHKh33nmnWbUAAAA0O1gdPnxY33//vdXevXu3nn76ab3//vvN3ryyslKxsbGaP39+o+Nz587VvHnztHDhQhUWFiowMFBJSUmqqqqSJI0YMUL79u3zOiZNmqTo6GgNGzbMa60PPvjAa97QoUOtsXXr1un666/Xrbfeqk8//VQpKSlKSUnRtm3bmlwLAACATDNdcsklZsGCBcYYYw4cOGDCwsJM9+7dTUBAgHnuueeau5xFklm2bJnVrq+vN+Hh4SYzM9PqO3jwoHG5XGbx4sWNrnHkyBFz2mmnmVmzZll9JSUlRpL59NNPj7v3tddea5KTk7364uPjzW233XbCtTSmvLzcSDLl5eVNfg0AAPCt5nx+N/uK1ebNm3XBBRdIkt544w2FhYVp9+7deuWVVzRv3jzbAl9JSYlKS0uVmJho9YWEhCg+Pl4FBQWNvmbFihX673//qwkTJjQY+81vfqPQ0FCdf/75WrFihddYQUGB1z6SlJSUZO1zIrVIUnV1tTwej9cBAADar2YHq++//15BQUGSpPfff19XXXWV/Pz8dO6552r37t22FVZaWipJCgsL8+oPCwuzxn7sr3/9q5KSktS9e3err2PHjnrqqaf0+uuva+XKlTr//POVkpLiFa5KS0t/cp8TqUWS5syZo5CQEOvo0aPHz502AABow5odrHr37q3ly5dr7969ysnJ0ZgxYyRJ+/fv9+nv33399dfKycnRrbfe6tXfrVs3ZWRkKD4+XsOHD9cTTzyhG2+8UZmZmS1e07Rp01ReXm4de/fubfE9AQCA7zQ7WM2YMUP33HOPevXqpfj4eCUkJEj64erV4MGDbSssPDxcklRWVubVX1ZWZo0dKysrS127dtVvfvObn107Pj5eu3bt8trrp/Zpbi1HuVwuBQcHex0AAKD9anaw+t3vfqc9e/Zo48aNeu+996z+0aNH689//rNthUVHRys8PFy5ublWn8fjUWFhoRXmjjLGKCsrSzfffLM6dOjws2sXFRUpIiLCaickJHjtI0mrVq2y9mlOLQAA4NerSb8V+GPh4eENrtTExcU1e52KigqvK0clJSUqKipSly5dFBUVpfT0dM2ePVt9+vRRdHS0pk+frsjISKWkpHits3r1apWUlGjSpEkN9li0aJGcTqd1Ne3NN9/Uyy+/rJdeesmaM2XKFI0cOVJPPfWUkpOT9dprr2njxo164YUXJEkOh6PJtQAAgF+vJgWrq666StnZ2QoODtZVV131k3PffPPNJm++ceNGjRo1ympnZGRIklJTU5Wdna2pU6eqsrJSv//973Xw4EGdf/75eu+99xQQEOC1zl//+leNGDFC/fr1a3SfRx99VLt379Ypp5yifv36acmSJfrd735njY8YMUKvvvqqHnroIT3wwAPq06ePli9frrPPPtua09RaAADAr5fDGGN+btKECRM0b948BQUFNfoog2NlZWXZVlx74/F4FBISovLycu63AgCgjWjO53eTghXsQbACAKDtac7n9wn9VmBtba0++OADPf/88zp06JAk6dtvv1VFRcWJLAcAANAuNPvm9d27d+vSSy/Vnj17VF1drUsuuURBQUF68sknVV1drYULF7ZEnQAAAK1es69YTZkyRcOGDdOBAwfkdrut/t/+9rcNHlkAAADwa9LsK1Zr167VunXr5HQ6vfp79eqlb775xrbCAAAA2ppmX7Gqr69XXV1dg/6vv/7a+g1BAACAX6NmB6sxY8bo6aefttoOh0MVFRWaOXOmLr/8cjtrAwAAaFOa/biFvXv36tJLL5UxRsXFxRo2bJiKi4vVrVs35efnKzQ0tKVqbfN43AIAAG1Piz/Hqra2VkuWLNGWLVtUUVGhIUOGaPz48V43s6MhghUAAG1PiwWrmpoa9evXT2+//bbOOuusX1zorw3BCgCAtqfFHhDaoUMHVVVV/aLiAAAA2qtm37yelpamJ598UrW1tS1RDwAAQJvV7OdYbdiwQbm5uXr//fc1cOBABQYGeo2/+eabthUHAADQljQ7WHXq1ElXX311S9QCAADQpjU7WGVlZbVEHQAAAG1ek++xqq+v15NPPqnzzjtPw4cP1/3336/Dhw+3ZG0AAABtSpOD1WOPPaYHHnhAHTt21Omnn66//OUvSktLa8naAAAA2pQmB6tXXnlFzz33nHJycrR8+XK99dZb+t///V/V19e3ZH0AAABtRpOD1Z49e7x+CzAxMVEOh0PffvttixQGAADQ1jQ5WNXW1iogIMCrr0OHDqqpqbG9KAAAgLaoyX8VaIzRLbfcIpfLZfVVVVVp8uTJXs+y4jlWAADg16rJwSo1NbVB34033mhrMQAAAG1Zk4MVz68CAAD4ac3+rUAAAAA0jmAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATXwarPLz8zV27FhFRkbK4XBo+fLlXuPGGM2YMUMRERFyu91KTExUcXGxNb5mzRo5HI5Gjw0bNljzPvvsM11wwQUKCAhQjx49NHfu3Aa1vP766+rXr58CAgI0cOBAvfPOO82qBQAAwKfBqrKyUrGxsZo/f36j43PnztW8efO0cOFCFRYWKjAwUElJSaqqqpIkjRgxQvv27fM6Jk2apOjoaA0bNkyS5PF4NGbMGPXs2VObNm1SZmamHn74Yb3wwgvWPuvWrdP111+vW2+9VZ9++qlSUlKUkpKibdu2NbkWAAAAmVZCklm2bJnVrq+vN+Hh4SYzM9PqO3jwoHG5XGbx4sWNrnHkyBFz2mmnmVmzZll9zz33nOncubOprq62+u677z7Tt29fq33ttdea5ORkr7Xi4+PNbbfddsK1NKa8vNxIMuXl5U1+DQAA8K3mfH632nusSkpKVFpaqsTERKsvJCRE8fHxKigoaPQ1K1as0H//+19NmDDB6isoKNCFF14op9Np9SUlJWnHjh06cOCANefYfY7OObrPidQCAAB+fU7xdQHHU1paKkkKCwvz6g8LC7PGfuyvf/2rkpKS1L17d691oqOjG6xxdKxz584qLS39yX1OpBZJqq6uVnV1tdX2eDzHnQsAANq+VnvFqrm+/vpr5eTk6NZbb/V1KZY5c+YoJCTEOnr06OHrkgAAQAtqtcEqPDxcklRWVubVX1ZWZo0dKysrS127dtVvfvObBus0tsaxexxvzrHjzanlqGnTpqm8vNw69u7de9y5AACg7Wu1wSo6Olrh4eHKzc21+jwejwoLC5WQkOA11xijrKws3XzzzerQoYPXWEJCgvLz81VTU2P1rVq1Sn379lXnzp2tOcfuc3TO0X2aU8uxXC6XgoODvQ4AANB++TRYVVRUqKioSEVFRZJ+uEm8qKhIe/bskcPhUHp6umbPnq0VK1Zo69atuvnmmxUZGamUlBSvdVavXq2SkhJNmjSpwR433HCDnE6nbr31Vn3++edasmSJ/vKXvygjI8OaM2XKFL333nt66qmntH37dj388MPauHGj7rzzTklqVi0AAOBXrOX/SPH48vLyjKQGR2pqqjHmh8ccTJ8+3YSFhRmXy2VGjx5tduzY0WCd66+/3owYMeK4+2zZssWcf/75xuVymdNPP9088cQTDeYsXbrUnHnmmcbpdJoBAwaYlStXeo03tZafwuMWAABoe5rz+e0wxhgf5rpfFY/Ho5CQEJWXl/O1IAAAbURzPr9b7T1WAAAAbQ3BCgAAwCYEKwAAAJsQrAAAAGxCsAIAALBJq/2tQDSdMUaHa+p8XQYAAD7n7uAvh8Phs/0JVu3A4Zo69Z+R4+syAADwuS9mJelUp+/iDV8FAgAA2IQrVu2Au4O/vpiV5OsyAADwOXcHf5/uT7BqBxwOh08vewIAgB/wVSAAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATQhWAAAANiFYAQAA2IRgBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBAADYhGAFAABgE4IVAACATXwarPLz8zV27FhFRkbK4XBo+fLlXuPGGM2YMUMRERFyu91KTExUcXFxg3VWrlyp+Ph4ud1ude7cWSkpKV7jDoejwfHaa695zVmzZo2GDBkil8ul3r17Kzs7u8E+8+fPV69evRQQEKD4+HitX7/+l74FAACgHfFpsKqsrFRsbKzmz5/f6PjcuXM1b948LVy4UIWFhQoMDFRSUpKqqqqsOf/4xz900003acKECdqyZYs+/vhj3XDDDQ3WysrK0r59+6zj2PBVUlKi5ORkjRo1SkVFRUpPT9ekSZOUk5NjzVmyZIkyMjI0c+ZMbd68WbGxsUpKStL+/fvte0MAAEDbZloJSWbZsmVWu76+3oSHh5vMzEyr7+DBg8blcpnFixcbY4ypqakxp59+unnppZeatfaPTZ061QwYMMCrb9y4cSYpKclqx8XFmbS0NKtdV1dnIiMjzZw5c5pyesYYY8rLy40kU15e3uTXAAAA32rO53ervceqpKREpaWlSkxMtPpCQkIUHx+vgoICSdLmzZv1zTffyM/PT4MHD1ZERIQuu+wybdu2rcF6aWlp6tatm+Li4vTyyy/LGGONFRQUeO0jSUlJSdY+R44c0aZNm7zm+Pn5KTEx0ZrTmOrqank8Hq8DAAC0X602WJWWlkqSwsLCvPrDwsKssS+//FKS9PDDD+uhhx7S22+/rc6dO+uiiy7Sd999Z71m1qxZWrp0qVatWqWrr75ad9xxh5555hmvvRrbx+Px6PDhw/q///s/1dXV/WQtjZkzZ45CQkKso0ePHifwTgAAgLbiFF8X8EvU19dLkh588EFdffXVkn64l6p79+56/fXXddttt0mSpk+fbr1m8ODBqqysVGZmpu66664WrW/atGnKyMiw2h6Ph3AFAEA71mqvWIWHh0uSysrKvPrLysqssYiICElS//79rXGXy6WYmBjt2bPnuGvHx8fr66+/VnV1tbVXY/sEBwfL7XarW7du8vf3/8laGuNyuRQcHOx1AACA9qvVBqvo6GiFh4crNzfX6vN4PCosLFRCQoIkaejQoXK5XNqxY4c1p6amRl999ZV69ux53LWLiorUuXNnuVwuSVJCQoLXPpK0atUqax+n06mhQ4d6zamvr1dubq41BwAAwKdfBVZUVGjXrl1Wu6SkREVFRerSpYuioqKUnp6u2bNnq0+fPoqOjtb06dMVGRlpPSohODhYkydP1syZM9WjRw/17NlTmZmZkqRrrrlGkvTWW2+prKxM5557rgICArRq1So9/vjjuueee6x9J0+erGeffVZTp07VxIkTtXr1ai1dulQrV6605mRkZCg1NVXDhg1TXFycnn76aVVWVmrChAkn4Z0CAABtQsv/keLx5eXlGUkNjtTUVGPMD49cmD59ugkLCzMul8uM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rrvkdDqVmprq6/Jst3z5ch08eFC33HKLr0uxzf333y+Px6N+/frJ399fdXV1euyxxzR+/Hhfl2aLoKAgJSQk6NFHH9VZZ52lsLAwLV68WAUFBerdu/fJL+ikXyNDi1E7/ypw8uTJpmfPnmbv3r2+LsVW1dXVpri42GzcuNHcf//9plu3bubzzz/3dVm22LNnjwkNDTVbtmyx+trbV4E/duDAARMcHNxuvs7t0KGDSUhI8Or7n//5H3Puuef6qKKWNWbMGHPFFVf4ugxbLV682HTv3t0sXrzYfPbZZ+aVV14xXbp0MdnZ2b4uzTa7du0yF154oZFk/P39zfDhw8348eNNv379TnotXLFCm3DnnXfq7bffVn5+vrp37+7rcmzldDqtf6saOnSoNmzYoL/85S96/vnnfVzZL7dp0ybt379fQ4YMsfrq6uqUn5+vZ599VtXV1fL39/dhhfbr1KmTzjzzTK8fmG/LIiIiGlxBPeuss/SPf/zDRxW1nN27d+uDDz7Qm2++6etSbHXvvffq/vvv13XXXSdJGjhwoHbv3q05c+a0m6uOZ5xxhj788ENVVlbK4/EoIiJC48aNU0xMzEmvhXus0KoZY3TnnXdq2bJlWr16taKjo31dUourr69XdXW1r8uwxejRo7V161YVFRVZx7BhwzR+/HgVFRW1u1AlSRUVFfr3v/+tiIgIX5dii/POO6/BI0527typnj17+qiilpOVlaXQ0FAlJyf7uhRbff/99/Lz8/649/f3V319vY8qajmBgYGKiIjQgQMHlJOToyuvvPKk18AVqzauoqLC69+MS0pKVFRUpC5duigqKsqHldkjLS1Nr776qv75z38qKChIpaWlkqSQkBC53W4fV/fLTZs2TZdddpmioqJ06NAhvfrqq1qzZo1ycnJ8XZotgoKCGtwPFxgYqK5du7ab++TuuecejR07Vj179tS3336rmTNnyt/fX9dff72vS7PFH/7wB40YMUKPP/64rr32Wq1fv14vvPCCXnjhBV+XZqv6+nplZWUpNTW1XT0uQ5LGjh2rxx57TFFRURowYIA+/fRT/elPf9LEiRN9XZptcnJyZIxR3759tWvXLt17773q16+fJkyYcPKLOelfPsJWeXl5RlKDIzU11del2aKxc5NksrKyfF2aLSZOnGh69uxpnE6nOe2008zo0aPN+++/7+uyWlR7u8dq3LhxJiIiwjidTnP66aebcePGmV27dvm6LFu99dZb5uyzzzYul8v069fPvPDCC74uyXY5OTlGktmxY4evS7Gdx+MxU6ZMMVFRUSYgIMDExMSYBx980FRXV/u6NNssWbLExMTEGKfTacLDw01aWpo5ePCgT2pxGNOOHr0KAADgQ9xjBQAAYBOCFQAAgE0IVgAAADYhWAEAANiEYAUAAGATghUAAIBNCFYAAAA2IVgBaPfWrFkjh8OhgwcP/qJ1brnlFqWkpNhSE4D2iWAFoE1ZuHChgoKCVFtba/VVVFSoQ4cOuuiii7zmHg1UERER2rdvn0JCQk5ytQB+bQhWANqUUaNGqaKiQhs3brT61q5dq/DwcBUWFqqqqsrqz8vLU1RUlPr27avw8HA5HA5flAzgV4RgBaBN6du3ryIiIrRmzRqrb82aNbryyisVHR2tTz75xKt/1KhRDb4KzM7OVqdOnZSTk6OzzjpLHTt21KWXXqp9+/ZZr62rq1NGRoY6deqkrl27aurUqfrxL4D16tVLTz/9tFffoEGD9PDDD1tth8Ohl156Sb/97W916qmnqk+fPlqxYoXXa1asWKE+ffooICBAo0aN0qJFixp8dfnRRx/pggsukNvtVo8ePXTXXXepsrLSq5bHH39cEydOVFBQkKKiotrdDyUDbQHBCkCbM2rUKOXl5VntvLw8XXTRRRo5cqTVf/jwYRUWFmrUqFGNrvH999/rj3/8o/72t78pPz9fe/bs0T333GONP/XUU8rOztbLL7+sjz76SN99952WLVt2QvU+8sgjuvbaa/XZZ5/p8ssv1/jx4/Xdd99JkkpKSvS73/1OKSkp2rJli2677TY9+OCDXq//97//rUsvvVRXX321PvvsMy1ZskQfffSR7rzzTq95Tz31lIYNG6ZPP/1Ud9xxh26//Xbt2LHjhGoGcIJ88tPPAPALvPjiiyYwMNDU1NQYj8djTjnlFLN//37z6quvmgsvvNAYY0xubq6RZHbv3m3y8vKMJHPgwAFjjDFZWVlGktm1a5e15vz5801YWJjVjoiIMHPnzrXaNTU1pnv37ubKK6+0+nr27Gn+/Oc/e9UWGxtrZs6cabUlmYceeshqV1RUGEnm3XffNcYYc99995mzzz7ba40HH3zQq95bb73V/P73v/eas3btWuPn52cOHz5s1XLjjTda4/X19SY0NNQsWLDgp95KADbjihWANueiiy5SZWWlNmzYoLVr1+rMM8/UaaedppEjR1r3Wa1Zs0YxMTGKiopqdI1TTz1VZ5xxhtWOiIjQ/v37JUnl5eXat2+f4uPjrfFTTjlFw4YNO6F6zznnHOu/BwYGKjg42Nprx44dGj58uNf8uLg4r/aWLVuUnZ2tjh07WkdSUpLq6+tVUlLS6D4Oh0Ph4eHWPgBOjlN8XQAANFfv3r3VvXt35eXl6cCBAxo5cqQkKTIyUj169NC6deuUl5eniy+++LhrdOjQwavtcDga3EP1c/z8/Bq8pqampkl71dfXN3mfiooK3XbbbbrrrrsajB0bHH/pPgB+Oa5YAWiTjt6UvmbNGq/HLFx44YV69913tX79+uPeX/VzQkJCFBERocLCQquvtrZWmzZt8pp32mmned3w7vF4vK4gNUXfvn29/sJRkjZs2ODVHjJkiL744gv17t27weF0Opu1H4CWRbAC0CaNGjVKH330kYqKiqwrVpI0cuRIPf/88zpy5MgJBytJmjJlip544gktX75c27dv1x133NHgAaMXX3yx/va3v2nt2rXaunWrUlNT5e/v36x9brvtNm3fvl333Xefdu7cqaVLlyo7O1uSrMdD3HfffVq3bp3uvPNOFRUVqbi4WP/85z8b3LwOwPcIVgDapFGjRunw4cPq3bu3wsLCrP6RI0fq0KFD1mMZTtTdd9+tm266SampqUpISFBQUJB++9vfes2ZNm2aRo4cqSuuuELJyclKSUnxum+rKaKjo/XGG2/ozTff1DnnnKMFCxZYfxXocrkk/XDv1IcffqidO3fqggsu0ODBgzVjxgxFRkae8PkBaBkO09ybCgAALeqxxx7TwoULtXfvXl+XAqCZuHkdAHzsueee0/Dhw9W1a1d9/PHHyszM5Gs+oI0iWAGAjxUXF2v27Nn67rvvFBUVpbvvvlvTpk3zdVkATgBfBQIAANiEm9cBAABsQrACAACwCcEKAADAJgQrAAAAmxCsAAAAbEKwAgAAsAnBCgAAwCYEKwAAAJsQrAAAAGzy/wBCWbbAelunAAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -2404,17 +2646,45 @@ " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", " puffer=puffer_eingabe,\n", " turm=turm_eingabe)\n", - " Anzahl_EAS = {}\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", " eas = rek.EA(Anzahl_EAS, mg)\n", "\n", - " Anzahl_HW = {}\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", "\n", " hw = rek.HW(Anzahl_HW, mg, eas)\n", "\n", " emo = rek.EMO(eas, hw, mg)\n", - " Anzahl_DL = {}\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", - " Anzahl_Ergebnis = {}\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", " return erg.get_sum_of_costs(hw)\n", "\n", @@ -2436,17 +2706,17 @@ " \"Puffer\":1,\n", " \"Anzahl_der_Pufferstrecken_pro_Puffer\":5,\n", " \"Begegnungsstrecke_Bypass\":2,\n", - " \"Turm\":0,\n", - " \"Turm_Anzahl_Wendlungen\":0,\n", + " \"Turm\":1,\n", + " \"Turm_Anzahl_Wendlungen\":1,\n", " }\n", "\n", "\n", "variationen = {}\n", "k = 1\n", - "while k < 6:\n", - " Anzahl_MG.update({\"Cason-Putzmaschine_Nachpuffer\": k})\n", + "while k < 10:\n", + " Anzahl_MG.update({\"Turm_Anzahl_Wendlungen\": k})\n", " erg = eine_anlage(Anzahl_MG)\n", - " variationen.update({f\"Mit {k} Nachpuffern\": erg})\n", + " variationen.update({k: erg})\n", " k += 1\n", "print(variationen)\n", "lists = sorted(variationen.items()) # sorted by key, return a list of tuples\n", @@ -2454,6 +2724,310 @@ "x, y = zip(*lists) \n", "\n", "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Windungen\")\n", + "plt.ylim(106000, 109000)\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Turm" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 106893.90666666668, 2: 108454.64666666667, 3: 110015.38666666666, 4: 111576.12666666668, 5: 113136.86666666667, 6: 114697.60666666666, 7: 116258.34666666666, 8: 117862.64666666667, 9: 119423.38666666666}\n" + ] + }, + { + "data": { + "image/png": "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uURaWpoJDg4227Ztcy6rblOB/+3s2bPG39+/2kznenp6moSEhFLLHn30UXPNNddYlKhide/e3fTu3dvqGC41d+5c06hRIzN37lyzfft288EHH5jAwEAze/Zsq6O5zMGDB811111nAOPu7m6uvvpqM2TIEBMVFXXFs+iIlVQJI0aMYNmyZaxfv55GjRpZHcel7Ha7819V7du3Z/Pmzbz99tv885//tDjZ5du6dSsnTpwgPj7euaykpIT169czffp0CgoKcHd3tzCh69WpU4eWLVty8OBBq6O4RIMGDS46gtq6dWs++eQTixJVnCNHjvDll1+yaNEiq6O41JNPPsm4ceMYOHAgAG3btuXIkSNMnjy52hx1bNasGV9//TV5eXlkZ2fToEED7r77bpo2bXrFs+gcK6nUjDGMGDGCxYsXs3btWpo0aWJ1pArncDgoKCiwOoZL3HzzzezYsYOUlBTno0OHDgwZMoSUlJRqV6oAcnNzOXToEA0aNLA6iktce+21F13iZP/+/URGRlqUqOLMmjWL4OBgevXqZXUUlzp37hxubqU/7t3d3XE4HBYlqji+vr40aNCAs2fPsmrVKvr27XvFM+iIVRWXm5tb6l/GqamppKSkEBgYSEREhIXJXGP48OHMmTOHTz/9FD8/PzIyMgAICAjAx8fH4nSXb/z48dx6661ERESQk5PDnDlz+Oqrr1i1apXV0VzCz8/vovPhfH19CQoKqjbnyT3xxBP06dOHyMhI0tPTmThxIu7u7gwaNMjqaC7x2GOP0blzZ1566SUGDBjApk2beO+993jvvfesjuZSDoeDWbNmMXTo0Gp1uQyAPn368I9//IOIiAjatGlDcnIyb7zxBg888IDV0Vxm1apVGGNo1aoVBw8e5MknnyQqKor777//yoe54pOP4lLr1q0zwEWPoUOHWh3NJS61b4CZNWuW1dFc4oEHHjCRkZHGbreb+vXrm5tvvtl88cUXVseqUNXtHKu7777bNGjQwNjtdtOwYUNz9913m4MHD1ody6U+++wzc9VVVxkvLy8TFRVl3nvvPasjudyqVasMYPbt22d1FJfLzs42o0aNMhEREcbb29s0bdrUPPPMM6agoMDqaC4zf/5807RpU2O3201oaKgZPny4yczMtCSLzZhqdOlVEREREQvpHCsRERERF1GxEhEREXERFSsRERERF1GxEhEREXERFSsRERERF1GxEhEREXERFSsRERERF1GxEhEREXERFSsRkUs4fPgwNpuNlJQU3nrrLRo3bmx1JBGpAnTldRGpkWw222+uf/bZZxk+fDj16tWjsLCQvLw86tevf4XSiUhVpWIlIjXShRt6A8yfP58JEyawb98+57LatWtTu3btMm+vpKQEm82Gm5smAkRqMv0GEJEaKTQ01PkICAjAZrM5n+/duxc/Pz8yMzOd41NSUrDZbBw+fBiA2bNnU6dOHZYuXUp0dDReXl6kpaXRuHFjXnzxRe677z5q165NZGQkS5cu5eTJk/Tt25fatWvTrl07tmzZUirPN998Q9euXfHx8SE8PJyRI0eSl5d3BX8iIuIKKlYiIn/QuXPnmDJlCv/zP//Drl27CA4OBuDNN9/k2muvJTk5mV69enHvvfdy3333cc8995CUlESzZs247777uDBhcOjQIXr27Mkdd9zB9u3bmT9/Pt988w0jRoywcvdE5A9QsRIR+YOKiop455136Ny5M61ataJWrVoA3HbbbTz88MO0aNGCCRMmkJ2dzdVXX81dd91Fy5YtGTt2LHv27OH48eMATJ48mSFDhjB69GhatGhB586dmTp1Kh988AH5+flW7qKIlJOKlYjIH2S322nXrt1Fy3+5LCQkBIC2bdtetOzEiRMAbNu2jdmzZzvP66pduzY9evTA4XCQmppakbsgIi7mYXUAEZHK5sIJ6L/8bk9RUdFF43x8fC757UJPT0/n/7+w/lLLHA4HALm5uTz88MOMHDnyom1FRET8kV0QEYuoWImI/JcLl1X46aefqFu3LvDzyesVJT4+nt27d9O8efMKew8RuTI0FSgi8l+aN29OeHg4kyZN4sCBAyxfvpzXX3+9wt5v7NixbNy4kREjRpCSksKBAwf49NNPdfK6SBWkYiUi8l88PT2ZO3cue/fupV27dkyZMoUXX3yxwt6vXbt2fP311+zfv5+uXbsSFxfHhAkTCAsLq7D3FJGKoQuEioiIiLiIjliJiIiIuIiKlYiIiIiLqFiJiIiIuIiKlYiIiIiLqFiJiIiIuIiKlYiIiIiLqFiJiIiIuIiKlYiIiIiLqFiJiIiIuIiKlYiIiIiLqFiJiIiIuIiKlYiIiIiL/D8DkC8KA39MSQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import rieter_ekalk as rek\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def eine_anlage(Anzahl_MG):\n", + "\n", + " rsm_direct_eingabe = {\n", + " }\n", + " rsm_fa_eingabe = {\n", + " \"Flex_A_Premium\":False, # braucht man das noch?\n", + " \"Getriebe_in_der_Mitte\":False, # braucht man das noch?\n", + " \"RSM_Einfahrt_Ein_Beidseitig\":False, # braucht man das noch?\n", + " \"Sensor_optisch_Traverse_zusätzlich\":6,\n", + " \"Bedientableau_1fach_Korrektur\":0,\n", + " \"Bedientableau_2fach_Korrektur\":4,\n", + " \"Weiche_Korrektur\":4,\n", + " \"RRA_bi_Korrektur\":0,\n", + " \"RRA_bi_auf_Haupstrecke\":10,\n", + " \"RRA_uni_Begegnung\":4,\n", + " \"gemeinsame_Wendung\":0,\n", + " \"Mit_Drucktaster_Korrektur\":0,\n", + " \"Meldelampe_Überstrom_Korrektur\":0,\n", + " \"Hauptschalter_Ein-Meldung_Korrektur\":0,\n", + " \"Werma_Rundumleuchte_Störung_Korrektur\":0,\n", + " \"klemmkasten_rsm\":2,\n", + " }\n", + " flyer_f40_eingabe = {\n", + " #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet\n", + " #\"Anzahl\":0,\n", + " #\"Flyer_Electrojet_incl_intergrierte_Putzmaschine\":0, #wird in deckblatt-Klasse berechnet\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur\":0,\n", + " #\"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\":2, #wird in deckblatt-Klasse berechnet\n", + " #\"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\":2, #wird in deckblatt-Klasse berechnet\n", + " #\"Anzahl_Schienen\":0,\n", + " \"Single_Line_Durchfahrt\":False,\n", + " \"Nachpuffer\":False,\n", + " #\"Sensor_optisch_Traverse\":0,\n", + " \"Sensor_optisch_Traverse_Korrektur\":0,\n", + " #\"Sensor_induktiv_Spulenhalter\":0,\n", + " \"Sensor_induktiv_Spulenhalter_Korrektur\":0,\n", + " #\"Bedientableau_2fach\":0,\n", + " \"Bedientableau_2fach_Korrektur\":0,\n", + " #\"Interface_Doffer\":0,\n", + " \"Interface_Doffer_Korrektur\":0,\n", + " #\"Weiche\":0,\n", + " \"Weiche_Korrektur\":0,\n", + " #\"Weiche_nach_Flyer_bipolar\":0,\n", + " \"Weiche_nach_Flyer_bipolar_Korrektur\":0,\n", + " \"Dreifachweiche\":0,\n", + " \"Wechsel\":0,\n", + " \"Stopper\":0,\n", + " \"RA_uni\":0,\n", + " #\"RA_uni_abhebbar\":0,\n", + " \"RA_uni_abhebbar_Korrektur\":0,\n", + " #\"RA_uni_ohne_SPS_Ansteuerung\":0,\n", + " \"RA_uni_ohne_SPS_Ansteuerung_Korrektur\":0,\n", + " #\"RRA_BI_abhebbar\":0,\n", + " \"RRA_BI_abhebbar_Korrektur\":0,\n", + " \"RRA_bi\":0,\n", + " #\"RRA_bi_Korrektur\":0,\n", + " #\"RRA_bi_ohne_SPS_Ansteuerung\":0,\n", + " \"RRA_bi_ohne_SPS_Ansteuerung_Korrektur\":0,\n", + " #\"Doppelstreckenantrieb\":0,\n", + " \"Doppelstreckenantrieb_Korrektur\":0,\n", + " \"RA_bi_abhebbar_unger_Schiene\":0,\n", + " #\"Meldelampe_Überstrom\":0,\n", + " \"Meldelampe_Überstrom_Korrektur\":0,\n", + " #\"Hauptschalter_Ein_Meldung\":0,\n", + " \"Hauptschalter_Ein-Meldung_Korrektur\":0,\n", + " #\"Werma_Rundumleuchte_Störung\":0,\n", + " \"Werma_Rundumleuchte_Störung_Korrektur\":0,\n", + " }\n", + " neuenhauser_eingabe = {\n", + " #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet\n", + " #\"Anzahl\":0,\n", + " #\"Neuenhauser-Putzmaschine\":0, #wird in deckblatt-Klasse zugewiesen\n", + " #\"Neuenhauser-Putzmaschine_Vorpuffer\":0, #wird in deckblatt-Klasse zugewiesen\n", + " #\"Neuenhauser-Putzmaschine_Nachpuffer\":0, #wird in deckblatt-Klasse zugewiesen\n", + " #\"Anzahl_Vorstaustrecken\":0,\n", + " #\"Anzahl_Nachstaustrecken\":0,\n", + " #\"Sensor_optisch_Traverse\":0,\n", + " \"Sensor_optisch_Traverse_Korrektur\":0,\n", + " #\"Sensorik_Zugpositionierung\":0,\n", + " #\"Sensor_WT18_Spulenprüfung_voll_leer\":0,\n", + " #\"Bedientableau_2fach\":0,\n", + " \"Bedientableau_2fach_Korrektur\":0,\n", + " #\"Interface_Putzmaschine\":0,\n", + " #\"Weiche\":0,\n", + " \"Weiche_Korrektur\":0,\n", + " #\"Weiche_nach_PM_bipolar\":0,\n", + " #\"RA_uni_abhebbar\":0,\n", + " \"RA_uni_abhebbar_Korrektur\":0,\n", + " #\"RA_uni_ohne_SPS_Ansteuerung\":0,\n", + " #\"RA_uni_abhebbar_unger_Sch\":0,\n", + " #\"Doppelstreckenantrieb\":0,\n", + " #\"Meldelampe_Überstrom\":0,\n", + " \"Meldelampe_Überstrom_Korrektur\":0,\n", + " #\"Hauptschalter_Ein_Meldung\":0,\n", + " \"Hauptschalter_Ein-Meldung_Korrektur\":0,\n", + " #\"Werma_Rundumleuchte_Störung\":0,\n", + " \"Werma_Rundumleuchte_Störung_Korrektur\":0,\n", + " }\n", + " flyer_eingabe = {\n", + " #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet\n", + " #\"Anzahl\":0,\n", + " #\"Flyer\":0, # äquivalent zu 'Anzahl'\n", + " #\"Anzahl_Schienen:\":0,\n", + " #\"Sensor_optisch_Traverse\":0,\n", + " \"Sensor_optisch_Traverse_Korrektur\":0,\n", + " #\"Sensor_induktiv_Spulenalter_Zug_positionierung\":0,\n", + " #\"Bedientableau_2fach\":0,\n", + " #\"Interface_Doffer\":0,\n", + " #\"Weiche\":0,\n", + " \"Weiche_Korrektur\":0,\n", + " #\"Weiche_nach_Flyer_bipolar\":0,\n", + " \"Dreifachweiche\":0,\n", + " #\"Wechsel\":0,\n", + " \"Wechsel_Korrektur\":0,\n", + " #\"RA_bi_ohne_SPS-Ansteuerung\":0,\n", + " #\"RA_bi_abhebbar\":0,\n", + " \"RA_bi_abhebbar_Korrektur\":0,\n", + " \"RA_bi\":4,\n", + " #\"Doppelstreckenantrieb\":0,\n", + " \"RA_bi_abhebbar_unger_Schiene\":0,\n", + " #\"Meldelampe_Überstrom\":0,\n", + " \"Meldelampe_Überstrom_Korrektur\":0,\n", + " #\"Hauptschalter_Ein_Meldung\":0,\n", + " \"Hauptschalter_Ein-Meldung_Korrektur\":0,\n", + " #\"Werma_Rundumleuchte_Störung\":0,\n", + " \"Werma_Rundumleuchte_Störung_Korrektur\":0,\n", + " }\n", + " verbindungsstrecken_w_eingabe = {\n", + " #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet\n", + " #\"Sensor_optisch_Traverse\":0,\n", + " \"Bedientableau_1fach\":0,\n", + " \"Bedientableau_2fach\":0,\n", + " \"Bedientableau_14fach\":0,\n", + " \"Weiche\":0,\n", + " \"Dreifachweiche\":0,\n", + " \"Kreuzungsweiche\":1,\n", + " \"Werma_Rundumleuchte_Störung\":0,\n", + " \"RA_uni\":0,\n", + " \"RA_uni_ohne_SPS_Ansteuerung\":0,\n", + " \"RA_bi\":0,\n", + " \"RA_bi_ohne_SPS-Ansteuerung\":0,\n", + " \"Doppelstreckenantrieb\":0\n", + " }\n", + " puffer_eingabe = {\n", + " # auskommentiert => kein Übergabeparameter, wird in Klasse berechnet\n", + " # \"Anzahl\":0,\n", + " # \"Puffer\":0, #äquivalent zu Anzahl\n", + " # \"Anzahl_Pufferstrecken\":0, #äquivalent zu Anzahl_Staustrecken\n", + " # \"Anzahl_Staustrecken\":0,\n", + " # \"Sensor_optisch_Traverse\":0,\n", + " \"Sensor_optisch_Traverse_Korrektur\": 1,\n", + " # \"Weiche\":0,\n", + " \"Weiche_Korrektur\": 0,\n", + " \"RA_bi_ungerade_Schiene\": 2,\n", + " # \"Doppelstreckenantrieb\":0,\n", + " # \"Meldelampe_Überstrom\":0,\n", + " \"Meldelampe_Überstrom_Korrektur\": 0,\n", + " # \"Hauptschalter_Ein_Meldung\":0,\n", + " \"Hauptschalter_Ein-Meldung_Korrektur\": 0,\n", + " }\n", + " turm_eingabe = {\n", + " #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet\n", + " #\"Anzahl\":0,\n", + " #\"Turm\":0, #äquivalent zu Anzahl\n", + " #\"Anzahl_Wendlungen\":0, #äquivalent zu Anzahl_Staustrecken\n", + " #\"Anzahl_Staustrecken\":0,\n", + " #\"Sensor_optisch_Traverse\":0,\n", + " #\"Weiche\":0,\n", + " #\"RA_bi\":0,\n", + " \"RA_bi_Korrektur\":0,\n", + " #\"RA_bi_ohne_SPS\":0,\n", + " \"RA_bi_ohne_SPS_Korrektur\":0,\n", + " #\"Bedientableau_2fach\":0,\n", + " }\n", + " mg = rek.MG(Anzahl_MG,\n", + " rsm_direct=rsm_direct_eingabe,\n", + " rsm_fa=rsm_fa_eingabe,\n", + " flyer_f40=flyer_f40_eingabe,\n", + " neuenhauser=neuenhauser_eingabe,\n", + " flyer=flyer_eingabe,\n", + " verbindungsstrecken_w=verbindungsstrecken_w_eingabe,\n", + " puffer=puffer_eingabe,\n", + " turm=turm_eingabe)\n", + " Anzahl_EAS = {\n", + " \"schaltschrank\":1\n", + " }\n", + " eas = rek.EA(Anzahl_EAS, mg)\n", + "\n", + " Anzahl_HW = {\n", + " \"schaltschrankgehaeuse_b1x1200+1x800_zubehoer\": 1,\n", + " \"sps_simatic_s7_1515_2\": 1,\n", + " \"et200_sp_ea_ebene\":1,\n", + " \"netzwerk_fernwartung\":1,\n", + " \"anlagenrechner\":1,\n", + " \"unterverteiler_fuer_2flyer\":2,\n", + " \"unterverteiler_fuer_puffer\":1,\n", + "\n", + " \"korrektur_5_rsm_zusaetzlich_im_unterverteiler\":-1,\n", + "\n", + " \"korrektur_10_rsm_zusaetzlich_im_unterverteiler\":-2,\n", + "\n", + " \"ET200_SP\":1,\n", + " \"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last\":\"et200_sp_base_unit_neue_last_mit_potKlemmen\",\n", + "\n", + " # MATERIAL VOR ORT\n", + " \"kabelpritschen_leitern_200_60\":348,\n", + " \"kleinteile_rohre_schellen_kabelbinder_ect\":1.5,\n", + " \"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\":\"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc\"\n", + " }\n", + "\n", + " hw = rek.HW(Anzahl_HW, mg, eas)\n", + "\n", + " emo = rek.EMO(eas, hw, mg)\n", + " Anzahl_DL = {\n", + " \"Bedienerhandbuch\": 16,\n", + " \"SPS_Doku\": 15\n", + " }\n", + " dl = rek.Dienstleistung(Anzahl_DL, hw)\n", + " Anzahl_Ergebnis = {\n", + " \"SPS_Programmierung\":150,\n", + " \"SPS_Inbetriebsetzung\":130\n", + " }\n", + " erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo)\n", + " return erg.get_sum_of_costs(hw)\n", + "\n", + "\n", + "Anzahl_MG = {\n", + " \"SYSTEM\": \"FA\",\n", + " \"RSM\":14,\n", + " \"Flyer\":4,\n", + " \"Flyer_Puffer\":2,\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine\":0,\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer\":0,\n", + " \"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer\":0,\n", + " \"Neuenhauser-Putzmaschine\":0,\n", + " \"Neuenhauser-Putzmaschine_Vorpuffer\":0,\n", + " \"Neuenhauser-Putzmaschine_Nachpuffer\":0,\n", + " \"Cason-Putzmaschine\":0,\n", + " \"Cason-Putzmaschine_Vorpuffer\":0,\n", + " \"Cason-Putzmaschine_Nachpuffer\":0,\n", + " \"Puffer\":1,\n", + " \"Anzahl_der_Pufferstrecken_pro_Puffer\":5,\n", + " \"Begegnungsstrecke_Bypass\":2,\n", + " \"Turm\":1,\n", + " \"Turm_Anzahl_Wendlungen\":1,\n", + " }\n", + "\n", + "\n", + "variationen = {}\n", + "k = 1\n", + "while k < 10:\n", + " Anzahl_MG.update({\"Turm\": k})\n", + " erg = eine_anlage(Anzahl_MG)\n", + " variationen.update({k: erg})\n", + " k += 1\n", + "print(variationen)\n", + "lists = sorted(variationen.items()) # sorted by key, return a list of tuples\n", + "\n", + "x, y = zip(*lists) \n", + "\n", + "plt.plot(x, y)\n", + "plt.ylabel(\"Preis [€]\")\n", + "plt.xlabel(\"Türme\")\n", "plt.show()" ] } diff --git a/rieter_ekalk.py b/rieter_ekalk.py index ad69bf2..6e7f5c7 100644 --- a/rieter_ekalk.py +++ b/rieter_ekalk.py @@ -1,9 +1,6 @@ -import unittest -import test_jayjay import math import json - - +import configparser JSON_IDENT = 5 @@ -67,8 +64,14 @@ class MG(): if deckblatt.get("Puffer", 0) > 0: if deckblatt.get("Anzahl_der_Pufferstrecken_pro_Puffer", 0) < 2: raise Exception("mind. 2 Strecken sollten im Puffer existieren") - + # wenn Flyer, dann entweder neuenhauser- oder cason-Putzmaschine + if deckblatt.get("Flyer", 0) > 0: + if deckblatt.get("Neuenhauser-Putzmaschine", 0) < 0 and deckblatt.get("Cason-Putzmaschine", 0) < 0: + raise Exception("bei Verwendung von Flyern müssen Neuenhauser- oder Cason-Putzmaschinen existieren") # Bypass, wenn mindestens 2 Flyer oder 2 RSM + if deckblatt.get("Begegnungsstrecke_Bypass", 0) > 0: + if deckblatt.get("Flyer", 0) < 2 and deckblatt.get("RSM", 0) < 0: + raise Exception("Bypass, wenn mindestens 2 Flyer oder 2 RSM") # Turm: kein Kriterium self._RSM_Anzahl = deckblatt.get("RSM", 0) rsm_direct_mengen = {} @@ -333,7 +336,7 @@ class MG(): self._flyer_f40._Mengen.get("RRA_bi_ohne_SPS_Ansteuerung", 0) +\ self._flyer._Mengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) +\ self._verbindungsstrecken_w._Mengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) +\ - self._turm._Mengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) #TODO: Notation beachten: RA_bi, RRA_bi + self._turm._Mengen.get("RA_bi_ohne_SPS", 0) #TODO: Notation beachten: RA_bi, RRA_bi zmengen["RA_bi_abhebbar"] = self._rsm_direct._Mengen.get("RA_bi_abhebbar", 0) +\ self._flyer_f40._Mengen.get("RRA_BI_abhebbar", 0) +\ self._flyer._Mengen.get("RA_bi_abhebbar", 0) #TODO: Notation beachten: RA_bi, RRA_bi @@ -557,7 +560,7 @@ class Flyer_F40_EJet_inc_Putz(): #"RRA_BI_abhebbar":0, "RRA_BI_abhebbar_Korrektur":0, "RRA_bi":0, - #"RRA_bi_Korrektur":0, + "RRA_bi_Korrektur":0, #"RRA_bi_ohne_SPS_Ansteuerung":0, "RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0, #"Doppelstreckenantrieb":0, @@ -573,7 +576,7 @@ class Flyer_F40_EJet_inc_Putz(): def __init__(self, anzahl:dict): self._Mengen = self.mengen - anzahl = self._Mengen + #anzahl = self._Mengen self._Flyer_Anzahl = anzahl.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine", 0) +\ anzahl.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur", 0) @@ -590,25 +593,25 @@ class Flyer_F40_EJet_inc_Putz(): if (anzahl.get("Nachpuffer", False)): sensorfaktor_nachpuffer = 5 self._Mengen["Sensor_optisch_Traverse"] = self._Flyer_Anzahl * (self._Mengen.get("Anzahl_Schienen", 0) + sensorfaktor_nachpuffer) + anzahl.get("Dreifachweiche", 0) * 2 + anzahl.get("Sensor_optisch_Traverse_Korrektur", 0) - self._Mengen["Sensor_optisch_Traverse_Korrektur"] = self.mengen.get("Sensor_optisch_Traverse_Korrektur", 0) + self._Mengen["Sensor_optisch_Traverse_Korrektur"] = anzahl.get("Sensor_optisch_Traverse_Korrektur", 0) self._Mengen["Sensor_induktiv_Spulenhalter"] = self._Flyer_Anzahl * 2 + anzahl.get("Sensor_induktiv_Spulenhalter_Korrektur", 0) - self._Mengen["Sensor_induktiv_Spulenhalter_Korrektur"] = self.mengen.get("Sensor_induktiv_Spulenhalter_Korrektur", 0) + self._Mengen["Sensor_induktiv_Spulenhalter_Korrektur"] = anzahl.get("Sensor_induktiv_Spulenhalter_Korrektur", 0) self._Mengen["Bedientableau_2fach"] = self._Flyer_Anzahl + anzahl.get("Bedientableau_2fach_Korrektur", 0) - self._Mengen["Bedientableau_2fach_Korrektur"] = self.mengen.get("Bedientableau_2fach_Korrektur", 0) + self._Mengen["Bedientableau_2fach_Korrektur"] = anzahl.get("Bedientableau_2fach_Korrektur", 0) self._Mengen["Interface_Doffer"] = self._Flyer_Anzahl + anzahl.get("Interface_Doffer_Korrektur", 0) - self._Mengen["Interface_Doffer_Korrektur"] = self.mengen.get("Interface_Doffer_Korrektur", 0) + self._Mengen["Interface_Doffer_Korrektur"] = anzahl.get("Interface_Doffer_Korrektur", 0) self._Mengen["Weiche"] = self._Flyer_Anzahl * self._Mengen.get("Anzahl_Schienen", 0) + anzahl.get("Weiche_Korrektur", 0) + anzahl.get("Wechsel", 0) - self._Mengen["Weiche_Korrektur"] = self.mengen.get("Weiche_Korrektur", 0) + self._Mengen["Weiche_Korrektur"] = anzahl.get("Weiche_Korrektur", 0) if (anzahl.get("Single_Line_Durchfahrt", False)): self._Mengen["Weiche_nach_Flyer_bipolar"] = self._Flyer_Anzahl + anzahl.get("Weiche_nach_Flyer_bipolar_Korrektur", 0) else: self._Mengen["Weiche_nach_Flyer_bipolar"] = anzahl.get("Weiche_nach_Flyer_bipolar_Korrektur", 0) - self._Mengen["Weiche_nach_Flyer_bipolar_Korrektur"] = self.mengen.get("Weiche_nach_Flyer_bipolar_Korrektur", 0) - self._Mengen["Dreifachweiche"] = self.mengen.get("Dreifachweiche", 0) - self._Mengen["Wechsel"] = self.mengen.get("Wechsel", 0) - self._Mengen["Stopper"] = self.mengen.get("Stopper", 0) - self._Mengen["RA_uni"] = self.mengen.get("RA_uni", 0) + self._Mengen["Weiche_nach_Flyer_bipolar_Korrektur"] = anzahl.get("Weiche_nach_Flyer_bipolar_Korrektur", 0) + self._Mengen["Dreifachweiche"] = anzahl.get("Dreifachweiche", 0) + self._Mengen["Wechsel"] = anzahl.get("Wechsel", 0) + self._Mengen["Stopper"] = anzahl.get("Stopper", 0) + self._Mengen["RA_uni"] = anzahl.get("RA_uni", 0) rraunifaktor_durchfahrt = 0 rraunifaktor_nachpuffer = 1 @@ -617,20 +620,25 @@ class Flyer_F40_EJet_inc_Putz(): if (anzahl.get("Nachpuffer", False)): rraunifaktor_nachpuffer = 0 self._Mengen["RA_uni_abhebbar"] = self._Flyer_Anzahl * (rraunifaktor_durchfahrt + rraunifaktor_nachpuffer) + anzahl.get("RA_uni_abhebbar_Korrektur", 0) - self._Mengen["RA_uni_abhebbar_Korrektur"] = self.mengen.get("RA_uni_abhebbar_Korrektur", 0) + self._Mengen["RA_uni_abhebbar_Korrektur"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0) if (anzahl.get("Single_Line_Durchfahrt", False)): self._Mengen["RA_uni_ohne_SPS_Ansteuerung"] = self._Flyer_Anzahl else: self._Mengen["RA_uni_ohne_SPS_Ansteuerung"] = anzahl.get("RA_uni_ohne_SPS_Ansteuerung_Korrektur", 0) - self._Mengen["RA_uni_ohne_SPS_Ansteuerung_Korrektur"] = self.mengen.get("RA_uni_ohne_SPS_Ansteuerung_Korrektur", 0) + self._Mengen["RA_uni_ohne_SPS_Ansteuerung_Korrektur"] = anzahl.get("RA_uni_ohne_SPS_Ansteuerung_Korrektur", 0) if (anzahl.get("Single_Line_Durchfahrt", False)): - self._Mengen["RRA_BI_abhebbar"] = self._Flyer_Anzahl - else: self._Mengen["RRA_BI_abhebbar"] = anzahl.get("RRA_BI_abhebbar_Korrektur", 0) - self._Mengen["RRA_BI_abhebbar_Korrektur"] = self.mengen.get("RRA_BI_abhebbar_Korrektur", 0) - self._Mengen["RRA_bi"] = self.mengen.get("RRA_bi", 0) + else: + self._Mengen["RRA_BI_abhebbar"] = self._Flyer_Anzahl + self._Mengen["RRA_BI_abhebbar_Korrektur"] = anzahl.get("RRA_BI_abhebbar_Korrektur", 0) + + if (anzahl.get("Single_Line_Durchfahrt", False)): + self._Mengen["RRA_bi"] = anzahl.get("RA_uni_abhebbar_Korrektur", 0) + anzahl.get("RRA_bi_Korrektur", 0) + else: + self._Mengen["RRA_bi"] = self._Flyer_Anzahl + anzahl.get("RRA_bi_Korrektur", 0) + self._Mengen["RRA_bi_Korrektur"] = anzahl.get("RRA_bi_Korrektur", 0) if (anzahl.get("Single_Line_Durchfahrt", False)): self._Mengen["RRA_bi_ohne_SPS_Ansteuerung"] = anzahl.get("RRA_bi_ohne_SPS_Ansteuerung_Korrektur", 0) @@ -641,15 +649,15 @@ class Flyer_F40_EJet_inc_Putz(): self._Mengen["Doppelstreckenantrieb"] = self._Flyer_Anzahl * math.floor(self._Mengen.get("Anzahl_Schienen", 0)/2) + self._Flyer_Anzahl else: self._Mengen["Doppelstreckenantrieb"] = self._Flyer_Anzahl * math.floor(self._Mengen.get("Anzahl_Schienen", 0)/2) + anzahl.get("Doppelstreckenantrieb_Korrektur", 0) - self._Mengen["Doppelstreckenantrieb_Korrektur"] = self.mengen.get("Doppelstreckenantrieb_Korrektur", 0) - self._Mengen["RA_bi_abhebbar_unger_Schiene"] = self.mengen.get("RA_bi_abhebbar_unger_Schiene", 0) + self._Mengen["Doppelstreckenantrieb_Korrektur"] = anzahl.get("Doppelstreckenantrieb_Korrektur", 0) + self._Mengen["RA_bi_abhebbar_unger_Schiene"] = anzahl.get("RA_bi_abhebbar_unger_Schiene", 0) self._Mengen["Meldelampe_Überstrom"] = self._Flyer_Anzahl + anzahl.get("Meldelampe_Überstrom_Korrektur", 0) - self._Mengen["Meldelampe_Überstrom_Korrektur"] = self.mengen.get("Meldelampe_Überstrom_Korrektur", 0) + self._Mengen["Meldelampe_Überstrom_Korrektur"] = anzahl.get("Meldelampe_Überstrom_Korrektur", 0) self._Mengen["Hauptschalter_Ein_Meldung"] = self._Flyer_Anzahl + anzahl.get("Hauptschalter_Ein-Meldung_Korrektur", 0) - self._Mengen["Hauptschalter_Ein-Meldung_Korrektur"] = self.mengen.get("Hauptschalter_Ein-Meldung_Korrektur", 0) + self._Mengen["Hauptschalter_Ein-Meldung_Korrektur"] = anzahl.get("Hauptschalter_Ein-Meldung_Korrektur", 0) self._Mengen["Werma_Rundumleuchte_Störung"] = self._Flyer_Anzahl + anzahl.get("Werma_Rundumleuchte_Störung_Korrektur", 0) - self._Mengen["Werma_Rundumleuchte_Störung_Korrektur"] = self.mengen.get("Werma_Rundumleuchte_Störung_Korrektur", 0) + self._Mengen["Werma_Rundumleuchte_Störung_Korrektur"] = anzahl.get("Werma_Rundumleuchte_Störung_Korrektur", 0) def anzahl(self, partname, defaultv = 0): return self._Mengen.get(partname, defaultv) @@ -915,7 +923,7 @@ class Turm(): class EA(): stueckzahl = { - "schaltschrank":1, + "Bedienelemente_Steuerschrank":1, # "bedienstation_1fach_Not_Aus": (1, 1), # "bedienstation_einfach_Zug_Wechseln": (1, 1), # "bedienstation_automatische_Umfahrung": (1, 1), # in Excel Drucktaster automatische Umfahrung? ansonsten fehlt in Excel @@ -984,7 +992,7 @@ class EA(): # Bedienstation, "bedienstation_1fach_Not_Aus": (1, 1), "bedienstation_einfach_Zug_Wechseln": (1, 1), - "bedienstation_automatische_Umfahrung": (1, 1), # in Excel Drucktaster automatische Umfahrung? ansonsten fehlt in Excel + "bedienstation_automatische_Umfahrung": (1, 1), "bedienstation_zweifach_Wechs_BCD_10f": (5, 1), "bedienstation_zweifach_Not_Aus_Reset": (2, 2), "bedienst_dreifach": (3, 3), @@ -1028,17 +1036,17 @@ class EA(): "gemeinsame_Wendung": (0, 2), "Frequenzumrichter": (1, 3) } - self._Anzahl = anzahl - self._Anzahl["Bedienelemente_Steuerschrank"] = self.stueckzahl.get("schaltschrank") + self._Anzahl = self.stueckzahl + self._Anzahl["Bedienelemente_Steuerschrank"] = anzahl.get("schaltschrank", 0) zmengen = mg.zusammenfassung() self._Anzahl["bedienstation_einfach_Zug_Wechseln"] = zmengen.get("Bedientableau_1fach", 0) self._Anzahl["bedienstation_automatische_Umfahrung"] = math.ceil(zmengen.get("Drucktaster_automatische_Umfahrung", 0)/4) self._Anzahl["bedienstation_zweifach_Wechs_BCD_10f"] = mg.get_value_of_object("rsm_direct", "Bedientableau_2fach_Direct") self._Anzahl["bedienstation_zweifach_Not_Aus_Reset"] = zmengen.get("Bedientableau_2fach", 0) - self._Anzahl["bedienst_dreifach"] = self.stueckzahl.get("bedienst_dreifach") - self._Anzahl["bedienst_vierfach"] = self.stueckzahl.get("bedienst_vierfach") - self._Anzahl["bedienst_sechsfach"] = self.stueckzahl.get("bedienst_sechsfach") + self._Anzahl["bedienst_dreifach"] = anzahl.get("bedienst_dreifach", 0) + self._Anzahl["bedienst_vierfach"] = anzahl.get("bedienst_vierfach", 0) + self._Anzahl["bedienst_sechsfach"] = anzahl.get("bedienst_sechsfach", 0) self._Anzahl["EAs_Unterverteiler_direct"] = mg.get_value_of_object("rsm_direct", "Bedientableau_2fach_Direct") # Ermittlung_Mengengeruest_Anzahl @@ -1050,7 +1058,7 @@ class EA(): self._Anzahl["Weiche"] = zmengen.get("Weiche", 0) self._Anzahl["Weiche_nach_PM_bipolar"] = zmengen.get("Weiche_nach_PM_bipolar", 0) - self._Anzahl["gemeinsame_Weichenrueckstellung"] = self.stueckzahl.get("gemeinsame_Weichenrueckstellung") + self._Anzahl["gemeinsame_Weichenrueckstellung"] = anzahl.get("gemeinsame_Weichenrueckstellung", 0) self._Anzahl["Dreifach_Weiche_DIRECT"] = zmengen.get("Dreifachweiche", 0) @@ -1058,22 +1066,22 @@ class EA(): self._Anzahl["Stopper"] = zmengen.get("Stopper", 0) self._Anzahl["RA_unidirektional"] = zmengen.get("RA_uni", 0) self._Anzahl["RA_unidirektional_abhebbar"] = zmengen.get("RA_uni_abhebbar", 0) - self._Anzahl["RA_unidirektional_mit_gemeinsamer_Wendung"] = self.stueckzahl.get("RA_unidirektional_mit_gemeinsamer_Wendung") + self._Anzahl["RA_unidirektional_mit_gemeinsamer_Wendung"] = anzahl.get("RA_unidirektional_mit_gemeinsamer_Wendung", 0) self._Anzahl["RA_unidirektional_ohne_SPS_Ansteuerung"] = zmengen.get("RA_uni_ohne_SPS_Ansteuerung", 0) self._Anzahl["RA_bidirektional"] = zmengen.get("RA_bi", 0) self._Anzahl["RA_bidirektional_abhebbar"] = zmengen.get("RA_bi_abhebbar", 0) - self._Anzahl["RA_bidirektional_abhebbar_gemeinsWend"] = self.stueckzahl.get("RA_bidirektional_abhebbar_gemeinsWend") + self._Anzahl["RA_bidirektional_abhebbar_gemeinsWend"] = anzahl.get("RA_bidirektional_abhebbar_gemeinsWend", 0) self._Anzahl["RA_bidirektional_ohne_SPS_Ansteuerung"] = zmengen.get("RA_bi_ohne_SPS-Ansteuerung", 0) - self._Anzahl["RA_in_RSM_bidirektional"] = self.stueckzahl.get("RA_in_RSM_bidirektional") + self._Anzahl["RA_in_RSM_bidirektional"] = anzahl.get("RA_in_RSM_bidirektional", 0) self._Anzahl["Doppelstreckenantrieb"] = zmengen.get("Doppelstreckenantrieb", 0) - self._Anzahl["Doppelstreckenantriebgemeinsame_Wendung"] = self.stueckzahl.get("Doppelstreckenantriebgemeinsame_Wendung") - self._Anzahl["gemeinsame_Wendung"] = self.stueckzahl.get("gemeinsame_Wendung") - self._Anzahl["Frequenzumrichter"] = self.stueckzahl.get("Frequenzumrichter") - self._Anzahl["Ventil_RA_3_2_abhebbar"] = anzahl.get("RA_unidirektional_abhebbar") +\ - self.stueckzahl.get("RA_unidirektional_mit_gemeinsamer_Wendung") +\ - anzahl.get("RA_unidirektional_ohne_SPS_Ansteuerung", 0) +\ - anzahl.get("RA_bidirektional_abhebbar", 0) +\ - self.stueckzahl.get("RA_bidirektional_abhebbar_gemeinsWend") + self._Anzahl["Doppelstreckenantriebgemeinsame_Wendung"] = anzahl.get("Doppelstreckenantriebgemeinsame_Wendung", 0) + self._Anzahl["gemeinsame_Wendung"] = anzahl.get("gemeinsame_Wendung", 0) + self._Anzahl["Frequenzumrichter"] = anzahl.get("Frequenzumrichter", 0) + self._Anzahl["Ventil_RA_3_2_abhebbar"] = self.anzahl("RA_unidirektional_abhebbar") +\ + self.anzahl("RA_unidirektional_mit_gemeinsamer_Wendung") +\ + self.anzahl("RA_unidirektional_ohne_SPS_Ansteuerung") +\ + self.anzahl("RA_bidirektional_abhebbar") +\ + self.anzahl("RA_bidirektional_abhebbar_gemeinsWend") self._Anzahl["Ventil_Doppelstreckenantrieb_5_2_abhebbar"] = zmengen.get("Doppelstreckenantrieb", 0) self._Anzahl["Blitzleuchte_Stoerung"] = zmengen.get("Werma_Rundumleuchte_Störung", 0) @@ -1086,7 +1094,7 @@ class EA(): mg.get_value_of_object("putzmaschine_neuenhauser", "Meldelampe_Überstrom") + \ mg.get_value_of_object("flyer_ejet", "Meldelampe_Überstrom") + \ mg.get_value_of_object("puffer", "Meldelampe_Überstrom") - self._Anzahl["Spulenumsetzstation"] = self.stueckzahl.get("Spulenumsetzstation", 0) + self._Anzahl["Spulenumsetzstation"] = anzahl.get("Spulenumsetzstation", 0) def getEA(self, partname): return (self.EAs[partname][0], self.EAs[partname][1]) @@ -1122,8 +1130,6 @@ class EA(): self.EAs a = list(self._Anzahl.keys()) a.sort() - with open('convert_.txt', 'w') as convert_file: - convert_file.write(json.dumps(self._Anzahl)) for k,n in self._Anzahl.items(): res += self.EAs[k][0] * n return res @@ -1150,7 +1156,7 @@ class HW(): #TODO "bedienstation_1fach_Not_Aus" keine Anzahl manuelle eingabe aber dann noch bezüge in mengengerüst und hardware; muss noch eingepflegt werden mengen = { #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet - "schaltschrankgehaeuse_b1x1200_zubehoer": 0, ###f bezug zu anzahl schaltschrank? + "schaltschrankgehaeuse_b1x1200_zubehoer": 0, "schaltschrankgehaeuse_b2x800_zubehoer": 0, "schaltschrankgehaeuse_b1x1200+1x800_zubehoer": 1, "sps_simatic_s7_cpu315_2_pn_dp": 0, @@ -1238,11 +1244,11 @@ class HW(): "korrektur_et200_sp_eingangskarte_8_do":0, "et200_sp_eingangskarte_16_do":0, # "et200_sp_base_unit_neue_last_mit_potKlemmen":0, - "et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last":"et200_sp_base_unit_neue_last_mit_potKlemmen",### - "korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen":0, + "et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last":"et200_sp_base_unit_neue_last_mit_potKlemmen", + #"korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen":0, # "et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen":0, # "et200_sp_base_unit_neue_last":0, - "korrektur_et200_sp_base_unit_neue_last":-15, + #"korrektur_et200_sp_base_unit_neue_last":-15, # "et200_sp_base_unit_links_gebrueckt":0, "korrektur_et200_sp_base_unit_links_gebrueckt":0, @@ -1290,9 +1296,10 @@ class HW(): # "kabel_fuer_1fach_bts_zug_wechseln":0, # "zuleitung_75_m_unterverteiler_4x4mm2_400vac":0, # "zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":0, - "korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":-6, + #"korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":-6, # "zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc":0, - "korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc": 0, + "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_12x2_5mm2_24_vdc": 0, # "zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm":0, # "zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm":0, # "profinetkabel":0, @@ -1571,7 +1578,7 @@ class HW(): "schnittstellen_8x1mm2_30m" ] Keys_of_Schaltschrank = [ - "schaltschrankgehaeuse_b1x1200_zubehoer", ###f bezug zu anzahl schaltschrank? + "schaltschrankgehaeuse_b1x1200_zubehoer", "schaltschrankgehaeuse_b2x800_zubehoer", "schaltschrankgehaeuse_b1x1200+1x800_zubehoer", "sps_simatic_s7_cpu315_2_pn_dp", @@ -1596,47 +1603,48 @@ class HW(): "zusaetzlicher_bildschirm" ] def __init__(self, anzahl:dict, mg: type[MG], eas: type[EA]): - self._anzahl = anzahl - self._anzahl["schaltschrankgehaeuse_b1x1200_zubehoer"] = self.mengen.get("schaltschrankgehaeuse_b1x1200_zubehoer", 0) - self._anzahl["schaltschrankgehaeuse_b2x800_zubehoer"] = self.mengen.get("schaltschrankgehaeuse_b2x800_zubehoer", 0) - self._anzahl["schaltschrankgehaeuse_b1x1200+1x800_zubehoer"] = self.mengen.get("schaltschrankgehaeuse_b1x1200+1x800_zubehoer", 0) - self._anzahl["sps_simatic_s7_cpu315_2_pn_dp"] = self.mengen.get("sps_simatic_s7_cpu315_2_pn_dp", 0) - self._anzahl["speicherkarte_fuer_sps_512_kb"] = self.mengen.get("speicherkarte_fuer_sps_512_kb", 0) - self._anzahl["sps_simatic_s7_cpu317_2_pn_dp"] = self.mengen.get("sps_simatic_s7_cpu317_2_pn_dp", 0) - self._anzahl["speicherkarte_fuer_sps2_mb"] = self.mengen.get("speicherkarte_fuer_sps2_mb", 0) - self._anzahl["sps_simatic_s7_1515_2"] = self.mengen.get("sps_simatic_s7_1515_2", 0) - self._anzahl["sps_simatic_s7_1517_3"] = self.mengen.get("sps_simatic_s7_1517_3", 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 = self.mengen + + self._anzahl["schaltschrankgehaeuse_b1x1200_zubehoer"] = anzahl.get("schaltschrankgehaeuse_b1x1200_zubehoer", 0) + self._anzahl["schaltschrankgehaeuse_b2x800_zubehoer"] = anzahl.get("schaltschrankgehaeuse_b2x800_zubehoer", 0) + self._anzahl["schaltschrankgehaeuse_b1x1200+1x800_zubehoer"] = anzahl.get("schaltschrankgehaeuse_b1x1200+1x800_zubehoer", 0) + self._anzahl["sps_simatic_s7_cpu315_2_pn_dp"] = anzahl.get("sps_simatic_s7_cpu315_2_pn_dp", 0) + self._anzahl["speicherkarte_fuer_sps_512_kb"] = anzahl.get("speicherkarte_fuer_sps_512_kb", 0) + self._anzahl["sps_simatic_s7_cpu317_2_pn_dp"] = anzahl.get("sps_simatic_s7_cpu317_2_pn_dp", 0) + self._anzahl["speicherkarte_fuer_sps2_mb"] = anzahl.get("speicherkarte_fuer_sps2_mb", 0) + self._anzahl["sps_simatic_s7_1515_2"] = anzahl.get("sps_simatic_s7_1515_2", 0) + self._anzahl["sps_simatic_s7_1517_3"] = anzahl.get("sps_simatic_s7_1517_3", 0) + self._anzahl["sps_simatic_s7_1518_4"] = anzahl.get("sps_simatic_s7_1518_4", 0) + self._anzahl["sps_et200_1512sp"] = anzahl.get("sps_et200_1512sp", 0) - self._anzahl["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_256_mb"] = self.anzahl("speicherkarte_fuer_sps2_mb") + \ + self.anzahl("sps_simatic_s7_1515_2") + \ + self.anzahl("sps_simatic_s7_1517_3") + \ + self.anzahl("sps_simatic_s7_1518_4") - self._anzahl["memory_card_2_gb"] = anzahl.get("sps_simatic_s7_1518_4", 0) + self._anzahl["memory_card_2_gb"] = self.anzahl("sps_simatic_s7_1518_4") - self._anzahl["et200_sp_ea_ebene"] = self.mengen.get("et200_sp_ea_ebene", 0) - self._anzahl["netzwerk_fernwartung"] = self.mengen.get("netzwerk_fernwartung", 0) - self._anzahl["abgang_400v"] = self.mengen.get("abgang_400v", 0) - self._anzahl["abgang_24_v"] = self.mengen.get("abgang_24_v", 0) - self._anzahl["anlagenrechner"] = self.mengen.get("anlagenrechner", 0) - self._anzahl["anlagenrechner_ohne_bildschirm"] = self.mengen.get("anlagenrechner_ohne_bildschirm", 0) - self._anzahl["pulteinbau_monitor_srline_rflat_24fhd"] = self.mengen.get("pulteinbau_monitor_srline_rflat_24fhd", 0) - self._anzahl["kurzhubtastatur_kbt06_mit_touchpad_uslayout"] = self.mengen.get("kurzhubtastatur_kbt06_mit_touchpad_uslayout", 0) - self._anzahl["netzwerk_display_adapter_lindy"] = self.mengen.get("netzwerk_display_adapter_lindy", 0) - self._anzahl["zusaetzlicher_bildschirm"] = self.mengen.get("zusaetzlicher_bildschirm", 0) - self._anzahl["schaltschrank"] = eas.stueckzahl.get("schaltschrank") + self._anzahl["et200_sp_ea_ebene"] = anzahl.get("et200_sp_ea_ebene", 0) + self._anzahl["netzwerk_fernwartung"] = anzahl.get("netzwerk_fernwartung", 0) + self._anzahl["abgang_400v"] = anzahl.get("abgang_400v", 0) + self._anzahl["abgang_24_v"] = anzahl.get("abgang_24_v", 0) + self._anzahl["anlagenrechner"] = anzahl.get("anlagenrechner", 0) + self._anzahl["anlagenrechner_ohne_bildschirm"] = anzahl.get("anlagenrechner_ohne_bildschirm", 0) + self._anzahl["pulteinbau_monitor_srline_rflat_24fhd"] = anzahl.get("pulteinbau_monitor_srline_rflat_24fhd", 0) + self._anzahl["kurzhubtastatur_kbt06_mit_touchpad_uslayout"] = anzahl.get("kurzhubtastatur_kbt06_mit_touchpad_uslayout", 0) + self._anzahl["netzwerk_display_adapter_lindy"] = anzahl.get("netzwerk_display_adapter_lindy", 0) + self._anzahl["zusaetzlicher_bildschirm"] = anzahl.get("zusaetzlicher_bildschirm", 0) + self._anzahl["schaltschrank"] = eas.stueckzahl.get("Bedienelemente_Steuerschrank") self._anzahl["unterverteiler_fuer_1neuenhauser_pm"] = mg.get_deckblatt_value("Neuenhauser-Putzmaschine") - self._anzahl["unterverteiler_fuer_1flyer"] = self.mengen.get("unterverteiler_fuer_1flyer", 0) - self._anzahl["unterverteiler_fuer_2flyer"] = self.mengen.get("unterverteiler_fuer_2flyer", 0) - self._anzahl["unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine"] = self.mengen.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) - self._anzahl["unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine"] = self.mengen.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) - self._anzahl["unterverteiler_fuer_puffer"] = self.mengen.get("unterverteiler_fuer_puffer", 0) + self._anzahl["unterverteiler_fuer_1flyer"] = anzahl.get("unterverteiler_fuer_1flyer", 0) + self._anzahl["unterverteiler_fuer_2flyer"] = anzahl.get("unterverteiler_fuer_2flyer", 0) + self._anzahl["unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine"] = anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) + self._anzahl["unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine"] = anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) + self._anzahl["unterverteiler_fuer_puffer"] = anzahl.get("unterverteiler_fuer_puffer", 0) - self._anzahl["korrektur_5_rsm_zusaetzlich_im_unterverteiler"] = self.mengen.get("korrektur_5_rsm_zusaetzlich_im_unterverteiler", 0) - self._anzahl["korrektur_10_rsm_zusaetzlich_im_unterverteiler"] = self.mengen.get("korrektur_10_rsm_zusaetzlich_im_unterverteiler", 0) + self._anzahl["korrektur_5_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_5_rsm_zusaetzlich_im_unterverteiler", 0) + self._anzahl["korrektur_10_rsm_zusaetzlich_im_unterverteiler"] = anzahl.get("korrektur_10_rsm_zusaetzlich_im_unterverteiler", 0) if (mg.get_value_of_object("rsm_fa", "Flex_A_Premium") == False): num_rsms = mg.get_value_of_object("rsm_fa", "Anzahl_RSM") self._anzahl["unterverteiler_fuer_5_rsm_fa"] = math.ceil(num_rsms/5) + anzahl.get("korrektur_5_rsm_zusaetzlich_im_unterverteiler", 0) @@ -1684,177 +1692,197 @@ class HW(): self._anzahl["bedienstation_1fach_kpl"] = eas.anzahl("bedienstation_1fach_Not_Aus", 0) + eas.anzahl("bedienstation_einfach_Zug_Wechseln", 0) self._anzahl["bedienst_2fach_wechs_bcd_10f"] = eas.anzahl("bedienst_2fach_wechs_bcd_10f", 0) self._anzahl["bedienstation_2fach_kpl"] = eas.anzahl("bedienstation_zweifach_Not_Aus_Reset", 0) - self._anzahl["halter_bedientableau_2fach"] = anzahl.get("bedienstation_2fach_kpl", 0) + self._anzahl["halter_bedientableau_2fach"] = self.anzahl("bedienstation_2fach_kpl") self._anzahl["bedienstation_3fach_kpl"] = eas.anzahl("bedienstation_3fach_kpl", 0) - self._anzahl["halter_bedientableau_3fach"] = anzahl.get("bedienstation_3fach_kpl", 0) + self._anzahl["halter_bedientableau_3fach"] = self.anzahl("bedienstation_3fach_kpl") self._anzahl["bedienstation_4fach_kpl"] = eas.anzahl("bedienstation_4fach_kpl", 0) - self._anzahl["halter_bedientableau_4fach"] = anzahl.get("bedienstation_4fach_kpl", 0) + self._anzahl["halter_bedientableau_4fach"] = self.anzahl("bedienstation_4fach_kpl") self._anzahl["bedienstation_6fach_kpl"] = eas.anzahl("bedienstation_6fach_kpl", 0) - self._anzahl["halter_bedientableau_6fach"] = anzahl.get("bedienstation_6fach_kpl", 0) + self._anzahl["halter_bedientableau_6fach"] = self.anzahl("bedienstation_6fach_kpl") self._anzahl["drucktaster_automatische_umfahrung"] = mg.zusammenfassung().get("Drucktaster_automatische_Umfahrung", 0) - self._anzahl["halter_fuer_drucktaster"] = anzahl.get("drucktaster_automatische_umfahrung", 0) + self._anzahl["halter_fuer_drucktaster"] = self.anzahl("drucktaster_automatische_umfahrung") # # summe_bedienstationen - self._anzahl["ET200_SP"] = self.mengen.get("ET200_SP", 0) - self._anzahl["et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = anzahl.get("ET200_SP", 0) * (anzahl.get("et200_sp_ea_ebene", 0) * 2 * anzahl.get("schaltschrank", 0) +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_puffer", 0) +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) +\ - anzahl.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0)) - self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = self.mengen.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) - self._anzahl["et200_sp_eingangskarte_8_de"] = anzahl.get("ET200_SP", 0) * (anzahl.get("et200_sp_ea_ebene", 0) * anzahl.get("schaltschrank", 0) * 3 +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) * 3 +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) * 7 +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) * 5 +\ - anzahl.get("unterverteiler_fuer_puffer", 0) * 5 +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) * 8 +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) * 4 +\ - anzahl.get("korrektur_et200_sp_eingangskarte_8_de", 0) +\ + self._anzahl["ET200_SP"] = anzahl.get("ET200_SP", 0) + self._anzahl["et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = self.anzahl("ET200_SP") * (self.anzahl("et200_sp_ea_ebene") * 2 * self.anzahl("schaltschrank") +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") +\ + self.anzahl("unterverteiler_fuer_1flyer") +\ + self.anzahl("unterverteiler_fuer_2flyer") +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") +\ + self.anzahl("unterverteiler_fuer_puffer") +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") +\ + self.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45")) + self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"] = anzahl.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) + self._anzahl["korrektur_et200_sp_eingangskarte_8_de"] = anzahl.get("korrektur_et200_sp_eingangskarte_8_de", 0) + self._anzahl["et200_sp_eingangskarte_8_de"] = self.anzahl("ET200_SP") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 3 +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 4 +\ + self.anzahl("unterverteiler_fuer_1flyer") * 3 +\ + self.anzahl("unterverteiler_fuer_2flyer") * 7 +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") * 4 +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") * 5 +\ + self.anzahl("unterverteiler_fuer_puffer") * 5 +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") * 4 +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") * 8 +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") * 4 +\ + self.anzahl("korrektur_et200_sp_eingangskarte_8_de") +\ mg.zusammenfassung().get("Kreuzungsweiche")) - self._anzahl["korrektur_et200_sp_eingangskarte_8_de"] = self.mengen.get("korrektur_et200_sp_eingangskarte_8_de", 0) - self._anzahl["et200_sp_eingangskarte_16_de"] = self.mengen.get("et200_sp_eingangskarte_16_de", 0) + + self._anzahl["et200_sp_eingangskarte_16_de"] = anzahl.get("et200_sp_eingangskarte_16_de", 0) + self._anzahl["korrektur_et200_sp_eingangskarte_8_do"] = anzahl.get("korrektur_et200_sp_eingangskarte_8_do", 0) self._anzahl["et200_sp_eingangskarte_8_do"] = \ - anzahl.get("ET200_SP", 0) *\ - (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) + + self.anzahl("ET200_SP") *\ + (math.ceil((self.anzahl("et200_sp_ea_ebene") *\ + self.anzahl("schaltschrank") * 4 +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 6 +\ + self.anzahl("unterverteiler_fuer_1flyer") * 4 +\ + self.anzahl("unterverteiler_fuer_2flyer") * 6 +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") * 5 +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") * 5 +\ + self.anzahl("unterverteiler_fuer_puffer") * 7 +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") * 4 +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") * 6 +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") * 9 / 1.5)) + + self.anzahl("korrektur_et200_sp_eingangskarte_8_do") + mg.zusammenfassung().get("Kreuzungsweiche") * 2) - self._anzahl["korrektur_et200_sp_eingangskarte_8_do"] = self.mengen.get("korrektur_et200_sp_eingangskarte_8_do", 0) + self._anzahl["et200_sp_eingangskarte_16_do"] = anzahl.get("et200_sp_eingangskarte_16_do", 0) - self._anzahl["et200_sp_base_unit_neue_last_mit_potKlemmen"] = anzahl.get("ET200_SP", 0) * (anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) * 2 + - anzahl.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0)) ### entweder oder und bei dem das nicht verwendet wird wird im korrekturfaktor "et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45" * 2 abgezogen - if self.mengen.get("et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last" == "et200_sp_base_unit_neue_last"): - self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) - self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0) -\ - anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 - elif self.mengen.get("et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last" == "et200_sp_base_unit_neue_last_mit_potKlemmen"): - self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) -\ - anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 - self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0) - else: - self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) - self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0) - self._anzahl["et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen"] = anzahl.get("ET200_SP", 0) * (math.ceil((anzahl.get("et200_sp_eingangskarte_8_de", 0) + - anzahl.get("et200_sp_eingangskarte_8_do", 0))) - - anzahl.get("et200_sp_base_unit_neue_last_mit_potKlemmen", 0)) - self._anzahl["et200_sp_base_unit_neue_last"] = anzahl.get("ET200_SP", 0) * (anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) * 2 + - anzahl.get("korrektur_et200_sp_base_unit_neue_last", 0)) + + if anzahl.get("et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last", 0) == "et200_sp_base_unit_neue_last": + # self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = anzahl.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) -\ + # anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) * 2 + # self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = anzahl.get("korrektur_et200_sp_base_unit_neue_last", 0) + self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = -1 * self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 + self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = 0 + + elif anzahl.get("et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last", 0) == "et200_sp_base_unit_neue_last_mit_potKlemmen": + # self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = anzahl.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) + # self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = anzahl.get("korrektur_et200_sp_base_unit_neue_last", 0) -\ + # anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) * 2 + self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = 0 + self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = -1 * self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 + else: + # self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = anzahl.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) + # self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = anzahl.get("korrektur_et200_sp_base_unit_neue_last", 0) + self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = 0 + self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = 0 + + + self._anzahl["et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.anzahl("ET200_SP") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 + + self.anzahl("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen")) + self._anzahl["et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen"] = self.anzahl("ET200_SP", 0) * (math.ceil((self.anzahl("et200_sp_eingangskarte_8_de") + + self.anzahl("et200_sp_eingangskarte_8_do"))) - + self.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen")) + + self._anzahl["et200_sp_base_unit_neue_last"] = self.anzahl("ET200_SP") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2 + + self.anzahl("korrektur_et200_sp_base_unit_neue_last")) - self._anzahl["et200_sp_base_unit_links_gebrueckt"] = anzahl.get("ET200_SP", 0) * (math.ceil((anzahl.get("et200_sp_eingangskarte_16_de", 0) + - anzahl.get("et200_sp_eingangskarte_16_do", 0))) - - anzahl.get("et200_sp_base_unit_neue_last", 0) + - anzahl.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0)) - self._anzahl["korrektur_et200_sp_base_unit_links_gebrueckt"] = self.mengen.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0) + if self.anzahl("et200_sp_base_unit_neue_last") > 0 and self.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen") > 0: + raise Exception("et200_sp_base_unit_neue_last und et200_sp_base_unit_neue_last_mit_potKlemmen sollten nicht beide verwendet werden") + + self._anzahl["korrektur_et200_sp_base_unit_links_gebrueckt"] = anzahl.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0) + self._anzahl["et200_sp_base_unit_links_gebrueckt"] = self.anzahl("ET200_SP") * (math.ceil((self.anzahl("et200_sp_eingangskarte_16_de") + + self.anzahl("et200_sp_eingangskarte_16_do"))) - + self.anzahl("et200_sp_base_unit_neue_last") + + self.anzahl("korrektur_et200_sp_base_unit_links_gebrueckt")) + - self._anzahl["SLIO"] = self.mengen.get("SLIO", 0) + self._anzahl["SLIO"] = anzahl.get("SLIO", 0) - self._anzahl["et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = anzahl.get("SLIO", 0) * (anzahl.get("et200_sp_ea_ebene", 0) +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_puffer", 0) +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) +\ - anzahl.get("unterverteiler_fuer_4_rsm_direct", 0) +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) +\ - anzahl.get("busverteiler_6_rsm_direct", 0) +\ - anzahl.get("busverteiler_8_rsm_direct", 0) +\ - anzahl.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO", 0)) - self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = self.mengen.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO", 0) - self._anzahl["slio_eingangskarte_4_de"] = anzahl.get("SLIO", 0) * (anzahl.get("et200_sp_ea_ebene", 0) * anzahl.get("schaltschrank", 0) * 6 +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) * 8 +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) * 6 +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) * 14 +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) * 6 +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) * 13 +\ - anzahl.get("unterverteiler_fuer_puffer", 0) * 9 +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) * 7 +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) * 15 +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) * 16 +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) * 7 +\ - anzahl.get("busverteiler_8_rsm_direct", 0) * 16 +\ - anzahl.get("korrektur_slio_eingangskarte_4_de", 0)) - self._anzahl["korrektur_slio_eingangskarte_4_de"] = self.mengen.get("korrektur_slio_eingangskarte_4_de", 0) - self._anzahl["slio_eingangskarte_8_de"] = anzahl.get("SLIO", 0) * (anzahl.get("et200_sp_ea_ebene", 0) * anzahl.get("schaltschrank", 0) * 3 +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) * 3 +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) * 7 +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) * 3 +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) * 7 +\ - anzahl.get("unterverteiler_fuer_puffer", 0) * 5 +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) * 8 +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) * 8 +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) * 2 +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) * 4 +\ - anzahl.get("busverteiler_8_rsm_direct", 0) * 8 +\ - anzahl.get("korrektur_slio_eingangskarte_8_de", 0)) - self._anzahl["korrektur_slio_eingangskarte_8_de"] = self.mengen.get("korrektur_slio_eingangskarte_8_de", 0) - self._anzahl["slio_ausgangskarte_4_do"] = anzahl.get("SLIO", 0) * (anzahl.get("et200_sp_ea_ebene", 0) * anzahl.get("schaltschrank", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) * 12 +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) * 7 +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) * 14 +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) * 7 +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) * 14 +\ - anzahl.get("unterverteiler_fuer_puffer", 0) * 22 +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) * 16 +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) * 22 +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) * 16 +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) * 24 +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) * 44 +\ - anzahl.get("busverteiler_8_rsm_direct", 0) * 16 +\ - anzahl.get("korrektur_slio_ausgangskarte_4_do", 0)) - self._anzahl["korrektur_slio_ausgangskarte_4_do"] = self.mengen.get("korrektur_slio_ausgangskarte_4_do", 0) - self._anzahl["slio_ausgangskarte_8_do"] = anzahl.get("SLIO", 0) * ((anzahl.get("et200_sp_ea_ebene", 0) * anzahl.get("schaltschrank", 0) * 4 +\ - anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) * 12 +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) * 8 +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) * 14 +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) * 8 +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) * 14 +\ - anzahl.get("unterverteiler_fuer_puffer", 0) * 22 +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) * 16 +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) * 22 +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) * 16 +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) * 24 +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) * 44 +\ - anzahl.get("busverteiler_8_rsm_direct", 0) * 16) / 2 +\ - anzahl.get("korrektur_slio_ausgangskarte_8_do", 0)) - self._anzahl["korrektur_slio_ausgangskarte_8_do"] = self.mengen.get("korrektur_slio_ausgangskarte_8_do", 0) - self._anzahl["slio_power_modul"] = anzahl.get("SLIO", 0) * (anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO", 0) * 1 +\ - anzahl.get("korrektur_slio_power_modul", 0)) - self._anzahl["korrektur_slio_power_modul"] = self.mengen.get("korrektur_slio_power_modul") - self._anzahl["slio_4_x_dc_24v_4_x_dc_0v"] = anzahl.get("SLIO", 0) * (math.ceil((anzahl.get("slio_eingangskarte_4_de") + - anzahl.get("korrektur_slio_4_x_dc_24v_4_x_dc_0v", 0)))) - self._anzahl["korrektur_slio_4_x_dc_24v_4_x_dc_0v"] = self.mengen.get("korrektur_slio_4_x_dc_24v_4_x_dc_0v", 0) + self._anzahl["korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = anzahl.get("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO", 0) + self._anzahl["et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") +\ + self.anzahl("unterverteiler_fuer_1flyer") +\ + self.anzahl("unterverteiler_fuer_2flyer") +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") +\ + self.anzahl("unterverteiler_fuer_puffer") +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") +\ + self.anzahl("unterverteiler_fuer_4_rsm_direct") +\ + self.anzahl("unterverteiler_fuer_12_rsm_direct") +\ + self.anzahl("unterverteiler_fuer_8_rsm_direct") +\ + self.anzahl("busverteiler_6_rsm_direct") +\ + self.anzahl("busverteiler_8_rsm_direct") +\ + self.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO")) + + self._anzahl["korrektur_slio_eingangskarte_4_de"] = anzahl.get("korrektur_slio_eingangskarte_4_de", 0) + self._anzahl["slio_eingangskarte_4_de"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 6 +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 8 +\ + self.anzahl("unterverteiler_fuer_1flyer") * 6 +\ + self.anzahl("unterverteiler_fuer_2flyer") * 14 +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") * 6 +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") * 13 +\ + self.anzahl("unterverteiler_fuer_puffer") * 9 +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") * 7 +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") * 15 +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") * 16 +\ + self.anzahl("unterverteiler_fuer_12_rsm_direct") * 4 +\ + self.anzahl("unterverteiler_fuer_8_rsm_direct") * 7 +\ + self.anzahl("busverteiler_8_rsm_direct") * 16 +\ + self.anzahl("korrektur_slio_eingangskarte_4_de")) + + self._anzahl["korrektur_slio_eingangskarte_8_de"] = anzahl.get("korrektur_slio_eingangskarte_8_de", 0) + self._anzahl["slio_eingangskarte_8_de"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 3 +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 4 +\ + self.anzahl("unterverteiler_fuer_1flyer") * 3 +\ + self.anzahl("unterverteiler_fuer_2flyer") * 7 +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") * 3 +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") * 7 +\ + self.anzahl("unterverteiler_fuer_puffer") * 5 +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") * 4 +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") * 8 +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") * 8 +\ + self.anzahl("unterverteiler_fuer_12_rsm_direct") * 2 +\ + self.anzahl("unterverteiler_fuer_8_rsm_direct") * 4 +\ + self.anzahl("busverteiler_8_rsm_direct") * 8 +\ + self.anzahl("korrektur_slio_eingangskarte_8_de", 0)) + self._anzahl["korrektur_slio_ausgangskarte_4_do"] = anzahl.get("korrektur_slio_ausgangskarte_4_do", 0) + self._anzahl["slio_ausgangskarte_4_do"] = self.anzahl("SLIO") * (self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 4 +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 12 +\ + self.anzahl("unterverteiler_fuer_1flyer") * 7 +\ + self.anzahl("unterverteiler_fuer_2flyer") * 14 +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") * 7 +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") * 14 +\ + self.anzahl("unterverteiler_fuer_puffer") * 22 +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") * 16 +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") * 22 +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") * 16 +\ + self.anzahl("unterverteiler_fuer_12_rsm_direct") * 24 +\ + self.anzahl("unterverteiler_fuer_8_rsm_direct") * 44 +\ + self.anzahl("busverteiler_8_rsm_direct") * 16 +\ + self.anzahl("korrektur_slio_ausgangskarte_4_do")) + self._anzahl["korrektur_slio_ausgangskarte_8_do"] = anzahl.get("korrektur_slio_ausgangskarte_8_do", 0) + self._anzahl["slio_ausgangskarte_8_do"] = self.anzahl("SLIO") * ((self.anzahl("et200_sp_ea_ebene") * self.anzahl("schaltschrank") * 4 +\ + self.anzahl("unterverteiler_fuer_1neuenhauser_pm") * 12 +\ + self.anzahl("unterverteiler_fuer_1flyer") * 8 +\ + self.anzahl("unterverteiler_fuer_2flyer") * 14 +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") * 8 +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") * 14 +\ + self.anzahl("unterverteiler_fuer_puffer") * 22 +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") * 16 +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") * 22 +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") * 16 +\ + self.anzahl("unterverteiler_fuer_12_rsm_direct") * 24 +\ + self.anzahl("unterverteiler_fuer_8_rsm_direct") * 44 +\ + self.anzahl("busverteiler_8_rsm_direct") * 16) / 2 +\ + self.anzahl("korrektur_slio_ausgangskarte_8_do")) + self._anzahl["korrektur_slio_power_modul"] = anzahl.get("korrektur_slio_power_modul", 0) + self._anzahl["slio_power_modul"] = self.anzahl("SLIO") * (self.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO") * 1 +\ + self.anzahl("korrektur_slio_power_modul")) + self._anzahl["korrektur_slio_4_x_dc_24v_4_x_dc_0v"] = anzahl.get("korrektur_slio_4_x_dc_24v_4_x_dc_0v", 0) + self._anzahl["slio_4_x_dc_24v_4_x_dc_0v"] = self.anzahl("SLIO") * (math.ceil((self.anzahl("slio_eingangskarte_4_de") + + self.anzahl("korrektur_slio_4_x_dc_24v_4_x_dc_0v")))) + self._anzahl["slio_8_x_dc_24v"] = anzahl.get("slio_8_x_dc_0v", 0) - self._anzahl["korrektur_slio_8_x_dc_0v"] = self.mengen.get("korrektur_slio_8_x_dc_0v") - self._anzahl["slio_8_x_dc_0v"] = anzahl.get("SLIO", 0) * ((anzahl.get("slio_eingangskarte_8_de", 0) + - (anzahl.get("slio_ausgangskarte_4_do", 0) / 2)) * 1 + - anzahl.get("korrektur_slio_8_x_dc_0v", 0)) + self._anzahl["korrektur_slio_8_x_dc_0v"] = anzahl.get("korrektur_slio_8_x_dc_0v", 0) + self._anzahl["slio_8_x_dc_0v"] = self.anzahl("SLIO") * ((self.anzahl("slio_eingangskarte_8_de") + + (self.anzahl("slio_ausgangskarte_4_do") / 2)) * 1 + + self.anzahl("korrektur_slio_8_x_dc_0v")) # # Summe_material_in_ll @@ -1868,7 +1896,7 @@ class HW(): self._anzahl["stoppersensor_induktiv_mit_halter"] = eas.anzahl("Sensor induktiv Flyer+PM") self._anzahl["sensor_spulenpruefung_voll_leer"] = mg.zusammenfassung().get("Sensor_Spulenprüfung_voll_leer", 0) self._anzahl["seilzugschalter"] = eas.anzahl("Seilzugschalter", 0) - self._anzahl["seil_fuer_seilzugschalter"] = self.mengen.get("seil_fuer_seilzugschalter") + self._anzahl["seil_fuer_seilzugschalter"] = anzahl.get("seil_fuer_seilzugschalter", 0) self._anzahl["blitzleuchte"] = eas.anzahl("Blitzleuchte_Stoerung", 0) self._anzahl["spulenumsetzstation"] = eas.anzahl("Spulenumsetzstation", 0) self._anzahl["sensorkabel_je_20m"] = mg.get_value_of_object("rsm_direct", "Lichtschranke_Traverse") +\ @@ -1892,83 +1920,80 @@ class HW(): mg.zusammenfassung().get("RA_bi_ohne_SPS-Ansteuerung", 0) +\ mg.zusammenfassung().get("RA_bi_abhebbar", 0) +\ mg.zusammenfassung().get("Doppelstreckenantrieb", 0) - self._anzahl["kabelpritschen_leitern_200_60"] = self.mengen.get("kabelpritschen_leitern_200_60", 0) + self._anzahl["kabelpritschen_leitern_200_60"] = anzahl.get("kabelpritschen_leitern_200_60", 0) self._anzahl["kabelpritsche_rsm_100_60"] = anzahl.get("kabelpritsche_rsm_100_60", 0) self._anzahl["kabelpritsche_rsm_50_35"] = anzahl.get("kabelpritsche_rsm_50_35", 0) self._anzahl["klemmkasten_rsm"] = mg.zusammenfassung().get("klemmkasten_rsm", 0) self._anzahl["klemmkasten_direct_in_rsm"] = eas.anzahl("bedienstation_zweifach_Wechs_BCD_10f", 0) - self._anzahl["zuleitung_75_m_unterverteiler_4x4mm2_400vac"] = anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_puffer", 0) +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) +\ - anzahl.get("busverteiler_8_rsm_direct", 0) - self._anzahl["erdung"] = anzahl.get("zuleitung_75_m_unterverteiler_4x4mm2_400vac", 0) +\ - anzahl.get("motorkabel_je_30m", 0) / 2 - self._anzahl["kleinteile_rohre_schellen_kabelbinder_ect"] = self.mengen.get("kleinteile_rohre_schellen_kabelbinder_ect", 0) - self._anzahl["kabel_fuer_klemmkasten_und_bts_60m"] = anzahl.get("bedienst_2fach_wechs_bcd_10f", 0) +\ - anzahl.get("bedienstation_2fach_kpl", 0) +\ - anzahl.get("halter_bedientableau_2fach", 0) +\ - anzahl.get("bedienstation_3fach_kpl", 0) +\ - anzahl.get("halter_bedientableau_3fach", 0) +\ - anzahl.get("halter_bedientableau_4fach", 0) +\ - anzahl.get("bedienstation_4fach_kpl", 0) +\ - anzahl.get("bedienstation_6fach_kpl", 0) - self._anzahl["kabel_fuer_1fach_bts_zug_wechseln"] = anzahl.get("bedienstation_1fach_kpl", 0) - self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = self.mengen.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) ###entweder oder - self._anzahl["zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_puffer", 0) +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) +\ - anzahl.get("busverteiler_8_rsm_direct", 0) +\ - anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) ### entweder oder bei dem, das nicht vcerwendet wird ist der korrakturfaktor self._anzahl["zuleitung_75_m_unterverteiler_4x4mm2_400vac"] - self._anzahl["zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer", 0) +\ - anzahl.get("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine", 0) +\ - anzahl.get("unterverteiler_fuer_puffer", 0) +\ - anzahl.get("unterverteiler_fuer_5_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_10_rsm_fa", 0) +\ - anzahl.get("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar", 0) +\ - anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) +\ - anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) +\ - anzahl.get("busverteiler_8_rsm_direct", 0) +\ - anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) + self._anzahl["zuleitung_75_m_unterverteiler_4x4mm2_400vac"] = self.anzahl("unterverteiler_fuer_1neuenhauser_pm") +\ + self.anzahl("unterverteiler_fuer_1flyer") +\ + self.anzahl("unterverteiler_fuer_2flyer") +\ + self.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine") +\ + self.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine") +\ + self.anzahl("unterverteiler_fuer_puffer") +\ + self.anzahl("unterverteiler_fuer_5_rsm_fa") +\ + self.anzahl("unterverteiler_fuer_10_rsm_fa") +\ + self.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") +\ + self.anzahl("unterverteiler_fuer_12_rsm_direct") +\ + self.anzahl("unterverteiler_fuer_8_rsm_direct") +\ + self.anzahl("busverteiler_8_rsm_direct") + self._anzahl["erdung"] = self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") +\ + self.anzahl("motorkabel_je_30m") / 2 + self._anzahl["kleinteile_rohre_schellen_kabelbinder_ect"] = anzahl.get("kleinteile_rohre_schellen_kabelbinder_ect", 0) + self._anzahl["kabel_fuer_klemmkasten_und_bts_60m"] = self.anzahl("bedienst_2fach_wechs_bcd_10f") +\ + self.anzahl("bedienstation_2fach_kpl") +\ + self.anzahl("halter_bedientableau_2fach") +\ + self.anzahl("bedienstation_3fach_kpl") +\ + self.anzahl("halter_bedientableau_3fach") +\ + self.anzahl("halter_bedientableau_4fach") +\ + self.anzahl("bedienstation_4fach_kpl") +\ + self.anzahl("bedienstation_6fach_kpl") + self._anzahl["kabel_fuer_1fach_bts_zug_wechseln"] = self.anzahl("bedienstation_1fach_kpl") + + if anzahl.get("zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) == "zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc": + # self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) -\ + # anzahl.get("zuleitung_75_m_unterverteiler_4x4mm2_400vac", 0) + # self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) + self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = -1 * self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") + self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = 0 + elif anzahl.get("zuleitung_75_m_unterverteiler_12x4mm2_24_vdc_or_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) == "zuleitung_75_m_unterverteiler_12x4mm2_24_vdc": + # self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) -\ + # anzahl.get("zuleitung_75_m_unterverteiler_4x4mm2_400vac", 0) + # self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) + self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = -1 * self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") + self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = 0 + else: + # self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) + # self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) + self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = 0 + self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = 0 + + self._anzahl["zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") +\ + self.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc") + self._anzahl["zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = self.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac") +\ + self.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc") + if self._anzahl["zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] > 0 and self._anzahl["zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] > 0: - raise Exception("12x4 and 12x2.5 mustn't be used simultanously") - self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) + raise Exception("zuleitung 12x4 und 12x2.5 sollten nicht beide verwendet werden") + if 'direct' in mg.get_deckblatt_value("SYSTEM"): self._anzahl["zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm"] = mg.get_deckblatt_value("RSM") else: self._anzahl["zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm"] = 0 if 'direct' in mg.get_deckblatt_value("SYSTEM"): self._anzahl["zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm"] = mg.get_deckblatt_value("RSM") +\ - anzahl.get("klemmkasten_rsm", 0) + self.anzahl("klemmkasten_rsm") else: - self._anzahl["zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm"] = anzahl.get("klemmkasten_rsm", 0) - self._anzahl["profinetkabel"] = anzahl.get("sps_simatic_s7_1517_3", 0) +\ - anzahl.get("sps_simatic_s7_1515_2", 0) +\ - anzahl.get("sps_simatic_s7_cpu315_2_pn_dp", 0) +\ - anzahl.get("sps_simatic_s7_cpu317_2_pn_dp", 0) +\ - anzahl.get("sps_et200_1512sp", 0) +\ - anzahl.get("zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) +\ - anzahl.get("zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc", 0) +\ - anzahl.get("korrektur_profinetkabel", 0) + self._anzahl["zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm"] = self.anzahl("klemmkasten_rsm") self._anzahl["korrektur_profinetkabel"] = anzahl.get("korrektur_profinetkabel", 0) + self._anzahl["profinetkabel"] = self.anzahl("sps_simatic_s7_1517_3") +\ + self.anzahl("sps_simatic_s7_1515_2") +\ + self.anzahl("sps_simatic_s7_cpu315_2_pn_dp") +\ + self.anzahl("sps_simatic_s7_cpu317_2_pn_dp") +\ + self.anzahl("sps_et200_1512sp") +\ + self.anzahl("zuleitung_75_m_unterverteiler_12x4mm2_24_vdc") +\ + self.anzahl("zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc") +\ + self.anzahl("korrektur_profinetkabel") self._anzahl["schnittstellen_8x1mm2_30m"] = mg.zusammenfassung().get("Interface_Putzmaschine", 0) +\ mg.zusammenfassung().get("Interface_Doffer", 0) @@ -1980,6 +2005,8 @@ class HW(): l.append(k) for item in l: del self._anzahl[item] + with open('HW_Daten.txt', 'w') as convert_file: + convert_file.write(json.dumps(self._anzahl)) def __repr__(self): return repr(self._anzahl) @@ -2196,10 +2223,9 @@ class Dienstleistung(): "Vormontage_im_Haus": 0 } - def __init__(self, Anzahl_DL, hw: type[HW]): + def __init__(self, anzahl, hw: type[HW]): # hier sind die Dienstleistungen in Stunden gegeben, bzw. werden errechnet - - self._Hours = Anzahl_DL + self._Hours = self.mengen # "Pflichtenheft_Autom_Schnittstellen": 0, @@ -2219,12 +2245,12 @@ class Dienstleistung(): # Test_und_Installation self._Hours["PC_Installation"] = hw.anzahl("anlagenrechner") * 8 * hw.anzahl("schaltschrank", 0) - self._Hours["Oberfläche_Simulation"] = self.anzahl("Oberfläche_Simulation") #TODO was heisst hier bedingt ändern? - self._Hours["SPS_Test_im_Haus_Simulation"] = self.anzahl("SPS_Test_im_Haus_Simulation") + self._Hours["Oberfläche_Simulation"] = anzahl.get("Oberfläche_Simulation", 0) #TODO was heisst hier bedingt ändern? + self._Hours["SPS_Test_im_Haus_Simulation"] = anzahl.get("SPS_Test_im_Haus_Simulation", 0) ## Dokumentation - self._Hours["Bedienerhandbuch"] = self.anzahl("Bedienerhandbuch") - self._Hours["SPS_Doku"] = self.anzahl("SPS_Doku") - self._Hours["PC_Doku"] = self.anzahl("PC_Doku") + self._Hours["Bedienerhandbuch"] = anzahl.get("Bedienerhandbuch", 0) + self._Hours["SPS_Doku"] = anzahl.get("SPS_Doku", 0) + self._Hours["PC_Doku"] = anzahl.get("PC_Doku", 0) ## Elektrowerkstatt self._Hours["Schaltschrankbau"] = hw.summe_h_schaltschrank_e_werkstatt() @@ -2239,12 +2265,12 @@ class Dienstleistung(): hw.get_h_of("bedienstation_4fach_kpl") +\ hw.get_h_of("bedienstation_6fach_kpl") +\ hw.get_h_of("drucktaster_automatische_umfahrung") - self._Hours["Vormontage_im_Haus"] = self.anzahl("Vormontage_im_Haus") + self._Hours["Vormontage_im_Haus"] = anzahl.get("Vormontage_im_Haus", 0) def __repr__(self): return repr(self._Hours) def anzahl(self, partname, default_val = 0): - return self.mengen.get(partname, default_val) + return self._Hours.get(partname, default_val) def get_hours_of(self, dlname): return self._Hours.get(dlname, 0) @@ -2356,7 +2382,7 @@ class EMO(): if PS > 1 or PS < 0: raise Exception("Falsche Spanne") self._mehraufwand = PS - def dauer_emo(self): + def dauer_emo_h(self): keys_tätigkeiten_1 = [ "Unterverteiler_montieren", "Sensoren_montieren", @@ -2385,10 +2411,10 @@ class EMO(): return math.ceil((keys_1 + keys_2)) - def dauer_emo_incl_mehrauwand(self): - return (self.dauer_emo() * (1 + self._mehraufwand)) + def dauer_emo_h_incl_mehrauwand(self): + return (self.dauer_emo_h() * (1 + self._mehraufwand)) -class Anschlussl(): ### stimmt das so? +class Anschlussl(): antrieb_cos_phi = { 0.09:0.77, 0.12:0.77, @@ -2428,10 +2454,12 @@ class Anschlussl(): ### stimmt das so? #gesamtanschlussleistung } def __init__(self, anzahl:dict, mg: type[MG]): + self._ANZAHL = self.mengen + anzahl = self.mengen ###vorerst self._GZE_Faktor = 0.5 self._Res_Faktor = 0.1 self._Anschlussspannung = 400 - self._cos_phi = self.antrieb_cos_phi.get(self.mengen.get("Motor_Art")) ### wird nicht verwendet, Leistungsfaktor + self._cos_phi = self.antrieb_cos_phi.get(anzahl.get("Motor_Art", 0)) ### wird nicht verwendet, Leistungsfaktor self._x_Wurzel_3 = 1.732 self._Versorgung_SPS_und_Peripherie = 3 self._ANZAHL = anzahl @@ -2442,19 +2470,19 @@ class Anschlussl(): ### stimmt das so? mg.zusammenfassung().get("RA_bi_ohne_SPS-Ansteuerung", 0) +\ mg.zusammenfassung().get("RA_bi_abhebbar", 0) +\ mg.zusammenfassung().get("Doppelstreckenantrieb", 0) - self._ANZAHL["Summe_Strom_Motor"] = self.antrieb_strom.get(self.mengen.get("Motor_Art")) *\ - anzahl.get("Anzahl_Motor") - self._ANZAHL["Summe_Strom_Motor_SPS_Peripherie"] = anzahl.get("Summe_Strom_Motor") +\ + self._ANZAHL["Summe_Strom_Motor"] = self.antrieb_strom.get(anzahl.get("Motor_Art", 0), 0) *\ + anzahl.get("Anzahl_Motor", 0) + self._ANZAHL["Summe_Strom_Motor_SPS_Peripherie"] = anzahl.get("Summe_Strom_Motor", 0) +\ self._Versorgung_SPS_und_Peripherie - self._ANZAHL["GZF"] = anzahl.get("Summe_Strom_Motor") *\ + self._ANZAHL["GZF"] = anzahl.get("Summe_Strom_Motor", 0) *\ self._GZE_Faktor +\ self._Versorgung_SPS_und_Peripherie - self._ANZAHL["Res"] = anzahl.get("GZF") *\ + self._ANZAHL["Res"] = anzahl.get("GZF", 0) *\ self._Res_Faktor - self._ANZAHL["Gesamtstrom"] = anzahl.get("GZF") +\ - anzahl.get("Res") + self._ANZAHL["Gesamtstrom"] = anzahl.get("GZF", 0) +\ + anzahl.get("Res", 0) self._ANZAHL["Leistung"] = self._Anschlussspannung *\ - anzahl.get("Gesamtstrom") *\ + anzahl.get("Gesamtstrom", 0) *\ self._x_Wurzel_3 / 1000 self._ANZAHL["Gesamtanschlussleistung"] = math.ceil((self._ANZAHL.get("Leistung"))) def set_Versorgung_SPS_und_Peripherie(self, Strom): @@ -2473,7 +2501,7 @@ class Anschlussl(): ### stimmt das so? if PS > 1 or PS < 0: raise Exception("Falsche Spanne") self._Res_Faktor = PS -class Ergebnis(): +class Ergebnis(): preis_kostenart_h = { "E_Werkstatt": 32, "Schaltschrankbau_extern_Mehrkosten": 0, #Wenn Schaltschrankbau extern die Mehrkosten eintragen Standard = 18 € Hier wird nur die Diverenz zwischen Kosten intern(32€) und dem externen Kosten eingetragen. Beispiel: extern = 50€ intern 32 € = Wert: 18€ @@ -2521,21 +2549,21 @@ class Ergebnis(): hw.get_h_of("unterverteiler_fuer_10_rsm_fa") +\ hw.get_h_of("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar") self._anzahl["Dienstleistung_in_LL"] = dl.stunden_diensleistung_hardwareplanung() * (1 + self._Abweichung_dienstleistung_in_LL) - self._anzahl["Pflichtenheft"] = self.eingaben_h.get("Pflichtenheft") - self._anzahl["SPS_Programmierung"] = self.eingaben_h.get("SPS_Programmierung") * (1 + self._Abweichung_softwareerstellung) - self._anzahl["PC_Programmierung_Visualisierung"] = anzahl_h.get("SPS_Programmierung") * self._Anteil_PC_Visualisierung_an_SPS - self._anzahl["Montage_elektrisch"] = emo.dauer_emo_incl_mehrauwand() - self._anzahl["Inbetriebnahmetest_Hardware_durch_Montage"] = anzahl_h.get("Montage_elektrisch") * 0.1 - self._anzahl["SPS_Inbetriebsetzung"] = self.eingaben_h.get("SPS_Inbetriebsetzung") - self._anzahl["PC_Inbetriebsetzung"] = self.eingaben_h.get("PC_Inbetriebsetzung") - self._anzahl["Inbetriebnahmeunterstützung_durch_Montage"] = anzahl_h.get("SPS_Inbetriebsetzung") * self._Anteil_Inbetriebnahmeunterstützung_durch_Montage + self._anzahl["Pflichtenheft"] = anzahl_h.get("Pflichtenheft", 0) + self._anzahl["SPS_Programmierung"] = anzahl_h.get("SPS_Programmierung", 0) * (1 + self._Abweichung_softwareerstellung) + self._anzahl["PC_Programmierung_Visualisierung"] = anzahl_h.get("SPS_Programmierung", 0) * self._Anteil_PC_Visualisierung_an_SPS + self._anzahl["Montage_elektrisch"] = emo.dauer_emo_h_incl_mehrauwand() + self._anzahl["Inbetriebnahmetest_Hardware_durch_Montage"] = anzahl_h.get("Montage_elektrisch", 0) * 0.1 + self._anzahl["SPS_Inbetriebsetzung"] = anzahl_h.get("SPS_Inbetriebsetzung", 0) + self._anzahl["PC_Inbetriebsetzung"] = anzahl_h.get("PC_Inbetriebsetzung", 0) + self._anzahl["Inbetriebnahmeunterstützung_durch_Montage"] = anzahl_h.get("SPS_Inbetriebsetzung", 0) * self._Anteil_Inbetriebnahmeunterstützung_durch_Montage self._anzahl["Dokumentation"] = dl.get_hours_of("Bedienerhandbuch") self._anzahl["Bedienungsanleitung_Emmert"] = dl.get_hours_of("SPS_Doku") - self._anzahl["Schulung_vor_Ort_beim_Kunden"] = self.eingaben_h.get("Schulung_vor_Ort_beim_Kunden") - self._anzahl["Abnahme"] = self.eingaben_h.get("Abnahme") - self._anzahl["SPS_Anlagenbetreuung"] = self.eingaben_h.get("SPS_Anlagenbetreuung") - self._anzahl["PC_Anlagenbetreuung"] = self.eingaben_h.get("PC_Anlagenbetreuung") - self._anzahl["Anlagenbetreuung_durch_Montage"] = self.eingaben_h.get("Anlagenbetreuung_durch_Montage") + self._anzahl["Schulung_vor_Ort_beim_Kunden"] = anzahl_h.get("Schulung_vor_Ort_beim_Kunden", 0) + self._anzahl["Abnahme"] = anzahl_h.get("Abnahme", 0) + self._anzahl["SPS_Anlagenbetreuung"] = anzahl_h.get("SPS_Anlagenbetreuung", 0) + self._anzahl["PC_Anlagenbetreuung"] = anzahl_h.get("PC_Anlagenbetreuung", 0) + self._anzahl["Anlagenbetreuung_durch_Montage"] = anzahl_h.get("Anlagenbetreuung_durch_Montage", 0) def set_Abweichung_dienstleistung_in_LL(self, PS): if PS > 1 : raise Exception("Falsche Spanne") @@ -2577,11 +2605,14 @@ class Ergebnis(): for k in keys_costs: cost = self._anzahl[k] * self.preis_kostenart_h[k] res += cost - return (res + hw.summe_vorort() + hw.summe_in_LL()) + return (res + hw.summe_gesamt()) def get_cost_of(self, partname): return (self._anzahl.get(partname) * self.preis_kostenart_h.get(partname)) - def summary_costs(self, hw): + def summary_costs(self, hw: type[HW]): summary = {} + summary.update({"Installationsmaterial_vor_Ort": round(hw.summe_vorort(), 2)}) + summary.update({"Material_in_LL": round(hw.summe_in_LL(), 2)}) + keys_costs = { "E_Werkstatt", "Schaltschrankbau_extern_Mehrkosten", @@ -2606,1609 +2637,6 @@ class Ergebnis(): cost = self._anzahl[k] * self.preis_kostenart_h[k] summary.update({k: round(cost, 2)}) - summary.update({"Installationsmaterial_vor_Ort": round(hw.summe_vorort(), 2)}) - summary.update({"Material_in_LL": round(hw.summe_in_LL(), 2)}) + summary.update({"GESAMT": round(self.get_sum_of_costs(hw), 2)}) return summary - - #def deckblatt(self): - # keys_sivas = ( - # ("E_Werkstatt","10"), - # ("Schaltschrankbau_extern_Mehrkosten","121"), - # ("Dienstleistung_in_LL","43"), - # ("Pflichtenheft","40"), - # ("SPS_Programmierung","46/100"), - # ("PC_Programmierung_Visualisierung","49/110"), - # ("Montage_elektrisch","25"), - # ("Inbetriebnahmetest_Hardware_durch_Montage","26"), - # ("SPS_Inbetriebsetzung","47/101"), - # ("PC_Inbetriebsetzung","49"), - # ("Inbetriebnahmeunterstützung_durch_Montage","26"), - # ("Dokumentation","65"), - # ("Bedienungsanleitung_Emmert","65"), - # ("Schulung_vor_Ort_beim_Kunden","26"), - # ("Abnahme","26"), - # ("SPS_Anlagenbetreuung","46"), - # ("PC_Anlagenbetreuung","49"), - # ("Anlagenbetreuung_durch_Montage","26") - # ) - #for row in keys_sivas: ###ergänzen - #summary.setdefault(row[0],[]).append(row[1]) - #siv = keys_sivas.get(k) - #summary.append(siv) - #df = pd.DataFrame.from_dict(data=summary, orient='index', columns=['Kostenart', 'Aufwand']) - #df.to_excel("output.xlsx", sheet_name="Kostenaufstellung") - - -class TestObjectMethods(unittest.TestCase): - - def test_eas(self): - - 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 = MG(Anzahl_MG, - rsm_direct=rsm_direct_eingabe, - rsm_fa=rsm_fa_eingabe, - flyer_f40=flyer_f40_eingabe, - neuenhauser=neuenhauser_eingabe, - flyer=flyer_eingabe, - verbindungsstrecken_w=verbindungsstrecken_w_eingabe, - puffer=puffer_eingabe, - turm=turm_eingabe) - - Anzahl_EAS = {} - eas = EA(Anzahl_EAS, mg) - - # Prüfe die Summe aller Eingänge und Ausgänge für jeden Elementtyp - # Bedienstation - self.assertEqual(eas.get_SEA('bedienstation_1fach_Not_Aus'), (0, 0)) - self.assertEqual(eas.get_SEA('bedienstation_einfach_Zug_Wechseln'), (14, 14)) - self.assertEqual(eas.get_SEA('bedienstation_automatische_Umfahrung'), (0, 0)) - self.assertEqual(eas.get_SEA('bedienstation_zweifach_Wechs_BCD_10f'), (0, 0)) - self.assertEqual(eas.get_SEA('bedienstation_zweifach_Not_Aus_Reset'), (20, 20)) - self.assertEqual(eas.get_SEA('bedienst_dreifach'), (0, 0)) - self.assertEqual(eas.get_SEA('bedienst_vierfach'), (0, 0)) - self.assertEqual(eas.get_SEA('bedienst_sechsfach'), (0, 0)) - self.assertEqual(eas.get_SEA('EAs_Unterverteiler_direct'), (0, 0)) - - # Ermittlung Mengengerüst - self.assertEqual(eas.get_SEA('Sensor_Traversenabfrage_optisch'), (68, 0)) - self.assertEqual(eas.get_SEA('Reflexionslichtschranke_RSM_DIRECT'), (0, 0)) - self.assertEqual(eas.get_SEA('Sensor induktiv Flyer+PM'), (4, 0)) - self.assertEqual(eas.get_SEA('Seilzugschalter'), (0, 0)) - - self.assertEqual(eas.get_SEA('Weiche'), (0, 35)) - self.assertEqual(eas.get_SEA('Weiche_nach_PM_bipolar'), (0, 0)) - self.assertEqual(eas.get_SEA('gemeinsame_Weichenrueckstellung'), (0, 0)) - self.assertEqual(eas.get_SEA('Dreifach_Weiche_DIRECT'), (0, 0)) - self.assertEqual(eas.get_SEA('Kreuzungsweiche'), (0, 10)) - self.assertEqual(eas.get_SEA('Stopper'), (0, 0)) - self.assertEqual(eas.get_SEA('Ventil_RA_3_2_abhebbar'), (0, 4)) - self.assertEqual(eas.get_SEA('Ventil_Doppelstreckenantrieb_5_2_abhebbar'), (0, 12)) - self.assertEqual(eas.get_SEA('Blitzleuchte_Stoerung'), (0, 6)) - - self.assertEqual(eas.get_SEA('Schnittstelle_Flyer_ElectroJet'), (8, 8)) - self.assertEqual(eas.get_SEA('Schnittstelle_Putzmaschine_Neuhauser'), (0, 0)) - self.assertEqual(eas.get_SEA('FEldbux_UV_EinAusgang'), (14, 7)) - - self.assertEqual(eas.get_SEA('Spulenumsetzstation'), (0, 0)) - - self.assertEqual(eas.get_SEA('RA_unidirektional'), (0, 4)) - self.assertEqual(eas.get_SEA('RA_unidirektional_abhebbar'), (0, 0)) - self.assertEqual(eas.get_SEA('RA_unidirektional_mit_gemeinsamer_Wendung'), (0, 0)) - self.assertEqual(eas.get_SEA('RA_unidirektional_ohne_SPS_Ansteuerung'), (0, 0)) - self.assertEqual(eas.get_SEA('RA_bidirektional'), (0, 60)) - self.assertEqual(eas.get_SEA('RA_bidirektional_abhebbar'), (0, 8)) - self.assertEqual(eas.get_SEA('RA_bidirektional_abhebbar_gemeinsWend'), (0, 0)) - self.assertEqual(eas.get_SEA('RA_bidirektional_ohne_SPS_Ansteuerung'), (0, 0)) - self.assertEqual(eas.get_SEA('RA_in_RSM_bidirektional'), (0, 0)) - self.assertEqual(eas.get_SEA('Doppelstreckenantrieb'), (0, 12)) - self.assertEqual(eas.get_SEA('Doppelstreckenantriebgemeinsame_Wendung'), (0, 0)) - self.assertEqual(eas.get_SEA('gemeinsame_Wendung'), (0, 0)) - self.assertEqual(eas.get_SEA('Frequenzumrichter'), (0, 0)) - - - self.assertEqual(eas.gesamt_E(), 152) - self.assertEqual(eas.gesamt_A(), 216) - - self.assertEqual(eas.gesamt_E_incl_reserve(), 160) - self.assertEqual(eas.gesamt_A_incl_reserve(), 227) - - self.assertEqual(eas.get_SEA('Frequenzumrichter'), (0, 0)) - (eingänge, ausgänge) = eas.Anzahl_notwendigen_Siemens_EAKarten() - self.assertEqual(eingänge, 5) - self.assertEqual(ausgänge, 7) - - (eingänge, ausgänge) = eas.Anzahl_Siemens_EAKarten_incl_reserve() - self.assertEqual(eingänge, 5) - self.assertEqual(ausgänge, 8) - - - def test_HW(self): - - 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 = MG(Anzahl_MG, - rsm_direct=rsm_direct_eingabe, - rsm_fa=rsm_fa_eingabe, - flyer_f40=flyer_f40_eingabe, - neuenhauser=neuenhauser_eingabe, - flyer=flyer_eingabe, - verbindungsstrecken_w=verbindungsstrecken_w_eingabe, - puffer=puffer_eingabe, - turm=turm_eingabe) - - Anzahl_EAS = {} - eas = EA(Anzahl_EAS, mg) - - Anzahl_HW = {} - - hw = HW(Anzahl_HW, mg, eas) - emo_eingabe = { - "Schaltschrank_aufstellen": 1, - "Unterverteiler_montieren": 4, - "Pritsche_montieren_umbauen_demontieren": 66, - "Pritsche_in_RSM_montieren": 0, - "Motor_verdrahten_und_anschliessen": 97, - "Tableau_befestigen_und_anschliessen": 15, - "Schnittstelle_Flyer_Putzmaschine": 1, - "Sensoren_montieren": 84, - "Seilzugschalter_installieren": 0, - "Blitzleuchte_installieren": 3, - "Weiche_Stopper_anschliessen": 244, - "Erdung": 40, - } - emo = EMO(eas, hw, mg) - Anzahl_DL = {} - dl = Dienstleistung(Anzahl_DL, hw) - Anzahl_AL ={} - al = Anschlussl(Anzahl_AL, mg) - - self.assertEqual(hw.anzahl("schaltschrankgehaeuse_b1x1200_zubehoer"), 0) - self.assertEqual(hw.anzahl("schaltschrankgehaeuse_b2x800_zubehoer"), 0) - self.assertEqual(hw.anzahl("schaltschrankgehaeuse_b1x1200+1x800_zubehoer"), 1) - self.assertEqual(hw.anzahl("sps_simatic_s7_cpu315_2_pn_dp"), 0) - self.assertEqual(hw.anzahl("speicherkarte_fuer_sps_512_kb"), 0) - self.assertEqual(hw.anzahl("sps_simatic_s7_cpu317_2_pn_dp"), 0) - self.assertEqual(hw.anzahl("speicherkarte_fuer_sps2_mb"), 0) - self.assertEqual(hw.anzahl("sps_simatic_s7_1515_2"), 1) - self.assertEqual(hw.anzahl("sps_simatic_s7_1517_3"), 0) - self.assertEqual(hw.anzahl("sps_simatic_s7_1518_4"), 0) - self.assertEqual(hw.anzahl("sps_et200_1512sp"), 0) - self.assertEqual(hw.anzahl("memory_card_256_mb"), 1) - self.assertEqual(hw.anzahl("memory_card_2_gb"), 0) - self.assertEqual(hw.anzahl("et200_sp_ea_ebene"), 1) - self.assertEqual(hw.anzahl("netzwerk_fernwartung"), 1) - self.assertEqual(hw.anzahl("abgang_400v"), 0) - self.assertEqual(hw.anzahl("abgang_24_v"), 0) - self.assertEqual(hw.anzahl("anlagenrechner"), 1) - self.assertEqual(hw.anzahl("anlagenrechner_ohne_bildschirm"), 0) - self.assertEqual(hw.anzahl("pulteinbau_monitor_srline_rflat_24fhd"), 0) - self.assertEqual(hw.anzahl("kurzhubtastatur_kbt06_mit_touchpad_uslayout"), 0) - self.assertEqual(hw.anzahl("netzwerk_display_adapter_lindy"), 0) - self.assertEqual(hw.anzahl("zusaetzlicher_bildschirm"), 0) - self.assertEqual(hw.anzahl("schaltschrank"), 1) - self.assertEqual(hw.anzahl("unterverteiler_fuer_1neuenhauser_pm"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_1flyer"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_2flyer"), 2) - self.assertEqual(hw.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_puffer"), 1) - self.assertEqual(hw.anzahl("unterverteiler_fuer_5_rsm_fa"), 2) - self.assertEqual(hw.anzahl("korrektur_5_rsm_zusaetzlich_im_unterverteiler"), -1) - self.assertEqual(hw.anzahl("unterverteiler_fuer_10_rsm_fa"), 0) - self.assertEqual(hw.anzahl("korrektur_10_rsm_zusaetzlich_im_unterverteiler"), -2) - self.assertEqual(hw.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar"), 0) - self.assertEqual(hw.anzahl("korrektur_3_rsm_zusaetzlich_im_unterverteiler"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_4_rsm_direct"), 0) - self.assertEqual(hw.anzahl("korrektur_4_rsm_zusaetzlich_im_unterverteiler"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_12_rsm_direct"), 0) - self.assertEqual(hw.anzahl("korrektur_12_rsm_zusaetzlich_im_unterverteiler"), 0) - self.assertEqual(hw.anzahl("unterverteiler_fuer_8_rsm_direct"), 0) - self.assertEqual(hw.anzahl("korrektur_8_rsm_direct_zusaetzlich_im_unterverteiler"), 0) - self.assertEqual(hw.anzahl("busverteiler_6_rsm_direct"), 0) - self.assertEqual(hw.anzahl("korrektur_6_rsm_zusaetzlich_im_busverteiler"), 0) - self.assertEqual(hw.anzahl("busverteiler_8_rsm_direct"), 0) - self.assertEqual(hw.anzahl("korrektur_8_rsm_zusaetzlich_im_busverteiler"), 0) - self.assertEqual(hw.anzahl("antrieb_unidirektional_halbleiter"), 4) - self.assertEqual(hw.anzahl("antrieb_bidirektional_halbleiter"), 44) - self.assertEqual(hw.anzahl("antrieb_unidirektional_schuetz"), 0) - self.assertEqual(hw.anzahl("antrieb_bidirektional_schuetz"), 0) - self.assertEqual(hw.anzahl("motorschutzschalter"), 0) - self.assertEqual(hw.anzahl("wendeschuetzschaltung"), 0) - self.assertEqual(hw.anzahl("frequenzumrichter"), 0) - self.assertEqual(hw.anzahl("bedienstation_1fach_kpl"), 14) - self.assertEqual(hw.anzahl("bedienst_2fach_wechs_bcd_10f"), 0) - self.assertEqual(hw.anzahl("bedienstation_2fach_kpl"), 10) - self.assertEqual(hw.anzahl("halter_bedientableau_2fach"), 10) - self.assertEqual(hw.anzahl("bedienstation_3fach_kpl"), 0) - self.assertEqual(hw.anzahl("halter_bedientableau_3fach"), 0) - self.assertEqual(hw.anzahl("bedienstation_4fach_kpl"), 0) - self.assertEqual(hw.anzahl("halter_bedientableau_4fach"), 0) - self.assertEqual(hw.anzahl("bedienstation_6fach_kpl"), 0) - self.assertEqual(hw.anzahl("halter_bedienstation_6fach"), 0) - self.assertEqual(hw.anzahl("drucktaster_automatische_umfahrung"), 0) - self.assertEqual(hw.anzahl("halter_fuer_drucktaster"), 0) - self.assertEqual(hw.anzahl("ET200_SP"), 1) - self.assertEqual(hw.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"), 7) - self.assertEqual(hw.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"), 0) - self.assertEqual(hw.anzahl("et200_sp_eingangskarte_8_de"), 31) - self.assertEqual(hw.anzahl("korrektur_et200_sp_eingangskarte_8_de"), 0) - self.assertEqual(hw.anzahl("et200_sp_eingangskarte_16_de"), 0) - self.assertEqual(hw.anzahl("et200_sp_eingangskarte_8_do"), 33) - self.assertEqual(hw.anzahl("korrektur_et200_sp_eingangskarte_8_do"), 0) - self.assertEqual(hw.anzahl("et200_sp_eingangskarte_16_do"), 0) - self.assertEqual(hw.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen"), 14) - self.assertEqual(hw.anzahl("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"), 0) - self.assertEqual(hw.anzahl("et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen"), 50) - self.assertEqual(hw.anzahl("et200_sp_base_unit_neue_last"), -1) - self.assertEqual(hw.anzahl("korrektur_et200_sp_base_unit_neue_last"), -15) - self.assertEqual(hw.anzahl("et200_sp_base_unit_links_gebrueckt"), 1) - self.assertEqual(hw.anzahl("korrektur_et200_sp_base_unit_links_gebrueckt"), 0) - self.assertEqual(hw.anzahl("SLIO"), 0) - self.assertEqual(hw.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"), 0) - self.assertEqual(hw.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"), 0) - self.assertEqual(hw.anzahl("slio_eingangskarte_4_de"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_eingangskarte_4_de"), 0) - self.assertEqual(hw.anzahl("slio_eingangskarte_8_de"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_eingangskarte_8_de"), 0) - self.assertEqual(hw.anzahl("slio_ausgangskarte_4_do"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_ausgangskarte_4_do"), 0) - self.assertEqual(hw.anzahl("slio_ausgangskarte_8_do"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_ausgangskarte_8_do"), 0) - self.assertEqual(hw.anzahl("slio_power_modul"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_power_modul"), 0) - self.assertEqual(hw.anzahl("slio_4_x_dc_24v_4_x_dc_0v"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_4_x_dc_24v_4_x_dc_0v"), 0) - self.assertEqual(hw.anzahl("slio_8_x_dc_24v"), 0) - self.assertEqual(hw.anzahl("slio_8_x_dc_0v"), 0) - self.assertEqual(hw.anzahl("korrektur_slio_8_x_dc_0v"), 0) - self.assertEqual(hw.anzahl("movimot_fu_mit_anschaltung"), 0) - self.assertEqual(hw.anzahl("sensor_optisch_traverse"), 68) - self.assertEqual(hw.anzahl("sensorhalter_ohne_sensor"), 0) - self.assertEqual(hw.anzahl("reflexionslichtschranke_rsm_direct"), 0) - self.assertEqual(hw.anzahl("stoppersensor_induktiv_mit_halter"), 4) - self.assertEqual(hw.anzahl("sensor_spulenpruefung_voll_leer"), 0) - self.assertEqual(hw.anzahl("seilzugschalter"), 0) - self.assertEqual(hw.anzahl("seil_fuer_seilzugschalter"), 0) - self.assertEqual(hw.anzahl("blitzleuchte"), 6) - self.assertEqual(hw.anzahl("spulenumsetzstation"), 0) - self.assertEqual(hw.anzahl("sensorkabel_je_20m"), 78) - self.assertEqual(hw.anzahl("stopper_weichenkabel_je_5m"), 67) - self.assertEqual(hw.anzahl("motorkabel_je_30m"), 48) - self.assertEqual(hw.anzahl("kabelpritschen_leitern_200_60"), 348) - self.assertEqual(hw.anzahl("kabelpritsche_rsm_100_60"), 0) - self.assertEqual(hw.anzahl("kabelpritsche_rsm_50_35"), 0) - self.assertEqual(hw.anzahl("klemmkasten_rsm"), 2) - self.assertEqual(hw.anzahl("klemmkasten_direct_in_rsm"), 0) - self.assertEqual(hw.anzahl("erdung"), 29) - self.assertEqual(hw.anzahl("kleinteile_rohre_schellen_kabelbinder_ect"), 1.5) - self.assertEqual(hw.anzahl("kabel_fuer_klemmkasten_und_bts_60m"), 20) - self.assertEqual(hw.anzahl("kabel_fuer_1fach_bts_zug_wechseln"), 14) - self.assertEqual(hw.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac"), 5) - self.assertEqual(hw.anzahl("zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"), -1) - self.assertEqual(hw.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"), -6) - self.assertEqual(hw.anzahl("zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"), 5) - self.assertEqual(hw.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"), 0) - self.assertEqual(hw.anzahl("zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm"), 0) - self.assertEqual(hw.anzahl("zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm"), 2) - self.assertEqual(hw.anzahl("profinetkabel"), 5) - self.assertEqual(hw.anzahl("korrektur_profinetkabel"), 0) - self.assertEqual(hw.anzahl("schnittstellen_8x1mm2_30m"), 4) - - self.assertEqual(hw.summe_vorort(), 19923.6) - self.assertAlmostEqual(hw.summe_gesamt(), 47167.04) - self.assertEqual(hw.summe_in_LL(), 27243.44) - self.assertEqual(hw.summe_h_zeiten_hardwareplanung(), 167.0) - self.assertEqual(hw.summe_h_unterverteiler_e_werkstatt(), 94.0) - - def test_emo(self): - 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 = MG(Anzahl_MG, - rsm_direct=rsm_direct_eingabe, - rsm_fa=rsm_fa_eingabe, - flyer_f40=flyer_f40_eingabe, - neuenhauser=neuenhauser_eingabe, - flyer=flyer_eingabe, - verbindungsstrecken_w=verbindungsstrecken_w_eingabe, - puffer=puffer_eingabe, - turm=turm_eingabe) - - Anzahl_EAS = {} - eas = EA(Anzahl_EAS, mg) - - Anzahl_HW = {} - - hw = HW(Anzahl_HW, mg, eas) - emo = EMO(eas, hw, mg) - self.assertAlmostEqual(emo.dauer_emo(), 241) - self.assertAlmostEqual(emo.dauer_emo_incl_mehrauwand(), 265.1) - - def test_dienstleistung(self): - 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, - "Doppelstreckenantieb_Korrektur":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 = MG(Anzahl_MG, - rsm_direct=rsm_direct_eingabe, - rsm_fa=rsm_fa_eingabe, - flyer_f40=flyer_f40_eingabe, - neuenhauser=neuenhauser_eingabe, - flyer=flyer_eingabe, - verbindungsstrecken_w=verbindungsstrecken_w_eingabe, - puffer=puffer_eingabe, - turm=turm_eingabe) - - Anzahl_EAS = {} - eas = EA(Anzahl_EAS, mg) - - Anzahl_HW = {} - - hw = HW(Anzahl_HW, mg, eas) - emo_eingabe = { - "Schaltschrank_aufstellen": 1, - "Unterverteiler_montieren": 4, - "Pritsche_montieren_umbauen_demontieren": 66, - "Pritsche_in_RSM_montieren": 0, - "Motor_verdrahten_und_anschliessen": 97, - "Tableau_befestigen_und_anschliessen": 15, - "Schnittstelle_Flyer_Putzmaschine": 1, - "Sensoren_montieren": 84, - "Seilzugschalter_installieren": 0, - "Blitzleuchte_installieren": 3, - "Weiche_Stopper_anschliessen": 244, - "Erdung": 40, - } - emo = EMO(eas, hw, mg) - Anzahl_DL = {} - dl = Dienstleistung(Anzahl_DL, hw) - Anzahl_AL ={} - al = Anschlussl(Anzahl_AL, mg) - self.assertEqual(dl.stunden_diensleistung_hardwareplanung(), 225.1) - self.assertEqual(dl.stunden_elektrowerkstatt(), 196.83333333333333333333333333) - self.assertEqual(dl.summe_stunden_dienstleistung_in_landsberg(), 421.9333333333333333333) - self.assertEqual(dl.get_hours_of("Pflichtenheft_Autom_Schnittstellen"), 0) - self.assertEqual(dl.get_hours_of("Erstellung_Steuerungslayout"), 41.75) - self.assertEqual(dl.get_hours_of("Schaltplanerstellung_incl_Korrekturen"), 100.2) - self.assertEqual(dl.get_hours_of("Projektkoordination"), 25.05) - self.assertEqual(dl.get_hours_of("Materialdispo"), 33.4) - self.assertEqual(dl.get_hours_of("Abstimmung_mit_E_Werkstatt"), 8.35) - self.assertEqual(dl.get_hours_of("Erstellen_E_Montageunterlagen"), 8.35) - self.assertEqual(dl.get_hours_of("PC_Installation"), 8) - self.assertEqual(dl.get_hours_of("Oberfläche_Simulation"), 0) - self.assertEqual(dl.get_hours_of("SPS_Test_im_Haus_Simulation"), 0) - self.assertEqual(dl.get_hours_of("Bedienerhandbuch"), 16) - self.assertEqual(dl.get_hours_of("SPS_Doku"), 15) - self.assertEqual(dl.get_hours_of("PC_Doku"), 0) - self.assertEqual(dl.get_hours_of("Schaltschrankbau"), 88) - self.assertEqual(dl.get_hours_of("Unterverteilerbau"), 94) - self.assertEqual(dl.get_hours_of("Klemmkastenbau_je_2h"), 4) - self.assertEqual(dl.get_hours_of("Bedientableaubau"), 10.833333333333333) - self.assertEqual(dl.get_hours_of("Vormontage_im_Haus"), 0) - - def test_anschlussleistung(self): - 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, - "Doppelstreckenantrieb_Korrektur":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 = MG(Anzahl_MG, - rsm_direct=rsm_direct_eingabe, - rsm_fa=rsm_fa_eingabe, - flyer_f40=flyer_f40_eingabe, - neuenhauser=neuenhauser_eingabe, - flyer=flyer_eingabe, - verbindungsstrecken_w=verbindungsstrecken_w_eingabe, - puffer=puffer_eingabe, - turm=turm_eingabe) - - Anzahl_EAS = {} - eas = EA(Anzahl_EAS, mg) - - Anzahl_HW = {} - - hw = HW(Anzahl_HW, mg, eas) - Anzahl_AL ={} - al = Anschlussl(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) - - def test_ergebnis(self): - 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, - "Doppelstreckenantrieb_Korrektur":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 = MG(Anzahl_MG, - rsm_direct=rsm_direct_eingabe, - rsm_fa=rsm_fa_eingabe, - flyer_f40=flyer_f40_eingabe, - neuenhauser=neuenhauser_eingabe, - flyer=flyer_eingabe, - verbindungsstrecken_w=verbindungsstrecken_w_eingabe, - puffer=puffer_eingabe, - turm=turm_eingabe) - - Anzahl_EAS = {} - eas = EA(Anzahl_EAS, mg) - - Anzahl_HW = {} - - hw = HW(Anzahl_HW, mg, eas) - - emo = EMO(eas, hw, mg) - Anzahl_DL = {} - dl = Dienstleistung(Anzahl_DL, hw) - Anzahl_Ergebnis = {} - erg = Ergebnis(Anzahl_Ergebnis, hw, dl, emo) - self.assertAlmostEqual(erg.get_cost_of("E_Werkstatt"), 6298.6666666666667) - self.assertEqual(erg.get_cost_of("Schaltschrankbau_extern_Mehrkosten"), 0) - self.assertEqual(erg.get_cost_of("Dienstleistung_in_LL"), 10129.5) - self.assertEqual(erg.get_cost_of("Pflichtenheft"), 0) - self.assertEqual(erg.get_cost_of("SPS_Programmierung"), 11250) - self.assertEqual(erg.get_cost_of("PC_Programmierung_Visualisierung"), 3375) - self.assertEqual(erg.get_cost_of("Montage_elektrisch"), 9543.6) - self.assertAlmostEqual(erg.get_cost_of("Inbetriebnahmetest_Hardware_durch_Montage"), 954.36) - self.assertEqual(erg.get_cost_of("SPS_Inbetriebsetzung"), 9750) - self.assertEqual(erg.get_cost_of("PC_Inbetriebsetzung"), 0) - self.assertEqual(erg.get_cost_of("Inbetriebnahmeunterstützung_durch_Montage"), 4680) - self.assertEqual(erg.get_cost_of("Dokumentation"), 560) - self.assertEqual(erg.get_cost_of("Bedienungsanleitung_Emmert"), 1125) - self.assertEqual(erg.get_cost_of("Schulung_vor_Ort_beim_Kunden"), 0) - self.assertEqual(erg.get_cost_of("Abnahme"), 0) - self.assertEqual(erg.get_cost_of("SPS_Anlagenbetreuung"), 0) - self.assertEqual(erg.get_cost_of("PC_Anlagenbetreuung"), 0) - self.assertEqual(erg.get_cost_of("Anlagenbetreuung_durch_Montage"), 0) - self.assertAlmostEqual(erg.get_sum_of_costs(hw), 104833.16666666666) - summary = erg.summary_costs(hw) ### soll ich pro Register noch eine Möglichkeit ergänzen, manuell Kosten abzuziehen? Bei Jayjay zb in der HW waren es 800€ weniger als zu erwarten - - # df = pd.DataFrame.from_dict(data=summary, orient='index', columns=['Aufwand']) - # df.to_excel("output.xlsx", sheet_name="Kostenaufstellung") -def test_Unittests(): - unittest.main() - -if __name__ == '__main__': - test_Unittests() diff --git a/test_jayjay.py b/test_jayjay.py index 659bedf..bb1f2eb 100644 --- a/test_jayjay.py +++ b/test_jayjay.py @@ -1,31 +1,1964 @@ import rieter_ekalk as rek import unittest +import pandas as pd 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, - } + # 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_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 = { + # "RA_bi_Korrektur":0, + # #"RA_bi_ohne_SPS":0, + # "RA_bi_ohne_SPS_Korrektur":0, + # #"Bedientableau_2fach":0, + # } + # rek.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(rek.MG.get_value_of_object('rsm_fa', 'Anzahl_RSM'), 14) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Flex_A_Premium'), False) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Getriebe_in_der_Mitte'), False) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'RSM_Einfahrt_Ein_Beidseitig'), False) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse'), 20) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse_zusätzlich'), 6) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Bedientableau_1fach'), 14) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Bedientableau_1fach_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Bedientableau_2fach'), 6) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Bedientableau_2fach_Korrektur'), 4) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Weiche'), 18) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Weiche_Korrektur'), 4) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'RRA_bi'), 24) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'RRA_bi_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'RRA_bi_auf_Haupstrecke'), 10) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'RRA_bi_ohne_SPS_Ansteuerung'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'gemeinsame_Wendung'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Seilzugschalter'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Mit_Drucktaster'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Mit_Drucktaster_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom'), 2) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Hauptschalter_Ein_Meldung'), 2) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Hauptschalter_Ein-Meldung_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung'), 2) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('rsm_fa', 'klemmkasten_rsm'), 2) + + # # check data of the flyer + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Anzahl'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Anzahl_Schienen'), 2) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Flyer'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse'), 28) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Sensor_induktiv_Spulenalter_Zug_positionierung'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Bedientableau_2fach'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Interface_Doffer'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Weiche'), 8) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Weiche_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Weiche_nach_Flyer_bipolar'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Dreifachweiche'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Wechsel'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Wechsel_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'RA_bi_ohne_SPS-Ansteuerung'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'RA_bi'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Doppelstreckenantrieb'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_unger_Schiene'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein_Meldung'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein-Meldung_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung'), 4) + # self.assertEqual(rek.MG.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung_Korrektur'), 0) + + # # Verbindungsstrecken Wechsel + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Sensor_optisch_Traverse'), 10) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_1fach'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_2fach'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_14fach'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Weiche'), 4) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Dreifachweiche'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Kreuzungsweiche'), 1) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Werma_Rundumleuchte_Störung'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni_ohne_SPS_Ansteuerung'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi_ohne_SPS-Ansteuerung'), 0) + # self.assertEqual(rek.MG.get_value_of_object('verbindungsstrecken_wechsel', 'Doppelstreckenantrieb'), 0) + + # # Puffer + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Anzahl'), 1) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Anzahl_Staustrecken'), 5) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Sensor_optisch_Traverse'), 6) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Sensor_optisch_Traverse_Korrektur'), 1) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Weiche'), 5) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'RA_bi_ungerade_Schiene'), 2) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Weiche_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Doppelstreckenantrieb'), 2) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Meldelampe_Überstrom'), 1) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Meldelampe_Überstrom_Korrektur'), 0) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Hauptschalter_Ein_Meldung'), 1) + # self.assertEqual(rek.MG.get_value_of_object('puffer', 'Hauptschalter_Ein-Meldung_Korrektur'), 0) + + # zf = rek.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_eas(self): + + # 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) + + # Anzahl_EAS = {"schaltschrank":1} + # eas = rek.EA(Anzahl_EAS, rek.MG) + + # # Prüfe die Summe aller Eingänge und Ausgänge für jeden Elementtyp + # # Bedienstation + # self.assertEqual(eas.get_SEA('bedienstation_1fach_Not_Aus'), (0, 0)) + # self.assertEqual(eas.get_SEA('bedienstation_einfach_Zug_Wechseln'), (14, 14)) + # self.assertEqual(eas.get_SEA('bedienstation_automatische_Umfahrung'), (0, 0)) + # self.assertEqual(eas.get_SEA('bedienstation_zweifach_Wechs_BCD_10f'), (0, 0)) + # self.assertEqual(eas.get_SEA('bedienstation_zweifach_Not_Aus_Reset'), (20, 20)) + # self.assertEqual(eas.get_SEA('bedienst_dreifach'), (0, 0)) + # self.assertEqual(eas.get_SEA('bedienst_vierfach'), (0, 0)) + # self.assertEqual(eas.get_SEA('bedienst_sechsfach'), (0, 0)) + # self.assertEqual(eas.get_SEA('EAs_Unterverteiler_direct'), (0, 0)) + + # # Ermittlung Mengengerüst + # self.assertEqual(eas.get_SEA('Sensor_Traversenabfrage_optisch'), (68, 0)) + # self.assertEqual(eas.get_SEA('Reflexionslichtschranke_RSM_DIRECT'), (0, 0)) + # self.assertEqual(eas.get_SEA('Sensor induktiv Flyer+PM'), (4, 0)) + # self.assertEqual(eas.get_SEA('Seilzugschalter'), (0, 0)) + + # self.assertEqual(eas.get_SEA('Weiche'), (0, 35)) + # self.assertEqual(eas.get_SEA('Weiche_nach_PM_bipolar'), (0, 0)) + # self.assertEqual(eas.get_SEA('gemeinsame_Weichenrueckstellung'), (0, 0)) + # self.assertEqual(eas.get_SEA('Dreifach_Weiche_DIRECT'), (0, 0)) + # self.assertEqual(eas.get_SEA('Kreuzungsweiche'), (0, 10)) + # self.assertEqual(eas.get_SEA('Stopper'), (0, 0)) + # self.assertEqual(eas.get_SEA('Ventil_RA_3_2_abhebbar'), (0, 4)) + # self.assertEqual(eas.get_SEA('Ventil_Doppelstreckenantrieb_5_2_abhebbar'), (0, 12)) + # self.assertEqual(eas.get_SEA('Blitzleuchte_Stoerung'), (0, 6)) + + # self.assertEqual(eas.get_SEA('Schnittstelle_Flyer_ElectroJet'), (8, 8)) + # self.assertEqual(eas.get_SEA('Schnittstelle_Putzmaschine_Neuhauser'), (0, 0)) + # self.assertEqual(eas.get_SEA('FEldbux_UV_EinAusgang'), (14, 7)) + + # self.assertEqual(eas.get_SEA('Spulenumsetzstation'), (0, 0)) + + # self.assertEqual(eas.get_SEA('RA_unidirektional'), (0, 4)) + # self.assertEqual(eas.get_SEA('RA_unidirektional_abhebbar'), (0, 0)) + # self.assertEqual(eas.get_SEA('RA_unidirektional_mit_gemeinsamer_Wendung'), (0, 0)) + # self.assertEqual(eas.get_SEA('RA_unidirektional_ohne_SPS_Ansteuerung'), (0, 0)) + # self.assertEqual(eas.get_SEA('RA_bidirektional'), (0, 60)) + # self.assertEqual(eas.get_SEA('RA_bidirektional_abhebbar'), (0, 8)) + # self.assertEqual(eas.get_SEA('RA_bidirektional_abhebbar_gemeinsWend'), (0, 0)) + # self.assertEqual(eas.get_SEA('RA_bidirektional_ohne_SPS_Ansteuerung'), (0, 0)) + # self.assertEqual(eas.get_SEA('RA_in_RSM_bidirektional'), (0, 0)) + # self.assertEqual(eas.get_SEA('Doppelstreckenantrieb'), (0, 12)) + # self.assertEqual(eas.get_SEA('Doppelstreckenantriebgemeinsame_Wendung'), (0, 0)) + # self.assertEqual(eas.get_SEA('gemeinsame_Wendung'), (0, 0)) + # self.assertEqual(eas.get_SEA('Frequenzumrichter'), (0, 0)) + + + # self.assertEqual(eas.gesamt_E(), 152) + # self.assertEqual(eas.gesamt_A(), 216) + + # self.assertEqual(eas.gesamt_E_incl_reserve(), 160) + # self.assertEqual(eas.gesamt_A_incl_reserve(), 227) + + # self.assertEqual(eas.get_SEA('Frequenzumrichter'), (0, 0)) + # (eingänge, ausgänge) = eas.Anzahl_notwendigen_Siemens_EAKarten() + # self.assertEqual(eingänge, 5) + # self.assertEqual(ausgänge, 7) + + # (eingänge, ausgänge) = eas.Anzahl_Siemens_EAKarten_incl_reserve() + # self.assertEqual(eingänge, 5) + # self.assertEqual(ausgänge, 8) + + + # def test_HW(self): + + # 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) + + # Anzahl_EAS = { + # "schaltschrank":1 + # } + # eas = rek.EA(Anzahl_EAS, rek.MG) + + # Anzahl_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" + # } + + # HW = rek.HW(Anzahl_HW, rek.MG, eas) + + # self.assertEqual(rek.HW.anzahl("schaltschrankgehaeuse_b1x1200_zubehoer"), 0) + # self.assertEqual(rek.HW.anzahl("schaltschrankgehaeuse_b2x800_zubehoer"), 0) + # self.assertEqual(rek.HW.anzahl("schaltschrankgehaeuse_b1x1200+1x800_zubehoer"), 1) + # self.assertEqual(rek.HW.anzahl("sps_simatic_s7_cpu315_2_pn_dp"), 0) + # self.assertEqual(rek.HW.anzahl("speicherkarte_fuer_sps_512_kb"), 0) + # self.assertEqual(rek.HW.anzahl("sps_simatic_s7_cpu317_2_pn_dp"), 0) + # self.assertEqual(rek.HW.anzahl("speicherkarte_fuer_sps2_mb"), 0) + # self.assertEqual(rek.HW.anzahl("sps_simatic_s7_1515_2"), 1) + # self.assertEqual(rek.HW.anzahl("sps_simatic_s7_1517_3"), 0) + # self.assertEqual(rek.HW.anzahl("sps_simatic_s7_1518_4"), 0) + # self.assertEqual(rek.HW.anzahl("sps_et200_1512sp"), 0) + # self.assertEqual(rek.HW.anzahl("memory_card_256_mb"), 1) + # self.assertEqual(rek.HW.anzahl("memory_card_2_gb"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_ea_ebene"), 1) + # self.assertEqual(rek.HW.anzahl("netzwerk_fernwartung"), 1) + # self.assertEqual(rek.HW.anzahl("abgang_400v"), 0) + # self.assertEqual(rek.HW.anzahl("abgang_24_v"), 0) + # self.assertEqual(rek.HW.anzahl("anlagenrechner"), 1) + # self.assertEqual(rek.HW.anzahl("anlagenrechner_ohne_bildschirm"), 0) + # self.assertEqual(rek.HW.anzahl("pulteinbau_monitor_srline_rflat_24fhd"), 0) + # self.assertEqual(rek.HW.anzahl("kurzhubtastatur_kbt06_mit_touchpad_uslayout"), 0) + # self.assertEqual(rek.HW.anzahl("netzwerk_display_adapter_lindy"), 0) + # self.assertEqual(rek.HW.anzahl("zusaetzlicher_bildschirm"), 0) + # self.assertEqual(rek.HW.anzahl("schaltschrank"), 1) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_1neuenhauser_pm"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_1flyer"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_2flyer"), 2) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_1flyer_f40_mit_integrierter_putzmaschine"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_2flyer_f40_mit_integrierter_putzmaschine"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_puffer"), 1) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_5_rsm_fa"), 2) + # self.assertEqual(rek.HW.anzahl("korrektur_5_rsm_zusaetzlich_im_unterverteiler"), -1) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_10_rsm_fa"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_10_rsm_zusaetzlich_im_unterverteiler"), -2) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_3_rsm_fa_mit_umfahrung_steckbar"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_3_rsm_zusaetzlich_im_unterverteiler"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_4_rsm_direct"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_4_rsm_zusaetzlich_im_unterverteiler"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_12_rsm_direct"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_12_rsm_zusaetzlich_im_unterverteiler"), 0) + # self.assertEqual(rek.HW.anzahl("unterverteiler_fuer_8_rsm_direct"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_8_rsm_direct_zusaetzlich_im_unterverteiler"), 0) + # self.assertEqual(rek.HW.anzahl("busverteiler_6_rsm_direct"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_6_rsm_zusaetzlich_im_busverteiler"), 0) + # self.assertEqual(rek.HW.anzahl("busverteiler_8_rsm_direct"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_8_rsm_zusaetzlich_im_busverteiler"), 0) + # self.assertEqual(rek.HW.anzahl("antrieb_unidirektional_halbleiter"), 4) + # self.assertEqual(rek.HW.anzahl("antrieb_bidirektional_halbleiter"), 44) + # self.assertEqual(rek.HW.anzahl("antrieb_unidirektional_schuetz"), 0) + # self.assertEqual(rek.HW.anzahl("antrieb_bidirektional_schuetz"), 0) + # self.assertEqual(rek.HW.anzahl("motorschutzschalter"), 0) + # self.assertEqual(rek.HW.anzahl("wendeschuetzschaltung"), 0) + # self.assertEqual(rek.HW.anzahl("frequenzumrichter"), 0) + # self.assertEqual(rek.HW.anzahl("bedienstation_1fach_kpl"), 14) + # self.assertEqual(rek.HW.anzahl("bedienst_2fach_wechs_bcd_10f"), 0) + # self.assertEqual(rek.HW.anzahl("bedienstation_2fach_kpl"), 10) + # self.assertEqual(rek.HW.anzahl("halter_bedientableau_2fach"), 10) + # self.assertEqual(rek.HW.anzahl("bedienstation_3fach_kpl"), 0) + # self.assertEqual(rek.HW.anzahl("halter_bedientableau_3fach"), 0) + # self.assertEqual(rek.HW.anzahl("bedienstation_4fach_kpl"), 0) + # self.assertEqual(rek.HW.anzahl("halter_bedientableau_4fach"), 0) + # self.assertEqual(rek.HW.anzahl("bedienstation_6fach_kpl"), 0) + # self.assertEqual(rek.HW.anzahl("halter_bedienstation_6fach"), 0) + # self.assertEqual(rek.HW.anzahl("drucktaster_automatische_umfahrung"), 0) + # self.assertEqual(rek.HW.anzahl("halter_fuer_drucktaster"), 0) + # self.assertEqual(rek.HW.anzahl("ET200_SP"), 1) + # self.assertEqual(rek.HW.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"), 7) + # self.assertEqual(rek.HW.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_eingangskarte_8_de"), 31) + # self.assertEqual(rek.HW.anzahl("korrektur_et200_sp_eingangskarte_8_de"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_eingangskarte_16_de"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_eingangskarte_8_do"), 33) + # self.assertEqual(rek.HW.anzahl("korrektur_et200_sp_eingangskarte_8_do"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_eingangskarte_16_do"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_base_unit_neue_last_mit_potKlemmen"), 14) + # self.assertEqual(rek.HW.anzahl("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"), 0) + # self.assertEqual(rek.HW.anzahl("et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen"), 50) + # self.assertEqual(rek.HW.anzahl("et200_sp_base_unit_neue_last"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_et200_sp_base_unit_neue_last"), -14) + # self.assertEqual(rek.HW.anzahl("et200_sp_base_unit_links_gebrueckt"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_et200_sp_base_unit_links_gebrueckt"), 0) + # self.assertEqual(rek.HW.anzahl("SLIO"), 0) + # self.assertEqual(rek.HW.anzahl("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45_SLIO"), 0) + # self.assertEqual(rek.HW.anzahl("slio_eingangskarte_4_de"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_eingangskarte_4_de"), 0) + # self.assertEqual(rek.HW.anzahl("slio_eingangskarte_8_de"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_eingangskarte_8_de"), 0) + # self.assertEqual(rek.HW.anzahl("slio_ausgangskarte_4_do"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_ausgangskarte_4_do"), 0) + # self.assertEqual(rek.HW.anzahl("slio_ausgangskarte_8_do"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_ausgangskarte_8_do"), 0) + # self.assertEqual(rek.HW.anzahl("slio_power_modul"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_power_modul"), 0) + # self.assertEqual(rek.HW.anzahl("slio_4_x_dc_24v_4_x_dc_0v"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_4_x_dc_24v_4_x_dc_0v"), 0) + # self.assertEqual(rek.HW.anzahl("slio_8_x_dc_24v"), 0) + # self.assertEqual(rek.HW.anzahl("slio_8_x_dc_0v"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_slio_8_x_dc_0v"), 0) + # self.assertEqual(rek.HW.anzahl("movimot_fu_mit_anschaltung"), 0) + # self.assertEqual(rek.HW.anzahl("sensor_optisch_traverse"), 68) + # self.assertEqual(rek.HW.anzahl("sensorhalter_ohne_sensor"), 0) + # self.assertEqual(rek.HW.anzahl("reflexionslichtschranke_rsm_direct"), 0) + # self.assertEqual(rek.HW.anzahl("stoppersensor_induktiv_mit_halter"), 4) + # self.assertEqual(rek.HW.anzahl("sensor_spulenpruefung_voll_leer"), 0) + # self.assertEqual(rek.HW.anzahl("seilzugschalter"), 0) + # self.assertEqual(rek.HW.anzahl("seil_fuer_seilzugschalter"), 0) + # self.assertEqual(rek.HW.anzahl("blitzleuchte"), 6) + # self.assertEqual(rek.HW.anzahl("spulenumsetzstation"), 0) + # self.assertEqual(rek.HW.anzahl("sensorkabel_je_20m"), 78) + # self.assertEqual(rek.HW.anzahl("stopper_weichenkabel_je_5m"), 67) + # self.assertEqual(rek.HW.anzahl("motorkabel_je_30m"), 48) + # self.assertEqual(rek.HW.anzahl("kabelpritschen_leitern_200_60"), 348) + # self.assertEqual(rek.HW.anzahl("kabelpritsche_rsm_100_60"), 0) + # self.assertEqual(rek.HW.anzahl("kabelpritsche_rsm_50_35"), 0) + # self.assertEqual(rek.HW.anzahl("klemmkasten_rsm"), 2) + # self.assertEqual(rek.HW.anzahl("klemmkasten_direct_in_rsm"), 0) + # self.assertEqual(rek.HW.anzahl("erdung"), 29) + # self.assertEqual(rek.HW.anzahl("kleinteile_rohre_schellen_kabelbinder_ect"), 1.5) + # self.assertEqual(rek.HW.anzahl("kabel_fuer_klemmkasten_und_bts_60m"), 20) + # self.assertEqual(rek.HW.anzahl("kabel_fuer_1fach_bts_zug_wechseln"), 14) + # self.assertEqual(rek.HW.anzahl("zuleitung_75_m_unterverteiler_4x4mm2_400vac"), 5) + # self.assertEqual(rek.HW.anzahl("zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"), 0) + # self.assertEqual(rek.HW.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"), -5) + # self.assertEqual(rek.HW.anzahl("zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"), 5) + # self.assertEqual(rek.HW.anzahl("korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"), 0) + # self.assertEqual(rek.HW.anzahl("zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm"), 0) + # self.assertEqual(rek.HW.anzahl("zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm"), 2) + # self.assertEqual(rek.HW.anzahl("profinetkabel"), 6) + # self.assertEqual(rek.HW.anzahl("korrektur_profinetkabel"), 0) + # self.assertEqual(rek.HW.anzahl("schnittstellen_8x1mm2_30m"), 4) + + # self.assertEqual(rek.HW.summe_vorort(), 20415.6) + # self.assertAlmostEqual(rek.HW.summe_gesamt(), 47667.04) + # self.assertEqual(rek.HW.summe_in_LL(), 27251.44) + # self.assertEqual(rek.HW.summe_h_zeiten_hardwareplanung(), 167.0) + # self.assertEqual(rek.HW.summe_h_unterverteiler_e_werkstatt(), 94.0) + + # def test_emo(self): + # 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) + + # Anzahl_EAS = { + # "schaltschrank":1 + # } + # eas = rek.EA(Anzahl_EAS, rek.MG) + + # Anzahl_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" + # } + + # HW = rek.HW(Anzahl_HW, rek.MG, eas) + # EMO = rek.EMO(eas, rek.HW, rek.MG) + # self.assertAlmostEqual(rek.EMO.dauer_emo_h(), 241) + # self.assertAlmostEqual(rek.EMO.dauer_emo_h_incl_mehrauwand(), 265.1) + + # def test_dienstleistung(self): + # 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, + # "Doppelstreckenantieb_Korrektur":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) + + # Anzahl_EAS = { + # "schaltschrank":1 + # } + # eas = rek.EA(Anzahl_EAS, rek.MG) + + # Anzahl_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" + # } + + # HW = rek.HW(Anzahl_HW, rek.MG, eas) + # Anzahl_DL = { + # "Bedienerhandbuch": 16, + # "SPS_Doku": 15, + # } + # dl = rek.Dienstleistung(Anzahl_DL, rek.HW) + # self.assertEqual(dl.stunden_diensleistung_hardwareplanung(), 225.1) + # self.assertEqual(dl.stunden_elektrowerkstatt(), 196.83333333333333333333333333) + # self.assertEqual(dl.summe_stunden_dienstleistung_in_landsberg(), 421.9333333333333333333) + # self.assertEqual(dl.get_hours_of("Pflichtenheft_Autom_Schnittstellen"), 0) + # self.assertEqual(dl.get_hours_of("Erstellung_Steuerungslayout"), 41.75) + # self.assertEqual(dl.get_hours_of("Schaltplanerstellung_incl_Korrekturen"), 100.2) + # self.assertEqual(dl.get_hours_of("Projektkoordination"), 25.05) + # self.assertEqual(dl.get_hours_of("Materialdispo"), 33.4) + # self.assertEqual(dl.get_hours_of("Abstimmung_mit_E_Werkstatt"), 8.35) + # self.assertEqual(dl.get_hours_of("Erstellen_E_Montageunterlagen"), 8.35) + # self.assertEqual(dl.get_hours_of("PC_Installation"), 8) + # self.assertEqual(dl.get_hours_of("Oberfläche_Simulation"), 0) + # self.assertEqual(dl.get_hours_of("SPS_Test_im_Haus_Simulation"), 0) + # self.assertEqual(dl.get_hours_of("Bedienerhandbuch"), 16) + # self.assertEqual(dl.get_hours_of("SPS_Doku"), 15) + # self.assertEqual(dl.get_hours_of("PC_Doku"), 0) + # self.assertEqual(dl.get_hours_of("Schaltschrankbau"), 88) + # self.assertEqual(dl.get_hours_of("Unterverteilerbau"), 94) + # self.assertEqual(dl.get_hours_of("Klemmkastenbau_je_2h"), 4) + # self.assertEqual(dl.get_hours_of("Bedientableaubau"), 10.833333333333333) + # self.assertEqual(dl.get_hours_of("Vormontage_im_Haus"), 0) + + # def test_anschlussleistung(self): + # 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, + # "Doppelstreckenantrieb_Korrektur":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) + + # Anzahl_AL ={} + # al = rek.Anschlussl(Anzahl_AL, rek.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) + + # def test_ergebnis(self): + # 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, + # "Doppelstreckenantrieb_Korrektur":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) + # Anzahl_EAS = { + # "schaltschrank":1 + # } + # eas = rek.EA(Anzahl_EAS, rek.MG) + + # Anzahl_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" + # } + + # HW = rek.HW(Anzahl_HW, rek.MG, eas) + + # EMO = rek.EMO(eas, rek.HW, rek.MG) + # Anzahl_DL = { + # "Bedienerhandbuch": 16, + # "SPS_Doku": 15, + # } + # dl = rek.Dienstleistung(Anzahl_DL, rek.HW) + # Anzahl_Ergebnis = { + # "SPS_Programmierung":150, + # "SPS_Inbetriebsetzung":130 + # } + # erg = rek.Ergebnis(Anzahl_Ergebnis, rek.HW, dl, rek.EMO) + # self.assertAlmostEqual(erg.get_cost_of("E_Werkstatt"), 6298.6666666666667) + # self.assertEqual(erg.get_cost_of("Schaltschrankbau_extern_Mehrkosten"), 0) + # self.assertEqual(erg.get_cost_of("Dienstleistung_in_LL"), 10129.5) + # self.assertEqual(erg.get_cost_of("Pflichtenheft"), 0) + # self.assertEqual(erg.get_cost_of("SPS_Programmierung"), 11250) + # self.assertEqual(erg.get_cost_of("PC_Programmierung_Visualisierung"), 3375) + # self.assertEqual(erg.get_cost_of("Montage_elektrisch"), 9543.6) + # self.assertAlmostEqual(erg.get_cost_of("Inbetriebnahmetest_Hardware_durch_Montage"), 954.36) + # self.assertEqual(erg.get_cost_of("SPS_Inbetriebsetzung"), 9750) + # self.assertEqual(erg.get_cost_of("PC_Inbetriebsetzung"), 0) + # self.assertEqual(erg.get_cost_of("Inbetriebnahmeunterstützung_durch_Montage"), 4680) + # self.assertEqual(erg.get_cost_of("Dokumentation"), 560) + # self.assertEqual(erg.get_cost_of("Bedienungsanleitung_Emmert"), 1125) + # self.assertEqual(erg.get_cost_of("Schulung_vor_Ort_beim_Kunden"), 0) + # self.assertEqual(erg.get_cost_of("Abnahme"), 0) + # self.assertEqual(erg.get_cost_of("SPS_Anlagenbetreuung"), 0) + # self.assertEqual(erg.get_cost_of("PC_Anlagenbetreuung"), 0) + # self.assertEqual(erg.get_cost_of("Anlagenbetreuung_durch_Montage"), 0) + # self.assertAlmostEqual(erg.summary_costs(rek.HW).get("GESAMT"), 105333.17) + # summary = erg.summary_costs(rek.HW) + + # df = pd.DataFrame.from_dict(data=summary, orient='index', columns=['Aufwand']) + # df.to_excel("output.xlsx", sheet_name="Kostenaufstellung") + + def test_turm(self): + 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":1, + "Turm_Anzahl_Wendlungen":2, + } + + rsm_direct_eingabe = {} rsm_fa_eingabe = { "Flex_A_Premium":False, # braucht man das noch? "Getriebe_in_der_Mitte":False, # braucht man das noch? @@ -177,6 +2110,7 @@ class TestObjectMethods(unittest.TestCase): "Weiche_Korrektur": 0, "RA_bi_ungerade_Schiene": 2, # "Doppelstreckenantrieb":0, + "Doppelstreckenantrieb_Korrektur":0, # "Meldelampe_Überstrom":0, "Meldelampe_Überstrom_Korrektur": 0, # "Hauptschalter_Ein_Meldung":0, @@ -205,124 +2139,57 @@ class TestObjectMethods(unittest.TestCase): verbindungsstrecken_w=verbindungsstrecken_w_eingabe, puffer=puffer_eingabe, turm=turm_eingabe) + Anzahl_EAS = { + "schaltschrank":1 + } + eas = rek.EA(Anzahl_EAS, mg) - # 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) + Anzahl_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, - # 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) + "korrektur_5_rsm_zusaetzlich_im_unterverteiler":-1, - # 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) + "korrektur_10_rsm_zusaetzlich_im_unterverteiler":-2, - # 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) + "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" + } + + hw = rek.HW(Anzahl_HW, mg, eas) + + emo = rek.EMO(eas, hw, mg) + Anzahl_DL = { + "Bedienerhandbuch": 16, + "SPS_Doku": 15, + } + dl = rek.Dienstleistung(Anzahl_DL, hw) + Anzahl_Ergebnis = { + "SPS_Programmierung":150, + "SPS_Inbetriebsetzung":130 + } + erg = rek.Ergebnis(Anzahl_Ergebnis, hw, dl, emo) + + self.assertEqual(mg.get_value_of_object("turm", "Anzahl_Staustrecken"), 2) + self.assertEqual(mg.get_value_of_object("turm", "Sensor_optisch_Traverse"), 5) + self.assertEqual(mg.get_value_of_object("turm", "Weiche"), 3) + self.assertEqual(mg.get_value_of_object("turm", "RA_bi"), 2) + self.assertEqual(mg.get_value_of_object("turm", "RA_bi_ohne_SPS"), 4) + self.assertEqual(mg.get_value_of_object("turm", "Bedientableau_2fach"), 2) + self.assertEqual(mg.zusammenfassung().get("Bedientableau_2fach"), 12) + self.assertEqual(hw.summe_vorort(), 21510.6) + self.assertAlmostEqual(hw.summe_in_LL(), 27466.7) - 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():