Gibt es Limitierungen hinsichtlich der Ausführung von Modulen in Echtzeit?
Nicht alle Zugriffe, die in MATLAB® unter Nicht-Echtzeit-Bedingungen möglich sind, können in der TwinCAT-Echtzeit-Umgebung durchgeführt werden. Im Folgenden werden bekannte Limitierungen beschrieben.
- Direkter Dateizugriff: Aus der TwinCAT-Runtime ist der Zugriff auf das Dateisystem des IPC eingeschränkt. Zum Schreiben und Lesen von Dateien aus TwinCAT nutzen Sie: fopen, fclose, fread und fwrite. Siehe Beispiel:
TwinCAT.ModuleGenerator.Samples.Show('FileAccess')
. - Direkter Hardware-Zugriff: Ein direkter Zugriff auf Geräte/Schnittstellen setzt einen entsprechenden Treiber voraus, z. B. RS232, USB, Netzwerkkarte, … Aus dem Echtzeitkontext kann nicht auf die Gerätetreiber des Betriebssystems zurückgegriffen werden. Zur Anbindung von externen Geräten kann aber seitens TwinCAT auf eine Vielzahl von Kommunikationsmöglichkeiten zurückgegriffen werden, siehe TwinCAT 3 Connectivity TF6xxx.
- Zugriff auf die Betriebssystem API: Es ist nicht möglich, aus der TwinCAT-Runtime die API des Betriebssystems direkt zu nutzen. Ein Beispiel ist die Einbindung der windows.h in C/C++ Code.
- Precompiled libraries: Es ist möglich, dass bei der Code-Generierung durch den MATLAB CoderTM kein plattformunabhängiger C/C++ Code erzeugt wird, sondern vorkompilierte Bibliotheken eingebunden werden. In diesen Fällen ist keine Echtzeitausführung in TwinCAT möglich. Die Einstellung coder.HardwareImplementation hilft bei der Prüfung, ob generic C/C++ Code erzeugt werden kann. Beispielsweise
coder.HardwareImplementation.ProdHWDeviceType = 'Generic->32-bit x86 compatible';
undcoder.HardwareImplementation.TargetHWDeviceType = 'Generic->32-bit x86 compatible';