Cos’è il Sistema NSC?

Networked Shared Control – un’architettura distribuita per l’automazione autonoma

NSC (Networked Shared Control) è un sistema di automazione distribuita progettato per il controllo in tempo reale su una rete peer-to-peer a basso consumo. Originariamente sviluppato per l’automazione industriale e degli edifici, consente a più dispositivi embedded di collaborare senza un controller centrale.

Architettura di rete NSC

Ogni nodo NSC esegue un sistema operativo multitasking cooperativo leggero e può eseguire logicamente in modo indipendente la logica guidata da eventi, comunicare con i peer e rispondere a stimoli dall’ambiente. La logica è definita usando un linguaggio intermedio interpretato generato da un ambiente di sviluppo visuale.

Diagramma di multitasking cooperativo basato su eventi

Architettura del Sistema

Nota: Mentre il protocollo consente fino a 256 I/O, i dispositivi disponibili possono supportare meno di 16 ingressi e fino a 16 uscite tra fisiche e virtuali.

Programma ed Esecuzione

Ogni dispositivo NSC esegue un programma compilato in una rappresentazione intermedia. Questo codice viene interpretato dal runtime all’interno del sistema operativo embedded.

A differenza dei PLC tradizionali che si basano su scansioni cicliche, i dispositivi NSC eseguono la logica solo quando attivati da eventi. Ciò migliora la reattività e l’efficienza nei sistemi distribuiti.

Diagramma comparativo del processo ciclico PLC e dei processi guidati da eventi NSC

Nota: I dispositivi programmati usando il sistema NSC OS sono compilati in codice nativo usando AVR-GCC e il firmware viene eseguito direttamente. Vedi Sviluppo Avanzato.

Comportamento Cooperativo

Grazie al modello di comunicazione peer-to-peer, i dispositivi possono collaborare in modo naturale. Le interazioni tra ingressi, uscite, timer e funzioni possono estendersi tra nodi e sono sincronizzate tramite RPC (Remote Procedure Calls) generati automaticamente.

Gli sviluppatori non devono gestire manualmente il livello di comunicazione — il sistema astrae messaggi e sincronizzazione.

Diagramma di una rete NSC e del flusso dei messaggi

Progettazione con MaticStudio

La logica viene definita visivamente in MaticStudio, l’IDE ufficiale per NSC. I progetti possono includere più dispositivi e collegamenti logici tra di essi. Gli sviluppatori possono configurare eventi come cambio di ingresso, scadenza di timer o pressione di pulsanti, e assegnare risposte come il toggle di uscite o la chiamata di funzioni remote.

Il sistema è modulare ed estendibile tramite Componenti Virtuali, distribuiti come file COB. Questi forniscono logiche avanzate e componenti UI opzionali per l’integrazione SCADA.

👉 Scopri di più su MaticStudio

Esempi di Applicazioni

Sviluppo Avanzato: NSC AppWizard & SDK

Per utenti avanzati e sviluppatori embedded che cercano il controllo a basso livello sul firmware, il sistema NSC include una toolchain opzionale composta da NSC AppWizard e un completo Software Development Kit (SDK).

NSC AppWizard permette la configurazione a livello di progetto di un sistema distribuito composto da più dispositivi. Gli sviluppatori possono:

Una volta configurato, AppWizard genera set separati di file C e header per ogni dispositivo nel progetto, precompilati con tabelle di eventi, stub RPC e codice di inizializzazione. Gli sviluppatori possono quindi implementare comportamenti personalizzati modificando direttamente i file generati.

Lo SDK include il codice sorgente completo del sistema operativo NSC ed è compatibile con le toolchain AVR-GCC, permettendo la completa personalizzazione e compilazione del firmware al di fuori di MaticStudio.

Questo approccio è ideale per utenti avanzati che necessitano di integrazione hardware stretta, ottimizzazioni in tempo reale o accesso a routine a livello di interrupt oltre le capacità dell’IDE grafico.


👉 Scopri di più su NSC OS SDK per AVR-GCC e AppWizard