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

Hello, I was looking to store some values from our FactoryTalk Application using Datalog to a MariaDB. I see there is quite a bit of documentation...
Replies
1
Views
37
Hi Folks, who know why after start FactoryTalk activation manager V4.03, click "Get New Activations", it displays Is not I appreciate with any...
Replies
0
Views
45
I have a little bit of experience with Allen-Bradley. I have a Micrologix 1500 (RSLogix 500) and a PanelView Plus 7 (FactoryTalk View Studio ME)...
Replies
2
Views
79
I need to use a TreeView in my FactoryTalk SE project and i found it under "ActiveX Object" > "Microsoft TreeView Control 6.0 (SP4)". Everything...
Replies
0
Views
29
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
166
Back
Top Bottom