Ifach Software

 

Pagina Principale

 

GRAFCET

La programmazione dei PLC e' da sempre stata fatta almeno in linguaggio KOP (a contatti) per dare la possibilità a quelle centinaia di migliaia di elettricisti sparsi per il mondo di continuare ad operare con la logica a contatti tipica dei sistemi a relè che i PLC vanno a sostituire.
Un metodo applicabile al linguaggio KOP come a qualsiasi altro tipo di rappresentazione del programma nel PLC come la programmazione IL (AWL) o FUP è la strutturazione dei programmi secondo piu' subroutine elementari  con passi di Grafcet.

Il Grafcet permette di strutturare più processi in una forma descrittiva che e' la via di mezzo tra il diagramma di flusso e la scrittura vera e proprio del programma.
Il Grafcet puo' venire implementato o con programmi specifici implementati nel PLC oppure con QUALSIASI TIPO DI PLC utilizzando le convezioni qui riportate :

1) Su un foglio di carta si scrive il ciclo di Grafcet (scarica template in formato wmf)
2) Ogni Subroutine di Grafcet utilizza una o piu' Word consecutive a lui riservate.
3) Il bit 0 della prima Word corrisponde al Flag ossia deve essere a 1 quando stiamo eseguendo una qualsiasi tappa del
Grafcet  e a 0 Quando siamo fouri dal Grafcet.
4) Quando il Flag è a 0 non possiamo iniziare una seconda volta lo stesso ciclo di Grafcet
5) Ogni tappa successiva e' uno dei bit da 1 in avanti delle word che abbiamo selezionato.
6) Nel Ciclo non si possono attivare piu' di una tappa dello stesso Grafcet per Volta
7) Nel ciclo si puo' saltare avanti indietro tra le varie tappe come si vuole

Esempio Grafcet :

Abbiamo un Pistone comandato da due elettrovalvole : una lo fa salire , l'altra lo fa scendere.
Premendo il Pulsante Start Ciclo PB1.0 il Pistone Sale , Una Volta alto fa partire un Timer allo scadere del quale il Pistone Viene riportato basso.

 
Topografico
Esempio 1/2
Esempio 2/2

Come si scrive quanto detto in Grafcet a contatti ?

CICLO GRAFCET

 HR0.0  HR0.1   B1.1   B1.0   PB1.0     HR0.0 
--:/:----:/:----:/:----: :----: :----+---(S)
                                     :  HR0.1
                                     +---(S)

 HR0.1   B1.1   B1.0      HR0.2
--: :----: :----:/:----+---(S)
                       :  HR0.1
                       +---(R)

 HR0.2  TIM1        HR0.3
--: :----: :-----+---(S)
                 :  HR0.2
                 +---(R)

 HR0.3  B1.0   B1.1       HR0.0
--: :----: :----:/:----+---(R)
                       :  HR0.3
                       +---(R)

USCITE

 HR0.1  YV1
--: :---( )       

 HR0.2  +------+
--: :---: TIM1 :
        : 10sec:
        +------+

 HR0.3  YV2
--: :---( )
    
                                         

Come potete Vedere osservando il solo foglio del grafcet chiunque può capire immediatamente
come funziona il ciclo (come con un diagramma di flusso) e chi deve controllare un malfunzionamento (per esempio perche' il pistone non scende) puo' semplicemente
1) Osservare il passo in cui siamo monitorando in questo caso la Word dell'HR0
   Es : 0000000000001001
                    ^  ^
                    :  +-- Flag
                    +----- Siamo nel Passo 3

2) Andiamo a vedere sul foglio di Grafcet che condizioni ci permettono di avanzare
   (in questo caso B1.0 Pistone Basso e No B1.1 Pistone Alto) , a questo punto andiamo
   a vedere perche' i micro non ci danno segnale ...

Come potete vedere e' semplicissimo ....

Un altro vantaggio che ci danno i passi di Grafcet e' la possibilita' di 'ammazzare' un
ciclo facilmente :
Basta mettere uno 0 nella Word del Grafcet (es : se ci serve un reset)

Un altro vantaggio è che se strutturiamo un programma in questo modo possiamo anche 
facilmente
implementare una diagnostica , poichè inseriamo un timer in ogni passo con tempi
opportuni possiamo alzare un bit di allarme collegato al timer per dirci che ci mettiamo troppo
a fare una certa operazione.

Svantaggi del Grafcet :

Il Grafcet è più oneroso come richiesta di risorse.
Il Grafcet è preferibile quando si devono gestire cicli sequenziali.