
Per lo sviluppo dei programmi d'automazione o di supervisione,
operanti su logica MASTER Detail, è stato
appositamente creato il pacchetto software ICL51 per Personal
Computer con sistema operativo MS-DOS che puo' girare anche su
Windows98 come applicazione DOS.
La flessibilità hardware di tale sistema modulare ha richiesto
la presenza di un software di sviluppo altrettanto potente e flessibile:
il linguaggio di programmazione ICL51 è nato nella stessa
ottica di modularità del sistema hardware.
L'idea che ha permesso al software di seguire automaticamente
lo sviluppo continuo di moduli di espansione, sempre nuovi e diversi,
è stata quella di suddividere una parte della RAM dati
di lavoro in 32 distinte aree di uguale dimensione. Ciascuna di
queste aree viene automaticamente associata dal sistema ad ogni
modulo di espansione trovato sulla linea RS485, a seconda del
suo indirizzo prescelto; l'associazione avviene in modo trasparente
per il programmatore, il quale non deve far altro che gestire
i bits e le variabili a 8, 16, 32 bits delle espansioni, così
come fossero delle memorie interne alla CPU.
La presenza delle aree RAM (simili a degli SLOTs di ampliamento)
permette di sviluppare continuamente dei nuovi moduli di espansione,
senza preoccuparsi mai di cambiare i metodi della programmazione:
le istruzioni per gestire le nuove periferiche saranno sempre
le stesse. Sarà possibile far crescere in modo graduale
il proprio sistema senza perdere nulla di ciò che è
già stato fatto e messo a punto: ciò si traduce
in una grande semplicità dell'apprendimento del linguaggio,
tra l'altro studiato appositamente per far sembrare tutto estremamente
logico e semplice.
Le istruzioni presenti nel linguaggio ICL51 comprendono un vasto
set di istruzioni booleane per realizzare le classiche reti elettromeccaniche,
con l'ausilio di temporizzatori/contatori ed una quantità
incredibile di relè interni.
Istruzioni di salto a label, subroutine nidificate fino a 16 livelli,
inclusione di parti di programma, possibilità di utilizzare
operandi indiretti per le istruzioni su variabili, sono solo alcune
delle possibilità offerte dal linguaggio.
Potentissime istruzioni matematiche permettono di eseguire calcoli
complessi, con semplicità paragonabile a quella dei linguaggi
ad alto livello: per esempio con una sola istruzione è
possibile prelevare due variabili qualsiasi a 32 bits, moltiplicarle
ed il risultato posizionarlo in una terza variabile qualunque.
Se poi si pensa che ogni indirizzo può essere associato
ad una stringa descrittiva (fino 32 caratteri), la similitudine
con i linguaggi ad alto livello è ancora più evidente.
Le istruzioni di Calcolatrice di bordo permettono, con una semplicità
unica nel suo genere, di valutare espressioni matematiche tra
le variabili del programma; il calcolo a 32 bits con segno permette
di mantenere un'elevata precisione dei risultati, mentre la tecnica
della Notazione Polacca Inversa permette di introdurre espressioni
estremamente complesse senza l'utilizzo di parentesi.
Particolare attenzione è stata rivolta alla possibilità
di svilupparsi in assembler delle istruzioni personalizzate ed
estremamente potenti da aggiungere alla libreria di quelle di
base.
La programmazione avviene mediante la scrittura della lista istruzioni
in un file di testo utilizzando un comune editor (richiamabile
dall'interno dell'ambiente di sviluppo); in questo modo è
possibile creare in poco tempo il proprio programma avvalendosi
di tutte le funzionalità di un editor di testi, come la
possibilità di copiare parti di programma già sviluppate
in precedenza in altre applicazioni, di sostituire alcune stringhe
con altre, ecc.
Il software ICL51 comprende ovviamente tutti quegli strumenti
di debug del programma, come la possibilità di visualizzare
in tempo reale qualsiasi variabile della memoria dati o di forzarne
il valore. E' possibile visualizzare contemporaneamente fino ad
8 variabili a 32 bits,
sia in decimale (con e senza segno) che in binario; una gestione
a 512 righe permette di richiamare il monitoring di diverse variabili.
Le operazioni di set/reset dei singoli bits sono possibili con
la sola pressione di un tasto.
Operazioni di trasferimento, da e verso la logica, del programma
sviluppato avvengono con estrema semplicità; non mancano
le operazioni di carico e scarico dei dati nella memoria RAM di
lavoro e la preselezione automatica dell'orologio (opzionale)
della logica MASTER.
L'ambiente del software ICL51 è interamente realizzato
mediante Menu e finestre di colloquio; le operazioni possono essere
effettuate indifferentemente con i tasti di selezione veloce o
con i tasti freccia.
Un Help in linea permette di richiamare immediatamente un promemoria
per i comandi disponibili. Tutte le operazioni di configurazione
dell'ambiente di sviluppo, come le variabili correntemente monitorate,
sono automaticamente salvate in un file in modo da essere sempre
pronti a lavorare.
Esiste inoltre la possibilità di salvare diverse configurazioni
in funzione dell'applicazione e/o della logica utilizzata.
Un dettagliato ed esauriente manuale di programmazione permette
di apprendere in tempi brevissimi e senza sforzi sia il linguaggio
di programmazione che le tecniche per la messa a punto del programma;
sezioni dedicate all'interfaccia RS232 permettono rapidamente
di creare programmi di supervisione su PC, mediante linguaggi
ad alto livello, che gestiscano qualunque risorsa del sistema:
un semplicissimo protocollo di comunicazione RS232 consente di
"entrare" nella RAM dati del sistema interagendo, a
qualunque livello, con il programma della macchina.