Help - Search - Members - Calendar
Full Version: send recieve data from etn21 via tcp
Forums.MrPLC.com > PLCs and Supporting Devices > Omron > Other Omron Software
paolo
Good evening for everyone,i'm a new user....
I try to send and recieve data from etn21 via tcp with c# code....

with this method i create a new connection:

private static Socket ConnectSocket(string server, int port)
{
Socket s = null;
IPHostEntry hostEntry = null;

hostEntry = Dns.GetHostEntry(server);

foreach(IPAddress address in hostEntry.AddressList)
{
IPEndPoint ipe = new IPEndPoint(address, port);
Socket tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

tempSocket.Connect(ipe);

if(tempSocket.Connected)
{
s = tempSocket;
break;
}
else
{
continue;
}
}
return s;
}

so return to me an istance of shoket....
after i send to etn21 this command:

fins_tcp_header[0] = 0x46;
fins_tcp_header[1] = 0x49;
fins_tcp_header[2] = 0x4E;
fins_tcp_header[3] = 0x53;
fins_tcp_header[4] = 0x00;/* Length */
fins_tcp_header[5] = 0x00;
fins_tcp_header[6] = 0x00;
fins_tcp_header[7] = 0x0C;
fins_tcp_header[8] = 0x00;/* Command */
fins_tcp_header[9] = 0x00;
fins_tcp_header[10] = 0x00;
fins_tcp_header[11] = 0x00;
fins_tcp_header[12] = 0x00;/* Error Code */
fins_tcp_header[13] = 0x00;
fins_tcp_header[14] = 0x00;
fins_tcp_header[15] = 0x00;
fins_tcp_header[16] = 0x00;
fins_tcp_header[17] = 0x00;/* Client Node Add */
fins_tcp_header[18] = 0x00;
fins_tcp_header[19] = 0x00;
fins_tcp_header[20] = 0x00;/*AUTOMATICALLY GET FINS CLIENT FINS NODE NUMBER*/

s.Send(fins_tcp_header, fins_tcp_header.Length, 0);

do
{
bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
cli_node_no = bytesReceived[19];
srv_node_no = bytesReceived[23];
}
and the etn21 response correctly : 80 (server node) and 239 (client node) and the TCP led on module is on

so after i send the command to read 3 DM:

fins_cmnd1[0] = 0x46; //'F';
fins_cmnd1[1] = 0x49; //'I';
fins_cmnd1[2] = 0x4E; //'N';
fins_cmnd1[3] = 0x53; //'S';
fins_cmnd1[4] = 0x00;/* Length */
fins_cmnd1[5] = 0x00;
fins_cmnd1[6] = 0x00;
fins_cmnd1[7] = 0x1A;
fins_cmnd1[8] = 0x00;/* Command */
fins_cmnd1[9] = 0x00;
fins_cmnd1[10] = 0x00;
fins_cmnd1[11] = 0x02;
fins_cmnd1[12] = 0x00;/* Error Code */
fins_cmnd1[13] = 0x00;
fins_cmnd1[14] = 0x00;
fins_cmnd1[15] = 0x00;

fins_cmnd[16] = 0x80; /* ICF */
fins_cmnd[17] = 0x00; /* RSV */
fins_cmnd[18] = 0x03; /* GCT */
fins_cmnd[19] = 0x00; /* DNA */
fins_cmnd[20] = 0x50;//srv_node_no.ToString("x"); /* DA1 */
fins_cmnd[21] = 0x00; /* DA2 */
fins_cmnd[22] = 0x00; /* SNA */
fins_cmnd[23] = 0xEF;//cli_node_no.ToString("x"); /* SA1 */
fins_cmnd[24] = 0x00; /* SA2 */
fins_cmnd[25] = 0x07;//++sid; /* SID */
fins_cmnd[26] = 0x01; /* MRC */
fins_cmnd[27] = 0x01; /* SRC */
fins_cmnd[28] = 0x82;
fins_cmnd[29] = 0x00;
fins_cmnd[30] = 0x01;
fins_cmnd[31] = 0x00;
fins_cmnd[32] = 0x00;
fins_cmnd[33] = 0x03;

s1.Send(fins_cmnd, fins_cmnd.Length, 0);
But here when i execute this command the TCP led on module turn off and the data recieved are incorrect

What i mistake????
Can someone help to me???
Berti Baker
QUOTE(paolo @ Dec 20 2008, 07:07 PM) [snapback]77078[/snapback]

I try to send and recieve data from etn21 via tcp with c# code....

But here when i execute this command the TCP led on module turn off and the data recieved are incorrect

What i mistake????
Can someone help to me???

Hi Paolo,

Wow! what a post wow.gif I can't help you directly but as no-one else has any ideas I would suggest perhaps using some Ethernet Sniffer program and watching packets from Omron software to copy (as a test of your packet construction). If it was me though (as I'm a lazy ...) I would buy CX-Server Lite. It only costs €200-300 and includes a .Net communications control for C# and example programs. It also handles ALL PLCs, all the networks, and all the different protocols. For me... not worth my time developing it myself

There is even a free demo version here

Regards,
Bertie.
BobB
Here is a link for Wireshark (formerly Ethereal) download - it is a free Ethernet sniffer
http://www.wireshark.org/

paolo
Hi thanks a lot for your suggestion..during the holiday time i have develp a little internet application with remote web service (java and asp.net) for etn21 and it work very fine only an UDP protocol.... ranting.gif

Maybe with the tcp protocol i mistake some instruction...I hope in the next to solve this problem...


Thanks again

Paolo

P.S.
Sorry about my english.... blush.gif

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.