Support Forums
Loss of communication alarm

Hello, the PLC my VTSCada system talks to sends out a digital status heartbeat (boolean) alternating true/false with a period of 20 seconds.

I would like to configure VTScada to monitor this signal so that the user is notified when the PLC goes down or communications is lost.

I've read through the alarm configuration section of the manual and devised this scheme involving two alarm tags:

One alarm will look for heartbeat set to false with an on delay of one minute.
The second alarm looks for heartbeat set to true with an on delay of one minute.

Either alarm will flash the same "loss of comms" warning.

Or maybe I'll make a third alarm that triggers on either of these and that drives the warning.

Seem reasonable? Or is there a better way to do this?

thank you.

Hello, the PLC my VTSCada system talks to sends out a digital status heartbeat (boolean) alternating true/false with a period of 20 seconds. I would like to configure VTScada to monitor this signal so that the user is notified when the PLC goes down or communications is lost. I've read through the alarm configuration section of the manual and devised this scheme involving two alarm tags: One alarm will look for heartbeat set to false with an on delay of one minute. The second alarm looks for heartbeat set to true with an on delay of one minute. Either alarm will flash the same "loss of comms" warning. Or maybe I'll make a third alarm that triggers on either of these and that drives the warning. Seem reasonable? Or is there a better way to do this? thank you.

well, that is an alternating bit... which is what I have. The question revolves around the best way to process it.

well, that is an alternating bit... which is what I have. The question revolves around the best way to process it.

Unfortunately using the error code from the Driver tag often won't catch the case when the PLC is switched to program mode as many devices will still communicate properly with SCADA in this state but return data that no longer changes. In this situation, the driver will report good communication (i.e. no error) but the program won't be running.

To resolve this we create an Alarm tag that uses an expression for its "Triggered By" parameter that monitors the state of the heartbeat from the PLC using an expression something like this:

PickValid(TimeOut([HeartBeatInput], 30) || TimeOut(![HeartBeatInput], 30),1)

Where "HeartBeatInput" is the name of the input tag (Digital Status typically) that has the heartbeat from the PLC. If the value of HeartBeatInput is 0 or 1 for more than 30 seconds, the expression returns a value of 1 that you can then use to trigger the alarm, otherwise it will have a value of 0. Also, if the comms are lost and the driver's HOLD setting is not checked, the expression also returns a value of 1 to trigger the alarm. You can adjust the time settings in the TimeOut() functions as needed to match your actual configuration.

Hope that helps.

Unfortunately using the error code from the Driver tag often won't catch the case when the PLC is switched to program mode as many devices will still communicate properly with SCADA in this state but return data that no longer changes. In this situation, the driver will report good communication (i.e. no error) but the program won't be running. To resolve this we create an Alarm tag that uses an expression for its "Triggered By" parameter that monitors the state of the heartbeat from the PLC using an expression something like this: PickValid(TimeOut([HeartBeatInput], 30) || TimeOut(![HeartBeatInput], 30),1) Where "HeartBeatInput" is the name of the input tag (Digital Status typically) that has the heartbeat from the PLC. If the value of HeartBeatInput is 0 or 1 for more than 30 seconds, the expression returns a value of 1 that you can then use to trigger the alarm, otherwise it will have a value of 0. Also, if the comms are lost and the driver's HOLD setting is not checked, the expression also returns a value of 1 to trigger the alarm. You can adjust the time settings in the TimeOut() functions as needed to match your actual configuration. Hope that helps.

Lawrence MacNeil
Trihedral Engineering Limited

330
4
4
live preview
enter atleast 10 characters
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
With selected deselect posts show selected posts
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft