TC3 Vorbereitungen

Kategorie: TwinCat 3 Tutorial

Dies ist der erste Beitrag zum TwinCAT 3.1 Tutorial, welchen ich hier veröffentliche. Diese Beiträge sollen meine Videoserie auf YouTube begleiten und weitergehende Informationen bereit stellen. In diesem ersten Beitrag geht es um die Vorbereitungen des Systems, also im Wesentlichen die Frage: was brauche ich alles? Wie installiere ich das? Was muss ich einstellen oder anpassen?

Und natürlich geht es auch darum, welche Schritte nötig sind, um die von mir bereitgestellte Anlagensimulation zu nutzen, sodass wir für das Tutorial auch etwas haben, was wir automatisieren können.

Systemvoraussetzungen

Die Systemvoraussetzungen von TwinCAT 3.1 sind überschaubar. Die Entwicklungsumgebung als solche läuft auf jedem PC, der in den letzten paar Jahren gebaut wurde. Für die Laufzeit (den Anteil von TwinCAT, der später das Steuerungsprogramm ausführt) ist das etwas schwieriger zu beantworten. Für unsere Zwecke (wir haben ja keine wirklichen Echtzeitanforderungen) sollte obige Aussage auch für die Laufzeit gelten.

Die Simulation basiert auf Unity, einer weit verbreiteten Spiele-Engine. Sie nutzt intensiv die Physiksimulation von Unity, welche recht rechenintensiv ist. Für die Simulation sollte der Computer also über eine brauchbare Grafikkarte (z.b. eine GeForce GTX680, GTX660, Radeon 6970 oder neuer/schneller) sowie einen relativ aktuellen Prozessor (Intel i3, i5 oder i7, AMD FX) verfügen. Letztlich gilt einfach: Je schneller die Simulation läuft, desto realistischer ist ihr Verhalten.


Installation

Wir müssen nun mehrere Dinge installieren, um mit dem Tutorial arbeiten zu können:

  1. TwinCAT, bestehend aus Entwicklungsumgebung und Runtime
  2. TwinCAT TCP/IP, weil wir das später im Tutorial benötigen, also installieren wir es direkt mit
  3. Die Simulation des Fertigungssystems

Aber ganz entspannt, eins nach dem anderen.

TwinCAT

Die Installation von TwinCAT 3.1 geht recht einfach von der Hand. Zunächst ladet ihr euch die aktuelle Version des TwinCAT 3.1 XAE bei Beckhoff herunter. Diesen Download findet ihr logischerweise in der Download-Sektion der Seite:

TwinCAT 3 Download

Dazu müsst ihr euch bei Beckhoff anmelden, einfach mittels E-Mail-Adresse. Dann kurz warten und einen Kaffee holen, bis der Download abgeschlossen ist.

Das Ganze kommt als *.zip-Archiv, welches ihr dann einfach entpackt um anschließend die darin enthaltene Setup-Datei auszuführen und den Anweisungen zu folgen. Wichtig zu wissen ist, dass die TwinCAT-Entwicklungsumgebung auf dem VisualStudio von Microsoft basiert. Solltet ihr eine Version von VisualStudio auf eurem System installiert haben, so könnt ihr TwinCAT bei der Installation anweisen, sich in eben diese Version zu integrieren.

Solltet ihr nicht über ein installiertes VisualStudio verfügen, so könnt ihr während der Installation die VisualStudio Shell mit installieren. Ihr müsst also keine zusätzliche Software kaufen, um mit TwinCAT arbeiten zu können.


TwinCAT TCP/IP

Das TwinCAT TCP/IP Paket enthält einen TCP/IP-Server, den wir in unserer Steuerungssoftware nutzen können. Warum brauchen wir das? Weil unser virtuelles Fertigungssystem über RFID-Lesegeräte verfügt, die über TCP/IP kommunizieren. Den Server braucht also die Simulation, um euch einen solchen RFID-Reader vorgaukeln zu können. Und ihr braucht später die TCP/IP-Bibliotheken, um mit dem Ding Daten austauschen zu können.

Auch hier, alles ganz einfach. Die Installationsdatei findet ihr auch in der Download-Sektion, und zwar unter den TwinCAT-Functions. Sieht man auch auf dem folgenden Screenshot:

TwinCAT TCP/IP Download

Runterladen, Setup-Datei ausführen, fertig. Wie gesagt, alles ganz einfach.


Simulation des Fertigungssystems

Die Simulation des Fertigungssystems basiert im Wesentlichen auf drei Teilen:

  1. Einem TwinCAT-Simulationsprojekt
  2. Einer 3D-Simulation
  3. Ein Bedienfeld-Simulator

Zunächst befassen wir uns damit, wie das Ganze auf euer System kommt. Im Folgenden werde ich dann beschreiben, was die einzelnen Teile tun und wie ihr diese verwendet. Die gesamte Simulation könnt ihr hier als *.zip-Datei herunterladen:

Im Anschluss entpackt ihr die Datei einfach und das war dann eigentlich auch schon alles. Nach dem Entpacken findet ihr, wo auch immer ihr die Datei hin entpackt habt, folgende Unterverzeichnisse:

3D-Simulation: Enthält die Simulation des Fertigungssystems, welche euch als "Spielplatz" dienen wird

Panel Simulator: Enthält den Bedienfeld-Simulator, welcher die Taster und Statusleuchten der "virtuellen Schaltschränke" darstellt

Template Project: Dort findet ihr ein TwinCAT 3.1 Projekt, mit dem ihr sofort loslegen könnt.

Ablegen könnt ihr diese Verzeichnisse wo immer ihr wollt, sie hängen nicht voneinander ab und benötigen auch keinen speziellen Pfad, um zu funktionieren.

Es bietet sich aber an, die 3D-Simulation möglichst weit "oben" in eurem Dateisystem abzulegen, also z.B. direkt auf C:\, denn später wird diese automatisch gestartet, wozu allerdings der Pfad zur Programmdatei maximal 255 Zeichen umfassen darf. Ja, das gilt leider auch 2016 stellenweise noch.


Weitergehende Systemeinstellungen

Da es sich bei TwinCAT um ein Echtzeitsystem handelt, welches sich unterhalb eures Windows-Betriebssystems einrichtet, sind noch einige weitere Dinge vonnöten, damit alles so laufen kann, wie es soll. Sofern ihr nämlich keine einzelnen CPU-Kerne ausschließlich für TwinCAT reservieren wollt, nutzt TwinCAT die Hardware-Virtualisierung moderner Prozessoren, um die Kerne für Echtzeitanwendungen zu verwenden.

Zum einen solltet ihr daher in eurem BIOS die Virtualisierungstechnologie (bei Intel heißt sie VT-x oder VT-d) aktivieren. Darüber hinaus solltet ihr euren Virenscanner checken. Zumindest bei AVAST sind einige Einstellungen von nöten, die andernfalls einen Start der TwinCAT-Runtime verhindern. Dazu geht ihr in AVAST in die Einstellungen. Unterhalb des Menüpunktes "Fehlerbehandlung" deaktiviert ihr folgende Einträge:

  1. Hardware-unterstützte Virtualisierung aktivieren
  2. Rootkit-Prüfung beim Systemstart aktivieren

Ich habe weiterhin noch folgende Punkte deaktiviert, diese sollten aber keine Probleme verursachen:

  1. Avast Selbstschutz-Funktion aktivieren
  2. Direkten Datenträgerzugriff ermöglichen

Arbeitet euer System mit Windows 8, 8.1 oder 10 muss zudem eine von Beckhoff mitgelieferte Batch-Datei genutzt werden, um die Systemtimer-Aktivierung durch TwinCAT zu ermöglichen. Die Datei findet ihr unter

C:\TwinCAT\3.1\System\win8settick.bat

Einfach mit Administrator-Rechten ausführen und danach ein mal den PC neu starten. Fertig.


Aufbau der Simulation

Die Simulation besteht aus drei Komponenten. Diese Komponenten sind über verschiedene Schnittstellen miteinander verbunden und tauschen Daten aus, um die Simulation durchzuführen und dem Benutzer eine Interaktion zu ermöglichen. Die folgende Grafik zeigt schematisch die Architektur der Simulation.

Simulations-Architektur

Echtzeit-Simulationsmodell

Die erste Komponente ist die Echtzeit-Simulationssoftware, welche in der TwinCAT-Runtime ausgeführt wird und im Wesentlichen alle zu simulierenden Komponenten modelliert. Dazu gehören zum Beispiel Pneumatikzylinder, elektrische Antriebe oder RFID-Lesegeräte.

Die Simulation dieser Komponenten erfolgt durch die Realisierung innerhalb der TwinCAT-Laufzeit deterministisch. In diesem Teil der Simulation wird auch die Verbindung zum Steuerungsprogramm (welches ihr schreibt) vorgenommen. Diese Verbindung wird über die Verknüpfung der Prozessabbilder von Simulation und Steuerungsprogramm vorgenommen. Dazu kommen wir aber später. Es sei nur gesagt, dass dies im Prinzip genau so funktioniert, wie bei einer realen Anlage.

3D-Simulation

Die zweite Komponente ist die 3D-Simulation. Eigentlich dient sie in erster Linie der Visualisierung der simulierten Anlage, sodass man ein Bild davon hat, was die Anlage tut. Allerdings übernimmt sie durch den Einsatz einer Physik-Engine auch Teile der Simulation; Nämlich die Simulation des Materialflusses und die Simulation von physikalisch (taktil, magnetisch, optisch, etc.) erzeugten Sensorsignalen. So wird die Bedämpfung eines Näherungsschalters im Echtzeit-Simulationsmodell dadurch ausgelöst, dass sich in der 3D-Welt ein Objekt in den Erfassungsbereich des Sensors bewegt.

Das hat zwei Vorteile. Zum einen ist die Simulation auch bei Fehlern der Anlagensteuerung sehr realistisch und kann z.B. Kollisionen von Komponenten abbilden. Zum anderen reduziert sich der Entwicklungsaufwand für die Materialflusssimulation, wodurch eine Erweiterung des Modells einfach möglich ist. Mit anderen Worten: Ich kann euch schnell neue Inhalte liefern.

Bedienfeld-Simulator

Die dritte Komponente ist ein kleines Programm, das die typischen, elektromechanischen Bedienfelder von Industrieanlagen simuliert und euch eine optisch ansprechende Benutzeroberfläche bietet, auf welcher Taster und Leuchtmelder dargestellt werden. So müsst ihr diese Dinge nicht selbst in eurer Steuerungssoftware nachbilden und habt eine realistische Verknüpfung mit den Eingangs- und Ausgangssignalen der Bedienfelder, wie ihr sie auch bei einer echten Anlage hättet.


Simulation einrichten

Nach dem Entpacken der Simulationsdateien sollten diese zunächst an ihren endgültigen Bestimmungsort auf eurer Festplatte verbracht werden. Mit der Ablage der Daten ist die Simulation auch fast einsatzbereit. Ihr müsst lediglich noch den Pfad zur 3D-Simulation eintragen.

Wie in der Architekturgrafik der Simulation zu sehen war, laufen Simulation und euer Steuerungscode in der gleichen TwinCAT-Laufzeitumgebung. Allerdings in verschiedenen Tasks. All dies ist im beigefügten Template-Projekt bereits für euch eingerichtet, es bietet sich also an, dieses Projekt als Basis für eure Programmierung zu nutzen.

Sobald ihr das Projekt öffnet, seht ihr, dass es zwei Unterprojekte enthält, wie die folgende Grafik zeigt:

Struktur Templateprojekt

Das eine ist die Simulation, welche aus exakt einer Zeile besteht, in welcher der eigentliche Simulationscode aufgerufen wird. Dieser befindet sich in einer vorkompilierten Bibliothek innerhalb des Projekts. 

Das andere ist ein fast leeres PLC-Projekt, in dem ihr euch programmiertechnisch austoben könnt. Es enthält das übliche MAIN-Programm. Dieses wiederum enthält bereits eine Variable. Diese speichert eine Zeichenkette und genau dort muss der Pfad zur 3D-Simulation eingetragen werden:

Pfadauswahl

Diesen solltet ihr eintragen und dann das gesamte Projekt über Build → Rebuild Solution neu kompilieren.


Simulation verwenden

Um nun euren Code und die Simulation zu starten, müsst ihr zunächst über TwinCAT → Activate Configuration die TwinCAT-Konfiguration aktivieren. Im Anschluss wird eine Message-Box euch fragen, ob das System in den Run-Zustand geschaltet werden soll. Bestätigt dies mit OK.

System starten

Nun arbeitet das Echtzeitsystem. Danach müsst ihr noch die beiden PLC-Projekte laden und starten. Wählt dazu, wie im folgenden Bild gezeigt, eines der Projekte aus (1) und klickt dann auf Login (2).

Auswahl PLC-Projekt

Eventuell werdet ihr gefragt, ob die zugehörige Applikation erzeugt werden soll, falls diese noch nicht existiert. Dies bestätigt ihr. Sobald der Code dann geladen wurde startet ihr die Ausführung mit Run (3).

Run-Kommando

Dies wiederholt ihr auch für das jeweils andere Projekt. Sobald diese Schritte für das Simulationsprojekt durchgeführt wurden, startet automatisch die 3D-Simulation. Nun könnt ihr noch den Bedienfeldsimulator aus dem entsprechenden Unterverzeichnis der Simulation ausführen und ihr könnt beginnen, euren PLC-Code mit Hilfe der Simulation zu testen.