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?
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.
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):
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.
tagList=[]
valueList=[]
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.
try:
dataIn=StringIO(system.net.httpGet(url))
for line in dataIn.readlines():
if line[:8] == ‘
’ and line.find(’’)>-1:
vStart = line.find(’’)+4
vEnd = line.find(’’)
tagName = line[8:line.find(’
’)].replace(’,’,’’)
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)
else:
tagList.append(folder + ‘/’ + tagName)
valueList.append(tagValue)
# If it can’t grab the web page, ignore it and move on.
except:
pass
Check to see if any tags need writing.
if len(tagList)>0:
system.tag.writeAll(tagList, valueList)[/code]