Is there a reliable strategy for uniquely identifying devices on the network? I’d like to be able to survive a superficial change in network topology (e.g. changing node order).
A “solution” here would probably be something that would work for “a lot” of devices, but perhaps not all, though if there were a way to guarantee that I could uniquely identify any given device, that would be wonderful.
Model & Serial Number
It has been my experience that device support for whatever underlies
RapidCodeNetworkNode::SerialNumberGet() is spotty at best, and I have never noticed that any device I’ve worked with returns anything but
0 for this request.
Is there a Good Way™ to get a serial number? Is it totally dependent on whether the device (manufacturer) makes it available via some object that I can query?
This is a very “soft” identifier that would at least work for a specific set of physical devices. It does require the installer to configure it correctly and cannot be managed at all in the software. Also, some devices don’t support this and always return 0.
Is it possible to get the MAC address of a node? This sounds like data that is kind of none-of-my-business as an EtherCAT consumer, but I only want it as identifying information.
Is there a way that I could get it via RapidCode? What if I were willing to cheat and look at raw firmware addresses?
I don’t require a specific implementation, but I do need to be able to identify a physical device on the network regardless of where it is in the topology. I’m open to whatever other clever ideas you may have.
The DSP 402 standard lists a number of objects (e.g. 0x6400-0x64FF) that, perhaps, could be used to identify devices. Are any of these reliably supported (in your experience) among manufacturers?