Come già discusso nell’articolo sul Model Design, la OPC Foundation fornisce un tool gratuito chiamato ModelCompiler il quale permette di generare classi e file di configurazione necessari allo sviluppo di un server OPC UA.

Il progetto, liberamente scaricabile dal repository GitHub, è però unicamente eseguibile su piattaforma Windows.

Esistono dei metodi per usare il tool su Linux ma si basa sull’utilizzo di docker e non è dato sapere se sia possibile sfruttare questa soluzione anche su sistemi Mac.

In questo articolo, dunque, ti presento una soluzione che rende il ModelCompiler completamente cross platform, sfruttando la piattaforma .NET Core.

Prima di cominciare, ti ricordo che per compilare ed eseguire correttamente il progetto che andremo a scaricare a breve, è necessario avere installato nel tuo sistema l’SDK .NET Core 3.1.

Per l’installazione, fai riferimento alla pagina di download ufficiale Microsoft.

Cross Platform Model Compiler

Il ModelCompiler che ti vado a presentare non è altro che un fork del repository originale della OPC Foundation, in cui ho provveduto ad eliminare e sostituire le parti del progetto in cui erano utilizzate librerie compilabili solamente in Windows.

In questo modo ho ottenuto in progetto basato su .NET Core, che per la sua natura cross platform, ci permette di utilizzare il ModelCompiler in qualsiasi sistema operativo supportato.

Per scaricare il progetto, possiamo fare principalmente due cose.

1. Clonare il repository Git tramite il comando:

Copy to Clipboard

2. Scaricare il progetto da questo link.

In entrambi i casi ci ritroveremo una soluzione che possiamo sia aprire con un IDE di sviluppo come Visual Studio o Visual Studio Code per poterlo liberamente modificare e compilare.

Il progetto non ha dipendenze particolari da soddisfare in quanto ho incluso l’ultima versione delle librerie OPC UA al suo interno.

Se usi un editor di sviluppo come Visual Studio Code, una volta aperto il progetto, sarà sufficiente eseguire il seguente comando per compilarlo con successo:

Copy to Clipboard

Al termine dell’operazione, nella cartella di progetto bin\Debug\netcoreapp3.1 troverai tutti i file necessari per utilizzare il ModelCompiler.

A questo punto, per dettagli specifici su come eseguire la compilazione di un modello completo, ti rimando a questo articolo dove mostro come scrivere un modello di dati necessario per poi sviluppare un server OPC UA.

Ovviamente, a differenza di quanto riportato nell’articolo appena citato, se non operi in ambiente Windows per lanciare correttamente il comando di compilazione, dovremo eseguire da console la seguente istruzione (omettendo l’estensione .exe):

Copy to Clipboard

Conclusioni

La OPC Foundation ha sviluppato lo Stack OPC UA basandolo sul framework .NET Core che gli consente di rendere compatibile le librerie con tutti i sistemi operativi attualmente in uso. Nel caso del tool ModelCompiler, utilissimo per chi vuole sviluppare server OPC UA, la scelta implementativa è stata quella di scrivere un’applicazione Windows-based, venendo meno alla natura cross platform dell’intero ecosistema.

Come detto nell’introduzione, esistono dei metodi per eseguire lo stesso tool su Linux, ma restano comunque sistemi che cercano di porre una pezza ad un progetto che di per sé merita di essere reso più generale e multipiattaforma.

In questo articolo, quindi, abbiamo visto una semplice soluzione che puoi liberamente scaricare dal mio repository, nel quale il ModelCompiler è stato ripulito da ogni riferimento che ne pregiudicasse l’esecuzione su sistemi diversi da quello di casa Microsoft.