Post on 07-Jul-2016
description
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.
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
• 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
• 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.
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 Pulsadas
• Ações executadas somente uma vez durante o estado ativo;
• Sintaxe:ACTION (P):
(Código em texto estruturado);
END_ACTION;
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 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;
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.