Grafcet (acrónimo do francês Graphe Fonctionnel de Commande, Etapes Transitions) é uma metodologia que surge com a necessidade do desenvolvimento de programas para controlo de processos sequenciais.
Corria o ano de 1977 quando a AFCET ("Association Française pour la Cybernétique Economique et Technique") juntamente com a ADEPA ("Agence nationale pour le DEveloppement de la Production Automatisée") definiram o Grafcet como uma representação gráfica que traduz, sem ambiguidade, a evolução do ciclo de um automatismo sequencial. Mais tarde em 1988 o Grafcet foi adoptado como um standard internacional, pela norma IEC 848 e é denominado por SFC "Sequential Function Chart"
O diagrama funcional Grafcet permite descrever os comportamentos de um automatismo em função das informações que recebe. O Grafcet não pretende minimizar as funções lógicas que representam a dinâmica do sistema, pelo contrario o seu potencial reside na imposição de um funcionamento rigoroso, evitando desta forma incoerências, bloqueios ou conflitos durante o funcionamento do mesmo.
As suas principais características são:
- Claridade, legibilidade e apresentação sintética.
- Oferece uma metodologia de programação estruturada, "Top-Down" (de forma descendente) que permite o desenvolvimento conceptual do general para o particular.
- Introduz um conceito "tarefa" de forma hierarquizada.
Definições de elementos gráficos[]
Um Grafcet é um diagrama funcional que descreve graficamente os diferentes comportamentos de um automatismo sequencial e é constituído por:
- Etapas que estão associadas às acções.
- As transições que estão associadas às receptividades.
- Linhas orientadas que ligam as etapas com as transições e as transições com etapas.
Para representar o Grafcet usam-se os seguintes símbolos gráficos:
Etapa[]
Uma etapa é definida como a situação do sistema que representa um estado invariante no que diz respeito às entradas e saídas do automatismo. Num determinado momento e de acordo com a evolução do sistema, uma etapa pode estar activa ou inactiva. Diz-se que a etapa está activa, quando são executadas sobre o processo as tarefas elementares programadas.
Graficamente é simbolizada por um rectângulo com uma numeração no seu interior, dando desta maneira uma sequencialidade das etapas representadas. A entrada e a saida de uma etapa aparecem na parte superior e inferior, respectivamente, de cada símbolo.
As etapas podem ser de duas classes:
Etapa inicial[]
No caso de ser uma etapa inicial esta deve activar-se automaticamente no início da execução do algoritmo de controlo. Num diagrama Grafcet deve haver pelo menos uma etapa inicial que é representada por um rectângulo de linha dupla.
Etapa normal[]
Encontra-se sempre ligada tanto a uma transição de entrada como de saída. Activa-se quando, estando activa a etapa anterior são cumpridas as condições de transição entre as duas.
Acção associada à etapa[]
As acções associadas definem uma acção ou acções elementares a realizar durante uma etapa, por exemplo acender uma lâmpada ou activar um temporizador. As acções associadas a uma etapa apenas podem ser executadas no caso da etapa correspondente estiver activa.
Representam-se graficamente por rectângulos (etiquetas) conectados a etapas correspondentes e situadas à direita das mesmas.
As acções associadas podem ser classificadas como:
- Reais: acções concretas que se produzem no automatismo
- Internas: acções que se produzem no interior do dispositivo de controlo, tais como temporizadores.
- Externas: acções que se produzem sobre o processo em si, tais como abrir/fechar uma válvula ou arrancar/parar um motor.
- Virtuais: não é realizada nenhuma acção sobre o sistema, são utilizadas em situações de espera a que se produzem determinados eventos (activação de determinados sinais) que permitem a evolução do processo
- Incondicionais: acções que se produzem com apenas uma activação da etapa correspondente.
- Condicionais: acções que requerem o cumprimento de uma condição adicional para além da activação da etapa correspondente.
- Continuas: acções cuja execução tem início e fim, respectivamente, com a activação e desactivação da etapa associada.
- Sustentadas: Acções cuja a execução é prolongada durante duas ou mais etapas consecutivas.
- Retardadas: Acções cuja execução é iniciada com um tempo de atraso no que diz respeito ao momento de activação da etapa associada. Se o tempo de atraso é maior que a duração da etapa associada, a acção não é executada.
- Limitadas: Acções cuja execução é iniciada com a activação da sua etapa associada, contudo é executada apenas durante um tempo pré-estabelecido. Se o tempo estabelecido é maior que a duração da etapa activa, a execução de este tipo de acções termina com a desactivação da sua etapa associada.
- Pontuais: Acções condicionadas cuja execução está limitada a um tempo de execução muito curto, determinado pelo flanco ascendente ou descendente da condição associada.
- Memorizadas: Acções cuja a execução é prolongada durante duas ou mais etapas consecutivas, para o qual são utilizadas as instruções SET e RESET.
- Temporizadas: Quando a condicionante da activação, desactivação ou duração de determinadas acções é a variavel tempo.
- Combinadas: Acções condicionadas cuja execução depende simultaneamente de qualquer das condições simples consideradas anteriormente.
Pode haver diferentes tipos de acções associadas a uma mesma etapa. O estado de activação de uma etapa é indicado graficamente pela colocação de um token no interior da etapa.
O token vai avançando pelas etapas de acordo com a execução do automatismo. Uma etapa não activa pode ser por sua vez activável ou inactivável dependendo se a etapa precedente está activa ou não.
Transição e receptividade[]
O conceito de transição esta associado à barreira existente entre duas etapas consecutivas e cuja activação torna possível a evolução lógica do automatismo. A sua representação gráfica consiste numa barra perpendicular à linha orientada associada.
A toda a transição é correspondida uma receptividade, que é a condição lógica necessária para que se execute uma acção da etapa seguinte, se bem que esta será executada sempre que a etapa precedente está activa. A condição lógica vem expressa mediante uma função lógica booleana.
Uma transição tem varios estados:
- Uma transição pode estar validada ou não validada. Diz-se validada quando todas as etapas de entrada à transição estão activas.
- Uma Transição diz-se disparada quando, estando validada, a condição (função de receptividade) que lhe está associada é verdadeira.
- O disparo de uma transição provoca a activação de todas as de saída dessa transição e simultaneamente a desactivação de todas as etapas de entrada da mesma.
Transição fonte[]
Transição que não tem associada etapa de entrada, apenas tem etapas de saida.
Transição poço[]
Transição que não possui etapa de saida. Utiliza-se tipicamente para terminar com uma evolução.
Transição temporizada[]
A evolução do processo esta condicionada à variável tempo. A receptividade torna-se verdadeira quando termina o tempo pré-estabelecido no início da temporização.
Transição incondicional[]
A receptividade é sempre verdadeira e desta forma a transição é sempre disparada.
Transição com receptividades múltiplas[]
A receptividade esta definida por uma equação lógica em que intervem varias variáveis.
Transição por flancos[]
Se a transição está validada, a transição é disparada quando na receptividade associada é produzido um flanco ascendente (estado lógico passa de falso para verdadeiro) ou um flanco descendente (estado lógico passa de verdadeiro para falso).
Ligação orientada (Arco)[]
Uma ligação orientada ou arco é um segmento de recta que une uma transição com uma etapa ou vice-versa, mas nunca elementos homónimos entre si.
Traços paralelos[]
A sua utilização surge com a representação de várias etapas cuja evolução está condicionada pela mesma transição.
Estruturas do Grafcet[]
Estruturas básicas[]
Permitem a realização de analises do sistema por meio da sua decomposição em sub processos.
Sequência única vs sequência paralela[]
- Sequência única é constituida por um conjunto de etapas que vão sendo activadas umas atrás das outras, sem interacção com nenhuma outra estrutura.
- A cada etapa segue-se uma só transição e cada transição é validada por uma só etapa.
- A sequência estará activa, se uma das suas etapas estiver também activa e estara inactiva se todas as suas etapas também o estão.
- Sequências paralelas são as sequências únicas que são activadas de forma simultânea por uma mesma transição. Depois da activação das distintas sequências a sua evolução produz-se de forma independente.
Estruturas lógicas[]
Divergência OR[]
A divergência OR permito-nos optar, em função das variáveis particulares do processo, por sequências alternativas quando o automatismo assim o exige.
- A etapa n passa a estar activa se, estando activa a etapa n-1 se satisfaz a receptividade da transição a.
- A etapa n+1 passa a estar activa se, estando activa a etapa n-1 se satisfaz a receptividade da transição b.
Convergência OR[]
Utiliza-se na situação de execução simultânea de duas ou mais sequências e se chega a uma mesma etapa.
- A etapa n passa a estar activa se, estando activa a etapa n-1 se satisfaz a receptividade da transição c ou estando activa a etapa n-2 se satisfaz a receptividade da transição d.
Divergência AND[]
Utiliza-se para os casos onde se pretende activar simultaneamente duas ou mais sequências paralelas.
- As etapas n+1 e n+2 passam ao estado activo se, estando activa a etapa n é satisfeita a receptividade da transição f.
Convergência AND[]
Permite a convergencia de duas ou mais sequências paralelas.
- A etapa n passa ao estado activo se, estando as etapas n-1 e n-2 activas, é satisfeita a receptividade associada à transição f. No caso contrario, isto é, a variável apresenta nível lógico 1 é prosseguida a sequência normal: n,n+1,n+2, etc.
- Quando são executadas varias sequências simultaneamente contudo com tempos de duração distintos, para se estabelecer a condição de convergência AND torna-se necessário utilizar uma ou varias etapas sem nenhuma acção associada, chamadas etapas de espera.
Saltos condicionais[]
No diagrama Grafcet representado na figura em baixo à esquerda, é executado um salto da etapa n para a etapa n+i+1, isto se a receptividade representada pela variável A tem nível lógico 0.
Para o Grafcet à direita e enquanto a variável D tenha nível lógico 0, as etapas n, n+1, n+2, n+3 serão repetidas.
Macro etapa[]
- Um conjunto de etapas cuja execução pode repetir-se ao longo de um diagrama, o Grafcet permite a sua representação mediante uma macro etapa. Desta forma a so há a necessidade de declarar a sequência uma vez.
- Uma macro etapa é representada por meio de um rectângulo com bordos verticais de traço duplo, contendo no seu interior os números da etapa inicial e final da sequência.
Regras de evolução[]
- A dinâmica evolutiva de um Grafcet é dada por um conjunto de regras que nos permitem estabelecer um seguimento dos sinais de token, através do diagrama funcional.
- Uma etapa pode estar activa, inactiva ou activável e a sua evolução é demonstrada pela seguinte figura:
- Regras de evolução
- A etapa inicial é activada de forma incondicional.
- O disparo de uma transição, tem como consequência a activação de a/as etapa(s) seguinte(s) e a inactivação da(s) etapa(s) precedente(s).
- Transições conectadas em paralelo em condições de serem disparadas, são disparadas de forma simultânea se são cumpridas as respectivas condições de disparo.
- Se uma etapa é activada e desactivada simultaneamente, esta permanecerá activada.
- Uma transição é definida como validada se, todas as etapas que a precedem estão activas.
- Uma etapa é definida como activável se, a transição precedente encontra-se validada.
- Uma transição pode se encontrar: validada, não validada e disparada.
Estruturas especiais[]
Exemplos práticos[]
Máquina de bebidas quentes (fonte: Sistemas Industriais - FEUP)[]
Considere uma hipotética máquina automática de venda de bebidas quentes, nomeadamente café e chocolate.
Existem duas ranhuras para moedas e é através da introdução de uma moeda na ranhura apropriada que se escolhe a bebida que pretendida, uma m_cafe para um café e uma m_choc para um chocolate.
Após a introdução da moeda, é necessário ligar o motor que deposita um COPO até que o sensor de copo_presente indique que essa operação está completa. Seguidamente é necessário abrir a válvula do CAFÉ ou CHOCOLATE durante 5 segundos, enchendo assim o copo.
O copo está protegido por uma porta e utiliza-se um TRINCO (actuador impulsional) para abrir a porta. Para assinalar este facto faz-se piscar uma LUZ, que alterna um segundo ligado e outro segundo desligado.
O processo encerra quando o copo desaparece mas a máquina só poderá ser utilizada 10 segundos depois dessa ocorrência.
Para manter as bebidas quentes existem dois sensores chocolate_frio e café_frio que assinalam a necessidade de ligar durante um minuto o sistema AQUECE_CHOC e AQUECE_CAFÉ, respectivamente.
Desenhe um diagrama Grafcet que comande o funcionamento desta máquina.