\documentclass[12pt, a4paper, dutch]{article} \usepackage[margin=1in]{geometry} \usepackage{float} \usepackage{babel} \usepackage{siunitx} \usepackage{amsmath} \usepackage{scalerel} \usepackage{csquotes} \usepackage{parskip} \usepackage{unicode-math} \usepackage{fontspec} \usepackage{tabularx} \usepackage{booktabs} \usepackage{needspace} \usepackage{multicol} \usepackage{hyperref} \usepackage{nicematrix} %\usepackage[backend=biber, % bibencoding=utf8, % style=apa, % bibstyle=numeric, %]{biblatex} \setmainfont{TeX Gyre Schola} \setmathfont{TeX Gyre Schola Math} \setmonofont{JetBrainsMono Nerd Font}[Scale=0.8] %\addbibresource{bronnen.bib} \sisetup{ group-separator = {.}, output-decimal-marker = {,} } \bigskipamount=7mm \medskipamount=4mm \parindent=0mm \newcommand{\sub}{\textsubscript} \newcommand{\mul}{\cdot} \begin{document} \begin{titlepage} \centering {\Huge\bfseries Onderzoeksrapport Lift} \vspace{2cm} Loek Le Blansch\\ 2180996 \vfill Hogeschool Avans Technische informatica Project Lift \hspace{1cm} Blok 2 \vspace{2cm} \today \hfill Versie 0.1 \end{titlepage} \tableofcontents \newpage \section{Inleiding} Project Lift is een project van de opleiding Technische Informatica, op Hogeschool Avans. Het is een project voor eerstejaarsstudenten, en focust op het automation studietraject. In dit onderzoeksrapport worden vragen omtrent het programmeren van PLC's, de software waarmee PLC's geprogrammeerd worden en de hardwareopstelling van de lift beanbeantwoord. De hoofdvraag die in dit onderzoeksrapport beantwoord wordt luidt als volgt: \emph{Hoe kan ik met het ontwikkelprgramma voor de Siemens PLC het bestaande liftprogramma verder afmaken en testen?} \section{Fysieke opstelling} Met de \emph{device configuration} in TIA portal kun je makkelijk zien hoe de fysieke opstelling van de lift er ongeveer uit ziet, en worden alle in-/uitgangen automatisch gelabeld zoals hier te zien is: \begin{figure}[H] \centering \includegraphics[width=11cm]{figs/opstelling.png} \caption{PLC opstelling in TIA Portal} \end{figure} In slot 1 zit de PLC zelf, deze bevat de CPU, en heeft wat ingebouwde digitale I/O. In slot 2 zit een digitale ingangskaart, en in slot 3 een digitale uitgangskaart. Deze zorgen er voor dat de PLC meer in-/uitgangen tegelijkertijd kan aansturen. Naast digitale I/O zijn er ook analoge input/output kaarten, maar deze worden niet gebruikt voor project lift. Omdat het lastig is om getallen te onthouden voor elke in-/uitgang wordt de \emph{tag table} gebruikt om de ingangen logische namen te geven in het PLC programma. Deze zijn te vergelijken met \#define macro's die je bijvoorbeeld bij de Arduino zou gebruiken om pingetallen namen te geven. \section{Watchtable} In de watchtable kun je variabelen zetten om hun waarden live te volgen. Dit is bijvoorbeeld handig voor diagnose, zodat je kunt controleren of variabelen doen wat je denkt dat ze moeten doen in theorie. In de watchtable kunnen alle variabelen, niet alleen uit global memory, maar ook input en output memory. Ook kun je de manier waarop TIA portal deze waarden moet interpreteren aanpassen, zodat een kommagetal bijvoorbeeld netjes weergeven wordt. Ik vind de term watchtable een goede naam omdat het uiteindelijk een tabel is die je bekijkt. \section{CPU eigenschappen} \subsection{Overzicht} In het \emph{device configuration} scherm kun je de CPU properties aanpassen van de PLC. Hier kun je bijvoorbeeld in-/uitvoerkaarten configureren, of pulse generators aanzetten. \begin{figure}[H] \centering \includegraphics[width=11cm]{figs/cpuprops.png} \caption{CPU properties in TIA portal} \end{figure} \subsection{Belangrijke instellingen voor het lift programma} Voor het lift programma komen de clock memory en system byte goed van pas. De invoer en uitvoerkaarten zijn al goed geconfigureerd, en hier hoef je verder niet aan te komen. De clock byte is een byte waarvoor je zelf een locatie kunt configureren. In deze byte staan 8 bits met klokken van verschillende frequenties van \SI{10}{\hertz} tot \SI{0.5}{\hertz}. \'E\'en van deze bits wordt in het liftprogramma gebruikt om het licht voor de noodstop te laten knipperen. Ook wordt de system byte gebruikt. In mijn geval om de eerste PLC cyclus te detecteren. Dit wordt gebruikt om de noodstop te initialiseren, en om de lift naar een geldige toestand te laten gaan in het geval van stroomuitval. \section{Diagnostische mogelijkheden} \subsection{Diagnose buffer} In de diagnose buffer van de PLC staan berichten die verstuurd zijn door de CPU van de PLC. Dit kunnen info-berichten, waarschuwingen of foutmeldingen zijn. Hier is een screenshot te zien uit TIA portal van de diagnose buffer van een goed werkende PLC: \begin{figure}[H] \centering \includegraphics[width=11cm]{figs/diagbuf.png} \caption{Dialog buffer van de PLC} \end{figure} \subsection{Cyclustijd} Met de cyclustijd van de PLC kun je kijken hoe snel je programma draait. Hier kun je zien hoe lang de kortste, langste, en meest recente cyclus duurde om uit te voeren in milliseconden. Hier is een screenshot waarin zo'n diagram staat: \begin{figure}[H] \centering \includegraphics[width=11cm]{figs/cycltim.png} \caption{Cyclustijdsdiagram van de PLC} \end{figure} Hier is af te lezen dat de langste cyclustijd 93 milliseconden is, en dat de kortste en laatste cyclustijd allebei 1 milliseconde zijn. \subsection{Defecte uitgangskaart} Als een uitgangskaart niet goed geconfigureerd is, of defect is geeft deze foutmeldingen. Deze zien er zo uit: \section{*Werken met PLC's op Linux} Omdat Linux kernel drivers gebruikt voor USB apparaten, wordt een usb netwerkadapter automatisch geconfigureerd als een netwerkapparaat, niet als een usb-randapparaat. Dit is lastig wanneer je de PLC wil forwarden naar VMWare Horizon om de PLC te testen op je eigen laptop. \subsection{PLC forwarden naar VMWare Horizon} % https://unix.stackexchange.com/questions/528342/trying-to-make-my-usb-wifi-adapter-work-on-virtualbox-kali-guest-windows-host \section{Conclusie} %\raggedright %\setlength\bibitemsep{3mm} %\printbibliography[heading=bibintoc] \end{document}