Vai alla Home Page About me Courseware Federica Virtual Campus 3D Gli eBook di Federica
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Alfredo Pironti » 10.Programmazione dei PLC: il Sequential Functional Chart I


Tecnologie dei Sistemi di Automazione

Programmazione dei PLC: il Sequential Functional Chart I

Sommario della lezione

Programmazione dei PLC: il Sequential Functional Chart

  • Elementi sintattici
  • Le istruzioni di base (fasi, passi ed azioni)

Elementi sintattici del Sequential Functional Chart

Gli elementi di base dell’SFC sono:

  • La fase (o tappa, o passo), con le azioni ad essa associate
  • La transizione con la condizione ad essa associata
  • L’arco orientato

Elementi sintattici del Sequential Functional Chart

  • Ogni fase è univocamente contraddistinta da una etichetta (tipicamente numerica)
  • Le fasi iniziali sono individuate da una doppia cornice
  • Ogni fase può essere
    • Attiva
    • Disattiva
  • Una variabile booleana n.X (marker di fase) è usata per indicare lo stato di una fase

Elementi sintattici del Sequential Functional Chart

Se una fase è attiva le azioni associate a tale fase vengono eseguite.


Elementi sintattici del Sequential Functional Chart

  • Le transizioni vengono indicate con una barretta orizzontale e da una sigla che le identifica, ad ogni transizione risulta essere associata una condizione booleana
  • Gli archi orientati collegano tra loro le fasi, stabilendone la sequenza, devono essere rispettate le seguenti regole sintattiche:
    • Tra due fasi collegate da un arco vi deve essere sempre una transizione
    • Tra due transizioni vi deve essere sempre almeno una fase

Elementi sintattici del Sequential Functional Chart

  • E’ possibile che più fasi convergano in una stessa transizione
  • Oppure che ad una transizione succedano più fasi

Evoluzione del Sequential Functional Chart

Un programma scritto in SFC viene eseguito cambiando di volta in volta la sua condizione, con un meccanismo legato al superamento delle transizioni.

Vediamo in che consiste tale meccanismo:

  • La condizione di un SFC è l’insieme delle sue fasi attive
  • Una transizione è superabilese:
    1. Tutte le fasi immediatamente a monte della transizione sono attive (in questo caso la transizione si dice abilitata)
    2. La condizione ad essa associata è vera

Evoluzione del Sequential Functional Chart

Nell’esempio a lato tutte le fasi a monte della transizione T1 sono attive (quindi tale transizione è abilitata). Essa sarà superabile quando la variabile booleana OK diverrà vera.


Evoluzione del Sequential Functional Chart

Quando una transizione diventa superabile essa viene superata: tutte le fasi a monte della transizione vengono disattivate e tutte le fasi a valle vengono attivate.


Evoluzione del Sequential Functional Chart


Evoluzione del Sequential Functional Chart

Le disattivazioni (delle fasi a valle) e le attivazioni (delle fasi a monte) avvengono in ordine, ossia: prima tutte le disattivazioni e poi tutte le attivazioni.

Nell’esempio il superamento contemporaneo delle transizioni T1 e T2 porta ad una nuova condizione (giustificare la nuova condizione sulla base di quanto appena detto).


Evoluzione del Sequential Functional Chart

Inoltre: se più transizioni diventano superabili nello stesso istante, esse sono tutte superate contemporaneamente.

Si assume che il tempo necessario ad eseguire le disattivazioni e le attivazioni (e quindi il passaggio ad una nuova condizione) sia nullo. In realtà, tipicamente tale tempo è pari al tempo di scansione del PLC.


Variabili dell’SFC

Le variabili dell’SFC possono essere dei seguenti tipi

  • Variabili di ingresso (associate a variabili esterne, quali quelle relative ad ingressi del PLC)
  • Variabili interne (variabili locali del programma)
  • Variabili temporali (temporizzatori associati all’attivazione di una fase)
  • Azioni (variabili di uscita associate alle uscite del PLC)

Variabili di ingresso

Le variabili di ingresso possono essere di due tipi

Semplici

In questo caso la variabile dell’SFC assume lo stesso valore binario del segnale collegato al PLC.

A fronte

In questo caso la variabile dell’SFC assume valore 1 solo in corrispondenza del fronte di salita (o del fronte di discesa) del segnale collegato all’ingresso del PLC. Le variabili a fronte restano alte per un tempo pari al tempo necessario a cambiare la condizione dell’SFC.

Semplici

Semplici

A fronte

A fronte


Variabili temporali

Le variabili temporali sono associate al tempo trascorso dall’attivazione di una fase. Esse sono denotate con il simbolo:

Xn.t>d

Dove Xn è l’etichetta corrispondente alla fase e d denota un intervallo di tempo. Ad esempio la variabile temporale Xn.t>20s diventa vera dopo che sono trascorsi 20s dall’attivazione della fase Xn (assumendo che nel frattempo tale fase resti attiva).


Azioni

Le azioni possono essere:

  • Continue (qualificatore N)
  • Limitate nel tempo (qualificatore L)
  • Ritardate nel tempo (qualificatore D)
  • Memorizzate (qualificatori S e D)
  • Impulsive (qualificatore P)

Azioni continue

L’azione viene eseguita (cioè la variabile indicata è posta ad 1) fino a quando la fase a cui è associata è attiva.

  • Se la stessa azione è associata a più fasi, l’uscita assume il valore 1 quando almeno una delle fasi è attiva
  • Se due o più fasi successive sono associate alla stessa azione, questa non cambia valore durante il superamento delle transizioni intermedie

Azioni limitate nel tempo

In questo caso l’azione viene eseguita per un tempo limitato a partire dall’ attivazione della fase.


Azioni ritardate nel tempo

In questo caso l’azione viene eseguita dopo un tempo di ritardo dall’ attivazione della fase.


Azioni memorizzate

L’azione memorizzata consente di continuare l’esecuzione di una azione anche dopo che la fase a cui essa è associata si disattiva. Essa prevede due comandi:

  • SET (qual. S): mette in esecuzione l’azione
  • RESET (qual. R): arresta l’esecuzione dell’azione

Azioni impulsive

In questo caso l’azione prevede la generazione di un impulso sulla variabile associata, nel momento in cui la fase viene attivata (estensioni dello standard potrebbero prevedere anche la possibilità di avere un impulso al momento della disattivazione).


Primi esempi di programmazione

Dopo aver introdotto gli elementi di base di un programma in SFC, vediamo come questo linguaggio possa essere usato per esprimere un algoritmo di controllo.

L’esempio a lato mostra come in SFC si possa esprimere il seguente algoritmo:

  1. Scalda il motore
  2. Attendi per 20s
  3. Parti

L’azione “scalda motore” parte quando si attiva la fase 30, quindi si attendono 20s (transizione T30 condizionata ad una variabile temporale), ed infine si attiva la fase 40 in cui viene eseguita l’azione di partenza.


Primi esempi di programmazione

In figura è invece mostrato un watchdog timer.

Nella fase 30 viene eseguita una azione “fuori carrello” che deve aver effetto sul sensore collegato alla variabile “uscito”, se questo effetto si presenta entro 2s si attiva la fase 40, altrimenti si attiverà la fase 400 (a cui presumibilmente verrà associata una azione di emergenza).


Primi esempi di programmazione

Watchdog timer su un ciclo

In questo programma sono presenti due rami paralleli, quello a destra verifica che il ciclo dato dalle fasi S0, S1, S2, S3 si completi entro un tempo limite di 30s. In caso contrario viene generato un allarme.


Prossima lezione

Programmazione dei PLC: il Sequential Functional Chart II
Il sequential functional chart

  • Strutture classiche di programmazione
  • Le macrofasi
  • Esempi di programmazione

I materiali di supporto della lezione

P. Chiacchio e F. Basile, Cap. 4.

J. Hugh, Cap. 20

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93