Dateimanagement der ML-Beschreibungsdateien
Dateimanagement auf dem Engineering PC (XAE)
Konvertierung, Bearbeitung der ONNX, XML und BML
Der Machine Learning Model Manager dient als zentrales Werkzeug zur Bearbeitung und Konvertierung von Machine Learning Modellen. Wird eine Datei geladen und bearbeitet, so wird die resultierende Datei im Standardfall in den folgenden Ordnern abgelegt – je nach durchgeführter Aktion:
- \Functions\TF38xx-Machine-Learning\ConvertToolFiles
- \Functions\TF38xx-Machine-Learning\ExtractToolFiles
- \Functions\TF38xx-Machine-Learning\MergeToolFiles
Der Default-Ordner kann jeweils im Model Manager angepasst werden.
Wird statt des GUI-basierten Machine Learning Model Managers die Machine Learning Toolbox genutzt, wird die neu erzeugte Datei im aktiven Pfad abgelegt, solange kein anderer Pfad konkret benannt wurde.
Einbinden eines Modells in eine TwinCAT Solution
Wird eine BML- oder XML-Beschreibungsdatei in einer TwinCAT Solution genutzt, muss bezüglich des Dateimanagements unterschieden werden zwischen TcCOM API und der PLC API.
TcCOM API
Nach Einbindung einer Beschreibungsdatei im TcCOM TcMachineLearningModelCycal wird die entsprechende Beschreibungsdatei in das Visual Studio Projektverzeichnis kopiert und ist somit Bestandteil des Projekts: <VS Projekt>\_MLInstall.
Bei Aktivieren der Konfiguration wird die Datei aus dem Visual Studio Projektverzeichnis in den Boot-Ordner auf dem Zielsystem kopiert: \TwinCAT\3.1\Boot\ML_Boot.
PLC API
Bei Nutzung der PLC API wird im SPS-Code der Dateiname und Pfad der Machine Learning Modelldatei als T_MaxString
angegeben – entsprechend ist vom Anwender zu gewährleisten, dass vom Zielsystem ausgehend eine entsprechende Datei existiert. Das heißt, die Beschreibungsdatei wird weder Bestandteil des Visual Studio Projektverzeichnis noch wird sie automatisch auf das Zielsystem übertragen.
Übertragung der ML-Beschreibungsdateien auf das Zielsystem bei Aktivierung der Konfiguration
TcCOM API
Bei Nutzung des TcCOM Object TcMachineLeraningModelCycal wird die ML-Beschreibungsdatei vom XAE-System automatisch auf das XAR-System übertragen.
Die Datei wird aus dem Visual Studio Projektordner <VS Projekt>\_MLInstall in den Boot-Ordner auf dem XAR übertragen TwinCAT\3.1\Boot\ML_Boot.
PLC API
Wird die PLC API genutzt, ist der Nutzer für die Übertragung der ML-Beschreibungsdatei zuständig. Dadurch erhöht sich einerseits die Flexibilität der Anwendung, andererseits sind entsprechende Schritte vom Anwender zu implementieren.
Die Übertragung der ML-Beschreibungsdatei auf das Zielsystem kann auf vielen Wegen erfolgen, nachfolgend wird einer beispielhaft genannt.
- Über die Eigenschaften des PLC-Projekts unter „Deployment“ kann angegeben werden, welche Dateien bei einem bestimmten Event, zum Beispiel Aktivierung der Konfiguration, auf das Zielsystem übertragen werden sollen.
Hinweis | |
Schreibrechte auf dem Zielsystem Es sind die Schreibrechte seitens des Betriebssystems und die Write Filter-Einstellungen zu beachten. |
ML-Beschreibungsdateien im Feld aktualisieren
Ein wichtiges Szenario beim maschinellen Lernen ist die Aktualisierung von datenbasierten Algorithmen im Feld während der Laufzeit einer Maschine. Auch hier ist wieder zu unterscheiden zwischen Nutzung der TcCOM API und der PLC API.
TcCOM API
Bei der TcCOM API verhält sich das Updateverhalten wie bei anderen Änderungen im TcCOM-Bereich. Es ist ein XAE-System notwendig mit einer ADS Route auf das Zielsystem. Im XAE kann im TwinCAT-Projekt eine neue ML-Beschreibungsdatei eingebunden werden. Durch Aktivieren der Konfiguration wird dann das neue Projekt auf das Zielsystem übertragen. Hier ist also ein Neustart der TwinCAT-Laufzeit notwendig.
PLC API
Wird die PLC API genutzt, ist ein Aktualisieren der ML-Beschreibungsdatei auf dem Zielsystem ohne Neustart der TwinCAT-Laufzeit möglich. Dazu ist lediglich ein Update der ML-Beschreibungsdatei auf dem Zielsystem sowie ein erneutes Triggern der Configure-Methode notwendig.
Sie können dazu, z. B. per ADS, die SPS-Variable, die den FullPath der ML-Beschreibungsdatei hält, auf den Wert der neuen, zuvor auf das Dateisystem übertragenen, Datei setzen, und dann den State der State-Maschine wieder auf „laden“ setzen.