Vai al contenuto
PLC Forum


Ricezione Dati Di Lunghezza Sconosciuta Con Cp343-1 Lean Via Tcp


Supertony

Messaggi consigliati

Salve a tutti,

sto gestendo un sensore di visione tramite Ethernet (TCP), passando per una scheda di rete CP343-1 Lean.

Usando l'FB6 l'AG_RECV, tutto fila liscio, purchè io sappia già a PRIORI quale sia la lunghezza della stringa di caratteri che mi arriva dal sensore; se però, ad esempio, invio (tramite l'AD_SEND) un comando con dei parametri errati, ecco che la risposta dal sensore non sarà ovviamente quella attesa (ad esempio di 8 caratteri), ma una bella scritta in inglese magari di 20-30 caratteri che mi spiega che ho inviato un comando non eseguibile. Io ovviamente mi aspettavo 8 caratteri, per cui eseguo l'AG_RECV indicando come "8" la lunghezza dei dati da ricevere, con la conseguenza che inizio a ricevere dati sfasati, peraltro per più ciclo di AG_RECV... in certi casi, poi i dati continuano ad essere ricevuti, sembra quasi che non si riesca più a "svuotare" il buffer della CP (sempre che ce ne sia uno).

Il supporto Siemens mi ha inviato un FB fatto da loro, il quale fondamentalmente non fa altro che eseguire ciclicamente l'AD_RECV richiedendo un singolo Byte alla volta, fino a non trovare un carattere di End Of File specificato, a quel punto impila i bytes in un array e lo da' in uscita, alzando pure un bit di NDR (Nuovi Dati Ricevuti).

Nel mio caso, però, non c'è mai nessun carattere di "fine messaggio", semplicemente la "frase" (o meglio, la risposta di ACK del sensore) termina senza spazi o caratteri di CR...

Qualcuno sa darmi qualche indicazione?

Link al commento
Condividi su altri siti

  • 11 months later...

Ciao scusa, sto analizzando un problema simile, e mi servirebbe la parte del programma che instaura la connessione con il PLC, potresti inviarmi o mettere qui sul forum il programma a tua disposizione che legge i dati dal PLC anche ad 1Byte alla volta per me va bene, poi ci studio sopra

grazie

Link al commento
Condividi su altri siti

Hai osservato che:

  1. la discussione risale al 30 - 05 -2012?
  2. Che nessuno ha risposto?

Inoltre, se avessi letto bene il rgolamento, dovresti sapere che non ci si può accodare ud un'altra discussione, anche se l'argomento è identico.

Discussione chiusa.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...