I am looking into getting the Distributed Clocks synchronization working with the B40 EtherCAT brick. Have read the relevant network guide (document SCM-1202-034), one Application Note about Sync Error Counters (document SCM-1202-183) and the example code (appl_adimap_sync.c) from ABCC Starter Kit.
Settings in my source code were done to support this functionality. In terms of hardware, the Sync signal goes straight from the brick to the host processor, and the Sync ISR works fine, with the precise timing set in the TwinCAT 3. No issues with our equipment in Free Run; but with DC active it doesn’t go to Operational (stays in SAFEOP).
I might be, again, overlooking something in the settings, and/or not understanding completely the inner parts of this feature.
What I have at the moment to start debugging this problem is the error message from the TwinCAT software; “…no SYNC0 or SYNC1 received”, and the Status Code 0x002d (meaning Not yet synchronized - Appendix B.3). Important to mention that I am able to run the ESI Generator successfully, and register the XML file inside the software. And during this stage, have selected both OpMode, FreeRun and DC, in the Advanced (Optional) tab. Also, my ADI array list has the five required error counters.
What is the proper way to support this function? Appreciate any advise to diagnose and fix this issue.