diff --git a/doc/opc/Bildschirmfoto vom 2020-10-28 10-19-00.png b/doc/opc/Bildschirmfoto vom 2020-10-28 10-19-00.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2cc032d742b63bdc4eac160b4fcb31060248959
Binary files /dev/null and b/doc/opc/Bildschirmfoto vom 2020-10-28 10-19-00.png differ
diff --git a/doc/opc/Bildschirmfoto vom 2020-10-28 10-20-32.png b/doc/opc/Bildschirmfoto vom 2020-10-28 10-20-32.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c64a298fd7e906674c381ad6ba1f2d4188772a7
Binary files /dev/null and b/doc/opc/Bildschirmfoto vom 2020-10-28 10-20-32.png differ
diff --git a/doc/opc/Smart Grid Modell OPC Server.pdf b/doc/opc/Smart Grid Modell OPC Server.pdf
index 721b3e5cd23f399984229d881a920ba7b6f2960e..18ffa9f22c0a5eca000fb6acc6558ea8e716c8e7 100644
Binary files a/doc/opc/Smart Grid Modell OPC Server.pdf and b/doc/opc/Smart Grid Modell OPC Server.pdf differ
diff --git a/doc/opc/Smart Grid Modell OPC Server.tex b/doc/opc/Smart Grid Modell OPC Server.tex
index 18f7a78dc992cb8531fc9940e022e3e122565d0d..9cad572bec261d6eb1e44c716165210396effa3e 100644
--- a/doc/opc/Smart Grid Modell OPC Server.tex	
+++ b/doc/opc/Smart Grid Modell OPC Server.tex	
@@ -48,40 +48,216 @@
     für das Smart Grid Modell 
   \end{center}
 
+  \newpage
 
+  \section{Übersicht}
 
- 
-  \newpage
+  Das Smart-Grid-Modell (SGM) veranschaulicht, ein intelligentes Energienetz mit verschiedenen Strom- Erzeugern und Verbrauchern.
+  Die Hardware des SGM wurde bereites durch mehrere Gruppen von Studierenden am CVH aufgebaut.
+  Dazu gehörten sowohl Hardware-, als auch Softwarekomponenten.
+
+  Die Gruppe der Erzeuger auf dem SGM stellt sich aus den einer konventionellen Komponente (einem herkömmlichen Kraftwerk) und zwei erneuerbaren Engergiequellen,
+  einem Windrad und einem Photovoltaikpark, zusammen. Die Gruppe der Verbraucher, ist durch eine Ansiedlung von Häusern dargestellt.
+  Alle diese Komponenten sind auf dem Modell miteinander verbunden. Bei der Verbindung handelt es sich um LED-Streifen, die sowohl grün als auch rot leuchten können.
+  Grün steht hierbei für die erneuerbare Energie und Rot für die konventionelle. 
+  Das Windrad auf dem Modell verfügt über einen Motor, worüber die Windgeschwindigkeit veranschaulicht werden kann.
+
+  Die Ansteuerung der LED-Streifen, als auch des Windrads wird von einem Arduino übernommen, welcher per PWM die Farbe und Drehgeschwindgeit einstellt.
+  Dieser Arduino war nicht Teil der folgenden Arbeit, sondern wird lediglich über seine I2C-Schnittstelle angesprochen.
+  Bis auf eine Aktualisierung des Raspberry-Pis auf das zum derzeit aktuellste Raspberry-Pi OS wurden keine Änderungen an der Hardware vorgenommen.
+  Der Raspberry Pi wurde aktualisiert, damit die neuesten C++ Standards verwendet werden konnten.
 
-  \begin{thebibliography}{}
-    \begin{bibcomment}
-      Die Online Quellen beziehen sich auf den Stand im Mai 2020.
-      
-    \end{bibcomment}
- 
-    Weitere Quellen
-    \begin{itemize}
-      \item Introduction into docker images \\
-      \url{https://jfrog.com/knowledge-base/a-beginners-guide-to-understanding-and-building-docker-images/}
-      
-    \end{itemize}
-
-    \vfill
-
-    \begingroup
+  Die bereits bestehende Software, die vorher auf dem Raspberry-Pi installiert war wurde gesichert und ist in diesem Repositorie unter dem Tag SS19 zu finden
+  \url{https://gitlab.cvh-server.de/aco/smart-grid-modell/-/tree/ss19}.
+  Dieser Tag stellt eine GUI bereit mit der verschieden Parameter des Modells angepasst werden können und ein Tageszeiten-Simulationsmodus ausgeführt werden kann.
+  Diese Software bot jedoch keine Möglichkeit, um einen OPC UA Server sinvoll zu integrieren, daher wurde die Software zur Ansteuerung des Modells in gänze neu geschrieben.
+
+  \section{Entwicklungen}
   
-      \small
+  Als Vorbereitung zu den folgenden Entwicklungen wurde der Raspberry Pi aktualisiert, da das Betriebsystem zu sehr gealtert war, sodass die Software nicht auf den akutellen Stand
+  geupdated werden konnte.
+
+  \subsection{I2C}
+  Als erstes wurde eine I2C Modul entwickelt, welches es ermöglicht auf die I2C Schnittstelle des Raspberry-Pis und dadurch auf den Arduino zuzugreifen.
+  Hierbei wurde im Gegensatz zu vorher auf die Verwendung von der Bibliothek WiringPi verzichtet, sondern es wurden direkt die von Linux bereitgestellten Schnittstellen genutzt.
+  Eine Beispielanwendung, wie die Schnittstelle zu verwenden ist ist in der Datei \textit{ComTest.cpp} bereitgestellt.
+  Die zugehörige kompilierte Anwendung ist \textit{manual\_control.exe}.
+  Mit dieser Anwendung können die Ausgängen des Arduinos gestuert werden.
+  Die Verwendung ist folgendermaßen:
+
+  \begin{lstlisting}[language=C]
+    // ./manual_control $register $value
+    // for example
+    ./manual_control 2 50
+
+    // Sets the windmill to the speed of 50 (of max 255).
+  \end{lstlisting}
+
+  Darauf aufbauen wurde ein \textit{HardwareController} geschrieben, der eine leichtere Steuerung des Modells 
+  erlaubt. Erfasst die einezelnen Bereiche des Netzes zu logischen Gruppen zusammen die dann gemeinsam gesteutert werden können.
+
+  \subsection{Smart Grid Modell}
+
+  In Anlehnung an den bereits bestehenden Tagszeiten-Simulationsmodus wurde eine neue Simulation entwicklet,
+  die ebenfalls einen Tagesablauf, mit Tageszeit abhängigem Verbrauch und Energieerzeugung, sodass zu verschiedenen Tagszeiten
+  mal ein Überschuss an erneuerbaren Energien besteht und mal die Versorgung ausschließlich durch die konventionelle Energie gedeckt ist.
+  Abhängig von der Energieverteilung innerhalb des Netz werden die LEDs geschaltet, um den Zustand zu visualiesieren.
+
+  Die Uhrzeit kann von außen, aus Softwaresicht, eingestellt werden. Genauso kann das berechnen des Zustands für die nächste Stunde angestoßen
+  werden, sodass sich das Modell von außen steuern lässt.
+
+  Darauf aufbauend wurde das SGM in einen Zustandsautomaten gekapselt, dieser verwaltet lediglich die zwei Zustände Simulation oder Manuelle-Steuerung.
+  Im Simulationsmodus, wird in einem regelmäßigen Zeitintervall der Zustand für die nächste Stunde des Modells berechnet und eingestellt.
+  Im manuellen Modus, wird die Zeit festgehalten und das Modell verweilt in diesem Zustand. 
+  Von außen kann jedoch die Uhrzeit manuell geändert werden, wodurch sich der Zustand des Modells ändert.
+
+  \subsection{OPC UA Server}
+   
+  Für die Ergänzung des SGM wurde auf die Bibliothek \textit{FreeOpcUa} \url{https://github.com/FreeOpcUa/freeopcua} zurückgegriffen.
+  Dies ist eine unter LGPL stehende Software, mit der sowohl OPC UA Server als auch Clients geschrieben werden könne.
+  Die Bibliothek wurde als Git-Submodule eingebunden.
+
+  Es werden auch Code-Beispiele z.B. \url{https://github.com/FreeOpcUa/freeopcua/blob/master/src/examples/example_server.cpp} für einen Server bereitgestellt.
+  Aufbauen auf diesem Beispiel wurde der OPC UA Server für das SGM implementiert.
+
+  Der OPC UA Server soll es ermöglichen, den Simulationszustand zu simulieren und gleichzeitig Verbraucher im Modell ein und ausschalten können.
+  Zur Steuerung stellt der OPC UA Server daher drei Steuerungs-Variablen zur Verfügung.
+
+  \begin{description}
+    \item[sim\_mode\_enabled] Über diese Variable vom Typ \lstinline{boolean} ist es möglich zwischen den Modi Simulation und manueller Steuerung zu wählen.
+    \item[time] Über diese Variable vom Typ \lstinline{int} lässt sich eine Uhrzeit zwischen 0 und 23 Uhr einstellen.
+    \item[producing] Über diese Variable vom Typ \lstinline{boolean} kann im Modell gesteuert werden, ob ein zusätzlicher Verbraucher (zum Beispiel eine Industrieanlage) eingeschaltet oder ausgeschaltet werden soll   
+  \end{description}
   
-      \setlength{\leftskip}{3cm}
   
+  Darüber hinaus gibt der OPC UA Server auch den Zustand der Simulation nach außen frei.
+  Diese veröffentlichten Variablen können jedoch nicht manipuliert werden.
   
-      Copyright \copyright\ 2020\quad Armin Co\\
-      Lizenz: \mylicense
+  \begin{description}
+    \item[excess\_power] Im Netz verfügbare (überschüssige) erneuerbare Energie.
+    \item[power\_production] Insgesamt bereitgestellte Energei, sowohl erneuerbar als auch konventionell.
+    \item[renewable\_pwer] Produzierte erneuerbare Energie.
+    \item[sun\_power] Durch den Photovoltaikpark erzeugte Energie.
+    \item[used\_power] Kommulierte Energie aller Verbraucher.
+    \item[wind\_power] Druch das Windrad erzeugte Energie.  
+  \end{description}
   
-      Sie können diesen Text einschließlich \LaTeX-Quelltext
-      herunterladen unter:\\
-      \url{https://gitlab.cvh-server.de/aco/smart-grid-modell}
+    \begin{figure}[h!]
+      \centering{
+      \includegraphics[scale=0.5]{Bildschirmfoto vom 2020-10-28 10-19-00.png}
+      }
+      \caption[]{OPC UA Server SGM Variablen}
+      \label{abb:opc_vat}
+    \end{figure}
   
-    \endgroup
+  \section{Installation}
+
+  Für die Entwicklung der Software kann jeglicher Linux-Desktop verwendet werden.
+  Für Debian basierte Linux-Distributionen ist die Installation am einfachsten.
+
+  Die zu dem Projekt gehörende Quellcode befindet sich im CVH GitLab unter: \url{https://gitlab.cvh-server.de/aco/smart-grid-modell}.
+
+  Zur Enwicklung werden die fogenden Tools benötigt:
+  \begin{itemize}
+    \item git
+    \item gcc
+    \item make
+    \item cmake
+  \end{itemize}
+
+  Für das Testen des OPC Server bietet sich darüber hinaus noch das Tool \textit{opcua-client} an.
+  Dieses kann über die Python Paketverwaltung pip mit dem Befehl \lstinline{pip install opcua-client}
+  installiert werden.
+
+  Das Projekt kann mit dem foglenden Befehl heruntergeladen werden.
+  \begin{lstlisting}
+    git clone --recurse-submodules https://gitlab.cvh-server.de/aco/smart-grid-modell
+  \end{lstlisting}
+
+  Für die Installation wurde das Skript \lstinline{install.sh} bereitgestellt.
+  Sind alle nötigen Abhängigkeiten installiert wird hiermit das gesamte Projekt bebaut.
+  Auf dem Raspberry-Pi kann das Kompilieren einige Minuten dauern.
+
+  Der Grund dafür ist, dass die FreeOpcUa Bibliothek mitgebaut werden muss.
+  Die Abhängigkeiten, die für die Bibliothek installiert werden müssen, sind in der
+  Datei \textit{debian.soft} der FreeOpcUa Biblithek aufgelistet.
+
+  Die Schritte die das Installations Skript übernimmt sind die folgenden.
+  Als erstes wird das Verzeichnis \textit{build} angelegt und in dieses gewechselt.
+  Darin wird der Befehlt \lstinline{cmake ..} ausgeführt.
+  Damit werden die GNU Makefiles generiert, mit denen das Projekt kompiliert werden kann.
+  Das Kompilieren kann dann mit dem Befehl \lstinline{make} angestoßen werden.
+  Beschleunigt werden kann der Vorgang, indem mit der Option \lstinline{-j2}
+  die Anzahl der Threads angegeben werden, mit denen parallel kompiliert wird.
+
+  Beim manuellen kompilieren ist darauf zu achten, dass die ausführbaren Datein 
+  in dem Verzeichnis \textit{build/libs/freeopcua/bin/} abgelegt werden.
+  Das Installations-Skript kopiert die \textit{smart\_grid.exe} zurück in das \textit{build} Verzeichnis.
+
+
+  \section{Ausführen}
+
+  Gestartet werden kann der OPC Server indem die ausführbare Datei gestartet wird.
+  Beim beenden des Servers, werden die Ausgänge des Modells nicht wieder zurück gesetzt.
+  Daher leuchten die LEDs weiter und auch das Windrad dreht sich weiter.
+  
+  Zum ausschalten der LEDs können zwei Skripte benutzt werden die auf das oben genannte Tool
+  \textit{manual control} zurückgreifen.
+  Damit können entweder alle Komponeten ausgeschaltet werden, oder nur das Windrad.
+  \begin{itemize}
+    \item windmill\_off.sh
+    \item all\_off.sh
+  \end{itemize}
+
+  Alternativ kann das Skript \textit{start\_server.sh} verwendet werden.
+  Mit dem Skript wird nach dem dem Beenden, durch das Drücken das Taste \textit{q} alle Ausgänge wieder
+  ausgeschaltet.
+
+  Der OPC Server ist anschließend unter der lokalen IP Adresse (vergeben über DHCP) oder wenn möglich
+  über den Hostnamen raspberrypi und dem Port 4840.
+
+  Um sich per ssh mit dem Raspberry-Pi zu verbinden werden die Zugangsdaten Benutzername: pi und Passwort: pi benötigt.
+
+  In dem OPC UA client können dann zum Beispiel die Daten betrachtet werden.
+  So wie in Abbildung \ref{abb:excess_pwr} dargestellt.
+
+  \begin{figure}[h]
+    \centering{
+      \includegraphics[scale=0.5]{Bildschirmfoto vom 2020-10-28 10-20-32.png}
+    }
+    \caption[]{Überschüssige Energie im Zeitverlauf}
+    \label{abb:excess_pwr}
+  \end{figure}
+  
+
+
+  \newpage
+
+  \section{Ressourcen}
+  \begin{itemize}
+    \item \url{https://gitlab.cvh-server.de/aco/smart-grid-modell}
+    \item \url{https://www.raspberrypi.org/}
+    \item \url{https://github.com/FreeOpcUa/freeopcua}
+    \item \url{https://cmake.org/}
+  \end{itemize}
+
+
+  \vfill
+
+  \begingroup
+
+    \small
+
+    \setlength{\leftskip}{3cm}
+
+
+    Copyright \copyright\ 2020\quad Armin Co\\
+    Lizenz: \mylicense
+
+    Sie können diesen Text einschließlich \LaTeX-Quelltext
+    herunterladen unter:\\
+    \url{https://gitlab.cvh-server.de/aco/smart-grid-modell}
+
+  \endgroup
 
-\end{document}}
\ No newline at end of file
+\end{document}
\ No newline at end of file