Segrate 11 dicembre 2014 PI – PROFIBUS e PROFINET Italia http://www.profi-bus.it PROFINET isocrono vince la sfida Emiliano Sisinni Dipartimento di Ingegneria dell’Informazione Università di Brescia, Via Branze 38 - 25123 Brescia (Italy) Tel: +39-030-3715445 fax: +39-030-380014 e-mail: [email protected] 2 Segrate 11 dicembre 2014 Chi è PI l E’ Segrate 11 dicembre 2014 Sommario Parliamo di PROFINET, cioè di • Protocollo (Scalabilità, Coesistenza) • Architetture di rete e nuove possibilità • Avvio rapido • Ridondanza • Sicurezza funzionale • Wireless • Risparmio ed efficienza energetica • Protocollo isocrono con prestazioni che non temono confronti Segrate 11 dicembre 2014 Comunicazione standard 100ms La comunicazione in PROFINET Automazione di fabbrica Applicazioni al Motion Control RT_Class 1 RT_Class 2 e 3 10ms <1ms IT Services, TCP/IP Real-Time: IRT Una mezzo di comunicazione omogeneo per tutte le necessità degli utilizzatori • Comunicazione Real-Time scalabile fino all’isocrono • Apertura ai servizi IT e TCP/IP senza restrizioni • e tutto su un’unica rete = integrazione orizzontale e verticale Segrate 11 dicembre 2014 “Prestazioni”… necessità di un contesto Real-Time Ethernet Stack di comunicazione Segrate 11 dicembre 2014 Questo è uno schema generale che rappresenta lo stack di comunicazione di una soluzione Real-time Ethernet. In questo contesto, quando si parla di “prestazioni” di un sistema ci si riferisce alla “velocità di trasferimento” dati dal punto A al punto B Receive data Send Data Real-time Application Service interface A Send Data Receive data B Real-time Application Service interface Real-time MAC Real-time MAC Ethernet PHY Ethernet PHY …e il resto del sistema? Segrate 11 dicembre 2014 La comunicazione è solo una parte (piccola) La comunicazione è gestita dal sistema operativo Real-time del dispositivo Receive application data Send application Data Receive application data Send application Data Sistema Operativo Altri servizi Sistema Operativo Altri servizi Sistema Operativo Kernel Real-time Receive data Send Data Sistema Operativo Kernel Real-time Receive data Send Data Real-time Application Service interface Real-time Application Service interface Real-time MAC Real-time MAC Ethernet PHY Ethernet PHY Manca ancora l’applicazione ! Segrate 11 dicembre 2014 Uno o più programmi applicativi gestiscono i dati provenienti/diretti agli altri dispositivi in campo L’insieme di tutte le parti è il “sistema di automazione” Task 1 1 Task n n Task Task 1 TaskTask n Task 1 1 Task n n Task Task 1 TaskTask n Programma Applicativo Programma Applicativo Programma Applicativo Programma Applicativo Programma Applicativo Programma Applicativo Receive application data Send application Data Receive application data Send application Data Sistema Operativo Altri servizi Sistema Operativo Altri servizi Sistema Operativo Kernel Real-time Receive data Send Data Real-time Application Service interface Sistema Operativo Kernel Real-time Receive data Send Data Real-time Application Service interface Real-time MAC Real-time MAC Ethernet PHY Ethernet PHY Segrate 11 dicembre 2014 Considerazioni sui tempi di attraversamento Il tempo di attraversamento dello stack fino a raggiungere il programma applicativo, cresce con la complessità del dispositivo Il sistema operativo del dispositivo deve gestire anche altre applicazioni, non solo la comunicazione Usare un processore dedicato per la comunicazione non risolve il problema Task 1 1 Task n n Task Task 1 Task Task n Programma Applicativo Programma Applicativo Programma Applicativo Programma Applicativo Programma Applicativo Programma Applicativo Receive application data Send application Data Sistema Operativo Altri servizi Sistema Operativo Kernel Real-time e neppure usare un livello fisico più veloce… Receive data Send Data Real-time Application Service interface Real-time MAC Ethernet PHY Segrate 11 dicembre 2014 Falsi miti: Ethernet Gigabit (futuro o presente?) Offre più banda: implica processori più veloci per gestire più pacchetti al secondo ... altrimenti significa solo “stessi dati trasmessi in meno tempo” Svantaggi Livello fisico più complesso di 100Base-TX. Consumi più elevati Servono 8 fili invece degli 4 del 100Base-TX Prestazioni di sincronizzazione uguali 1 2 3 4 a quelle del 100BaseTx 11 Ottimo per le dorsali nel caso di topologia a cascata di stelle/alberi 10 5 9 8 7 6 Falsi miti: cicli di scansione ridotti Segrate 11 dicembre 2014 Gestione del pacchetto che arriva: ad ogni ciclo corrisponde un interrupt Bisogna processare i dati in arrivo e preparare i dati per il prossimo ciclo Tempi di guardia: il tempo di elaborazione è sensibilmente minore rispetto a quello del ciclo di comunicazione Tempo preparazione risposta Latenza servizio callback interrupt Elaborazione dati Pacchetto in arrivo Durata tempo di ciclo Segrate 11 dicembre 2014 Situazione attuale Stato dell’arte Solo poche applicazioni reali attualmente richiedono tempi di ciclo di elaborazione < 125us Il più veloce sistema commerciale “industry grade” ha un tempo di servizio delle callback di circa 30us Se l’algoritmo di controllo richiede più di 30us allora è possibile implementare sistemi che non perdono neppure un dato operanti a 62.5us L’unica applicazione reale disponibile su hardware “industry grade” è quella dello ZHAW (Institute of Embedded Systems) di Zurigo che raggiunge i 62.5 us Nota: La maggior parte di applicazioni lavora bene anche in sistemi non sincronizzati con tempi di ciclo nell’ordine di 1 ms. La nostra esperienza durante le validazioni ha messo in risalto una variabilità massima di 0.5 ms in sistemi con oltre 300 nodi Barra delle prestazioni Segrate 11 dicembre 2014 Prestazioni e numerosità di applicazioni reali a confronto 8 ms Numero di applicazioni 1 ms 250 us 95% 4% 125 us 62.5 us 31.25 us 0.1% 0.9% Prestazioni sistema PROFINET IO RT PROFINET IO IRT senza DFP e senza frammentazione Limite applicazioni reali attuali Unico controllore reale industry grade PROFINET IO IRT con DFP e frammentazione Segrate 11 dicembre 2014 PROFINET IO offre prestazioni sempre al vertice PROFINET IO: Real-Time Ethernet Segrate 11 dicembre 2014 Separazione nel tempo del traffico a priorità maggiore nel tempo I dati critici usano un canale separato nel tempo. E’ ancora possibile usare la comunicazione standard basata su IP. IRT interval TCP/IP Cycle 1 Isochronous communication IRT data IRT interval IRT TCP/IP interval TCP/IP Cycle 2 = time window RT communication RT data Cycle n Standard communication TCP/IP data Segrate 11 dicembre 2014 Switch PROFINET IO: Integrazione con l’infrastruttura esistente Switch Switch Switch Switch Switch Sync master Switch IRT Switch IRT Switch IRT Switch IRT Switch IRT Switch IRT IRT network Switch Switch Switch Switch Switch Switch Switch Segrate 11 dicembre 2014 PROFINET IO: Ottimizzazione in 4 passi Fast Forwarding: ottimizzazione del tempo di inoltro dei pacchetti da parte degli switch Dynamic Frame Packing: singolo frame per più dispositivi Fragmentation: gestione efficiente della frammentazione per ottenere tempi di ciclo ridotti Segrate 11 dicembre 2014 PROFINET IO: Fast Forwarding Riduzione della durata del preambolo Riduzione dei tempi di trasmissione hardware (PortRXDelay e PortTXDelay) Frame ID diventa parte del Destination Address Preamble 8 Octets DA SA VLAN*) Ethertype FrameID 6 Octets 6 Octets 4 Octets 2 Octets 2 Octets Data Trailer 4 Octets Data Trailer 4 Octets Bridge delay minimo = 28 Ottetti Preamble DA FID SA VLAN*) Ethertype FrameID 6 Octets 6 Octets 4 Octets 2 Octets 2 Octets 2 Octets Fast Forwarding ottimizzato = 8 Ottetti PROFINET IO: Fragmentation Segrate 11 dicembre 2014 Frammentazione è necessaria solo per tempi di ciclo inferiori a 250 µs In quel caso, i telegrammi non PROFINET da trasmettere nella fase Open potrebbero dover essere spezzati in pacchetti più piccoli e riassemblati a destinazione Tempo di ciclo (SendClock) Open interval Lunghezza Frame 125 µs > 51 µs 504 93,75 µs > 41 µs 376 Lunghezza raccomandata frammenti 256 62,5 µs > 35 µs 304 62,5 µs > 31 µs 256 31,25 µs > 20 µs 192 Il più piccolo ciclo dura 31,25µs 128 31,25 µs > 15 µs 128 Segrate 11 dicembre 2014 PROFINET IO: Dynamic Frame Packing Condizioni Comunicazione sincronizzata (Conformance Class C) Frame dati di tipo RT_Class_3 Supporto del Fast Forwarding Conoscenza della topologia Principio di funzionamento Definizione del DFP-domain (grupo di IO-Device) Trasmissione di tutte le uscite in un unico frame Trasmissione di tutti gli ingressi in un unico frame Operazioni nello switch Frame DFP ricevuti nell’intervallo riservato? Frame ID corretto? PROFINET IO: DFP– dati di uscita Segrate 11 dicembre 2014 I datagrammi di uscita per tutti i device sono compattati in un unico frame IOC conosce la topologia T A1 A2 A1 A3 H T A2 A3 A2 H T A3 H A3 H Telegram header T Trailer T A1 A2 Dev 1 A3 H = struttura dei sub frame Dev 2 Dev 3 PROFINET IO: DFP – dati di ingresso Segrate 11 dicembre 2014 La trasmissione inizia simultaneamente I datagrammi di ingresso di tutti i device sono aggregati in un unico frame durante il percorso Lo scheduling è caricato nei device durante lo startup IOC conosce la topologia H E1 E2 E3 T H E2 E3 T H H Telegram header E1 E2 E3 T E3 T Trailer Dev 1 Dev 2 Dev 3 Segrate 11 dicembre 2014 Test case Test case Motion application Segrate 11 dicembre 2014 Macchina che comprende 1 IO-Controller e 25 IO-Device di cui 24 drive e 1 I/O remoto (totale 480 byte per i drive, 112 IO digitali e 32 IO analogici) Ogni IO-Device – Profidrive ha: 10 byte input e 10 byte output Ogni IO-Device ha: 32 (16 in+16 out) canali analogici raggruppati in 8 moduli 112 (56 in + 56 out) canali digitali raggruppati in 12 moduli IO-C Controller IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D Segrate 11 dicembre 2014 Test case Motion application Macchina che comprende 1 IO-Controller e 25 IO-Device di cui 24 drive e 1 I/O remoto (totale 480 byte per i drive, 110 io digitali e 30 io analogici) Il payload dati di processo in PROFINET IO - Profidrive è pari a Totale: 16 byte input + 16 byte output I frame PROFINET Profidrive occupano quindi frame input (da IO-D a IO-C): 6.72 us frame output (da IO-C a IO-D): 6.72 us IO-C Controller IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D Segrate 11 dicembre 2014 Test case Motion application Macchina che comprende 1 IO-Controller e 25 IO-Device di cui 24 drive e 1 I/O remoto (totale 480 byte per i drive, 110 io digitali e 30 io analogici) Il payload dati di processo in PROFINET IO dell’IO remoto è pari a Totale: 85 byte input + 85 byte output I frame PROFINET occupano quindi frame input (da IO-D a IO-C): 10.00 us frame output (da IO-C a IO-D): 10.00 us IO-C Controller IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D Segrate 11 dicembre 2014 Test case Motion application Macchina che comprende 1 IO-Controller e 25 IO-Device di cui 24 drive e 1 I/O remoto (totale 480 byte per i drive, 110 io digitali e 30 io analogici) Senza DFP Tempo riservato per PROFINET IRT : 95 us Tempo di ciclo minimo: 250 us [60% per TCP] Con DFP attivato e fast forwarding (6 byte overhead per device) I frame PROFINET occupano quindi frame input (da IO-D a IO-C): 30.96 us frame output (da IO-C a IO-D): 30.96 us Tempo riservato per PROFINET IRT : 31 us Tempo di ciclo minimo: 62.5 us [50% per TCP] IO-C Controller (Nota: Tempo di ciclo minimo con architettura a stella su quattro rami = 31.25 us) IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D IO-D Segrate 11 dicembre 2014 Conclusioni PROFINET è una tecnologia aperta • Prestazioni ai massimi livelli • Scalabilità di prodotti e soluzioni • Coesistenza piena con qualunque applicazione TCP/IP • Ridondanza per aumentare la disponibilità • Wireless per le soluzioni flessibili e innovative • PROFIenergy per il risparmio ed l’efficienza energetica • PROFIsafe per la sicurezza • Leader del mercato