Editor testuale

Questo capitolo descrive le caratteristiche ed i comandi specifici dell'editor testuale ISaGRAF, in particolare per l'inserimento del codice sorgente di programmi ST ed IL.

Comandi di editing

Opzioni

Commandi del menù "Strumenti"

Richiamare gli altri strumenti ISaGRAF

Parametri del programma

Altri comandi del menù "File"

Aggiornamento del diario del programma

Selezionare una variabile dal dizionario

Debug di programmi ST e IL

L'editor testuale ISaGRAF viene utilizzato anche per immettere la descrizione del progetto, per editare il file diario, le note tecniche (documentazione on line) per gli elementi della libreria, ed ogni volta che un documento testo deve essere immesso dall'utente.

Definizione delle risorse


Comandi di editing

I comandi del menu "Modifica" permettono di lavorare sul testo in modifica. La maggior parte di questi comandi, agisce sui caratteri evidenziati o che si trovano alla posizione corrente del cursore.

 	Taglia e incolla

Trova e sostituisci

Raggiungi riga

Inserire un simbolo dal dizionario

Inserire un file


 	Taglia e incolla

Il tasto CANC permette di cancellare il testo evidenziato. È possibile ripristinare gli elementi cancellati in seguito all'uso del comando CANC, usando la voce "Modifica / Annulla". Le voci "Taglia", "Copia", "Incolla" del menu "Modifica" permettono di spostare o copiare blocchi di testo all'interno del programma o di inserire parti di testo copiate negli appunti da altre applicazioni.


Trova e sostituisci

Le voci di menu "Modifica / Trova" e "Modifica / Sostituisci" servono a trovare e sostituire blocchi di testo all'interno del programma. È possibile effettuare la ricerca con qualsiasi stringa, sia verso l'alto che verso il basso, a partire dalla posizione corrente del cursore. Non esiste il pericolo della ripetizione della ricerca al raggiungimento dei limiti del programma.


Raggiungi riga

La voce "Modifica / Vai alla linea" serve a muovere il cursore ad un numero di riga specificato. Si rivela molto utile per accedere ad una riga di un programma ST o IL, al cui numero il compilatore ISaGRAF abbia segnalato un errore.


Inserire un simbolo dal dizionario

Si usa la voce "Modifica / Inserisci variabile" per inserire, alla posizione del cursore, il simbolo di una variabile o di un oggetto dichiarato nel dizionario del progetto. Il simbolo voluto si seleziona tramite la casella di selezione variabili, descritta nel capitolo "Ulteriori informazioni sugli editor di programmi" in questo stesso documento.


Inserire un file

La voce "Modifica / Inserisci file" permette di inserire l'intero contenuto di un file alla posizione corrente del cursore. Questo comando è in grado di gestire solamente file tipo testo esclusivamente in formato ASCII.


Opzioni

Le voci del menu "Opzioni" servono a rendere visibili o a nascondere le barre strumenti degli editor ed a selezionare il font di caratteri. Il font di caratteri scelto verrà usato per qualsiasi operazione sui testi all'interno dell'ambiente di lavoro ISaGRAF.

Durante l'inserimento del codice sorgente di un programma ST o IL, la voce "Opzioni / Visualizza parole chiave" permette di rendere visibile o nascondere un riquadro strumenti che raggruppa le parole chiave più comuni del linguaggio ST o IL. Fare click su un pulsante del riquadro strumenti per inserire la corrispondente parola chiave o operatore nella posizione corrente del cursore.


Richiamare gli altri strumenti ISaGRAF

Verificare (compilare) un programma

 	Effettuare la simulazione o il debug dell'applicazione

Modificare il dizionario delle variabili


Verificare (compilare) un programma

La voce "File / Verifica" della finestra dell'editor avvia il Generatore di codice per verificare la sintassi di programmazione del programma in modifica. Nel caso di linguaggio SFC, vengono controllati sia il livello 1 che il livello 2. Al completamento della verifica sintattica, per continuare a lavorare sul programma, è necessario chiudere la finestra del generatore di codice. Nel caso ci sia un solo programma nell'applicazione (quello in fase di modifica) e non vengano evidenziati errori di sintassi, verrà generato il codice dell'applicazione. La voce "Opzioni / Opzioni compilatore" permette di impostare i parametri di compilazione ed ottimizzazione. Consultare il capitolo "Usare il generatore di codice" in questo stesso documento, per ulteriori informazioni riguardo la compilazione e la generazione di codice.


 	Effettuare la simulazione o il debug dell'applicazione

Le voci "File / Simulazione" e "File / Debug" avviano il debugger grafico ISaGRAF, sia in modo simulato che realmente connesso, e provvedono a riaprire il programma SFC su cui si sta lavorando in modo debug. Non è possibile inserire modifiche in un programma aperto in modalità debug.


Modificare il dizionario delle variabili

La voce "File / Dizionario" serve a modificare il dizionario delle variabili per l'applicazione ed il programma correnti. Contiene anche i punti d'ingresso per la modifica dei Nomi definiti utente. Dichiarazioni locali o nomi definiti sono relative al programma in fase di modifica.


Parametri del programma

Se il programma modificato è una funzione, un blocco funzione o un sottoprogramma, la voce "File / Parametri" permette di definire i parametri di chiamata e ritorno. Questo comando non ha effetto se il programma in oggetto è di tipo SFC o di primo livello della sezione Iniziale o Finale.

Sotto programmi, funzioni o blocchi funzione possono avere al massimo 32 parametri (input o output). Una funzione o un sottoprogramma ha sempre uno (ed un solo) parametro di ritorno, che deve avere lo stesso nome della funzione, per renderlo conforme al linguaggio ST.

La lista nella parte superiore destra della finestra mostra i parametri nell'ordine del modello di chiamata, prima i parametri di chiamata e per ultimi i parametri di ritorno. La parte inferiore della finestra mostra una descrizione dettagliata del parametro evidenziato nella lista. Qualsiasi tipo di dato ISaGRAF può essere usato come parametro. I parametri di ritorno devono essere collocati nella lista dopo quelli di chiamata. Nell'attribuire un nome ai parametri bisogna rispettare le seguenti regole:

-	La lunghezza del nome non può eccedere i 16 caratteri

-	Il primo carattere deve essere una lettera

-	I caratteri successivi devono essere lettere, cifre o il carattere "_".

-	Non viene fatta distinzione tra maiuscole e minuscole

Il comando "Inserisci" serve ad inserire un nuovo parametro prima del parametro evidenziato. Il comando "Elimina" si usa per cancellare il parametro evidenziato. Il comando "Disponi" riordina automaticamente i parametri, in modo che i parametri di ritorno vengano collocati in fondo alla lista.


Altri comandi del menu "File"

I seguenti comandi sono disponibili nel menu "File" di tutti gli editor di programmi:

Aprire un programma diverso

Stampa del programma


Aprire un programma diverso

Il comando "File / Apri" permette di chiudere il programma correntemente usato per iniziare la modifica con lo stesso linguaggio di un nuovo programma dello stesso progetto. Questa funzione non può esser usata per aprire un programma scritto con linguaggio diverso. Il nuovo programma selezionato sostituisce il corrente nella finestra di modifica.


Stampa del programma

Il comando "File / Stampa" invia il programma in uso alla stampante. Questo comando produce un listato del programma. Vengono fornite informazioni più dettagliate quando viene utilizzato il generatore di documentazione del progetto.

Per i programmi grafici (SFC, FBD, Quick LD) è possibile usare il comando "Modifica / Copia diagramma (metafile)" per copiare negli appunti il tracciato del diagramma in formato metafile, in modo da poterlo inserire in altre applicazioni quali word processor. Per quanto riguarda i programmi SFC, nel metafile copiato appaiono solo le informazioni di primo livello (diagramma, numerazione commenti di primo livello).


Aggiornamento del diario del programma

Si può accedere manualmente al file diario associato al programma in modifica usando il comando "File / Diario". Il file diario viene aggiornato automaticamente ad ogni compilazione con l'aggiunta dei messaggi di verifica della sintassi. Gli output della compilazione vengono completati dalla data ed ora di compilazione.

Se è indicato il modo "Aggiorna diario" nel menu "Opzioni" degli editor di programmi, la finestra del "Diario" viene aperta ogni volta che il programma viene salvato su disco.

Premendo il tasto OK il testo nota inserito verrà salvato alla fine del file diario con l'indicazione della data ed ora correnti. Ciò è particolarmente utile per la manutenzione dell'intero programma in quanto fornisce informazioni importanti circa il ciclo di vita del programma stesso.


Selezionare una variabile dal dizionario

 Nell'utilizzo di un programma testuale (ST o IL) la funzione "Modifica / Inserisci variabile" permette di selezionare una variabile dichiarata per inserirla alla posizione corrente del cursore. Per lavorare con programmi LD o FBD è richiesta la selezione delle variabili per descrivere bobine, contatti, parametri di blocchi I/O, variabili FBD. In entrambi i casi, la vinestra "Selezione variabile" viene aperta per selezionare una delle variabili dichiarate.

La casella di selezione "Validità" è utilizzata per scegliere tra variabili globali e locali. La casella di selezione di destra consente di scegliere il tipo di dato. Piccole icone poste accanto al tipo di dato nella casella di selezione sono scorciatoie per selezionare più rapidamente i tipi di dato usati più frequentemente:

Booleano

Intero / Reale

Timer

Messaggio

Per selezionare una variabile basta fare click sul suo nome nella lista. Nome e relativo commento vengono visualizzati in cima alla lista. Premere poi "OK" per confermare la selezione. E' inoltre possibile inserire direttamente una variabile nella casella di modifica senza utilizzare la lista.


Definizione delle risorse

La voce "Risorse" del menù "Opzioni" permette di definire le risorse. Per risorsa si intende qualsiasi dato prodotto dall'utente (configurazioni di rete, impostazioni hardware…) in qualsiasi formato (file, elenco di valori) che debba essere unito al codice generato per poter essere trasferito al PLC target. Questi dati non vengono elaborati direttamente dal kernel ISaGRAF e sono comunemente rivolti ad altro software installato sul PLC target. Consultare il manuale hardware per ulteriori informazioni sulle risorse disponibili

Il file di definizione delle risorse

Riferimenti al linguaggio

Esempio

Compilazione delle risorse

Implementazione


Il file di definizione delle risorse

Le risorse vengono definite in un "File di definizione delle risorse" memorizzato con gli altri file del progetto ISaGRAF. SI tratta di un file testo ASCII, che viene elaborato dal Compilatore di risorse ISaGRAF. Il compilatore viene avviato automaticamente nel momento in cui viene prodotto il codice dell'applicazione. In questa sezione viene esaminata la sintassi di questo file. Il file di definizione delle risorse fa uso delle regole lessicali del linguaggio ST. I commenti iniziano con i caratteri "(*" e terminano con "*)" e possono essere inseriti dovunque nel testo. Le stringhe sono delimitate da singoli apostrofi. Consultare la seconda parte di questo manuale per ulteriori spiegazioni sul formato lessicale in uso per l'inserimento di valori numerici.


Riferimenti al linguaggio

Quello che segue è un elenco di parole chiave ed istruzioni usate in un file di definizione delle risorse.

ULONGDATA

VARLIST

BINARYFILE

TEXTFILE

TARGET

ANYTARGET

FROM

TO


ULONGDATA

Significato:	Indica una risorsa costituita da un elenco di valori interi. I valori vengono memorizzati all'interno del codice del target  come interi a 32 bit senza segno. I valori vengono memorizzati nell'ordine specificato dal file di definizione delle risorse. I valori devono essere separati da virgole. Il nome della risorsa non può eccedere i 15 caratteri.

Sintassi:	ULONGDATA '<nome_risorsa>'

BEGIN

...selezione_target...

...elenco dei valori...

END

Esempio:	ULongData 'MYDATA'

Begin

...

0, -1, 100_000,	(* decimale*)

16#A0B1, 2#1011_0101	(* esadecimale, binario *)

End


VARLIST

Significato:	Indica una risorsa costituita da un elenco di indirizzi di variabili. Le variabili nel file di definizione delle risorse vengono identificate dal nome. Gli indirizzi di variabili vengono memorizzati nel codice del target come interi a 16 bit senza segno. Gli indirizzi vengono memorizzati nell'ordine specificato dal file di definizione delle risorse. I valori devono essere separati da virgole. Il nome della risorsa non può eccedere i 15 caratteri.

Sintassi:	VARLIST '<nome_risorsa>'

BEGIN

...selezione_target...

...elenco di nomi di variabili...

END

Esempio:	VarList 'LIST'

Begin

...

Var100, MyParameter, Command, Alarm

End


BINARYFILE

Significato:	Indica una risorsa costituita da un File Binario. I dati sorgente sono memorizzati in un file MS-DOS. La definizione delle risorse del target viene completata dal percorso del target. I caratteri end of line non vengono convertiti dal Compilatore di Risorse ISaGRAF. Il nome della risorsa non deve eccedere i 15 caratteri.

Sintassi:	BINARYFILE '<nome_risorsa>'

BEGIN

...selezione target...

FROM '<percorso_sorgente>'

TO '<percorso_destinazione>'

END

Esempio:	BinaryFile 'MYFILE'

Begin

...

From 'c:\user\config.bin'

To '/dd/user/appl/config.dat'

End


TEXTFILE

Significato:	Indica una risorsa costituita da un File Testo. I dati sorgente sono memorizzati in un file ASCII. La definizione delle risorse del target viene completata dal percorso del target. I caratteri end of line vengono convertiti dal Compilatore di Risorse ISaGRAF secondo le convenzioni del sistema host. Il nome della risorsa non deve eccedere i 15 caratteri.

Sintassi:	TEXTFILE '<nome_risorsa>'

BEGIN

...selezione target...

FROM '<percorso_sorgente>'

TO '<percorso_destinazione>'

END

Esempio:	TextFile 'MYFILE'

Begin

...

From 'c:\user\config.bin'

To '/dd/user/appl/config.dat'

End


TARGET

Significato:	Indica il nome del codice target in cui deve essere inclusa la risorsa. Consultare la precedente sezione (opzioni del compilatore) per ulteriori informazioni sui target possibili. L'istruzione "Target" può essere presente più volte all'interno dello stesso blocco di risorsa, per permettere più target. Non è possibile usare questa direttiva se è stato specificata la direttiva "AnyTarget".

Sintassi:	TARGET '<target_name>'

Esempio:	BinaryFile 'MYFILE'

Begin

Target 'ISA86M'

Target 'ISA68M'

...

End


ANYTARGET

Significato:	Indica che la risorsa deve essere aggiunta al codice di tutti i target prodotti dal Generatore di Codice. Il Generatore di Codice ISaGRAF può produrre molteplici codici target con un unico comando "Compila". Non è possibile usare questa direttiva se sono state inserite una o più direttive "Target".

Sintassi:	ANYTARGET

Esempio:	ULongData 'MYDATA'

Begin

AnyTarget

...

End


FROM

Significato:	Indica il percorso sorgente (sul PC in cui è installato l'ambiente ISaGRAF) di una risorsa BinaryFile o TextFile. I caratteri usati per separare i componenti del percorso (drive, cartella, prefisso, estensione) devono essere conformi al sistema MS-DOS.

Sintassi:	FROM '<percorso sorgente>'

Esempio:	BinaryFile 'MYFILE'

Begin

...

From 'c:\user\config.dat'

To '/dd/user/appl/config.dat'

End


TO

Significato:	Indica il percorso destinazione (sul sistema target) di una risorsa BinaryFile o TextFile. I caratteri usati per separare i componenti del percorso (drive, cartella, prefisso, estensione) devono essere conformi al sistema MS-DOS.

Sintassi:	TO '<percorso destinazione>'

Esempio:	TextFile 'MYFILE'

Begin

...

From 'c:\user\config.dat'

To '/dd/user/appl/config.dat'

End


Esempio

Quello che segue è un esempio completo di un file di definizione delle risorse:

(* file di definizione delle risorse *)

ULongData 'DATA1'	(* elenco di valori *)

Begin

   Target 'ISA86M'	(* solo per questo target *)

   1, 0, 16#1A2B3C4D, +1, -1	(* valori numerici *)

End

VarList 'VLIST1'	(* elenco di variabili *)

Begin

   Target 'ISA86M'	(*solo per questo target *)

   Valve1, StateX, Command, Alrm1	(* nomi di variabili *)

End

BinaryFile 'FILE1'	(* risorsa file binario *)

Begin

   AnyTarget	(* rivolto a tutti i target *)

   From 'c:\user\updatef.bin'	(* file sorgente sul PC *)

   To 'updatef.cfg'	(* file target sul PLC *)

End

TextFile 'FILE2'	(* risorsa file di testo *)

Begin

   Target 'ISA68M'

   From 'c:\nw\nwbd.txt'	(* file sorgente sul PC *)

   To '/nw/dat/nwbd'	(* file target sul PLC *)

End


Compilazione delle risorse

Se sono state inserite delle risorse nel file di definizione delle risorse, al termine della generazione del codice ISaGRAF, appare una finestra di dialogo. Premendo il pulsante "Start compile" si avvia il compilatore di risorse. I messaggi di output e gli errori verranno visualizzati nel controllo principale. Premendo "Exit" si evita la compilazione delle risorse. In questo caso, le risorse non verranno aggiunte al codice ISaGRAF.


Implementazione

Il numero di risorse, la dimensione delle righe dati ed i file non sono limitati da ISaGRAF. Le risorse vengono aggiunte alla fine del codice generato con una cartella di risorse. Quello che segue è il formato (in notazione C) della cartella delle risorse.

__RESOURCE:

{

  long nbres;	/* numero di risorse definite */

  {

    char name[16];	/* nome risorsa */

    long type;	/* tipo di dati delle risorsa */

    long size;	/* dimensione del blocco dati */

    void *data;

    char *path_offset;	/* puntatore ad una stringa */

  } /*nb di records */

}

Quelli che seguono sono i possibili valori del campo "type":

1 = file binario

2 = file testo

3 = dati ulong (il campo path_offset in questo caso non viene usato)

4 = elenco di variabili (il campo path_offset in questo caso non viene usato)

Per i file di testo, i caratteri di fine riga vengono tradotti dal compilatore di risorse, secondo le convenzioni del sistema target. Tutti i puntatori hanno offset a 32 bit a partire dall'indirizzo della corrispondente struttura. Tutti i nomi e percorsi delle risorse sono stringhe terminate da NULL. Percorsi e dati seguono la cartella delle risorse.


Comandi del menù "Strumenti"

I seguenti comandi sono disponibili nel menù Strumenti. Sono utilizzati per mostrare informazioni in una finestra di testo nella parte inferiore della finestra principale LD:

Visualizza risultati compilazione	Mostra nella finestra di testo i messaggi di errore dell'ultima compilazione (solo per programmi ST/IL)

Trova nel testo (diagramma)	Trova tutte le occorrenze di un dato testo nell'intero testo (diagramma) del programma aperto. Produce una lista delle occorrenze nell'apposita finestra di testo aperta in basso.

Nascondi risultati	Chiude la finestra di testo.

Quando i messaggi di errore o le occorrenze sono mostrate nella finestra di testo, facendo doppio click su una linea viene evidenziata sul diagramma la corrispondente localizzazione.


Debug di programmi ST e IL

Durante la simulazione o il debug on line di programmi ST e IL, il testo del programma non può essere modificato.

ST	Per i programmi ST, nella parte inferiore della finestra dell'editor, viene inserita una lista delle variabili spiate. Si può ridimensionare tale lista trascinando con il mouse la linea di separazione.

IL	Per i programmi IL, le istruzioni sono riordinate e visualizzate in una lista. Il valore corrente di una variabile viene mostrato a fianco dell'istruzione in cui compare. Si può fare doppio click su un istruzione per cambiare il valore della variabile corrispondente.

Salvataggio delle liste su disco

 	Inserimento di variabili nella lista

Cambiare la variabile evidenziata

Visualizzazione dei dettagli

Per ogni variabile della lista, ISaGRAF mostra il suo nome, il suo valore corrente ed il testo di commento. Le colonne possono essere ridimensionate trascinando le linee di separazione con il mouse nella barra titolo della lista.


Salvataggio delle liste su disco

Il comando "File / Salva lista" dell'editor ST salva la lista delle variabili sul disco fisso, con lo stesso nome del programma editato. Tale lista verrà automaticamente ricaricata ogni volta che un programma ST o IL viene aperto in modalità di debug. La lista può essere liberamente editata e modificata usando il comando "Strumenti / Lista variabili spiate" dalla finestra del debugger.


 	Inserimento di variabili nella lista

 Il comando "Modifica / Inserisci" permette di inserire variabili nella lista. Il nome della variabile viene selezionato dalla lista degli oggetti definiti nel dizionario di progetto. Questo evita di dover inserire manualmente gli identificatori di variabili. La nuova variabile viene inserita prima della variabile correntemente evidenziata nella lista. La lista non può contenere più di 32 variabili. La stessa variabile non può comparire più di una volta nella stessa lista.

 Quando il nome di una variabile è evidenziato in un testo ST, premendo questo pulsante nella barra strumenti o eseguendo il comando "Modifica / Spia selezione" si aggiunge la variabile alla lista delle variabili spiate.


Cambiare la variabile evidenziata

Quando una variabile è selezionata nella lista delle variabili spiate dell'editor ST in modalità debug, il comando "Modifica / Cambia variabile" sostituisce la variabile evidenziata nella lista con un'altra variabile. Il comando "Taglia variabile" rimuove dalla lista la variabile evidenziata.


Visualizzazione dei dettagli

In ogni momento è possibile visualizzare o nascondere, in una finestra affiancata, i dettagli della variabile selezionata nella lista, premere il pulsante "Zoom" della barra strumenti oppure usare il comando "Opzioni / Visualizza dettagli".

Quando è selezionato il modo "Visualizza dettagli", solo il valore di una variabile viene visualizzato. Il valore viene visualizzato sia in formato numerico/simbolico, nella parte superiore della finestra, sia in formato binario con ogni byte rappresentato da due cifre esadecimali.

Il modo "Visualizza dettagli" è molto utile per spiare e interpretare messaggi stringa che contengono caratteri non stampabili.