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