C++ gehört zu den weitverbreitetsten Programmiersprachen, insbesondere wenn es um hardwarenahe Programmierung geht. Die kontinuierliche Weiterentwicklung von C++, die sich über die letzten Jahrzehnte in der Weiterentwicklung der Compiler und des Toolings niedergeschlagen hat, wird von einer aktiven Entwicklergemeinde vorangetrieben. Grund genug für Beckhoff in TwinCAT C++ als Echtzeitprogrammiersprache anzubieten.
TwinCAT 3 C++ realisiert auf einem Industrie-PC eine Echtzeitausführung von C++-Code, wofür Beckhoff ein eigenes TwinCAT Software Development Kit (SDK) und eine Common Runtime (CRT) bereitstellt. Dabei setzt Beckhoff auf den weitverbreiteten Compiler von Microsoft, sodass hocheffizienter Code zur Ausführung kommt. Mittels dieser Komponenten und weitgehender Codegenerierung im Engineering wird ein Modul geschrieben, das später zyklisch durch Tasks – genau wie die PLC-Programme – ausgeführt werden kann. Vielfältige Debugging-Schnittstellen von Visual Studio® wurden durch Beckhoff ertüchtigt und um echtzeittypische Darstellungen ergänzt, sodass sich die Entwicklung vereinfacht. Ein wichtiger Aspekt ist dabei die nahtlose Interaktion zwischen unterschiedlichen Echtzeit-Modulen, da hierdurch die PLC und C++ auf unterschiedliche Art und Weise Informationen austauschen können – und natürlich ist auch dieser Austausch echtzeitfähig.
Ein wichtiger Unterschied zwischen der typischen PLC-Programmierung und anderen Programmiersprachen ist die Möglichkeit, Code ohne Neustart der Maschinensteuerung auszutauschen – der sogenannte Online Change. Beckhoff bietet diese Funktionalität auch für TwinCAT-C++-Module an. Der Fortschritt in der Programmiersprache wird kontinuierlich von Beckhoff auch für TwinCAT C++ adaptiert, sodass diese auch dem Kunden in der Echtzeit zur Verfügung stehen.
Wofür PLC und wofür C++?
Die Programmiersprachen weisen je nach Einsatzzweck unterschiedliche Vorteile auf und somit ergeben sich auch verschiedene Szenarien für den Einsatz von TwinCAT C++. In einigen Branchen ist C++ als Programmiersprache etabliert. Zudem kommt häufig gemischter Code auf PLC- und C++-Basis in einer Maschine zum Einsatz. Typischerweise wird dann die Algorithmik in C++ entwickelt, wohingegen die eigentliche Ablaufsteuerung der Maschine traditionell in einer PLC-Sprache verfasst ist.
Auf TwinCAT C++ basieren auch viele TwinCAT-Komponenten und weitergehende Produkte, wie z. B. TwinCAT 3 Target for Simulink® (S. ??), welches einen als TwinCAT-C++-Modul verwendbaren C++-Code generiert. Beckhoff stellt hier in gewohnt offener Art und Weise eine mächtige Schnittstelle für die TwinCAT-Anwender bereit. Diese geht an manchen Stellen auch über die PLC-Programmierung hinaus, u. a. wenn es um die echtzeitfähige Anbindung von Dritthardware geht, die mit klassischen PLC-Mitteln nicht möglich ist.
Anwendungen neben der Echtzeit
Auf den Industrie-PCs von Beckhoff können neben der TwinCAT-C++-Schnittstelle für die echtzeitfähige Maschinensteuerung ebenso andere Programme und damit auch in C++ geschriebene Codes vom Betriebssystem ausgeführt werden. Zur Interaktion mit der Echtzeitumgebung steht mit dem offenen Standard ADS eine lizenzkostenfreie Schnittstelle als Bibliothek bereit, wobei ADS gleichzeitig von der Programmiersprache in der Echtzeit abstrahiert: Über ADS sind die Zugriffe damit völlig unabhängig von der Realisierung innerhalb der Echtzeitumgebung.