Dieser Funktionsbaustein sendet die EcoStruxure Machine Expert-Konfigurationsdaten eines Advantys OTB an das physische Gerät über Modbus TCP.
Er ermöglicht die Aktualisierung der Konfigurationsparameter eines E/A-Islands ohne Drittanbietersoftware.
Der Modbus TCP IOScanner muss angehalten werden, bevor diese Funktion aufgerufen wird.
Die Ausführung des Funktionsbausteins erfolgt asynchron. Um die Vollständigkeit der Konfiguration zu überprüfen, müssen die Ausgangsflags Done, Busy, und Error in jedem Anwendungszyklus getestet werden.
Sie finden eine allgemeine Darstellung in AWL (IL) oder ST im Kapitel Darstellung von Funktionen und Funktionsbausteinen.
In der folgenden Tabelle werden die Eingangsvariablen beschrieben:
Eingang |
Typ |
Kommentar |
---|---|---|
Execute |
BOOL |
Aktivierungseintrag. Startet die Konfiguration an der steigenden Flanke. |
sAddr |
STRING |
OTB-IP-Adresse Das Format der Zeichenfolge muss 3{xx.xx.xx.xx} sein. |
In der folgenden Tabelle werden die Ausgangsvariablen beschrieben:
Ausgang |
Typ |
Kommentar |
---|---|---|
Done |
BOOL |
Auf TRUE gesetzt, wenn die Konfiguration erfolgreich abgeschlossen wurde. |
Busy |
BOOL |
Auf TRUE gesetzt, wenn die Konfiguration noch läuft. |
Error |
BOOL |
Auf TRUE gesetzt, wenn die Konfiguration mit einem Fehler beendet wurde. |
ConfError |
Rückgabewerte: configurationOTBErrorCodes |
|
CommError |
Rückgabewerte: CommunicationErrorCodes |
Nachstehend ein Beispiel für einen Aufruf dieser Funktion:
VAR
(*Funktionsbaustein zur Konfiguration des OTB; IOScanner muss angehalten werden, bevor FB ausgeführt wird*)
configure_OTB1: CONFIGURE_OTB;
(*Initialwert unterscheidet sich von 16#00000000; IO_start_done=0 bei erfolgreichem Start*)
IO_start_done: UDINT := 1000;
(*Initialwert unterscheidet sich von 16#FFFFFFFF; IO_start_done=16#FFFFFFFF bei erfolgreichem Anhalten*)
IO_stop_done: UDINT := 1000;
(*Configure_OTB_done= true bei erfolgreicher Konfiguration des OTB; anschließend kann der IOScanner gestartet werden*)
Configure_OTB_done: BOOL;
myBusy: BOOL;
myError: BOOL;
myConfError: configurationOTBErrorCodes;
myCommError: UINT;
myExecute: BOOL;
END_VAR
(*IOScanner anhalten, bevor OTB konfiguriert wird*)
IF NOT myExecute THEN
IO_stop_done:=IOS_STOP();
END_IF
(*Konfigurationsdaten an OTB senden, an IP-Adresse 95.15.3.1, wenn myExecute = TRUE*)
configure_OTB1(
Execute:= myExecute,
sAddr:='3{95.15.3.1}' ,
Done=> Configure_OTB_done,
Busy=> myBusy,
Error=> myError,
ConfError=> myConfError,
CommError=> myCommError);
(*Nachdem OTB erfolgreich konfiguriert wurde, IOScanner starten*)
IF Configure_OTB_done THEN
IO_start_done:=IOS_START();
END_IF