Category: EtherCAT
Maybe this is documented already somewhere and I just missed it. The key to all of this is this magical argument in the slave tag
configPdos="true"
This actually does alot of what I described above, however, it works in the XML for "other" reasons. If you look at the dmesg log with "ethercat debug 1" you can see exactly what its doing. The XML is still incorrect. To truly use the configPdos="true" properly you have to use the variable mapped PDO's. The reason the XML "works" is because it sets the PDO assignment register to the address listed in the <PDO idx>, however you will get a bunch of errors because it will try to map the PDO's to read only registers. And you don't truly get a variable assigned PDO, you only get what is in the fixed PDO in the registers selected. So it could be intentional, but if you are going to use it, might as well use the variable mapped PDO so you can pick and choose exactly what PDO's you want. However, I think there is a caveat to this, variable PDO mapping is only available in Firmware version > 2.1. So this could be the "lazy mans" way of setting the Fixed PDO's for SM 2&3.