Yes Julian, am just using similar code mentioned by udeho. But am always getting 0 value eventhough I updated holding registery value.
On Monday, June 8, 2020, Julian Feinauer <j.feina...@pragmaticminds.de> wrote: > In fact, when talking about modbus driver the question is rather if there > is any code that was not changed between 0.6.0 and 0.7.0 : ) > > But we should have a closer look here. > > Julian > > Am 07.06.20, 18:55 schrieb "venki hadoop" <hadoopons...@gmail.com>: > > Hi, after updating to 0.7 version am always getting value 0. Did you > made > any code modifications after version update? > > On Tuesday, June 2, 2020, udeho <ud...@student.kit.edu> wrote: > > > Hi, > > > > This was a problem with my Maven configuration. I'm sorry, I'm very > > inexperienced with Maven. > > Anyway, reading values from the holding register now works fine with > > drivers of version 0.7.0. > > > > Best > > Tim > > > > -----Original Message----- > > From: Christofer Dutz <christofer.d...@c-ware.de> > > Sent: Montag, 1. Juni 2020 23:27 > > To: udeho <ud...@student.kit.edu>; dev@plc4x.apache.org > > Subject: Re: [Modbus] Querying Values from Holding Register > > > > Hi, > > > > Are you perhaps mixing different versions? The api and driver > versions > > should match. > > > > Chris > > > > ________________________________ > > Von: udeho <ud...@student.kit.edu> > > Gesendet: Montag, 1. Juni 2020 14:58 > > An: dev@plc4x.apache.org <dev@plc4x.apache.org> > > Betreff: RE: [Modbus] Querying Values from Holding Register > > > > Hi, > > > > I've just tried to do the same as below with the newly released 0.7.0 > > version. > > Unfortunately, I get the following errors: > > > > [main] INFO org.apache.plc4x.java.PlcDriverManager - Instantiating > new > > PLC Driver Manager with class loader jdk.internal.loader. > > ClassLoaders$AppClassLoader@129a8472 > > [main] INFO org.apache.plc4x.java.PlcDriverManager - Registering > > available drivers... > > Exception in thread "main" java.lang.NoClassDefFoundError: > > org/apache/plc4x/java/spi/connection/GeneratedDriverBase > > at java.base/java.lang.ClassLoader.defineClass1(Native > Method) > > at java.base/java.lang.ClassLoader.defineClass(Unknown > Source) > > at java.base/java.security.SecureClassLoader.defineClass( > Unknown > > Source) > > at java.base/jdk.internal.loader.BuiltinClassLoader. > defineClass(Unknown > > Source) > > at java.base/jdk.internal.loader.BuiltinClassLoader. > > findClassOnClassPathOrNull(Unknown Source) > > at java.base/jdk.internal.loader.BuiltinClassLoader. > loadClassOrNull(Unknown > > Source) > > at java.base/jdk.internal.loader. > BuiltinClassLoader.loadClass(Unknown > > Source) > > at java.base/jdk.internal.loader. > ClassLoaders$AppClassLoader.loadClass(Unknown > > Source) > > at java.base/java.lang.ClassLoader.loadClass(Unknown Source) > > at java.base/java.lang.Class.forName0(Native Method) > > at java.base/java.lang.Class.forName(Unknown Source) > > at java.base/java.util.ServiceLoader$ > LazyClassPathLookupIterator.nextProviderClass(Unknown > > Source) > > at java.base/java.util.ServiceLoader$ > LazyClassPathLookupIterator.hasNextService(Unknown > > Source) > > at java.base/java.util.ServiceLoader$ > LazyClassPathLookupIterator.hasNext(Unknown > > Source) > > at java.base/java.util.ServiceLoader$2.hasNext(Unknown > Source) > > at java.base/java.util.ServiceLoader$3.hasNext(Unknown > Source) > > at org.apache.plc4x.java.PlcDriverManager.<init>( > > PlcDriverManager.java:53) > > at org.apache.plc4x.java.PlcDriverManager.<init>( > > PlcDriverManager.java:44) > > at modbus.playground.main(playground.java:108) > > Caused by: java.lang.ClassNotFoundException: > org.apache.plc4x.java.spi. > > connection.GeneratedDriverBase > > at java.base/jdk.internal.loader. > BuiltinClassLoader.loadClass(Unknown > > Source) > > at java.base/jdk.internal.loader. > ClassLoaders$AppClassLoader.loadClass(Unknown > > Source) > > at java.base/java.lang.ClassLoader.loadClass(Unknown Source) > > ... 19 more > > > > I added the new version as a dependency in Maven, but in the > pom.xml is > > also stated "Missing artifact org.apache.plc4x:plc4j-driver- > > modbus:jar:0.7.0". > > Used dependency in maven: > > <dependency> > > <groupId>org.apache.plc4x</groupId> > > <artifactId>plc4j-driver-modbus</artifactId> > > <version>0.7.0</version> > > </dependency> > > > > Best > > Tim > > > > -----Original Message----- > > From: Christofer Dutz <christofer.d...@c-ware.de> > > Sent: Mittwoch, 20. Mai 2020 11:28 > > To: dev@plc4x.apache.org > > Subject: Re: [Modbus] Querying Values from Holding Register > > > > Hi Tim, > > > > I guess you are using one of the "old generation" drivers (As you > say it's > > working and the address seems to imply that). > > Perhaps you should either try the version 0.8.0-SNAPSHOT or wait for > 2 > > more days till we release the 0.7.0 version. > > > > In the 0.7.0 version we have completely deleted all existing drivers > and > > replaced them by new ones. > > While at it I took the liberty of making the Modbus a little more > robust. > > > > So it would be great if you could give us feedback if your problem > goes > > away magically when updating to these driver versions. > > > > Chris > > > > > > > > Am 20.05.20, 10:24 schrieb "udeho" <ud...@student.kit.edu>: > > > > Hi all, > > > > I have tried to query values from the holding register of a > simulated > > modbus device and process them as integer using the following code: > > // read integer / holding register > > PlcDriverManager driverManager = new > > PlcDriverManager(); > > String conString = "modbus:tcp://localhost"; > > PlcConnection plcCon = > driverManager.getConnection( > > conString); > > PlcReadRequest.Builder builder = > > plcCon.readRequestBuilder(); > > builder.addItem("value", > "readholdingregisters:1"); > > PlcReadRequest readRequest = builder.build(); > > PlcReadResponse resp = > readRequest.execute().get(); > > > > This runs well, but when I try to handle the result as integer > (using > > resp.getInteger("value")) I always get null as result no matter > what's in > > the register. > > For Boolean values in the coil this works without any problem > (using > > getBoolean() of course). > > Another approach I tried is using the getAllByteArrays("value"); > > command, but I haven't found a way to get the returned collection of > byte > > arrays into integers. > > > > Can you give me an indication of what my problem may be or what > I'm > > doing wrong? > > > > Thank you very much in advance! > > > > Best > > Tim > > > > > >