Sign in to follow this  
Followers 0
MnDave

Proficy and quickpanel

15 posts in this topic

Hey all,

working a PME project, maintaining some code on a Versamax E05 and QP C755C where the original company went out of business some time ago. I've only done a few PME projects. It's taken a bit of sweat, but I seem to have figured out all the ins and outs of the software. I have one that is keeping me stymied though, and that is a simple toggle ILPB on the QP. The variable is listed as an internal QP var, and I can't figure out how it gets to the PLC to save my life. Been through the scripting, been through the ladder (there is ladder running in the QP), can't find where this internal variable is passed to the bit in the PLC.  I've exported the vars from both the  QP and the PLC to try and find references, but no luck. In PME QP programming, the references tab show where the internal var is used in the ILPB and the QP ladder, but that's it.   When I click the contact in the PLC ladder logic code, the References tab  only reports the single instance residing on that rung.   Yet there it is, every time I touch the ILPB on the QP, the bit comes in and out. The ILPB is the coil that drives this bit, nothing else

Looked for a word variable where a bunch of bits might pass, but after extensive cross checking, all references to the PLC are accounted for. There is one bit alarm group, but everything there is accounted for as well. No root or word alarm groups, control I/O drivers, message grids, No OPC. Native driver is TCPIP, no Ethernet Global Data component. I generally solve these by checking off everywhere it isn't, but I'm out of ink. 

So my question is, how many ways are there to connect a var between the two, or how else can an internal QP var be married to a bit? Any hints as to where I might look?  I think I'm about to lose my "pretty good programmer" moniker. 

Dave

Share this post


Link to post
Share on other sites

If you can post a backup copy of your project file I'll take a look at it to see if I can find the linkage. How did you know where to look in the PLC logic to find the bit that changes state in response to the toggling of the internal QP bit?

Share this post


Link to post
Share on other sites

It's an enable for an alarm.  If the bit is in, the alarm can fire.  I'm now familiar with the program, and have a better understanding of how the original programmer thought.  Each one of us has pet ways of doing things that can be confusing to someone else reading the code.  I'm older, started in PC's back when they were nothing but text and Series 1 PLC's with the plug in programmer on the front. I also have idiosyncracies that some PLC programmers would hate.  I like to loop code in ladder.  I like to write structured text.  But I always document, mostly for myself.  

Pretty much have been through the entire program, but have to edit it a bit more.  I married two PLC's into a single one.  Imported the ladder from the one, and created new variables.  There was a routine to scale the variables where he passed the low scale and the high scale magically was inserted into the scaling routine.  Found that he parked high scale right next to low scale, and just specified 2 as the length when he made the move.  Low and high were parked next to each other in the scale code and viola, everything worked.  But that made me suspicious, and I searched out other moves. Now I find that the original writer (2003) spaced variables, sometimes 20 to 30 registers apart, to create quasi-arrays for keeping history in the PLC. No var names, just big blank spaces.  Imported variables were just placed next to each other, so the code is walking over each one. Not sure why he just didn't declare an array, but maybe GE's array functions were nonexistent in 2003.    I'll clean this up and post.

 

Dave

Share this post


Link to post
Share on other sites

Here's a backup.  In the program, the graphical panel Alarms[QP] has variable LevelHigh_Enab, assigned to toggle switch ILPB4441, wetwell high enable.  LevelHigh_Enab is a QP internal var. LevelHigh_Enab is also referenced in ladder TPAlmEmail[QP], rung 50, and in rung 58.  In the PLC, this QP bit fires LVLHISW.bLvlHigh_disAlm, rung 18.  Can't find another reference to how these two bits are married together.  

Additional notes to how we got here.  This project was done it 2003. A few years ago, the original operator interface, an Exor, went belly up in a lightning storm.  They hired another company to put in the QP, and upgrade to a CPUE05 to support ethernet. That's what I'm working with now.  

 

Dave

 

D_Install Export.zip

Share this post


Link to post
Share on other sites

Is that an old Total Control Products Quick Panel? I can't open your file because I'm lacking some component that your project has.

Share this post


Link to post
Share on other sites

The part number is above

Share this post


Link to post
Share on other sites

I saw the part number and didn't recognize it. That's why I asked.

Share this post


Link to post
Share on other sites

Hey, was in the car, so typing skills are crimped.  This is a QP by GE, resides in the project itself.  Old ones had different software that you used to set them up.  I did check the toolchest to make sure that a configured ILPB wasn't in there hiding something, but nothing there either.  The PLC is a Versamax, has a couple of analogs, a digital in, and some mixed 110vac digital in/out. There's a bumper power supply in the middle.

Dave

Edited by MnDave

Share this post


Link to post
Share on other sites

You mentioned ladder logic in the QP. That's probably what My installation of PME doesn't like. I never install the PC ladder engine when I install PME. If it lets me install that component without first uninstalling all of PME I'll do it and take a look. I'll let you know either way.

Share this post


Link to post
Share on other sites

Thanks man!

Share this post


Link to post
Share on other sites

Once I installed the PC ladder component I was able to open your file.

In the QP, there are two PLC communications drivers. One, with a device name of "VersaMax" is using GE SRTP which is Ethernet and it communicates with the IP addresses of the CPUE05. The other is GE SNP which is serial. The name of the device is "DSP". Can you tell me what it is?

Share this post


Link to post
Share on other sites

There are two PLC's, part of this project is to marry the programs into a single. The PLC's are 30 feet apart, the DSP was outside in a weatherproof panel, but was getting nailed by nearby lightning strikes. So DSP was talking SNP over 485, and the Versamax is TCP/IP. The DSP is a Versamax cpu-E02. Stands for Discharge Station PLC. The Versamax is an E05. The file that you have is the original configuration for the TCP/IP side of the system

Edited by MnDave

Share this post


Link to post
Share on other sites

Hmmm, spoke with the original QP programmer. He can see vars that I cannot, prefixed by QP.xxxxxx. I don't see these, and there is no filter on the variable list. Might be a clue as to this solution.   Do you show QP. prefixed vars at the end of the list in Navigators?

Share this post


Link to post
Share on other sites

If you have been sorting by address and then change to sorting by name, you see the full list of variables, prefixed by the target name as you original programmer described. When you then change to sort by target, you get each target included in the tree with its variables and the target prefix gets deleted.

Share this post


Link to post
Share on other sites

Red herring. He sent a screen shot. His vars are internal as well. I texted him a while back, no reply yet. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0