Hi there,
I'm working on using the PLC4X framework within my research projects involving datalogging from Beckhoff PLC via ADS protocol. I was able to connect with the PLC using the following code, but it fails on the line where the read request is executed: PlcConnection plcConnection = null; String connectionStr = " ads:tcp://127.0.0.1:48898/5.23.164.94.1.1:851/129.254.235.187.1.1:32835"; try { plcConnection = new PlcDriverManager().getConnection(connectionStr); if (this.plcConnection.isConnected()){ if (!this.isAdsReadable() || !this.isAdsWritable() || !this.isAdsSubscribable()) { return false; } this.logger.log("Connected successfully with " + connectionStr); return true; } else { this.logger.log(Level.ERROR, "Could not connect with " + connectionStr); return false; } } catch (PlcConnectionException e) { // TODO Auto-generated catch block this.logger.log(e); return false; } PlcReadRequest.Builder builder =plcConnection.readRequestBuilder(); builder.addItem("BOOL1", "BOOL1:BOOL"); // Boolean variable in GVL (global) list of SPS Project PlcReadRequest readRequest = builder.build(); PlcReadResponse response = null; try { response = readRequest.execute().get(); // CODE FAILS HERE } catch (InterruptedException e) { // TODO Auto-generated catch block this.logger.log(e); } catch (ExecutionException e) { // TODO Auto-generated catch block this.logger.log(e); } Console Output: Connected successfully with ads:tcp://127.0.0.1:48898/5.23.164.94.1.1:851/129.254.235.187.1.1:32835 Exception in thread "main" org.apache.plc4x.java.api.exceptions.PlcRuntimeException: Non error code received Result{AdsReturnCode{hex=0x0710, dec=1808, description='symbol not found', possibleCauses='', solution=''}} at org.apache.plc4x.java.ads.connection.AdsAbstractPlcConnection.lambda$mapFiel ds$3(AdsAbstractPlcConnection.java:184) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentH ashMap.java:1708) at org.apache.plc4x.java.ads.connection.AdsAbstractPlcConnection.mapFields(AdsA bstractPlcConnection.java:163) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java :183) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.ja va:195) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.ja va:177) at java.base/java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.jav a:1242) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:4 84) at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:29 0) at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:7 46) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:408) at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:736) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps. java:159) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEa chOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:2 33) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java: 497) at org.apache.plc4x.java.ads.connection.AdsAbstractPlcConnection.mapFields(AdsA bstractPlcConnection.java:157) at org.apache.plc4x.java.ads.connection.AdsAbstractPlcConnection.read(AdsAbstra ctPlcConnection.java:103) at org.apache.plc4x.java.base.messages.DefaultPlcReadRequest.execute(DefaultPlc ReadRequest.java:44) at net.sytes.botg.ads.MyADSClient.executeReadRequest(MyADSClient.java:108) at net.sytes.botg.ads.UnitTest_MyADSClient.test2(UnitTest_MyADSClient.java:60) at net.sytes.botg.ads.UnitTest_MyADSClient.main(UnitTest_MyADSClient.java:44) Could anybody offer some help? Am I constructing the item for the read request correctly, what if I'm trying to read variables in a subroutine let's say in the Project "1Achser" my PLC Project name is "SPSObject" and I have a PRG block named "MainGUI", in there I have the variable "CurPos [LREAL]", how would I conceive the addItem Method? --> builder.addItem("CurPos", "1Achser.SPSObject.MainGUI.CurPos:LReal")? Anyhelp would be appreciated. And by the way, I like the idea of PLC4X very much and love to contribute, given that I can make it work for my setup :D Best Regards Jonas
smime.p7s
Description: S/MIME cryptographic signature