industrialNETworXnetx

tpedley

tpedley

| 10.03.2010 | 12:13 | 1 reply

Ethercat Slave Implementation Issues

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

Andreas Jacob

Hilscher Gesellschaft fuer Systemautomation mbH

| 11.03.2010 | 10:36

Hi Tony Pedley,

did you use in your implementation something like this:

APWR ALCONTROL 0x11 0x00
APWR ALCONTROL 0x01 0x00

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

Login