User Documentation

Anhang: Tutorial FoE
Systemhandbuch
2696780000/02/04.2020
127
21 Anhang: Tutorial FoE
Der Zugriff über FoE auf ein Gerät (z.B. um Dateien auf das Gerät zu laden)
muss programmatisch über die Applikation gelöst werden. In diesem Kapitel
wird als Beispiel über FoE ein Firmwareupdate auf einem UC20 Buskoppler
ausgeführt. Der Ablauf des Firmwareupdates wird im Meldungsmonitor aus-
gegeben.
Programmierbaustein
PROGRAM PRGECatFileTransfer
// Variablendeklaration
VAR
//Dateiübertragung
state: IoApi_State;
err: UDINT;
pass: UDINT;
slavedir: STRING:= '';
masterdir: STRING:= '/home/admin/FB-EC-FULL-0007674-01_08_00-9.bsc';
dir: IoEcat_FileDirection:= IoEcat_FileDirection.download;
mDevHandle: IoApi_Hdl;
//Anforderung "Bootstrap Mode"
 ReqBootStrap: BOOL;
//Verlassen "Bootstrap Mode"
LeaveBootstrap: BOOL;
//Ethercat State
GetState: BOOL;
SlaveState: IoEcat_State;
//State machine
miState: DINT; msState: STRING;
mbLoadNewFW: BOOL;
msFileName: STRING;
msFileDir: STRING;
END_VAR
// Bausteincode
(* Verwendete Library: K_IoApi K_SystemCallLibrary Standard
Beschreibung:
1. Kopieren der Firmwareupdate Datei in das Verzeichnis "\masterdisk" auf der
Steuerung
2. Setzen des Dateinamens als Wert der Variablen "msFileName"
3. DeviceHandle des Buskopplers setzen (mit "Property Device Handle" des
Ethercat Geräts
4. mbLoadNewFW muss auf TRUE gesetzt werden.
*)
msFileName:= 'FB-EC-FULL-0007674-01_08_00-9.bsc';
msFileDir:= '/masterdisk/';
mDevHandle:= UR20_FBC_EC.DeviceHandle;
CASE miState OF
0:
IF mbLoadNewFW THEN
mbLoadNewFW:= FALSE;
miState:= 10;
END_IF
10: //Beginne Bootstrap
state:= IoApi_EcatEnterBootstrap(devHdl:= mDevHandle);
IoApi_EcatGetState(devHdl:= mDevHandle,pState:= SlaveState);
IF state = IoApi_State.IoApiStateOk AND