Ausführliches Beispiel
Das Beispiel kann hier heruntergeladen werden: TF38x0_Extended_PLC_Sample.zip.
Das ZIP enthält zum einen ein tszip-Archiv (siehe PLC-Dokumentation, tszip) und zum anderen eine Beckhoff ML XML Datei (TrigonometryMLP.XML). Kopieren Sie die XML Datei an die in der PLC als Zielort definierten Stelle, oder verändern Sie den String auf einen anderen Pfad.
Die ML-Modell Beschreibungsdatei beinhaltet ein MLP mit einem Input und einem Output, vgl. XML-Tag <Configuration> mit int64_numInputNeurons = 1
sowie der zweiten (letzten) Schicht mit int64_numNeurons = 1
. Es existieren zwei Parameter-Tags, d.h. es sind zwei unterschiedlich trainierte aber von der Struktur (<Configuration>) identische MLPs in der Datei enthalten. Es handelt sich dabei einmal um ein MLP, welches trainiert wurde eine Sinusfunktion zu approximieren und einmal um ein MLP, welches eine Kosinusfunktion approximieren soll. Im Bereich <IODistributor> ist zu sehen, dass eine Engine mit der Referenz „sin_engine“ und die andere mit „cos_engine“ erreichbar ist. Im Bereich <CustomAttributes> sind einige Metadaten hinterlegt, z. B. der Name des Modells, die Version und der Gültigkeitsbereich der Input-Variablen.
Im SPS Quellcode wird, wie beim Schnellstartbeispiel eine einfacher Zustandsautomat durchlaufen. Der Unterschied zum Schnellstartbeispiel liegt in der Ausführlichkeit des Zustands „Configure“ sowie der Nutzung von mehreren Engines.
Im Zustand „Configure“ wird exemplarisch gezeigt, wie flexibel mit der Anzahl von Ein- und Ausgängen umgegangen werden kann und wie Sie möglichst viele Informationen aus der Beschreibungsdatei auslesen und direkt in der SPS nutzbar machen können.
Das Schalten zwischen den beiden Engines können Sie im Online View händisch herbeiführen, indem Sie die EngineId auf 0 oder 1 stellen.