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)

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);