Hey Chris,
Thanks for this I will test in on monday on the PLC. I also wanted to ask why 
you substracted 28 in the mspec. I analyzed it and it puts the length (in the 
Register Session packet) to 0 (getSizeinBytes()-28) as it should be 4 (from 
what I saw from a working implementation of EIP/CIP. The problem was that the 
PLC would send an error code back because of this 0 length.


Etienne ROBINET

> Le 7 mars 2020 à 12:27, Christofer Dutz <[email protected]> a écrit :
> 
> Hi All,
> 
> so I just added a packet-size-estimator for AB-ETH ... hope that helps a 
> little more.
> 
> Chris
> 
> 
> 
> Am 07.03.20, 12:23 schrieb "Christofer Dutz" <[email protected]>:
> 
>    Hi Etienne,
> 
>    well I just had a look at the driver ... it seems it's just not finished 
> yet.
>    The reason it doesn't parse the response is that it doesn't know how big 
> it is ... I will try to implement a packetSizeEstimator for this, but it 
> would really be great if someone who knows this protocol (Has some sort of 
> specification as well as a device to test it on) could work on this.
> 
>    I'll try to guess what it could be .. but no idea if this gets you much 
> further.
> 
>    We really should only put stuff outside the sandbox, if there's at least 
> one person willing and able to maintain it ...
> 
>    Chris
> 
> 
>    Am 06.03.20, 17:16 schrieb "Robinet, Etienne" <[email protected]>:
> 
>        Well from what I've seen, PLC4x is calling right the session register 
> but
>        can't handle the positive response (using AB-ETH)
>        Using 0.6 EIP protocol, the Session is properly opened, but impossible 
> to
>        rightly access data as there is no way to mention which slot the plc 
> is and
>        the tag (from what I understood)
> 
>        Etienne
> 
>>        Le ven. 6 mars 2020 à 17:03, Otto Fowler <[email protected]> a 
>> écrit :
>> 
>> I’ve used that to test session, list identities and get all attributes
>> calls from my code to cpppo.
>> 
>> If you look at the documentation and the samples you can get cpppo talking
>> to cpppo and then see how the plc4x stuff compares doing the same tasks
>> maybe
>> 
>> 
>> 
>> 
>> On March 6, 2020 at 10:49:27, Robinet, Etienne ([email protected]) wrote:
>> 
>> What could I test with this library exactly?
>> 
>> I managed to establish a Session registration at ENIP level, but seems like
>> the app can not decode the answer (which has Success code 0 as expected).
>> Here is where it's stuck: https://i.imgur.com/ZDrSVTA.png
>> 
>> The packetSize= -1 because the packageSizeEstimator is null (why?)
>> 
>> Etienne
>> 
>> Le ven. 6 mars 2020 à 15:53, Otto Fowler <[email protected]> a écrit
>> :
>> 
>>> I would recommend using https://github.com/pjkundert/cpppo to test this
>>> stuff to some extent.
>>> 
>>> Using the docker container works well too.
>>> 
>>> 
>>> 
>>> 
>>> On March 6, 2020 at 09:04:11, Christofer Dutz ([email protected]
>> )
>>> wrote:
>>> 
>>> 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