EtherNet/IP (Industrial Protocol) .NET Library
<p>I have a I/O remote device (EIP-2017) with 8 analog inputs and it implements EtherNet/IP protocol for reading I/O values. I found on codeplex (<a href="https://eipnet.codeplex.com/" rel="nofollow noreferrer">https://eipnet.codeplex.com/</a>) a library written in .net c# but it does not have documentation or example how to use it. </p>

<p>So, this is the target (I/O remote device) documentation:</p>

<blockquote>
  <p>We suggest users using Implicit Message communicate with EIP-2000.
  Implicit Messages are applied only for accessing the Input Instance 65
  hex  (101) and Output Instance 66  (102) of the Assembly Object in the
  object model. Before using Implicit Messages, you must use the Forward
  Open service with correct “Instance ID” and “Data length” settings of
  the Connection Manager Object to build a connection between the
  EtherNet/IP scanner and the EIP-2000. Afterwards, the Implicit Message
  can be used. The “Instance ID” of EIP-2000 modules are shown below,
  but the “Data length” is different from modules.</p>
</blockquote>

<p>This device has the following,<br>
Input (T->O) Instance ID: 0x65, Length: 53 bytes
Out (O->T) Instance ID: 0x66, Length: 22 bytes
Configuration Instance ID: 0x64, Length: 0 bytes</p>

<p>And I wrote these lines of code:</p>

<pre><code>static void Main(string[] args)
        {
            byte[] sc = new byte[8] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
            byte[] path = new byte[] { 0x20, 0x04, 0x24, 0x64, 0x2C, 0x66, 0x2C, 0x65 };

            SessionInfo si = SessionManager.CreateAndRegister("192.168.2.227", senderContext: sc);
            si.SetConnectionParameters(101, 3000, 101, 803, 888);

            EIPNET.ConnectionManager.ForwardOpen(si, path);

            bool CIPok = EIPNET.EIP.SessionManager.VerifyCIP(si);

            EIPNET.EIP.EncapsPacket p = new EncapsPacket();
            p.Command = (ushort)EncapsCommand.ListIdentity;
            p.SessionHandle = si.SessionHandle;
            p.SenderContext = sc;
            p.Length = 0;
            //p.EncapsData = new byte[53];
            byte[] rec = si.SendData_WaitReply(p.Pack());
}
</code></pre>

<p>I'm registering the session and then open connection with Forward Open command and then...nothing... </p>