Hi Community,
I want to communicate with an EtherCAT slave device (VSE152 from Vendor ifm) using a X20IF10G1_1 Master, but my problem is that there is no cyclic process data communication with the slave, the ModuleOk Flag of the Slave is always FALSE.
Looking into the I/Omapping of the Master module, i see there is a Communication_Error with the value of 0xC0CF8010, according to the Hilscher netX documentation this means “Data type does not match, length of service parameter does not match”.
I have checked several times that the configured Modules in the Device Configuration of my VSE152-Slave match the actual setup of the device (i am able to communicate with my EtherCAT slave using Codesys-EtherCAT-Master as well with a python script (using pysoem)).
The hardware connection is fine, i can successfully read some SDO parameters (e.g. VendorID, Manufacturer name) using nxecmSdoRead() of AsNxEcM library.
(Side note: with nxecmSdoRead() i have a minor problem: i cannot figure out how to assign the DeviceName to the nxecmSdoRead() function block in C language.
In structured Text it works fine using
nxecmSdoRead_inst.DeviceName := ‘SS1.IF1’;
but how the hell does it work in C ?
i have already tried this:
VAR
EtherCATmasterDeviceName : STRING[127] := ‘SS1.IF1’; (* my X20IF10G1_1 master *)
END_VAR
nxecmSdoRead_inst.DeviceName = ‘SS1.IF1’; //-> fail!!
nxecmSdoRead_inst.DeviceName = (STRING)‘SS1.IF1’; //-> fail!!
nxecmSdoRead_inst.DeviceName = (STRING)EtherCATmasterDeviceName; //-> fail!!
nxecmSdoRead_inst.DeviceName = (STRING)&EtherCATmasterDeviceName; //-> fail!!
all three tries have failed with Error “incompatible types in assignment”.
my workaround right now is to use the Watch Window to assign the string…not very satisfactory. I am grateful for any advice how to solve this in C language.
But back to my main trouble - the non working cyclic process data:
I guess there are some missing adjustments in the Device Configuration Window of the EtherCAT Master or Slave.
Do i need any special adjustment to get the Slave into operational state?
Beside the correct selection of the input and output modules, there are nor really lot of settings that i can adjust regarding the datatype/datasize …
Are there any debug possibilities within Automation Studio? using Codesys EtherCAT master or the python script it was plug and play to communicate with my device… ![]()
Are there any debugging options within Automation Studio to
fix the Master-error 0xC0CF8010 (ERR_ECMV4_COE_ABORTCODE_DATATYPE_DOES_NOT_MATCH) ?
Any help appreciated, kind regards
Albert



