A OMUNICAZIONE ERIALE 1 INDICE Capitolo 1 Introduzione alla Comunicazione Seriale Pag. 3 Capitolo 2 Protocollo MODBUS Pag. 35 2 CAPITOLO 1 INTRODUZIONE ALLA COMUNICAZIONE SERIALE 3 CONTENUTI - Introduzione alla Comunicazione Seriale pag. 5 - Interfaccia HW pag. 6 - Standard Seriale R232 pag. 6 - Standard Seriale RS485 pag. 6 - Standard Seriale RS485-4fili pag. 6 - Collegamento Seriale Current Loop “ Passivo ” pag. 7 - Configurazioni Più Complesse pag. 7 - Protocollo Asincrono pag. 9 - Problemi di Comunicazione? pag. 10 - RS232 pag. 10 - RS485 pag. 12 - RS485-4fili pag. 15 - Current Loop pag. 19 - Interfaccia Current Loop Negli Strumenti Gefran pag. 20 - Collegamento pag. 21 - Glossario pag. 22 - Collegamenti elettrici (PC,convertitori,strumentazione) pag. 23 4 Introduzione alla Comunicazione Seriale Personal Computer Industriale ( Master ) Strumentazione ( Slave ) Con il termine comunicazione digitale si intende il complesso delle operazioni attraverso le quali viene realizzato il collegamento tra apparati elettronici, quali strumenti, plc o terminali ed un personal computer ( di seguito chiamato PC ). Il PC ( che ha la funzione di Master ) interroga i dispositivi connessi ( Slaves ) chiedendo loro di fornire le informazioni richieste quali: il valore misurato in ingresso, lo stato degli allarmi ecc. Per implementare questa funzionalità è indispensabile verificare le seguenti condizioni: Il PC ( Master ) ed i dispositivi ( Slaves ) devono possedere uno stesso tipo di interfaccia Hardware; esistono infatti diversi standard con caratteristiche elettriche differenti ( ricordiamo, tra i più comuni, gli standard RS232, RS485,RS422, Current Loop ). Se il Master e gli Slaves possiedono interfacce HW differenti, è necessario utilizzare un adeguato convertitore ( quale il Gefran CLB94 ) che svolge anche il compito di optoisolare la linea di comunicazione. Il PC ( Master ) ed i dispositivi ( Slaves ) devono utilizzare uno stesso protocollo di comunicazione ( in pratica devono “ parlare la stessa lingua ” ); il protocollo utilizzato da GEFRAN è un protocollo “ proprietario “, ovvero sviluppato dalla stessa GEFRAN per ottimizzare la comunicazione seriale con i propri strumenti e denominato CENCAL. Sui modelli più avanzati è disponibile anche il protocollo MODBUS, uno standard 5 riconosciuto. Interfaccia HW Gli standard HW utilizzati da GEFRAN per la comunicazione seriale sono i seguenti: n n n n RS232 RS 485 RS 485-4fili Current Loop(non prevista nei nuovi strumenti) Nota importante: I nostri strumenti prevedono il collegamento multi-point a 4 fili (RS485 a 4 fili) potendo supportare anche lo standard RS422 che si differenzia dalla RS485 a 4 fili per il fatto che si limita ad un collegamento di trasmissione/ricezione tra due sole unità ( un Master ed uno Slave ) non prevedendo la condizione di terzo stato della linea (open collector). La possibilità di avere più di uno Slave è solo del collegamento in RS485 (2 o 4 fili). Da questo momento in poi defineremo con RS485 lo standard a 2 fili e con RS485 4-fili lo standard RS485 a 4 fili. Standard Seriale RS232 E’ uno standard EIA che definisce le caratteristiche elettrico/funzionali dell’ interfaccia seriale per il collegamento tra due sistemi. L’informazione viene trasmessa mediante un segnale in tensione riferito ad un filo di massa ( il valore del singolo bit viene decodificato dal ricevitore sulla base del valore in tensione rilevato ). Questa soluzione permette il collegamento diretto di un PC con uno strumento dotato di interfaccia seriale RS232 entro brevi distanze. Le velocità di trasmissione utilizzabili sono: 1200, 2400, 4800, 9600 e 19200 bauds. I limiti sono nella massima velocità che non supera i 20 Kb/sec e nella distanza massima tra gli apparati non superiore ai 15 metri per la scarsa immunità ai disturbi elettromagnetici. Prevede il collegamento di una sola unità Slave. L’ unico vantaggio è nel basso costo. Standard Seriale RS485 e RS485 4-fili La caratteristica del segnale che “ porta ” l’informazione è la tensione, ma a differenza della RS232 dove la tensione è rilevata rispetto ad un filo di massa, qui viene rilevata in modo “ differenziale ” tra due fili dei quali l’ uno porta il segnale e l’ altro porta il segnale negato. In questo modo si ottiene una maggiore immunità ai disturbi e si riescono a coprire distanze maggiori. Per questi 2 standard occorre utilizzare PC e strumenti dotati dell’opportuna interfaccia RS485 o RS485 4-fili, ovvero utilizzare moduli di conversione CLB94(solo 4 fili) o ADAM(2 e 4 fili) che convertano da una parte ( lato PC ) la RS232 in RS485 o RS485 4-fili verso il lato strumenti. Le velocità di trasmissione selezionabili sono: 1200, 2400, 4800,9600 e 19200 bauds. 6 Si possono considerare valide le caratteristiche dello standard EIA RS485 previsto per protocolli half-duplex: n data rate massimi di 10 Mbps entro i 12 metri n distanze sino ad 1.2 Km con velocità di 100 Kb/sec n un massimo di 32 unità collegate su un’ unica linea n terminazione di linea con due resistenze da 220 Ohm agli estremi n trasmissione differenziale con conseguente bassa emissione elettromagnetica Collegamento Seriale Current Loop “ Passivo ” La caratteristica del segnale ricevuto che “ porta ” l’informazione è la corrente. Questa soluzione richiede, per il collegamento con un PC di supervisione, un modulo di conversione RS232/Current Loop Passiva ( ad esempio modulo Gefran CLB94 ). Il convertitore, che deve essere posto entro una distanza di 2...3 metri dal PC e fornisce la corrente necessaria sia in ricezione che in trasmissione ( per questo il collegamento è detto “ passivo ” ), può collegare fino a 10 unità Slave poste entro una distanza di 100 metri. La velocità di trasmissione standard è 1200 bauds. Calcolo del numero massimo di strumenti collegabili in rete a seconda del collegamento elettrico scelto utilizzando un convertitore CLB/94. Uscita CLB/94 V uscita CLB/94 I max CLB/94 RS485-4fili Current loop parallela Current loop serie 10V 24V 30mA 240mA 24V 20mA Impedenza Impedenza max ingresso CLB/94 RX+/RXstrumento Gefran 12Kohm 1Kohm 1200ohm 90ohm I singolo N° massimo strumento strumenti 0.83mA 24mA 36 10 - 13 I valori di tensione ,corrente,impedenza riportati nella tabella servono per valutare eventuali altri convertitori seriali da utilizzare in futuro o che si trovano già inseriti in una rete. Configurazioni Più Complesse Ove le distanze lo richiedano, ovvero sia necessario collegare un numero di strumenti in rete maggiore del n° massimo indicato , è possibile raggiungere l’obiettivo distinguendo 3 casi: a) Current loop serie(CLB) : è necessario aggiungere un altro CLB94 al posto del 10mo strumento e collegare da questo punto in poi gli strumenti successivi. 7 b) Current loop parallela(CLB): fino a tre CLB94 in cascata ( il primo di conversione RS232/Current loop e gli altri due in Current Loop ), arrivando a coprire complessivamente una distanza di 300 metri. c) Utilizzando il convertitore ADAM 4520 si possono collegare fino a 32 strumenti in RS485 e in RS485-4fili. Nel caso sia necessario collegare più di 32 strumenti si può utilizzare un repeater ADAM 4510 che estende la rete di altri 32 strumenti aumentando inoltre la distanza di altri 1200mt. E’ pure possibile collegare in un’ unica struttura multidrop ( una struttura cioè costituita da più oggetti collegati in seriale ) varie unità dotate di interfacce fisiche di comunicazione diverse, utilizzando gli opportuni moduli CLB di conversione. 8 Protocollo Asincrono La trasmissione asincrona non richiede la contemporanea trasmissione di un segnale di riferimento necessario al ricevitore per il campionamento del segnale stesso. Un sistema di trasmissione asincrona trova nel formato stesso un elemento di sincronizzazione ( esempio: il sempre presente bit di Start ). Si desidera ricordare il formato di una trasmissione asincrona. Nel seguente schema è rappresentata la struttura di un byte con 5, 6, 7, 8 bit di dato, con o senza bit di parità. Sequenza temporale dei dati Stato Logico “ 1 ” ( MARK ) LSB 0 1 2 3 4 5 MSB 6 7 8 bit Logico “ 0 ” ( SPACE ) Bit di Start del successivo byte 1, 1.5, 2 bit di Stop Bit di Parità ( opzionale ) 5,..., 8 bit di dato Bit di Start 9 Problemi di Comunicazione? Si propongono semplici indicazioni per una rapida verifica di un corretto funzionamento per Linee di comunicazione RS232, RS485,RS485-4fili, Current Loop. Per verificare collegamenti e valori di tensione e di resistenza è sufficiente un multimetro. Se fossero necessarie verifiche approfondite quali il rilevamento di forme d’onda si deve poter disporre di un semplice oscilloscopio. RS232 La linea è costituita da tre conduttori, un riferimento GND e due segnali Rx e Tx. I nomi dei segnali sono assegnati e riferiti all’ apparato PC o strumenti, cioè il segnale Rx è per ricevere dati e il segnale Tx è per trasmettere dati. Da quanto detto, si giustifica il tipo di collegamento tra due unità che prevede che il segnale Tx di uno si colleghi al segnale Rx dell’ altro. Apparato 1 Rx Tx GND Apparato 2 Rx Tx GND Principali controlli per un corretto funzionamento: a. Verificare il collegamento elettrico, individuando i segnali Tx, Rx, GND b. In uno stato di inattività della linea è presente lo stato logico “ 1 ” ( MARK ) che corrisponde a una tensione negativa -5...-15V, è una misura da poter fare con semplice tester. c. Con comunicazione attiva, la forma d’ onda presenta variazioni di stato logico a “ 0 ” ( SPACE ) corrispondente a un valore di tensione 5...15V. d. Disponendo di un semplice oscilloscopio possiamo individuare la conformità della forma d’onda al seguente modello: “ 0 ” ( SPACE ) +5...+15V +3V 0V -3V -5...-15V “ 1 ” ( MARK ) Max. 1 msec e. La resistenza di ingresso misurata tra Rx e GND deve essere inferiore ai 3...7 KOhm. 10 Segnale rilevato tra RX+ e RX- sullo strumento 600. (Massa sonda su RX-) Assenza di comunicazione sulla linea = -12V Messaggio analizzato = $02 = 00000010B Segnale rilevato tra TX+ e TX- sullo strumento 600. (Massa sonda su TX-) Strumento non selezionato = 0V Strumento selezionato = -6V Messaggio analizzato = $FFFE = 11111111 11111110B 11 RS485 La linea è costituita da due conduttori più uno opzionale di riferimento di massa, il segnale è di tipo differenziale. Questo tipo di collegamento prescinde dal ruolo che svolge l’apparato collegato alla linea. E’ da osservare che il collegamento RS485 a 2-fili si può ottenere da un’ interfaccia a 4-fili collegando Rx+ con Tx+ e Rx- con Tx-. E’ necessario provvedere ad una polarizzazione della linea per evitare uno stato indeterminato quando questa si trova in alta impedenza. La polarizzazione deve essere tale da imporre uno stato MARK. In questo caso l’ unità Master trasmette un messaggio, tutti gli Slaves lo ricevono, al termine se uno di questi deve dare risposta si pone come Master ad inviare il proprio messaggio. Caratteristica di questo collegamento è che tutti gli apparati collegati alla linea ricevono ciò che transita sulla stessa. R = 220 Ohm Tx+ Tx- Rx+ Rx- Tx+ Tx- Rx+ Rx- Tx+ Tx- R+ R- Lo standard RS485 prevede un massimo di 32 unità collegate sulla stessa linea. Ogni unità collegata pone la porta Tx in alta impedenza, cioè non impone alcun stato elettrico alla linea stessa; quando un elemento deve trasmettere attiva la propria linea di trasmissione normalmente tramite un segnale RTS ( richiesta di trasmissione ), anche chi trasmette riceve i dati che invia in trasmissione. Note: Il collegamento in RS485 2-fili con schede PC/AT è il seguente: PC/AT ( Master ) Strumentazione Gefran A+ ( RXD/TXD+ ) Tx/RxB- ( RXD/TXD- ) Tx/Rx+ Il collegamento in RS485 2-fili tramite convertitore ADAM è il seguente: PC/AT ( Master ) RX TX GND ADAM IN(RS232) OUT(RS485) TX RX GND DATA + DATA - 12 Strumentazione Gefran A B Principali controlli per un corretto funzionamento: ( I riferimenti Tx e Rx sono relativi ai collegamenti di strumentazione Gefran ) a. Verificare il collegamento elettrico, individuando il segnale Tx+/Tx- ( Rx+/ Rx- ) b. In uno stato di inattività della linea, se è inserita la polarizzazione della stessa, è presente lo stato logico “ 1 ” ( MARK ) che corrisponde ad una tensione negativa ( V+ ) - ( V- ) normalmente -3...-5V ( che rientra nell’ intervallo ammesso -0.2...-19 ); è una misura da poter fare con un semplice tester c. Con comunicazione attiva, la forma d’ onda presenta variazioni di stato logico a “ 0 ” ( SPACE ) corrispondente ad un valore di tensione positiva ( V+ ) - ( V- ) Tx+ TxV+ +12V V+ Rx+ Rx- +11.8V Indeterminazione +/-0.2V +11.8V SPACE V- -7V +12V VMARK -6.8V -7V -6.8V d. Disponendo di un semplice oscilloscopio possiamo individuare la conformità della forma d’ onda al seguente modello: “ 0 ” ( SPACE ) ( V+ ) - ( V- ) +3...+5V 0V -3...-5V t “ 1 ” ( MARK ) Bit-time = 1000/baud msec e. La resistenza di linea misurata tra + e - deve essere superiore a 60 Ohm, togliendo le terminazioni deve essere superiore a 12 KOhm/n. apparati collegati. 13 Collegamento: PC->ADAM->600 Protocollo Modbus: Segnale rilevato tra A e B sullo strumento 600. (Massa sonda su B) Assenza di comunicazione sulla linea = 1V Messaggio analizzato = $02-$03-$00 = 00000010B 00000011B 00000000B Segnale rilevato tra A e B sullo strumento 600. (Massa sonda su B) Strumento selezionato = 1V Messaggio analizzato = $02-$03_$02… = 00000010 00000011 00000010B 14 RS485 4 fili La linea è costituita da quattro conduttori più uno opzionale di riferimento di massa, due segnali differenziali Rx+/Rx- e Tx+/Tx-. I nomi dei segnali sono assegnati e riferiti all’ apparato PC o strumenti, cioè il segnale Rx è per ricevere dati ed il segnale Tx è per trasmettere dati. Da quanto detto, si giustifica il tipo di collegamento tra le unità che prevede che il segnale Tx del Master ( PC ) si colleghi ai segnale Rx degli Slaves ( strumenti ) e viceversa. E’ da osservare che il collegamento RS422 si limita ad un collegamento di trasmissione/ricezione tra due sole unità ( un Master ed uno Slave ), le possibilità di avere più di uno Slave sono solo del collegamento in RS485-4fili. Master(CLB) Rx+ Rx- R Tx+ Tx- Slave1(standard) Slave 2(standard) RxRx+ RxRx+ TxTx+ TxTx+ Slave n(standard) R RxRx+ TxTx+ Resistenza di terminazione R = 220 Ohm Master(CLB) Rx+ Rx- R Tx+ Tx- Slave1(Gefran) Slave 2(Gefran) Rx+ Rx- Rx+ Rx- Tx+ Tx- Tx+ Tx- Slave n(Gefran) R Rx+ RxTx+ Tx- Resistenza di terminazione R = 220 Ohm Note: Il collegamento in RS485 4-fili con schede PC/AT è il seguente: PC/AT (Master) RXD+ RXDTXD+ TXD- Strumentazione Standard Tx+ TxRx+ Rx- Strumentazione Gefran TxTx+ RxRx+ Principali controlli per un corretto funzionamento: ( I riferimenti Tx e Rx sono relativi ai collegamenti di strumentazione Gefran ) a. Verificare il collegamento elettrico, individuando i segnali Tx+/Tx-, Rx+/Rxb. In uno stato di inattività della linea è presente lo stato logico “ 1 ” ( MARK ) che corrisponde a una tensione negativa ( VRx+ - VRx- ) normalmente -3...-5V ( che rientra nell’ intervallo ammesso -0.2...-19V ); è una misura da poter fare con un semplice tester 15 c. Con comunicazione attiva, la forma d’ onda presenta variazioni di stato logico a “ 0 ” ( SPACE ) corrispondente a un valore di tensione positiva ( VRx+ - VRx- ) +11.8V +12V VRx+ VRx+ Rx+ ( A ) VRx- Rx- ( B ) SPACE Indeterminazione +/-0.2V +11.8V -7V +12V VRxMARK -6.8V -7V -6.8V d. Disponendo di un semplice oscilloscopio possiamo individuare la conformità della forma d’ onda al seguente modello: “ 0 ” ( SPACE ) ( VRx+ ) - ( VRx- ) +3...+5V 0V -3...-5V t “ 1 ” ( MARK ) Bit-time = 1000/baud msec e. La resistenza di ingresso di ogni ricevitore misurata tra Rx+ e Rx- deve essere superiore a 12 KOhm, senza resistenza di terminazione deve essere superiore a 12 KOhm/n. apparati collegati Collegamento: PC->CLB94->600 Protocollo Cencal: Configurazione jumper CLB94: Lato componenti: S15 S16 S14 à fondo scatola In Cencal questa polarizzazione serve per segnalare l’eventuale rilascio della linea ed è opposta al livello del bit di stop del dato ritrasmesso. 16 Segnale rilevato tra RX+ e RX- sullo strumento 600. (Massa sonda su RX-) Assenza di comunicazione sulla linea = -4V Messaggio analizzato = $02 = 00000010B Segnale rilevato tra TX+ e TX- sullo strumento 600. (Massa sonda su TX-) Strumento selezionato = -3V Messaggio analizzato = $FFFE = 11111111 11111110B Protocollo Modbus: Configurazione jumper CLB94: Lato componenti: S15 S16 S14 à fondo scatola 17 In Modbus la polarità deve seguire il bit di stop del dato in caso di linea rilasciata (segnale RTS disattivo). Con polarità opposta si avrebbe un cambio di stato a fine dato che andrebbe a generare un bit di start non voluto spedendo sulla linea un carattere in più. Segnale rilevato tra RX+ e RX- sullo strumento 600. (Massa sonda su RX-) Assenza di comunicazione sulla linea = -4V Messaggio analizzato = $02-$03-$00 = 00000010B 00000011B 00000000B Segnale rilevato tra TX+ e TX- sullo strumento 600. (Massa sonda su TX-) Strumento selezionato = -3V Messaggio analizzato = $02-$03_$02… = 00000010 00000011 00000010B 18 Current Loop La linea è costituita da quattro conduttori, due segnali Rx+/Rx- e Tx+/Tx-. I nomi dei segnali sono assegnati e riferiti all’ apparato PC o strumenti, cioè il segnale Rx è per ricevere dati ed il segnale Tx è per trasmettere dati. Da quanto detto, si giustifica il tipo di collegamento tra le unità che prevede che il segnale Tx del Master (PC) si colleghi ai segnale Rx degli Slaves ( strumenti ). Gli strumenti Gefran dispongono di interfaccia seriale passiva in corrente, il collegamento può essere di tipo serie o di tipo parallelo, consigliato è quest’ ultimo in modo da poter mantenere la continuità e funzionare anche in caso di esclusione di un elemento Slave: Collegamento tipo serie: +Tx- +RxMaster +Rx- +TxSlave1 +Rx- +TxSlave 2 +Rx- +TxSlave n Il Master attivo in trasmissione è un generatore di corrente modulato on-off: stato logico “ 1 ” ( MARK ), corrente 20mA stato logico “ 0 ” ( SPACE ), corrente 0mA Il Master attivo in ricezione dispone di un generatore di corrente 20mA, la modulazione on-off è effettuata dallo Slave selezionato, gli Slaves non selezionati mantengono lo stato logico “ 1 ” ( MARK ) consentendo la circolazione della corrente. Collegamento tipo parallelo: +Tx- +RxMaster +Rx- +TxSlave1 +Rx- +TxSlave 2 +Rx- +TxSlave n Il Master attivo in trasmissione è un generatore di tensione modulato on-off: stato logico “ 1 ” ( MARK ), tensione 20V, corrente ( 20mA * n.slave ) stato logico “ 0 ” ( SLAVE ), tensione 0V, corrente 0mA Il Master attivo in ricezione dispone di un generatore di corrente 20mA, la modulazione on-off è effettuata dallo Slave selezionato, gli Slaves non selezionati si posizionano in uno stato di alta impedenza. 19 Interfaccia Current Loop negli Strumenti Gefran Gli strumenti prevedono in ricezione, in serie all’ ingresso passivo isolato due resistenze selezionabili per un collegamento serie o parallelo: Rx+ R = 1KOhm R = 100 Ohm Ponticello chiuso in caso di collegamento serie Rx- La trasmissione prevede un interruttore statico isolato: Tx+ R = 100 Ohm E’ presente ed indicato nei manuali il jumper aperto in caso di collegamento serie Tx- La linea ricezione Rx è isolata da quella di trasmissione Tx. Gefran propone il convertitore CLB94 per l’ adattamento RS232/Current Loop. Le principali caratteristiche sono: n isolamento elettrico tra linea RS232 e la linea in corrente n per un collegamento parallelo dispone in trasmissione di un generatore a 20V protetto contro il cortocircuito ( max. 300mA ) per alimentare un massimo di 10 strumenti in parallelo n per un collegamento serie dispone in trasmissione di un generatore di corrente di 20mA su carico massimo di 600 Ohm n in ricezione possiede un generatore di corrente 20mA su un carico massimo di 1.6 KOhm Principali controlli per un corretto funzionamento: a. Verificare il collegamento elettrico, individuando i segnali Tx, Rx b. In uno stato di inattività della linea è presente lo stato logico “ 1 ” ( MARK ) che corrisponde a corrente: una misura da poter fare con un semplice tester da porre in serie nella linea n In collegamento serie nella linea di trasmissione Master la corrente è 20mA n In collegamento parallelo nella linea di trasmissione Master la corrente è 20mA*n.Slave n Nella linea di ricezione Master la corrente è 20mA c. Con comunicazione attiva, la forma d’ onda presenta variazioni di stato logico a “ 0 ” ( SPACE ) corrispondente a corrente nulla 20 d. Disponendo di un semplice oscilloscopio possiamo individuare la conformita’ della forma d’onda al seguente modello misurando la corrente tramite una resistenza di shunt da porre in serie sui morsetti di collegamento della linea: V R = 100 Ohm Rx+/Tx+ I Rx-/Tx- “ 1 ” ( MARK ) +1.5...+2.5V V 0V “ 0 ” ( SPACE ) t Bit-time = 1000/baud msec Collegamento Il collegamento può essere eseguito con cavo a coppie twistato, possibilmente schermato Collegare lo schermo a terra solo da un lato tramite apposite fascette e dove possibile si consiglia di vincolarlo tramite capacità al riferimento di terra. Non inserire il cavo di collegamento seriale in canaline dove siano già presenti cavi con correnti elevate ed impulsive come ad esempio motori con azionamento inverter. All’ interno di un quadro elettrico, dove possibile utilizzare canaline metalliche ed intersecare linee di potenza in modo ortogonale. 21 Glossario A-Z baud - unità di misura della velocità di una trasmissione seriale, equivale al numero di bit trasmessi in un secondo. bit - elemento base di un sistema numerico binario ( binary digit ), assume valore “ 0 ” o “ 1 “ byte - insieme di 8 bit ( 8 binary digit ), un byte assume valori binari compresi tra 0 e 255 capacità - elemento fisico con caratteristica prevalente di accumulare carica elettrica, se ai suoi capi si applica una tensione continua si comporta come circuito aperto, sottoposto a tensione alternata ad alte frequenze si comporta come un corto circuito. data rate - velocità di trasmissione dati. digitale - si associa ad un evento o grandezza fisica che può essere descritta da un numero finito di stati ( es. ingresso digitale, segnale digitale ). forma d’ onda - rappresentazione grafica ( ampiezza-tempo ) dell’ andamento temporale di una grandezza fisica. full duplex - sistema di trasmissione che permette ad un apparato di effettuare contemporaneamente la trasmissione e la ricezione di dati. gnd - o ground, identifica il potenziale di riferimento delle misure di tensione presenti in un circuito elettrico. half duplex - sistema di trasmissione che permette ad un apparato di effettuare in fasi alterne la trasmissione e la ricezione di dati. impedenza - rapporto tra tensione e corrente misurabile ai capi di una rete elettrica, composta da una parte reale ed una immaginaria. master - apparato che ha il controllo di un altro ( Slave ). parallelo ( collegamento ) - in un collegamento parallelo l’ informazione raggiunge contemporaneamente tutti gli apparati connessi parità - caratteristica di una trasmissione seriale per il controllo dell’ integrità dei dati, può essere pari ( even ) o dispari ( odd ); da ciò dipende lo stato di un bit aggiunto ad altri per portare il numero di bit = ” 1 ” al valore di parità dichiarato. polarizzazione - impone un definito stato elettrico ad una linea quando questo non è imposto da elementi ad essa collegati. stato logico - elemento per descrivere grandezze digitali. resistenza ( elettrica ) - parte reale di un’ impedenza, elemento che dissipa potenza attiva dove la corrente è in fase con la tensione applicata ai capi, si misura in Ohms. serie ( collegamento ) - in un collegamento serie l’ informazione raggiunge gli apparati in modo sequenziale, entra ed esce da uno per entrare in quello successivo. slave - apparato connesso ad un altro ( Master ), lo “ Slave ” è controllato dal Master. shunt - elemento per convertire la misura di una corrente in una misura di tensione. tensione ( elettrica ) - grandezza misurabile come differenza di potenziale tra due punti di una rete elettrica, si misura in Volts. terminazione - elemento che impone un definito valore di impedenza ad una linea di trasmissione. word - insieme di due byte ( 16 bit ), una word assume valori binari compresi tra 0 e 65535 22 Collegamenti elettrici (PC,convertitori,strumentazione) Nelle pagine seguenti vengono descritti tutti i possibili collegamenti tra PC di supervisione e strumenti Gefran in RS232, RS485-4fili e RS485. Il protocollo usato nella comunicazione è indipendente dal collegamento elettrico tranne nel caso di RS485 dove il protocollo Cencal non può essere utilizzato. Nota importante: nel momento in cui si utilizza il convertitore CLB94 è necessario settare i jumper di configurazione interni a seconda del collegamento effettuato in ingresso ed in uscita al CLB stesso. Queste settature sono indicate sul manuale del CLB94. Se si utilizza il convertitore ADAM è necessario selezionare il baud_rate ed il tipo di collegamento in uscita (RS485 o RS422) semplicemente settando un dip-switch interno la cui descrizione è riportata sulla scatola del convertitore stesso. L’uscita RS422 del convertitore ADAM si interfaccia con la RS485-4fili degli strumenti Gefran come indicato nella configurazione relativa riportata in seguito. 23 Strumenti Configurazione RS232 RS485 RS485 Protocollo Protocollo Connettore Gefran Seriale di (A-B) -4fili Modbus Cencal per cavetto default Winstrum (protocollobaud-paritàcodice) X X X X X X 600/601 Modbus-19200nessuna- 1 Modbus-19200X X X X X X 4-40T nessuna- 1 Cencal-1200- 1 X X X X X X 40TB X X X GEFLEX Modbus-19200nessuna- 1 Cencal-1200- 1 X X X X X X 800 Cencal-1200- 1 X X X X X X 1600 Cencal-1200- 1 X X X X X X 1800 Cencal-1200- 1 X X X X 2301 Cencal-1200- 1 X X X X 2300 Cencal-1200- 1 X X X X 2308 Cencal-1200- 1 X X X 1000 Cencal-1200- 1 X X X 1001 Cencal-1200- 1 X X X 1101 Cencal-1200- 1 X X X X X 3500 Cencal-1200- 1 X X X X X 4500 Cencal-1200- 1 X X X 3400 Cencal-1200- 1 X X X 4400 Cencal-1200- 1 X X X 2351 N.B.: Negli strumenti 600 e 4-40T ordinati senza interfaccia seriale la configurazione di default diventa : Cencal-19200-codice 1. 24 Collegamento punto-punto Strumenti con seriale RS232 GND RX TX 5 2 3 GND T+ R+ 16-18 17 15 GND T+ R+ 8-10A 11A 9A GND T+ R+ 8-10A 11A 9A GND T+ R+ 9-11 10 12 PC RS232 Ad ogni master è possibile collegare un solo strumento per volta GND T+ R+ 25-27 26 24 GND T+ R+ 25-27 26 24 GND T+ R+ 8-10A 11A 9A GND T+ R+ 8-10A 11A 9A GND T+ R+ 9-11 10 8 GND T+ R+ 25-27 26 24 GND T+ R+ 9-11 10 12 25 – Collegamento PC RS232 – CLB - Strumenti con seriale Current Loop Passiva T+ 2 RX 2 GND RX TX 5 2 3 TX 3 21 T- 3 R+ 4 19-20 R- 5 GND 4-7 13-22 T- T+ R- R+ 11 10 9 8 23 24 Connettore frontale T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 Connettore fondoscatola T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 21 20 19 18 26 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 11 10 9 8 Collegamento PC RS232 – CLB - Strumenti con seriale RS485 4 fili T+ 6 RX 2 GND RX TX 5 2 3 TX 3 21 T- 7 R+ 4 19-20 R- 5 GND 4-7 13-22 T- T+ R- R+ 27 26 25 24 23 24 Connettore frontale T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 11 10 9 8 Connettore fondoscatola T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 21 20 19 18 27 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 11 10 9 8 Collegamento PC RS232 – CLB - Strumenti con seriale RS485 4 fili T+ 6 GND RX TX 5 2 3 RX 2 TX 3 21 19-20 T- 7 R+ 4 R- 5 GND 4-7 13-22 23 24 Connettore frontale T- T+ R- R+ 18 17 16 15 T- T+ R- R+ 9 10 11 12 Connettore fondoscatola 28 T- T+ R- R+ 9 10 11 12 Collegamento PC RS485 – CLB - Strumenti con seriale RS485 4 fili T+ 6 DATA-(B) DATA+(A) T- 7 R+ 4 T-/R- 6-9 16-18 R- 5 T+/R+ 5-8 15-17 1 4 Connettore frontale T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 11 10 9 8 13 22 Connettore fondoscatola T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 21 20 19 18 29 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 11 10 9 8 Collegamento PC RS485 – CLB - Strumenti con seriale RS485 4 fili T+ 6 DATA-(B) DATA+(A) T- 7 R+ 4 T-/R- 6-9 16-18 T+/R+ 5-8 15-17 1 4 Connettore frontale R- 5 T- T+ R- R+ 18 17 16 15 T- T+ R- R+ 9 10 11 12 13 22 Connettore fondoscatola 30 T- T+ R- R+ 9 10 11 12 Collegamento seriale RS485 DATA– (B) DATA+ (A) PC RS485 – Strumenti con DATA + DATA (B) 15-17 (B) 10 (A) 9 (B) (A) 9A-11A 8A-10A (B) 8-10 (A) 9-11 (B) 10 (A) 16-18 (B) 24-26 (B) 4 (A) 9 (B) (A) 9A-11A 8A-10A (B) 18-20 (A) 25-27 (B) 24-26 (A) 2 (B) (A) 8A-10A 9A-11A (A) 19-21 (B) 24-26 31 (A) 25-27 (A) 25-27 Collegamento PC RS232 – ADAM - Strumenti con seriale RS485 GND RX TX 5 2 3 RX 3 TX DATA + 2 DATA - GND 5 (B) 15-17 Connettore DB9 (B) 10 (A) 9 (B) (A) 9A-11A 8A-10A (B) 8-10 (A) 9-11 (B) 10 (A) 16-18 (B) 24-26 (B) 4 (A) 9 (B) (A) 9A-11A 8A-10A (B) 18-20 (A) 25-27 (B) 24-26 (A) 2 (B) (A) 8A-10A 9A-11A (A) 19-21 (B) 24-26 32 (A) 25-27 (A) 25-27 Collegamento PC RS232 – ADAM - Strumenti con seriale RS485 4 fili TRX 3 GND RX TX 5 2 3 TX 2 T+ RR+ GND 5 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 11 10 9 8 Connettore DB9 T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 11 10 9 8 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 9 8 11 10 T- T+ R- R+ 27 26 25 24 T- T+ R- R+ 21 20 19 18 33 T- T+ R- R+ 10A 11A 8A 9A T- T+ R- R+ 11 10 9 8 Collegamento PC RS232 – ADAM - Strumenti con seriale RS485 4 fili TGND RX TX 5 2 3 RX 3 T+ R- TX 2 GND 5 Connettore DB 9 poli R+ T- T+ R- R+ 18 17 16 15 34 T- T+ R- R+ 9 10 11 12 T- T+ R- R+ 9 10 11 12 Collegamento Chatty - Strumenti con seriale RS485 Chatty 14 (CHA + 6 (CHA -) (B) 10 35 (A) 9 (B) 4 (A) 2 CAPITOLO 2 PROTOCOLLO MODBUS 36 CONTENUTI - Protocollo MODBUS - Modi di Trasmissione - Rilevamento degli Errori - Operazioni di Lettura - Operazioni di Scrittura - Mappe di memoria (legenda) pag. 38 pag. 39 pag. 39 pag. 42 pag. 43 pag. 45 37 Protocollo MODBUS Il Modbus è uno standard adottato da diversi costruttori, il che rende in molti casi intercambiabili, dal punto di vista della programmazione seriale, strumenti differenti. L’ anello di comunicazione è composto da un Master ed un massimo di 255 Slaves sulla stessa linea. Solo il Master è abilitato ad inizializzare le transazioni, che possono essere del tipo: domanda/risposta ( query/response ), nel quale un solo Slave risponde al Master, o senza risposta ( no response ) dove tutti gli Slaves presenti sono indirizzati. Una transazione è composta da un frame ( unità di informazione ) di singola domanda e da uno di singola risposta o da un singolo frame di broadcast. Nell’ anello di comunicazione digitale l’ utente ha la possibilità di cambiare solo alcuni parametri: il mezzo tramissivo ( RS232, Current Loop, RS485 due o quattro fili ), il baud rate ( 1200, 2400, 4800 o 9600 bauds ) o la parità; altri invece sono prefissati su standard Gefran: il formato del frame, il modo di trasmissione ( RTU ), la sequenza dei frames, i codici di errore, le condizioni di eccezione ecc. Nel caso di protocollo Modbus, ogni comunicazione è ritenuta a termine dopo che sulla linea non sono presenti transizioni per un tempo detto di “ time out “, pari a 3.5 volte il tempo di trasmissione di un carattere. Quando devono essere inviate delle informazioni sulla linea dati, il messaggio deve essere contenuto in una “ busta ”. La busta esce attraverso una “ porta ” ed è trasportata sulla linea all’indirizzo specificato. Nel caso in esame, il Modbus definisce la busta sottoforma di frame di messaggio o sequenza strutturata di byte. Le informazioni contenute nel messaggio sono: Formato del Messaggio n I dati effettuare il n Una parola di la presenza di Check ) n Il destinatario ( Slave address ) n Cosa il destinatario deve fare ( Function ) Range Slave address Function Data Error check ( CRC-16 ) Byte 1 1 n 2 necessari per compito ( Data ) test ( CRC ) per controllare eventuali errori ( Error Quando un messaggio è ricevuto da uno Slave, lo strumento provvede a restituire un frame di dati della stessa struttura ma contenente le informazioni richieste. 38 Elenco dei comandi implementati : 01, 02 03, 04 05 06 15 16 Lettura n Bit Lettura n Word ( registri ) Scrittura di un Bit Scrittura di una Word ( registro ) Scrittura di n Bit Scrittura di n Word ( registri ) Modi di Trasmissione: Il modo di trasmissione è la struttura dell’ unità singola di informazione in un messaggio. Dei due modi possibili nello standard Modbus ( ASCII e RTU ), la Gefran ha adottato quello che prevede la codifica binaria dei dati, denominato RTU ( Remote Terminal Unit ). E’ inoltre previsto un meccanismo di detenzione degli errori attraverso il CRC ( Cyclic Redundancy Check ) Rilevamento degli Errori: Solitamente a causa del rumore elettrico, le trasmissioni digitali possono essere affette da errori. Sono stati previsti due meccanismi di tutela per individuare e gestire le situazioni di errore: il controllo di parità che verifica la consistenza di ogni byte ed il CRC. Attraverso il CRC Error Check vengono identificate le situazioni di incongruenza di frame, in questo caso il messaggio inviato è inconsistente ed il ricevente lo ignora. Calcolo del CRC: I bits di dati sono considerati come un numero binario continuo, la cui parte più significativa ( MSB ) viene trasmessa per prima. Il messaggio viene prima moltiplicato per x16 ( cioè shiftato a destra 16 volte ), quindi diviso per x16 + x15 + x2 + 1 espresso come numero binario, cioè 11000000000000101. Il quoziente intero è ignorato ed il resto a 16 bit costituisce il CRC. Quando il ricevente dividerà il CRC per il polinomio x16 + x15 + x2 + 1 dovrà ottenere resto zero in assenza di errori. 39 Il seguente diagramma di flusso illustra come organizzare un algoritmo di calcolo del CRC a 16 bit: CRC16 = 1111 1111 1111 1111 CRC16 = CRC16 xor VALUE ( 8 bits ) N=0 CRC16 right shift 0 Carry Carry over CRC16 = CRC16 xor 1010 0000 0000 0001 n=n+1 No Yes n>7 Next byte No Message completed 40 Yes END Operazione FFFF hex 02 hex Or esclusivo Shift ( n. 1 ) Polinomio Or esclusivo Shift ( n. 2 ) Polinomio Or esclusivo Shift ( n. 3 ) Shift ( n. 4 ) Polinomio Or esclusivo Shift ( n. 5 ) Shift ( n. 6 ) Polinomio Or esclusivo Shift ( n. 7 ) Shift ( n. 8 ) Polinomio Or esclusivo 07 hex Or esclusivo Shift ( n. 1 ) Polinomio Or esclusivo Shift ( n. 2 ) Polynomial Or esclusivo Shift ( n. 3 ) Polinomio Or esclusivo Shift ( n. 4 ) Shift ( n. 5 ) Polinomio Or esclusivo Shift ( n. 6 ) Shift ( n. 7 ) Shift ( n. 8 ) MSB 1111 1111 1111 0111 1010 1101 0110 1010 1100 0110 0011 1010 1001 0100 0010 1010 1000 0100 0010 1010 1000 1111 1111 0000 1111 1111 0000 1111 0111 0011 0000 0011 1001 0100 0000 0100 0010 0001 0000 0001 1000 0100 1010 1110 0111 1010 1101 0110 1010 1100 0110 0011 1010 1001 0100 0010 0001 0001 0000 0000 0000 0000 0000 0000 1000 0000 1000 0100 0010 0000 0010 1001 0100 0010 1111 0000 1111 1111 0000 1111 1111 0000 1111 1111 1111 0000 1111 1111 1111 0000 1111 0111 0011 0000 0011 0000 0011 1001 0000 1001 0100 0000 0100 0010 0000 0010 0001 0000 0000 0000 0000 1000 0100 Carry 1111 0010 1101 1110 0001 1111 1111 0001 1110 1111 1111 0001 1110 1111 1111 0001 1110 1111 1111 0001 1110 0111 1001 1100 0001 1101 1110 0001 1111 0111 0001 0110 0011 1001 0001 1000 0100 0010 0001 1 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 Esempio di calcolo del CRC per il messaggio esadecimale 020716: Il risultato finale è 41hex ( msb ) 12 hex ( lsb ), il frame trasmesso è: 0001 0010 12 0100 0001 41 0000 0111 07 0000 0010 ( primo byte trasmesso ) 02 41 Operazioni di Lettura Master Range Slave address ( 1-255 ) Function code ( 1-2 ) Bit starting address ( MSB ) Bit starting address ( LSB ) Number of bits ( MSB ) Number of bits ( LSB ) Error check ( CRC-16 ) Range Slave address ( 1-255 ) Function code ( 1-2 ) Byte count ( n ) Data ( LSb ), ... Error check ( CRC-16 ) Master Range Slave address ( 1-255 ) Function code ( 3-4 ) Word starting address ( MSB ) Word starting address ( LSB ) Number of words ( MSB ) Number of words ( LSB ) Error check ( CRC-16 ) Range Slave address ( 1-255 ) Function code ( 3-4 ) Byte count ( n ) Data ( Word MSB ) Data ( Word LSB ) Error check ( CRC-16 ) 42 Byte 1 1 1 1 1 1 2 Byte 1 1 1 n 2 Slave Byte 1 1 1 1 1 1 2 Byte 1 1 1 n 2 Slave Operazioni di Scrittura Master Range Slave address ( 1-255 ) Function code ( 5 ) Bit address ( MSB ) Bit address ( LSB ) Data ( 00 = OFF, 255 = ON ) Data ( 00 ) Error check ( CRC-16 ) Byte 1 1 1 1 1 1 2 Range Slave address ( 1-255 ) Function code ( 5 ) Bit address ( MSB ) Bit address ( LSB ) Data Data ( 00 ) Error check ( CRC-16 ) Master Range Slave address ( 1-255 ) Function code ( 15 ) Bit starting address ( MSB ) Bit starting address ( LSB ) Number of bits ( MSB ) Number of bits ( LSB ) Byte counter ( n ) Data ( LSB ), ... Error check ( CRC-16 ) Range Slave address ( 1-255 ) Function code ( 15 ) Bit starting address ( MSB ) Bit starting address ( LSB ) Number of bits ( MSB ) Number of bits ( LSB ) Error check ( CRC-16 ) 43 Byte 1 1 1 1 1 1 2 Slave Byte 1 1 1 1 1 1 1 n 2 Byte 1 1 1 1 1 1 2 Slave Master Range Slave address ( 1-255 ) Function code ( 6 ) Word address ( MSB ) Word address ( LSB ) Data ( Word MSB ) Data ( Word LSB ) Error check ( CRC-16 ) Range Slave address ( 1-255 ) Function code ( 6 ) Word address ( MSB ) Word address ( LSB ) Data ( Word MSB ) Data ( Word LSB ) Error check ( CRC-16 ) Master Range Slave address ( 1-255 ) Function code ( 16 ) Word starting address ( MSB ) Word starting address ( LSB ) Number of words ( MSB ) Number of words ( LSB ) Byte counter ( n ) Data ( Word MSB ) Data ( Word LSB ) Error check ( CRC-16 ) Range Slave address ( 1-255 ) Function code ( 16 ) Word starting address ( MSB ) Word starting address ( LSB ) Number of words ( MSB ) Number of words ( LSB ) Error check ( CRC-16 ) 44 Byte 1 1 1 1 1 1 2 Byte 1 1 1 1 1 1 2 Slave Byte 1 1 1 1 1 1 1 n 2 Byte 1 1 1 1 1 1 2 Slave Mappe di Memoria Legenda: Addr.: indirizzo Item: nome mnemonico della variabile. L’ item prende origine dalla denominazione originale del manuale operatore dello strumento, opportunamente depurato degli eventuali punti “.”, non accettabili nella sintassi dei programmi di supervisione. Descrizione: commento che spiega il significato del dato, con riferimento al MANUALE degli strumenti. R/W: modalità di accesso alle variabili abilitate in lettura/scrittura. Un’ altra categoria di variabili contrassegnate con la sola “ R “ è quella relativa a set up che è bene eseguire localmente, dal tastierino dello strumento, avendo piena visibilità dello strumento e degli elementi ( sensori, attuatori, ecc. ) ad esso collegati. Rientrano in questo caso, ad esempio, i parametri relativi al tipo di sonda. Range: intervallo numerico di accettabilità del dato. In alcuni casi si rimanda al contenuto di altre variabili. Dp: ( Punto decimale ), numero di cifre decimali del dato. In alcuni casi si rimanda al contenuto di un’ altra variabile. Def.: ( Default ) impostazione predefinita in fase di fabbricazione. U. di Mis.: Unità di misura P.s.: punti scala pc: punti convertitore min: minuti sec: secondi 45