FactoryTalk SE

amx701

Member
Join Date
Jul 2018
Location
united states
Posts
5
Hi,

I am migrating a project from FactoryTalk ME to FactoryTalk SE. On this project we use Global Connections: Replace Display Number to update a Tag in the PLC when the operator changed HMI screens. This prevents a few things from happening unless a particular HMI screen is active.

Based on my google searches it sounds like I may need to use VBA to implement something similar in FactoryTalk SE. Is this true or did I just overlook where a similar feature is in SE?

If this is true can you give me an example on how to do this? All the examples I have been able to find require an event (button push) and it doesn't seem like changing the active HMI screen is considered an event that will trigger a VBA script.

Thanks
 
Welcome to the forum!


You will need to use VBA. In SE, events happen at the server level, but the VBA runs at the client level. The server has no idea what display is currently being displayed - you could have 20 clients all displaying different screens, the server just stores the data and hands it out to any client that comes asking.


I'd suggest that the BeforeAnimationStart VBA sub for the relevant display is probably a good place to start. When you first load a screen, it will execute this code before starting animation on the display. However one thing to check would be whether this is affected by the display cache setting. Each display has a setting as to whether it is stored in the local cache once loaded (so it loads faster the next time), or retrieves it from the server each and every time it's used. If it's cached, I'm not sure whether it would run the BeforeAnimationStart sub after the first display. Worth experimenting with.


If it doesn't you could still use that approach, you'd just have to not cache the specific displays relevant to your application. If they're large and complex displays, this might be a pain as the load time for the display will be noticeably long every time. But if they're simple displays, it's probably not an issue. In that case you could just set a PLC tag on BeforeAnimationStart and reset it on BeforeAnimationStop (when the display is closed/replaced).



Another option might be to set a bit in the PLC when you call that display. So instead of using a Go To Display button, just use a regular button that has two commands: set [PLC bit], and Display [relevant display]. Then, all the buttons that navigate away from that display reset the PLC bit before calling the other display.
 
There is another option.

We use the startup command of the displays.
Display settings -> Behavior -> Commands -> Startup

A startup command like "&Set DisplayNr 7" will set your Tag to 7, and if the Tag is a PLC Tag you can read that in the plc.

But take special care if you run multiple SE HMI's at the same time, as one could set this Tag with another display being onother Display (as ASF said).
 

Similar Topics

Hi, I wanted to ask is there a way to have a visibility expression use the IP address of the HMI (Dynics, not PV) to show certain elements? The...
Replies
3
Views
163
Not a PLC question but I need expert help on this. My FactoryTalk stopped communicating with the server its hosted on. I had an error stating...
Replies
0
Views
89
Hello Everyone, I want to install and configure factorytalk Historian v6. I'm new to this. Can you kindly share some knowledge on installing...
Replies
0
Views
60
Hi guys We're in the process of creating a ME runtime to operate on a PC running windows using a InTouch INDT156 touchscreen, and we're having an...
Replies
3
Views
133
This is admittedly a pretty obscure problem, but maybe someone else has run into it, or at least something similar. For reasons I won't get into...
Replies
3
Views
99
Back
Top Bottom