iArte

(Industrial Automation Real Time Environment)






Descrizione

Il pacchetto software iArte è un ambiente integrato per la realizzazione di applicativi softlogic per il controllo di processi industriali. La sua funzione principale è quella di permettere l'esecuzione di complessi algoritmi di controllo su una piattaforma hardware PC standard che può essere utilizzata, nel contempo, anche per l'esecuzione di applicativi HMI o SCADA. Per far questo iArte sfrutta le funzionalità offerte dal sistema operativo Linux integrato con l'estensione hard real time fornita dall'ambiente RTAI (Real Time Application Interface). Grazie a questa piattaforma software di base, le due sottoparti logiche in cui si suddivide il sistema, quella real time e quella non real time, operano in modo indipendente fra loro realizzando due macchine virtuali distinte. Le caratteristiche principali di questo ambiente sono:

  1. Il pacchetto opera in un contesto hard real time cioè è in grado di eseguire particolari compiti ad istanti temporali precisi e definibili a priori, senza possibilità di ritardi, garantendo i tempi di risposta indipendentemente dalla situazione di utilizzo.

  2. Il sistema operativo, nella parte non real time, può eseguire tutti quei pacchetti applicativi utili per la gestione delle informazioni (editor, fogli elettronici, DBMS, ...) disponibili per il sistema operativo Linux standard.

  3. Linux, RTAI e iArte sono prodotti software open source, cioè il sorgente è distribuito liberamente. Questo significa che è garantita la disponibilità a lungo termine e l'utente stesso può eventualmente apportare tutte le modifiche che ritiene necessarie per adattare il sistema alle sue esigenze specifiche.

  4. Non vi sono royalty sugli applicativi sviluppati.

  5. Il sistema è estremamente scalabile. Può funzionare efficientemente sia su sistemi hardware minimi e senza dispositivi di interfaccia con l'utente (per esempio una semplice scheda embedded all in one con flash disk da 8Mbyte, 4Mbyte di DRAM, senza scheda video ne tastiera) sia su potenti IPC (Industrial PC).

  6. I dati di processo possono essere memorizzati sia sulla memoria DRAM principale sia su SRAM. Nel primo caso diviene indispensabile l'uso di dispositivi di back up dell'energia elettrica per consentire una chiusura controllata del sistema e permettere il salvataggio dei dati non volatili su disco. In questo caso vi è la possibilità di eseguire lo shut down automatico del sistema in mancanza di energia elettrica o al verificarsi di un qualsiasi evento anomalo esterno. Nel secondo caso è indispensabile installare una scheda di memoria con RAM statiche tamponate da batteria e questo fa sì che si possa spegnere il sistema senza alcun accorgimento, con la garanzia di non perdere i dati di processo ivi memorizzati.

  7. Nell'ambiente iArte vi è un modulo software per la gestione della lettura e scrittura degli ingressi e uscite del processo, posti sul campo. Questa è sicuramente una delle funzioni più importanti di tutto il sistema ed è stata concepita per essere efficiente, flessibile e il più possibile trasparente all'utente. Questo modulo si basa su una struttura a più device driver che possono funzionare in modo concorrente, ciascuno dei quali si occupa di gestire lo scambio di informazioni con un particolare canale verso il campo. Naturalmente c'è la possibilità di inserire anche device driver scritti direttamente dall'utente. E' possibile definire il tempo di ricorrenza per ciascuna operazione di lettura o scrittura sui vari canali per combinare le operazioni più lente in modo da evitare picchi di traffico sui canali.

  8. Per quanto riguarda il modulo che si occupa di gestire il programma di controllo dell'utente (chiamato modulo PLC) si è fatto in modo di ricalcare la struttura di un classico PLC dotato di immagini di processo per gli ingressi e le uscite. Sono tuttavia disponibili funzioni per la lettura e scrittura dirette degli I/O senza passare attraverso le immagini di processo (letture e scritture dirette sulla periferia). Per il ciclo di funzionamento vi sono più possibilità di scelta e si va dal classico ciclo che prevede le fasi di lettura degli ingressi, esecuzione del programma PLC e scrittura delle uscite, eseguite in modo strettamente sequenziale, al più efficiente ciclo in cui l'esecuzione del programma PLC e l'aggiornamento delle immagini di processo per gli ingressi e le uscite sono operazione svolte in parallelo. Per quanto riguarda le tecniche di programmazione per questo modulo PLC, il linguaggio di programmazione di base è il linguaggio C standard anche se sono state implementate alcune strutture definite dalla norma IEC 1131-3. In particolare, per la programmazione di controlli sequenziali, è possibile utilizzare l'SFC (Sequential function chart). Per quanto riguarda i tipi di dati gestibili è possibile trattare tutti i dati elementari definiti dalle norme summenzionate, dai dati ad un solo bit fino alle long word da 64 bit.

  9. E' possibile definire task asincrone rispetto al ciclo del PLC, richiamate ad intervalli di tempo regolari ed aventi una priorità di esecuzione maggiore rispetto al modulo del PLC. Per default la base di tempo scelta permette di impostare tempi di ricorrenza con la risoluzione di 1 millisecondo con la garanzia di avere uno jitter estremamente ridotto. E' possibile, modificando semplicemente una costante di sistema, ridurre la base di tempo fino a 100 ms al costo di una limitata perdita di efficienza del sistema.

  10. Vi è la possibilità di comandare un watch dog esterno per il controllo del ciclo del PLC in modo tale che, un suo intervento, possa mettere in sicurezza l'intero impianto controllato a livello elettromeccanico.

  11. Vi è la possibilità di garantire che rimanga tempo anche per l'esecuzione di tutte le applicazioni non real time (per esempio l'applicazione di supervisione). In tal senso è previsto un controllo (chiamato user watch dog) che permette di arrestare l'esecuzione del programma utente se non viene garantito un tempo minimo anche per le applicazioni non real time.

  12. Tutti i dati di processo sono disponibili, attraverso particolari chiamate di sistema, anche all'eventuale applicativo di supervisione.

  13. Fa parte del pacchetto anche un applicativo per la gestione e il debug del programma utente. Oltre alle funzioni di lettura e scrittura di tutti i dati di processo, è possibile testare lo stato del sistema, i tempi di esecuzione del ciclo PLC, definire dei break nel programma ed effettuare l'esecuzione passo-passo dello stesso.



Applicazioni

Molte sono le applicazioni di iArte già sviluppate o in corso di realizzazione. Fra le più significative vi sono:

- Automazione di una macchina tagliatrice automatica per lastre di marmo e granito

- Automazione di una macchina automatica per il controllo e la correzione della ovalizzazione di ralle

- Automazione di un banco prova per sistemi frenanti utilizzati in macchine di F1


Autore

Roberto Finazzi

Via Sondrio, 4

24060 Bolgare (BG) - Italy

Il pacchetto iArte nasce come lavoro di tesi sviluppato presso la Facoltà di Ingegneria dell'Università degli Studi di Brescia (Relatore Prof. Pietro Baroni). La versione V0.4 di iArte, con il relativo manuale, sono il frutto del lavoro di tesi di Hemiliano Berselli, anch'esso studente di Ingegneria dell'Università degli Studi di Brescia, a cui va tutta la mia gratitudine.

Per qualsiasi informazione, commento, segnalazione di nuove applicazioni, consigli, migliorie, richieste di collaborazione, ... sono reperibile via mail.



Licenza d'uso

Il pacchetto iArte è un prodotto software open source coperto dalla licenza GNU GENERAL PUBLIC LICENSE, nella versione 2 o successiva (a vostra scelta), come definito dalla Free Software Foundation. E' possibile ottenere una copia della licenza all'indirizzo http://www.gnu.org



Download

Sorgenti di iArte nella versione V0.2 - iarte0_2.tgz

Sorgenti di iArte nella versione V0.3 - iarte0_3.tgz

Sorgenti di iArte nella versione V0.4 - iarte0_4.tgz

Manuale utente di iArte in formato postscript (V0.2) - manuale_iarte0_2.tgz

Manuale utente di iArte in formato postscript (V0.4) - manuale_iarte0_4.zip

Programma per convertire un sorgente SAIA GRAFTEC (C) in iArte SFC - sb_comp.tgz



Link utili

RTAI - Real Time Application Interface

PeeweeLinux - Linux per applicazioni embedded

Università degli Studi di Brescia - Facoltà di Ingegneria

SAIA-Burgess - PLC Process Control Devices (PCD)







Last updated: 14 september 2002