WOLFRAM SYSTEM MODELER
FallbackDemonstrates how to switch to a fallback value after a period of Uncertain or Bad status severity |
![]() |
SystemModel["OPCUA.Examples.Fallback"]
This example demonstrates how to switch to a fallback value after a period of Uncertain or Bad status severity.
This example requires an OPC UA example server running on localhost
.
Read about how to start the example server here.
For all types that can be read by the library, there is a corresponding SetIfGood
component (see, for example, the one for a scalar Real
) that can be used to propagate the value and its corresponding timestamp, only in the case when severity is UAStatusSeverity.Good
.
In this example, that is used in combination with a ElapsedTimeSince
to measure the age of the last known value with status severity UAStatusSeverity.Good
.
When that age exceeds the specified threshold of 2 s
, the model switches to a fallback value.
The purpose of the startStatusSimulation
is to start a simulation on the example server that changes the status and value of certain nodes.
![]() |
startStatusSimulation |
Type: StartStatusSimulation Description: Block that starts a status simulation on the ExampleServer |
---|---|---|
![]() |
client |
Type: Client Description: Client for connecting to an OPC UA server |
![]() |
readClock |
Type: PeriodicExactClock Description: Generate a periodic clock signal with a period defined by an Integer number with resolution |
![]() |
readReal |
Type: Read Description: Adds reading of a Real scalar node to a ReadNodeList |
![]() |
setIfGood |
Type: SetIfGood Description: Set the output to the input if severity == Good |
![]() |
elapsedTimeSince |
Type: ElapsedTimeSince Description: Output y is the elapsed time in seconds since the input timestamp u |
![]() |
fallbackValue |
Type: Constant Description: Generate constant signal of type Real |
![]() |
greaterThreshold |
Type: GreaterThreshold Description: Output y is true, if input u is greater than threshold |
![]() |
switch |
Type: Switch Description: Switch between two Real signals |
![]() |
severityEquals |
Type: SeverityEquals Description: Output y is true if input u is equal to severity |