PaoloG Inserito: 11 dicembre 2008 Segnala Share Inserito: 11 dicembre 2008 Buona sera a tutti, sto provando a comunicare con un modulo ETN21 della omron tramite c#,ma non riesco a ricevere nessun dato....IP modulo:192.168.0.80 Unit:0Ip host:192.168.0.2La comunicazione si stabilisce ma quando lancio il comando la risposta che mi ritorna non contiene i dati che ho chiesto...Qualcuno di voi potrebbe darmi una mano??Grazie 10000Paoloallego il codice che sto provando: private static string SocketSendReceive(string server, int port) { int srv_node_no; int cli_node_no; int sendlen, recvlen; char[] fins_cmnd = new char[18]; Byte[] fins_resp = new Byte[2010]; Byte[] fins_Received = new Byte[32]; char[] fins_tcp_header = new char[32]; fins_cmnd[0] = '\x80'; /* ICF */ fins_cmnd[1] = '\x00'; /* RSV */ fins_cmnd[2] = '\x02'; /* GCT */ fins_cmnd[3] = '\x00'; /* DNA */ fins_cmnd[4] = '\x50';//srv_node_no.ToString("x"); /* DA1 */ fins_cmnd[5] = '\x00'; /* DA2 */ fins_cmnd[6] = '\x00'; /* SNA */ fins_cmnd[7] = '\x02';//cli_node_no.ToString("x"); /* SA1 */ fins_cmnd[8] = '\x00'; /* SA2 */ fins_cmnd[9] = '\x01';//++sid; /* SID */ fins_cmnd[10] = '\x01'; /* MRC */ fins_cmnd[11] = '\x01'; /* SRC */ fins_cmnd[12] = '\x82'; fins_cmnd[13] = '\x00'; fins_cmnd[14] = '\x1C'; fins_cmnd[15] = '\x00'; fins_cmnd[16] = '\x00'; fins_cmnd[17] = '\x01'; Socket s1 = ConnectSocket(server, port); Byte[] bytesSent2 = Encoding.ASCII.GetBytes(fins_cmnd); s1.Send(bytesSent2, 18, 0); do { int h = s1.Receive(fins_Received, fins_Received.Length, 0); recvlen = fins_Received[6]; recvlen <<= 8; recvlen += fins_Received[7]; recvlen -= 8; } while (recvlen == 0);......} 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; } Link al commento Condividi su altri siti More sharing options...
PaoloG Inserita: 22 dicembre 2008 Autore Segnala Share Inserita: 22 dicembre 2008 Buongiorno..sto continuando a provare a scambiare dati con un modulo etn21 tramite protocollo tcp...I passi che sto facendo sono questI:Apro una connessione con l'indirizzo ip ed il numero di porta del modulo e fin qui tutto ok la connessione si apre,mando vero il modulo il comando che alloca automaticamente i nodi del client e del server ed anche questo è ok ( mi assegna per il client (pc) il 239 e per il server(modulo) l' 80), si accende il led TCP sul modulo.A questo punto ho l'inghippo se lancio un qualsiasi altro comando,mi si interrompe la connessione e si spegne il led TCP del modulo.Cosa potrebbe essere cosa secondo voi sto sbagliando???SalutiPaolo Link al commento Condividi su altri siti More sharing options...
PaoloG Inserita: 2 gennaio 2009 Autore Segnala Share Inserita: 2 gennaio 2009 Buongiorno a tutti del forum e buone feste...Sto sempre provando a scambiare dati con il modulo ETN21 della omron,tutto funziona se uso il protocollo UDP...ma ho problemi sul protocollo TCPqualcuno di voi ha già affrontato il discorso ed è disponibile a darmi una mano??Per configurare i parametri di socket il pc va configurato come client e non come server....giusto???Grazie 1000Paolo Link al commento Condividi su altri siti More sharing options...
Marcoso Inserita: 4 gennaio 2009 Segnala Share Inserita: 4 gennaio 2009 Ciao paolo, io non conosco molto bene il protocollo fins di omron, anche se proprio in questo periodo sto cominciando a studiarlo.Ti posso dire di controllare il numero della porta che di default sull ent21 e 9600Il manuale della omron che descrive il protocollo e il W342 che purtroppo l'ho trovato solo in ingleseSo che ci sono delle limitazioni nell'uso dell'etn21 con il protocollo fins e cx programmer (contemporaneamente)mando vero il modulo il comando che alloca automaticamente i nodi del client e del server ed anche questo è ok ( mi assegna per il client (pc) il 239 e per il server(modulo) l' 80),Forse e meglio che usi degli ip statici Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora