Reading IP Addresses on an Ethernet Network using RSLogix


Thread Starter


I'm trying to read the IP Addresses of all devices on an ethernet network (including Panelview Plus 1000 HMIs, PLCs, and robots) using code in RSLogix 5000 version 13.01.

I've tried using CIP Generic messaging but have found it doesn't seem to work with talking to Panelviews. Also, I'd like to know if there is a way I can find devices on a netowrk without blatantly creating a message for each one or even knowing what is out there in advance. I'd like code that I can drop into a PLC and immedietely grab the IP Addresses of all connected devices. Is there a way I can do this?

The devices/software I'm using are:
1756-L61 (with RSLogix 5000 v13.01)
Panelview Plus 1000 (with RSView ME 3.20)

Eddie Willers

So, you've tried sending Device WHO (Service 1, Class 1, Instance 1, Attribute 1) to all the possible nodes on the subnet? That's how RSLinx does its browse. I have not tried it with PV+ devices... maybe the RSLinx Enterprise identity object doesn't respond right.

I'll try hooking up an Ethereal session to the RSLinx ETHIP browse to see what services they're using.

I know that the 1756-ENBT module knows which devices have an active TCP connection to it, so there might be a way to query that information out of the Connection Manager object inside the ENBT. It won't be a public object, though, so you're likely going to have to get that info from Rockwell directly.

Automation Linse

Not sure you could do this easily - try reading the "Identity Object" at all IP is one option since all compliant Ethernet/IP devices return that. But you'll still need to loop thru all possible IP which would be a huge task in a Class B network with subnet like

RSLinx uses a broadcast ListIdentity service - part of the Ethernet/IP "Encapsulation Services" in the spec. But I doubt you have a way for a CLgx CPU to ask the ENBT card to do this by proxy, plus you'll have an unknown number of responses over a somewhat unknown length of time.