[etherlab-dev] Explicit Device ID

Matthieu Bec mbec at gmto.org
Wed Nov 29 00:32:35 CET 2017


I didn't properly explain it earlier:
in my use case the devices are all the same and serviceable. We'd like to avoid reprogramming IDs if a device fails and gets swapped by another, so we intend to use an ID from an EEPROM dongle (that will be permanently mounted) rather than SII (that will change with the new device).
Basically, what you describe in your last paragraph poking the AL Ctrl/Status Code Registers. Can you explain why this is less useful than station alias?
It looks like one way around it would be to write the dongle ID to the alias register when the micro starts up?

Thank you,

ps: sorry dev-list I should have sent this to etherlab-users





On 11/28/17, 2:29 PM, "Gavin Lambert" <gavinl at compacsort.com> wrote:

On 29 November 2017 10:10, quoth Matthieu Bec:
> I have an application that requires uniquely identifying all our slaves
(~180
> that are essentially one same model) in the fieldbus.
> Using "configured station alias" seems it could work, since it means
updating
> all the SII individually.
> Those are custom built slave built around micro-processor and we have a
way
> to expose unique id (from a location eeprom dongle) I was looking at
"Explicit
> Device Identification" from ETG1020 protocol enhancement.
> 
> Has anyone experience with that? I don't see it being currently supported
in
> etherlab master.

The method I use is to program the EEPROM with a unique serial/alias address
during production, so in the field they're preprogrammed with an appropriate
station alias.

The alias can alternatively be set during commissioning using the "ethercat
alias" command, or other means.

These are probably the simplest thing that just works.


The explicit device id method is mostly intended for things like hardware
dipswitches.  There's a procedure outlined in ETG1020 to let the slave
configure the alias on its own on bootup (the short version is to use the
value in the SII EEPROM if nonzero, then the id selector if nonzero, or
signal an error if both are nonzero).  This process is invisible to the
master and again would just work, given a slave that supports it.

ETG1020 also specifies a command the master can send to request the slave
provide a hardware address as a one-off request.  This is not directly
supported by the Etherlab master (although you can use register requests to
do it yourself in the application or a commissioning tool).  This is
independent of the station alias but that also makes it less useful --
especially in a network where devices could be connected in alternate orders
(which is usually the reason why you want individual addressing) you should
be using the alias addresses to define your slave_configs, so that things
will Just WorkT when the network is reconfigured.






More information about the Etherlab-dev mailing list