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