FTV SE - Current Screen Indicator for Button command set to Display

khelza

Member
Join Date
Sep 2015
Location
Ontario
Posts
67
I have multiple buttons that are configured to Run Command for Display (navigation). I don't see an indicator field, and am wondering how I can configure these parameters to treat the "Down Appearance" as FTV ME would treat a State (Value=1) as an indicator.

All I am trying to do is have the button change colour or appear as the Down Appearance if the button is pressed and that page is currently being displayed. (That means the buttons appear on every page, in the same position, and one is a different colour than the rest if its page is being displayed)

First time using SE, so I apologize if there is a simple solution for this. :confused:

I can probably do some work-around with visibilities and images, but it's a lot of buttons, so I'd prefer a more direct route if one exists.

Thanks!
 
Last edited:
I don't believe you can do that on command buttons.

You can achieve it with regular buttons and a lot of VBA code, but is it really worth it? My normal method for handling this when I unfortunately have to work with FTView, is just make my row of quick navigation buttons, copy them to every screen I need them on, and then delete the one on each screen that pertains to that screen.

Once again, something Ignition makes incredibly easy.
 
FTView ME have a lot of limitations. You probably will not be able to achieve what you want.
It does not allow you to write vba scripts as well.
 
hi khelza
we do it also for a navigation bar, but (like rdrast said) it not so easy as in other hmi softwares (almost nothing is easy in FTV)

What you could do is create a internal tag, lets say "currentDisplay". In every display under Display Settings -> Commands -> Startup assign a "&Set currentDisplay XX" where xx is a display number.
Now your variable currentDisplay always has the number of the current display.
On the buttons you can change the status of Animation->color with "Expression" = "currentDisplay", to change the color of the buttons according to the display which is currently open.
 
Last edited:
What you could do is create a internal tag, lets say "currentDisplay". In every display under Display Settings -> Commands -> Startup assign a "&Set currentDisplay XX" where xx is a display number.
Now your variable currentDisplay always has the number of the current display.
On the buttons you can change the status of Animation->color with "Expression" = "currentDisplay", to change the color of the buttons according to the display which is currently open.

This worked, and was pretty simple! Thanks so much (y)
 
I’ve done it this way on other HMIs but found that it don’t work as soon as you have more than one client running. You then see the same HMI tags being updated to a new screen name by the other user. :(
What is the easiest way to get a variable that only exists in the running client? Someone has mentioned using a VB variable.
 
Yes, using VB is your only option here. Tags are server based, but the VBA is client based.


I don't think you'll need to use actual variables though - you should be able to just directly write the property on each button press. Use a navigation bar that is a separate display and always remains docked to the bottom/top/side of your screen. Each button has a "Display[some_screen]" command attached, but also runs a VBA sub to set the colours of all the other tabs to the "off" colour, and to set the colour of just that one tab to the "on" colour.
 
Yes, using VB is your only option here. Tags are server based, but the VBA is client based.


I don't think you'll need to use actual variables though - you should be able to just directly write the property on each button press. Use a navigation bar that is a separate display and always remains docked to the bottom/top/side of your screen. Each button has a "Display[some_screen]" command attached, but also runs a VBA sub to set the colours of all the other tabs to the "off" colour, and to set the colour of just that one tab to the "on" colour.

That will work for most of it but I've got some drop down kind of popups for some of them that I'd also like to change. That all works with the HMI tags but they get set by other clients.
 
Still probably doable. The HMI tags (as mentioned previously) are server-based, so you'd need each client to be monitoring those tags and performing an action on tag change. And probably also at startup, to ensure you catch any changes that were made by Client 2 while Client 1 was offline, etc. Monitoring tags for change using VBA is a bit of a PITA, but definitely doable, I've done it plenty of times. Search this forum and you'll probably find a few threads on it.
 
Not sure I follow. I could see using a Public VBA variable on the header screen and then have the main process screens update it but I can’t get the VBA register to work and don’t know how to monitor the VBA variable to update the buttons or write to the headers VBA variable from one of the main screens on open.

As the tags are server based it seems like you would need to have a set for each login and or get the PC name and know the PCs names to keep them separate from each other.
 
I see your point. With VBA, the variables are local to the Display (even public variables, as far as i know), which is bad. If you use tags, they are global to all stations, which is bad also.
My first thought would use files or the registry to interchange variables between Displays on a Station, but thats ugly.

Is there a nice way to interchange VBA variables in different Displays without going through tags?

Edit: Maybe at the end the best way is to have different client application for every station, so that you have a tag open_display_01 for Station 1, open_display_02 for Station 2, open_display_03 for Station 3, and so on. With find and replace thats done in 10 seconds. And you are not depending on vba. The ugly point is to have to manage a separate application for every station.
I'm having the same problem for a upcomming project, so i'm very interested your solution.
 
Last edited:
I see your point. With VBA, the variables are local to the Display (even public variables, as far as i know), which is bad. If you use tags, they are global to all stations, which is bad also.
My first thought would use files or the registry to interchange variables between Displays on a Station, but thats ugly.

Is there a nice way to interchange VBA variables in different Displays without going through tags?

If you Google there are a few talking about how to get public variables between Excel workbooks and that you need to register them. Seems like that would be something like screens. ???
 
If you Google there are a few talking about how to get public variables between Excel workbooks and that you need to register them. Seems like that would be something like screens. ???

I couldnt get in working, maybe you?

But what i found out that transfer through files is actually easy.
To write a variable to a file
Code:
Dim x As Integer
x = 55

Open "displayNr.txt" For Output As #1
Write #1, x
Close #1

and to read it back
Code:
Dim x As Integer
x = 0

Open "displayNr.txt" For Input As #1
Input #1, x
Close #1

Add the corresponding error handling and i'm confident it could be a solution. But for me i like it better without vba, even if it means to create a separate application for every station.
 
Last edited:
I couldnt get in working, maybe you?

But what i found out that transfer through files is actually easy.
To write a variable to a file...

I have done stuff like that before but then you end up going down a rabbit hole :) and keep adding code to check if the file is there and create it if it is not and if it is open and so on. Would the file be local to any Windows Terminal Server View SE client?

I wonder if you can create an HMI tag with VBA in a runtime client?
 

Similar Topics

Hello everyone, I am currently working on a project that uses a Rockwell L33ER controller and the FTV Studio V13 as Supervisory computer...
Replies
0
Views
84
Hello everyone, I am working in a platform and we installed FTV CLIENT SE V 12 IN ALL THE CLIENTS COMPUTERS, we have 6 clients and only 1 is not...
Replies
0
Views
79
Hi all, I'm having difficulties trying to connect FactoryTalk View SE Local Station (V13.00) to MS SQL Server Express. I state that they are...
Replies
2
Views
109
Hi to all, Does TIA portal support creating reusable pop-up display as FTV has it implemented? Something like on link below. Thanks in advance.
Replies
5
Views
484
Hi all, I have a question about the communication from the FTV and the PLC for different machine I use. Most of these use a SLC5/04 PLC and...
Replies
0
Views
258
Back
Top Bottom