OPC-UA device disconnected from ignition but no DDEATH from sparkplug B

Hi There,

I am doing some simulation to understand sparkplug b in ignition. For that I have following setup:

  1. a python based OPC-UA server, which have an object called "robot" and the robot have 6 variables, whose values are changing every second. Basically a 6 axis robot simulation.

  2. Ignition gateway is connected to this python based opc-ua server using "opc-ua connections"

  3. I have mqtt transmition module installed in which i have configured a local mqtt broker.
    and have left the sparkplug b setting for group id, edge id and device id blank.

  4. in my designer's tag browser i have 2 layers of folder, folder 1 called "groupID" folder 2nd is "edgenodeID" the inside my edgenodeID folder I add a device called "device-01" which is from device browser and is the same which I have connected(python opc-ua server).

In my mqtt broker, I am now able to see sparkplug B namespace, group id, edge id, device etc. along with NBIRTH, DBIRTH and DDATA.

Now, to simulate that my device is dead, I have forcefully killed the python opc-ua server, assuming it will mimic a device death. But I did not get any DDEATH.
I have tried multiple mqtt transmitter config, even created udt by never received a DDEATH.

While, in my tag browser if i manually delete the "device-01" I am getting a DDEATH.

So my question is: when my connection is closed, then why I am not getting a DDEATH?
Also, what can I do to get a DDEATH, how my setup should look like.

You should be getting a status/quality change, not DDEATH message.

The Transmission module doesn’t know anything about OPC tags or OPC connections. It’s publishing ignition tags as nodes or devices based on the hierarchy they are in. A “device” in this case is just some folder, which isn’t dead until you deleted it.

1 Like