Vai al contenuto
PLC Forum


Comunicazione aperta Ethernet


luca_82

Messaggi consigliati

Ciao a tutti, stò lavorando con una Cpu ET200SP, e devo scambiare dei dati attraverso le istruzioni Open User Comunication con un sensore di visione.

Con il blocco TRCV_C ho creato una connessione con il sensore mettendo l'ingresso "CONT" a true ( e ce lo lascio), e nel momento in cui abilito l'ingresso "EN_R" vado a leggere quello che il sensore di visione automaticamente dopo una scansione butta fuori sulla sua porta Ethernet,cioè il numero dei caratteri della stringa che ha letto e fino a qui tutto torna.

In una fase successiva a questa lettura devo dare un comando al sensore, cioè mandargli un comando sotto forma di stringa, e sulla sua risposta dovrei vedere la stringa che lui ha letto durante l'ispezione....

la sequenza che ho utilizzato è la seguente, blocco TRCV_C per creare il collegamento e leggere la prima volta, e blocchi TSEND e TRCV per dargli il secondo comando e leggere di conseguenza la sua risposta.

Il problema è che quando eseguo l'istruzione TSEND (ho usato questa perchè in realtà ho già un collegamento attivo) l'istruzione TRCV_C mi alza l'errore sull'uscita "ERROR", dandomi come codice di ritorno sull'uscita "STATUS" il valore 80C3 ed il tutto si impalla.

L'allarme dice che il canale di comunicazione è aperto da un altra parte, non riesco a capire dove sia il problema?

Qualcuno sa darmi qualche dritta su come utilizzare i vari blocchi ?

Grazie mille a tutti.

Link al commento
Condividi su altri siti


Prima dici che la ricezione una volta aperta la comunicazione è TRCV, poi l'istruzione che ti da errore è TRCV_C.

Quale delle due è l'affermazione sbagliata?

E' forse questo il motivo dell'errore?

Link al commento
Condividi su altri siti

Ciao Pigro e grazie per aiutarmi...In realtà hai letto bene e probabilmente l'errore è proprio quello, io richiamo la prima volta TRCV_C, dove creo il collegamento, lo attivo e associo ad una memoria l'ingresso di ricezione del blocco. Due Rung dopo richiamo laaltra funzione TSEND e la funzione TRCV.

Ho pensato anche io che probabilmente le due funzioni TRCV_C e TRCV siano ridondanti e questo gli crei problemi, però in realtà quando richiamo il secondo blocco TRCV sul primo TRCV_C l'ingresso di ricezione non è abilitato...

Io potrei anche lasciare solo il blocco TRCV_C, però la prima volta il sensore mi da in uscita un valore esadecimale su un array di 5 Byte, mentre la seconda volta dopo il mio messaggio con la funzione TSEND dovrebbe darmi fuori una stringa...se l'area di memoria su cui vado ad appoggiare i dati è la stessa( essendo i due valori con formati diversi) come faccio poi a leggere i valori correttamente....?

Grazie ancora.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...