Vai al contenuto
PLC Forum


Comunicare Con Piu Device Contemporaneamente - si può in 485? e con Ethernet?


MrC

Messaggi consigliati

Vorrei scrivere delle routine di comunicazione con Plc/termoregolatori facendo uso del multithreading, ovvero la "esecuzione di piu processi in contemporanea". Mi stavo chiedendo se fosse possibile lo scambio di dati contemporaneo con 2 device in 485, oppure se tutta la banda del cavo è occupata da una sola comunicazione, e stessa domanda per una comunicazione via ethernet.

Grazie

Link al commento
Condividi su altri siti


Per quanto riguarda la 485 non credo sia possibile secondo la mia esperienza, però non ne sono sicuro. Sono sicuro però per la rete ethernet, basta solo che non sia però lo stesso dispositivo per un plc, cioè n dispositivi di comunicazione collegati ad altrettanti n plc posso comunicare in contemporanea sulla rete ethernet.

Link al commento
Condividi su altri siti

Con una 485 puoi avere solo una comunicazione di tipo half duplex: quando trasmetti non puoi ricevere, e quando ricevi non puoi trasmettere. Una 485 utilizza un solo doppino per trasmissione e ricezione, che non possono essere contemporanee.

Non capisco però cosa intendi per "scambio di dati contemporaneo con 2 device".

Se intendi la comunicazione tra master e slave, vale quanto detto sopra. Potresti avere contemporaneità di trasmissione e ricezione usando una 422, che usa due coppie separate di conduttori per trasmissione e ricezione.

Se invece intendi un master che comunica contemporaneamente con 2 o più slave, è possibile solo dal master verso gli slave nel caso la trasmissione non necessiti di risposta. Potresti, per esempio, inviare un comando comune a tutti gli slave, ma senza conferma da questi che sia stato ricevuto e correttamente interpretato. Di solito nel telegramma di trasmissione si include anche il nodo al quale il telegramma è destinato. Il master invia un telegramma allo slave xxx e si mette in attesa. Tutti gli slave hanno ricevuto il telegramma, ma solo lo slave interessato deve rispondere.

Se, ancora, intendi una comunicazione con più di un master, questo con una 485 non si può fare.

Link al commento
Condividi su altri siti

Vorrei ribadire il concetto espresso prima :

Un master può comunicare con tanti slave, ma solo l'interessato risponde alla propria richiesta quindi in pratica è come se ci fosse un punto punto.

La domanda era se si possono avere piu richieste usando la rete ethernet in contemporanea, e questo è possibile perchè tanti master

possono comunicare con altrettanti slave usando lo stesso "cavo" che in questo caso è la rete ethernet

Link al commento
Condividi su altri siti

prima bisogna chiarire il concetto di "contemporaneo"

se contemporaneo ha lo stesso significato che ha nella lingua italiana la risposta e':

"no ! su nessun bus, passto presente e futuro sara' mai possibile la comunicazione contemporenea tra due device e non esiste alcuna eccezione"

se contemporaneo e' inteso in senso relativo il discorso cambia, in particolare

in ethernet e' possibile avere aperte comunicazioni con piu' device, anche con protocolli diversi, anche con svariati master

in 485 e' possibile aprire, in immediata successione, piu' comunicazioni, anche con protocolli diversi

il discorso multimaster e' possibile ma e' molto piu; critico

nota per batta: la 485 puo' funzionare sia half che full

Link al commento
Condividi su altri siti

Piero, correggimi se sbaglio, ma per me full-duplex significa che contemporaneamente posso trasmettere e ricevere. Con un unico doppino mi pare un pò difficile. La modalità full-duplex è possibile con una 422 che utilizza 2 doppini separati per trasmissione e ricezione, oppure con una 232, che ha sempre trasmissione e ricezione separati. Con un unico doppino o trasmetto, o ricevo. Se faccio una cosa non posso fare contemporaneamente anche l'altra.

C'è ance da dire che la modalità full-duplex, per quanto riguarda almeno la mia esperienza personale, non viene quasi mai usata, dato che un protocollo di comunicazione seriale quasi sempre prevede l'invio di un telegramma dal master, che poi si mette in attesa della risposta, e gli slave rispondono solo su richiesta del master. Questo è quanto si fa di solito, poi si è liberi, ovviamente, di complicarsi la vita come meglio si crede :)

Da Wikipedia:

Il full-duplex è una modalità di invio e ricezione di informazioni digitali, con funzione completamente bidirezionale.

In una connessione full-duplex, il mezzo trasmissivo permette di definire due percorsi separati per i due sensi del flusso dati, ovvero non vi è contesa per il suo utilizzo

Link al commento
Condividi su altri siti

Grazie a tutti per i chiarimenti ...

Sono quasi sicuro di aver ottenuto la risposta che cercavo, tuttavia riassumendo vi spiego il motivo della mia richiesta:

Ho scritto una funzione che legge/scrive tramite un protocollo 485.

Se io con .NET uso questa funzione in Multithreading, cioè la eseguo in contemporanea, posso interrogare 2 o piu device contemporaneamente? Mi sembra di intendere che non posso, perchè quando poi uno dei due mi risponde, va ad occupare il canale di risposta della rete, e se risponde anche l'altro device, i due si sormontano .. o sbaglio? è possibile discriminare le due risposte in questo caso? oppure l'unica soluzione è interrogarne uno alla volta?

Lo stesso discordo non vale però per ethernet (es. Modbus TCP) , perchè qui penso che ogni risposta degli N device interrogati si creerà un canale proprio nella banda disponibile, o sbaglio?

Grazie

Link al commento
Condividi su altri siti

Esiste la comunicazione full duplex anche in rs485 con 2 coppie, una di rx e l'altra di tx e in contemporanea.

Certo che esiste, solo che si chiama 422.

422 e 485 sono praticamente la stessa cosa, l'unica differenza sta appunto nel numero di doppini utilizzati.

Link al commento
Condividi su altri siti

Se io con .NET uso questa funzione in Multithreading, cioè la eseguo in contemporanea, posso interrogare 2 o piu device contemporaneamente? Mi sembra di intendere che non posso, perchè quando poi uno dei due mi risponde, va ad occupare il canale di risposta della rete, e se risponde anche l'altro device, i due si sormontano .. o sbaglio? è possibile discriminare le due risposte in questo caso? oppure l'unica soluzione è interrogarne uno alla volta?

Proprio così: l'unica soluzione è interrogarne uno alla volta.

Link al commento
Condividi su altri siti

Certo che esiste, solo che si chiama 422
NO !

esiste la 422, che e' solo a quattro fili ed e' solo master/slave

esiste la 485 4 fili che non e' uguale alla 422 anche se e' compatibile QUASI sempre

esiste la 485 2 fili che puo' essere multimaster MA funziona solo half

tre specifiche per 3 DIVERSE interfaccie

Link al commento
Condividi su altri siti

Ho cercato un pò in Internet, ed in effetti esiste anche la 485 a 4 fili.

A giudicare però dal pochissimo materiale reperito su tale standard, mi viene da pensare che non sia poi così... standard.

A me non è mai, ma proprio mai, capitato di lavorare con apparecchiature che comunicassero in 485 4 fili. Si parla sempre di 422/485.

Insomma, esisterà a livello puramente teorico, o poco più.

Del resto, rispetto ad una 485 a 2 fili ha come unico vantaggio la possibilità di una comunicazione full-duplex, che però fa a pugni con una rete multidrop. Insomma, avresti potenziali vantaggi solo in una comunicazione punto-punto (ed allora va bene la 422), mentre in multidrop avresti solo due fili in più, e nessun vantaggio pratico.

Link al commento
Condividi su altri siti

Mi è capitato di dover montare un terminale omron di tuipo vecchio l'nt31, a una debita distanza dal plc, ebbene ho dovuto usare un covertitore in 485 full- duplex perchè l'nt trasmette e riceve contemporaneamente

Link al commento
Condividi su altri siti

batta, stai facendo confusione tra multimaster e multidrop

la 485 4 fili non e' multimaster ma e' multidrop, compresa la funzionalita' di brocasting se il protocollo la ammette

nella 422 non e' interdetto l'echo in quanto si da' per scontato che i nodi non lo gestiscono

nella 485 4 fili il collegamento ausiliari lo interdice per rispondere alla specifica base della 485 evitando sovrapposizione di caretteri

esistono vari protocollo, l'esempio che conosco meglio di tutti e' l'snp della general electric sovrapongono l'rx al tx per cui non possono assolutamente funzionare half

a questo aggiungi che in 485 sono possibili reti ibride, con il master 4 fili e gli slave 2 fili, questa tipologia si usa specialmente in fibra ottica e in 422 non funziona proprio per il casino intrinseco derivato dalla sovraposizione di segnale

aggiungi che un convertitore o media converter 485 in genere funziona sia a due che a 4 fili mentre un 422 a due fili e' impossibile che funzioni

genericamente si puo' affermare che e' possibile [salvo eventuali eccezioni] l'uso di convertitori 485 su device 422

tendenzialmente i convertitori 422 su device 485 4 fili danno problemi

Link al commento
Condividi su altri siti

Scusate, io non vorrei che il post si indirizzasse troppo sulla questione 485/422 che personalmente non ritengo proprio on topic, piuttosto si potrebbe aprire un nuovo messaggio per sviscerare questo dubbio?

Mi rimane ancora da confermare il mio dubbio su Ethernet:

nel caso di comunicazione tramite ethernet, penso che ogni risposta degli N device interrogati si creerà un canale proprio nella banda disponibile, o sbaglio? quindi ha senso creare un multithread ?

Link al commento
Condividi su altri siti

Ciao MrC,

Vorrei scrivere delle routine di comunicazione con Plc/termoregolatori facendo uso del multithreading, ovvero la "esecuzione di piu processi in contemporanea". Mi stavo chiedendo se fosse possibile lo scambio di dati contemporaneo con 2 device in 485, oppure se tutta la banda del cavo è occupata da una sola comunicazione, e stessa domanda per una comunicazione via ethernet.
Ho scritto una funzione che legge/scrive tramite un protocollo 485.

Se io con .NET uso questa funzione in Multithreading, cioè la eseguo in contemporanea, posso interrogare 2 o piu device contemporaneamente? Mi sembra di intendere che non posso, perchè quando poi uno dei due mi risponde, va ad occupare il canale di risposta della rete, e se risponde anche l'altro device, i due si sormontano .. o sbaglio? è possibile discriminare le due risposte in questo caso? oppure l'unica soluzione è interrogarne uno alla volta?

Lo stesso discordo non vale però per ethernet (es. Modbus TCP) , perchè qui penso che ogni risposta degli N device interrogati si creerà un canale proprio nella banda disponibile, o sbaglio?

RS485 ti permette collegare in NT fino 32 partners e distanti di 1200 mt.(vedi repeaters)

Puo' venire configurata come "two-wire" or "four-wire." La prima NT, il trasmittente e il ricevente di ogni dispositivo sono collegate mediante il twisted pair (doppino).

La "Four-wire" networks incambio, "ha una porta master con il trasmittente collegato con ogni ricevente slave mediante un twisted pair e gli slaves trasmittenti sono tutti collegati con il master recivente attraverso un secondo twisted pair. In entrambi layout, i devices sono indirizzabili permettendo a caduno nodo di entrare in communicazione independentemente. Solo un device alla volta puo' guidare la linea .

La forma "two-wire"( in half duplex) permette la communicazione tra slaves, mentre "Four-wire"(in full-duplex) e' limitata alla situazione master-slave e quindi slaves non possono communicare tra di loro. Allora per il caso tuo, il layout "Four-wire" andrebbe bene ( piu' meno come fare un MPI NT). Chiedi meglio a quelli che ti hanno venduto i termoregolatori il layout per collegare 2 slaves ( termoregolatori) con il master ( PC) e anche il "NT driver" 485 (SW).

Per quanto riguarda un layout ethernet, sarebbe certamente fattibile, ma ti ci vuole un "network switch" con almeno due porte, per dividere i due segmenti di rete.

Modificato: da Savino
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...