Hi Paul,
The way to do this is to use aliases. Every slave can store an alias
(which is a number) in EEPROM. To set the alias of a slave, use
# ethercat alias -p10 100
This will set the alias of slave 10 to 100.
The master can address a slave at an absolute position or relative to an
aliassed slave. In fact, absolute addressing is actually relative
addressing to alias 0 which is the very first slave, no matter what its
alias is.
When the master scans the bus, every time it encounters a non-zero alias
in a slave it reinitializes its alias counter to zero.
With this setup, you can address the third slave after slave alias 100
using:
ec_pdo_entry_reg_t->alias = 100
ec_pdo_entry_reg_t->position = 3
You have the option of setting the alias of every slave, but this does
not scale very well, especially after replacing a slave with a new one.
In a changing topology, we typically set the slave alias of a coupler
(e.g. EL1100) and then address the slaves relative thereto.
Just a hint, although I may be wrong on this: you get special couplers
(EK1101) that have an ID switch which is mapped to the alias as far as I
know. Then you can replace a broken coupler in the field without
actually setting the alias manually.
- Richard
On 15.04.2016 15:38, Paul Mulligan wrote:
Hi,
If I want to access a slave on the Ethercat bus, we use the position of
the slave on the bus to access it with ecrt_master_slave_config(). If we
then put a new slave on the bus before this slave for example, this
means that the position number of the first slave will change and we
need to reconfigure our code.? This presents problems.
My question is, can we not access the slave via their physical addresses
instead of this incremental position addressing, therefore not needing
to update the position address every time there is a change?
Thanks
_______________________________________________
etherlab-users mailing list
etherlab-users@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-users
_______________________________________________
etherlab-users mailing list
etherlab-users@etherlab.org
http://lists.etherlab.org/mailman/listinfo/etherlab-users