Determine if FactoryTalk HMI is running

Join Date
Aug 2007
Location
Saint Augustine, FL
Posts
178
I have a requirement to determine if the HMI is running and toggle an output bit if it is.

How in the world can I do this?

(to clarify:

Local:5:O.Data.1 is TRUE when the HMI is operational, and false when the HMI is at the application menu or off the network)
 
If you can't find that feature built in, I'd set up a "heartbeat" between the PC and PLC.

Periodically, FactoryTalk sets a bit. The PLC resets that bit along with a timer. If that timer ever gets to a certain point, the PLC sets a flag, signaling that FactoryTalk is down. If you have an alerting capability external to FactoryTalk, you could even send a text message/page/phone call, etc. If you're really "bit-tight", you could use a single register for everything.

I'm not sure about the "application menu" detection. Presumably this will all occur in script, and your code won't be running during that time.
 
Last edited:
Yeah, thats what I arrived at, but I guess that'd require learning macros in FactoryTalk, which i wasn't looking forward to do.

A PLC timer set to 60 seconds, and an HMI macro that resets the timer every 10 seconds ought to do it.
 
Yep - you had it right...it's hard for software to tell you when it's not working ;-)

10/60 seconds sounds reasonable. I can't imagine a script that sets one PLC value as being difficult to write - then having it run every 10 seconds.
 
You could try setting an integer tag in your PLC to the Second: value in Global Connections. If the value doesn't change in your PLC in X seconds then you have lost comms. This makes it so you don't have to add you PVP in the Logix IO tree.
 
That's what I do in FTView ME/PV+; use the Global Connections to write the terminal's Seconds value to a tag/register in the controller.

In FactoryTalk View SE, I use the Derived Tags feature. It's very simple; I define a tag in the controller, and the expression is "system\Second".

If the value stays the same for more than 5 seconds in my PLC logic, I declare an HMI failure.

I did this recently in a three-RSView32 system with redundant everything and it worked perfectly to scram the process when the control room went dark.
 
Last edited:
.
.
.
In FactoryTalk View SE, I use the Derived Tags feature. It's very simple; I define a tag in the controller, and the expression is "system\Seconds".

I don't understand.

In Global Connections in FT, there's a "Remote Seconds" which I assume is where it'll push it's Seconds to the remote PLC? So I supply a PLC tag there? It didn't work.

Would you mind elaborating a bit on your method?
 
In FTView ME's Global Connections editor, the "Seconds" value is written from the PV+ terminal to the assigned tag. This is the one you want.

You'll also want to set the Date and Time Output Interval to something more appropriate to your application than 60 seconds. Try 5.

The "Remote Seconds" tag is read from the controller and applied to the PV+ terminal clock. The "Maximum Update Rate" that is 1 second it the rate at which the "Remote xxxx" tags are read from the controller.

Global Connections don't run during development or during a single display test. You must do a Test Runtime or actually load the application onto a terminal to have that function start and run.
 
Ah, I misunderstood the direction of "remote seconds".

"Seconds", however, just gives me a "-1" on the PLC. The (annoying) information log popup on the HMI brags that it's setting seconds, and when i set it to something else in the HMI, it gets reset back to -1.

What Data Type should it be? I tried INT and DINT.

--
edit: rebooting everything fixed it. I'm using a SINT
 
Last edited:

Similar Topics

Hello, i am a beginner with a Siemens Logo 8 PLC. I would determine the direction of an object if it passes a whole cycle of 2 input sensors. See...
Replies
2
Views
188
Hi all, Just looking through the CIP_AXIS_DRIVE data type in a Logix controller to look for something that can tell me whether the current...
Replies
2
Views
1,070
I'm currently working on an MES interface PLC which passes around a whole bunch of strings. A lot of these strings are really just to allow for an...
Replies
0
Views
1,118
I don't use AB much these days, and any installs I've done in years past have been setup by myself from scratch, so I've always known what...
Replies
8
Views
2,083
Hello: I wonder if there is a way to find the CPU load of a Logix processor, and if it is not possible to determine this in an absolute way, I...
Replies
6
Views
1,999
Back
Top Bottom