Hi Etienne,

that error is coming from the S7 optimizer which takes care of splitting up 
large plc4x requests into smaller ones, depending on the PDU size negotiated 
with the PLC.

Could you please do a wireshark dump of the communication and send that to me 
(this list doesn't accept attachments) ... or you upload it to some file 
sharing service and post a link here.

Chris



Am 21.02.20, 15:30 schrieb "Etienne Robinet" <[email protected]>:

    Hi,
    
    after getting these results on reading fom the PLC, I tried writing. After 
some test I managed to send a write request but here's what I am getting as 
error: 
    
    java.util.concurrent.ExecutionException: 
java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 1 out of 
bounds for byte[0]
            at 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) 
~[?:?]
            at 
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) ~[?:?]
            at 
org.apache.plc4x.camel.Plc4XProducer.process(Plc4XProducer.java:68) ~[?:?]
            at 
org.apache.plc4x.camel.Plc4XProducer.process(Plc4XProducer.java:86) ~[?:?]
            at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148) 
~[!/:2.24.2]
            at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
 [!/:2.24.2]
            at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
 [!/:2.24.2]
            at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) 
[!/:2.24.2]
            at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) 
[!/:2.24.2]
            at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
 [!/:2.24.2]
            at 
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:197)
 [!/:2.24.2]
            at 
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:79) 
[!/:2.24.2]
            at java.util.TimerThread.mainLoop(Timer.java:556) [?:?]
            at java.util.TimerThread.run(Timer.java:506) [?:?]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source 
index 1 out of bounds for byte[0]
            at java.lang.System.arraycopy(Native Method) ~[?:?]
            at 
org.apache.plc4x.java.s7.netty.strategies.DefaultS7MessageProcessor.processNonBooleanWriteVarParameter(DefaultS7MessageProcessor.java:309)
 ~[?:?]
            at 
org.apache.plc4x.java.s7.netty.strategies.DefaultS7MessageProcessor.processWriteVarParameter(DefaultS7MessageProcessor.java:226)
 ~[?:?]
            at 
org.apache.plc4x.java.s7.netty.strategies.DefaultS7MessageProcessor.processRequest(DefaultS7MessageProcessor.java:98)
 ~[?:?]
            at 
org.apache.plc4x.java.s7.netty.S7Protocol.write(S7Protocol.java:178) ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:791)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:701)
 ~[?:?]
            at 
io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:112)
 ~[?:?]
            at 
io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext.access$1700(AbstractChannelHandlerContext.java:56)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1102)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1149)
 ~[?:?]
            at 
io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1073)
 ~[?:?]
            at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
 ~[?:?]
            at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:416)
 ~[?:?]
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:515) 
~[?:?]
            at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
 ~[?:?]
            at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[?:?]
            at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 ~[?:?]
            at java.lang.Thread.run(Thread.java:834) ~[?:?]
    
    Any ideas on that?
    Here is the route I built:
    
    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"; 
default-activation="lazy">
        <camelContext id="S7-PLC-Context" 
xmlns="http://camel.apache.org/schema/blueprint"; streamCache="true" >
            <route>
                <from uri="timer://foo?fixedRate=true&amp;period=5000" />
                <setHeader  headerName="fieldName">
                    <constant>default</constant>
                </setHeader>
                <setHeader headerName="fieldQuery">
                    <constant>%DB1:4.0:STRING</constant>
                </setHeader>
                <setBody >
                    <simple>Hello</simple>
                </setBody>
                <log message=" Sending to PLC:  ${body} at 
${date:now:HH:mm:ss}" loggingLevel="INFO" />
                <to uri="plc4x:s7://192.168.178.10/0/1" />
            </route>
        </camelContext>
    </blueprint>
    
    
    Etienne
    On 2020/02/20 07:50:39, Julian Feinauer <[email protected]> 
wrote: 
    > Thank you Etienne, I will try to reproduce the issue and have a look.
    > But dont know when I will find the time as I'm currently travelling : /
    > 
    > Julian
    > 
    > Am 19.02.20, 14:06 schrieb "Etienne Robinet" <[email protected]>:
    > 
    >     Hi,
    >     I started the Jira issue: 
https://issues.apache.org/jira/browse/PLC4X-177 
    >     Using this XML:
    >     
    >     <route>
    >                 <from uri="timer://foo?fixedRate=true&period=1000"/>
    >                 <pollEnrich>
    >                     
<constant>plc4x:s7://192.168.178.10/0/1?address=%MW102:INT</constant>
    >                 </pollEnrich>
    >                 <log message=" Sending ${body}" loggingLevel="INFO" />
    >                 <to uri="mock:test?retainLast=10" />
    >     
    >     
    >     
    >             </route>
    >     
    >      it creates a PollingConsumer and reads every 1s. The problem is 
after every read, I get this warning 
    >     
    >     14:01:12.850 WARN [nioEventLoopGroup-2523-1] An exceptionCaught() 
event was fired, and it reached at the tail of the pipeline. It usually means 
the last handler in the pipeline did not handle the exception.
    >     java.io.IOException: An existing connection was forcibly closed by 
the remote host
    >             at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[?:?]
    >             at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
~[?:?]
    >             at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276) 
~[?:?]
    >             at sun.nio.ch.IOUtil.read(IOUtil.java:233) ~[?:?]
    >             at sun.nio.ch.IOUtil.read(IOUtil.java:223) ~[?:?]
    >             at 
sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358) ~[?:?]
    >             at 
io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247) 
~[!/:4.1.39.Final]
    >             at 
io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140) 
~[!/:4.1.39.Final]
    >             at 
io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
 ~[!/:4.1.39.Final]
    >             at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
 [!/:4.1.39.Final]
    >             at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697) 
[!/:4.1.39.Final]
    >             at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
 [!/:4.1.39.Final]
    >             at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549) 
[!/:4.1.39.Final]
    >             at 
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511) [!/:4.1.39.Final]
    >             at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
 [!/:4.1.39.Final]
    >             at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
[!/:4.1.39.Final]
    >             at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [!/:4.1.39.Final]
    >             at java.lang.Thread.run(Thread.java:834) [?:?]
    >     
    >     Seems like the connection is closed then opened again every time? 
Here you can see that I manage to get the data tho: 
https://i.imgur.com/K6TTwxA.png
    >     
    >     Etienne
    >     On 2020/02/19 12:20:40, Julian Feinauer 
<[email protected]> wrote: 
    >     > Hi Etienne,
    >     > 
    >     > thanks fort he update.
    >     > I think the Camel integration was never really used, so it could be 
a bit unhandy, so to say : )
    >     > Probably you create an Issue in Jira 
https://issues.apache.org/jira/projects/PLC4X/issues where we track all 
activites and can help you with improvements.
    >     > 
    >     > Best
    >     > Julian
    >     > 
    >     > Am 19.02.20, 12:50 schrieb "Etienne Robinet" <[email protected]>:
    >     > 
    >     >     Hi all,
    >     >     quick update, it worked on Camel inside Karaf with Julian's 
code. I managed to read from output, memento and datablock wit hthe correct 
adress input:
    >     >     
    >     >     <from 
uri="plc4x:s7://192.168.178.10/0/1?address=%25DB1:4.0:STRING"/>
    >     >     -"%25" gets encoded as "%" in XML
    >     >     -I fetch in the DB1 at byte 4 starting at his bit 0 and the 
data I want is a STRING.
    >     >     -To read a memento, this also worked: address+%25MW102:INT
    >     >     
    >     >     Now I am going to investigate the polling consumer, as I want 
to fetch the data from the PLC at a polling interval.
    >     >     
    >     >     Etienne
    >     >     On 2020/02/18 16:49:31, Etienne Robinet <[email protected]> 
wrote: 
    >     >     > I managed to get the tool working. By that I mean I got to to 
a read on my PLC, but seems like the connection is crashing afterwards.
    >     >     > 17:46:56.556 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Instantiating new PLC Driver Manager 
with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@78308db1
    >     >     > 17:46:56.563 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering available drivers...
    >     >     > 17:46:56.579 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol s7 
(Siemens S7 (Basic))
    >     >     > 17:46:56.588 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol ab-eth 
(Allen Bradley ETH)
    >     >     > 17:46:56.628 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol ads 
(Beckhoff Twincat ADS)
    >     >     > 17:46:56.638 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol eip 
(EtherNet/IP (TCP))
    >     >     > 17:46:56.655 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol modbus 
(Modbus (TCP / Serial))
    >     >     > 17:46:56.723 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol opcua 
(OPC UA (TCP))
    >     >     > 17:46:56.736 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol test 
(PLC4X Test Protocol)
    >     >     > 17:46:57.059 [main] INFO  
o.a.p.j.s.connection.S7PlcConnection - Setting up S7 Connection with: host-name 
192.168.178.10, rack 0, slot 1, pdu-size 1024, max-amq-caller 8, max-amq-callee 
8
    >     >     > 17:46:58.758 [nioEventLoopGroup-2-1] INFO  
o.a.plc4x.java.s7.netty.S7Protocol - S7Connection established pdu-size 960, 
max-amq-caller 3, max-amq-callee 3
    >     >     > 17:46:58.776 [nioEventLoopGroup-2-1] INFO  
o.a.plc4x.java.s7.netty.S7Protocol - Successfully connected to S7: S7_1500 wit 
PDU 960
    >     >     > 17:46:58.800 [main] INFO  o.a.p.j.e.helloplc4x.HelloPlc4x - 
Synchronous request ...
    >     >     > 17:46:58.836 [main] INFO  o.a.p.j.e.helloplc4x.HelloPlc4x - 
Value[value-0]: true
    >     >     > 17:46:58.836 [main] INFO  o.a.p.j.e.helloplc4x.HelloPlc4x - 
Asynchronous request ...
    >     >     > 17:46:58.838 [nioEventLoopGroup-2-1] INFO  
o.a.p.j.e.helloplc4x.HelloPlc4x - Value[value-0]: true
    >     >     > 17:46:58.844 [nioEventLoopGroup-2-1] WARN  
i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and 
it reached at the tail of the pipeline. It usually means the last handler in 
the pipeline did not handle the exception.
    >     >     > java.io.IOException: An existing connection was forcibly 
closed by the remote host
    >     >     >       at java.base/sun.nio.ch.SocketDispatcher.read0(Native 
Method)
    >     >     >       at 
java.base/sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
    >     >     >       at 
java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276)
    >     >     >       at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:233)
    >     >     >       at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:223)
    >     >     >       at 
java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358)
    >     >     >       at 
io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
    >     >     >       at 
io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1140)
    >     >     >       at 
io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
    >     >     >       at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
    >     >     >       at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
    >     >     >       at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
    >     >     >       at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
    >     >     >       at 
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
    >     >     >       at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
    >     >     >       at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    >     >     >       at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    >     >     >       at java.base/java.lang.Thread.run(Thread.java:834)
    >     >     > Disconnected from the target VM, address: '127.0.0.1:61672', 
transport: 'socket'
    >     >     > 
    >     >     > Process finished with exit code 0
    >     >     > 
    >     >     > This did the trick: I had o also enable PUT/GET on my PLC 
(via TIA Portal).
    >     >     > Etienne
    >     >     > On 2020/02/18 14:08:11, Etienne Robinet <[email protected]> 
wrote: 
    >     >     > > Hi, I tried the HelloPLC4X Tool, but it seems like he gets 
stuck. I'm still not sure about the arguments I am passing, here's the log 
    >     >     > > 
    >     >     > > 15:05:42.838 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Instantiating new PLC Driver Manager 
with class loader jdk.internal.loader.ClassLoaders$AppClassLoader@78308db1
    >     >     > > 15:05:42.874 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering available drivers...
    >     >     > > 15:05:42.892 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol s7 
(Siemens S7 (Basic))
    >     >     > > 15:05:42.899 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol ab-eth 
(Allen Bradley ETH)
    >     >     > > 15:05:42.933 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol ads 
(Beckhoff Twincat ADS)
    >     >     > > 15:05:42.941 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol eip 
(EtherNet/IP (TCP))
    >     >     > > 15:05:42.956 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol modbus 
(Modbus (TCP / Serial))
    >     >     > > 15:05:42.980 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol opcua 
(OPC UA (TCP))
    >     >     > > 15:05:43.018 [main] INFO  
o.apache.plc4x.java.PlcDriverManager - Registering driver for Protocol test 
(PLC4X Test Protocol)
    >     >     > > 15:05:43.553 [main] INFO  
o.a.p.j.s.connection.S7PlcConnection - Setting up S7 Connection with: host-name 
192.168.178.10, rack 0, slot 1, pdu-size 1024, max-amq-caller 8, max-amq-callee 
8
    >     >     > > 15:05:45.281 [nioEventLoopGroup-2-1] INFO  
o.a.plc4x.java.s7.netty.S7Protocol - S7Connection established pdu-size 960, 
max-amq-caller 3, max-amq-callee 3
    >     >     > > 15:05:45.299 [nioEventLoopGroup-2-1] INFO  
o.a.plc4x.java.s7.netty.S7Protocol - Successfully connected to S7: S7_1500 wit 
PDU 960
    >     >     > > 15:05:45.321 [main] INFO  o.a.p.j.e.helloplc4x.HelloPlc4x - 
Synchronous request ... <-----STUCKED
    >     >     > > 
    >     >     > > 
    >     >     > > And here are the arguments I am passing:
    >     >     > > --connection-string s7://192.168.178.10/0/1 
--field-addresses %DB2:1.0:INT[1]
    >     >     > > 
    >     >     > > I also subscribed to the list ;-)
    >     >     > > 
    >     >     > > On 2020/02/18 13:28:24, Julian Feinauer 
<[email protected]> wrote: 
    >     >     > > > Hi Etienne,
    >     >     > > > 
    >     >     > > > first, you should try to just access it with the 
HelloPlc4X Tool, just to check that everything works.
    >     >     > > > And Second, please subscribe to the mailing list, 
otherwise all your mails have to go through moderation : )
    >     >     > > > 
    >     >     > > > Julian
    >     >     > > > 
    >     >     > > > Am 18.02.20, 14:22 schrieb "Etienne Robinet" 
<[email protected]>:
    >     >     > > > 
    >     >     > > >     Hi Julian, thanks for the fast reply!
    >     >     > > >     
    >     >     > > >     The route seems to be started, but I try to put the 
body in log (to check) but with no sucess. Here is what I get with your code
    >     >     > > >     
    >     >     > > >     https://i.imgur.com/biB9ZpW.png
    >     >     > > >     
    >     >     > > >     After checking the code a bit, I tried to adapt my 
route. I am trying to access a DB (number 2) on my PLC which has a 
String(Hello) and an Int(5). I then try to show the body of the component on 
the log to verify. Maybe my syntax of uri is again not correct?
    >     >     > > >     
    >     >     > > >     <from 
uri="plc4x:s7://192.168.178.10/0/1?address=%25DB2:2.0:STRING[1]&dataType=java.lang.String"/>
    >     >     > > >                 <log message=" Sending ${body}" 
loggingLevel="INFO" />
    >     >     > > >                 <to uri="mock:test?retainLast=10" />
    >     >     > > >     
    >     >     > > >     On 2020/02/18 12:28:53, Julian Feinauer 
<[email protected]> wrote: 
    >     >     > > >     > Hi Etienne,
    >     >     > > >     > 
    >     >     > > >     > fort he sake of easiness... could you do a short 
test if it works, when you Replace the Content of PLC4XConsumer.java with the 
following:
    >     >     > > >     > 
    >     >     > > >     > ```
    >     >     > > >     > /*
    >     >     > > >     >  Licensed to the Apache Software Foundation (ASF) 
under one
    >     >     > > >     >  or more contributor license agreements.  See the 
NOTICE file
    >     >     > > >     >  distributed with this work for additional 
information
    >     >     > > >     >  regarding copyright ownership.  The ASF licenses 
this file
    >     >     > > >     >  to you under the Apache License, Version 2.0 (the
    >     >     > > >     >  "License"); you may not use this file except in 
compliance
    >     >     > > >     >  with the License.  You may obtain a copy of the 
License at
    >     >     > > >     > 
    >     >     > > >     >    http://www.apache.org/licenses/LICENSE-2.0
    >     >     > > >     > 
    >     >     > > >     >  Unless required by applicable law or agreed to in 
writing,
    >     >     > > >     >  software distributed under the License is 
distributed on an
    >     >     > > >     >  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 
ANY
    >     >     > > >     >  KIND, either express or implied.  See the License 
for the
    >     >     > > >     >  specific language governing permissions and 
limitations
    >     >     > > >     >  under the License.
    >     >     > > >     >  */
    >     >     > > >     > package org.apache.plc4x.camel;
    >     >     > > >     > 
    >     >     > > >     > import org.apache.camel.*;
    >     >     > > >     > import org.apache.camel.spi.ExceptionHandler;
    >     >     > > >     > import 
org.apache.camel.support.LoggingExceptionHandler;
    >     >     > > >     > import org.apache.camel.support.ServiceSupport;
    >     >     > > >     > import 
org.apache.camel.util.AsyncProcessorConverterHelper;
    >     >     > > >     > import org.apache.plc4x.java.api.PlcConnection;
    >     >     > > >     > import 
org.apache.plc4x.java.api.exceptions.PlcException;
    >     >     > > >     > import 
org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
    >     >     > > >     > import 
org.apache.plc4x.java.api.messages.PlcUnsubscriptionRequest;
    >     >     > > >     > import 
org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse;
    >     >     > > >     > import org.slf4j.Logger;
    >     >     > > >     > import org.slf4j.LoggerFactory;
    >     >     > > >     > 
    >     >     > > >     > import java.util.Collection;
    >     >     > > >     > import java.util.concurrent.*;
    >     >     > > >     > 
    >     >     > > >     > public class Plc4XConsumer extends ServiceSupport 
implements Consumer {
    >     >     > > >     >     private static final Logger LOGGER = 
LoggerFactory.getLogger(Plc4XConsumer.class);
    >     >     > > >     > 
    >     >     > > >     >     private Plc4XEndpoint endpoint;
    >     >     > > >     >     private AsyncProcessor processor;
    >     >     > > >     >     private ExceptionHandler exceptionHandler;
    >     >     > > >     >     private PlcConnection plcConnection;
    >     >     > > >     >     private String fieldQuery;
    >     >     > > >     >     private Class<?> dataType;
    >     >     > > >     >     private PlcSubscriptionResponse 
subscriptionResponse;
    >     >     > > >     > 
    >     >     > > >     >     private ScheduledExecutorService 
executorService = Executors.newSingleThreadScheduledExecutor();
    >     >     > > >     >     private ScheduledFuture<?> future;
    >     >     > > >     > 
    >     >     > > >     >     public Plc4XConsumer(Plc4XEndpoint endpoint, 
Processor processor) throws PlcException {
    >     >     > > >     >         this.endpoint = endpoint;
    >     >     > > >     >         this.dataType = endpoint.getDataType();
    >     >     > > >     >         this.processor = 
AsyncProcessorConverterHelper.convert(processor);
    >     >     > > >     >         this.exceptionHandler = new 
LoggingExceptionHandler(endpoint.getCamelContext(), getClass());
    >     >     > > >     >         String plc4xURI = 
endpoint.getEndpointUri().replaceFirst("plc4x:/?/?", "");
    >     >     > > >     >         this.plcConnection = 
endpoint.getPlcDriverManager().getConnection(plc4xURI);
    >     >     > > >     >         this.fieldQuery = endpoint.getAddress();
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     @Override
    >     >     > > >     >     public String toString() {
    >     >     > > >     >         return "Plc4XConsumer[" + endpoint + "]";
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     @Override
    >     >     > > >     >     public Endpoint getEndpoint() {
    >     >     > > >     >         return endpoint;
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     public ExceptionHandler getExceptionHandler() {
    >     >     > > >     >         return exceptionHandler;
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     public void 
setExceptionHandler(ExceptionHandler exceptionHandler) {
    >     >     > > >     >         this.exceptionHandler = exceptionHandler;
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     @Override
    >     >     > > >     >     protected void doStart() throws 
InterruptedException, ExecutionException {
    >     >     > > >     >         // TODO: Is it correct to only support one 
field?
    >     >     > > >     >         future = executorService.schedule(() -> {
    >     >     > > >     >             plcConnection.readRequestBuilder()
    >     >     > > >     >                 .addItem("default", fieldQuery)
    >     >     > > >     >                 .build()
    >     >     > > >     >                 .execute()
    >     >     > > >     >                 .thenAccept(response -> {
    >     >     > > >     >                     LOGGER.debug("Received {}", 
response);
    >     >     > > >     >                     try {
    >     >     > > >     >                         Exchange exchange = 
endpoint.createExchange();
    >     >     > > >     >                         
exchange.getIn().setBody(unwrapIfSingle(response.getAllObjects("default")));
    >     >     > > >     >                         processor.process(exchange);
    >     >     > > >     >                     } catch (Exception e) {
    >     >     > > >     >                         
exceptionHandler.handleException(e);
    >     >     > > >     >                     }
    >     >     > > >     >                 });
    >     >     > > >     >         }, 3, TimeUnit.SECONDS);
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     @Override
    >     >     > > >     >     protected void doStop() throws 
InterruptedException, ExecutionException, TimeoutException {
    >     >     > > >     >         // First stop the polling process
    >     >     > > >     >         if (future != null) {
    >     >     > > >     >             future.cancel(true);
    >     >     > > >     >         }
    >     >     > > >     >         // TODO: Handle the response ...
    >     >     > > >     >         try {
    >     >     > > >     >             plcConnection.close();
    >     >     > > >     >         } catch (Exception e) {
    >     >     > > >     >             LOGGER.error("Error closing 
connection", e);
    >     >     > > >     >         }
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     >     private Object unwrapIfSingle(Collection 
collection) {
    >     >     > > >     >         if (collection.isEmpty()) {
    >     >     > > >     >             return null;
    >     >     > > >     >         }
    >     >     > > >     >         if (collection.size() == 1) {
    >     >     > > >     >             return collection.iterator().next();
    >     >     > > >     >         }
    >     >     > > >     >         return collection;
    >     >     > > >     >     }
    >     >     > > >     > 
    >     >     > > >     > }
    >     >     > > >     > ```
    >     >     > > >     > 
    >     >     > > >     > Julian
    >     >     > > >     > 
    >     >     > > >     > 
    >     >     > > >     > Am 18.02.20, 13:22 schrieb "Julian Feinauer" 
<[email protected]>:
    >     >     > > >     > 
    >     >     > > >     >     Hi Etienne,
    >     >     > > >     >     
    >     >     > > >     >     oh, sorry, indeed. The Code in the Camel module 
is right, but does not work for Siemens S7.
    >     >     > > >     >     Let me try to write you an updated version in 
another branch ASAP then you can check it.
    >     >     > > >     >     
    >     >     > > >     >     Sorry!
    >     >     > > >     >     Julian
    >     >     > > >     >     
    >     >     > > >     >     Am 18.02.20, 12:56 schrieb "Etienne Robinet" 
<[email protected]>:
    >     >     > > >     >     
    >     >     > > >     >         I just cloned the rel/0.6 branch from git, 
until now I didn't change anything.
    >     >     > > >     >         Regards,,
    >     >     > > >     >         Etienne
    >     >     > > >     >         
    >     >     > > >     >         On 2020/02/18 11:10:39, Julian Feinauer 
<[email protected]> wrote: 
    >     >     > > >     >         > Did you post your code somewhere? I cant 
find it.. just post it somewhere and I will have a look!
    >     >     > > >     >         > 
    >     >     > > >     >         > Julian
    >     >     > > >     >         > 
    >     >     > > >     >         > Am 18.02.20, 11:28 schrieb "Etienne 
Robinet" <[email protected]>:
    >     >     > > >     >         > 
    >     >     > > >     >         >     Hi Julian,
    >     >     > > >     >         >     thanks for the advice, but where 
should I change the code to apply your modification? Is it in the doStart() 
methode of de PLC4XConsumer?
    >     >     > > >     >         >     Regards,
    >     >     > > >     >         >     
    >     >     > > >     >         >     Etienne
    >     >     > > >     >         >     
    >     >     > > >     >         >     On 2020/02/18 08:55:22, Julian 
Feinauer <[email protected]> wrote: 
    >     >     > > >     >         >     > Hi Etienne,
    >     >     > > >     >         >     > 
    >     >     > > >     >         >     > thank you for your investigation.
    >     >     > > >     >         >     > I just locked at your log and it 
seems that connection works fine and some messages are exchanged BUT you try to 
subscribe to a Value which is currently not supported.
    >     >     > > >     >         >     > Try to just use the 
"readRequestBuilder().addItem("", "").build().execute().get()" approach to send 
a single request, that should work.
    >     >     > > >     >         >     > 
    >     >     > > >     >         >     > Best
    >     >     > > >     >         >     > Julian
    >     >     > > >     >         >     > 
    >     >     > > >     >         >     > Am 18.02.20, 09:39 schrieb "Etienne 
Robinet" <[email protected]>:
    >     >     > > >     >         >     > 
    >     >     > > >     >         >     >     Hello,
    >     >     > > >     >         >     >     with the help of some colleague 
we managed to find how to fix the issue so that the DriverManager can find the 
actual s7 protocol.
    >     >     > > >     >         >     >     All I had to do is to create a 
maven project (karaf-blueprint) archetype and do as follow:
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     1. Inside the pom, add the 
S7PlcDriver under "imports"
    >     >     > > >     >         >     >     2. create a service under 
main/java/resources/META-INF/services/xxx.xxx.PlcDriver containing the 
implementation (S7PlcDriver) and license
    >     >     > > >     >         >     >     3. Create a simple XML 
blueprint (with a real address this time connected to a real PLC)
    >     >     > > >     >         >     >     <blueprint 
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"; default-activation="lazy">
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >         <camelContext 
id="PLC-Context" xmlns="http://camel.apache.org/schema/blueprint"; 
streamCache="true">
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >             <route id="Route1">
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >                 <from 
uri="plc4x:s7://192.168.178.10/1/1"/>
    >     >     > > >     >         >     >                 <log message=" 
Sending ${body}" loggingLevel="INFO" />
    >     >     > > >     >         >     >                 <to 
uri="mock:test?retainLast=10" />
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >             </route>
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >         </camelContext>
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     </blueprint>
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     So now I have the next issue, I 
can see from the log that a connection is established but it tells me that the 
connection doesn't support connection. Am I missing a parameter or what could 
be the issue?
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     Here the log:
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     https://i.imgur.com/KgWz8DF.png
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     >     On 2020/02/17 12:11:56, 
Christofer Dutz <[email protected]> wrote: 
    >     >     > > >     >         >     >     > Hi all,
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > having a more detailed look 
at the log-trace, it seems the DriverManager isn't able to find the S7 driver 
at all ...
    >     >     > > >     >         >     >     > But I guess if it even was 
available, as Cesar pointed out, the field address is that of the mock driver 
and not of the S7 so this will not work.
    >     >     > > >     >         >     >     > Also are you connecting to 
localhost, which is also probably not what you want. Unless you are running a 
S7 simulator on your machine.
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > Depending of if you're using 
a released version of the s7 driver the connection URL is correct, however if 
you switch to the new S7 driver it would look like this:  s7://{ip or host}
    >     >     > > >     >         >     >     > Not the "/1/1" are now 
missing.
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > Chris
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > Am 17.02.20, 13:04 schrieb 
"Cesar Garcia" <[email protected]>:
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     >     Hi,
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     The PLC address does not 
look correct, can you confirm that it really
    >     >     > > >     >         >     >     >     points to a real PLC or 
an S7 simulator?
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     <from 
uri="plc4x:s7:localhost/1/1"/>
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     Best regards,
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     El vie., 14 feb. 2020 a 
las 18:34, Etienne Robinet (<[email protected]>)
    >     >     > > >     >         >     >     >     escribió:
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     > Hello everyone,
    >     >     > > >     >         >     >     >     > I've spent some days 
trying to figure out how to make PLC4X work inside a
    >     >     > > >     >         >     >     >     > karaf container in 
combination with camel blueprints for routing.
    >     >     > > >     >         >     >     >     > I've downloaded the 
latest release (0.5.0) and built it with maven. I then
    >     >     > > >     >         >     >     >     > installed the 
driver-s7-feature and plc4j-apache-camel bundle into my
    >     >     > > >     >         >     >     >     > container and got 
following bundles running:
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     > >PLC4J: API
    >     >     > > >     >         >     >     >     > >PLC4J: Driver: S7
    >     >     > > >     >         >     >     >     > >PLC4J: Protocol: 
Driver-Base: Base
    >     >     > > >     >         >     >     >     > >PLC4J: Protocol: 
Driver-Base: TCP
    >     >     > > >     >         >     >     >     > >PLC4J: Protocol: ISO 
on TCP
    >     >     > > >     >         >     >     >     > >PLC4J: Protocol: ISO TP
    >     >     > > >     >         >     >     >     > >PLC4J: Protocol: S7
    >     >     > > >     >         >     >     >     > >PLC4j: Utils: Driver 
Base: Java
    >     >     > > >     >         >     >     >     > >PLC4J: Integrations: 
Apache Camel
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     > After trying a simple 
route with this consumer component:
    >     >     > > >     >         >     >     >     > <from 
uri="plc4x:s7:localhost/1/1"/> (the address is for testing purpose)
    >     >     > > >     >         >     >     >     > I get the following 
error:
    >     >     > > >     >         >     >     >     > Error occurred during 
starting CamelContext: PLC-Context
    >     >     > > >     >         >     >     >     > 
org.apache.camel.FailedToCreateRouteException: Failed to create route
    >     >     > > >     >         >     >     >     > Route1: 
Route(Route1)[[From[plc4x:s7:localhost/1/1]] -> [To[mock:tes...
    >     >     > > >     >         >     >     >     > because of Unable to 
find driver for protocol 's7'
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     > I've tested numerous 
version of PLC4X and got the same results, so I think
    >     >     > > >     >         >     >     >     > I might be close to fix 
it!
    >     >     > > >     >         >     >     >     > Any help would be 
appreciated!
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     > Here the full log
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     > 16:30:45.578 INFO 
[Blueprint Event Dispatcher: 1] Attempting to start
    >     >     > > >     >         >     >     >     > CamelContext: 
PLC-Context
    >     >     > > >     >         >     >     >     > 16:30:45.579 INFO 
[Blueprint Event Dispatcher: 1] Apache Camel 2.24.2
    >     >     > > >     >         >     >     >     > (CamelContext: 
PLC-Context) is starting
    >     >     > > >     >         >     >     >     > 16:30:45.580 INFO 
[Blueprint Event Dispatcher: 1] StreamCaching is enabled
    >     >     > > >     >         >     >     >     > on CamelContext: 
PLC-Context
    >     >     > > >     >         >     >     >     > 16:30:45.580 INFO 
[Blueprint Event Dispatcher: 1] JMX is enabled
    >     >     > > >     >         >     >     >     > 16:30:45.600 INFO 
[Blueprint Event Dispatcher: 1] Instantiating new PLC
    >     >     > > >     >         >     >     >     > Driver Manager with 
class loader
    >     >     > > >     >         >     >     >     > 
BundleDelegatingClassLoader(plc4j-route.xml [67])
    >     >     > > >     >         >     >     >     > 16:30:45.600 INFO 
[Blueprint Event Dispatcher: 1] Registering available
    >     >     > > >     >         >     >     >     > drivers...
    >     >     > > >     >         >     >     >     > 16:30:45.601 TRACE 
[Blueprint Event Dispatcher: 1] FindResource:
    >     >     > > >     >         >     >     >     > 
META-INF/services/org.apache.plc4x.java.spi.PlcDriver
    >     >     > > >     >         >     >     >     > 16:30:45.627 INFO 
[Blueprint Event Dispatcher: 1] StreamCaching in use
    >     >     > > >     >         >     >     >     > with spool directory:
    >     >     > > >     >         >     >     >     > 
C:\karaf\bin\..\data\tmp\camel\camel-tmp-00f849ac-0ccf-4b12-822d-dda62267eb6c
    >     >     > > >     >         >     >     >     > and rules: [Spool > 
128K body size]
    >     >     > > >     >         >     >     >     > 16:30:45.629 INFO 
[Blueprint Event Dispatcher: 1] Apache Camel 2.24.2
    >     >     > > >     >         >     >     >     > (CamelContext: 
PLC-Context) is shutting down
    >     >     > > >     >         >     >     >     > 16:30:45.639 INFO 
[Blueprint Event Dispatcher: 1] Apache Camel 2.24.2
    >     >     > > >     >         >     >     >     > (CamelContext: 
PLC-Context) uptime 0.060 seconds
    >     >     > > >     >         >     >     >     > 16:30:45.640 INFO 
[Blueprint Event Dispatcher: 1] Apache Camel 2.24.2
    >     >     > > >     >         >     >     >     > (CamelContext: 
PLC-Context) is shutdown in 0.011 seconds
    >     >     > > >     >         >     >     >     > 16:30:45.640 WARN 
[Blueprint Event Dispatcher: 1] Changing Camel state for
    >     >     > > >     >         >     >     >     > bundle 67 to Failure
    >     >     > > >     >         >     >     >     > 16:30:45.641 ERROR 
[Blueprint Event Dispatcher: 1] Error occurred during
    >     >     > > >     >         >     >     >     > starting CamelContext: 
PLC-Context
    >     >     > > >     >         >     >     >     > 
org.apache.camel.FailedToCreateRouteException: Failed to create route
    >     >     > > >     >         >     >     >     > Route1: 
Route(Route1)[[From[plc4x:s7:localhost/1/1]] -> [To[mock:tes...
    >     >     > > >     >         >     >     >     > because of Unable to 
find driver for protocol 's7'
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.RouteService.warmUp(RouteService.java:147)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:3954)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3861)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3647)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3488)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3247)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3243)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3266)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3243)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3159)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:255)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:297)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.blueprint.BlueprintCamelContext.blueprintEvent(BlueprintCamelContext.java:188)
    >     >     > > >     >         >     >     >     > [!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:190)
    >     >     > > >     >         >     >     >     > [!/:1.10.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.aries.blueprint.container.BlueprintEventDispatcher$3.call(BlueprintEventDispatcher.java:188)
    >     >     > > >     >         >     >     >     > [!/:1.10.2]
    >     >     > > >     >         >     >     >     >         at 
java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    >     >     > > >     >         >     >     >     > [?:?]
    >     >     > > >     >         >     >     >     >         at 
java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    >     >     > > >     >         >     >     >     > [?:?]
    >     >     > > >     >         >     >     >     >         at 
java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    >     >     > > >     >         >     >     >     > [?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    >     >     > > >     >         >     >     >     > [?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    >     >     > > >     >         >     >     >     > [?:?]
    >     >     > > >     >         >     >     >     >         at 
java.lang.Thread.run(Thread.java:834) [?:?]
    >     >     > > >     >         >     >     >     > Caused by: 
org.apache.plc4x.java.api.exceptions.PlcConnectionException:
    >     >     > > >     >         >     >     >     > Unable to find driver 
for protocol 's7'
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.plc4x.java.PlcDriverManager.getDriver(PlcDriverManager.java:98)
    >     >     > > >     >         >     >     >     > ~[?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.plc4x.java.PlcDriverManager.getConnection(PlcDriverManager.java:71)
    >     >     > > >     >         >     >     >     > ~[?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.plc4x.camel.Plc4XConsumer.<init>(Plc4XConsumer.java:57) ~[?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.plc4x.camel.Plc4XEndpoint.createConsumer(Plc4XEndpoint.java:72)
    >     >     > > >     >         >     >     >     > ~[?:?]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:69)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:107)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.RouteService.doWarmUp(RouteService.java:172)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         at
    >     >     > > >     >         >     >     >     > 
org.apache.camel.impl.RouteService.warmUp(RouteService.java:145)
    >     >     > > >     >         >     >     >     > ~[!/:2.24.2]
    >     >     > > >     >         >     >     >     >         ... 24 more
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     >
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     -- 
    >     >     > > >     >         >     >     >     *CEOS Automatización, 
C.A.*
    >     >     > > >     >         >     >     >     *GALPON SERVICIO 
INDUSTRIALES Y NAVALES FA, C.A.,*
    >     >     > > >     >         >     >     >     *PISO 1, OFICINA 2, AV. 
RAUL LEONI, SECTOR GUAMACHITO,*
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     *FRENTE A LA ASOCIACION 
DE GANADEROS,BARCELONA,EDO. ANZOATEGUI*
    >     >     > > >     >         >     >     >     *Ing. César García*
    >     >     > > >     >         >     >     >     *Cel: 0416-681.03.99*
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     *Cel: 0414-760.98.95*
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     *Hotline Técnica SIEMENS: 
0800 1005080*
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     >     *Email: 
[email protected]
    >     >     > > >     >         >     >     >     
<[email protected]>*
    >     >     > > >     >         >     >     >     
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     > 
    >     >     > > >     >         >     >     
    >     >     > > >     >         >     > 
    >     >     > > >     >         >     > 
    >     >     > > >     >         >     
    >     >     > > >     >         > 
    >     >     > > >     >         > 
    >     >     > > >     >         
    >     >     > > >     >     
    >     >     > > >     >     
    >     >     > > >     > 
    >     >     > > >     > 
    >     >     > > >     
    >     >     > > > 
    >     >     > > > 
    >     >     > > 
    >     >     > 
    >     >     
    >     > 
    >     > 
    >     
    > 
    > 
    

Reply via email to