Allen Bradley PowerMonitor 5000

Hi All,

We recently setup an Allen Bradley PowerMonitor 5000 and I’m trying to link it to Ignition over E-IP. We have successfully setup the meter and can communicate via the web based interface included with the meter. I was able to get the device “connected” in the configuration screen using the Allen Bradley Logix Driver. However, when I try to look for tags in the OPC browser, nothing shows up when I try to expand the tab for the meter.

Here’s an excerpt from the manual:

All PowerMonitor 5000 units are equipped with a native EtherNet/IP 100 BaseT
communication port. This section describes EtherNet/IP communication and
the available protocols to use for your application.
The Ethernet communication port allows communication with your power
monitor by using a local-area-network (LAN). The Ethernet port can be used to
view the unit’s internal webpage.
The PowerMonitor 5000 unit communicates through Ethernet or EtherNet/IP
drivers in RSLinx® Classic software, and through explicit messages from Rockwell
Automation controllers communicating via an EtherNet/IP network.

Does anybody have any idea what advanced settings I would need to change in Ignition or if this will even work at all?

thanks for any help!

Unless it emulates a Logix PLC very closely the Logix driver isn’t going to work. I’ll see if I can find some documentation about what kind of data it exposes over EtherNet/IP and how it does so… but I wouldn’t hold your breath.

Yeah… in theory the data is there and easy to access, but it would require a driver built for these things. Sorry.

You can probably get the data via RSLinx OPC server.

Thought I remembered seeing this. :slight_smile:

Just starting on doing a similar thing with the PM3000, but I’m going to scrape from the web pages.

Had a great start, but accidentally shut down the project before saving it. So much save first, save often. :laughing:

I’ll post back here in a bit.

Here is what I came up with. Don’t have any 5000s in house to compare to, so I can’t say for sure how much will apply.

This will create or update tags as needed.

[code]def scrape():
from StringIO import StringIO

Set SQLTag Provider and base folder. In this instance all subfolders and tage will

be in [defailt]PowerMonitor

baseFolder = ‘PowerMonitor’

Friendly location names for each PowerMonitor

locationList = [‘East Mains’,‘Buss A’, ‘Compressor Room’]

IP addresses for each PowerMonitor. Must have the same number of hosts as locations.

hostList = [‘’, ‘’, ‘’]

list of web pages in the PowerMonitor (example: http:

pageList=[‘15’, ‘17’, ‘18’, ‘19’]

Create Folder structure, if needed

if not system.tag.exists(tagProvider+baseFolder):
system.tag.addTag(parentPath=tagProvider, name=baseFolder,tagType=‘Folder’)
for location in locationList:
if not system.tag.exists(tagProvider+baseFolder + ‘/’ + location):
system.tag.addTag(parentPath=tagProvider+baseFolder, name=location, tagType=“Folder”)

Initialize lists for tag writes.


Scrape web pages

for host in hostList:
folder=baseFolder + ‘/’ + locationList[hostList.index(host)]
for page in pageList:
url=‘http://’ + host + ‘/’ + page
# Attempt to grab web page.
for line in dataIn.readlines():
if line[:8] == ‘

’ and line.find(’’)>-1:
vStart = line.find(’’)+4
vEnd = line.find(’
tagName = line[8:line.find(’
tagValue = float(line[vStart:vEnd])
# Create tag if it doesn’t exist, otherwise add to write list.
if not system.tag.exists(folder + ‘/’ + tagName):
system.tag.addTag(parentPath=tagProvider+folder, name=tagName, tagType=“MEMORY”, dataType=“Float4”, value=tagValue)
tagList.append(folder + ‘/’ + tagName)
# If it can’t grab the web page, ignore it and move on.

Check to see if any tags need writing.

if len(tagList)>0:
system.tag.writeAll(tagList, valueList)[/code]

You can Talk to it directly with Modbus TCP. Look page # 121