[BUG-13830] CompactLogix 1769-L36ERM/A Fails to browse

Ignition 7.9.10
Logix 30.11
We cannot get the PLC to be browsed by the OPC Server.
Have checked and verified and rechecked all access permissions on the tags, verified all connection settings and proper driver selection for the Ignition server.
Server shows connected but the only tags available are the diagnostic tags.

Capture

Browse failed: com.digitalpetri.enip.cip.CipResponseException: status=0x04 [path segment error] , additional=[0x0000]


java.util.concurrent.CompletionException: com.digitalpetri.enip.cip.CipResponseException: status=0x04 [path segment error] , additional=[0x0000]



at java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)



at java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)



at java.util.concurrent.CompletableFuture.biRelay(Unknown Source)



at java.util.concurrent.CompletableFuture$BiRelay.tryFire(Unknown Source)



at java.util.concurrent.CompletableFuture$CoCompletion.tryFire(Unknown Source)



at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)



at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source)



at com.inductiveautomation.xopc.drivers.logix.browse.LogixBrowse.lambda$null$12(LogixBrowse.java:191)



at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)



at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)



at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)



at java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source)



at com.digitalpetri.enip.cip.CipClient.lambda$invokeUnconnected$2(CipClient.java:128)



at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)



at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)



at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)



at java.util.concurrent.CompletableFuture.complete(Unknown Source)



at com.digitalpetri.enip.cip.CipClient.lambda$sendUnconnectedData$8(CipClient.java:201)



at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)



at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)



at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)



at java.util.concurrent.CompletableFuture.complete(Unknown Source)



at com.digitalpetri.enip.EtherNetIpClient$PendingRequest.lambda$new$0(EtherNetIpClient.java:309)



at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)



at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)



at java.util.concurrent.CompletableFuture.postComplete(Unknown Source)



at java.util.concurrent.CompletableFuture.complete(Unknown Source)



at com.digitalpetri.enip.EtherNetIpClient.onChannelRead(EtherNetIpClient.java:188)



at com.digitalpetri.enip.EtherNetIpClient.access$500(EtherNetIpClient.java:34)



at com.digitalpetri.enip.EtherNetIpClient$EtherNetIpClientHandler.lambda$channelRead0$0(EtherNetIpClient.java:245)



at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(Unknown Source)



at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)



at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)



at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)



at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)



Caused by: com.digitalpetri.enip.cip.CipResponseException: status=0x04 [path segment error] , additional=[0x0000]



at com.digitalpetri.enip.logix.services.GetInstanceAttributeListService.decodeResponse(GetInstanceAttributeListService.java:79)



at com.digitalpetri.enip.logix.services.GetInstanceAttributeListService.decodeResponse(GetInstanceAttributeListService.java:21)



at com.digitalpetri.enip.cip.services.UnconnectedSendService.decodeResponse(UnconnectedSendService.java:122)



at com.digitalpetri.enip.cip.CipClient.lambda$invokeUnconnected$2(CipClient.java:112)



... 22 common frames omitted

I think I saw this with another customer too.

The cause was an “orphaned” datatype in the controller. During the browse we get a list of templates, and then later when we read the definitions the controller is telling us this template doesn’t exist or something (even though it gave it to us in the list).

I’ve got an enhancement ticket to handle this case but in the meantime I think if you re-download the program it starts working…

Kevin,
Is there any other way to get this to browse?
This system is a full time production PLC and can’t be taken down at the moment.
Kepware, Wonderware, and Rockwell Panel View all can see and browse the tags.
It’s only the newly installed Ignition system that cannot.

No, I’m not aware of anything.

Let’s confirm that this is the same issue I’m talking about though.

Turn loggers for LogixBrowse, LogixBrowseState, LogixBrowseStateManager to TRACE and then edit/save the device connection and send us the logs.

Sent!
Thanks!

This is a different but similar issue. The driver is being told there is a program called “test” and we get this error:
CipResponseException: status=0x04 [path segment error] , additional=[0x0000]
when trying to enumerate the symbols in that program.

Do you know if that test program currently exists and if it’s being used for anything?

Just went online with the PLC and there is not a program called test on there.

I updated the ticket with this scenario.

Sorry, I don’t have any kind of workaround for you. I’ve only seen this twice now, but both have been v30+ firmware, so it seems like there’s some new bug in the controllers that has exposed a bug in the driver’s browse logic.

Did a complete wipe and reload of PLC program over the weekend.
No luck, still fails to browse but now it is on different programs in the PLC.
It shows failing on program Applicator and program Debug with the same errors as above.

@MMaynard would you like to test a beta build of the Logix driver?

Yes of course!

Did this get resolved?

I have a 1769-L19ER with a similar issue using both Logix V33 and V35. Yet both a 2080-LC50 and 1756-L85E have no issues.

The OPC Quick Client shows the [Diagnostics] but not the Controller:Global tags.

com.digitalpetri.enip.cip.CipResponseException: status=0x01 [connection failure] , additional=[0x0312]
at com.digitalpetri.enip.cip.services.GetAttributeListService.decodeResponse(GetAttributeListService.java:45)
at com.digitalpetri.enip.cip.services.GetAttributeListService.decodeResponse(GetAttributeListService.java:12)
at com.digitalpetri.enip.cip.services.UnconnectedSendService.decodeResponse(UnconnectedSendService.java:122)
at com.digitalpetri.enip.cip.CipClient.lambda$invoke$2(CipClient.java:124)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at com.digitalpetri.enip.cip.CipClient.lambda$sendUnconnectedData$8(CipClient.java:222)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at com.digitalpetri.enip.EtherNetIpClient$PendingRequest.lambda$new$0(EtherNetIpClient.java:412)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at com.digitalpetri.enip.EtherNetIpClient.onChannelRead(EtherNetIpClient.java:220)
at com.digitalpetri.enip.EtherNetIpClient.access$900(EtherNetIpClient.java:50)
at com.digitalpetri.enip.EtherNetIpClient$EtherNetIpClientHandler.lambda$channelRead0$0(EtherNetIpClient.java:346)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)

This isn't the same error as OP.

You probably have the wrong connection path, or no connection path specified but the CPU is not in slot 0 of whatever backplane you've connected to.

Or you're just not connected to the device you think you are.

Some model/firmware combinations require no connection path and will barf if a slot zero route segment is included. Might be one of those.

Found the issue. These are setup on a DLR and port 1 had a bad cable. Switched to port 2 and all is fine. Cable has been replaced.

Thanks for the help!!

1 Like