Hi Robert,

unfortunately I wasn't able to test the ported driver before as I don't have 
access to an Allen Bradley device.
I do however recall that I brought up that the protocol looked familiar to the 
EtherNet/IP protocol, however seems to have differences.
So you should treat wireshark decodings with care.

Regarding the error itself, this should use the TCP transport which uses the 
NioSocketChannel which should work with the NioEventLoop,
so this error is strange. But it seems to have disappeared as you managed to 
get passed this issue.

It now seems that the problems are related to an invalid request being sent or 
a configuration error on the PLC (Don't know the AB-ETH protocol really).

Perhaps Volker can help here. However from a look at the mspec for that 
protocol, I would assume it's only partially implemented, so perhaps you are 
unimplemented parts of this protocol.

Chris



Am 06.03.20, 13:00 schrieb "Robinet, Etienne" <[email protected]>:

    Hi,
    After some tweaking I managed to create a right "Register Session" message (
    https://i.imgur.com/OR9RDdd.png), but I got an error response from the PLC (
    https://i.imgur.com/2Zm1op3.png).
    Do you know what the Request should be?
    
    Etienne
    
    Le ven. 6 mars 2020 à 10:47, Julian Feinauer <[email protected]>
    a écrit :
    
    > Hi,
    >
    > you already help with your bug reports and the feedback you give!
    >
    > Julian
    >
    > Am 06.03.20, 10:45 schrieb "Robinet, Etienne" <[email protected]>:
    >
    >     Hi Julian,
    >     thanks for the fast response. I would be really glad if I could help a
    > bit
    >     on that, as far as I can.
    >
    >     Etienne
    >
    >     Le ven. 6 mars 2020 à 10:43, Julian Feinauer <
    > [email protected]>
    >     a écrit :
    >
    >     > Hi Etienne,
    >     >
    >     > sorry that you have that much issues. Perhaps @Volker Emmert can
    > comment
    >     > on that as he implemented the driver together with @Christofer Dutz.
    >     >
    >     > Julian
    >     >
    >     > Am 06.03.20, 10:37 schrieb "Etienne Robinet" <[email protected]>:
    >     >
    >     >     Really sorry for double-post, but I managed to establish a
    > connection
    >     > by changing the port from 2222 to 44818 (
    >     >
    > 
https://literature.rockwellautomation.com/idc/groups/literature/documents/qr/comm-qr001_-en-e.pdf
    >     > )
    >     >
    >     >     I also change the url to : ab-eth:tcp://163.243.183.250
    >     >     And this is where the application freezes now:
    >     >
    >     >     ab-eth:tcp://163.243.183.250
    >     >     10:34:49.867 [main] TRACE o.a.p.j.s.c.DefaultNettyPlcConnection 
-
    >     > Channel was created, firing ChannelCreated Event
    >     >     10:34:49.875 [nioEventLoopGroup-2-1] DEBUG
    >     > o.a.p.j.a.p.AbEthProtocolLogic - Sending COTP Connection Request
    >     >     10:34:49.909 [nioEventLoopGroup-2-1] TRACE
    >     > o.a.plc4x.java.spi.Plc4xNettyWrapper - Adding Response Handler ...
    >     >     10:34:49.909 [nioEventLoopGroup-2-1] TRACE
    >     > o.a.plc4x.java.spi.Plc4xNettyWrapper - Sending to wire
    >     >
    > 
CIPEncapsulationConnectionRequest[sessionHandle=0,status=0,senderContext={0,0,0,0,0,0,0,0},options=0]
    >     >     10:34:49.920 [nioEventLoopGroup-2-1] DEBUG
    >     > o.a.plc4x.java.spi.Plc4xNettyWrapper - Forwarding request to plc
    >     >
    > 
CIPEncapsulationConnectionRequest[sessionHandle=0,status=0,senderContext={0,0,0,0,0,0,0,0},options=0]
    >     >     10:34:49.926 [nioEventLoopGroup-2-1] DEBUG
    > io.netty.util.Recycler -
    >     > -Dio.netty.recycler.maxCapacityPerThread: 4096
    >     >     10:34:49.926 [nioEventLoopGroup-2-1] DEBUG
    > io.netty.util.Recycler -
    >     > -Dio.netty.recycler.maxSharedCapacityFactor: 2
    >     >     10:34:49.926 [nioEventLoopGroup-2-1] DEBUG
    > io.netty.util.Recycler -
    >     > -Dio.netty.recycler.linkCapacity: 16
    >     >     10:34:49.926 [nioEventLoopGroup-2-1] DEBUG
    > io.netty.util.Recycler -
    >     > -Dio.netty.recycler.ratio: 8
    >     >     10:34:49.935 [nioEventLoopGroup-2-1] DEBUG
    >     > io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible:
    > true
    >     >     10:34:49.935 [nioEventLoopGroup-2-1] DEBUG
    >     > io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: 
true
    >     >     10:34:49.935 [nioEventLoopGroup-2-1] DEBUG
    >     > i.n.util.ResourceLeakDetectorFactory - Loaded default
    > ResourceLeakDetector:
    >     > io.netty.util.ResourceLeakDetector@385a14ab
    >     >     10:34:49.966 [nioEventLoopGroup-2-1] DEBUG
    >     > o.a.p.j.s.GeneratedDriverByteToMessageCodec - Sending bytes to PLC
    > for
    >     > message
    >     >
    > 
CIPEncapsulationConnectionRequest[sessionHandle=0,status=0,senderContext={0,0,0,0,0,0,0,0},options=0]
    >     > as data 01010000000000000000000000000000000000000000000000000000
    >     >     10:34:49.972 [nioEventLoopGroup-2-1] TRACE
    >     > o.a.p.j.s.GeneratedDriverByteToMessageCodec - Receiving bytes,
    > trying to
    >     > decode Message...
    >     >
    >     >     BR,
    >     >
    >     >     Etienne
    >     >
    >     >     On 2020/03/06 09:30:22, Etienne Robinet <[email protected]>
    > wrote:
    >     >     > Hi all,
    >     >     > I wanted to ask how far we are on the AB-ETH driver? I have a
    >     > LOGIXS5580 Series PLC to test, and when I try to run the HelloWorld
    > example
    >     > I get following error:
    >     >     >
    >     >     > 10:24:44.771 [nioEventLoopGroup-2-1] INFO
    >     > o.a.p.j.s.c.NettyChannelFactory - Unable to connect, shutting down
    > worker
    >     > thread.
    >     >     > org.apache.plc4x.java.api.exceptions.PlcConnectionException:
    > Error
    >     > creating channel.
    >     >     >   at
    >     >
    > 
org.apache.plc4x.java.spi.connection.NettyChannelFactory.createChannel(NettyChannelFactory.java:115)
    >     >     >   at
    >     >
    > 
org.apache.plc4x.java.spi.connection.DefaultNettyPlcConnection.connect(DefaultNettyPlcConnection.java:89)
    >     >     >   at
    >     >
    > 
org.apache.plc4x.java.PlcDriverManager.getConnection(PlcDriverManager.java:74)
    >     >     >   at
    >     >
    > 
org.apache.plc4x.java.examples.helloplc4x.HelloPlc4x.main(HelloPlc4x.java:45)
    >     >     > Caused by: java.lang.IllegalStateException: incompatible event
    > loop
    >     > type: io.netty.channel.nio.NioEventLoop
    >     >     >   at
    >     >
    > 
io.netty.channel.AbstractChannel$AbstractUnsafe.register(AbstractChannel.java:462)
    >     >     >   at
    >     >
    > 
io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:87)
    >     >     >   at
    >     >
    > 
io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:81)
    >     >     >   at
    >     >
    > 
io.netty.channel.MultithreadEventLoopGroup.register(MultithreadEventLoopGroup.java:86)
    >     >     >   at
    >     >
    > 
io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:322)
    >     >     >   at
    >     > io.netty.bootstrap.Bootstrap.doResolveAndConnect(Bootstrap.java:159)
    >     >     >   at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:143)
    >     >     >   at
    >     >
    > 
org.apache.plc4x.java.spi.connection.NettyChannelFactory.createChannel(NettyChannelFactory.java:99)
    >     >     >   ... 3 more
    >     >     >
    >     >     > Any ideas on where this comes from? In Studio5000 the PLC is
    > on the
    >     > slot 4 and I am connected to a swtich on IP: 163.243.183.250 and
    > here's the
    >     > plc4x uri: "ab-eth://163.243.183.250/".
    >     >     >
    >     >     > BR,
    >     >     >
    >     >     > Etienne
    >     >     >
    >     >
    >     >
    >     >
    >
    >
    >
    

Reply via email to