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.
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
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.
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?
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.
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)