FB_EcFoeReadFile

FB_EcFoeReadFile 1:

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.

FB_EcFoeReadFile 2:

Der Dateipfad kann nur auf das lokale Dateisystem des Rechners zeigen. Das bedeutet, Netzwerkpfade können hier nicht angegeben werden.

FB_EcFoeReadFile 3: 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_VAR

Name

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.)

FB_EcFoeReadFile 4: Ausgänge

VAR_OUTPUT
    bBusy     : BOOL;
    bError    : BOOL;
    nErrId    : UDINT;
    cbRead    : UDINT;
    sInfo     : T_MaxString;
END_VAR

Name

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_IF

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS- Bibliotheken

TwinCAT v3.1.0

PC oder CX (x86, x64, Arm®)

Tc2_EtherCAT >= 3.3.14