27 Capítulo
4.6 SFC – sequenciamento gráfico de funções
Também é uma linguagem gráfica de programação muito poderosa. Proporcio- na uma representação das sequências do processo controlado na forma de um diagrama. O SFC é utilizado para dividir um problema de controle, permitindo uma visão geral do processo e facilitando o diagnóstico. Outra grande vantagem é o suporte para sequências alternativas e paralelas, tornando possível que sub- -rotinas que servem ao interesse do processo controlado sejam executadas de maneira paralela, sem a necessidade de parada da lógica principal de controle. Em resumo, o SFC vai além de uma programação gráfica usada em CLPs: é uma forma de estruturar a lógica e a sequência de eventos desejadas em um processo a ser automatizado.
O SFC é elaborado com blocos funcionais dispostos como um fluxograma, pos- sibilitando a confecção e o estudo dos processos por meio de ações e transições que devem ocorrer. Isso permite que um processo seja aberto ao menor nível de análise até que se tenha o modelo desejado mapeado em detalhes.
Também conhecido como GRAFCET, o SFC é baseado no conceito de análise binária das redes de Petri, levando em consideração, para ações futuras, os atuais estados de variáveis monitoradas. De forma prática, podemos analisar o funcio- namento de uma lógica produzida em SFC observando a figura 4.7.
Na lógica apresentada na figura 4.7, os retângulos representam os passos a serem executados no controle do processo e, entre alguns retângulos, a condição ne- cessária para que se chegue ao novo passo. Desse modo, podemos garantir que determinado passo nunca ocorra sem que uma transição esteja concluída. Analisando o exemplo da figura 4.7, para que o passo 1 seja concluído, é ne- cessário que sua resposta seja positiva, ou seja, o tanque está cheio. Enquanto o tanque estiver vazio, ele permanecerá monitorando essa etapa do processo.
Counter DayCounter DayCounterYesterday MonthCounter MonthCounterLMonth SetCounter Input DayChange MonthChange PulseRatio SetCounterValue CounterMAX SetCounter FB_Counter_1 FB_Counter Figura 4.6 Exemplo de bloco de função criado por programador.
Cada um dos blocos poderá ser programado na linguagem que for mais conve- niente ao programador, pensando nas seguintes facilidades:
• Gerar o código do programa.
• Garantir que outras pessoas compreendam o programa. • Fazer manutenção e alterações no software.
No entanto, vale ressaltar que, se a tarefa envolver lógica simples, poderá ser con- veniente o uso do diagrama Ladder; e, se contiver muitas fórmulas matemáticas, será mais conveniente uma linguagem do tipo texto estruturado.
Tanque Cheio?
Proceder com mistura
Tanque Vazio? Limpeza Reservatório Transição Solicitação Feita? Passo 1 Encher o Tanque Passo 2 Esvaziar o Tanque Transição Passo 3 Espera solicitação de início de ciclo Figura 4.7 Exemplo de lógica em SFC.
Capítulo 5
A programação
ladder
CAPÍTULO 5 ELETRôNICA 6
78 79
A
Ladder foi uma das primeiras linguagens destinadas à progra-mação de CLPs, criada para permitir que técnicos e engenhei- ros da área de automação com conhecimentos de lógica de relés e nenhum de programação conseguissem programar o CLP. Por esse motivo, ela se tornou a linguagem mais popular entre os programadores.
5.1 Diretivas básicas
As variáveis associadas aos elementos de entrada, saída, memória, tempori- zadores e contadores são denominadas operandos. O programa executa ope- rações lógicas e aritméticas com esses operandos.
Na linguagem Ladder, as linhas de contatos (instruções) possuem a aparên- cia de degraus (rungs) de uma escada (ladder), que podem ser associados a uma estrutura de colunas e linhas, conforme ilustra a figura 5.1. Em cada linha, as instruções correspondem ao programa, ou seja, ao processamento dos operandos, e o resultado é atribuído a outro operando no bloco “Saída”, à direita.
Coluna 1
1 Linha 1
INSTRUÇÃO INSTRUÇÃO aplicação ou saída
2
Coluna
2 Coluna3 Colunasaída
INSTRUÇÃO INSTRUÇÃO aplicação ou saída
INSTRUÇÃO INSTRUÇÃO aplicação ou saída
Rung Rung
Figura 5.1 diagrama Ladder.
O número de linhas e colunas ou elementos e associações que cada rung admite varia conforme o fabricante do CLP e pode variar também de acordo com a UCP utilizada. Em geral, esses limites não representam preocupação ao usuário no desenvolvimento do programa de aplicação, pois, se o limite for ultrapassado, o software de programação apresentará uma mensagem de erro durante a com- pilação do programa.
Os operandos podem ser divididos em três classes:
• Memória (M) – Servem para o armazenamento dos resultados parciais, va- lores de constantes, dados de transmissão, valores de referência, receitas etc. Esses operandos podem ser livremente lidos e escritos pelo programa. • Entradas (I) – Estão associados aos módulos de entrada. Podem ser lidos
pelo programa, mas escritos apenas pelos módulos de entrada.
• Saídas (Q) – Estão associados aos módulos de saída. Podem ser livremente lidos e escritos pelo programa.
Os operandos, por sua vez, são divididos, inicialmente, em cinco tipos, segundo sua utilização e número de bits:
• Bits (X) – Utilizados para a implementação de lógica, ocupam 1 bit de memória.
• Bytes (B) – Utilizados para o armazenamento de caracteres ASCII, ocupam 8 bits.
• Words (W) – Utilizados para o armazenamento de valores numéricos intei- ros, ocupam 16 bits.
• Double word (D) – Semelhante ao tipo W, ocupa 32 bits. • Word long (L) de 64 bits – Semelhante ao tipo W, ocupa 64 bits.
Originalmente, na linguagem Ladder cada instrução correspondia aos con- tatos NA ou NF dos relés, cujo estado era definido pelo valor do operando (do tipo B) a ele associado. Na mesma época, as saídas eram as bobinas (ope- rando tipo B). Com o tempo, os blocos de instruções passaram a contemplar contadores, temporizadores, operações aritméticas etc., que exigiram que fos- sem criados os tipos de operando citados anteriormente.
O objeto de estudo das instruções de programação Ladder será um CLP genéri- co, com os seguintes elementos:
• 8 entradas digitais. • 8 saídas digitais. • 4 entradas analógicas. • 2 saídas analógicas. • 6 saídas a relé.
• 1 entrada de contagem rápida de pulsos a 4 kHz. • 32 temporizadores.