ros-drivers / odva_ethernetip

Library implementing ODVA EtherNet/IP (Industrial Protocol).
94 stars 48 forks source link

Support for Forward_Open vs. Large_Forward_Open requests #6

Open akgoins opened 8 years ago

akgoins commented 8 years ago

The Session::createConnection() creates a Large_Forward_Open connection (0x5B) and uses the connection::createForwardOpenRequest() which creates a large forward open connection request which is a bit misleading. Some devices do not support a large forward connection, so for the drivers to be generalizable there needs to be two functions in the Session class. One to create a normal connection and another to create a large connection. Or else, there needs to be a parameter passed in to specify which connection is made.

pbeeson commented 7 years ago

@akgoins

Did you ever get this working with regular Forward Open. Like replacing 0x5B with 0x54? If so, I'd be extremely anxious to get your Yaskawa PLC code, as I'm banging my head to use this with a Yaskawa PCL too.

akgoins commented 7 years ago

Yes, I was able to get it running. I had to do a lot of trouble shooting using wireshark to make sure that the data was being properly sent. I will send you an example that should help.

pbeeson commented 7 years ago

That would be great. I got basic reading working with OpENer, but there are large dropouts and I still haven't figured out writing.

Using this seems simpler, but so far it doesn't get past connecting as you had found.