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
Shop: www.icorr.shop
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