How Can I Detect that a Server has Failed?

There are several displays that indicate server failure, including the:

You can also use the ICMP Polls feature (see Define the ICMP Monitor Settings for a Server).

However, to make users aware of server failures as soon as possible, we recommend that you map the server statuses to internal digital points. This means that if a server fails, an alarm is generated and added to the Alarms List and Alarm Banner (the alarm is associated with the point that contains the mapped data).

We recommend that you set up the following server failure detection configuration:

  1. Create an internal digital point.
  2. Create a Function Block Diagram as follows:
  3. Where:
    • Server1SYNC is a new direct input variable that has the following configuration:
      • Name—Server1SYNC. This is just the name used to identify the tag in the program and can be any name you choose.
      • Tag Type—Read/Write (%M)
      • Tag—Browse to the following OPC tag for the standby server:#SBYLNK.StbyA.Sync
      • Type—STRING
    • The Type has to match the type of value being read. In this case, the Type has to be STRING as the Sync status value is a string. You can view the type of the status values by displaying the OPC Bar, browsing to the required tag, right-clicking on it and selecting its Display Value option. This displays information about the tag, including its Data Type.

    • 'Full' is a constant
    • EQ is an Equality comparison function
    • INTERNALPOINTSERVER1STATUS is a new direct output variable that has the following configuration:
      • Name—INTERNALPOINTSERVER1STATUS. This is just the name used to identify the tag in the program and can be any name you choose.
      • Tag Type—Write Only (%Q)
      • Tag—Browse to the internal digital point you created earlier in this procedure and select it.
      • Type—BOOL (the output of an equality comparison function has to be Boolean)
  4. Save the Function Block Diagram. With the default settings in place, the program will run every second.
  5. Access the Form for the internal digital point you created earlier in this procedure.
  6. On the Digital Point tab, configure State 0 so that when the point enters State 0, an alarm is raised. State 0 corresponds to the Sync state of the standby server being false i.e. the Standby server is not synchronized and is unavailable, therefore there is no backup server (unless you are using a Triple Standby system, in which case, the other Standby server may still be available).
  7. Configure State 1 so that when the point enters State 1, an event is logged. State 1 corresponds to the Sync state of the Standby server being true i.e. the Standby server is synchronized and is available for use.
  8. Save the point.
  9. If you are working on a Hot-Standby Pair system, you have completed the configuration and do not need to continue with the steps in this procedure. When the Standby server is not synchronized or is unavailable due to a hardware failure or network failure, the internal digital point will raise an alarm. The alarm will be displayed in the Alarm Banner and Alarms List. You can also configure a Mimic to display the alarm information if required.
  10. If you are working on a Triple Standby system, proceed with step 8.
  11. Create two additional internal digital points. One of these points will represent the state of the second standby server and the other will represent the state of both standby servers, so name them accordingly.
  12. Edit the Function Block Diagram you created earlier in this procedure so that it contains the following:
  13. Where:
    • Server2SYNC—Is a new direct input variable with the following settings:
      • Name—Server2SYNC. This is just the name used to identify the tag in the program and can be any name you choose.
      • Tag Type—Read/Write (%M)
      • Tag—Browse to the following OPC tag for the second standby server: #SBYLNK.StbyB.Sync
      • Type—STRING
    • 'Full' is a constant
    • EQ is an Equality comparison function
    • INTERNALPOINTSERVER2STATUS is a new direct output variable that has the following configuration:
      • Name—INTERNALPOINTSERVER2STATUS. This is just the name used to identify the tag in the program and can be any name you choose.
      • Tag Type—Write Only (%Q)
      • Tag—Browse to the internal digital point you created earlier in this procedure (the point that represents the status of the second Standby server) and select it.
      • Type—BOOL (the output of an equality comparison function is Boolean)
    • AND is a Bitwise/Boolean function that returns a True value only if both inputs are True. As the AND function’s inputs are the SYNC states of the two servers, it means that if both of the standby servers are not synchronized and are unavailable, the AND function will read two False values and so will write a False value to the INTERNALPOINTBOTHSTANDBYS output variable.
    • INTERNALPOINTBOTHSTANDBYS is a new direct output variable that has the following configuration:
      • Name—INTERNALPOINTBOTHSTANDBYS. This is just the name used to identify the tag in the program and can be any name you choose.
      • Tag Type—Write Only (%Q)
      • Tag—Browse to the internal digital point you created earlier in this procedure (the point that represents the status of both Standby servers) and select it.
      • Type—BOOL (the output of an equality comparison function is Boolean)
  14. Save the Function Block Diagram. The Function Block Diagram is now configured to write values to the internal digital points if the servers are not synchronized or are unavailable.
  15. Display the Form for the point that represents the server status of the second Standby server.
  16. On the Digital Point tab, configure State 0 so that when the point enters State 0, an alarm is raised. State 0 corresponds to the Sync state of the second standby server being false i.e. the Standby server is not synchronized and is unavailable, therefore there is no backup server.
  17. Configure State 1 so that when the point enters State 1, an event is logged. State 1 corresponds to the Sync state of the Standby server being true i.e. the Standby server is synchronized and is available for use.
  18. Save the point.
  19. Display the Form for the point that represents the server status of the both Standby servers.
  20. On the Digital Point tab, configure State 0 so that when the point enters State 0, an alarm is raised. State 0 corresponds to a False value (which is written to the point by the Function Block Diagram if both of the server’s are not synchronized or unavailable).
  21. Configure State 1 so that when the point enters State 1, an event is logged. State 1 corresponds to the to a True value (which is written to the point by the Function Block Diagram if both of the server’s are synchronized and available).
  22. Save the point.

The Function Block Diagram will execute every second. If a Standby server is unsynchronized or unavailable, an alarm (associated with one of the digital points) will be raised, alerting users to the situation. This alarm will be shown in the Alarms List and Alarm Banner and you can also configure Mimics to show the alarm information.

Further Information

Function Block Diagrams in the Geo SCADA Expert Guide to Logic.

Designing a Mimic in the Geo SCADA Expert Guide to Mimics.

Create and Configure a Point in the Geo SCADA Expert Guide to Core Point Configuration.


Disclaimer

Geo SCADA Expert 2022