FactoryTalk Studio Question...

shoelesscraig

Member
Join Date
Apr 2009
Location
LA
Posts
382
Trying to figure out if something is possible or not...

I won't bore you with the "why I am trying to do this" story...lol

I know how to have a PV tell the PLC what screen number it is on, and I know how to have the PLC tell the PV what screen number to go to...

That being said, is it possible to have some sort of variable in this? I would like to have 1 ".mer" file in 2 different PVs. I would like 1 PV to read it's "screen command" from 1 word in the PLC and the other PV to have a different "screen command".....but like I said, I would prefer to do it with 1 .MER file.

If I have to do 2 different ones, I can. But I wanted to see if anyone had any ideas on how to pull this off. I've looked at it, but aren't seeing anything.
 
In general, I discourage efforts to use one generalized program in two separate applications. But you didn't ask about the merits.

The Global Connection for "Remote Display Number" is what the PanelView terminal reads from the PLC in order to allow PLC control of which screens are displayed.

That Connection can be an Expression, so you can combine tags from the comms database, internal HMI tags, and System tags to make up the Connection value.

Let's say your screen number was represented by a ControlLogix tag named "Remote_Display". If Remote_Display = 1, you want PanelView A to show Display 11 and PanelView B to show Display 21.

So you create an HMI internal tag called "PanelView_Number". Create some way for the installer to set that value so that PanelView A has a value of 10 and PanelView B has a value of 20.

Make the Remote Display Number expression something like

({[Shortcut]Remote_Display}) + (PanelView_Number)
 
Ken, thanks for the response...2 things...

First, not sure what I was thinking. I knew that the "write" to the display could be an expression, so I actually knew how to do that already and asked the wrong question. I meant to ask...how can I READ the current display number from 2 different PV's at the same time if they have the same .MER? The READ value cannot be an expression, only a tag. Because of the application, I would like to verify that the PV actually is showing the correct screen before letting the logic proceed.

I am def willing to learn here...so out of curiosity, why do you discourage this practice? I was just looking at it from a "we only have 1 file to keep up with instead of 2" standpoint. Set me straight...
 
This is one of those things that always makes me feel like I need to label my shoes "L" and "R". Let's revisit this carefully because one of the features can only be a Tag, and one can be an Expression, and because the words that are used come from a strange world where adjectives and verbs wear each others hats.

In the Global Connections "Display" Tab:

"Replace Display Number" is the first field. This is a value that the PanelView writes to the controller. The value is the Display Number that's currently being displayed. Only "Replace" type displays have a number that will be written to the controller by this feature; it does not send numbers for On Top displays. This can be a Tag only.

"Remote Display Number" is the third field. This is a value in the Controller that is read by the PanelView terminal and used to navigate to the Display whose number is indicated by the value of the expression. This can be a Tag or an Expression.
 
This is one of those things that always makes me feel like I need to label my shoes "L" and "R". Let's revisit this carefully because one of the features can only be a Tag, and one can be an Expression, and because the words that are used come from a strange world where adjectives and verbs wear each others hats.

In the Global Connections "Display" Tab:

"Replace Display Number" is the first field. This is a value that the PanelView writes to the controller. The value is the Display Number that's currently being displayed. Only "Replace" type displays have a number that will be written to the controller by this feature; it does not send numbers for On Top displays. This can be a Tag only.

"Remote Display Number" is the third field. This is a value in the Controller that is read by the PanelView terminal and used to navigate to the Display whose number is indicated by the value of the expression. This can be a Tag or an Expression.

Lol, maybe I didn't explain well enough. I know everything you just said in Post #4 (and have known it for years and put it to use all the time). What I DO NOT know, is how (if it's even possible) to read the current display number from 2 different PV's at the same time IF THEY HAVE THE SAME .MER file in them?

For example, I set up the expression like you suggested in post #2 so that PV1 gets told to go to screen 11 and PV2 gets told to go to 21. That's all fine and dandy, but I want to verify that each screen made it. Is there a way to CONSTANTLY read the current display number from 2 different PVs with the same .MER file in them? I know I can just momentarily read the display number RIGHT after telling a PV to go to change, but I wanted to try and ready both at the same time, constantly.

I'm thinking this is NOT possible... I don't HAVE to have this ability, it was more of a "can it be done" sort of challenge to myself, and I couldn't come up with anything so I figured I'd ask the forum...just in case you guys knew a trick I didn't.
 
What you wrote initially was:

I would like 1 PV to read it's "screen command" from 1 word in the PLC and the other PV to have a different "screen command"

By my reading, that's the "Remote Display Number".

Your later description is of the "Replace Display Number", which can only be one tag, not an expression and not multiple tags in multiple controllers.

There might be some method for doing this with a Remote Macro and an HMI Tag, but I don't have the time to test it.
 
What you wrote initially was

Which is why I corrected myself in the very next post that I wrote...I said that I meant to ask the opposite. Not trying to split hairs here Ken, but by post #3 I was asking the right question...and you were still explaining to me what the different tags meant (which I already knew).

All that said...There's a lot of guys on the internet (this forum included) that have no idea what they are talking about...and then there are a few people that I automatically trust and look up to for good sound advice. You can just tell by their numerous posts and track record that they are legit and honest and really know their stuff. YOU are one of those to me...Guys like you, Ron B, and a few others make the forum worth reading...so thanks....your posts have helped me out more times that I can count over the years.

As for this little experiment...I think I'll save it for another day! I don't have the time to mess with it either!
 
I got confused by the two different questions and the mixing of nomenclature for "read" and "write".

The Global Connections are an interesting and sometimes a powerful feature, but I have to read the Help file and draw myself a diagram every time I revisit them.
 
The Global Connections are an interesting and sometimes a powerful feature, but I have to read the Help file and draw myself a diagram every time I revisit them.

As do I. I believe Rockwell could have labeled them in a slightly more "user friendly" way.
 
There is no feature in the PVP to constantly read which display number it is on.
All you can do is use the Global Connections and Macro features to WRITE the display number to a tag, immediately after a display change.

With only one MER, the main problem is that Remote Connections will always write the display number from your multiple PanelViews to the same tag. That's the problem Ken was pointing out. PanelView 1 will overwrite the value created by PanelView 2.

If you really want one method try this:
When the project starts up, write a unique number to a memory tag (ex. PVid). The terminal info activex can do that, but use any method you want. It just needs to be unique per terminal.
Use a memory tag (ex. DisplayNum) for the "Replace Display Number" global connection.
Create Macro1 that copies DisplayNum to a controller tag, unique for PanelView 1
ex. PV1tag = DisplayNum
Create Macro2 that does the same thing, writing to PanelView 2 tag
ex. PV2tag = DisplayNum
In global connections, use expressions to run Macro1 or Macro2 periodically based on whatever the terminal number is
ex. If (PVid == 1) Then (system\Second % 3) Else 0
Make sure global connections updates at least twice as fast as the number in that expression. An update rate of 1 second is good in this example.

When the terminal starts up, it will setup the PVid tag (ex. 1). After each screen change the memory tag DisplayNum gets updated. Every 3 seconds a macro will run and send the last known display number to the correct controller tag.

Careful with the settings, as this is prone to timing problems and multiple limitations. You should create a display that is never used, just for text documentation of how you set all that up. Otherwise no one will figure out what is happening later on when they have to maintain the project.

Or, just create two different MER files.
 
Last edited:
Or, just create two different MER files.

-Can i do it with 1 .mer file? yes
-Is it overly complicated and hard to setup or troubleshoot? yes

This reminds me of the simple rule: KISS. Keep it Simple Stupid. You dont need to re-invent the wheel
Some people like making it overly complicated like its job security or something. I can tell you i have learned alot of how NOT to do something by trying to figure out what the heck someone was thinking when they did something really wierd and complicated, and i need to troubleshoot a problem.
 

Similar Topics

Hello, In my controller, I have a tag called TestNum of INT type. The tag is an array that contains 16 bits, TestNum.0 ,TesNum.1 ...etc I can...
Replies
9
Views
3,332
Is it possible to downgrade the version of development in a backup "APA" file? I am using v11 and a client only have v10 and was hoping to make...
Replies
3
Views
3,381
I am currently using a FactoryTalk program to log data and display a trend on one of my machines. I have it all working, the question i have is if...
Replies
10
Views
5,626
Scenario: I just started PLC programming and started a traffic light project and currently using RSLogix 5000 and FactoryTalk View Studio. The...
Replies
21
Views
15,242
I have a license for FactoryTalk View Studio ME. I noticed when I started up Studio, it shows the licenses found on my PC and says that the...
Replies
5
Views
5,969
Back
Top Bottom