Nel panorama dell’automazione industriale, PROFINET rimane lo standard Ethernet Industriale più diffuso per lo scambio di dati I/O. Quando si progetta un dispositivo embedded che deve comportarsi come IO-Device, la scelta dello stack software diventa critica: deve essere leggero, portabile, conforme e mantenibile nel lungo periodo.

RT-LABS propone P-Net, un’implementazione PROFINET IO-Device scritta interamente in C, pensata proprio per sistemi embedded con vincoli severi di memoria e CPU.

Architettura e conformità tecnica

P-Net è sviluppato secondo la Specifica PROFINET 2.4 e certificato secondo la Test Specification 2.45. Supporta:

  • Conformance Class A e B (CC-A / CC-B)
  • Real-Time Class 1 (RT Class 1)

Non supporta invece Conformance Class C/D, IRT (Isochronous Real-Time), ridondanza di sistema né TSN (Time-Sensitive Networking). Per la stragrande maggioranza delle applicazioni di automazione discreta e di processo questa copertura è più che sufficiente.

 

Protocolli implementati:

  • DCP (Discovery and Configuration Protocol) – per name resolution e IP assignment prima della fase IP
  • Real-Time protocol (Ethertype 0x8892) – frame Layer 2 raw, cicli tipici 1–10 ms
  • DCE/RPC su UDP (porta 34964) – per Connection Management (PNIO-CM), parametrizzazione e aciclico
  • LLDP (Ethertype 0x88CC) – discovery topologico dei nodi vicini
  • TCP/IP (UDP) solo per servizi non real-time

Struttura del dispositivo:

  • Slot e subslot configurabili tramite define (PNET_MAX_SLOTS, PNET_MAX_SUBSLOTS)
  • Payload massimo 1440 byte per direzione (dati utente + IOPS/IOCS)
  • Dati sempre in big-endian
  • Supporto completo I&M (Identification & Maintenance) da I&M0 a I&M4, con scrittura obbligatoria su almeno un DAP
  • Gestione allarmi (Process Alarm prioritari, Diagnostic Alarm) e logbook circolare (minimo 16 entry)

Il footprint è uno dei punti di forza: grazie all’approccio software-only e all’assenza di protocolli pesanti, lo stack risulta particolarmente compatto e semplice da integrare rispetto ad altre soluzioni commerciali.

 

Portabilità e integrazione

P-Net include un porting layer ben isolato che permette di adattarlo rapidamente a:

  • Bare-metal
  • RTOS (FreeRTOS, RT-Kernel, Zephyr, ecc.)
  • Linux (incluso Raspberry Pi)

La compilazione avviene con CMake; il repository GitHub (rtlabs-com/p-net) contiene un esempio completo pronto all’uso.

 

Get-started in meno di 60 minuti (per sviluppatori)

Clonare il repository:

bashgit clone --recurse-submodules https://github.com/rtlabs-com/p-net.git

 

Configurare e compilare:

bashcmake -B build -S p-netcd build && make

 

Eseguire sull’IO-Device (es. Raspberry Pi):

bash./pn_dev -vvv

 

Il dispositivo si rende visibile tramite DCP, completa l’AR (Application Relation) via RPC e inizia lo scambio ciclico RT con qualsiasi IO-Controller conforme (CODESYS, TIA Portal, ecc.). Il GSDML XML fornito descrive il modulo per lo strumento di engineering.

Per la produzione è necessario effettuare i test di conformità ufficiali con ART tester (disponibile ai membri PI).

Oltre al codice, RT-LABS mette a disposizione:

  • Documentazione tecnica completa (richiede account su docs.rt-labs.com)
  • Supporto diretto da ingegneri embedded con esperienza reale su PROFINET
  • Modalità di collaborazione flessibili: Software Support dedicato, Cooperative Team o Development Partner full-project

Versione attuale (al 2025): v1.0.2, con miglioramenti di robustezza derivanti da sessioni di fuzz-testing sul canale UDP/RPC.

 

Perché sceglierlo per il vostro prossimo dispositivo

Per sviluppare un sensore intelligente, un drive, un modulo I/O o modernizzare un prodotto legacy con comunicazione Ethernet, P-Net offre un ottimo compromesso tra conformità, semplicità di integrazione e controllo del codice sorgente. Evita la dipendenza da ASIC o moduli dedicati, riduce la BOM e semplifica lo sviluppo.

 

Scopri di più