Quickstart

Starten mit einer einfachen MATLAB®-Funktion

Nutzen Sie gern die Möglichkeit, unsere eingebauten Samples für erste Schritte mit dem TwinCAT Target for MATLAB® zu gehen. Im MATLAB® Command Window erhalten Sie eine Liste der verfügbaren Samples über: TwinCAT.ModuleGenerator.Samples.List
1. Wählen Sie als erstes einfache Samples aus, z. B. BaseStatistics – auch direkt aufrufbar mit TwinCAT.ModuleGenerator.Samples.Start('BaseStatistics').
Quickstart 1:

Einsteigervideo

Als Einstieg kann ebenso folgendes Video (nur auf Englisch verfügbar) genutzt werden: TwinCAT Target for MATLAB®.

Einstieg in das Base Statistics Sample

Durch Öffnen des Base Statistics Sample öffnet sich ein MATLAB Live Script, welches sowohl Dokumentationsteile als auch Sections mit Code zur Ausführung beinhaltet.
1. Führen Sie die Code Sections durch Klicken auf die jeweils eingeblendeten Run-Buttons aus.
2. Arbeiten Sie sich so Schritt für Schritt durch das Sample.
Das Bespiel zeigt, wie Sie zwei MATLAB®-Funktionen mit dem Target for MATLAB® in zwei TcCOM-Objekte und zwei Funktionsbausteine überführen können, wobei die Funktionsbausteine in einer gemeinsamen SPS-Bibliothek gebündelt werden.
Quickstart 2:

Sollten Sie keine gültige TE1401 Lizenz besitzen, können Sie im Sample die Checkbox TrialLicense aktivieren. Dadurch wird nur eine MATLAB®-Funktion in ein TcCOM und einen Funktionsbaustein überführt. Das Beispiel ist dann konform mit den Demoversionsbedingungen des Produkts.

Auswahl der Komponenten und Pfade

Im Bereich General Preparation des Beispiels wird angegeben:

Wie soll der erstellte TwinCAT-Treiber (tmx-file) heißen?

Hier wird Tc3_BaseStatistics gewählt.
Dieser Name wird dann verwendet an folgenden Stellen:

Wo sollen alle Source Dateien abgelegt werden?

Als buildDir wird angegeben, wo der MATLAB Coder™ und auch das TwinCAT Target for MATLAB® alle Source Dateien, log-Files und weitere Metainformationsdateien ablegen soll. Dieser Ordner enthält alle Informationen, um von hier ausgehend die TwinCAT-Objekte zu erstellen. In diesem Fall wird ein neuer Ordner _ buildDir im aktuellen MATLAB®-path angelegt.

Welche MATLAB®-Funktionen sollen in TwinCAT verfügbar gemacht werden?

Die MATLAB®-Funktionen werden hier mit den Variablen module1 und module2 benannt; entsprechend sollen die zwei MATLAB®-Funktionen BaseStatistics und BaseStatisticsIteravtive (hinterlegt im Subordner M) in TwinCAT-Objekte überführt werden.

Jedes dieser Module bekommt einen eigenen Subordner im buildDir welcher mit cppDir1 und cppDir2 bezeichnet wird. In diese Subordner wird später der C++-Code vom MATLAB CoderTM generiert.

Quickstart 3:

Erstellen einer MATLAB Coder™ Konfiguration

Im weiteren Verlauf des MATLAB® Live Script wird eine MATLAB CoderTM-Konfiguration erstellt. Diese Sektion enthält keine TwinCAT-spezifischen Bestandteile, d. h. es wird ausschließlich der MATLAB Coder™ verwendet. Eine ausführliche Dokumentation zum MATLAB Coder™ finden Sie in der MATLAB®-Dokumentation.

Quickstart 4:

Bei der Erstellung der Coder-Konfiguration cfg ist zu beachten:

Dem codegen Befehl wird dann die Coder-Konfiguration und die entsprechende MATLAB®-Funktion, die übersetzt werden soll, übergeben. Mit dem Argument “-d“, cppDir1 wird eingestellt, dass der MATLAB Coder™ den C++-Code in den Pfad cppDir1 ablegt.

Entsprechend liegen nach diesem Schritt der generierte C++-Code der Funktion BaseStatistic.m und BaseStatisticIterarive.m in den Ordnern _BuildDir/ BaseStatistic und _BuildDir\ BaseStatisticIterative.

Erstellen einer Target for MATLAB® Projekt-Export-Konfiguration

Die folgenden Code-Segmente im MATLAB® Live Script betreffen ausschließlich das Target for MATLAB® und sind insofern unabhängig vom MATLAB Coder™, als dass nur noch mit dem durch den MATLAB Coder™ bereits erstellen C++-Code gearbeitet wird.

Optional können Sie die MATLAB®-Code-Beschreibung aus dem m-File extrahieren und diese später im TwinCAT XAE anzeigen lassen, siehe MATLAB Code im TcCOM.

TwinCAT.ModuleGenerator.Matlab.ExportMCodeRepresentation('MFile',module1,'BuildDir',cppDir1);

Das M-File mit der Funktion module1, also BaseStatistics, muss dazu im MATLAB® Workspace liegen. Die Informationen werden dann aus dem m-File BaseStatistics.m extrahiert und im Ordner cppDir1 abgelegt.

Im nächsten Schritt wird eine Projekt-Export-Konfiguration durch den TwinCAT-Modulgenerator angelegt mit

TwinCAT.ModuleGenerator.ProjectExportConfig('FullPath',FullPathToVcxproj); 

Als Argument wird der Fullpath zum neu zu erstellenden Visual Studio Projekt angegeben. In diesem Fall …\_BuildDir\Tc3_BaseStatistics.vcxproj. Die Benennung des Visual Studio Projekts definiert nach dem Build auch die Benennung der erstellten Dateien *.tmx, *.tmc, *.tml und *.library. Siehe dazu Quickstart.

Quickstart 5:

Für jede MATLAB®-Funktion muss eine Export-Konfiguration erstellt werden mit TwinCAT.ModuleGenerator.Matlab.FunctionExportConfig(). Mit AddClassExportConfig wird diese Export-Konfiguration zur Projekt-Export-Konfiguration als Modul hinzugefügt.

exportConfig.AddClassExportConfig(TwinCAT.ModuleGenerator.Matlab.FunctionExportConfig('MFile',module1,'BuildDir',cppDir1)); 

Als Argument zum FunctionExportConfig() wird einmal der Pfad zum vom MATLAB Coder™ erstellten C++-Code und der Name des m-Files mit entsprechender MATLAB®-Funktion übergeben. Beispielsweise mit module1 wird dann gesetzt, dass das zu erstellende TcCOM-Objekt und der Funktionsbaustein in der SPS-Bibliothek BaseStatistics bzw. FB_BaseStatistics heißen.

Die Projekt-Export-Konfiguration wird im Folgenden noch weiter adaptiert. So werden die Plattformen definiert, für die ein Treiber gebaut werden soll (hier für Windows 32bit, Windows 64 bit und TwinCAT/BSD® 64bit). Ebenso wird konfiguriert, dass eine SPS-Bibliothek erstellt und auch auf dem lokalen TwinCAT XAE installiert werden soll.

Für jedes Modul, welches zur Projekt-Export-Konfiguration hinzugefügt wurde, können individuell Eigenschaften gesetzt werden. Hier wird explizit gesetzt, dass für das erste hinzugefügte Modul sowohl ein SPS-Funktionsbaustein als auch ein TcCOM erzeugt werden soll.

Mit disp(exportConfiguration) können Sie sich die gesamte Konfiguration im Überblick anzeigen lassen.

Quickstart 6:

Sie erhalten dadurch einen Überblick über die gesetzten Werte (Value), über den Datentypen der verwendet wird (DataType), Wert-Vorschläge (Options) und eine Kurzbeschreibung (Displayname).

Mit TwinCAT.ModuleGenerator.ProjectExporter(exportConfig) wird der Build-Prozess der konfigurierten Plattformen angestoßen. Dadurch wird auf dem lokalen Dateisystem im Repository ein Ordner angelegt und die erstellten Treiber und Beschreibungsdateien abgelegt.

Die Pfadbeschreibung lautet:

%TwinCATInstallDir% \3.1\Repository\< VendorName >\<ProjectName>\<Version>\

Quickstart 7:

Den Ordner können Sie auf beliebig viele TwinCAT XAE Systeme kopieren, damit die Module dort verfügbar sind. Einzig die *.library müssen Sie über das PLC library repository in TwinCAT installieren. Beachten Sie dabei, dass die Ordnerstruktur beim Kopieren nicht verändert wird.

SPS-Bibliothek in TwinCAT 3 verwenden

Ausgehend von einer neuen TwinCAT Solution, erstellen Sie ein SPS Projekt:
1. Führen Sie die folgenden Menüschritte aus.
Quickstart 8:
Quickstart 9:
2. Fügen Sie danach die neu erstellte (und schon installierte) SPS Bibliothek hinzu:
Quickstart 10:
Quickstart 11:
3. Machen Sie sich einen Überblick über die Datentypen und Funktionsbausteine:
Quickstart 12:
4. Fügen Sie Instanzen der Funktionsbausteine in Ihre SPS ein und nutzen Sie diese in Ihrer Applikation:
Quickstart 13:

TcCOM-Objekte in TwinCAT 3 verwenden

1. Fügen Sie ein neues TcCOM-Objekt ein.
Quickstart 14:
2. Wählen Sie das entsprechende TcCOM-Objekt aus:
Quickstart 15:
3. Erstellen Sie eine neue zyklische Task vom Typ TwinCAT Task.
Quickstart 16:
4. Weisen Sie dem neu erstellen TcCOM-Objekt die neu erstelle Task zu. Gehen Sie dazu auf die Instanz des TcCOM-Objekts und wählen Sie den Reiter Context.
Quickstart 17:
Sie können nun die Konfiguration aktivieren. Um das TcCOM-Objekt vorher mit anderen Modulen in ihrer TwinCAT Solution zu verbinden, können Sie das Prozessabbild verwenden, um Mappings zu erstellen.

Sie können den MATLAB® Code unter dem Reiter Block Diagram einsehen und im laufenden Betrieb Werte beobachten und scopen. Siehe dazu MATLAB Code Darstellung.