Editor SFC

Il linguaggio SFC è adoperato per descrivere le operazioni di un processo sequenziale. Una semplice rappresentazione grafica identifica i passi e le condizioni che  indicano la sequenza delle operazioni. L'editor SFC grafico ISaGRAF permette di inserire il codice in linguaggio SFC, che costituisce la parte centrale dello standard IEC 1131-3. Gli altri linguaggi di solito permettono di descrivere le azioni per i passi e le condizioni logiche per le transizioni. L'editor SFC grafico ISaGRAF permette di inserire programmi SFC completi. La possibilità di operare contemporaneamente in modo grafico e testuale, permette di lavorare sul diagramma SFC con le corrispondenti azioni e condizioni.

Argomenti principali del linguaggio SFC

Diagramma SFC

Lavorare su un diagramma SFC esistente

Inserire la programmazione di livello 2

Inserire il nome di una variabile

Inserire un blocco Azione impulsiva in un passo

Inserire un blocco Azione non-memorizzata in un passo

I nuovi qualificatori di azione P0 e P1

Azioni booleane

Azioni SFC

Transizioni scritte in ST

Transizioni scritte in Quick Ladder

Comandi del menù "Strumenti"

Utilizzo della Collezione SFC

Richiamare gli altri strumenti ISaGRAF

Altri comandi del menù "File"

Aggiornamento del diario del programma

Selezionare una variabile dal dizionario


Argomenti principali del linguaggio SFC

Il linguaggio SFC viene usato per rappresentare processi di tipo sequenziale. Il ciclo del processo viene suddiviso in un numero di passi ben definiti (contenenti a loro volta delle situazioni) in successione, separati da transizioni. Ulteriori dettagli sul linguaggio SFC sono reperibili nel Manuale di riferimento Linguaggi ISaGRAF.

Divergenze e convergenze

Salto ad un passo

Macro passi

I componenti SFC sono uniti tra loro mediante linee orientate. L'orientamento predefinito di una linea è dall'alto verso il basso. Questi sono i componenti grafici di base per creare un diagramma SFC:

Passo iniziale

Passo

Transizione

Salto ad un passo

Macro passo

Macro passo iniziale

Macro passo finale

La programmazioni SFC si compone normalmente di due differenti livelli. Il Livello 1  mostra il diagramma grafico, la numerazione dei passi e delle transizioni, i commenti ai passi ed alle transizioni. Il Livello 2 si riferisce alla programmazione ST o IL delle azioni all'interno dei passi o alle condizioni relative alle transizioni. Azioni o condizioni possono far riferimento a sottoprogrammi scritti in altri linguaggi (FBD, LD, ST o IL). Subito sotto, viene riportato un esempio di programmazione di livello 1 e di livello 2:

La programmazione di livello2 per un passo viene inserita con un editor di testo. Possono essere inclusi blocchi di azioni programmate in ST o IL.

Il livello 2 di programmazione per una transizione può essere inserito sia con il linguaggio testuale IL o ST, sia con l'editor Quick LD.


Divergenze e convergenze

Divergenzee convergenze permettono di rappresentare i collegamenti multipli tra passi e transizioni. Divergenze o convergenze semplici rappresentano differenti possibilità inclusive fra varie parti del processo.

Una doppia divergenza rappresenta dei processi in parallelo.


Salto ad un passo

L'editor SFC permette di disegnare collegamenti solamente dall'alto verso il basso. Un salto verso un passo serve a rappresentare un collegamento con una parte più in alto nel diagramma. I seguenti diagrammi sono equivalenti:

Il salto verso una transizione è proibito e deve essere rappresentato esplicitamente come una doppia (AND) convergenza.


Macro passi

Un macro passo è la rappresentazione unica di un gruppo isolabile di passi e transizioni. L'inizio di un macro passo è segnato da un passo iniziale e termina con un passo finale.

La rappresentazione in dettaglio di un macro passo deve essere inserita nel medesimo programma SFC. Il simbolo del macro passo deve avere lo stesso numero di riferimento del passo iniziale della macro.


Diagramma SFC

Per disegnare un diagramma SFC è sufficiente inserire i componenti significativi del diagramma. L'editor SFC provvede automaticamente a tracciare le singole linee (orizzontali o verticali) di unione tra due elementi. Per inserire un simbolo SFC nel diagramma, si deve selezionare la cella nella posizione desiderata del diagramma, quindi fare click con il mouse su uno dei componenti della barra strumenti.

In alternativa è possibile utilizzare la tastiera, premendo:

Inserire un passo iniziale

Inserire un singolo passo

Inserire una transizione

Inserire un salto ad un passo

 	Creare una divergenza o convergenza OR / Aggiungere diramazioni

 	Creare una divergenza o convergenza AND / Aggiungere diramazioni

Inserire un macro passo

 	Inserire il passo iniziale o finale del  Corpo di un macro passo

(Il simbolo freccia che precede un tasto funzione " [image] " indica una combinazione con il tasto SHIFT)

La griglia di modifica mostra una matrice di celle. L'editor SFC permette di visualizzare o nascondere la griglia nella fase di inserimento del diagramma. La griglia risulta molto utile nella disposizione iniziale del diagramma o per selezionare porzioni del diagramma. Nella finestra dell'editor SFC, selezionando "Opzioni / Disposizione / Visualizza griglia" si possono visualizzare o nascondere i punti della griglia.

L'editor SFC mostra sempre la posizione corrente nella matrice. La cella attiva viene evidenziata in colore grigio. Il piccolo quadrato nella sua parte destra in basso può essere utilizzato per ridimensionare a piacimento le celle dell'intero diagramma. In questo modo è possibile cambiare il rapporto X/Y tra le dimensioni delle celle.


 	Creare una divergenza o una convergenza

Divergenze e convergenze vengono sempre disegnate da sinistra verso destra. Per disegnare una convergenza o una divergenza, bisogna posizionarne l'angolo sinistro sul diagramma. Il tipo di disegno (semplice o doppio) si ottiene selezionando uno di questi pulsanti sulla barra degli strumenti.


   	Aggiungere diramazioni alle divergenze

Per posizionare l'inizio e la fine di una diramazione ausiliaria sulla linea di una divergenza o di una convergenza, si usano questi pulsanti della barra degli strumenti. L'inserimento di nuove diramazioni è possibile solo con la presenza dell'angolo sinistro di una divergenza o di una convergenza. L'angolo destro ha lo stesso stile (semplice o doppio) dell'angolo principale sinistro. Gli angoli destri non possono essere inseriti senza che sia prima stato aggiunto l'angolo principale sinistro.


Inserire un macro passo

Questo pulsante serve ad inserire un macro passo nel diagramma principale. Il corpo del macro passo deve essere introdotto in un qualunque altro punto dello stesso programma SFC


 	Corpo di un macro passo

I macro passi devono essere descritti nello stesso programma SFC del diagramma principale. Un Macro passo deve iniziare con un passo iniziale e terminare con un passo finale. Il sotto-diagramma che descrive l'implementazione del macro passo non deve avere riferimenti esterni. Il passo di inizio del macro passo deve avere lo stesso numero di riferimento del simbolo di macro passo del ramo principale del diagramma.


Lavorare su un diagramma SFC esistente

Si possono utilizzare sia il mouse che la tastiera per selezionare un'area rettangolare sul diagramma. L'area selezionata viene evidenziata in colore grigio. Si possono quindi usare i seguenti comandi del menù "Modifica".

  	Comandi Taglia / Copia / Cancella / Incolla

Spostare elementi

Rinumerare passi e transizioni

Accesso diretto ad un passo o a una transizione

Trovare e sostituire testi


 	Comandi Taglia / Copia / Cancella / Incolla

Con il pulsante "freccia" evidenziato nella barra strumenti dell'editor, il menu "Modifica" mette a disposizione le seguenti voci:

Taglia	Sposta il rettangolo evidenziato dallo schermo agli appunti SFC

Copia	Copia il rettangolo evidenziato dallo schermo agli appunti SFC

Cancella	Cancella il rettangolo evidenziato

Incolla	Inserisce il contenuto degli appunti SFC nella posizione corrente

La voce "Modifica / Incolla" copia il contenuto del blocco appunti SFC sulla schermo. I comandi copia/incolla funzionano sia sul diagramma SFC, sia con la programmazione di livello 2 di passi e transizioni. È anche possibile copiare un diagramma da un programma ed incollarlo in un diverso programma SFC. Gli elementi vengono inseriti prima della posizione correntemente selezionata.


Spostare elementi

Quando degli elementi SFC sono selezionati nel diagramma SFC, si può spostarli in un altra posizione del diagramma trascinando la selezione con il mouse. Mentre si trascina la selezione, la posizione iniziale degli elementi selezionati viene tratteggiata.

L'area di destinazione per gli elementi spostati deve essere vuota. Non sono possibili inserzioni mentre si spostano simboli SFC.


Rinumerare passi e transizioni

Ogni passo o transizione viene identificato sul diagramma SFC da un numero logico. La voce "Modifica / Rinumera" mette automaticamente in sequenza i numeri di riferimento di tutti i passi e transizioni del programma SFC in lavorazione. Quando viene cambiato il numero di un passo, tutti i salti a tale passo vengono automaticamente aggiornati con il nuovo numero di riferimento (parimenti accade con i macro passi ed i passi iniziali).


Accesso diretto ad un passo o ad una transizione

La voce "Modifica / Vai a" permette di accedere ad un passo o ad una transizione esistenti. La finestra scorre automaticamente fino a rendere visibile il passo o la transizione.


Trovare e sostituire testi

La voce "Modifica / Trova / Sostituisci" permette di trovare e rimpiazzare stringhe di testo in tutto il programma (in tutti i passi e le transizioni). La finestra di dialogo Trova/Sostituisci viene utilizzata per immettere il testo da trovare ed apre direttamente la sezione del programma di livello 2 dove il testo è presente.


Inserire la programmazione di livello2

Per inserire le istruzioni di Livello 2, l'utente deve fare doppio click sul simbolo del passo o della transizione. La finestra di programmazione del Livello 2 viene mostrata alla destra della finestra principale SFC. La linea di separazione tra il diagramma SFC e il programma livello 2 può essere spostata liberamente.

Si possono aprire una o due aree di livello 2 contemporaneamente. I seguenti comandi sono disponibili dalla tastiera, dal mouse o dal menù "Modifica":

Tastiera	Mouse	Menù "Modifica"

Apre nell'ultima finestra	Invio	Doppio Click	Visualizza livello 2

Apre finestra separata	Ctrl+Invio	Ctrl + Doppio Click	Visualizza livello 2 in una finestra separata

Quando due finestre di livello 2 sono visibili, la separazione tra esse può essere liberamente spostata. Il pulsante alla destra della barra del titolo chiude la finestra di livello 2.

Il linguaggio predefinito del Livello 2 è ST (Structured Text). Per quanto riguarda, invece, le transizioni, la programmazione di livello 2 può anche essere inserita con l'editor Quick LD. Usare il pulsante "ST/LD" nella barra del titolo della finestra di livello 2 per selezionare il linguaggio attivo. Questo comando è valido solo se la finestra di programmazione di livello 2 è vuota.

Una linea di testo appare nella parte superiore della finestra di livello 2, viene usata per immettere un breve testo di descrizione. Questo testo verrà visualizzato come commento IEC nel disegno dei simboli SFC. E' molto utile ed è utilizzato da altri comandi, come ad esempio "Vai a..." ed anche nella stampa (passi e transizioni) di documenti SFC

Il comando "Opzioni / Rinfresca diagramma" può essere usato ogni volta che una finestra di livello 2 è aperta per rinfrescare il diagramma SFC con le modifiche apportate ai programmi di livello 2.

Inserire il nome di una variabile

Inserire un blocco di Azioni Impulsive in un passo

Inserire in un passo un blocco Azione Non-memorizzata

 	I nuovi qualificatori di azione P0 e P1

Azioni booleane

Azioni SFC

Transizioni scritte in ST

Transizioni scritte in Quick Ladder


Inserire il nome di una variabile

In fase di programmazione testuale, premere questo pulsante per selezionare una variabile dichiarata nel dizionario del progetto ed inserirne il nome nella posizione corrente del cursore. Programmando in Quick LD, premere questo pulsante per selezionare la variabile da collegare al contatto o al blocco di parametri I/O evidenziati.


Inserire un blocco Azione impulsiva in un passo

Durante la programmazione di livello 2, premere questo pulsante per inserire lo schema di un blocco Azione impulsiva (Pulse action) nella posizione corrente del cursore. Quello che segue è il formato di un blocco azione Impulsiva.

Action (P) :

istruzione ST;

...

End_Action;

Le istruzioni di tipo azione Impulsiva, vengono eseguite una sola volta all'attivazione del passo. Per ulteriori dettagli sulla programmazione SFC, si veda la guida di riferimento al linguaggio ISaGRAF.


Inserire un blocco Azione non-memorizzata in un passo

Durante la programmazione di livello 2, premere questo pulsante per inserire lo schema di un blocco Azione non-memorizzata (Non stored action) nella posizione corrente del cursore. Quello che segue è il formato di un blocco azione non-memorizzata.

Action (N) :

istruzione ST;

...

End_Action;

Le istruzioni di tipo azione non-memorizzata vengono eseguite ad ogni ciclo PLC quando il passo è attivo. Per ulteriori dettagli sulla programmazione SFC, si veda la guida di riferimento al linguaggio ISaGRAF.


 	I nuovi qualificatori di Azione P0 e P1

ISaGRAF supporta i nuovi qualificatori di azione P0 e P1. Durante la programmazione del livello 2 di un passo, premere questi pulsanti per inserire lo schema di un blocco azione P0 o P1 alla posizione corrente del cursore. Quello che segue è il formato di tali blocchi:

Action (P0) :	Action (P1) :

istruzione ST;	istruzione ST;

...	...

End_Action;	End_Action;

Le azioni P1 sono istruzioni che vengono eseguite solamente una volta all'attivazione del passo (come per le azioni Impulsive). Le azioni P0 sono istruzioni sono istruzioni che vengono eseguite solo una volta quando il passo cessa di essere attivo. Per ulteriori dettagli sulla programmazione SFC, si veda la guida di riferimento al linguaggio ISaGRAF.


Azioni booleane

Altre locuzioni semantiche sono disponibili per agire direttamente su una variabile booleana che controlla l'attività del passo. Tali azioni consistono nel collegare il segnale di attività di un passo ad una variabile booleana interna o di uscita

<variabile_booleana> (N);	assegna il segnale di attività del passo alla variabile

<variabile_booleana >;	stesso effetto (il parametro N è facoltativo)

/ <variabile_booleana >;	assegna la negazione del segnale di attività del passo alla variabile

Esistono altre possibilità di "accendere" o "spegnere" una variabile booleana all'attivazione del passo. Ecco la sintassi delle azioni che accendono o spengono le variabili booleane:

<variabile_booleana> (S);	imposta la variabile al valore TRUE (VERO) quando il segnale di attività del passo diventa VERO

<variabile_booleana > (R);	assegna alla variabile il valore FALSE (FALSO) quando il segnale di attività del passo diventa VERO


Azioni SFC

Altre locuzioni semantiche permettono di controllare l'esecuzione di un programma figlio SFC. Un'Azione SFC è una sequenza figlia SFC, avviata o terminata a seconda del segnale di attività del passo. Un'azione SFC può avere i qualificatori N (Non-memorizzata), S ("Set") o R ("Reset"). Ecco la sintassi delle azioni SFC di base:

<programma_figlio> (N);	avvia la sequenza figlia quando viene eseguito il passo ed elimina la sequenza figlia quando il passo cessa di essere attivo.

<programma_figlio>;	stesso effetto della sintassi precedente (il parametro N è facoltativo)

<programma_figlio> (S);	avvia la sequenza figlia quando il passo viene eseguito  nulla avviene quando il passo cessa di essere in esecuzione

<programma_figlio> (R);	termina la sequenza figlia quando il passo viene eseguito  nulla avviene quando il passo cessa di essere in esecuzione

La sequenza SFC specificata deve essere un programma SFC figlio del programma correntemente in fase di modifica, creato con il gestore di programmai ISaGRAF.


Transizioni scritte in ST

Una transizione di livello 2 è costituita da un'espressione booleana. Per programmarla in linguaggio ST, è sufficiente inserire la condizione booleana rispettando la sintassi ST. L'inserimento di un punto e virgola alla fine dell'espressione è facoltativo.


Transizioni scritte in Quick Ladder

Per programmare condizioni o transizioni di livello 2, è disponibile l'editor Quick LD. In questo caso il diagramma è costituito da un solo ramo, con una sola bobina che rappresenta la transizione. Il nome della transizione non viene ripetuto con il simbolo di bobina. Di seguito l'esempio di una condizione di transizione programmata in Quick LD.

In fase di programmazione Quick LD, usare i tasti freccia per spostare la selezione sulla griglia logica di programmazione ed inserire i simboli con i seguenti tasti scorciatoia:

F2:	inserisce un contatto dopo il simbolo evidenziato / inizia il ramo

F3:	inserisce un contatto prima del simbolo evidenziato

F4:	inserisce un contatto parallelamente al simbolo evidenziato

F6:	inserisce un blocco dopo il simbolo evidenziato

F7:	inserisce un blocco prima del simbolo evidenziato

F8:	inserisce un blocco parallelamente al simbolo evidenziato

È anche possibile fare click con il mouse sulla barra dei tasti funzione posta nella parte inferiore della finestra di livello 2, invece di premere i tasti funzione.

Premere INVIO quando è evidenziato un contatto o un blocco di parametri I/O per selezionare una variabile o inserire un valore costante. Premere INVIO quando è evidenziato un blocco funzione per indicare il tipo di blocco funzione. Si ottiene lo stesso effetto anche con un doppio click sul simbolo.

Premere la barra spazio quando è evidenziato un contatto per cambiare il tipo di contatto (diretto, inverso o con riconoscimento di impulso). Far riferimento al capitolo "Usare l'editor Quick LD" in questo stesso documento per maggiori dettagli sulle caratteristiche Quick LD.


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.


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 lancia il generatore di documentazione del progetto per produrre una stampa SFC.

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.

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.


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 SFC:

Visualizza risultati compilazione	mostra nella finestra di testo i messaggi di errore dell'ultima compilazione.

Trova nel diagramma	trova tutte le occorrenze di un dato testo in tutti i passi e le transizioni.

e produce una lista nella finesta di testo

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 nel livello 2.


Utilizzo della Collezione SFC

L'editor SFC di ISaGRAF permette di gestire una collezione SFC: tale collezione è costituita da un insieme di strutture SFC che possono essere inserite in ogni diagramma SFC. Gli elementi della collezione SFC possono contenere la programmazione di livello 2 in passi e transizioni. Per gestire la collezione SFC usare i seguenti comandi del menù "Strumenti":

Copia nella collezione SFC    	copia gli elementi selezionati nella collezione SFC

Preleva dalla collezione SFC  	incolla un elemento dalla collezione SFC nella posizione corrente

Quando si copiano degli elementi nella collezione SFC (i.e. creando un nuovo elemento della collezione SFC), si può inglobare la programmazione di livello 2 dei simboli SFC selezionati.