C++-Beispiele
Beispielcode und -konfigurationen für dieses Produkt können über das entsprechende Repository auf GitHub bezogen werden: https://github.com/Beckhoff/TC1300_Samples. Sie haben dort die Möglichkeit, das Repository zu clonen oder ein ZIP-File mit den Samples herunterzuladen.

Dieses Bild zeigt einen Überblick in grafischer Form und legt dabei den Schwerpunkt auf die Interaktionsmöglichkeiten eines C++-Moduls.

Darüber hinaus ist hier eine Tabelle mit kurzen Beschreibungen der Beispiele:
Nummer | Titel | Beschreibung |
|---|---|---|
01 | Dieser Artikel beschreibt die Implementierung eines TwinCAT 3 C++-Moduls, das ein mit physikalischem IO gemapptes IO-Modul verwendet. Dieses Beispiel beschreibt den Schnellstart zwecks Erstellung eines C++-Moduls, das einen Zähler bei jedem Zyklus inkrementiert und den Zähler dem logischen Ausgang „Value“ im Datenbereich zuweist. | |
02 | Beschreibt die Flexibilität von C++-Code bei der Arbeit mit IOs, welche an der Task konfiguriert sind. Dank dieser Herangehensweise kann ein abschließend kompiliertes C++-Modul weit flexibler auf verschiedene, mit der IO Task verbundene IOs einwirken. Eine Anwendung könnte darin bestehen, zyklische analoge Eingangskanäle zu überprüfen, wobei die Anzahl Eingangskanäle von einem Projekt zum anderen unterschiedlich sein kann. | |
03 | Beschreibt den Entwurf und die Implementierung einer eigenen ADS-Schnittstelle in einem C++-Modul.
in C# implementierte ADS Client UI, die benutzerspezifische ADS-Meldungen an den ADS-Server sendet. | |
05 | Zeigt, wie über ADS auf CoE Register von EtherCAT-Geräten zugegriffen werden kann. | |
06 | Zeigt, wie über die ADS-Schnittstelle auf Symbole in einem ADS Server zugegriffen werden kann. C# ADS Client tritt in Verbindung mit einem in SPS/ C++ / Matlab® implementierten Modul. Hochladen der verfügbaren Symbolinformation und Lese-/Schreiben-Abonnieren für Prozesswerte. | |
07 | Beschreibt die Implementierung eines TwinCAT 3 C++-Moduls, das ADS Notifications bezüglich Datenänderungen auf anderen Modulen empfängt. | |
08 | Beschreibt die Implementierung von Methoden, welche per ADS über die Task aufrufbar sind. | |
10 | Beschreibt die Interaktion zwischen zwei C++-Modulen mit einem direkten Zeiger (DataPointer). Die beiden Module müssen auf demselben CPU-Kern im selben Echtzeitkontext ausgeführt werden. | |
11 | Beispiel11: Modulkommunikation: Methodenaufruf SPS-Modul nach C++-Modul | Dieses Beispiel beinhaltet zwei Teile:
Zweites SPS-Modul um mit erstem Modul zu interagieren, indem Methoden vom C++-Modul aufgerufen werden. |
11a | Beispiel11a: Modulkommunikation: Methodenaufruf C++-Modul nach C++-Modul | Dieses Beispiel beinhaltet zwei Klassen in einem Treiber (kann auch zwischen zwei Treibern gemacht werden).
Zweites Modul, das als Aufrufer agiert, um die Methode im anderen Modul zu verwenden. |
12 | Beschreibt, wie zwei Module über das Mapping von Symbolen des Datenbereichs verschiedener Module untereinander interagieren können. Die beiden Module können auf demselben oder auf verschiedenen CPU-Kernen ausgeführt werden. | |
13 | Beispiel13: Modulkommunikation: Methodenaufruf C++-Modul nach SPS-Modul | Beschreibt, wie ein TwinCAT 3 C++-Modul per TcCOM Interface Methoden eines Funktionsbausteins der SPS aufruft. |
19 | Beschreibt, wie die File-IO-Funktionalität bei einem C++-Modul auf synchrone Art und Weise verwendet werden kann. | |
20 | Beschreibt, wie die File-IO-Funktionalität bei C++-Modul verwendet werden kann. | |
20a | Ist ein umfangreicheres Beispiel als S20 und S19. Es beschreibt zyklischen Lese- und/oder Schreibzugriff auf Dateien von einem C++-Modul aus. | |
22 | Beschreibt, wie der TwinCAT Automation Device Driver (ADD) für den Zugriff auf die DPRAM zu schreiben ist. | |
23 | Beschreibt die Verwendung von Structed Exception Handling (SEH) anhand von fünf Varianten. | |
24 | Beschreibt die Verwendung von Semaphoren. | |
25 | Beschreibt, wie die in einem anderen C++-Modul enthaltene C++ statische Bibliothek verwendet werden kann. | |
26 | Beschreibt die Bestimmung der Taskausführungsreihenfolge, wenn einer Task mehr als ein Modul zugeordnet ist. | |
30 | Beschreibt die Messung der C++-Zyklus- oder Ausführungszeit. | |
31 | Beschreibt die Implementierung eines Verhaltens in C++ das vergleichbar mit einem TON Funktionsbaustein von SPS / 61131 ist. | |
37 | Beschreibt das Laden und Speichern des Zustands eines Objekts während der Initialisierung und Deinitialisierung. | |
TcCOM | Mehrere Beispiele die die Modulkommunikation zwischen SPS und C++ verdeutlichen. |
- Beispiel01: Zyklisches Modul mit IO
- Beispiel02: Zyklische C++ Logik, die IO von der IO Task verwendet
- Beispiel03: C++ als ADS Server
- Beispiel05: C++ CoE Zugriff über ADS
- Beispiel06: UI-C#-ADS Client lädt die Symbolik vom Modul hoch
- Beispiel07: Empfang von ADS Notifications
- Beispiel08: Anbieten von ADS-RPC
- Beispiel10: Modulkommunikation: Verwendung von Datenzeigern
- Beispiel11: Modulkommunikation: Methodenaufruf SPS-Modul nach C++-Modul
- Beispiel11a: Modulkommunikation: Methodenaufruf C++-Modul nach C++-Modul
- Beispiel12: Modulkommunikation: Verwendet IO Mapping
- Beispiel13: Modulkommunikation: Methodenaufruf C++-Modul nach SPS-Modul
- Beispiel19: Synchroner Dateizugriff
- Beispiel20: FileIO-Write
- Beispiel20a: FileIO-Cyclic Read / Write
- Beispiel22: Automation Device Driver (ADD): Zugang DPRAM
- Beispiel23: Strukturierte Ausnahmebehandlung (SEH)
- Beispiel24: Semaphoren
- Beispiel25: Statische Bibliothek
- Beispiel26: Ausführungsreihenfolge in einer Task
- Beispiel30: Zeitmessung
- Beispiel31: Funktionsbaustein TON in TwinCAT3 C++
- Beispiel35: Ethernet Zugriff
- Beispiel37: Daten archivieren
- TcCOM Beispiele