38
Grafcet 10 de agosto de 2010

AULA 7 - Grafcet

Embed Size (px)

DESCRIPTION

AULA 7 - Grafcet

Citation preview

Grafcet

10 de agosto de 2010

Grafcet

• Modelar lógicas de controle baseadas na seqüência temporalde eventos de processo;

• Como linguagem de estruturação das ações de um programasegundo um modelo top-down. Este particionamento doproblema traz ganhos de performance porque apenas ocódigo relativo aos passos ativos é executado;

• Para descrever o comportamento baixo nível de um processoseqüencial;

• Para representar as fases de um processo de batelada;

• Para representar um processo de comunicação de dados, etc.

Componentes Básicos

• Estados;

• Transições;

• Links;

• Jumps;

Estados

• Cada Estado é referenciado por um número, escrito dentro doretângulo;

• A descrição do estado é feita em um retângulo ligado aosímbolo do estado, sendo que a mesma não faz parte daprogramação);

Estados

• No modo run time, um alerta indica que o estado está sendoexecutado.

Estados

• Estado inicial:

– Todo programa SFC possui um Estado Inicial, representadopor dupla borda;

– O alerta de Estado ativo é automaticamente ligado noEstado Inicial quando o programa é executado;

Estados

• O bloco de ações de cada Estado pode ser definido em emqualquer uma das outras linguagens da IEC 61131;

• GSnnn.x : Variável booleana que indica se o Estado nnn estáativo. Comumente utilizado em seqüências simultâneas ,sincronizando diferentes passos;

• GSnnn.t : Variável timmer que indica a quanto tempo o Estadonnn está ativo;

Estados

• A lógica de cada estado do programa em SFC, quando descritaem ST (texto estruturado), deve ser encapsulada entre o parde declarações ACTION (qualificador ) e END ACTION, ondequalificador descreve o tipo da ação. Os qualificadores maisfreqüentemente usados são:

N, que indica que a ação será executada continuamenteenquanto o estado estiver ativo;

P, que indica uma ação pulsada (no ISaGRAF, é executadaapenas uma vez quando o estado for ativado).

Estados

• Qualificadores aceitos em outros PLCs:

Estados

• Exemplo:

ACTION(N):

x:= x+1;

desligado := FALSE;

END_ACTION;

• Observe que as palavras-chave ACTION e END ACTION nãopodem ser usadas num programa declarado na linguagem ST.

Transições

• São representadas por uma pequena barra horizontal quecruza o link entre estados;

• Assim como os estados, cada transição é referenciada por umnúmero e pode ser descrita por um comentário;

Transições em Texto Estruturado

• Cada transição deve ter uma condição booleana associada eser finalizada com “;” ;

• Por exemplo, para descrever uma transição hipotética entredois estados, foi empregada a seguinte expressão:

• A transição acima só ocorre se a variável FUN for acionada Ese não tiver decorrido até o momento mais de 10 segundosde execução do estado 2.

Transições com Função ouSubprograma

• Subprogramas ou funções podem ser usados para determinara condição de transição, desde que o resultado destes seja umbooleano;

• Formato:

• Exemplo:

Link Orientado

• São as linhas usadas para interligar Estados e Transições;

• Quando a orientação não é explicita (sem setas indicativas) aorientação é de cima para baixo;

Jump

• Usados em substituição ao link orientado;

• Indicam a conexão sem o desenho da linha de interligação;

• Os jumps devem referenciar ao número do Estado de destino;

Jump

• Jumps não podem ser usados para representar o link de umestado para uma transição.

• Diagramas equivalentes:

Convergências e Divergências

• Divergências são multíplas conexões de um símbolo SFC(estado ou transição) para dois ou mais símbolos SFC;

• Convergências são conexões de dois ou mais símbolos SFCpara um único símbolo SFC;

Convergências/Divergências Simples

• Mesmo que várias transições estejam ativas simultaneamente,somente um caminho é selecionado. O caminho selecionado édeterminado pela precedência da transição. O default é aavaliação da esquerda para a direita;

Convergências/Divergências Múltiplas

• Faz uso da construção divergência AND para iniciar ações que serão realizadas em paralelo e convergência AND que espera até todas as tarefas estarem concluídas.

Macro Estado

• Um macro estado é a representação de um grupo de estadose transições;

• O macro estado é descrito em separado, também emlinguagem SFC;

Macro Estado

• O número de referência do macro estado é a referência doprimeiro estado de sua descrição.

• A descrição deve iniciar e terminar com um estado;

• Um macro estado pode possuir outro macro estado em suadescrição;

• Um macro estado não pode ser usado em mais de umprograma SFC.

Macro Estado

Ações

• Booleanas;

• Pulsadas;

• Contínuas;

• Ações SFC;

Ações Booleanas

• Altera o valor de uma variável (interna ou saída) nosmomentos de ativação e desativação do Estado;– <variavel_booleana>(N): variável torna-se TRUE durante o estado

ativo;

– < variavel_booleana >: mesmo efeito de (N);

– /< variavel_booleana>: variavel torna-se FALSE durante o estado ativo;

– < variavel_booleana>(S): variavel torna-se TRUE na entrada do estadoe permanece assim até ser resetado;

– < variavel_booleana>(R): variavel torna-se FALSE na entrada do estadoe permanece assim até ser setado;

Ações Booleanas

Ações Pulsadas

• Ações executadas somente uma vez durante o estado ativo;

• Sintaxe:ACTION (P):

(Código em texto estruturado);

END_ACTION;

Ações Pulsadas

• Exemplo:

Ações Contínuas

• Ações executadas em todos os ciclos de scan, enquanto oestado estiver ativo;

• Sintaxe:ACTION (N):

(Código em texto estruturado);

END_ACTION;

Ações Contínuas

• Exemplo:

Ações SFC

• Trata-se de partir/interromper subprogramas do tipo SFC;

• Sintaxe:– <programa_filho> (N): parte (interrompe) o subprograma quando o

estado é ativado (desativado);

– <programa_filho> : mesmo efeito de (N);

– <programa_filho> (S): Parte o subprograma quando o estado éativado. Não possibilita a interrupção do subprograma;

– <programa_filho> (R): Interrompe o subprograma quando o estado éativado. Não possibilita partir novamente o subprograma;

Ações SFC

• Exemplo: Programa pai com os subprogramas SeqMix eSeqPump;

Chamada de Funções

• Trata-se de partir/interromper subprogramas e funções nãoescritos em SFC;

• Sintaxe:ACTION (P):

resultado:=sub_program ();

END_ACTION;

ACTION (N):

resultado:=sub_program ();

END_ACTION;

Chamada de Blocos de Funções

• Trata-se de partir/interromper blocos de funções;

• Sintaxe:ACTION (P):

FBinst(in1, in2);

result1:=Fbinst.out1;

result2:=Fbinst.out2;

END_ACTION;

ACTION (N):

FBinst(in1, in2);

result1:=Fbinst.out1;

result2:=Fbinst.out2;

END_ACTION;

Regras de avaliação de um SFC

• 1. Estado inicial estará ativo logo após a inicialização dosistema. Quaisquer ações associadas com o passo inicial serãoexecutadas.

• 2. No inicío de cada avaliação, o conjunto de estados ativos édeterminado. Todas as transições associadas com os estadosativos serão avaliadas.

• 3. Ações que terminaram sua execução na última avaliação,são executadas mais uma vez.

Regras de avaliação de um SFC

• 4. Todas as ações ativas são executadas.

• 5. Todos os estados ativos que precedem transições avaliadascomo verdadeiras são desativados e os seus estadossucessivos são ativados.

• 6. Todas as ações tendo uma condição de habilitação queacabam de ser desativadas, são marcadas como inativas, porexemplo, uma ação com o qualificador de limite de tempo L,quando o período de tempo é esgotado.

Regras de evolução de um SFC

• 1. Dois estados não podem ser diretamente ligados. Elesdevem ser separados por uma transição.

• 2. Duas transições nunca podem estar diretamente ligadas,elas devem ser sempre separadas por um estado.

• 3. Se uma transição a partir de um estado leva a dois ou maisestados, então estes estados iniciam seqüências simultâneas.Seqüências simultâneas continuam independentemente.

• 4. Quando projetando um SFC o tempo para realizar umatransição, desativar estados anteriores e ativar estadosposteriores, deve ser considerado nulo.

Regras de evolução de um SFC

• 5. Quando mais do que uma condição de transição éverdadeira ao mesmo tempo, o tempo de ativação edesativação dos estados associados deve ser consideradonulo. O projetista não deve considerar as diferenças de tempode transições simultâneas (condição de corrida).

• 6. A condição de transição de um estado não é avaliada atéque todo o comportamento resultante do estado ativo tenhase propagado através da POU. Por exemplo, se um estado foiativado com a sua condição de saída sempre TRUE, todas asações serão executadas uma vez, antes do estado serdesativado.

Datas Importantes

14 de setembro – Data limite para envio da Prática 6

28 de setembro – Apresentação da Prática 7

19 de outubro – Data limite de envio da Prática 8

16 de novembro – Apresentação da Prática Final