Hi,
At a basic level, you can use a MSG instruction to a Ring Supervisor to pull out the diagnostic information: "Verify a Fault Location". It does not tell you what ports on the Supervisor are inactive, but more which nodes were last active on port 1 and 2. In other words, you can tell from the IP address of the last active node on port 1 and 2 how far the link is reaching down the chain of nodes before the ring is broken. To determine, programmatically, where the physical break in the ring is, you would have to know the layout of the ring address wise so as to flag which link section is down.
At a more advanced level, you can use a MSG instruction to all and any Supervisor capable nodes to pull out their status and diagnostics info. This info includes, among others, the above Fault Location, Network Status (Normal, Fault, etc.), and Ring Supervisor Status. The Ring Supervisor Status will tell you if a Supervisor is currently an Active Ring Supervisor or a Backup Supervisor. This, along with the Fault Location, can be further used to determine where in the physical network a link may be down.
Have a look here at Chapter 3:
Publication ENET-AP005:
EtherNet/IP Embedded Switch Technology Application Guide
Any questions, fire away.
Regards,
George