OPC UA FX Pubsub Connection Interrupt Behaviour

Hi Community,

Is there a way to know and configure how the pubsub tags’ value responses to a communication interrupt?

Basically, when the communication is interrupted, will the pubsub tags maintain their last valid value or drop to default? Is there a way to configure this behavior?

Thank you for your help :+1:

Hi,

in the current implementation, the subscribed datasets are directly written to the configured target variable (i.e., the process variable) at the beginning of the corresponding task cycle.
However, this only happens, if new data arrived. Otherwise the target variable is not modified.

This behavior cannot be changed at the moment. But the application process may consider it and implement a drop to default functionality based on timestamps or sequence counters.

In future versions, the configuration of a default value will be available.

2 Likes

Hi Oliver,

Thank you for your reply.

Correct me if I’m wrong, the current behavior should be: the tags values should remain at the last value they were written if the new values don’t arrive, am I correct?

The funny game that I’m looking at is a status value received (readergroup) by our B&R PLC drops to 0 for 1s then recovers. The writer PLC’s writing cycle is 1s so I’m suspecting a short interrupt in one cycle.

I can be sure that the status value from the writer itself didn’t change.

If what you’re describing is happening in our PLC, the status value should remain unchanged…

Thank you for your time👍

Hi Weiming,

that is correct, that the old value of the target variable (i.e., the process variable) is not overwritten when no new data arrived.
However, in case the variable is written by the program during the cyclic task execution, the last subscribed data will also not be written to the target variable again. This behavior is currently different from the POWERLINK implementation, where every task cycle the variables are written with the latest (or the default) value.

You could simply test this behavior by disconnecting the second device after the system was running for a while. If you also see a drop to 0, then the variable may be overwritten somewhere in the program code. If it remains at the last valid value, then you see that the subscriber is working correctly.

Thank you, Oliver.

I’m planning to test as you described. :+1: