kit-books

books of obscure KIT shit
git clone git://source.orangerot.dev/university/kit-books.git
Log | Files | Refs | LICENSE

sheet.typ (8390B)


      1 #import "@preview/fletcher:0.5.1" as fletcher: diagram, node, edge, shapes
      2 #import "@preview/bob-draw:0.1.0": *
      3 
      4 #show link: it => [#text(blue)[#underline[#it]]]
      5 
      6 #set page(
      7   header: box(width: 1fr, stroke: (bottom: 1pt), outset: (bottom: 3pt), [
      8   #link("https://source.orangerot.dev/university/itat-etit-cheatsheet")\
      9   #smallcaps[Informations- und Automatisierungstechnik, ETIT]
     10   #h(1fr)
     11   _Gero Beckmann_ \
     12   ]),
     13   footer: [
     14   ]
     15 )
     16 // #set heading(numbering: "1.1")
     17 
     18 = Informationstechnik
     19 
     20 #grid(columns: 2 * (1fr,),
     21 [
     22 == Qualitätskriterien für Software
     23 
     24 - Correctness
     25 - Availability
     26 - Reliability
     27 - Safety
     28 - Security
     29 - Robustness
     30 ],
     31 [
     32 ==== Interne Qualitätsfaktoren von Software
     33 
     34 - Effizienz
     35 - Erweiterbarkeit
     36 - Kompatibilität
     37 - Portierbarkeit
     38 - Wartbarkeit
     39 - Wiederverwendbarkeit
     40 ]
     41 )
     42 
     43 #grid(columns: 2 * (1fr,), 
     44 [
     45 == Programmierparadigmen 
     46 
     47 #table(columns: 2, 
     48   [Imperativ], [Assembly],
     49   [Prozedural], [C],
     50   [Funktional], [Haskell], 
     51   [Logikbasiert], [Prolog], 
     52   [Objektorientiert], [Java]
     53 )
     54 ],[
     55 == Fließkommazahlen
     56 $ X = V_Z dot 1,m dot 2^(c - 127) $
     57 float32 $~ 2 dot 2^127$
     58 #table(
     59   columns: 3,
     60   [Sign[1]], [Characterstik[8]], [Mantisse[23]]
     61 )
     62 double64 $~ 2 dot 2^1023$
     63 #table(
     64   columns: 3,
     65   [Sign[1]], [Characterstik[11]], [Mantisse[52]]
     66 )
     67 ]
     68 )
     69 
     70 *Projekt:* 
     71 Einmaligkeit, Zielvorgabe, Abgrenzung zu andren Vorhaben, Begrenzungen, Organisationsform
     72 
     73 #grid(columns: 2*(1fr,), [
     74 == Programmablaufplan
     75 #diagram(node-stroke: 1pt, node((0,0), [Start], shape: shapes.pill))
     76 #diagram(node-stroke: 1pt, node((0,0), [Verarbeitung], shape: shapes.rect))
     77 #diagram(node-stroke: 1pt, node((0,0), [Ein-/Ausgabe], shape: shapes.trapezium.with(angle: -10)))
     78 #diagram(node-stroke: 1pt, node((0,0), [Verzweigung], shape: shapes.diamond))
     79 ],[
     80 
     81 === Nassi-Schnreidermann
     82 #image(height: 4cm, "assets/nassi.png")
     83 ])
     84 
     85 #v(-.3cm)
     86 #grid(columns: 2*(1fr,), column-gutter: .2cm, [
     87 == Hashfunktionen
     88 
     89 $
     90 "prob"(i) &= (m - (i - 1)) / m = (7 - (4 - 1)) / 7 = 0,57 \ 
     91           & "Beispiel für 4. Element von 7"
     92 $
     93 
     94 === Umgang mit Kollisionen beim Hashing
     95 ==== Verkettete Liste
     96 Sofortiges Kopieren / Verzögertes Kopieren
     97 
     98 - neue Tabelle tab' mit dopperter Größe m' sobald Füllstand von tab überschritten
     99 - Bei Zugriff: übertrage Elemente mit kleinstem Index min von tab zu tab' und aktualisieren min
    100 - Falls $h(k) = k mod m <= min$ greife auf tab' mit $h'(k) = k mod m'$ sonst
    101   greife auf tab mit $h(k) = k mod m$
    102 - ersetze tab' mit tab sobald tab leer ist.
    103 
    104 ],[
    105 ==== Sondieren 
    106 
    107 - lineares Sondieren $h_i(x) = (h(x) + i) mod m$
    108 - quadratisches Sondieren $h_i(x) = (h(x) + i^2) mod m$
    109 
    110 ==== Doppeltes Hashen
    111 
    112 - $h(k,i) = (h_1(k) + i dot h_2(k)) mod m$
    113 - $h_1(k) = k mod m$
    114 - $h_2(k) = 1 + (k mod m')$
    115 
    116 Universale Hashfunktion
    117 
    118 $
    119 (abs({h in H mid(|) h(x) = h(y)})) / abs(H) <= 1/m
    120 $
    121 
    122 ])
    123 
    124 == Automatisierungstechnik
    125 
    126 ==== SPS Speicherprogrammierbare Steuerung
    127 #render(```
    128         /_    "PAE (Prozessabbild der Eingänge), PAA (Prozessabbild der Ausgänge)"
    129          /  
    130 +-----+-v-----------+-----+----------+-----+-------------+-|---+
    131 | PAE | Applikation | PAA | Watchdog | PAE | Applikation | PAA |
    132 |-----+-:-----------+-----+----------|-----+-------------+-:---+
    133 +<------:----Zykluszeit------------->+                     :
    134         +<-----------------Latenzzeit--------------------->+
    135 ```)
    136 
    137 ==== AT-Pyramide
    138 
    139 #table(columns: 2, 
    140 [ERP - Enterprise Resource Planung], [Level 4: Unternehmensebene],
    141 [MES - Management Execution System], [Level 3: Betriebsebene],
    142 [SCADA - Supervisory, Control and Data Aquisiton], [Level 2: (Prozess-)Leitebene],
    143 [SPS - Industrial Controller, SPS, Embedded System], [Level 1: Steuerungsebene],
    144 [Ein-/Ausgangssignale - Sensoren, Aktoren, Kommunikationssysteme], [Level 1: Feldebene],
    145 [Fertigung / Produktionsprozess], [Level 0: Prozessebene]
    146 )
    147 
    148 *Kontinuierliche Prozesse*: Ständiger Zu- und Abfluss von Material/Energie \
    149 *Diskontinuierliche Prozesse*: Stückprozesse, Chargenprozesse (Wasser in Flaschen)
    150 
    151 === Petri-Netze / Ablaufsprache
    152 
    153 // #render(```
    154 //                 ,-.                           ,-.                                                              
    155 //             ,->(   )-.                ,->|-->(   )->|-.                                                         
    156 //   ,-.      /    `-'   V.        ,-.  /        `-'      V.                                                        
    157 //  ((_)) ->|+            |->     ((_))                    |->                                                     
    158 //   `-'      \    ,-.   ^'        `-'  \        ,-.      ^'                                                         
    159 //             '->(   )_/                '->|-->(   )->|_/                                                           
    160 //                 `-'                           `-'   '                                                          
    161 // ```)
    162 
    163 #grid(columns: 2, column-gutter: 1cm,
    164     diagram(
    165       node-stroke: 1pt,
    166       edge-stroke: 1pt,
    167       node((0,0), none, radius: 0.4cm, extrude: (0, 4), fill: black),
    168       node((1,0), height: 1cm, stroke: 3pt),
    169       node((2,0.5), none, radius: .5cm),
    170       node((2,-0.5), none, radius: .5cm),
    171       node((3,0), height: 1cm, stroke: 3pt),
    172       node((4,0), none, radius: .5cm),
    173       edge((0,0), (1,0), marks: (none, "straight")),
    174       edge((1,0), (2,0.5), marks: (none, "straight")),
    175       edge((1,0), (2,-0.5), marks: (none, "straight")),
    176       edge((2,0.5), (3,0), marks: (none, "straight")),
    177       edge((2,-0.5), (3,0), marks: (none, "straight")),
    178       edge((3,0), (4,0), marks: (none, "straight"))
    179       ),
    180     diagram(
    181       node-stroke: 1pt,
    182       edge-stroke: 1pt,
    183       node((0,0), [Init], inset: 10pt, extrude: (0, -4)),
    184       node((1,0.5), height: 1cm, stroke: 3pt),
    185       node((1,-0.5), height: 1cm, stroke: 3pt),
    186       node((2,0.5), [Schritt0]),
    187       node((2,-0.5), [Schritt1]),
    188       node((3,0.5), height: 1cm, stroke: 3pt),
    189       node((3,-0.5), height: 1cm, stroke: 3pt),
    190       node((4,0), [Schritt2]),
    191       edge((0,0), (1,0.5)),
    192       edge((0,0), (1,-0.5)),
    193       edge((1,0.5), (2,0.5)),
    194       edge((1,-0.5), (2,-0.5)),
    195       edge((2,0.5), (3,0.5)),
    196       edge((2,-0.5), (3,-0.5)),
    197       edge((3,0.5), (4, 0)),
    198       edge((3,-0.5), (4, 0)),
    199       )
    200     )
    201 
    202 === IEC 61131-3: Kontaktplan
    203 
    204 #render(```
    205 --| |-- Kontakt
    206 
    207 --|/|-- negierter Kontakt vgl. Öffner
    208    
    209 --( )-- Spule vgl. Relais
    210 ```)
    211 
    212 SPS-Programmiersprachen: FBS, KOP, ST, AS, CFC
    213 
    214 IEC 61131 Objektorientierung
    215 
    216 #pagebreak()
    217 
    218 == Automatisierungsarchitekturen
    219 
    220 #table(
    221   columns: (3cm, 4cm, auto),
    222   table.header([], [*Zentrale Automatisierung*], [*Dezentrale Automatisierung*]),
    223   [Implementierung], [
    224     wenige Componenten zB SPS für gesamte Anlage.
    225   ], [
    226     Verteilte Steuerung (SPS) für dedizierte
    227     Anlagenteile. Übergeordnete Orchestrierung notwendig order direkte
    228     Kommunikation der Modulsteuerungen untereinander. 
    229   ],
    230   [Einsatzgebiet], [
    231     Zugeschnitten. Statischer Aufbau mit Single-Use
    232   ], [
    233     Aufteilung von Aufgaben/Funktionen. Reduktion der Komplexität der
    234     Steuerungskonfiguration. Zusätzlicher Aufwand zur Kommunikation. Hohe
    235     Zuverlässigkeit. Schnelle Wartung. Lastverteilung.  
    236   ]
    237 )
    238 
    239 *Zuverlässigkeit*: Wahrscheinlichkeit dass System Funktion erfüllt \
    240 *Ausfall*: Übergang von funktionsfähig zu fehlerhaft \
    241 *Fehler*: Zustand bei nichterfüllung mindestens einer Anforderung
    242 
    243 
    244 *MooN*: M von N Komponenten müssen funktionieren, um Sicherheit zu gewährleisten. 
    245 
    246 == Hardware-Redundanz - Doppelstrukturen
    247 
    248 - Zwei Rechner müssen dass selbe Ergebnis berechnen damit fehlerfrei (2oo2)
    249 - Zwei Rechner mit Watchdog. Wenn Rechner 1 fehlerhaft, schalte zu Rechner 2,
    250   falls auch fehlerhaft: Alarm! (1oo2)
    251 - Zwei Rechner mit Watchdog und Lastverteilung. Rechner 2 berechnet normal
    252   weniger wichtige Dinge. (1oo2)
    253 
    254 == Fehleridentifikation
    255 
    256 - Sensoren zur Fehlererkennung
    257 - Unlogische Zustände
    258 - Keine Antwort von Sensor (Timeout)
    259 
    260 == IEC 62061 Zuverlässigkeit (Werte von 1 bis 5)
    261 
    262 - Schwere der Verletzung ($S in [1 hat(=) "Erste Hilfe",4 hat(=) "Tod"]$)
    263 - Häufigkeit und Dauer der Gefährdungsposition ($F in [1 hat(=) "< 1 pro Jahr",
    264   5 hat(=) >= "1 pro h"]$)
    265 - Wahrscheinlichkeit des Auftretens eines gefahrbringenden Ereignisses ($W in [1
    266   hat(=) "vernachlässigbar", 5 hat(=) "sehr hoch"]$)
    267 - Möglichkeit zur Vermeidung oder Begrenzung des Schadens ($P in [1 hat(=)
    268   "wahrscheinlich", 5 hat(=) "unmöglich"]$)
    269 
    270   #image(height: 5.5cm, "assets/sil.png")