I’m working with the Profinet IRT version of Anybus IP for Xilinx. My custom driver is based on source code from ABCC Starter Kit v3.04.01 and ABCC driver v 5.04.01.
I have used Wireshark to capture the traffic that is generated on the network when the software (Siemens TIA Portal v13) is updating its list of accessible devices. This has exposed a discrepancy with the MAC address.
The MAC address is defined in abcc_identification.h and calls a function that returns a unique MAC address provided by the driver:
#define ETN_IA_MAC_ADDRESS_ENABLE TRUE
#define ETN_IA_MAC_ADDRESS_VALUE GetMacAddressStr()
When I boot up my system for the very first time the default value returned by GetMacAddressStr() is “\x00\x30\x11\x11\xFF\xFF”, which is the default found in the original code from HMS. Then I configure my system to assign a new unique MAC (let’s say “\x00\x40\x89\x78\x56\x34”) which will be returned by GetMacAddressStr() from that moment on.
When I look at the Wireshark trace I do see the expected MAC address 00.40.89.78.56.34 inside the packets corresponding to the lookup response. That is working just fine.
But in the trace I also see a bunch of LLPD packets generated from the Anybus device showing source “HmsIndus_00:00:01” to destination “LLPD_Multicast”. The odd part is that these LLPD packets are showing a source MAC address 00:30:11:00:00:01.
To be honest I’m not familiar with these protocols and possibly everything is all right, but I’m intrigued by the fact that the MAC address used for LLPD packets is different from the one I set with my function. Also, a MAC address is supposed to be unique and that won’t be the case if every single unit we build is using 00:30:11:00:00:01 for LLPD.
Can you please help clarifying whether or not this behavior is expected?