10
normative attualmente in fase di sviluppo, sono denominate IEC 1499 e IEC
1804.
1.1 Obiettivi del lavoro
I principali obiettivi del presente lavoro sono l’analisi della futura normativa
IEC 1499 in corso di definizione, la progettazione e la realizzazione di un
ambiente di sviluppo per sistemi di controllo distribuiti basato su tale normativa
e la progettazione e l’implementazione, tramite l’ambiente realizzato, del
software di controllo di un robot industriale.
La normativa IEC 1499 è stata sviluppata con l’obiettivo di fornire un
formalismo di riferimento per la descrizione, implementazione e manutenzione
di un IPCMS (Industrial Process Control and Measurement System - Sistema di
controllo e misurazione di un processo industriale). Questa normativa introduce
un formalismo guidato dagli eventi, basato sull’entità function block (blocco
funzionale); un function block è un elemento software che a fronte di eventi
esterni, può eseguire uno o più algoritmi. Graficamente un function block viene
rappresentato tramite un blocco con ingressi e uscite tramite i quali può
acquisire e generare dati ed eventi. Un’applicazione per il sistema di controllo
viene quindi realizzata tramite un diagramma di function block interconnessi.
Tramite tale formalismo grafico vengono definiti gli elementi architetturali e
software di un sistema di controllo. In particolare sono state analizzate le
potenzialità del formalismo grafico introdotto, nella prospettiva di un suo
utilizzo da parte di ambienti di sviluppo CACSD, confrontandolo con i
formalismi grafici precedentemente sviluppati e adottati dagli ambienti esistenti.
Nel corso di questo lavoro è stato progettato un prototipo di ambiente CACSD
denominato FBCad (Function Block Computer Aided Design). FBCad nasce con
l’obiettivo di fornire al progettista un ambiente grafico di sviluppo basato sul
formalismo dei function block, tramite il quale definire il software di controllo
per sistemi ibridi e simulare il funzionamento del software. Per eseguire una
simulazione del sistema sotto controllo risulta necessario disporre oltre che del
software del sistema di controllo, anche di un modello dinamico del processo
fisico. Con questo obiettivo è stato esteso il formalismo della normativa per
poter definire un semplice modello per sistemi non complessi.
1.2 Descrizione delle attività svolte
Il lavoro è stato svolto nel Laboratorio di Automatica presso il Dipartimento di
Elettronica e Informazione del Politecnico di Milano. Le attività svolte possono
essere riassunte in tre fasi. La prima fase è consistita nell’analisi della normativa
IEC 1499 con lo scopo di evidenziare le possibili ambiguità indotte dal
formalismo utilizzato. Inoltre sono stati analizzati i principali formalismi di
11
specifica del software attualmente esistenti e gli ambienti di sviluppo e
simulazione precedentemente realizzati.
Nella seconda fase sono state valutate le possibili alternative delle principali
scelte implementative per la realizzazione di FBCad. La piattaforma
hardware/software prescelta è stata un Personal Computer con sistema operativo
Windows NT 4.0 disponibile presso il Laboratorio di Automatica, in quanto
rappresenta una soluzione economica e diffusa. La scelta di Windows NT
permette inoltre di disporre di un sistema operativo affidabile che consente di
sfruttare appieno le potenzialità del sistema di elaborazione su cui è installato.
Lo sviluppo del software è stato affidato ad un ambiente di programmazione
C++ RAD (Rapid Application Development), denominato Power++, e a Visio
Technical, un CAD grafico bidimensionale programmabile. FBCad sfrutta
l’ambiente grafico di Visio Technical per la rappresentazione grafica delle entità
definite e assiste il progettista nella definizione e configurazione del sistema di
controllo, tramite un’interfaccia grafica intuitiva. Una caratteristica molto
importante di FBCad è la scelta di C++, come linguaggio con cui descrivere gli
algoritmi associati ai function blocks. Sfruttando questa scelta progettuale,
FBCad può produrre automaticamente il codice eseguibile per il sistema di
controllo, o comunque genera il codice sorgente completo per un qualunque
dispositivo che possa disporre di un compilatore C++(o di un cross-compilatore
C++ su un’altra macchina).
Infine nella terza fase è stato validato l’ambiente FBCad tramite un’applicazione
reale di controllo e supervisione del sistema robotico COMAU, in dotazione al
Laboratorio di Automatica. Il sistema di controllo del robot industriale è
composto dal robot Smart3-S a sei gradi di libertà, il controllore industriale
C3G-9000 e un personal computer. Per mezzo di FBCad è stato realizzato un
modello operativo del controllore ed è stato specificato il software di
supervisione per il personal computer. Il funzionamento del software e della
strategia di controllo è stato validato per mezzo della simulazione effettuata
sempre in ambiente FBCad; infine è stato generato automaticamente il codice di
implementazione in C++, per il personal computer e verificato con successo, la
coerenza di funzionamento del software sul sistema reale.
1.3 Principali risultati ottenuti
Il presente lavoro rappresenta un ulteriore contributo nell’ambito dello sviluppo
di ambienti di progettazione per sistemi di controllo. In particolare, per nostra
conoscenza, attualmente FBCad rappresenta l’unico ambiente di sviluppo basato
sul formalismo introdotto dalla normativa IEC 1499 in via di preparazione.
L’intero ambiente è stato sviluppato per sistemi PC, per favorirne l’utilizzo su
sistemi di calcolo relativamente diffusi e comuni, adottando l’interfaccia grafica
12
standard di Microsoft Windows per rendere l’uso di FBCad intuitivo e di facile
comprensione.
L’analisi della normativa ha inoltre evidenziato che il formalismo adottato ben
si presta sia ad una rappresentazione funzionale, sia ad una rappresentazione
object-oriented delle singole entità del sistema di controllo. Per
rappresentazione funzionale si intende la scomposizione di un entità nelle sue
funzioni principali, mentre per rappresentazione object-oriented si rappresenta
un entità tramite un insieme di attributi e azioni che questa può compiere. Infatti
è stato possibile definire una procedura di progettazione tramite la quale
sfruttare le tecniche di modellazione orientate agli oggetti nella definizione dei
function block, in particolare modo in riferimento alle metodologie descritte in
[SHLAER/MELLOR] e [CDM_REPORT].
Attraverso lo sviluppo dell’applicazione robotica è stato inoltre possibile creare
un insieme minimo di function block (espandibile in futuro) tramite i quali
programmare ad alto livello in forma grafica un’applicazione per il sistema
robotico COMAU. La scelta progettuale di sfruttare il C++ come linguaggio per
la definizione degli algoritmi interni dei FB e per la generazione dell’intero
codice sorgente ha consentito il riutilizzo del software di controllo
precedentemente sviluppato dal costruttore per il sistema robotico. Questa
osservazione e il fatto che numerosi sistemi di controllo dispongono del
software di controllo in linguaggio C [AUT_INTEGRATA], suggerisce che
FBCad possa trovare ulteriori applicazioni come ambiente di programmazione
per sistemi di controllo, in quanto favorisce l’incapsulamento e il riuso non solo
dei componenti da esso creati, ma anche del codice di controllo
precedentemente sviluppato.
Tramite l’approccio proposto da FBCad per la realizzazione del sistema di
controllo, si tende a unire la fase di progettazione del controllo con la fase di
realizzazione. Questa osservazione è importante alla luce del fatto che spesso la
progettazione del sistema di controllo avviene tramite particolari ambienti di
sviluppo che non tengono poi conto degli effettivi problemi di implementazione.
Se da un lato tale approccio consente di separare (e validare) le due fasi di
progettazione, dall’altro può portare a differenze tra lo studio teorico e
l’implementazione pratica.
1.4 Organizzazione del documento
Il documento è stato suddiviso in otto capitoli. Nel seguito diamo una breve
descrizione dei capitoli che compongono il documento.
Nel capitolo 2 viene descritta la normativa IEC 1499 nei suoi vari aspetti
peculiari e gli scopi per cui è stata introdotta, definendo le entità utilizzate.
13
Nel capitolo 3 viene analizzata la normativa, ponendo particolare enfasi sugli
aspetti di temporizzazione, sincronizzazione e comunicazione. Viene poi
introdotto un modello equivalente dei FB basato sul formalismo delle reti di
Petri per confrontare i due formalismi e per mettere in luce le problematiche
descritte precedentemente. Viene inoltre fornita un’analisi del modello di
distribuzione delle applicazioni progettate.
Nel capitolo 4 viene effettuata una classificazione dei principali formalismi di
specifica del software, presenti in letteratura, analizzando vantaggi e svantaggi.
Nel capitolo 5 viene descritto l’ambiente di sviluppo FBCad, attraverso una
descrizione generale dei componenti software realizzati, e del ciclo di sviluppo
di un progetto. Vengono inoltre descritte le estensioni introdotte al modello
della normativa, le interfacce grafiche utilizzate, e le caratteristiche peculiari
dell’ambiente di progettazione.
Nel capitolo 6 vengono descritte le tecniche utilizzate per la generazione
automatica del codice per l’esecuzione sul sistema reale e per la simulazione.
Nel capitolo 7 viene riportato lo sviluppo teorico e pratico di un’applicazione
completa, utilizzata per la validazione dell’ambiente FBCad. Questa
applicazione consiste nel controllo di posizione e supervisione del robot
industriale Comau Smart 3-S. L’applicazione è stata definita tramite FBCad,
validata attraverso la simulazione ed infine eseguita sul sistema reale.
Infine nel capitolo conclusivo, sono stati riassunti i risultati ottenuti durante tutta
la durata del lavoro, proponendo alcuni possibili sviluppi futuri.
Nell’appendice A viene presentato un Tutorial dell’ambiente FBCad per l’utente
finale guidandolo nella creazione di un progetto completo.
Nell’appendice B vengono descritti i formati dei principali files prodotti da
FBCad per eventuali estensioni future.
Nell’appendice C vengono descritti i function block componenti l’attuale
libreria di FBCad.
Nell’appendice D infine, sono riportate le descrizioni delle principali classi
utilizzate per l’implementazione dell’ambiente di sviluppo.