Category: EtherCAT
How did you wire your home and limit switches?
If you push the siwtches by hand, do you see the "pins" change in halshow?
I would recommend to wire the limit and home switches to the servo drives DI inputs.
Then you can see the signals in PDO 60FD.
e.g. add this to your ethercat-conf.xml for each A6 servo:
<pdoEntry idx="60FD" subIdx="00" bitLen="32" halType="complex">
<complexEntry bitLen="1" halPin="limit-neg" halType="bit"/>
<complexEntry bitLen="1" halPin="limit-pos" halType="bit"/>
<complexEntry bitLen="1" halPin="home-switch" halType="bit"/>
<complexEntry bitLen="13" />
<complexEntry bitLen="1" halPin="din1" halType="bit"/>
<complexEntry bitLen="1" halPin="din2" halType="bit"/>
<complexEntry bitLen="1" halPin="din3" halType="bit"/>
<complexEntry bitLen="1" halPin="din4" halType="bit"/>
<complexEntry bitLen="1" halPin="din5" halType="bit"/>
<complexEntry bitLen="1" halPin="din6" halType="bit"/>
<complexEntry bitLen="1" halPin="din7" halType="bit"/>
<complexEntry bitLen="1" halPin="din8" halType="bit"/>
<complexEntry bitLen="1" halPin="din9" halType="bit"/>
<complexEntry bitLen="7" />
</pdoEntry>
I use negative logic. You have to configure this on your drive to match the limit/home switches. This is permanently saved in the drive.
e.g.
# set operating mode
ethercat upload -p 2 --type int8 0x6060 0x00
ethercat download -p 2 --type int8 0x6060 0x00 8
# set "active low" DI input logic
ethercat upload -p 2 --type uint16 0x2004 0x02
ethercat download -p 2 --type uint16 0x2004 0x02 1
ethercat upload -p 2 --type uint16 0x2004 0x06
ethercat download -p 2 --type uint16 0x2004 0x06 1
ethercat upload -p 2 --type uint16 0x2004 0x0A
ethercat download -p 2 --type uint16 0x2004 0x0A 1
You also have to set homing mode (PDO 0x6098) - see manual