Vai al contenuto
PLC Forum


C#, sensore NPN NO e porta RS232


ienaboard

Messaggi consigliati

Buonasera.

Sto seguendo da un po' questo interessante forum e finalmente mi sono deciso a scrivere.

Il discorso nel suo complesso sarebbe un po' complicato, ma mi limiterò a richiedere l'unica cosa che realmente mi serve.

 

Ho la necessità di collegare una fotocellula NPN NO a 3 cavi, alimentata a 12V, con la porta seriale di un PC, in modo che il PC riceva semplicemente un segnale quando la fotocellula è impegnata.

Il tutto sarà controllato da un modulo di un programma scritto in C#

 

La fotocellula ha un alimentatore proprio.

 

Quello che chiedo è: in che modo devo collegare il cavo nero (di output) della fotocellula alla porta seriale in modo che il segnale di uscita possa essere intercettato? Purtroppo non ho competenze riguardo il funzionamento della porta seriale di un PC, di conseguenza quello che so sono solamente delle informazioni molto frazionate.

 

Sperimentando sono riuscito a fare una cosa di questo tipo:

Ho cortocicuitato il pin 1 DCD con il pin 4 DTR della seriale tramite una resistenza da 10k. Al pin 4 ho collegato il cavo di uscita della fotocellula. Poi sul mio programma ho abilitato la DTR e mi sono messo in ascolto.

 

Quando la fotocellula viene impegnata intercetto un cambio di stato sulla seriale (evento SerialPort_PinChanged) e quindi riesco a fare quello che devo, solo che non sono riuscito a capire quale "cambio di stato" si riferisca. Praticamente l'evento è di tipo SerialPinChange.CDChanged ma se poi vado a verificare lo stato del CDHolding questo è sempre a TRUE

 

Il mio dubbio è quello di aver sbagliato qualcosa a livello di collegamenti sulla seriale, poiché il tutto deve rimanere acceso per diverse ore continuativamente, vorrei evitare di bruciare tutto e rimanere a piedi a metà lavoro.

 

Si accetta qualsiasi tipo di suggerimento.

 

Grazie

Link al commento
Condividi su altri siti


Se mi posso permettere usare la seriale in quel modo, ammesso che funzioni, mi pare veramente brutale e poco professionale. Io fossi in te userei un modulino di ingresso che poi comunicherà col tuo pc in modo seriale magari in modbus RTU anche perchè credo che per c# ci siano biblioteche già pronte. Poca spesa tanta resa e affidabilità di tipo" industriale".

Link al commento
Condividi su altri siti

Nulla di professionale infatti, si tratta di una cosa 100% amatoriale. Però mi serve che funzioni. Adesso com'è adesso ho esattamente quello che mi serve ma se sono qua a chiedere è proprio perché io per primo non sono convinto di quello che ho fatto :-)

 

Puoi darmi qualche indicazione per uno di questi moduli di ingresso? La mia unica necessità è che il ritardo del segnale (da quando la fotocellula è impegnata a quando il PC se ne accorge) sia inferiore al centesimo di secondo.

 

Grazie mille.

Link al commento
Condividi su altri siti

Ciao,

ai tempi avevo fatto qualcosa di simile ma con la parallela; c'era, e se non sbaglio esiste ancora, un driver - WinIO, mi pare - che permette di leggere i singoli bit delle porta parallela (Windows ti impedisce di arrivare all'hardware direttamente); a questo punto dovresti solo convertire la tensione di lavoro in 5 V TTL.

Per i moduli I/O, dai un occhio al sito della Elsist: avevo letto di moduli a basso costo.

Link al commento
Condividi su altri siti

Puoi usare moduli Datexel o Seneca (entrambi prodotti in Italia). Interfacci segnali analogici e digitali ed hai anche un aserie dotata di interfaccia RS485, così da potersi connettere in modubus con un PC. Ti forniscono anche librerie di connssione.

Link al commento
Condividi su altri siti

 

il 21/10/2017 at 10:51 , drugo66 scrisse:

Ciao,

ai tempi avevo fatto qualcosa di simile ma con la parallela; c'era, e se non sbaglio esiste ancora, un driver - WinIO, mi pare - che permette di leggere i singoli bit delle porta parallela (Windows ti impedisce di arrivare all'hardware direttamente); a questo punto dovresti solo convertire la tensione di lavoro in 5 V TTL.

Per i moduli I/O, dai un occhio al sito della Elsist: avevo letto di moduli a basso costo.

Ciao, 

io come dicevo sopra ho fatto un esperimento con la libreria System.IO.Ports del Framework .NET, presente se non erro già dalla versione 1.1 o giù di lì. Ho la possibilità di leggere runtime lo stato di ogni singola porta e di intercettare i cambi di stato.

Mi sono letto qualcosa sulla RS232 e ho cambiato un po' i cablaggi: collegando la porta 7 (RTS) con la 8 (CTS) che uso come input e collegando il cavo del segnale del sensore NPN alla porta 7, lo stato della porta 8 mi cambia esattamente come atteso e il mio programma funziona correttamente senza "salti" strani come accadeva prima (prima ad ogni passaggio davanti la fotocellula il cambio di stato veniva intercettato dalle 3 alle 5 volte, ora solo 2, come mi aspetto).

 

Mi rendo però conto che il "lavoro" non è propriamente dei migliori, quindi mi sono messo a cercare questi moduli. A basso costo non ho trovato praticamente nulla tra i nomi che sono stati fatti qua, però ho trovato due oggetti che potenzialmente potrebbero fare al caso mio.

 

Uno è questa scheda  che mi dà la possibilità di collegare fino a 8 in/out mentre l'altro è quest'altra scheda che se l'avessi trovata quando smanettavo col MAME sarebbe stata la svolta :-D

Per quanto riguarda queste due ultime in effetti il mio grosso dubbio riguarda la compatibilità con C# e la possibilità di interfacciarmi con un programma scritto da me.

 

Voi avete già avuto a che fare con queste cose a bassissimo costo?

 

Grazie.

Link al commento
Condividi su altri siti

Non credo siano prodotti adatti ad un lavoro di automazione; son prodotti per applicazioni amatoriali, al più per uso ufficio.

 

Link al commento
Condividi su altri siti

  • 2 weeks later...

Riguardo alle schede che ho segnalato, non ho ancora avuto alcun feedback per quanto riguarda la compatibilità col mondo C#. Magari più avanti proverò ad acquistarle per capire come funzionano.

 

Mi rendo conto che non ho mai spiegato cosa sto facendo: semplicemente un cronometro azionato da una fotocellula. Non ho alcuna ambizione "industriale", è una cosa assolutamente ludica.

Link al commento
Condividi su altri siti

il 20/10/2017 at 19:06 , Lucky67 scrisse:

Se mi posso permettere usare la seriale in quel modo, ammesso che funzioni, mi pare veramente brutale e poco professionale

 

Una domanda: che sia poco professionale non lo metto in dubbio. Quello che mi servirebbe sapere: c'è il rischio di fare qualche sorta di danno ad usare una seriale in questo modo? Tieni conto che la seriale è "fittizia" in quanto è un adattatore RS232 -> USB.

Link al commento
Condividi su altri siti

7 ore fa, ienaboard scrisse:

Quello che mi servirebbe sapere: c'è il rischio di fare qualche sorta di danno ad usare una seriale in questo modo?

 

La possiibiltà c'è, anche se il più esposto è l'adattatore. Senza contare che in genere questi dispositivi sono "permalosi2, si guastano per un nonnulla.

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