In some implementation of an OPC UA A & C Server, the Alarms and Condition are provided by an underlying system. The expected behaviour of an A & C Server when it is encountering communication problems with the underlying system is:

  • If communication fails to the underlying system,
  • For any Event field related information that is exposed in the address space, the Value/StatusCode obtained when reading the Event fields that are associated with the communication failure shall have a value of NULL and a StatusCode of Bad_CommunicationError.
  • For Subscriptions that contain Conditions for which the failure applies, the effected Conditions generate an Event, if the Retain field is set to True. These Events shall have their Event fields that are associated with the communication failure contain a StatusCode of Bad_CommunicationError for the value.
  • A Condition of the SystemOffNormalAlarmType shall be used to report the communication failure to Alarm Clients. The NormalState field shall contain the NodeId of the Variable that indicates the status of the underlying system.
  • For start-up of an A & C Server that is obtaining A & C information from an already running underlying system:
  • If a value is unavailable for an Event field that is being reported due to a start-up of the UA Server (i.e. the information is just not available for the Event) the Event field shall contain a StatusCode set to Bad_WaitingForInitialData for the value.
  • If the Time field is normally provided by the underlying system and is unavailable, the Time shall be reported as a StatusCode with a value of Bad_WaitingForInitialData.