CoE-Zugriff auf Multifunktions-I/Os
Mit dem Funktionsbaustein FB_EcCoeSdoReadEx
können per SDO-Daten (Service Daten Objekt) Daten aus dem Objektverzeichnis eines EtherCAT-Slaves ausgelesen werden. Mit Hilfe der Parameter nSubIndex und nIndex wird ausgewählt, welches Objekt ausgelesen werden soll. Über bCompleteAccess := TRUE
kann der Parameter mit Unterelementen eingelesen werden.
Beispiel: Firmware-Version der Multifunktions-I/Os auslesen.
VAR
AMSNetID AT %I*:T_AmsNetIdArr;
Port AT %I*:T_AmsPort;
FB_EcCoESdoReadEx: FB_EcCoESdoReadEx;
FirmwareVersion: STRING;
END_VAR
Für die Kommunikation mit der CX7028-Schnittstelle wird die AmsNetId und die Port-Nummer benötigt. Die Eingänge des Funktionsbausteins FB_EcCoeSdoReadEx
können mit den Eingangsvariablen netId
und port
unter TwinCAT verlinkt werden, damit der Funktionsbaustein dauerhaft mit der CX7028-Schnittstelle verbunden ist.
Der Eingang sNetId
des Funktionsbausteins entspricht dem Eingang netId
unter TwinCAT. Der Funktionsbaustein verlangt einen String und die Verknüpfung liefert ein Byte-Array. Sie können das Byte-Array mit der Funktion F_CreateAmsNetId
in einen String umwandeln. Der Eingang nSlaveAddr
entspricht dem Eingang port
unter TwinCAT.
FB_EcCoESdoReadEx(
sNetId:=F_CreateAmsNetId(nIds:=AMSNetID ) , (* AmsNetId of the CX7028 Interface *)
nSlaveAddr:=Port , (* Port Number(nSlaveAddr): 0x1000 *)
nSubIndex:= ,
nIndex:=16#100A , (* Index Number *)
pDstBuf:=ADR(FirmwareVersion) ,
cbBufLen:=SIZEOF(FirmwareVersion) ,
bExecute:=TRUE ,
tTimeout:= ,
bCompleteAccess:= ,
bBusy=> ,
bError=> ,
nErrId=> );
Die Index-Nummer für das CoE-Objekt Software version befindet sich unter der Registerkarte CoE-Online.
Mit dem Funktionsbaustein FB_EcCoeSdoWriteEx
kann per SDO-Download ein Objekt aus dem Objektverzeichnis eines EtherCAT Slaves beschrieben werden. Achten Sie darauf, ob auf das Objekt lesen zugriffen werden kann, was in der Spalte Flags angezeigt wird. Mit Hilfe der Parameter nSubIndex und nIndex wird ausgewählt, welches Objekt beschrieben werden soll. Über bCompleteAccess := TRUE
kann der Parameter mit Unterelementen geschrieben werden.