Hi Sebastian,

first of, welcome to PLC4X : )
Second, interesting Issue you have there.. I will try to reproduce it.
I think the issue is in the “ping()” method which does nothing “native” but 
rather uses the “ping” method of Netty’s channel handler.
It would be a better test to just do a “read()” on some Field like a Marker or 
something.

Could you try that?

Julian

Von: Sebastian Wiendl <[email protected]>
Antworten an: "[email protected]" <[email protected]>
Datum: Donnerstag, 7. November 2019 um 14:58
An: "[email protected]" <[email protected]>
Betreff: Configuring a S7-1500 for Access with PLC4J

Hello everyone,

my sample program of PLC4J (very similiar to the hello world example) fails to 
connect to my test PLC (S7-1500):

Nov 07, 2019 2:37:51 PM io.netty.channel.DefaultChannelPipeline 
onUnhandledInboundException
WARNUNG: 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: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
        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:223)
        at sun.nio.ch.IOUtil.read(IOUtil.java:192)
        at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
        at 
io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288)
        at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1125)
        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:682)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:617)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:534)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
        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:748)

"An existing connection was closed by the remote host"

Thats my program at the moment:


    public static void main(String[] args) {
       try (PlcConnection plcConnection = new 
PlcDriverManager().getConnection("s7://172.30.74.65/0/2")) {
           System.out.println("connected");
           System.out.println(plcConnection);
           CompletableFuture<Void> ping = plcConnection.ping();
           ping.get(500, TimeUnit.MILLISECONDS);
           System.out.println("ping exception = " + 
ping.isCompletedExceptionally());
       } catch (Exception e) {
           e.printStackTrace();
       }
       System.out.println("disconnected");
   }

I can both ping the PLC as well as connect to it with the Siemens TIA Portal. 
Does the PLC need some special configuration in the project to be reachable via 
S7Comm via ISO on TCP? nmap shows port 102 TCP as open.

Any help is much appreciated!

Mit freundlichen Grüßen
Kind regards

Sebastian Wiendl
DSE / Digital Solutions Software Engineer
Phone: +49 9605 919 - 9341
E-Mail: [email protected]
Internet: www.bhs-world.com<https://www.bhs-world.com>
Shop: www.icorr.shop
________________________________
 [cid:_1_14F1425C14F13E60004CB934C12584AB]

BHS Corrugated Maschinen- und Anlagenbau GmbH
Paul-Engel-Straße 1
92729 WEIHERHAMMER
GERMANY

Management: Christian Engel, Lars Engel
Registered at Amtsgericht Weiden, HR B 1320

________________________________

[cid:_2_14F15D3814F15954004CB934C12584AB]
[cid:_2_14F1632414F15F40004CB934C12584AB]
[cid:_2_14F1691014F1652C004CB934C12584AB]


[cid:_1_14F16DAC14F1667C004CB934C12584AB]

Reply via email to