FB_EcLogicalReadCmd
Mit dem Funktionsbaustein FB_EcLogicalReadCmd
wird ein logisches EtherCAT-Write-Kommando (LRD) vom Master gesendet. In jedem Slave können lokale Adressbereiche (DPRAM) auf globale logische Adressebereich gemappt werden. Somit adressiert dieses Kommando alle EtherCAT-Slaves, die ein Mapping für den ausgewählten logischen Adressbereich konfiguriert haben.
Eingänge
VAR_INPUT
sNetId : T_AmsNetId;
logAddr : UDINT;
len : UDINT;
pDstBuf : PVOID;
bExecute : BOOL;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
sNetId | T_AmsNetId | String, der die AMS-Netzwerkkennung des EtherCAT-Master-Gerätes enthält. (Typ: T_AmsNetId) |
logAddr | UDINT | Logische Adresse |
len | UDINT | Anzahl der zu lesenden Bytes |
pDstBuf | PVOID | Adresse (Pointer) auf den Empfangspuffer |
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. |
Ausgänge
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
wkc : UINT;
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. |
wkc | UINT | Der Working Counter wird von jedem EtherCAT-Slave, der dieses Kommando erfolgreich bearbeitet hat, um eins inkrementiert. Wenn nur ein EtherCAT-Slave von diesem Kommando adressiert worden ist, muss dieser Wert somit 1 entsprechen. |
Beispiel für eine Implementierung in ST:
PROGRAM Test_LogicalReadCmd
VAR
fbReadCmd : FB_EcLogicalReadCmd;
bExecute : BOOL;
value : USINT;
logAddr : UDINT :=16#10000;
sNetId : T_AmsNetId:='192.168.1.5.3.1';
wkc : UINT;
bError : BOOL;
nErrId : UDINT;
END_VAR
fbReadCmd (sNetId:=sNetID, logAddr:=logAddr, LEN := SIZEOF(value), pDstBuf:=ADR(value), bExecute:=bExecute);
wkc := fbReadCmd.wkc;
bError:= fbReadCmd.bError;
nErrId:= fbReadCmd.nErrId;
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS- Bibliotheken |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64, Arm®) | Tc2_EtherCAT |