XMC4300 Ethercat slave can't change to op state when the cycletime is less than 500us

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User19397
Level 1
Level 1
Dears

I followed the user guide to develop the xmc4300 relax ethercat kit,and the default setting of the MIN_PD_CYCLE_TIME is 125us。
but I still can‘t request op state when the cycletime is less than 500us。
Can you give some advice?

Thanks
Wade
0 Likes
1 Solution
MichaelIFX
Employee
Employee
50 replies posted 25 replies posted 10 replies posted
Dear Wade,
with MIN_PD_CYCLE_TIME your slave device announces what kind of cycle time it supports. Basically you are free to set there "any" value.
But to make your slave node actually support your setting you have to take care of it, inside your implementation.

For this please see:
Application Note ET9300 (EtherCAT Slave Stack Code)
https://download.beckhoff.com/download/document/io/ethercat-development-products/an_et9300_v1i8.pdf

9.1 Supported Sync Modes
"0x1C32.5 / 0x1C33.5 (Min Cycle Time): Minimum cycle time for the application. This can be
specified by “MIN_PD_CYCLE_TIME”. It is the total execution time of all slave application
related operations. In the SSC it is the PDO_OutputMapping(), ECAT_Application() and
PDO_InputMapping(). For further details see 9.2."

So it appears for your case the runtime of these (customer specific) functions is longer than the cycle time and therefore your node does not become operational.

Hope this helps.

Kind Regards

Michael

View solution in original post

0 Likes
6 Replies
MichaelIFX
Employee
Employee
50 replies posted 25 replies posted 10 replies posted
Dear Wade,
with MIN_PD_CYCLE_TIME your slave device announces what kind of cycle time it supports. Basically you are free to set there "any" value.
But to make your slave node actually support your setting you have to take care of it, inside your implementation.

For this please see:
Application Note ET9300 (EtherCAT Slave Stack Code)
https://download.beckhoff.com/download/document/io/ethercat-development-products/an_et9300_v1i8.pdf

9.1 Supported Sync Modes
"0x1C32.5 / 0x1C33.5 (Min Cycle Time): Minimum cycle time for the application. This can be
specified by “MIN_PD_CYCLE_TIME”. It is the total execution time of all slave application
related operations. In the SSC it is the PDO_OutputMapping(), ECAT_Application() and
PDO_InputMapping(). For further details see 9.2."

So it appears for your case the runtime of these (customer specific) functions is longer than the cycle time and therefore your node does not become operational.

Hope this helps.

Kind Regards

Michael
0 Likes
User19397
Level 1
Level 1
Hi,MichaelIFX

I chacked the PDO_OutputMapping(), ECAT_Application(), and PDO_InputMapping(), they only do little things in their function.

4868.attach

4869.attach

4870.attach

This is the sample I download from the Infineon offical website.

I set the shift time to 50us and I can set the min cycletime to 1ms, and shift time 100us with min cycle time 500us.
but I can't set cycletime 250us anyway.

can you give some advice about what happend via PDO output mapping process?

Thanks
Wade
0 Likes
MichaelIFX
Employee
Employee
50 replies posted 25 replies posted 10 replies posted
Dear Wade,
still those little things take the time they need. Cycle time of 250us is very hard to achieve.
Inside Output-Processing the data received from ECat-Bus is copied from the peripheral to local memory structures for further processing
Inside Input-Processing the data which must be sent to host by ECat-Bus is copied from local memory structure to the peripheral for the next cycle.
Inside the processing the functionality based on the local copies is implemented.

In regard to SSC (from ETG) documentation, let me also refer to the ETG who know the best.
But the SSC application note is quite clear about the limitations described earlier.


Kind Regards

Michael
0 Likes
User19397
Level 1
Level 1
Hi, MichaelIFX

I commented out this part and get the same reason.And after I debug the project with break point, I found that at 500us cycletime condition, the program didn't get in PDO_OutputMapping(), beacuse the slave state didn't change to OP state. But I don't know why.
Can you give some advice?

Thanks & Best Regards
Wade
0 Likes
MichaelIFX
Employee
Employee
50 replies posted 25 replies posted 10 replies posted
Hi Wade,
with the original example I do not have these issues.
Maybe there are other reasons then the min cycle and why you do not get into operational state.
Please do not forget to erase the complete flash before binary download to make sure, the EEPROM data from your binary is used instead of possible old/outdated stored inside EEPROM from earlier downloaded binaries.
And always update the Host with the esi-file to avoid conflicting information coming from EEPROM and esi-file.

Kind Regards

Michael
0 Likes
User19397
Level 1
Level 1
Hi, Michael

I connected with Chinese Infineon guys and with the help of them, I think there are some unknown problem on my pc. So I can't achieve the 500us cycle time on both XMC4300 and XMC4800.
I will find another PC to continue.

Thanks
Wade
0 Likes