ONNX für die Verwendung mit TwinCAT Machine Learning Server vorbereiten
Interfacebeschreibungen für die SPS erzeugen
Um eine ONNX mit dem FB_MlSvrPrediction in der TwinCAT SPS nutzen zu können, werden Interfaceinformationen benötigt. Diese werden durch den TwinCAT Machine Learning Model Manager erzeugt.
Angaben zum unterstützten ONNX Opset und Einschränkungen finden Sie hier: ONNX Support.

JSON-File
Das JSON-File beinhaltet Meta-Informationen, welche der Funktionsbaustein FB_MlSvrPrediction benötigt. Darüber hinaus können Nutzer dem JSON-File eigene Meta-Informationen über die Custom-Attributes mitgeben. Das JSON-File wird vom Funktionsbaustein geladen, siehe Configure-Methode. Sowohl das JSON-File als auch die ONNX-Datei müssen auf dem Laufzeit-PC zum Laden verfügbar sein, siehe Modellbeschreibungsdateien auf Server-Device verfügbar machen.
PlcOpenXml
Das PlcOpenXml beinhaltet die SPS-Typbeschreibung der Input- und Output Nodes. Die automatisch generierten Input-/Output-Strukturen (DUTs) spiegeln die Input-/Output-Definition der von Ihnen bereitgestellten ONNX-Datei wider. Stellen Sie daher sicher, dass Sie aussagekräftige Namen für die Input- und Output Nodes in ihrer ONNX verwenden.
Die Nutzung dieser erstellen Datentypen ist empfohlen.
Beispiel zur Namensgenerierung in der PlcOpenXml:

Dateiname: lemon_model.onnx
Name Input node: input.1
Name Output node: 367
Es werden zwei DUTs vom Typ STRUCT erzeugt mit den Namen ST_lemon_modelInput und ST_lemon_modelOutput. Die Datenbereich-Elemente werden entsprechend der Input- und Output Nodes benannt, im obigen Fall in in_input1 und out_367. In der SPS nicht gestattete Zeichen werden automatisch entfernt. Besitzt ein KI-Modell mehrere Input- oder Output Nodes, werden diese jeweils als Element des STRUCT dargestellt.
Beispiel für den generierten Inputdatentypen
TYPE ST_lemon_modelInput :
STRUCT
in_input1 : ARRAY[0..0,0..2,0..223,0..223] OF REAL;
END_STRUCT
END_TYPEDie Namen der Elemente des STRUCT können bei Bedarf angepasst werden, jedoch nicht deren Reihenfolge im STRUCT und auch nicht die Größe des ARRAY.
Import einer PlcOpenXml in TwinCAT 3
Die generierte PlcOpenXml kann in der SPS mit Rechtklick auf einen Ordner (z. B. DUTs) über das Feld „Import PLCopenXML“ in das SPS-Projekt übernommen werden.

Hinweis | |
Betrieb des Machine Learning Servers über generierte Eingangs- und Ausgangsmodelltypen empfohlen Bitte beachten Sie, dass die Verwendung der in der mitgelieferten PlcOpen-Datei definierten Eingangs-/Ausgangsmodelltypen empfohlen, aber nicht zwingend erforderlich ist. Die Daten müssen korrekt sortiert sein und die richtige Größe besitzen. |