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

Hey everyone and anyone that can lend a helping hand. I have a project that I am being asked to add some animations of Solidworks or "3D" models...
Replies
7
Views
111
Rockwell Tech Support seemed to have hit a wall with this question. Already updated the version to 5.00.13 per their suggestio but am still...
Replies
1
Views
62
I can't seem to get the Panel View Plus 7 standard edition to downgrade to V_11, when I check the AB downloads and compatibility websites for this...
Replies
1
Views
95
Hi, I'm trying to export data from a DataGrid to Excel using VBA, but I'm getting an error "Object doesn't support this property or method". The...
Replies
0
Views
60
Hello, I made a change in alarm setup in factory view studio, where I changed a alarm message text. After that I made a run application and...
Replies
0
Views
73
Back
Top Bottom