Hi there,
In my Ignition project, all my OPC tags use kepware to grab their values from the PLC. I am testing out a new PLC that has its own OPC server. The new OPCUA server itself works. I can create tags and access any data points I want to. However, when I switch my kepware tags over to my new OPC server, they give the “Bad_NotConnected” error.
What I’ve tried:
I have tried re-establishing the endpoint for the OPC server. When I do this, all the tags are “uncertain_initialValue”. From this point, I restart the OPC-UA module in the gateway. After a restart, all tags go back to “Bad_NotConnected”.
There are about 400 tags that I changed. To change the OPC server for all the tags, I used system.tag.configure. To change the OPC item path, I used the find/replace tool.
Considering I can create a new tag and access my PLC data just fine, I think this is an Ignition issue and not an issue with my PLC.
Any help is appreciated.
While connected to the new PLC, use the OPC Browser to find one of the tags that is trouble, and drag it over to the the Ignition tags browser alongside the one that you did find/replace on.
Does the one you dragged work? If so, compare its OPC item path to the one you converted.
If it also doesn’t work, then it almost certainly is the PLC’s OPC server, or some nuance about its behavior. Please share the make and model and version so those with relevant experience can help you.
“Does the one you dragged work? If so, compare its OPC item path to the one you converted.”
Yes, the new tag I create has the exact same OPC item path and works, which is why I don’t believe it is the new PLC’s OPC server. Just in case though, it is a Straton62541 OPC UA Server and I am using a CTI Janus PLC.
Can you show us side by side screens of the tag configuration for a tag that works and a tag that doesn’t? Make sure the Server and OPC Item Path are visible.


CAR_DUMPER_HMI_ALARM_RESET is the tag I switched over from kepware. Currently has “Bad_NotConnected”
CAR_DUMPER_HMI_ALARM_RESET_2 is a tag I just created and manually assigned the OPC server. Currently works.
I’m going to bet that it doesn’t really support a one millisecond pace, and that Kepware was hiding that reality from you. Or Kepware was using an alternate protocol that could actually run that fast. When you dragged and dropped, the tag group would have been “default”, likely much slower.
Yea I am pretty certain it can’t actually do one ms, but I do not have many tags assigned to this group. I changed the group on a few of the bad tags and they still do not want to work.
Okay, it might be interesting to get rid of the tags that work and leave the ones that don’t, then set these loggers to TRACE and then edit/save the OPC UA connection to that server:
- DataValueConsumer
- OpcUaSubscriptionModel
- OpcUaSubscriptionSynchronizer
https://docs.inductiveautomation.com/display/DOC81/Diagnostics+-+Logs#DiagnosticsLogs-ChangingLoggingLevels
Ok I disabled all the working tags. I am trying to download the logs but the file is empty. While I try and figure that out here is a screenshot of the logs. I sorted the logs by the connection name.
It seems my problem lies within the “Failed to create item” error code the logs give me.
Failed to create item ‘NodeId{ns=1, id=C/C622}’: StatusCode{name=Bad_NodeIdUnknown, value=0x80340000, quality=bad}
Found another forum post that tried putting all the tags into a polled scan class. Just tried it myself and does not work. On the PLC OPC Server I have maxed out subscriptions, monitored items, etc… Do you have any ideas?
It does seem like the obvious problem, it’s the server telling you the Node you’re specifying with the OPC Item Path doesn’t exist, but it doesn’t really explain why some work and some don’t and why you can drag and drop from the OPC Browser and those seem to work.
Full logs after edit/saving the connection will show if some are succeeding and some aren’t, at least.
I changed all the tags back to kepware and then only changed 10 tags back over to the new OPCUA server. Works just fine. Either I am configuring things wrong, or the OPC server itself is not able to handle what I want it to do.
Edit: Nevermind, I spoke too soon. No tags work at all. Back to the drawing board.