FB_EcLogicalWriteCmd
Mit dem Funktionsbaustein FB_EcLogicalWriteCmd wird ein logisches EtherCAT Write-Kommando(LWR) vom Master gesendet. In jedem Slave können lokale Adressbereiche(DPRAM) auf globale logische Adressebereich gemappt werden. Somit adressiert diese Kommandos alle EtherCAT-Slave, die ein Mapping für den ausgewählten logischen Adressbereich konfiguriert haben.
VAR_INPUT
VAR_INPUT
sNetId : T_AmsNetId;
logAddr : UDINT;
len : UDINT;
pSrcBuf : DWORD;
bExecute : BOOL;
tTimeout : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
sNetId: Ist ein String, der die AMS-Netzwerkkennung des EtherCAT Master Gerätes enthält.
logAddr: Logische Adresse.
len: Anzahl der zu schreibenden Bytes.
pSrcBuf: Die Adresse (Pointer) auf den Sendepuffer.
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.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
nErrId : UDINT;
wkc : UINT;
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
wkc: 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, sollte dieser Wert somit 1 entsprechen.
Beispiel für eine Implementierung in ST:
PROGRAM Test_LogicalWriteCmd
VAR
fbWriteCmd : FB_EcLogicalWriteCmd;
bExecute : BOOL;
value : USINT :=16#55;
logAddr : UDINT :=16#10000;
sNetId : T_AmsNetId:='192.168.1.5.3.1';
wkc : UINT;
bError : BOOL;
nErrId : UDINT;
END_VAR
fbWriteCmd (sNetId:=sNetID, logAddr:=logAddr, LEN := SIZEOF(value), pSrcBuf:=ADR(value), bExecute:=bExecute);
wkc := fbWriteCmd.wkc;
bError:=fbWriteCmd.bError;
nErrId:=fbWriteCmd.nErrId;
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.10.0 oder höher | PC or CX (x86) | TcEtherCAT.Lib |
TwinCAT v2.10.0 Build >= 1301 oder höher | CX (ARM) |