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.
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.
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.
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 = [‘192.168.140.31’, ‘192.168.140.32’, ‘192.168.140.33’]
list of web pages in the PowerMonitor (example: http:192.168.140.31/15)
pageList=[‘15’, ‘17’, ‘18’, ‘19’]
Create Folder structure, if needed
if not system.tag.exists(tagProvider+baseFolder):
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:’)].replace(’,’,’’)|
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.