Il software finora sviluppato è essenzialmente
un'architettura per il controllo di un impianto sperimentale basandosi
sulla piattaforma Linux/RTAI. Tale architettura ha come caratteristica
fondamentale l'individuazione di tre componenti software indipendenti e
intercomunicanti, che assumono differenti ruoli nel controllo del plant.
Tali componenti sono:L'API di implementazione delle ricette, fornisce a futuri studenti di ingegneria informatica un'interfaccia software per poter gestire un impianto da laboratorio che simula processi industriali, in ambiente Linux RTAI, il quale permette l'implementazione di task Hard Real-Time non solo in kernelspace, ma anche in userspace, grazie all'innovativo LXRT. Tale caratteristica ha reso disponibili le caratteristiche di RTAI per lo sviluppo del software in questione, realizzato in C++, seguendo il paradigma di programmazione ad oggetti.
Per quanto riguarda invece le ricette vere e proprie, l'API fornisce all'utente, colui cioè che effettuta il vero controllo logico, una facile interfaccia di programmazione per poter gestire agevolmente l'impianto da laboratorio Beo. Tramite tale interfaccia l'utente utlizza i metodi forniti per scrivere una ricetta seguendo l'ottica tipica dei programmi in SFC: sono infatti forniti metodi di accesso alle funzionalità dei singoli elementi del plant mappati in maniera trasparente sullo strato di interazione con l'impianto fisico, quindi sulle vere e proprie chiamate ai drivers della scheda di acquisizione dati nonchè alla porta seriale per il manipolatore SCARA. Dal momento che tali interfaccie devono essere utilizzate da studenti nell'ambito dell'automazione industriale, tale strato, piuttosto che fornire all'utente chiamate a metodi quali apri_pinza() o pistone_esci(), segue il paradigma visto a lezione ed in laboratorio lavorando con ISaGRAF, dando cioè visibilità all'utente su ogni singola valvola, sensore e motore, piuttosto che su oggetti da questi composti.
Riprendendo l'esempio precedente, per aprire la pinza l'utente deve
aprire la valvola interna al pistone della stessa, tenerla aperta e fare
polling sul sensore di pinza aperta fino a quando questo non non
dà il relativo segnale, seguendo quindi più da vicino il
comportamento di un vero programma per PLC. Solo allora la procedura di
apertura della pinza potrà dirsi conclusa. Lo scopo di questo
tipo di sviluppo è quindi concorde con l'ottica di programmazione
appresa nelle esperienze di laboratorio del corso in questione, seguendo
l'idea di fornire all'utente un prodotto con fini didattici affine
a quanto appreso nel corso, e non con scopi produttivi o di
comodità di programmazione.
Per ulteriori informazioni vedi l'elaborato di tesi relativo, o contattare Matteo Lazzarotto.