I’m implementing SDO communication using SOEM and SOES libraries but I’m having some problems, could someone help me? To go into detail I’m using a Pc with Ubuntu as Ethercat master and an ethercat slave which uses a LAN9252. The slave is connected to a pc with window 10 which is used to load the SOES program and once the software has been loaded, it remains connected in debug mode for checking the variables. I have a problem with the SDO communication. When i run, on my master, the slaveinfo.c program (this program is contained in the SOEM library) from command window with the optional parameter -sdo i obtain the following results:
SOEM (Simple Open EtherCAT Master) Slaveinfo Starting slaveinfo ec_init on enp2s0 succeeded. 1 slaves found and configured. Calculated workcounter 3
Slave:1 Name: SSC_Device Output size: 1024bits Input size: 1024bits State: 4 Delay: 0[ns] Has DC: 1 DCParentport:0 Activeports:1.0.0.0 Configured address: 1001 Man: 00000afc ID: 00010000 Rev: 00000001 SM0 A:1000 L: 128 F:00010026 Type:1 SM1 A:1200 L: 128 F:00010022 Type:2 SM2 A:1400 L: 128 F:00010064 Type:3 SM3 A:1600 L: 128 F:00010020 Type:4 FMMU0 Ls:00000000 Ll: 128 Lsb:0 Leb:7 Ps:1400 Psb:0 Ty:02 Act:01 FMMU1 Ls:00000080 Ll: 128 Lsb:0 Leb:7 Ps:1600 Psb:0 Ty:01 Act:01 FMMUfunc 0:1 1:2 2:0 3:0 MBX length wr: 128 rd: 128 MBX protocols : 04 CoE details: 0d FoE details: 00 EoE details: 00 SoE details: 00 Ebus current: 0[mA] only LRD/LWR:0 ec_slave[cnt].mbx_proto: 04 printSDO: 1 End slaveinfo, close socket End program
The problem is that i don’t see the PDO mapping in according to CoE. I checked the exchange of packages between master and slave, i saw that the master send a request and my slave receive it , then the slave send the response request but the master doesn’t receive it . From the slave debugger I checked the SM_status (Sync manager status SM1 0x080d) that is the register that indicate if the mailmox is full and if the master can read and i saw that this register doesn’t change value. Someone know what is the problem? the eeprom memory need to have a particular structure to allow a correct SDO comunication? Or maybe is only a slave software problem?
Thanks.