Vai al contenuto
PLC Forum


Interrompere Rx Per Una Tx


ultimo07

Messaggi consigliati

Buongiorno , non riesco a capire come interrompere lo stato di ricezione permanente dei dati della porta rs 485 del plc per effettuare una trasmissione dati, praticamente ho fatto uno programma cn interrupt che gestisce sia trasmissione che ricezione bene peró quando il plc si porta in ricezione permanente non riesco a trasmettere . Qualcuno piú esperto potrebbe darmi un suggerimento ? Grazie in anticipo.

Link al commento
Condividi su altri siti


peró quando il plc si porta in ricezione permanente non riesco a trasmettere

Mi sembra di intuire che non viene eseguita la fine della routine di interrupt RCV; il perchè e cosa devi fare per rimediare, senza vedere il software, è difficile da capire.

Link al commento
Condividi su altri siti

E forse é proprio quello non ho usato l'istruzione reti nel programma , proveró , la gestione di questi tipi di comunicazione non é tanto semplice soprattutto per chi non l ha mai fatta , grazie .

Mi sembra di intuire che non viene eseguita la fine della routine di interrupt RCV; il perchè e cosa devi fare per rimediare, senza vedere il software, è difficile da capire.

Non ho usato mai l' instruzione di fine perché negli esempi della siemens non é mai presente .
Link al commento
Condividi su altri siti

Se non termini la sub di ricezione, ma anche quella di trasmissione, il programma non può funzionare bene.

Solitamente l'interrupt di ricezione si limita a prelevare il carattere ricevuto dal buffer rx, con buffer vuoto si esce.

Link al commento
Condividi su altri siti

Tutto ok ho sistemato ,peró il problema rimane perché l operazione ricevi da programma rimane attiva per ricevere l evento e non só come disabilitare l operazione per poter inviare dei dati prima che intervenga la sub routine di interrupt di fine ricezione. Come posso uscire dallo stato rx senza ricevere per passare ad una trasmissione ? Ciao.

Link al commento
Condividi su altri siti

Se hai fatto le cose per bene nella routine di Rx entri solo su interrupt. L'interrupt è pendente solo se nel buffer Rx è presente un carattere. Normalmente quando scatta l'interrupt svuoti il buffer e termini la sub immediatamente.

Link al commento
Condividi su altri siti

Ciao , esatto per prendere devo abilitare la rx cioé azzerare il buffer rx altrimenti la sub routine non scrive nel buffer stesso , adesso dato che il plc é sempre cn ricezione abilitata perché aspetta degli sms in ricezione , come esco da questo stato di ricezione per poter inviare un sms ad un operatore generato da un allarme ? Devo uscire dallo stato di rx per poter effettuare una tx , ho provato anche a modificare sm87.7 portandolo a 0 ma niente da fare.

Link al commento
Condividi su altri siti

Scusa, ma allora non ci siamo capiti!

Lo stato di Rx non deve essere abilitato, è abilitato il solo interrupt di Rx.

Quando entra un carattere nel buffer di ricezione, automaticamente scatta la sub associata all'interrupt di RX.

Link al commento
Condividi su altri siti

Immagine inserita prendiamo questo esempio , se si toglie l ' ultimo blocco in basso la ricezione non funziona giusto ?

Immagine inserita prendiamo questo esempio , se si toglie l ' ultimo blocco in basso la ricezione non funziona giusto ?

Se carico il programma come da esempio non ricevo dati con rx abilitato come passo ad una trasmissione se ho il blocco rx attivo ?
Link al commento
Condividi su altri siti

Questo è un vecchio esempio che avevo allegato ad un mio tutorial. Si usa la seconda seriale dello S7-226 in modalità freeport.

Link al commento
Condividi su altri siti

Ho guardato i programmi ed ho visto che per ricevere come tecnica avete usato i puntatori , cosa che io ho evitato perché non sono riuscito a configurare il programma con quel tipo di configurazione. Saluti.

Link al commento
Condividi su altri siti

Immagine inserita Vediamo se esce qualcosa di costruttivo. Al primo ciclo ho settato smb30 , smb87, smb88, smb89 , smw90, smb94.

Poi come da foto ho abilitato gli interrupt per gli eventi li ho abilitati e ho fatto una trasmissione dati per settate il modem .

Link al commento
Condividi su altri siti

Il programma da stop a run abilita i parametri di comunicazione trasmette.le stringhe per il set delle impostazioni del modem , il modem risponde i dati vengono messi nel buffer di ricezione correttamente .

Da qua in poi non riesco piú a ricevere dati ma solo a trasmettere . Dove sbaglio , perché anche se la ricezione é chiusa non riesco piú a ricevere ? Saluti.

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...