Title: Standard Tedesco DIN 19245
1PROcess FIeld BUS (PROFIBUS)
- Standard Tedesco DIN 19245
- Standard Europeo CENELEC EN 50170.2 (DP, FMS, PA)
- Profibus FMS (Fieldbus Message Specification)
- Profibus DP (Decentralized Peripherals)
- Profibus PA (Process Automation)
- Standard Internazionale IEC 61158
2PROcess FIeld BUS (PROFIBUS)
assente
assenti
3Protocollo Profibus DP/FMS Physical Layer
RS-485
- Sono previsti bit/rate 9.6 Kb/s, 19.2 kb/s,
93.75 kb/s, 187.5 kb/s, 500 kb/s, 1.5 Mb/s,
12Mb/s. - E' possibile connettere fino a 126 nodi di
comunicazione. - Essendo la comunicazione realizzata con RS-485,
il sistema è suddiviso in singoli segmenti
collegati tra loro da ripetitori. - Ogni segmento contiene al massimo 32 nodi di
comunicazione.
4Protocollo Profibus DP/FMS Physical Layer RS-485
- Il Profibus DP e FMS utilizzano una codifica dati
NRZ (non return to zero)
- Per ogni 8 bits di dati vengono trasmessi 11
bits
- Carattere minimo trasmesso 11 bit
- Stato di Idle nel bus sequenza di bit "1"
5Protocollo Profibus PA Physical Layer IEC
61158-2
- Il Profibus PA utilizza una codifica Manchester
Biphase L
- Preambolo 1,0,1,0,1,0,1,0
- Start Delimiter 1, N,N-,1,0,N-,N,0
- End Delimiter 1, N,N-, N,N-,1,0,1
6Protocollo Profibus Data Link Layer
- Due tipi di nodi di comunicazione Master (classe
1 2), Slave - Il Master di classe 2 può essere opzionalmente
presente (uno e non più di uno) solo per fini di
configurazione - La contesa sull'accesso al mezzo fisico è gestita
unicamente dai Master, tramite un meccanismo di
passaggio di token - Il token passa da un Master ad un altro
7Protocollo Profibus Data Link Layer
- Ogni Master conosce l'indirizzo del successivo
(NS-Next Station) e del precedente Master
(PS-Previous Station) - Ogni Master mantiene una GAP List (intervallo
degli indirizzi tra il proprio indirizzo e il NS) - Ciascun Master mantiene anche una LAS (List of
Active Station) dei Master presenti nella rete
8Protocollo Profibus Data Link Layer Token Passing
- In fase di configurazione viene stabilito il
Target-Token-Rotation-Time (TTR), che determina
il periodo di rotazione del token (massimo
tollerato) - Quando un Master acquisisce il token, interroga
ciclicamente tutti o alcuni Slave, inviando dati
o ricevendo dati - Quando un Master rilascia il token fa partire un
timer che viene fermato quando il Master
riacquista il token. L'intervallo misurato è il
Token Rotation Time (TRR)
9Protocollo Profibus Data Link Layer Token Passing
- Quando un Master riceve il token, confronta il
TTR con il Token Rotation Time (TRR). Vi possono
essere due casi - TRR lt TTR. Il Master esegue tutte le trasmissioni
previste fino a quando - il valore di TTR è raggiunto o tutte le
trasmissioni previste sono concluse. - TRR ? TTR. Il Master esegue solo una trasmissione
e rilascia il token.
10Protocollo Profibus Data Link Layer Token Passing
- Quando il Master cede il token al successivo
Master (Next Station-NS), attende un ack entro
uno slot-time - Slot-time è il massimo intervallo temporale tra
l'ultimo carattere della frame di richiesta
trasmessa da un nodo di comunicazione e il primo
carattere della frame di risposta. - Se non riceve alcun ack, ripete la trasmissione
del token. - Se anche la seconda volta nessun ack viene
ricevuto, allora il token viene trasmesso alla
prima stazione attiva successiva al NS (presenti
nella LAS)
11Protocollo Profibus Data Link Layer Mantenimento
GAP List
- Ciascun Master aggiorna autonomamente e
continuamente lo spazio di indirizzi tra il
proprio e il successivo (NS). - In tal modo è possibile individuare un nuovo
successore (NS) - Se viene trovato un nuovo NS, viene aggiornata
anche la LAS - L'interrogazione avviene ogni Ncicli di token,
dove N è configurabile
12Protocollo Profibus Data Link Layer Mantenimento
LAS
- Ciascun Master mantiene la lista dei nodi Master
attivi (LAS) - Durante il funzionamento normale, ogni Master
ascolta tutti i token ricevuti, al fine di
aggiornare la LAS - All'accensione di un Master, egli ascolta i token
e costruisce la LAS - per un minimo numero di giri di token, il Master
non può intervenire, deve solo ascoltare - La LAS viene anche aggiornata in relazione
all'aggiornamento del GAP e del PS
13Protocollo Profibus Data Link Layer Mantenimento
PS
- Il PS viene aggiornato automaticamente
- Il token arriva da un Master diverso dal PS,
quando un Master modifica il suo NS - Mancata risposta dellattuale NS (vedi passaggio
token) - Un Master scopre un nuovo Master tra lui e il suo
NS (vedi aggiornamento della GAP list) - Se il token arriva da un Master diverso dal PS,
esso viene rifiutato una volta - Se il Master riceve il token dallo stesso Master
(diverso dal PS) per due volte consecutive, il
token viene accettato e il PS viene aggiornato
14Configurazione Mono Master
- Comprende
- Un Master di Classe 1
- Un Master di Classe 2 (Opzionale, solo per
configurazione, indirizzo 126) - Fino ad un Massimo di 125 Slaves
- Vantaggi
- Velocità di Trasmissione elevata, dovuta alla
continua scansione degli Slaves da parte del
Master - E' possibile trasmettere 1Kbyte di dati in meno
di 2ms.
15Configurazione Multi Master
- Comprende
- Uno o più Master
- Un massimo di 124 Slaves
- Al massimo 126 dispositivi sullo stesso bus
- Vantaggio Condivisione risorse (Slave
intelligenti) tra Master - uno Slave (intelligente) può essere letto da più
di un Master, ma può essere scritto da un solo
Master - Il protocollo Profibus DP non prevede la
comunicazione tra Master
16Servizi di Comunicazione offerti dal Protocollo
Data Link Layer ProfiBus DP
- Servizi di Comunicazione
- Servizi confermati
- Servizi non confermati
- Struttura del telegramma (fino a 255 bytes)
- 11 bytes per campi di supporto (Header)
- tranne Data_Exchange per cui lheader ha solo 9
bytes - Il tipo di servizio richiesto è specificato nei
campi Header - Campo dati opzionale (fino a 32 bytes, ma è
possibile lestensione a 244 bytes per un totale
di 255 bytes)
17Struttura del Telegramma nel Profibus DP Data
Link Layer
- SD (1byte) Delimitatore Iniziale (per
distinguere tra diversi tipi di telegrammi) - LE (1byte) Lunghezza dati (DASAFCDSAPSSAPDU
) - LEr (1byte) Ripetizione Lunghezza dati
- SD (1byte) Delimitatore Iniziale (per
distinguere tra diversi tipi di telegrammi) - DA (1byte) Indirizzo di destinazione
- SA (1byte) Indirizzo di sorgente (di chi
trasmette) - FC (1byte) Codice Funzione (per distinguere se
il telegramma si riferisce ad una richiesta,
conferma o risposta) - DSAP (1byte) Destination Service Access Point
(serve al nodo che riceve per capire quale
servizio viene richiesto e che deve essere
eseguito) - SSAP (1byte) Source Service Access Point (serve
al nodo che riceve per capire il servizio
responsabile della richiesta a cui inviare una
risposta) - DU Data Unit (dati utente, da 1 a 32 bytes
oppure da 1 a 244 bytes) - FCS (1byte) Frame Checking Sequence
- ED (1byte) End Delimiter (sempre 16H)
18SAP Utilizzati in Profibus DP
- Solo i telegrammi che includono dati usano i SAP
- Non sono presenti in Data Exchange
- Identificano i servizi richiesti
- La coppia DSAP,SSAP contenuta nella request,
viene invertita nella response - I SAP usati in Profibus DP sono
- SAP di default Data Exchange
- SAP 54 Comunicazione Master-Master
- SAP 55 Cambio indirizzo Slave
- SAP 56 Lettura ingressi
- SAP 57 Lettura uscite
- SAP 58 Usato per servizi Sync a Freeze
- SAP 59 Lettura Configurazione
- SAP 60 Lettura dati diagnostici
- SAP 61 Trasmissione parametri ad uno Slave
- SAP 62 Verifica Configurazione
19Esempi di Telegrammi nel Profibus DP Data Link
Layer
- Telegramma Dati Generico (SD68 H)
- Telegramma DATA EXCHANGE con Lunghezza Dati Fissa
(8 bytes) (SDA2 H)
- Telegramma Token (SDDC H)
20Servizi del Protocollo Profibus DP Data Link
Layer
- Il protocollo opera in connectionless mode
- E' possibile avere trasmissioni peer-to-peer,
multi-peer (broadcast, multi-cast) - Sono previste le seguenti tipologie di servizi
utilizzabili ai livelli superiori
21Servizio SRD per lo Scambio di Dati
- I servizi confermati SRD operano in un singolo
ciclo di telegramma (telegram cycle)
- Esistono tre modalità di scambio di dati tra
Master di Classe 1 e Slave con servizio SRD - Data Exchange
- Read Inputs
- Read Outputs
22Servizio SRD per lo Scambio Ciclico di Dati Data
Exchange
- Il Master trasmette i dati di output allo Slave
(ossia scrive le sue uscite) e lo Slave, in
risposta, invia i propri ingressi. Se lo Slave è
un dispositivo di sola uscita, esso risponde con
E5H - Il Master non specifica la coppia DSAP e SSAP,
perché il servizio Data Exchange è quello di
default - La risposta dello Slave è immediata (entro uno
slot time) - Nel caso di mancata risposta da parte dello
Slave, il Master può ripetere la trasmissione più
volte
23Servizio SRD per lo Scambio Ciclico di Dati
Read Inputs
- Il Master richiede ad uno Slave di Ingresso
l'invio dei propri ingressi - Il Master specifica come DSAP56, che è la
codifica del servizio di lettura degli ingressi
dello Slave
24Servizio SRD per lo Scambio Ciclico di Dati Read
Outputs
- Il Master richiede ad uno Slave di Uscita l'invia
delle proprie uscite (entro uno slot time) - Il Master specifica come DSAP57, che è la
codifica del servizio di lettura delle uscite
dello Slave
25Servizio di Controllo Globale SDN
- Permette di inviare messaggi multicast/broadcast
- La gestione dell'invio dati broadcast avviene
utilizzando l'indirizzo 127 - Nel caso di invio dati multicast viene
specificato il gruppo di nodi ai quali si inviano
i dati - il gruppo è definito in fase di configurazione
del Master - Il telegramma è caratterizzato dal valore SAP58
- Il telegramma contiene 2 byte di dati
- Byte 1 permette di distinguere il tipo di
messaggio (Sync, Freeze) - Byte 2 permette di individuare il gruppo
26Servizio di Controllo Globale Sincronizzazione
Ingressi Slaves
- Servizi FREEZE/UNFREEZE
- FREEZE
- Permette al Master di imporre ad uno Slave o ad
un gruppo di Slave di congelare i loro ingressi
nello stato corrente. - Ad ogni comando Freeze gli Slave congelano il
valore corrente degli ingressi. - Il Master leggerà tali ingressi
- Ogni Slave non aggiornerà più i valori degli
ingressi fino a quando il Master invierà un nuovo
comando di Freeze. - UNFREEZE.
- Il sistema ritorna nel modo normale di scambio
dati - gli ingressi degli Slaves sono normalmente
aggiornati e possono essere letti dal Master
27Servizio di Controllo Globale SDN Sincronizzazione
Ingressi Slaves
Slaves
Lettura ingressi
Master
Valore corrente degli ingressi
Freeze
Aggiornamento del valore corrente degli ingressi
Lettura ingressi
Valore congelato degli ingressi
Gli ingressi cambiano ma non vengono aggiornati
dagli Slaves
Freeze
Aggiornamento del valore corrente degli ingressi
Lettura ingressi
Valore congelato degli ingressi
Tempo
UnFreeze
28Servizio di Controllo Globale SDN Sincronizzazione
Aggiornamento Uscite Slaves
- Servizi SYNC/UNSYNC
- SYNC.
- Permette al Master di imporre ad uno Slave o ad
un gruppo di Slave che le ultime uscite che il
Master stesso ha inviato precedentemente
divengano effettive. - Il Master invia le uscite agli Slaves con il Data
Exchange. - Le uscite ricevute vengono bufferizzate ma non
rese effettive dagli Slaves - Ciascuno Slave farà diventare effettive le ultime
uscite ricevute, ad ogni ricezione del comando
SYNC - UNSYNC. Il sistema ritorna nel modo normale di
scambio dati - le uscite ricevute dagli Slaves divengono subito
effettive
29Servizio di Controllo Globale SDN Sincronizzazione
Aggiornamento Uscite Slaves
Slaves
uscite
Master
Aggiornamento uscite
Sync
uscite
uscite
Sync
Aggiornamento ultime uscite ricevute
UnSync
uscite
Aggiornamento uscite
Tempo
30Comunicazione Master Classe 2-Master Classe 1
- Nel Profibus-DP è consentita solo la
comunicazione tra Master class 2 (iniziatore) e
Master class 1 - Viene utilizzato il SAP 54
- E' possibile
- Upload/Download di aree di memoria contenete
parametri di configurazione - Attivazione di parametri precedentemente caricati
31Configurazione di una Rete ProfiBus DP
- Files GSD
- Parametri che regolano la comunicazione
- Formule per la configurazione
- Esempio
32Configurazione di una Rete ProfiBus DP
- Per ciascun Master è necessario fornire le
caratteristiche Hw/Sw degli Slaves che dovrà
interrogare - Alcune delle Informazioni necessarie per la
gestione degli Slave sono - Bit/rate supportato
- Servizi supportati (FREEZE, SYNC)
- Tempi massimi di risposta in funzione del
bit/rate - Numero e tipologia di Ingressi
- Numero e tipologia di Uscite
- Tali informazioni vengono fornite dal costruttore
tramite un file standardizzato da EN50170 GSD - L'uso dei files GSD permette una gestione
Plug-and-Play.
33Configurazione di una Rete ProfiBus DP Struttura
di File GSD
- File di testo.
- E' diviso in più parti
- General device information.
- Nome del dispositivo e costruttore,
- Nome del Modello,
- Revisione,
- Supporto Servizi FMS
- Supported baudrates
- MaxTsdr default values for supported baudrates
- General supported features
- esempio ridondanza
- DP Slave related information
- Servizi Freeze, Sync, Auto_Baud
- Modules information
- Module "2 Byte out/ 0 Byte in" 0x21,0x00
34Configurazione di una Rete ProfiBus DP Struttura
di File GSD
Porzioni di file GSD
Supported baudrates 9.6_supp
1 19.2_supp 1 93.75_supp
1 187.5_supp 1 500_supp
1 1.5M_supp 1 12M_supp
1 MaxTsdr default values for supported
baudrates MaxTsdr_9.6 60 MaxTsdr_19.2
60 MaxTsdr_93.75 60 MaxTsdr_187.5
60 MaxTsdr_500 100 MaxTsdr_1.5M
150 MaxTsdr_12M 800
General device information GSD_Revision
1 Vendor_Name "SAIA-Burgess
Electronics" Model_Name "PCD0 RIO 16O
DP" Revision "V.1.0" Ident_Number
0x1633 Protocol_Ident 0 Station_Type
0 FMS_supp
0 Hardware_Release "0" Software_Release
"0" Bitmap_Device "pcd0comp" Bitmap_Diag
Bitmap_SF
35Configurazione di una Rete ProfiBus DP
- Tutti i parametri di configurazione, legati al
concetto del tempo, di una rete Profibus-DP sono
espressi in Bit Time Tbit - Il Bit Time Tbit è il tempo necessario per la
trasmissione di un bit. - Dipende dalla lunghezza del cavo e dalla velocità
di trasmissione (bit/sec) - La lunghezza del cavo è dettata dal bit rate
- E' fornito dall'inverso della velocità di
trasmissione (baud rate)
- Esempio
- 1 Tbit a 12M 1/(12.000.000 bit/s) 83,3
nsec/bit
36Configurazione di una Rete ProfiBus DP
- Baud Rate
- HSA-Highest Station Address. Specifica
l'indirizzo più alto da attribuire ad un Master. - TS. Specifica l'indirizzo del Master che si sta
configurando.
127 Broadcast
Spazio Indirizzo Masters Slaves
TS
- Elenco degli Slave DP
- Viene fornito tramite i files GSD
1
HSA
125
126 Master Classe 2
37Configurazione di una Rete ProfiBus DP
- Retry Counter. Specifica il numero massimo di
ritrasmissioni nel caso di mancata risposta - ricezione ack nel passaggio del token
- Setup Time-TSET. E' il tempo che trascorre, in un
dispositivo Profibus DP, dall'occorrenza di un
evento fino all'attivazione della gestione della
relativa reazione - Il valore viene espresso in bit time
- Dipende dalla componentistica elettronica
(hardware) - Viene a volte specificato nei manuali
- Nel caso non sia specificato si assume pari al
valore massimo (255)
38Configurazione di una Rete ProfiBus DP
- Station Delay of Responders - TSDR. E' il periodo
di tempo che trascorre dalla ricezione
dell'ultimo bit di una frame di richiesta, fino
alla trasmissione della frame di risposta - Il valore viene espresso in bit time
- Vengono specificati Min TSDR e Max TSDR
- Il Min TSDR è per default 11 Tbits
39Configurazione di una Rete ProfiBus DP
- Quite Time - TQUI. E' il tempo che una stazione
che trasmette deve attendere, dopo la
trasmissione di una frame, prima di abilitare il
proprio ricevitore - Il valore viene espresso in bit time
- TQUIltmin TSDR
Responder
Initiator
Richiesta
Il ricevitore dellInitiator diviene attivo dopo
un tempo TQUI
TQUI
min TSDR
TSDR
max TSDR
Risposta
40Configurazione di una Rete ProfiBus DP
- Sync Time - TSYN. E' il minimo intervallo di
tempo durante il quale ogni stazione dovrà
ricevere lo stato di Idle (bit 1) dal mezzo
fisico prima che possa accettare l'inizio di una
frame - Il valore viene espresso in bit time
- Generalmente è fissato TSYN33 Tbits (3 caratteri)
41Configurazione di una Rete ProfiBus DP
- Safety Margin - TSM
- Viene aggiunto al TSYN
- Si usa anche per altri parametri, serve
soprattutto in scenari caratterizzati da alti
bit/rate - Il valore viene espresso in bit time
- TSM22TSETTQUI
42Configurazione di una Rete ProfiBus DP
- Linee guida per la definizione dei valori di TSDR
- min TSDR ? tempo di ricezione di un carattere
11 - max TSDR ? TSYN TSM ossia 352TSETTQUI
- Questo valore permette di garantire la presenza
di Idle bit nel mezzo fisico per un tempo
sufficiente
43Configurazione di una Rete ProfiBus DP
- Transmission Delay - TTD. E' il ritardo di
trasmissione tra trasmettitore e ricevitore - Dipende dal bit rate e dalla lunghezza del bus
- Si esprime in Tbit
44Configurazione di una Rete ProfiBus DP
- Initiator Idle Time TID1. E' il tempo che deve
trascorrere dalla ricezione dell'ultimo bit di un
ack/token/response alla trasmissione del primo
bit di un nuovo telegramma. - Attenzione Initiator e non Responder come il
TSDR - Il valore viene espresso in bit time
- TID1TSYNTSM352TSETTQUI
45Configurazione di una Rete ProfiBus DP
- Initiator Idle Time TID2. Dopo linvio di una
action frame, che non deve essere confermata da
un ack, lidle time è definito come TID2 - Il valore viene espresso in bit time
- TID2max TSDR
46Configurazione di una Rete ProfiBus DP
- Slot Time - TSL. E' il tempo massimo che
l'initiator aspetta tra l'ultimo carattere della
frame di richiesta trasmessa e il primo carattere
della frame di risposta. - Viene aggiunto un TSM per sicurezza
- Il valore viene espresso in bit time
- TSL2TTDmax TSDR11TSM
47Configurazione di una Rete ProfiBus DP
- Time Ready TRDY.
- Il Ready Time è il tempo allinterno del quale un
stazione Master dovrebbe essere pronta a ricevere
un ack o una risposta dopo la trasmissione di una
richiesta. - TRDY min TSDR
48Configurazione di una Rete ProfiBus DP
- Target Rotation Time - TTR.
- Si calcola per ogni singolo Master.
- Il valore minimo deve garantire, ad ogni token,
TUTTE le trasmissioni Data Exchange (TDE) - E possibile considerare ulteriori trasmissioni
(TADD) - Solo Request (non confermate)
- Request/Response (SRD)
- Nel caso di sistemi multimaster, il TTR è dato
dalla somma dei TTR dei singoli Master
TTR TDE TADD
49TTR Calcolo del contributo (minimo) relativo a
Data Exchange
TDE TID1 TSYN min TSDR 2(Header
Trailer) n slave (n Byte Input 11) (n
Byte Output 11)
- dove
- n byte Input Numero totale di byte di
ingresso (tutti gli slave) - n byte Output Numero totale di byte di uscita
(tutti gli slave) - n slave Numero di tutti gli Slave
- Header Trailer11 caratteri 999 bit (mancano
DSAP e SSAP)
50TTR Esempio di calcolo del contributo relativo
ad un solo SRD
Slave
Master
Riceve un ack, o una response, o un token
- Calcolo Worst-Case
- Il Time Slot si riferisce ad un solo carattere
- Dunque si deve sommare il tempo relativo alla
trasmissione degli interi messaggi (2 Header 2
Trailer 2 Dati) - Si deve tener conto del numero massimo di
tentativi
TID1
SRD request
Dati
Header
Trailer
TSL
SRD response
Header
Trailer
Dati
TADD (TID1TSL2Max_Data_Lenght11)(Retry
Counter 1)
- dove
- Max_Data_LenghtHeaderTrailerMax User
Data11244255
51Configurazione di una Rete ProfiBus DP
- Tempo di aggiornamento GAP - TGUD. Il GAP serve
alle stazioni Master per inizializzare la
manutenzione del GAP. Dopo la prima generazione
della GAPL (GAP List), laggiornamento
dellimmagine del GAP viene inizializzata
ciclicamente dopo ogni intervallo. - TGUD G TTR 1 G 100
52Esempio di Configurazione di una Rete ProfiBus DP
Multi-Master
- L'esempio di configurazione della rete Profibus
DP si riferisce al seguente scenario (Laboratorio
presso il DIIT) - 2 Master 1 PLC Siemens, 1 PC Applicom
- 3 Slaves 16 bit Q, 16 bit I, 1 PLC Slave (16
bit Q, 8 bit I) - Slave del Master PLC Siemens
- Modulo di 16 bit Q
- Slave del Master PC Applicom
- Modulo di 16 bit I
- PLC Slave (16 bit Q, 8 bit I)
53Esempio di Configurazione di una Rete ProfiBus DP
Multi-Master
- Retry Counter1 (per scelta)
- Tset 240 (massimo valore presente, ricavato dai
manuali) - TSYN 33
- TSM 2 bit 2TSET TQUI 482
- TTD è talmente piccolo che si può trascurare
(cavo cortissimo !) - Max TSDR?TSYN TSM 515
- Max TSDR 515
- Min TSDR 11
- TQUI ? Min TSDR
- TQUI 0
- TSL 2TTD max TSDR 11 bit TSM 1008
- TSL 1008
- TID1TSYNTSM33482515
- TID2max TSDR 515
54Esempio di Configurazione di una Rete ProfiBus DP
Multi-Master
- Calcolo del TTR. Per ciascun Master è dato da
- TTR TDE TADD
- TDE TSYN TID1 min TSDR
2(HeaderTrailer) n slave (n Byte
Input 11) (n Byte Output 11) - TADD (TID1TSL2Max_Data_Lenght11)(Retry
Counter 1) - Per il Master PLC Siemens
- TDE 3351511198122779 (supponendo
HeaderTrailer99) - TADD 5151008225511214.266
- TTR 77914.26615.045
-
- Per il Master PLC Applicom
- TDE 33515111982551.569
- TADD 5151008225511214.266
- TTR 1.56914.26615.835
- Valore TTR 15.04515.83530.880
Posto a 1
55Configurazione di una Rete ProfiBus DP