SOFTWARE
Il linguaggio ICL51 è stato appositamente studiato per consentire la programmazione ad alto livello di un sistema elettronico complesso, realizzato dalla connessione, mediante una rete multipunto, di un certo numero di schede a microprocessore della famiglia INTEL® 80C51.
Lo scopo di tale sistema elettronico è il controllo delle funzioni di una macchina o di un impianto automatico, indipendentemente dalle dimensioni di questi. Il termine ICL51 deriva da INDUSTRIAL CONTROL LANGUAGE, mentre 51 indica che il software è indirizzato a tutti i componenti della famiglia INTEL® 80C51, compresi tutti i suoi derivati.
La caratteristica di base del sistema elettronico, sul quale opera tale linguaggio, è quella di essere composto da una o più schede elettroniche tra loro collegate secondo una struttura di tipo MASTER / SLAVE. Il sistema minimo sarà dunque costituito da una sola scheda, che assume necessariamente la funzione di MASTER. Il sistema massimo è invece costituito da 32 schede. delle quali una opera come MASTER e le rimanenti 31 operano come SLAVES.
Ciascuna scheda, sia MASTER che SLAVE, deve avere a bordo almeno un microprocessore della famiglia 80C51. Il linguaggio ICL51 permette, tramite l'apposita compilazione, di generare il codice macchina che gira sulla scheda MASTER del sistema; le eventuali schede SLAVES hanno invece un proprio definito programma a bordo, che consente di elaborare in loco le prorpie risorse e di comunicare con il MASTER. Esiste tuttavia la possibilità da parte di alcune schede di operare come SLAVE di espansione intelligente, ossia capace di eseguire localmente un proprio programma d'automazione, secondo il linguaggio ICL51, in modo parallelo a quello del MASTER. Questa modalità di funzionamento, detta MULTIPROGRAM, permette di realizzare sistemi molto complessi composti da un MASTER principale che controlla u insieme di SLAVES tra i quali alcuni eseguono parallelamente un proprio programma locale (sulle proprie risorse) con le stesse potenzialità di programmazione del MASTER.
Il MASTER si occupa quindi della vera e propria gestione dell'intero processo automatico, secondo il programma scritto nel linguaggio ICL51, elaborando sia le proprie risorse, sia quelle degli SLAVES. In ogni momento il MASTER ha una dettagliata visione di tutte le risorse dell'intero sistema, mentre ogni SLAVES ha visibilità solo delle proprie risorse.
Il software residente sul MASTER si occupa principalmente di quattro cose:
Il linguaggio ICL51 permette di descrivere il funzionamento di una macchina automatica semplicemente editando un FILE sorgente, secondo le regole sintattiche stabilite. Il FILE sorgente (.PRG), una volta editato, verrà sottoposto ad un processo di compilazione il quale genererà il FILE oggetto (.OBJ), successivamente caricato sulla scheda MASTER. questo linguaggioè del tipo LISTA ISTRUZIONI, ossia una sequenza di righe nel file sorgente, ciascuna delle quali esprime un'istruzione del linguaggio completa di operandi. Un'istruzione sarà dunque costituita da una sola riga, divisa in un certo numero di campi; il primo campo è sempre la parola chiave dell'istruzione, mentre gli altri campi sono gli eventuali operandi richiesti dalla stessa; un eventuale ultimo campo, preceduto dal carattere ' (apice), viene considerato commento, ossia un testo scritto come promemoria dell'istruzione:
I vari campi di una riga istruzione devono essere separati di almeno uno spazio (BLANK) oppure da un tabulatore (TAB). Il file sorgente può contenere, in qualunque punto, delle righe vuote (CR), oppure delle righe di solo testo, allo scopo di COMMENTO, facendole precedere dal carattere apice. I commenti, preceduti dal carattere apice, possono essere alla destra di un'istruzione, oppure occupare da soli un'intera riga del file di programma. Questi commenti vengono completamente ignorati dal compilatore e quindi rimangono solo dei promemoria del file sorgente editato.
Esiste un altro tipo di commento utilizzabile all'interno del file di programma; a differenza del precedente questo tipo di commento viene elaborato dal compilatore e fatto diventare parte integrante del codice caricato sulla scheda MASTER. Questi commenti non possono essere presenti alla destra di un'istruzione, ma devono costituire da soli una riga del file programma, come se fossero delle istruzioni eseguibili; inoltre per far sì che tali commenti siano distinguibili dai precedenti, occorre farli precedere dal carattere " (doppio apice). I commenti preceduti dal carattere doppio apice, vengono elaborati dal compilatore mediante un algoritmo di codifica segreta e quindi collocati in un'area della memoria di programma del MASTER. La memoria totale disponibile per tali commenti è di 8176 bytes, per cui occorre fare attenzione nell'uso di tali commenti; in ogni caso il compilatore avviserà il Programmatore quando lo spazio di memoria commenti verrà esaurito.
Tutti i commenti del tipo doppio apice vengono archiviati nella memoria programma, finchè vi è spazio sufficiente; il loro recupero può avvenire semplicemente caricando il programma dalla scheda MASTER al Computer e decodificando tali informazioni. Il risultato è la creazione di un file .TXT in formato ASCII e quindi stampabile; si consideri che questo file conterrà tutte le righe commento del tipo doppio apice consecutivamente e nello stesso ordine presente sul listato sorgente. L'operazione di recupero sarà possibile solo conoscendo la password dichiarata nel programma sorgente e quindi le informazioni rimarranno riservate al solo Programmatore.
Consideriamo ora un'ulteriore possibilità offerta dal compilatore, ossia quella di associare, ad ogni operando, una stringa mnemonica di lunghezza massima 32 caratteri. Tale associazione la si effettua editando nel file sorgente una strinaga del tipo:
Con LABEL si intende un'etichetta (stringa max. 32 caratteri alfanumerici) che in genere ricorda il significato di quel operando; ponendo tale associazione in una riga del programma, tutte le istruzioni nelle righe successive, potranno avere come operandi indifferentemente la loro dicitura originaria, oppure la label mnemonica. In genere è conveniente porre tali associazioni in testa al programma, in modo da farle valere per tutte le istruzioni successive. Si tenga conto che molti programmi EDITOR di file permettono la sostituzione automatica di una certa stringa con un'altra; sfruttando tale funzione, è possibile sostituire, nel campo operando di un'istruzione, la LABEL con l'identificatore origrnario o viceversa; il compilatore, in ogni caso, riuscirà ad elaborare l'istruzione in modo del tutto equivalente.
Con la release 3.0 viene introdotta anche un'ulteriore tipo di LABEL da utilizzare con le istruzioni di salto condizionato e di richiamo di subroutines; questo tipo di LABEL individua il punto esatto del listato al quale saltare con le istruzioni GOTO e GOSUB; essa è costituita da una stringa (max 32 caratteri alfanumerici) seguita, senza spazi intermedi, dal carattere : (due punti) e deve occupare da sola un'intera riga del file sorgente. Ad esempio:
GOTO PUNTO_DOVE_SALTARE
.......................................
......................................
PUNTO_DOVE_SALTARE:
A conclusione ricordiamo che l'ultima istruzione della lista deve essere l'istruzione END di fine programma, che consente al sistema operativo della logica di sapere che è terminata la scansione del programma utente e quindi permettere l'esecuzione delle altre fasi descritte nell'introduzione. Nel caso siano presenti subroutines, possono comparire ulteriori istruzioni END poichè ciascuna parte di programma di esecuzione di una subroutine deve essere terminata con una propria istruzione END. L'elenco dettagliato di tutte le istruzioni del linguaggio ICL51 e della loro sintassi è ampliamente spiegato nel Manuale di Riferimento da richiedere direttamente alla PROCOEL Srl.
Cliccando direttamente sopra alla scritta ICL51_40 si puņ prelevare la versione standard del Software Detail® aggiornato.
Utility Software