Einstellungen des TwinCAT-Modulgenerators

Erstellen einer Projekt-Export-Konfiguration

exportConfig = TwinCAT.ModuleGenerator.ProjectExportConfig('FullPath',FullPathToVSproj);

Dem Property 'FullPath' wird der vollständige Pfad und Name des zu erstellenden Visual Studio-Projekts übergeben.

Rückgabe ist ein Objekt der Klasse TwinCAT.ModuleGenerator.ProjectExportConfig.

Beispielaufruf:

FullPathToVSproj = “C:\BuildDir\MyMATLABFcn”;
exportConfig = TwinCAT.ModuleGenerator.ProjectExportConfig('FullPath',FullPathToVSproj);

Methoden der Klasse TwinCAT.ModuleGenerator.ProjectExportConfig

AddClassExportConfig

Fügt eine Export-Konfiguration zum Projekt hinzu. Zur Erstellung einer Export-Konfiguration siehe Abschnitt Einstellungen des TwinCAT-Modulgenerators. Die Export-Konfiguration wird unter Properties im Cell-Array ClassExportCfg angehängt.

Beispielaufruf siehe Quickstart.

Save

Erstellt ein mat-File und speichert darin die Projekt-Export-Konfiguration. Übergabeargument ist ein Pfad, in dem das mat-File abgelegt werden soll.

Beispielaufruf:

exportConfig.Save(pwd)

Speichert die Projekt-Export-Konfiguration im aktuellen Pfad.

Load

Lädt eine gespeicherte Projekt-Export-Konfiguration. Übergabeargument ist der Pfad, in dem das mat-File mit der gespeicherten Konfiguration liegt.

Beispielaufruf:

exportConfig.Load(pwd)

Lädt die Projekt-Export-Konfiguration aus dem aktuellen Pfad.

Edit

Öffnet eine grafische Konfigurationsoberfläche zur Konfiguration der Projekt-Export-Konfiguration.

disp

Gibt eine Übersicht im MATLAB® Command Window über die aktuelle Projekt-Export-Konfiguration. Siehe Quickstart.

Beispielaufruf:

exportConfig.disp alternativ disp(exportConfig)

Einstellungen des TwinCAT-Modulgenerators 1:

Properties der Klasse TwinCAT.ModuleGenerator.ProjectExportConfig

Project

Struktur mit Einträgen zur Konfiguration der Build-Eigenschaften, der SPS-Bibliothek und der möglichen Callbacks.

Project.FullPath

FullPath zum zu erstellenden TwinCAT C++-Projekt.

Project.VendorName

Bezeichnung des Vendors. Der Vendor Name dient zur Strukturierung der TwinCAT-Objekte. Der Vendor wird im Pfad des Repositories als Ordner angelegt und ist in der Struktur beim Einfügen der SPS-Bibliothek und des TcCOM-Objekt sichtbar.

Project.IncrementVersion

Mögliche Werte: "None", "Revision", "Build", "Minor", Major"

Default: "Revision"

Diese Einstellung beeinflusst, an welcher der vier Stellen die Version hochgezählt werden soll. Basis ist die letzte auf dem Engineering System verfügbare Version (siehe DrvFileVersion).

Project.DrvFileVersion

Default: Sucht nach der letzten Version auf dem Engineering System. Wird keine vorhandene Version gefunden, wird mit 0.0.0.0 begonnen.

Direktes Setzen einer Version: Kann direkt als String gesetzt werden, z. B. "1.52.32.0". IncrementVersion wird dann nicht ausgeführt.

Project.Publish

Wenn TRUE, dann wird das erstellte TwinCAT C++-Projekt für die konfigurierten Plattformen gebaut.

Project.PublishPlatformtoolset

Konfiguriert die zu nutzende Visual Studio Version. Diese kann konkret spezifiziert werden oder auf Auto (Default) gestellt werden.

Project.PublishTcRTx86

Wenn TRUE, dann wird für XAR auf einer Windows 32bit Plattform gebaut.

Project.PublishTcRTx64

Wenn TRUE, dann wird für XAR auf einer Windows 64bit Plattform gebaut.

Project.PublishTcOSx64

Wenn TRUE, dann wird für XAR auf einer TwinCAT/BSD®-Plattform gebaut.

Project.SignTwinCatCertName

Hier kann (nicht zwingend) ein TwinCAT OEM-Zertifikat zur Treibersignierung angegeben werden. Das Passwort ist mit dem TcSignTool in die Windows Registry des Users einzutragen. Detail siehe Einrichten der Treibersignierung.

Project.TmxArchive

Geben Sie hier als String einen Pfad und Dateinamen an, um ein TMX-Archiv zu erzeugen. Beispiel: Project.TmxArchive = "c:\archives\[Date]-[Time]-[LibName][LibVersion].exe" erzeugt ein selbstextrahierendes TMX-Archiv unter c:\archies. Die Placeholder werden im Modulgenerator vor dem Schreiben der Datei aufgelöst.

Project.GeneratePlcLibrary

Wenn TRUE, dann wird eine SPS-Bibliothek (*.library) im Repository Folder für das Projekt erstellt.

Project.InstallPlcLibrary

Wenn TRUE, dann wird die erstellte SPS-Bibliothek auf dem lokalen TwinCAT XAE installiert.

Project.PreCodeGenerationCallbackFcn

Als String kann hier eine Funktion aufgerufen werden, welche noch vor der Code-Generierung, also der Erstellung des TwinCAT C++-Projekts, aufgerufen wird.

Beispielsweise kann ein m-File MyCallback.m im Workspace mit folgendem Inhalt angelegt werden:

function MyCallback(obj)

return

Das Property PreCodeGenerationCallbackFcn wird dann auf "MyCallback" gesetzt. Der Funktion wird standardmäßig das ProjektExporter-Objekt übergeben, sodass Sie in der Callback Funktion Zugriff auf alle Daten des aktuellen Projekts haben.

Project.PostCodeGenerationCallbackFcn

Als String kann hier eine Funktion aufgerufen werden, welche nach der Code-Generierung, also der Erstellung des TwinCAT C++-Projekts, aufgerufen wird.

Beispielsweise kann ein m-File MyCallback.m im Workspace mit folgendem Inhalt angelegt werden:

function MyCallback(obj)

return

Das Property PostCodeGenerationCallbackFcn wird dann auf "MyCallback" gesetzt. Der Funktion wird standardmäßig das ProjektExporter-Objekt übergeben, sodass Sie in der Callback Funktion Zugriff auf alle Daten des aktuellen Projekts haben.

Project.PostPublishCallbackFcn

Als String kann hier eine Funktion aufgerufen werden, welche nach dem Kompilieren, also der Erstellung der TwinCAT Objekte, aufgerufen wird.

Beispielsweise kann ein m-File MyCallback.m im Workspace mit folgendem Inhalt angelegt werden:

function MyCallback(obj)

return

Das Property PostPublishCallbackFcn wird dann auf "MyCallback" gesetzt. Der Funktion wird standardmäßig das ProjektExporter-Objekt übergeben, sodass Sie in der Callback Funktion Zugriff auf alle Daten des aktuellen Projekts haben.

Project.OemId und Project.OemLicenses

Optional kann ein generiertes TcCOM oder ein Funktionsbaustein an eine OEM-Lizenz gebunden werden. Diese OEM-Lizenz wird beim Starten des Objekts (neben der Beckhoff Runtime-Lizenz TC1220 oder TC1320) in TwinCAT 3 überprüft. Ist keine gültige Lizenz vorhanden startet das Modul nicht auf und es erscheint eine entsprechende Fehlermeldung.

Wie Sie OEM Zertifikate erstellen und diese dann verwalten finden Sie beschrieben unter TwinCAT3 > TE1000 XAE > Technologien > Security Management.

Ihren OEM Lizenzcheck können Sie einfügen über Benennung Ihrer OEM ID und Ihrer abzufragenden Lizenz ID bzw. mehrerer Lizenz IDs. Ihre OEM ID finden Sie in der Security Management Konsole (Extended Info aktiviert), die Lizenz ID können Sie einsehen durch Doppelklick auf den entsprechenden Lizenzeintrag in TwinCAT unter System > License. Beide IDs sind ebenfalls im generierten License Request File enthalten, wenn ein Request File mit Ihrer OEM Lizenz generiert wird.

Beispieleintrag:

exportConfig.Project.OemId = '{ABBAABBA-AFFE-AFFE-AFFE-ABBABBAABBAA}';

exportConfig.Project.OemLicenses = '{11111111-0000-FEFE-CCCC-BBBBBBBBBBBB}';

ClassExportCfg

Cell-Array der hinzugefügten Export-Konfigurationen. Jede Export-Konfigurationen, d. h. jede umgewandelte MATLAB®-Funktion oder jedes umgewandelte Simulink®-Modell, kann individuell konfiguriert werden.

TcCom.Generate

Wenn TRUE, wird ein TcCOM-Objekt erstellt, welches in der TwinCAT XAE verwendet werden kann.

TcCom.FpExceptionsForInit

Optionen: CallerExceptions, ThrowExceptions, SuppressExceptions, LogExceptions, LogAndHold, LogAndCatch, LogAndDump, LogHoldAndDump, LogCatchAndDump

Weiteres im Bereich Exception Handling.

TcCom.FpExceptionsForUpdate

Optionen: CallerExceptions, ThrowExceptions, SuppressExceptions, LogExceptions, LogAndHold, LogAndCatch, LogAndDump, LogHoldAndDump, LogCatchAndDump

Weiteres im Bereich Exception Handling.

CallerExceptions: Es werden die Einstellungen des Aufrufenden übernommen, bsw. der Task, eines anderen TcCOM oder der SPS.

TcCom.ExecutionInfoOutput

Wenn TRUE, wird ein weiterer Output am TcCOM mit Informationen bei auftretenden Exceptions erstellt. Weiteres im Bereich Exception Handling.

TcCom.OnlineChange

Wenn TRUE, dann kann das TcCOM durch Online Change während TwinCAT XAR im Run Modus ist, ausgetauscht werden. Siehe auch Online Change für Target for Simulink®.

TcCom.TcComWrapperFb

Wenn TRUE, wird ein TcCOM-Wrapper-FB in der erzeugten SPS-Bibliothek angelegt.

TcCom.TcComWrapperFbProperties

Wenn TRUE, werden am TcCOM-Wrapper-FB Properties für Modulparameter angelegt.

TcCom.TcComWrapperFbPropertyMonitoring

Optionen: NoMonitoring, CyclicUpdate, ExecutionUpdate

Spezifiziert das Monitoring-Attribut der Properties. Im Standardfall ist „No Monitoring“ eingestellt, d. h. es wird kein Attribut gesetzt.

Einstellung in MATLAB

Attribut am Property

ExecutionUpdate

{attribute 'monitoring' := 'variable'}

CyclicUpdate

{attribute 'monitoring' := 'call'}

PlcFb.Generate

Wenn TRUE, wird ein Funktionsbaustein in der SPS-Bibliothek erstellt, welcher in der TwinCAT XAE verwendet werden kann.

PlcFb. FpExceptionsForInit

Floating Point Exceptions innerhalb des Funktionsbausteins bei der Init-Phase können eingestellt werden.

Optionen: CallerExceptions, ThrowExceptions, SuppressExceptions, LogExceptions, LogAndHold, LogAndCatch, LogAndDump, LogHoldAndDump, LogCatchAndDump

Weiteres im Bereich Exception Handling.

PlcFb. FpExceptionsForUpdate

Floating Point Exceptions innerhalb des Funktionsbausteins bei der Update-Phase können eingestellt werden.

Optionen: CallerExceptions, ThrowExceptions, SuppressExceptions, LogExceptions, LogAndHold, LogAndCatch, LogAndDump, LogHoldAndDump, LogCatchAndDump

Weiteres im Bereich Exception Handling.

Erstellen und Laden einer Export-Konfiguration

Bei Nutzung des TwinCAT Target for MATLAB® wird zunächst der MATLAB Coder™ benutzt, um C++-Sourcen zu erzeugen. Diese C++-Sourcen können dann zu einer Export-Konfiguration im TwinCAT-Modulgenerator zusammengefasst werden durch:

TwinCAT.ModuleGenerator.Matlab.FunctionExportConfig('MFile',Name,'BuildDir',cppDir)

Als Properties wird mit 'BuildDir' der Pfad zu den, vom MATLAB Coder™ erstellen, C++-Sourcen und mit 'MFile' der Name der MATLAB®-Funktion übergeben. Wird als Name bspw. BaseStatistics gewählt, so wird das TcCOM-Objekt diesen Namen tragen und der Funktionsbaustein in der SPS den Namen FB_BaseStatistics bekommen.

Wird das TwinCAT Target for Simulink® genutzt, ist die Herangehensweise etwas verändert. Starten Sie den Build-Vorgang aus Simulink® heraus mit deaktivierter Option „Run the publish step after project generation“. Laden Sie dann den erstellen <modelname>_tcgrt Ordner wie folgt, um die C++-Sourcen des Simulink®-Modells zur Projekt-Export-Konfiguration hinzuzufügen.

TwinCAT.ModuleGenerator.ProjectExportConfig.Load(<modelname>_tcgrt);

Erstellen von TwinCAT Objekten mit dem Modul-Generator

TwinCAT.ModuleGenerator.ProjectExporter()

Mit TwinCAT.ModuleGenerator.ProjectExporter() wird der Build-Vorgang für die im Property Project eingestellten Plattformen angestoßen. Als Argument wird das Objekt der Klasse TwinCAT.ModuleGenerator.ProjectExportConfig übergeben. Dadurch wird auf dem lokalen Dateisystem im Repository ein Ordner angelegt und die erstellten Treiber und Beschreibungsdateien abgelegt.

Beispielaufruf:

projExporter = TwinCAT.ModuleGenerator.ProjectExporter(exportConfig);