FB_EcFoeReadFile

Mit dem Funktionsbaustein FB_EcFoeReadFile können Dateien über das "File access over EtherCAT"-Mailbox-Protokoll von einem EtherCAT-Gerät auf den lokalen Datenträger heruntergeladen werden.
![]()  | Der Dateipfad kann nur auf das lokale Dateisystem des Rechners zeigen. Das bedeutet, Netzwerkpfade können hier nicht angegeben werden.  | 
 Eingänge
VAR_INPUT
    sFSrvNetId     : T_AmsNetId := '';
    sFSrvPathName  : T_MaxString;
    sEcNetId       : T_AmsNetId;
    nSlaveAddr     : UINT;     
    sFoEPathName   : T_MaxString;
    dwPass         : DWORD := 0;
    bExecute       : BOOL; 
    tTimeout       : TIME := T#200s; 
END_VARName  | Typ  | Beschreibung  | 
|---|---|---|
sFSrvNetId  | T_AmsNetId  | AMS-Netzwerkkennung des Rechners, auf den die gelesene Datei geschrieben werden soll. (Default: lokaler Rechner)  | 
sFSrvPathName  | T_MaxString  | Enthält den Pfad- und Dateinamen der zu schreibenden Datei (z. B.: 'C:\Data\LogData.csv').  | 
sEcNetId  | T_AmsNetId  | String, der die AMS-Netzwerkkennung des EtherCAT-Master-Gerätes enthält.  | 
nSlaveAddr  | UINT  | Adresse des EtherCAT-Slaves  | 
sFoEPathName  | T_MaxString  | Name der Datei auf dem EtherCAT-Slave (z. B. 'LogData')  | 
dwPass  | DWORD  | Passwort  | 
bExecute  | BOOL  | Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.  | 
tTimeout  | TIME  | Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf. (Default: 200s.)  | 
 Ausgänge
VAR_OUTPUT
    bBusy     : BOOL;
    bError    : BOOL;
    nErrId    : UDINT;
    cbRead    : UDINT;
    sInfo     : T_MaxString;
END_VARName  | Typ  | Beschreibung  | 
|---|---|---|
bBusy  | BOOL  | Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.  | 
bError  | BOOL  | Dieser Ausgang wird gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde, wenn bei der Übertragung des Kommandos ein Fehler auftritt.  | 
nErrId  | UDINT  | Liefert bei einem gesetzten bError-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehls.  | 
cbRead  | UDINT  | Anzahl der erfolgreich gelesenen Datenbytes  | 
sInfo  | T_MaxString  | Zusätzliche FoE-Fehlerinformation (reserviert)  | 
Beispiel in ST:
Bei einer steigenden Flanke an der bExecute-Variablen wird das Lesen der angegebenen Datei über das "File access over EtherCAT"-Mailbox-Protokoll gestartet. Es wird die in sFoEPathName benannte Datei vom gewählten EtherCAT-Slave (sEcNetId & nSlaveAddr) gelesen und die Datei wird auf dem gewählten Rechner (sFSrvNetID) unter dem in sFSrvPathName genannten Namen abgelegt. Falls für das Lesen der Datei vom EtherCAT-Slave ein Passwort erforderlich ist, kann dieses über dwPass angegeben werden. 
Der Lese- und Schreibvorgang ist erst beendet, wenn bBusy auf FALSE geht. Erst dann können die Fehlerinformationen bzw. die Anzahl der gelesenen Bytes ausgewertet werden.
PROGRAM MAIN
VAR
    fbEcReadFile : FB_EcFoeReadFile := (
        sFSrvNetID     := '5.0.34.38.1.1', (* NetID for target file *)
        sFSrvPathName  := 'C:\Data\LogData.csv', (* Pathname for target file *)
        sEcNetId       := '5.0.34.38.3.1', (* NetID of EtherCAT master *)
        nSlaveAddr     := 1004, (* EtherCAT slave address *)
        sFoEPathName   := 'LogData', (* Name of source file *)
        dwPass         := 0
    );
    bExecute   : BOOL := TRUE;
    bBusy      : BOOL;
    bError     : BOOL;
    nErrID     : UDINT;
    nBytesRead : UDINT;
END_VAR
fbEcReadFile (
        bExecute := bExecute,
        bBusy => bBusy,
        bError => bError,
        nErrId => nErrID
);
IF NOT bBusy THEN
    bExecute := FALSE;
    IF NOT bError THEN
         (* done, no error *)
        nBytesRead := fbEcReadFile.cbRead;
    ELSE
        (* evaluate error *)
        nBytesRead := 0;
    END_IF
    fbEcReadFile (bExecute := FALSE);
END_IFVoraussetzungen
Entwicklungsumgebung  | Zielplattform  | Einzubindende SPS- Bibliotheken  | 
|---|---|---|
TwinCAT v3.1.0  | PC oder CX (x86, x64, Arm®)  | Tc2_EtherCAT >= 3.3.14  | 
