Philosophie

Um der Komplexität moderner Maschinen gerecht zu werden und gleichzeitig den notwendigen Engineering Aufwand zu reduzieren, geht der Trend immer mehr zu modularisierter Steuerungssoftware. Individuelle Funktionen, Baugruppen oder Maschinenteile werden als Module angesehen. Diese Module sollten unabhängig und hierarchisch strukturiert sein. Wobei der strukturelle Aufbau so sein sollte, dass die untersten Module einfachste, immer wiederverwendbare Basiselemente darstellen. Über einheitliche Schnittstellen können die Software Module von übergeordneten Modulen zu immer komplexeren Maschinenteilen, bis hin zur kompletten Maschine zusammengeführt werden. Idealerweise können die einzelnen Module unabhängig in Betrieb genommen, erweitert, skaliert und wieder verwendet werden.

Die innovative Softwarearchitektur von TwinCAT 3 ermöglicht genau diese Art der Programmierung. Aufgrund der sich dadurch ergebenen Möglichkeiten für die Softwareapplikation wird TwinCAT 3 auch als eXtended Automation (XA) bezeichnet. eXtended Automation ist die Vereinigung von neusten IT-Technologien und wissenschaftlichen Software-Tools mit der Automatisierungstechnik. Für TwinCAT 3 ist diese modulare Philosophie nicht nur im Bereich Engineering, sondern bis in die Runtime durchgängig umgesetzt worden.

TwinCAT 3 gliedert sich in die Bereiche eXtended Automation Engineering (XAE) und in eXtended Automation Runtime (XAR).

eXtended Automation Engineering XAE:

Ein Hauptaspekt von TwinCAT 3 ist die Vereinfachung des Software-Engineerings. Daher liegt es nahe, statt eigene Standalone-Tools zu entwickeln, sich in weit verbreitete und vorhandene Software-Entwicklungsumgebungen zu integrieren. Für TwinCAT 3 ist diese Entwicklungsumgebung das Microsoft Visual Studio®.

Durch die Integration von TwinCAT 3, als Extension, in das Visual Studio®, steht dem Automatisierer eine erweiterbare und zukunftssichere Plattform zur Verfügung. Neue Begrifflichkeiten wie Solution oder Solution Explorer halten Einzug in die Automatisierungswelt. Doch schon durch das Einfügen eines TwinCAT Projektes in die Solution erkennt man sehr schnell den bekannten TwinCAT System Manager Baum, wodurch auch TwinCAT 2 Nutzern der Umstieg sehr leicht fällt. Ein Hauptvorteil ist die Integration des TwinCAT PLC Controls in den TwinCAT System Manager. Dadurch braucht der Entwickler nur noch ein einziges Entwicklungstool für seine Applikation. Dies erspart das Wechseln zwischen verschiedenen Entwicklungsumgebungen, was zum einen das Engineering effizienter gestaltet und zum anderen den Schulungsbedarf deutlich reduziert.

Es gibt verschiedene Varianten wie die Integration in das Microsoft Visual Studio® erfolgen kann:

  1. Sollte der klassische SPS-Programmierer bisher kein Microsoft Visual Studio® installiert haben, so installiert das TwinCAT 3 Setup automatisch die erforderliche Visual Studio® Shell. Die TwinCAT 3 Extensions stehen nach der Installation automatisch in der Shell zur Verfügung. Vom Funktionsumfang werden die bisherigen TwinCAT 2 Funktionalitäten abgedeckt und erweitert. So stehen für die SPS Programmiersprachen der dritten Edition der IEC 61131-3 die Objektorientierte Erweiterungen zur Verfügung. Damit ist unter anderem das Vererben von SPS Funktionsbausteine möglich. Neben SPS Modulen, können auch Module für die NC, CNC oder für Safety-Applikationen erstellt werden.
  2. Ist auf dem Engineering PC bereits eine Version des Microsoft Visual Studios® vorhanden, was aber keine Vollversion ist, werden die TwinCAT 3 Extensions installiert und integrieren sich in die vorhandene Microsoft Umgebung. Der Funktionsumfang ist dann der gleiche wie der, welcher unter 1. beschrieben ist.
  3. Ist auf dem Engineering PC bereits eine Vollversion des Microsoft Visual Studios® installiert, so integrieren sich die TwinCAT 3 Extensions in das bestehende Visual Studio®. Neben den erwähnten klassischen SPS-Funktionalitäten stehen dann auch Möglichkeiten zur Verfügung, mit denen Applikationen in C, C++ oder MATLAB®/Simulink® Modulen programmiert werden können. Diese können wie SPS Module im Echtzeitkontext ausgeführt werden. Ermöglicht wird dies durch die Implementierung des Microsoft C Compilers in die TwinCAT Welt.
  4. Läuft auf dem Engineering PC bereits ein TwinCAT 3 ohne eine Vollversion des Microsoft Visual Studios®, stehen die klassischen SPS-Funktionalitäten zur Verfügung. Wird dann nachträglich eine Vollversion des Microsoft Visual Studios installiert, ist der volle Funktionsumfang mit C, C++ und auch der MATLAB®/Simulink® Integration verfügbar.
Philosophie 1:

Details zu den jeweiligen Systemvoraussetzungen, der Installation und den Lizenzen finden Sie in der TwinCAT 3 Produktbeschreibung.

eXtended Automation Runtime XAR:

Die TwinCAT 3 Runtime bietet die Echtzeitumgebung, in der erstellte TwinCAT Module geladen, ausgeführt und verwaltet werden. Dabei müssen die einzelnen Module nicht durch denselben Compiler erzeugt werden und können deshalb voneinander unabhängig und von verschiedenen Herstellern oder Entwicklern programmiert worden sein. Des Weiteren ist es nebensächlich, ob es sich bei diesen Modulen um SPS, NC, CNC oder aus C-Code generierte Module handelt.

Die erzeugten Module werden von so genannten Tasks zyklisch aufgerufen. Mehrere Tasks können hierbei auf einem Steuerungs-PC laufen. Durch die Tatsache, dass sich verschiedene Module (SPS, C/C++, MATLAB®) in der TwinCAT 3 Runtime auch gegenseitig aufrufen können, ergeben sich ganz neue Möglichkeiten für die Softwarearchitektur der Applikation. So ist es möglich, dass man mehrere Module, welchen einzelne Funktionalitäten zugeordnet sind, zu einer gesamten Maschinen-Applikation zusammenführt. Die Anzahl der Module, welche von einer Task aufgerufen werden, ist unbegrenzt. Dauert die Code-Abarbeitung jedoch zu lange, wird der Nutzer entsprechende Zyklusüberschreitungen erhalten. Die Anzahl der Tasks bei TwinCAT 3 ist theoretisch auf 65000 limitiert. Letztendlich kommt es aber auf die System-Ressourcen des Runtime-Gerätes an.

Ein weiteres Highlight von TwinCAT 3 ist die Multicore-Unterstützung. So können einzelne TwinCAT Tasks auf verschiedene Kerne einer CPU verteilt werden, um so noch besser die Performance von neusten Mehrkern Industrie- und Embedded-PCs zu nutzen.

Philosophie 2:
Philosophie 3: