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.

CoE-Zugriff auf Multifunktions-I/Os 1:
CoE-Zugriff auf Multifunktions-I/Os, Eingangsvariablen "netId" und "port" unter TwinCAT.

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.

CoE-Zugriff auf Multifunktions-I/Os 2:
CoE-Kommunikation, Auflistung der CoE-Objekte mit passender Index-Nummer.

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.