Vai al contenuto
PLC Forum


Grafcet - Grafcet


fefol

Messaggi consigliati


Se intendi usare il Grafcet come linguaggio di programmazione devi riferirti al PLC su cui lavori e vedere se c'è. Il Grafcet è ed esempio compreso nel PL7 Pro di Telemecanique, è un pacchetto aggiuntivo GRAPH per lo Step 7 300-400.

Saluti

R.G.

Link al commento
Condividi su altri siti

Ti do qualche link, troverai sicuramente qualcosa di interessante:

- http://www.ing.unife.it/docenti/CesareFant...ano/grafcet.pdf

- http://www.ing.unife.it/docenti/CesareFant...e/norma-sfc.pdf

- http://perso.wanadoo.fr/grc/sommaire.htm cerca nella pagina l'indice per il Grafcet, ci sono molte pagine di esempi (in francese)

...poi se trovo altri link te li mando, mi serve solo un po' di tempo :)

Link al commento
Condividi su altri siti

Il grafcet e' un metodo di implementazione dei programmi per i plc e dovrebbe venire adoperato per tutte quelle applicazioni non banali per facilitare la comprensione da parte di terzi di un software scritto da altri (una buona norma dice di fare anche un diagramma di flusso prima di partire a fare qualsiasi cosa.

Il Grafcet a volte e' implementato direttamente in certi PLC (spesso con molte limitazioni) mentre e' possibile utilizzarlo con TUTTI i tipi di PLC lavorando direttamente in Ladder o AWL come meglio si preferisce.

Sostanzialmente il grafcet e' un metodo per implementare dei processi suddividendoli in tante tappe elementari.

Ogni tappa ha delle condizioni di entrata ed esegue al suo interno delle operazioni.

Personalmente preferisco implementare manualmente il grafcet al posto dei tool forniti con certi PLC poiche' si ha la massima flessibilita'.

Solitamente per strutturare un passo di Grafcet si utilizza una o Piu' Word adiacenti dove il primo Bit (Bit 0) rappresenta il 'Flag' ossia dice se si e' entrati o no in quella routine di grafcet , mentre i bit successivi vengono utilizzati per indicare la tappa in cui siamo attualmente.

Potete cosi' capire che per fare un debug o gestire una diagnostica diventa un compito banale in quanto che basta osservare la word del grafcet per capire in che punto siamo e perche' non viene eseguito un qualcosa.

Es : Se siamo sul passo 6 e non andiamo nel passo 7 , dobbiamo controllare le condizioni che ci impediscono di entrare al passo 7

Es : Possiamo gestire dei timer per ogni tappa che se non usciamo entro un certo tempo ci danno un allarme (facciamo avanzare un motore nella tappa 1 e quando arriva sul micro di stop entriamo nella tappa 2 , se il timer interviene vuol dire che il micro di stop e' rotto oppure e' saltato il termico ed allora possiamo dare l'allarme).

Solitamente lavorando a tappe si setta il flag nella prima tappa (bit 0) ed il bit 1 della prima tappa , quando ci sono le condizioni per passare nella tappa 2 si setta il Bit 2 e si resetta il Bit 1 , fino a quando finisce e allora resettiamo il bit dell'ultima tappa + il bit 0 del Flag.

ESEMPIO : QUANDO HO IL MICRO SQ0 di Indietro e Premo PB1 il carro M1 avanza fino al micro SQ1, a questo punto scende il cilindro YV1 Fino a toccare il micro SQ2 , aspetta 10 secondi , risale fino a toccare il micro SQ3,

il carro torna indietro.

La Word del grafcet e' il canale 100

: * 100.0 (Negato del Flag)

:- SQ0 (Micro carro indietro)

:- SQ3 (Micro cilindro Alto)

:- PB1 (Pulsante di Start)

:

+---------+ +----------------------------------+

: 1 : : = M1 (Avanza Motore) :

+---------+---+----------------------------------+

: 100.1 : : S Flag (set Flag) :

+---------+ +----------------------------------+

:

: :

: :- SQ1 (Micro carro avanti)

: :

: :

+---------+ +----------------------------------+

: 2 : : = YV1 (Discesa Cilindro) :

+---------+---+----------------------------------+

: 100.2 : : :

+---------+ +----------------------------------+

:

: :

: :- SQ2 (Pistone Basso)

: :

: :

+---------+ +----------------------------------+

: 3 : : = YV1 (Discesa Cilindro) :

+---------+---+----------------------------------+

: 100.3 : : = TIM1 (Ritardo Risalita) :

+---------+ +----------------------------------+

:

: :

: :- TIM1

: :

: :

+---------+ +----------------------------------+

: 4 : : = REV M1 (Reverse M1) :

+---------+---+----------------------------------+

: 100.4 : : :

+---------+ +----------------------------------+

:

: :

: :- SQ0 (Carro in pos. di partenza

: :

: :

+---------+ +----------------------------------+

: 5 : : :

+---------+---+----------------------------------+

: --- : : R Flag (Reset del Flag) :

+---------+ +----------------------------------+

Come si scrive questo a contatti ?

Grafcet

100.0 SQ0 SQ3 PB1 100.0

-:/: -----: :-----: :-----: :----+------(S) Flag

: 100.1

+-----(S) Step #1

100.1 SQ1 100.2

-: :------: :-------------------+------(S) Step #2

: 100.1

+-----® Step #1

100.2 SQ2 100.3

-: :------: :-------------------+------(S) Step #3

: 100.2

+-----® Step #2

100.3 TIM1 100.4

-: :------: :-------------------+------(S) Step #4

: 100.4

+-----® Step #3

100.4 SQ0 100.4

-: :------: :-------------------+------® Step #4

: 100.0

+-----® Flag

Uscite

100.1 M1

-: :------( ) MOTORE AVANTI

100.2 YV1

-: :-------+--( ) Discesa Pistone

:

100.3 :

-: :-------+

100.3 +--------+

-: :------: TIM1 : Timer 1 (tempo pistone basso)

+--------+

: 10" :

+--------+

100.4 REV M1

-: :------( ) MOTORE INDIETRO

Semplice Vero ?

Se volete annullare un ciclo di grafcet basta mettere uno Zero nella word 100 !

Se volete sapere in che passo di grafcet siete , magari per scatenare altre funzioni con alte routines di grafcet basta prendere il bit della tappa interessata.

Se volete potete anche saltare indietro o in avanti nei passi utilizzando i bit di passo interessati facendo gli opportuni set/reset.

Ma la cosa interessante e' che leggendo i nomi delle varie subroutine uno capisce subito dove andare a mettere le mani , ed il grafcet che va scritto su un pezzo di carta ci fa anche da diagramma di flusso.

Un saluto a tutti

Link al commento
Condividi su altri siti

Si, in effetti è utile per le sequenze, per chi programma le macchhine.

Non è utile per gli impianti dove ci sono molti interblocchi, ma poche e semplici sequenze.

Personalmente, poi, riscontro che posso usare il grafcet:

- sempre per me stesso, perché scrivo le sequenze come appunti sulla carta e poi me le vado a rileggere.

- qualche volte nelle conversazioni se vedo che l'approccio col grafcet è condiviso, ma non accade spesso.

- mai con i manutentori che prenderanno in consegna il programma, perché è assai raro che impostino il loro lavoro secondo il Grafcet

Il grafcet è un linguaggio intrinsicamente ottimo per le sequenze ed è apprezzato dove si fa "accademia" riferendosi al linguaggio stesso.

Io generalmente programmo impianti con sequenze semplici, non macchine. Nel cantiere non si apprezza un linguaggio per le sue caratteristiche intrinseche, ma lo si apprezza se è condiviso. E nel cantiere non si può imporre il Grafcet.

Diverso è il caso di chi fa macchine chiuse che magari il cliente prende così e non metterà mai mano al SW.

saluti

R. G.

Link al commento
Condividi su altri siti

Io ho avuto lo stesso problema nel cercare di imporre il Grafcet ai manutentori, ma alla lunga ho avuto ragione ;) .

Ora i manutentori danno un'occhiata al Grafcet, vedono dove il ciclo si è interrotto ed intervengono immediatamente nel punto interessato... meglio di così B) !

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...