Is there a way sugest by Inductive Autmation to setup a heartbeat between Ignition and a PLC?


There are a couple of ways to do this. Do you want the heartbeat to be generated by the PLC or by Ignition?

Here’s a topic from back in the FSQL days, but still applicable.

I use a DB tag that looks at the time of last change of a PLC tag that is always changing. Here is the expression on the db tag.

try(if(dateDiff({[~]PLC/InternalTimerReg.LastChange},now(), “minute”) < 2, 0, 1), 2)

Basically the expression looks at the last time the tag changed and if it’s less than 2 minutes the tag value is 0. If its greater than 2 minutes then it sets the tag to 1. I added the try just in case there is an error with the if or datediff funcitons.

Thanks! This was very helpful for creating a MQTT comm fail alarm.
Had to create two tags, since I’m using UDTs.
Note that {GroupID} is a UDT parameter and {RootInstanceName} is defined automatically with any UDT.
Tag#1: Derived integer tag which just monitors system clock minute; here is the source tag path I used:
[MQTT Engine]Edge Nodes/{GroupID}/{RootInstanceName}/Tags/Clock_Minute

Tag#2: Expression boolean tag to trigger an alarm, here is the expression:
( Note: ‘Unit_Comm_Status’ is Tag#1 )