A volte vengono richiesti dei programmi a corredo di una macchina che non sono strettamente legati all'automazione industriale. Altre volte la conoscenza acquisita su un prodotto rende più facile sviluppare un gestionale dedicato a quello specifico articolo. In ogni caso, all'interno di un'industria non c'è solo software per l'automazione industriale.

È questo il caso degli applicativi per la generazione di disegni tecnici, basati o meno sul canvas ADG, per la mass-customization o del sistema web per la gestione remota degli inseguitori che compongono tre centrali solari. Un altro esempio è il sistema per l'etichettatura di scatole di polverizzatori.

Nota bene: gli esempi riportati di seguito non sono esaustivi. Sono da considerarsi dei campioni software che ho sviluppato anche al di fuori della eNTiDi e di cui mi è stato possibile rintracciare la documentazione e pubblicarla.

Sistema labelprint Sistema di etichettatura scatole, anno 2004

Front-end grafico Ntd table browser per la gestione di database Berkeley DB

Il sistema di etichettatura è composto da diversi programmi che eseguono un compito semplice ma lo eseguono bene, in perfetta filosofia UNIX.

Il tipo di etichette da stampare è configurabile dinamicamente tramite il programma Ntd table browser. Trattasi di un front-end grafico generico per la gestione (consultazione, creazione ed eliminazione di voci) di un database Berkeley DB. I metadati necessari per identificare la composizione del record di dati (in altre parole la struttura dei campi) sono per convenzione definiti in un file di testo associato al database. Il front-end legge questi metadati e genera dinamicamente l'interfaccia utente usando appositi elementi grafici in base al tipo di dati da rappresentare.

Front-end grafico programma di stampa delle etichette sistema labelprint

La tabella in questione, Etichette.db, definisce nome, descrizione, immagine di anteprima e campi da stampare per ogni tipo di etichetta. Il formato reale dovrà essere registrato nell'etichettatrice ed il nome del template dovrà coincidere con il nome del record nel database Etichette.db.

Il programma reale per la stampa delle etichette, denominato labelprint, consente di richiamare il tipo di etichetta dall'elenco precedentemente creato con il programma Ntd table browser. Il resto dell'interfaccia utente visualizza un'anteprima dell'etichetta e consente di definire i campi richiesti per la sua stampa.

Parte dei campi possono essere precompilati pescando da un'anagrafica dati pezzo: se il codice specificato esiste, i campi che dipendono da esso vengono riempiti (lasciando comunque la possibilità di modificarli).

Entrambi i programmi sono stati sviluppati in C e l'interfaccia grafica è basata sulle librerie GTK+2. Sono state sperimentate diverse diverse novità, come la nuova versione delle GTK+ (versione 2), la personalizzazione della veste grafica (i temi) e l'uso delle API fornite da termios per il colloquio seriale con l'etichettatrice. Nel campo dell'organizzazione del codice è stato introdotto l'uso di un SCM (subversion) e la gestione del sistema di building con gli autotools.

Generazione disegni (2) Generazione disegni polverizzatori, anno 2001

Schermata di gestione fondi programma di generazione disegni polverizzatori diesel

Applicazione per la generazione automatica dei disegni di polverizzatori diesel. Si tratta di un gestionale piuttosto complesso che manipola diverse anagrafiche per generare la massa dati che identifica univocamente il singolo polverizzatore diesel. Da questa massa dati finali vengono poi generati e stampati i diversi disegni da mandare in produzione.

L'intero applicativo è stato basato su piattaforma Microsoft Access 2000. La logica è stata sviluppata nel linguaggio di scripting VBA (VisualBasic for Application, ossia VisualBasic 6 embedded). Nonostante il linguaggio scelto fosse chiaramente inadeguato per un progetto di tali dimensioni, il supporto alla gestione dei dati di Access (maschere e query) e l'ubiquità della piattaforma ha sopperito alle lacune semantiche di VBA.

Il disegno viene generato in formato DXF usando le normali funzioni di manipolazione del file di testo messe a disposizione da VBA. Il risultato viene poi importato nell'interfaccia utente per la stampa usato il filtro di importazione immagini vettoriali presente in Access 2000 (non installato per default).

L'esperienza acquisita nello sviluppo degli applicativi di generazione disegni ha suggerito l'idea di una generalizzazione dell'approccio slegato dal prodotto e da tecnologie proprietarie, portando allo sviluppo del canvas ADG.

Generazione disegni (1) Generazione disegni polverizzatori, anno 1996

Schermata di gestione dati corpo gestionale generazione disegni polverizzatori diesel

Questo è il gestionale di generazione dei disegni polverizzatori originale, qui incluso per rilevanza storica. Il programma in questione non è più in uso perché soppiantato nel 2001 da una versione più aggiornata sviluppata in Microsoft Access 2000.

L'applicazione è stata sviluppata in Superbase 95, un database RAD del tutto simile a Microsoft Access. È stato scelto non per doti tecniche, ma più semplicemente perché era già disponibile sulla piattaforma di sviluppo.

Gran parte del programma consisteva in tabelle e moduli per l'inserimento dati nelle stesse. La struttura generale di queste tabelle seguiva strettamente il ciclo di produzione della ditta commissionatrice, in modo da non stravolgerne le consuetudini. Il raggruppamento stesso dei campi ricalcava le operazioni meccaniche eseguite dalle varie macchine.

Per velocizzare l'inserimento di dati ripetitivi (i valori da inserire per completare il polverizzatore erano circa 300) era possibile selezionare delle "famiglie" che precompilavano gran parte dei campi richiesti.

Schermata di stampa corpo di torneria generata dal gestionale di generazione disegni polverizzatori diesel

Il disegno veniva generato in formato DXF usando le normali funzioni di manipolazione del file di testo messe a disposizione dal linguaggio di scripting di Superbase. Il risultato veniva poi importato nell'interfaccia utente per la stampa usato un filtro di importazione immagini DXF fornito con il database. Lo stesso approccio verrà seguito pari pari nella successiva versione del programma.

Ogni generazione del disegno richiedeva approssimativamente 5 secondi. La massa dei file DXF generati era stoccata in una directory, in modo da consentirne l'apertura e la modifica con programmi di CAD in un secondo tempo, per esempio per aggiungere una lavorazione non prevista dalle procedure di disegno automatico o per stampare un disegno con quote speciali.

Una volta inseriti, i polverizzatori potevano essere ricercati per diverse caratteristiche. La massa dati era poi disponibile per eseguire diverse query, per esempio in pochi minuti si poteva conoscere l'esatto numero di polverizzatori prodotti con una specifica caratteristica tecnica.

Schermata di stampa scheda di foratura generata dal gestionale di generazione disegni polverizzatori diesel

Da uno stesso insieme di dati venivano generati più disegni. Nello specifico, il numero di disegni generati da un unico set era 7 e corrispondeva al numero di disegni richiesti dalla produzione e dall'ufficio commerciale.

Nei disegni venivano incluse informazioni specifiche per le macchine di lavorazione cui andavano inviati. Per esempio nella scheda di foratura del polverizzatore veniva stampata una tabella con le impostazioni da settare nelle due diverse macchine di foratura disponibili in azienda.

Nel modulo per l'inserimento degli angoli dei fori di spruzzo era disponibile un comando per interfacciarsi con un'apparecchiatura di controllo fori a getto idraulico gestita da PLC Hitachi serie H. Questo comando consentiva di acquisire via seriale gli angoli direttamente dal PLC dopo averli opportunamente acquisiti con l'apparecchiatura in questione.

Il sistema era ben congegnato ma la scelta di usare Superbase 95 si è rivelata fatale. Il programma non è sopravvissuto al tempo e il passaggio a sistema operativo Windows XP è stato fatale.

eNTiDi logoeNTiDi software
Software per l'automazione industriale

via Conciliazione, 13
 25039 Travagliato (BS)

Telefono: 366 3206501
E-mail: ntd@entidi.it
PEC: entidi@mlcert.it

 Partita IVA: 02909410983