FB_EcFoeLoad

FB_EcFoeLoad 1:

Mit dem Funktionsbaustein FB_EcFoeLoad können Dateien über das "File access over EtherCAT"-Mailboxprotokoll (FoE) zu einem EtherCAT-Gerät herunter geladen oder von einem EtherCAT-Gerät hochgeladen werden.

FB_EcFoeLoad 2:

Der Dateipfad kann nur auf das lokale Dateisystem des Rechners zeigen! Das bedeutet, Netzwerkpfade können hier nicht angegeben werden! Um Dateien über das FoE-Protokoll hoch- oder runterladen zu können, setzt der Funktionsbaustein das EtherCAT-Gerät automatisch in den BOOTSTRAP-Mode zurück. Zum Schluss versucht der Funktionsbaustein, das Gerät wieder in den ursprünglichen Zustand zu versetzen.

VAR_INPUT

VAR_INPUT
    sNetId      : T_AmsNetId;
    nSlaveAddr  : UINT;     
    sPathName   : T_MaxString;
    dwPass      : DWORD := 0;
    eMode       : E_EcFoeMode := eFoeMode_Write;
    bExecute    : BOOL; 
    tTimeout    : TIME := T#200s; 
END_VAR

sNetId: Ist ein String, der die AMS-Netzwerkkennung des EtherCAT Master Gerätes enthält.

nSlaveAddr: Feste Adresse des EtherCAT Slaves, dessen Datei hoch- oder herunter geladen werden soll.

sPathName: Enthält den Pfad- und Dateinamen der zu schreibenden oder zu lesenden Datei (z.B.: 'C:\FOE_Test\EL6751\ECATFW__EL6751_C6_V0030.efw' ).

dwPass: Passwort (Default: 0).

eMode: "File access over EtherCAT"-Zugriffsmode (Default: Schreibzugriff).

bExecute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

tTimeout: Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf (Default: 200s.).

VAR_OUTPUT

VAR_OUTPUT
    bBusy       : BOOL;
    bError      : BOOL;
    nErrId      : UDINT;
    cbLoad      : UDINT;
    nProgress   : UDINT;
    sInfo       : T_MaxString;
END_VAR

bBusy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.

nErrId: Liefert bei einem gesetzten bError-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehles

cbLoad: Anzahl der erfolgreich geschriebenen oder gelesenen Datenbytes.

nProgress: Prozentualer Fortschritt beim Schreibzugriff (Bereich: 0 - 100%). Beim Lesezugriff wird diese Variable zur Zeit nicht benutzt und ist immer 0.

sInfo: Zusätzliche Befehlsinformation als String (reserviert).

Beispiel in ST: 

Bei einer steigenden Flanke an der bLoad-Variablen wird der Firmware-Download über das "File access over EtherCAT"-Mailboxprotokoll gestartet.

PROGRAM MAIN
VAR
    fbDownload : FB_EcFoeLoad := (
        sNetID := '5.0.34.38.3.1',
        nSlaveAddr := 1004,
        sPathName := 'C:\FOE_Test\EL6751\ECATFW__EL6751_C6_V0030.efw',
        dwPass := 0,
        eMode := eFoeMode_Write );

    bLoad : BOOL;
    bBusy : BOOL;
    bError : BOOL;
    nErrID : UDINT;
    nBytesWritten : UDINT;
    nPercent : UDINT;
END_VAR
fbDownload(      bExecute := bLoad,
        bBusy => bBusy,
        bError => bError,
        nErrId => nErrID,
        cbLoad => nBytesWritten,
        nProgress => nPercent );

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.10.0 Build > 1307

PC or CX (x86)
CX (ARM)

TcEtherCAT.Lib
( Standard.Lib; TcBase.Lib; TcSystem.Lib, TcUtilities.Lib werden automatisch eingebunden )