HMI One App - Multiple Locations; Panelview Plus 7/FTView ME 9.0

dcooper33

Lifetime Supporting Member + Moderator
Join Date
Jun 2011
Location
Rogers, AR
Posts
717
I've never tried to do this before, and I've thought of a few possible solutions, but they all feel like kludges.

I have a control system controlling a debone operation. Soon this will be expanding to do another identical operation in the same room. With the first operation, I have 3 panelview plus 7 1000's, one in main PLC panel, and two remote screens out on the floor.

The bean counters have dictated that I have to use the same control system to the control the 2nd operation. It's basically a mirror image of the first, and expanding the PLC code to handle the second system was an easy, if tedious, task.

I'll be adding two new panelviews on the floor to cover the second system. My goal is to have the new panelviews only be able to access screens relevant to that second system, to avoid confusion. I also want to retrofit the original process panelviews to only be able to access their system screens.

So far, I've come up with these options:
1. Make three separate applications. 1 for the control panel HMI that accesses both systems, 1 for the first system only, and 1 for the second system only.
2. Make one application with a startup screen that offers the option of which system you want to access. After that, you could only access that initial screen if you admin user privileges.
3. Using some kind of IP address polling (which I haven't figured out how to do in FTView ME), limit access based on screen location. I have static IP's, so this would be pretty trivial in some software packages, but I can't find any system tags in FTView that help me get to this.

There's pros and cons for all 3, and I'm open to other suggestions.
While #1 is the simplest, its far from ideal as this system is regularly evolving, and I don't want to have to apply future mods to 3 separate apps. #2 is easy enough to implement but offers the potential for a careless operator to control the wrong system :unsure:
#3 would be the ideal solution, but as of now I can't see a path forward.

If you guys have any other ideas, I'm all ears.

Thanks,
Dustin
 
Three separate applications; it is ME afterall; you have to 'connect' FTVS objects to different tags anyways since, although they are identical, there are two different systems. You could use the same graphics 'templates' while 'connecting' to different tags.

Moreover; the control panel HMI should provide only general functionality and information regarding both systems; the local terminals should provide detailed functional controls and information (Manual On/Off, Jog, Recipes, Alarms, etc.).

A lot more work, however, done the right way that is...:D
 
I recently did a job with 6 panelview plus. I had one application for all. The plant was divided in zones and each HMI was in a zone. What I did was create a who am I for each panel. Based on that value is what the operator could control. They could see everything, but couldn't control only what was in their zone. If interested I could give more information.

James
 
I recently did a job with 6 panelview plus. I had one application for all. The plant was divided in zones and each HMI was in a zone. What I did was create a who am I for each panel. Based on that value is what the operator could control. They could see everything, but couldn't control only what was in their zone. If interested I could give more information.

James

I've done that with WW InTouch, based upon which operator had logged on. I've also done HMI apps that present different graphics shortcuts, etc. based upon node name.
 
we have a 3 mixer batching system with 6 PV+. They all have been given a different node.
It is the same process for 3 different mixers on one batching system.
They all give info about the same process, from unloading raw materials, batching, mixer usage and so on. On some of them we dont put a go to button to certain screens if there not pertinent to the operator. But Engineering can go to any HMI and see what is going on any where.

If the operator wants to change a timer on a different mixer they have to "go to" that mixers screen.
 
Last edited:
Here's an idea. I've not done this, so I can't say for sure that it will work, but I've got a hunch that it might.

Create a HMI tag - a memory tag, not a PLC tag - call it "ProcessID" or similar. Set the initial value of this tag to zero, and make it retain it's value on power cycle.

If the value of this tag is zero, the HMI can access everything.
If the value of this tag is one, the HMI can access only Line 1.
If the value of this tag is two, the HMI can access only Line 2.
And so on.

Create an "engineering settings" screen, accessible only to people like yourself who have access to configure the hardware. Put a numeric input on that screen to modify the value of the tag.

This way, you're not relying on an operator to select the right line at power-up - you can do it once when you commission the system, and it's done permanently. As it's a HMI tag, each HMi can have it's own value.

It just means if you ever replace the HMI or download a new program, you'll have to re-set that tag each time. But by having a "zero=full access" feature, worst case your operators will still be able to use them to run the line - they'll just have too much access, rather than too little.

I mean, you could get even more creative and set up a check so that if the value is zero, it takes you straight to a popup window to set the correct value before you're allowed to do anything else. Even if they do put the wrong value in, you as the engineer can log in and change it to the correct one.
 
Here's an idea. I've not done this, so I can't say for sure that it will work, but I've got a hunch that it might.

Create a HMI tag - a memory tag, not a PLC tag - call it "ProcessID" or similar. Set the initial value of this tag to zero, and make it retain it's value on power cycle.

If the value of this tag is zero, the HMI can access everything.
If the value of this tag is one, the HMI can access only Line 1.
If the value of this tag is two, the HMI can access only Line 2.
And so on.

Create an "engineering settings" screen, accessible only to people like yourself who have access to configure the hardware. Put a numeric input on that screen to modify the value of the tag.

This way, you're not relying on an operator to select the right line at power-up - you can do it once when you commission the system, and it's done permanently. As it's a HMI tag, each HMi can have it's own value.

It just means if you ever replace the HMI or download a new program, you'll have to re-set that tag each time. But by having a "zero=full access" feature, worst case your operators will still be able to use them to run the line - they'll just have too much access, rather than too little.

I mean, you could get even more creative and set up a check so that if the value is zero, it takes you straight to a popup window to set the correct value before you're allowed to do anything else. Even if they do put the wrong value in, you as the engineer can log in and change it to the correct one.

That's exactly what I did, I called it "Who_Am_I" (of course the name is irrelevant). However, I allowed 0, because this was a read only panel.
 
That's exactly what I did, I called it "Who_Am_I" (of course the name is irrelevant). However, I allowed 0, because this was a read only panel.

Oh ok, I misread your last post, Phrog. I thought you were saying that you had one application for each screen. I like your idea, it seems simple enough to implement. The requirement to have to reset the memory tag to the correct value each time is pretty trivial I'd say.

A little more Google-Fu turned up this thread.
It refers to the diagnostic tag @DPServer. It turns out that this gives a string value of the DNS name entered on the terminal config (Thanks Ken Roach).

I believe I can use the DNS names to either enable all lines visibility, or process 1 or 2 based upon the name of the terminal. Of course having to make sure a DNS name gets entered properly when a panelview gets replaced is never a maintenance man's number 1 priority, so having to maintain this may prove more of a pain than having to set the memory tag that Phrog and ASF are talking about.

I will have to give it some more thought, thank you guys for the good suggestions!
🍻
 
It refers to the diagnostic tag @DPServer. It turns out that this gives a string value of the DNS name entered on the terminal config (Thanks Ken Roach).

I believe I can use the DNS names to either enable all lines visibility, or process 1 or 2 based upon the name of the terminal. Of course having to make sure a DNS name gets entered properly when a panelview gets replaced is never a maintenance man's number 1 priority, so having to maintain this may prove more of a pain than having to set the memory tag that Phrog and ASF are talking about.
You can test the DNS name and invoke a message if the value is not equal to the possible options. Maybe something like "You forgot to set the DNS Name. The possible options are... " could be helpful.
 
So far, I've come up with these options:
1. Make three separate applications. 1 for the control panel HMI that accesses both systems, 1 for the first system only, and 1 for the second system only.
2. Make one application with a startup screen that offers the option of which system you want to access. After that, you could only access that initial screen if you admin user privileges.
3. Using some kind of IP address polling (which I haven't figured out how to do in FTView ME), limit access based on screen location. I have static IP's, so this would be pretty trivial in some software packages, but I can't find any system tags in FTView that help me get to this.

There's already been some good posts, so this might be late.

But I would used both idea 2 & 3.
You'll need to use an activeX control to get the IP address. Use that on the startup screen (just like you said in #2) to send the project into the right area of screens.

Objects>ActiveX Control>ME IP Info
or the ME "Terminal Info" control
 
Three ?

It would have to be ten before I would go through the hurdles to try to make them all identical apps. You will probably spend enough time getting this sorted out to equate to a dozen mods to three unique applications.

I understand the underlying concept of wanting only one application to maintain. It is one of those ideals that sounds awesome, but in practice, three unique apps is simpler and very easy to manage. Just my opinion.
 
Three ?

It would have to be ten before I would go through the hurdles to try to make them all identical apps. You will probably spend enough time getting this sorted out to equate to a dozen mods to three unique applications.

I understand the underlying concept of wanting only one application to maintain. It is one of those ideals that sounds awesome, but in practice, three unique apps is simpler and very easy to manage. Just my opinion.

It took about an hour to develop the application so I could use one app across the board. The is a one time thing as well. So, for next time, there is nothing to do, it's already done. Having one app is not always feasible, but if it is, I just can't see why you wouldn't do it. Having to keep track of multiple APAs, MER's, passwords, etc., is not necessary. Making changes is simple, do it once and you are done. I know I saved time.
 
I put in system in 2016 with 1 Control Logix and 4 Compact Logix and 11 PanelViews.

I made 1 application that even segregated the alarming and alarm pop-ups all based on IP address of the PV.

Basically I made a Startup screen with the METerminalInfo control that triggers a MEMacroMultiplerer control based off the last octet of the IP address. Only hitch here is all of the last octets could only be from 1 to 100 as that's all the macro multiplexer will handle. But this was a new system and we had the whole IP subnet to set the way we wanted. Could probably do some math and be able to use more then 100.

For things like Alarm Reset, I used a macro rather then a PLC address and in the macro you have a line for each machine like:
Tag: [PLC]PanelView_MachineA.AlarmReset.PB
Expression: If {Security\SEC_Machine1} then 1 else 0

We also had a secured screen where a maintenance person could enable the SEC bits so that a PV for Machine1 could control Machine2 if the PV at Machine2 died and they didn't have a new one.

Now Alarm Popups were a bit trickier. I used the Remote Display Number but rather then using a single tag I used and expression:
If {Security\Machine1} Then {Machine1\RD} else etc etc

Then I put code in each machine to detect new alarms and poped the display number for that machines popup screen.

Easy right?
 

Similar Topics

Hello everybody, I am working on a project which has HMI FTView SE 13 (Local) and controllogix L71 PLC. I have a question how does PLC detect a...
Replies
0
Views
510
I need an inexpensive PLC for home automation projects. I only need digital outputs and analog inputs. Pretty simple and slow process. Also, it...
Replies
33
Views
12,043
Hi. I have a click C0-11DRE-D plugged in to a dedicated WiFi router (without internet.) I'm struggling to get any bit / bool to display properly...
Replies
3
Views
1,608
The C-More remote HMI app on APP Store, Google Play and Amazon is now available free. The nominal charge has now been removed...
Replies
5
Views
2,360
Here is a sample app I created with AHMI. It's already compiled. It was done with VisualStudio17, it should be backwards compatible.. to 15, 13...
Replies
19
Views
6,114
Back
Top Bottom