I am trying to get our EtherCat slave working on an embedded controller.
Our Ethercat master works with Beckoff Ethercat Slave IO Module, but when we try and talk directly to the Hilscher Ethercat Slave it complains it cannot change the cards state. To be fair the problem may be at the Ethercat master implementation end but I need to try and establish where the error lies.
I have got the card to the following state as defined by the Channel Common Status Block
Communication Change Of State 7(Ready,Running, Bus On)
Communication State 2(Stop)
Communication Channel Error 0
Communication Error Count 0
However I have now hit a brick wall, and I am wondering if anyone knows what we should look at next
Specifically :-
what causes the communication state to move to operate state?
Is there any other diagnostic information we can extract to the card about its communication status?
Also the EtherCAt Slave API manual suggests that the Hardware Assembly Options should be set to 0x80. My card shows 0 for these ports? Is this correct?
The document also indicates we can send messages directly to the Ethercat tasks("ECAT_ESM", etc) however it indicates we should get the destId using the TLR_QUE_IDENTIFY macro. I cannot find any reference to this macro in any API. Where can we get it from?
Any help gratefully accepted
Thanks
Tony Pedley
Andreas Jacob
Hilscher Gesellschaft fuer Systemautomation mbH
Hi Tony Pedley,
did you use in your implementation something like this:
This will work on any EtherCAT slave you might encounter regardless of the version of their stacks.
In addition, the simple slaves will copy the latter into field and keep that. So, you can check for Init State without Error afterwards without any specialties.
Regards
AJ