8 つのアナログ入力を備えた I/O リモート デバイス (EIP-2017) があり、I/O 値を読み取るための EtherNet/IP プロトコルを実装しています。codeplex ( https://eipnet.codeplex.com/ ) で .net c# で記述されたライブラリを見つけましたが、ドキュメントや使用方法の例がありません。
したがって、これはターゲット (I/O リモート デバイス) のドキュメントです。
Implicit Message を使用するユーザーは、EIP-2000 と通信することをお勧めします。暗黙的メッセージは、オブジェクト モデル内のアセンブリ オブジェクトの入力インスタンス 65 hex (101) および出力インスタンス 66 (102) にアクセスする場合にのみ適用されます。暗黙的メッセージを使用する前に、EtherNet/IP スキャナと EIP-2000 間の接続を構築するために、接続マネージャ オブジェクトの正しい「インスタンス ID」と「データ長」設定で Forward Open サービスを使用する必要があります。その後、Implicit Message を使用できます。以下に EIP-2000 モジュールの「インスタンス ID」を示しますが、「データ長」はモジュールとは異なります。
このデバイスには次のものがあります。
入力 (T->O) インスタンス ID: 0x65、長さ: 53 バイト 出力 (O->T) インスタンス ID: 0x66、長さ: 22 バイト 構成インスタンス ID: 0x64、長さ: 0 バイト
そして、次のコード行を書きました。
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());
}
セッションを登録してから、Forward Openコマンドで接続を開きますが、...何もありません...