FB_VN_ReadNeuralNetwork
This FB reads a neural network from a file on the target pc.
Syntax
Definition:
FUNCTION_BLOCK FB_VN_ReadNeuralNetwork
VAR_INPUT
sFilePath : STRING;
ipDestNeuralNetwork : Reference To ITcVnNeuralNetwork;
aInputShape : Reference To TcVnArray33_UDINT;
bRead : BOOL;
nTimeout : TIME;
END_VAR
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrorId : UDINT;
END_VAR
Inputs
Name |
Type |
Default |
Description |
---|---|---|---|
sFilePath |
STRING |
|
Full path of the file or relative path to the default directory on the target pc |
ipDestNeuralNetwork |
Reference To ITcVnNeuralNetwork |
|
Returns the neural network |
aInputShape |
Reference To TcVnArray33_UDINT |
|
Optional input shape for testing the execution of the neural network model. The error code INCOMPATIBLE is returned if the execution fails. Setting aInputShape = 0 or aInputShape[0] = 0 disables the testing of the execution. |
bRead |
BOOL |
|
Reading the file is triggered by a rising edge at this input. |
nTimeout |
TIME |
VISION_ADS_TIMEOUT |
Indicates the time before the function is cancelled. |
Outputs
Name |
Type |
Description |
---|---|---|
bBusy |
BOOL |
This output remains TRUE until the function block has executed a command, but at the longest for the duration supplied to the 'nTimeout' input. While bBusy = TRUE, no new command will be accepted at the inputs. |
bError |
BOOL |
This output is switched to TRUE as soon as an error occurs during the execution of a command. The command-specific error code is contained in ‘nErrorId’. If the function block has a timeout error, 'bError' is TRUE and 'nErrorId' is 1861 (hexadecimal 0x745). Is reset to FALSE by the execution of a command at the inputs. |
nErrorId |
UDINT |
Contains the ADS error code or the command-specific error code of the last executed command. Is reset to 0 by the execution of a command at the inputs. |
Weiterführende Informationen
Der Funktionsblock FB_VN_ReadNeuralNetwork
lädt ein neuronales Netz aus einer Datei asynchron in die SPS. Die Datei muss im standardisierten Austauschformat Open Neural Network Exchange (ONNX) vorliegen, da nur dieses Format unterstützt wird.
Laden von geänderten neuronalen Netzen Beim Einladen eines neuronalen Netzes cached der Vision-Service die Daten intern. Ein Einladen von geänderten neuronalen Netzen ist somit im Standard nicht möglich. Passen Sie dazu die Cache Einstellungen an oder sehen Sie das Beispiel Serielles Laden von Bildern in die SPS für eine Alternative. |
Parameter
Einige Parameter sind zentral im Kapitel File Access Parameter beschrieben.
Geladenes neuronales Netz (Rückgabewert)
Das geladene ITcVnNeuralNetwork
ist nach erfolgreichem Lesevorgang und optionalem Test der Ausführung über den Interface Pointer ipDestNeuralNetwork
zu erreichen.
Testen der Ausführung
Mit dem optionalen Parameter aInputShape
kann ein Eingangsformat übergeben werden, mit dem die Ausführung des neuronalen Netzes, vor dem Laden in die SPS, getestet wird. Dieser Test ist hilfreich, insbesondere bei Modellen mit dynamischen Eingangsformaten, um sicher zu stellen, dass das Modell mit dem angegebenen Format erfolgreich ausgeführt werden kann. Falls die Ausführung nicht erfolgreich ist, wird ein HRESULT = ADSERR_DEVICE_INCOMPATIBLE
zurückgegeben.
Mit der folgenden Angabe kann zum Beispiel ein Eingangsformat für den Test spezifiziert werden. Mit aInputShape[0] := 0;
kann der Test der Ausführung ebenfalls deaktiviert werden.
aInputShape
[0] := 4;
aInputShape
[1] := 1;
aInputShape
[2] := 224;
aInputShape
[3] := 224;
aInputShape
[4] := 3;
Anwendung
Das Laden eines neuronalen Netzes, ohne Test der Ausführung (aInputShape := 0;
), vom Pfad C:\TcVision\NeuralNetwork.onnx
sieht z. B. so aus:
fbReadNeuralNetwork
(
sFilePath := 'C:\TcVision\NeuralNetwork
.onnx',
ipDestNeuralNetwork
:= ipReadNeuralNetwork
,
aInputShape := 0;
bRead := TRUE,
nTimeout := T#500MS);
IF NOT fbReadNeuralNetwork
.bBusy AND NOT fbReadNeuralNetwork
.bError THEN
// Neural Network
is accessible in ipReadNeuralNetwork
END_IF
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.59 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |