Buscar

CLP_apostila

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 83 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1- Histórico
Nos anos 60 a 70, os clientes que desejavam comprar um automóvel numa dada cor eram obrigados a esperar longos períodos, isso era conseqüência dos grandes lotes produzidos. As fábricas não possuíam flexibilidade e a mudança de processos demandava alto custo. Os intertravamentos eram feitos exclusivamente pelos problemáticos relés. 
O Controlador Lógico Programável (CLP) nasceu dentro da General Motors, em 1968, devido a grande dificuldade de mudar a lógica de controle dos painéis de comando a cada mudança na linha de montagem. Sob a liderança do engenheiro Richard Morley, foi preparada uma especificação que refletia as necessidades de muitos usuários de circuitos e relés, não só da indústria automobilística como de toda a indústria manufatureira. A empresa norte-americana Bedford Associate lançou o MODICON 084 (Modular Digital Controller), um dispositivo de computação capaz de atender as especificações da GM, ou seja, nascia assim o primeiro CLP, um equipamento bastante versátil e de fácil utilização, que vem se aprimorando constantemente, diversificando cada vez mais os setores industriais e suas aplicações. 
Este equipamento foi batizado nos Estados Unidos como PLC (Programable Logic Control), em português CLP (Controlador Lógico Programável). No Brasil, a introdução da tecnologia programável só emplacou a partir dos anos 80.
IEC 61131
A padronização é uma natural exigência industrial, isto porque a produtividade está intimamente relacionada a capacidade de fazer a mesma coisa da mesma forma e com a melhor perfeição possível. Os equipamentos pertencentes a um processo industrial devem possuir, caso necessário, um substituto idêntico ou no mínimo compatível com sua atividade e com a conectividade aos outros componentes do processo. Não é aceitável que a substituição de um equipamento provoque a inutilização de outros. Caso não existisse uma padronização, uma empresa que necessitasse da troca de tecnologia por aumento de demanda ou pela incorporação de novos recursos, ela então deveria inicialmente investir na aquisição de novos hardware, software e em treinamento do pessoal envolvido na implantação e manutenção. 
Quando adquirimos um dispositivo de controle com o comprometimento da continuidade e produtividade, fica fácil entender porque o CPL foi rapidamente incorporado aos principais seguimentos industriais, e em alguns casos, mesmo com a possível limitação de processamento. De que valeria possuir um avião sem um piloto e/ou sem um mecânico.
Em 1992 a International Electrotechnical Commission publicou a norma IEC 61131, a qual estabelece padrões para Controladores Programáveis:
· 61131-1: Informações gerais;
· 61131-2: Requisitos de hardware;
· 61131-3: Linguagens de programação;
· 61131-4: Guia de orientação ao usuário;
· 61131-5: Comunicação;
· 61131-6: Resevada;
· 61131-7: Programação utilizando Lógica Fuzzy e
· 61131-8: Guia para implementação das linguagens.
2 – Arquitetura do CLP
Podemos apresentar a estrutura de um CLP dividida em três partes: entrada, processamento e saída.
Figura 2.1: Estrutura básica de um CLP.
Os sinais de entrada e saída dos CLPs podem ser digitais ou analógicos. Existem diversos tipos de módulos de entrada e saída que se adequam as necessidades do sistema a ser controlado.
Os módulos de entrada e saídas são compostos de grupos de bits, associados em conjunto de8 bits (1 byte) ou conjunto de 16 bits, de acordo com o tipo da CPU.As entradas analógicas são módulos conversores A/D, que convertem um sinal de entrada em um valor digital, normalmente de 12 bits (4096 combinações). As saídas analógicas são módulos conversores D/A, ou seja, um valor binário é transformado em um sinal analógico.
Os sinais dos sensores são aplicados às entradas do controlador e a cada ciclo (varredura)todos esses sinais são lidos e transferidos para a unidade de memória interna denominada memória imagem de entrada. Estes sinais são associados entre si e aos sinais internos. Ao término do ciclo de varredura, os resultados são transferidos à memória imagem de saída e então aplicados aos terminais de saída. 
Em nosso curso utilizaremos O CLP Siemens 1200 e este possui uma unidade central compacta de processamento (CPU) que reúne:
· A CPU propriamente dita que executa o programa e armazena dados, nela já estão embarcados as entradas digitais que monitoram sinais dos equipamentos de campo(tais como sensores e interruptores) e as saídas digitais que controlam bombas, motores e outrosequipamentos dentro do processo.
· Um módulo de expansão analógico para a aquisição de sinais como temperatura, vazão, nível, pressão, etc.
· Uma fonte 24Vcc que alimenta a CPU e os módulos de expansão.
A CPU possui leds indicadores de status que propiciam indicação visual sobre o estado da CPU (RUN, STOP ou SF) e a situação das I/O (entradas esaídas).
SF: Led Vermelho: indica falha no sistema (System Fault).
RUN: Led Verde: a CPU está em ciclo.
STOP: Led Amarelo: o CLP NÃO está rodando o programa.
I x.x(entrada genérica): Led verde indica que está energizada.
Q x.x (saída genérica): Led verde indica que está habilitada.
A comutação de um sinal digital em corrente contínua na entrada de um CLP pode ser de dois tipos:
· Tipo N ou Source: Quando o CLP reconhece na entrada o potencial negativo da fonte de alimentação;
· Tipo P ou Sink: Quando o CLP reconhece na entrada o potencial positivo da fonte de alimentação. 
Em ambos, os casos a falta do sinal caracteriza nível lógico 0 e a presença do sinal nível lógico 1.
A unidade de saída digital trata os sinais emitidos pela CPU para enviá-los aos dispositivos que devem ser acionados, chamados de atuadores (contactoras, válvulas, lâmpadas, etc). Normalmente são encontrados CLP com os seguintes tipos de saídas:
		- A relé → Para atuadores AC ou DC;
		- A Triac → Para atuadores AC e 
		-A transistor → Para atuadores DC
Tipos de saída a transistor:
· Tipo N ou Sink: Quando o canal libera potencial negativo da fonte de alimentação de 24 Vdc  para a saída (carga ligada entre o potencial positivo da fonte e a saída);
· Tipo P ou Source: Quando o canal libera potencial positivo da fonte de alimentação de 24 Vdc para a saída (carga ligada entre o potencial negativo da fonte e a saída).
Os módulos de expansão permitem adicionar I/O digitais ouanalógicas e são conectadas à CPU através de um BUS conector(barramento).
Os Módulos Analógicossão conversores A/D ou D/A com a função de interagir com os dispositivos industriais que necessitam de controle analógico. O valor analógico fornecido ao CLP é convertido pelo A/D interno em um valor digital e armazenado no seu endereço respectivo de RAM. Caso o CLP necessite enviar um dado analógico, inicialmente é inserido o valor digital no endereço de memória específico e depois o módulo D/A converte e envia pela sua saída analógica.
Ciclo de Scan
A execução do programa em um CLP realiza-se de forma cíclica conforme a seguinte sequência:
1° - Na primeira etapa, o status da imagem das saídas é transferido para as saídas físicas e estas são ligadas ou desligadas. 
2° - Em seguida, o processador consulta se as entradas individuais estão ou não energizadas, este status é salvo na imagem das entradas. A informação “1”é definida para as entradas energizadas e a informação “0” para as não energizadas.
3° - O processador então executa o programa salvo na memória de programa. Este programa é composto de uma lista de operações e instruções lógicas que são executadas sucessivamente. Para a informação de entrada, é acessada a imagem de entrada anteriormente lida e os resultados das operações são gravados na imagem das saídas. Outros espaços de memória, por exemplo, para dados locais dos subprogramas, blocos de dados e marcadores também são eventualmente acessados pelo processador durante a execução do programa.
4° - Por fim também são executadas tarefas internas do sistema operacional, tais como autoteste e comunicação. Em seguida, como continuação retorna-se ao item 1.
O Programa
	O programa CLP é criado com um software em umPC. Após o PC ser conectado ao CLP por meio de uma interface de comunicação, o programa poderá ser carregado na memória do CLP por meio da função de carregamento. Portanto, para a execução do programa no CLP, o PC não é mais necessário.
O cartão de memória/memory card (fornecido pelo fabricante) pode ser usado em alguns CLP e tem a função de armazenar programa, dados, dados do sistema, arquivos e projetos. Ele pode ser usado para:
· transferência de um programa para diversas CPUs
· atualização de firmware das CPUs, módulos de sinal SM e módulos de comunicação.
3 - Dispositivos de campo.
Dispositivos de entrada e saída são utilizados para enviar ou receber sinais doCLP, sejam eles discretos (digitais) ou analógicos.
3.1 –Sensores de proximidade.
Dispositivos construídos para detectar a presença ou passagem de materiaismetálicos ou não metálicos, por proximidade ou aproximação, sem contatofísico. Esta detecção pode ser feita por resistência, capacitância ou indutância,de forma mais ou menos proporcional.
Figura 3.1: Sensores de proximidade.
Na tabela 2.1 podemos verificar tipos de sensores.
Tabela 3.1: tipos de sensores.
Na figura 2.2 é exibido os vários padrões de conexão dos tipos de sensores.
Figura 3.1: padrões de conexão.
3.2 - Botoeiras
A chave botoeira (push button) é projetada para abrir ou fechar um circuito quando acionada e retornar à sua posição normal, caso contrário. O contato é não retentivo, ou seja, só permanece na posição alterada enquanto a chave estiver acionada, o contato volta para a posição normal quando se tira a pressão da chave. O contato é momentâneo e o seu retorno é causado por uma mola. Normalmente aberto ou normalmente fechado significa que os contatos estão em uma posição de repouso, mantidos por uma mola e não estão sujeitos a nenhuma força externa mecânica ou elétrica. A botoeira normal tem retorno de mola, de modo que ela é não sustentável. A botoeira mais usada é do tipo SPDT. Quando a botoeira é apertada, o circuito entre M-N é aberto e O-P é fechado. Quando ela é solta, fecha M-N e abre O-P eletricamente. Algumas botoeiras podem ter três, quatro ou mais pólos, aumentando sua capacidade de chaveamento. A botoeira é usada em controle de motores, onde ela serve para partir, parar, inverter e acelerar a rotação do motor. A chave botoeira é usada tipicamente em chaves de acionamento de campainha e chave de segurança de motores. 
3.3 - Chave Liga-Desliga
A chave liga-desliga (toggle) possui uma haste ou alavanca que se move através de um pequeno arco fazendo os contatos de um circuito abrirem ou fecharem repentinamente. O fato de o contato abrir ou fechar muito rapidamente reduz o arco voltaico e garante um curtocircuito seguro. O acionamento da chave toggle é retentivo, ou seja, a chave é ligada por um movimento mecânico e os contatos permanecem na posição alterada, até que a chave seja acionada no sentido contrario. A chave toggle tem uma pequena protuberância saindo do eixo. O eixo toggle é empurrado para cima ou para baixo para produzir o chaveamento. Tais chaves são tipicamente usadas em pequenos equipamentos com pouco espaço disponível no painel.
3.4 - Chaves Fim de Curso
A chave limite ou fim de curso éacionada automaticamente pelomovimento de alguma maquina oudispositivo. Ela deve ter uma respostainstantânea e ser confiável.Em geral, a operação de uma chavelimite começa quando uma peça emmovimento bate em uma alavanca queatua a chave. Quando acionada, a chavemuda os seus contatos.O tamanho, força de operação,percurso e modo de montagem são osparâmetros críticos na instalação da chavefim de curso. As especificações elétricasda chave devem estar de conformidadecom a carga a ser acionada.As chaves fim de curso podem serusadas como piloto em circuitos decontrole de motores, como proteção ouemergência para evitar o funcionamentoimpróprio de maquinas. As chaves limitespodem ter contatos momentâneos ouretentivos.
3.5 - Chave Seletora
A chave seletora ou rotatória fecha eabre circuitos quando é girada entreposições. O knob da chave é girado e nãoapertado, como nas chaves botoeira. Umcontato fixo ao eixo gira por meio de umknob ligado à outra extremidade do eixo. Ocontato se move ao longo de um circulo dematerial isolante que possui tiras dematerial condutor colocadas ao longo dacircunferência. Quando o eixo gira de umaposição para a próxima, o contato rotativofaz a ligação para as tiras condutoras. Istofecha e abre contatos desejados. Há umamarcação externa no knob para localizar aposição da chave.A chave seletora é usada paraselecionar duas, três, dez ou maisposições. Ela é usada tipicamente paraselecionar diferentes faixas de medição deinstrumentos, selecionar canais datelevisão, selecionar funções de umamplificador.Se a chave rotatória é do tipo de curto-circuito,o seu contato girante faz a ligaçãocom o próximo terminal antes de abrir ocontato com a posição atual. Esta chave échamada de make before break (fecha antes de abrir). Tal característica de curto-circuitofornece proteção para certosinstrumentos ou equipamentos.Há também chave rotatória do tipo nãocurto-circuito. Esta chave abre o circuitoatual antes de fechar o circuito seguinte.Ela é também chamada de break beforemake(abre antes de fechar).
				
3.6 –Pressostatos
Pressostato é uma chave comandadapela pressão. Uma chave elétrica muda osestados dos seus contatos quando apressão atinge determinados valorescríticos. Por exemplo, por economia esegurança, um compressor de ar deve serdesligado quando a sua pressão atingir um. valor alto determinado e deve ser religadoquando a pressão atingir um valor baixodeterminado. Ajustes convenientes nopressostato permitem que o compressoropere entre estes dois valores críticos depressão.
3.7 - Termostato
Termostato é uma chave comandadapela temperatura. Uma chave elétricamuda os estados dos seus contatosquando a temperatura atinge determinadosvalores críticos. Por exemplo, por economia e segurança, um condicionadorde ar deve ser desligado quando atemperatura do ambiente atingir um valoralto determinado e deve ser religadoquando a temperatura atingir um valorbaixo determinado. Ajustes convenientesno termostato permitem que ocondicionador opere entre estes doisvalores críticos de temperatura. Como o termostato é comandado pelatemperatura, ele deve ter um sensor detemperatura, geralmente mecânico, comobimetal ou enchimento termal. Termostatossão comuns em condicionadores de ar,geladeiras e motores.
3.8 - Chave de Vazão
Chave de vazão (flow switch) é umachave comandada pela vazão. Uma chaveelétrica muda os estados dos seuscontatos quando a vazão de um fluidoatinge determinados valores críticos. Porexemplo, por segurança, um sistema delubrificação com óleo pode ser desligadopor uma chave de vazão, quando a vazãodo lubrificante ficar menor que um valorcritico ajustado na chave. A chave de vazão deve ter um sensor devazão ou ser acionada diretamente pelapassagem do fluido. As chaves de vazãopodem operar com líquidos ou com gases(airflow switch). Há chaves de vazãotérmicas ou mecânicas. A chave é inseridana tabulação de modo que a vazão dofluido passa em seu interior. Quando avazão atinge valores críticos ajustados nachave, os seus contatos mudam paraenergizar bobinas de starter de motor debomba ou de compressor.
3.9 - Chave de Nível
Chave de nível (float switch) é umachave comandada pelo nível. Uma chaveelétrica muda os estados dos seuscontatos quando o nível de um liquidoatinge determinados valores críticos. Porexemplo, por segurança, um tanqueaquecido pode ser desligado por umachave de nível, quando o nível do liquidono seu interior ficar menor que um valorcritico. Ajustes convenientes na chave denível permitem que o nível do tanque variedentro de uma faixa segura acima de um valor critico baixo e abaixo de um valoralto. A chave de nível deve ter um sensor de nívelpreferivelmente mecânico, como uma bóiaflutuadora. A operação da chave pode sercontrolada pelo movimento para cima oupara baixo de uma bóia que flutua nasuperfície do liquido.O movimento da bóiacausa uma haste operar a chave. A chaveacionada muda os seus contatos. Oscontatos da chave fazem parte do sistemade alimentação do motor da bomba. Oarranjo dos contatos, se NA ou NF,depende se a bomba está enchendo otanque ou esvaziando-o, se o tanque éseguro quando vazio ou cheio.
4 - Variáveis
As variáveis são os endereços de memória que armazenam informações de uma parte do programa e das interfaces de entrada e saída para serem utilizadas pelo próprio programa. O conteúdo das variáveis, processado de formaadequada, determina o fluxo de todo o programa, controlando as ações a seremexecutadas e gerando resultados de saída.
4.1 Tipos de Dados
São os valores armazenados na memória sob forma binária. Dependendo da ordem grandeza ou do contexto, estes dadossão trados de forma distinta. A memória do controlador pode ser acessada de quatro formas básicas, a Tabela 4.1 contém tais formas e a quantidade de informação abrangida em cadaforma de acesso.
Tabela 4.1: Resolução dos tipos de dados.
Ou seja, cada tipo de dado está associado basicamente à quantidade de memóriaocupada. Assim, este critério serve apenas para indicar o tamanho dodado.
Existem, ainda, outras convenções (como, por exemplo, Nible que é um conjunto dequatro bits) que não são adotadas pelo fabricante de CLP.
Outro parâmetro importante é o tipo de operador, este define a classe numérica do dado.A Tabela 4.2 fornece os ranges provenientes das relações entre os dois parâmetros.
Tabela 4.2: range dos tipos de operadores.
4.2 – Áreas de Memória
A arquitetura doconjunto de memória de um dispositivo computacional, assim como o CLP, pode ter vários modelos físicos de distribuição ede maneira geral esses modelos não necessitam ser conhecidos pelo programador do CLP. Porém, a forma com que serão acessados deve ser de completo domínio. 
A norma IEC-61131-3 preconiza que as memórias do CLP devem ser logicamente divididas em três regiões: INPUT, OUTPUT e MEMÒRIA.
Para as regiões INPUT e OUTPUT, a analise é bastante simples, estas regiões representam os endereços destinados as entradas, digitais ou analógicas, do CLP. Já a região MEMÓRIA, indica qualquer endereço, acessível ao programador, que não possui correspondência física direta aos sinais que entram e saem do CLP. A programação de qualquer dispositivo exige a criação e armazenamento de dados em memória, a disponibilização de endereços na região MEMÓRIA tem o objetivo de sanar essa necessidade natural da programação.
Cada área de memória é identificada por uma letra padrão e tem o acesso descrito de acordo com a tabela 4.3.
Tabela 4.3: Tipos de acesso às regiões de memória.
4.2 – Endereçamento Absoluto
Para as diversas áreas de memória da CPU, a forma de endereçamentoobedece a seguinte lógica:
· Bit =>%[Área][Byte].[Bit] (Exemplo Q0.0, M34.6 ....)
· Byte =>%[Área][B][Byte] (Exemplo IB10, MB10 ....)
· Word =>%[Área][W][Byte inicial] (Exemplo MW4, IW6 ....)
· Double Word =>%[Área][D] [Byte inicial] (Exemplo MD0, MD20 ....)
As entradas e saídas analógicas são acessadas somente como Word. O endereço édefinido pelo número da entrada “IW” ou saída “QW”. 
Um endereço absoluto é considerado Global porque pode ser acessado por qualquer parte do programa.
4.3 – Endereçamento Simbólico
Os endereços simbólicos usam nomes ao invés de endereços absolutos.Um programa é facilmente interpretado quando são usados nomes com significado. 
5 – Organização dos Programas
Programas são estruturas gráficas ou textuais que representam um pensamento lógico. Teremos um capítulo exclusivo para tratar de programação, porém, neste momento iremos apenas entender de que forma devemos organizar os programas.
A norma IEC61131-3 descreve a organização dos programas e chama de POU (Program Organization Units) a estrutura do software destinada a esse gerenciamento. A normatização da forma com que se devenvolve programas, principalmente para o setor industrial, é de extrema importância. Na industria, os processos mudam de acordo com demanda, desenvolvimento tecnológico, alterações no produto e etc. Com isso os programas também devem sofrer alterações e nem sempre quem altera é quem desenvolveu a primeira versão. Logo, não é difícil perceber o quanto é importante que todos os programadores sigam a mesma metodologia de desenvolvimento. 
O aprendizado da metodologia utilizada na norma IEC-61131-3 serve de qualificação básica para a aceitação de um proficional programador de CLP no mercado.
Basicamente os programas são desenvolvidos em dois tipos de blocos: Organizacionais e Funções. 
Figura 5.1: Organização Estruturada
Não necessáriamente os programas são divididos na forma exemplificada como na figura 5.1, a organização desta figura é chamada de estruturada principalmente porque existe uma função reutilizada. Programas com pequeno grau de complexibilidade podem ser montados sob estruturas mais simples, como mostra a figura 5.2.
Figura 5.2: Estruturas lineares e particionadas.
O Programa Linearse encontra em um único bloco contínuo.Este modelo assemelha-se ao de um controle feito com relês, e que foi substituído por um controlador lógico programável. A CPU processa as instruções individuais uma após a outra.
O Programa Particionadoestá dividido em blocos, dentro dos quais cada bloco contém somente um programa destinado a solucionar uma tarefa parcial. Internamente também é possível particionar o bloco através de segmentos (networks). É possível gerar padrões para networks do mesmo tipo. 
Já o Programa Estruturado contém blocos com parâmetros, ou parametrizáveis. Estes blocos são criados de forma a serem utilizados universalmente. Ao realizar a chamada de um bloco parametrizável são fornecidos parâmetros (os endereços exatos de entradas e saídas, e assim como de valores de parâmetros). 
	Exemplo:
	Um bloco “Bomba” possui instruções para o controle de uma bomba.Os blocos de programa responsáveis pelo controle de bombas especiais 	chamam o bloco “Bomba” e transferem informações a respeito de qualbomba será controlada e com quais parâmetros.Quando o bloco “Bomba” completa a execução de suas instruções o programa retorna para o bloco onde foi feita a chamada, e o processamento das instruções continua.
5.1 – Bloco Organizacional (OB)
É a interface entre o sistema operacional da CPU e o programa do usuário. O OB1 representa e contem e organiza o programa cíclico (pela chamada dos outros blocos).Os Blocos Organizacionais não podem ser chamados pelos outros blocos. Eles são chamados sequencialmente pelo sistema operacional ou em resposta a determinados eventos, por exemplo: 
	• No reset (startup) da CPU;
	• Em um horário pré-ajustado do dia;
	• Em intervalos constantes;
	• Quando um período ajustado de tempo transcorreu;
	• Quando ocorrem erros e
	• Quando ocorrer uma interrupção de hardware.
5.1.1 OB Startup	
Um programa startup é executado antes da execução do programa cíclico após o retorno da alimentação ou uma mudança do modo de operação (atrvés da mudança da chave seletora da CPU ou pela PG). OB 100 até OB 102 estão disponíveis para isto. Neste blocos você pode, por exemplo, presetar as conexões de comunicação. 
5.1.2 OB Cíclico (não-preempitivo)
O programa a ser executado continuamente é armazenado a partir do Bloco Organizacional 1 (OB1). Após o programa do usuário ter sido executado completamente no OB1, um novo ciclo começa com a atualização da imagem de processo e o processamento da primeira instrução no OB1. O tempo de varredura do ciclo e o tempo de resposta do sistema é um resultado destas operações. O tempo de resposta ou ciclo de Scan é o tempo total que a CPU leva para uma saída ser atualizada dependendo de um sinal de entrada e o tempo de varredura é o tempo que leva a CPU para executar todo o programa do usuário.
No ciclo de Scan são observadas as seguintes sequências básicas:
1º - As entradas físicas são lidas e armazenadas em umaimagem (memória);
2º - São executadas as operações de acordo com o programa escrito;
3° - A imagem das saídas físicas é atualizada e
4º - As saídas físicassão alteradas de acordo com a nova imagem.
Podemos observar que jamais um comando será respondido instantaneamente. É Óbvio que o tempo de uma mudança deve ser muito rápido, ou no mínimo, considerável. Uma tomada de decisão é considerada em Tempo Real quando o tempo de atraso é determinístico e o pior caso é inferior ao tempo máximo aceitável.
O tempo de um Scanvaria de acordo com o programa, o hardware e o Sistema Operacional do CLP. Este tempo é crítico porque uma entrada pode mudar seu estado dentro do período de Scan e acabar não sendo percebida.
Obs: Em sistemas operacionais, preemptividade é a capacidade de alterar a ordem de (ou tirar de execução) um processo em detrimento de outro de prioridade maior. Os programas criados na pasta Não-preemptivo são aqueles chamados de principais, onde todo o funcionamento do seu projeto está nele descrito.
5.1.2 OB Periódico
Na execução de programas periódicos, você pode interromper a execução do programa cíclico em intervalos fixos. Com interrupções cíclicas, um bloco de organização OB30 ao OB37 é executado após um valor pré-ajustado de tempo ter ocorrido. 
Com interrupções periódicas, um OB é executado em um tempo específico, por exemplo, todos os dias às 17:00h, para salvar o dado.As interrupções cíclicas são usadas para execução de blocos em intervalos fixos de tempo, o padrão de intervalo de tempo é 100ms. 
5.1.3 OB Evento	
A interrupção de hardware pode ser usada para rapidamente responder a um evento do processo. Após a ocorrência do evento, o ciclo é imediatamente interrompido e um programa da interrupção é executado. 
5.2 –Funções e Bloco de Funções
5.1 – Funções (FC)
Uma função contém uma parte funcional do programa. É possível programar funções de modo que sejam parametrizáveis. Com isso as funções são ideais para serem reutilizadas no programa, e para realizarem tarefas complexas como cálculos. A normaIEC1131-3 definiu funções padrão como: aritméticas (adição, subtração, multiplicação e divisão), seletoras,trigonométricas, condicionadoras de sinais,comparadoras e de tempo.Funções definidaspelo usuário são permitidas na norma.Uma vez definida, a função pode serreusada.Uma FC não possui nenhum espaço de memória atribuido. Os dados locais de uma função se perdem após o processamento da função. Em uma função poderão ser, por sua vez, chamados outros FB e FC.
5.2 - Bloco de Função (FB)
Basicamente o Bloco de função é uma unidade de organização de programa que oferece as mesmas possibilidades que uma função. Adicionalmente, o FB necessita de um espaço de memória (bloco de dados) atribuido para cada chamada. A chamada de um bloco de função é denominada como instância. A cada instância de um bloco de função é atribuido um espaço de memória, que irá conter os dados com os quais o bloco de função irá trabalhar. Esta memória é disponibilizada pelos blocos de dados, que são automaticamente criados pelo software. Também é possível disponibilizar a memória para diversas instâncias em um bloco de dados na forma de múltipla instância.
Quando um FB é chamado, um bloco de dados (DB) é atribuido automaticamente como DB de instância. Os dados neste DB de instância podem ser acessados através das variáveis do FB. Com isso as funções são ideais para serem reutilizadas no programa, e para realizarem tarefas complexas. Um FB pode ser chamado varias vezes e diferentes espaços de memória deverão ser atribuidos.
O Bloco de função, após sua execução, gera no mínino um valor. Podem-se criar várias instancias nomeadas a partir de um bloco de função. Cada instância deveter um identificador associado (nome dainstância) e uma estrutura de dadoscontendo sua saída e variáveis internas. Todos os valoresdas variáveis de saída e as variáveisinternas estáticas devem persistir de uma execuçãodo bloco de função para o próximo, demodo que a invocação do mesmo blocode função com os mesmos argumentos(parâmetros de entrada) nãonecessariamente forneçam o mesmovalor de saída.Somente os parâmetros de entrada esaída devem ser acessíveis do lado defora de uma instância de um bloco defunção, isto é, as variáveis internas dobloco de função devem ser ocultas dousuário do bloco de função.
Qualquer bloco de função que tenhasido declarado pode ser usado nadeclaração de outro bloco de função ouprograma.O escopo de uma instância de umbloco de função deve ser local à unidadede organização de programa em que eleé instanciado, a não ser que sejadeclarado global.O nome de instância de um bloco defunção pode ser usado como a entradapara uma função ou bloco de função, sedeclarado como uma variável de entrada ou como umavariável de entrada/saída de um bloco defunção.
5.2.1 - Parâmetros dos blocos
· Variável INPUT
Pode ser um endereçofísico (INPUT/OUTPUT) ou de MEMÓRIA.
· Variável OUTPUT
Pode ser um endereçofísico (INPUT/OUTPUT) ou de MEMÓRIA.
· Variável LOCAL
Esta variável é usada apenas quandose têm pontos de transferência devalores, não está associada aoequipamento ou memória, podendo serutilizada como entrada ou resultado deuma operação lógica.
· Constante
Possui valores que são utilizadospara execução da lógica. Não possui identificação (TAG). 
5.3 - Blocos de Dados(DB)
São áreas de dados do programa do usuário nas quais os dados relativos ao mesmo são gerenciados de maneira estruturada.Um DB instance é usado para salvar variáveis estáticas criadas em um FB. Estas variáveis “locais“ somente podem ser usadas no FB. Quando o bloco deixa de ser executado, elas são salvas ou retidas pelo DB.
Existem dois tipos de blocos de dados, os DB globais, onde todos os OB, FB e FC podem ler os dados armazenados ou gravar novos dados e os DB de instância, que são atribuidos a um determinado FB.
Os blocos de dados de instância podem ser atribuídos da seguinte forma:
· Chamada como instância individual:Um bloco de dados de instância próprio por instância de um bloco de função 
Exemplo de instâncias individuais
Os diferentes dados dos motores individuais, por exemplo, rotação, tempo até atingir a rotação nominal, tempo total de operação, são armazenados em diferentes blocos de dados de instância, DB10 e DB11. 
· Chamada como múltipla instância: Um bloco de dados de instância para diversas instâncias de um ou mais blocos de função. Com isto é obtida uma concentração dos dados de instância em um bloco de dados de instância, isto é, é possível aproveitar melhor a quantidade de DBs disponíveis. Isto sempre deve ocorrer quando o bloco que realiza a chamada deve permanecer novamente aplicável como bloco padrão. 
Exemplo de múltiplas instâncias:
A figura a seguir mostra a chamada de um contador do tipo CTUD (contadores incremental e decremental) que é chamado duas vezes. Os diferentes dados para ambos os contadores são armazenados como diferentes múltiplas instâncias no bloco de dados de instância DB1 do bloco de função FB1 que realiza a chamada.
6 - Linguagens de Programação
A normal internacional IEC 61131 foiadotada para colocar ordem no caos resultante da proliferação de normas deprogramação de CLP. Esta norma temduas partes: Elementos comuns e Linguagens de programação.A primeira parte da norma, ElementosComuns, define tipos de dados, variáveis,configuração, código fonte e unidades deorganização do programa. Definindo tiposde dados evita erros como dividir um Dadopor um Inteiro. Variáveis são somenteatribuídas para explicitar endereços deequipamentos em configurações. O Código Fonte (programa) permite a independênciaentre equipamento e o programa. 
As linguagens definidas têm sintaxe esemântica definidas, deixando espaço paradialetos personalizados. Conforme a norma IEC61131-3 háduas versões textuais, duas versõesgráficas de programação e uma ferramenta auxiliar.
As textuais são:
· Lista de Instruções, parecida comcódigo assembly e
· Texto Estruturado, parecida comPascal.
As linguagens gráficas são:
· Diagrama Ladder, típico paracontrole de maquinas e motores e
· Diagrama de Bloco de Funções,comum a indústrias de processoscontínuos.
A ferramenta auxiliaré o Diagrama de função seqüencial(Sequential FuncionChart - SFC). O nome original desta ferramenta é GRAphe Fonctionnel de Commande Etape/Transition (GRAFCET). 
Os elementos de programação desta ferramenta são:
· Passo (P);
· Transição (T);
· Ação (A);
· Ramificação (R) e 
· Link (L).
O uso de fluxograma(flowchart) também é utilizado, principalmente em equipes multidisciplinares.
Há ainda linguagens especializadas paracontrole de movimento (robótica, controlenumérico) e até a linguagem C é usadacomo linguagem de controle. Foramdesenvolvidas outras linguagens para CLP,cada uma para determinada plataforma oufabricante. Foram empregados diferentesenfoques para manipular as funçõesespeciais, resultando em uma grandeconfusão quando se mudava de umfabricante para outro.
Tabela 6.1: Comparação do uso de linguagem de programação de CLP por países.
6.1 - Ladder
Diagrama ladder é uma representaçãoordenada em forma de escada decomponentes e conexões de um circuitoelétrico. O diagrama ladder é tambémchamado de diagrama elementar oudiagrama de linha. O termo ladder (escada) se aplica porque a diagramação vai formando uma escada. É odiagrama básico associado com o controlelógico programado.
Os elementos constituintes de umdiagrama ladder podem ser divididos emcomponentes de entrada e de saída. Oprincipal componente de entrada é ocontato.Quanto à operação o contato pode serretentivo ou não retentivo. Quanto à lógica,o contato pode ser normalmente aberto(NA) ou normalmente fechado (NF).
O principal componente de saída é abobina, normalmente associada fisicamente ao starter de motor, aorelé ou solenóide, lâmpada piloto esirene. Existem outros componentes, porémestes são os mais usados esão suficientes para o entendimento dosdiagramas encontrados nas aplicaçõespráticas.
O Fluxo de potência é análogo ao fluxo depotência em um sistema com reléseletromagnéticos, deveser da esquerda para a direita.
Todos os elementos são interligados por linhas ordenadas de cima para baixo e as regras de composição dos diagramas são:
1° - Entradas, chaves e contatos são colocados no início da linha, no lado esquerdo;
2° - Saídas ou bobinas são colocadas no fim da linha, no lado direito;
3° - Uma linha de entrada pode alimentar mais de uma saída. Quando isso ocorre, as saídas estão ligadas em paralelo;
4° - Chaves, contatos e entradas podem ter contatos múltiplos em série, paralelo ou combinação de série e paralelo e
5° - As linhas são numeradas consecutivamente, à esquerda e de cima para baixo. A execução do programa segue esta numeração.
Denominada também de esquema a contatos, é estruturada a partir de símbolos gráficos que representam lógicas eletromecânicas, a figura 6.1 mostra as principais instruções Ladder.
Figura 6.1: Instruções Ladder
Os contatos são acionados por variáveis (endereços) do programa, sendo variável em nível lógico “1” (ON) contato ativado e em nível lógico “0” (OFF) contato desativado.
Figura 6.2: Instrução de Contato endereçada.
Nas saídas, a variável agregada assumi o estado lógico “1” sempre que uma corrente fictícia existir e “0” quando ela cessar.
Figura 6.3: Instrução de Saídaendereçada.
O esquema Ladder completo pode ser visto na figura 6.4, ele é composto de uma linha vertical à esquerda que representa analogamente a um eletrodo positivo e outra linha vertical à direita que representa um eletrodo negativo fechando cada linha. 
Figura 6.4: Linha Ladder completa.
É importante observar que a variável Q0.0 da figura 6.4 assume a condição ON ou “1” por consequência do acionamento da saída. Podemos dizer que o estado doparâmetro agregado a uma saída é a solução de cada linha. As variáveis %Qx.x são refletidas no respectivo pino de saída do CLP e com isso podem ser usadas para o acionamento de atuadores. 
As linhas podem ter lógicas de acionamento independentes ou não. O conjunto de linhas que se unem logicamente através dos estados das variáveis é chamado de Network. 
	Todas as linhas são numeradas e serão rigorosamente executadas da menor para a maior, somente saltos determinados por instruções específicas poderão alterar este fluxo. 
	Podemos comparar facilmente o diagrama Ladder a um circuito elétrico de acionamento e de maneira geral esta afirmativa é válida, porém algumas particularidades devem ser observadas com relação as regras do programa. A corrente fictícia jamais seguirá o sentido da direita para esquerda, está é uma característica específica das regras da programação Ladder. Na figura 6.5 é mostradoum exemplo corrente fictício que jamais poderá existir em um programa Ladder, a maioria do programas não permite a essa forma de combinação.
Figura 6.5: Corrente fictícia não permitida.
	Os contatos são instruções que irão permitir, ou não, que uma corrente fictícia atravesse a linha até atingir a instrução de saída. A instrução de saída enxerga essa corrente fictícia para determinar o estado do parâmetro (endereço) que é agregado à instrução, dependendo do tipo de saída, o estado do parâmetro pode ser diferente para a mesma condição de corrente fictícia. Os contatos podem se combinar entre montagens série e/ou paralelo, a figura 6.6 mostra um exemplo de combinação de contatos. Teoricamente são ilimitadas as combinações entre os contatos de uma linha Ladder, sempre respeitando a imposição de fluxo da esquerda para a direita.
Figura 6.6: Combinação de contatos em uma linha ladder.
6.1.1 - Descrição das instruções 
Contato Normalmente Aberto. O contato é fechado permitindo a passagem da corrente fictícia se o parâmetro agregado (????) estiver em nível lógico “1”.
Contato Normalmente Fechado. O contato é aberto impedindo a passagem da corrente fictícia se o parâmetro agregado (????) estiver em nível lógico “1”.
ContatoP. Em cada varredura, o estado do parâmetro superior (????) é copiado para o parâmetro inferior (????). Logo, a variável booleana indicada na parte inferior armazena o estado do ciclo anterior da variável superior. Se o estado do ciclo atual do endereço superior for 1 e o estado do ciclo anterior da variável inferior for 0, então o contato é fechado permitindo a passagem da corrente fictícia durante uma varredura. 
Contato N. Em cada varredura, o estado do parâmetro superior (????) é copiado para o parâmetro inferior (????). Logo, a variável booleana indicada na parte inferior armazena o estado do ciclo anterior da variável superior. Se o estado do ciclo atual do endereço superior for 0 e o estado do ciclo anterior da variável inferior for 1, então o contato é fechado permitindo a passagem da corrente fictícia durante uma varredura.
Instrução de saída. Leva o parâmetro agregado (????) para nível lógico “1” toda vez que houver a chegada da correte fictícia, o parâmetro volta a condição “0” assim que cessar a corrente. 
Instrução “set”. Leva o parâmetro agregado (????) para o nível lógico “1” assim que é percebido a corrente fictícia. Porém, com o término dessa corrente o estado do parâmetro não mais se altera (set), para isto, é necessária outra instrução chamadareset.
Instrução “reset”. Leva o parâmetro agregado (????) para o nível lógico “0” assim que é percebido a corrente fictícia. Porém, com o término dessa corrente o estado do parâmetro não mais se altera (reset),para isto, é necessária outra instrução chamada set.
O parâmetro “N” nas instruções SET e RESET determina a quantidade de endereços, a partir do endereço agregado, que serão afetados pela instrução. 
Exemplo(operação de acionamento utilizando o diagrama Ladder)
	Em um sistema de comando de um motor elétrico com reversão, o operador deve pressionar duas botoeiras de forma simultânea para girar no sentido horário, no sentido anti-horário basta pressionar uma das botoeiras. Para que o motor pare, basta o operador não pressionar as botoeiras. 
Figura 6.7: Ladder do sistema de comando de um motor elétrico com reversão
Nota: 
%I0.0 Botoeira 1.
%I0.1 Botoeira 2.
%Q0.0 Liga motor no sentido horário.
%Q0.1 Liga motor no sentido anti-horário.
6.1.2 – Uso de MEMÓRIA de usuário ou de endereços locais.
É comum em lógicas sequenciais a utilização do próprio endereçode saída para compor a lógica completa do programa.
Exemplo (operação de acionamento com utilização do endereço de saída como parâmetro de um contato)
Deve-se acionar dois motores elétricos de modo que o primeiro pode ser ligado de forma independente e o segundo só pode ser ligado se o primeiro também estiver ligado. 
Figura 6.8: Ladder do sistema de acionamento com uso de endereço físico.
Uma ressalva deve ser levada ao conhecimento com relação aos programas que utilizam endereços de saída nas lógicas de contatos. Se analisarmos cada linha individualmente, temos na primeira linha um contato que quando fechar, em função do parâmetro %I0.0, irá ativar a saída e consequentemente o endereço %Q0.0 irá para nível lógico 1. Já a segunda linha, no ciclo em que %Q0.0 foi para nível lógico 1, não será permitido o acionamento de %Q0.1 mesmo que o contato do parâmetro %I0.1 esteja fechado, isto ocorre porque, por regra, os endereços físicos de saída só são atualizados ao fim de cada ciclo de scan. Programas complexos e extensos podem gerar problemas de sincronismo se utilizarmos os endereços físicos de saída nas lógicas de contatos, isto ocorre porque o estado de uma entrada pode mudar durante a execução de um ciclo e essa alteração vai ser processada, no próximo ciclo, com o estado anterior das saídas físicas.
Para neutralizar esse efeito perigoso, sempre utilizamos endereços de MEMÓRIA ou endereços locais na solução de cada linha, está técnica permite inclusive que o programador não gaste os limitados endereços físicos nas lógicas que não necessitam de exposição física, ou seja, não tem necessidade de acionar de fato algum dispositivo. Porém, é importante que os acionamentos necessariamente físicos, intermediados pelo uso de MEMÓRIA, sejam refletidos para o seu respectivo endereço físicos, ao fim da lógica do programa.
Exemplo (operação do exemplo anterior com uso de MEMÓRIA de usuário)
Figura 6.9: Ladder do sistema de acionamento com uso de endereço de usuário.
No programa acima, o estado do endereço %M0.0 é atualizado durante a execução do ciclo de Scan, o que permite a linha 2 processar a solução atual da linha 1. É importante observar que %M0.0 serve como uma imagem e deve ser copiada para %Q0.0 assim que oportunamente.
Programadores experientes criam imagens de seus endereços físicos, por exemplo, M_Motor1 para %M0.0 e Motor1 para %Q0.0. Desta forma, o programador só irá se preocupar com as saídas físicas no fim de toda lógica, consultando o seu mapa de memória, no caso M_Motor1 é a imagem de Motor1. O diagrama com endereços simbólicos é mostrado na figura 6.8.
Figura 6.10:diagrama com endereços simbólicos.
6.1.3 – Forças variáveis
Com a função "Force" (controle forçado) é possível forçar um valor fixo em variáveis.Os valores forçados são predefinidos de forma similar como no "Controle de variáveis", mas ao contrário do que ocorre com este último, eles permanecem mantidos após o desligamento ou parada da CPU.
Para forçar, primeiro é necessário abrir a tabela (Force Table) por meio de clique duplo.(® Force table )
	
Copie o operando "M0" com o endereço %Q0.0 a partir da tabela de observação. (® M0 ) 
Insira o operando M0 na tabela “Force”.No forçar, os operando são inseridos com acesso direto à periferia (sintaxe: %Q0.0:P) 
Insira os 'Values' desejados e os ative . Clique, em seguida, em 'Start or substitute forcing'. Com isto, uma nova solicitação de forçar é gravada na CPU. 
(® %Q0.0:P ® TRUE ®® Start or substitute forcing) Confirme o aviso com 'Yes'.(® Yes) 
Nota:
Se a tabela de observação for fechada ou a conexão ao CLP se perder, o forçar permanece ativo e o LED FORCE amarelo na CPU se acende.
Para 'Stop forcing', clique simplesmente sobre: . (® Stop forcing)
O forçar é concluído e o LED FORCE amarelo na CPU se apaga.
Se no controlador já existir uma solicitação de forçar, isto será indicado através do símbolo na tabela de observação. 
Clicando sobre , maiores informações serão exibidas. (® )
6.1.4 – Ativar as saídas periféricas
Com a função "Enable peripheral outputs", o bloqueio de saída de comando (BASP), que impede a emissão de sinais de saída quando a CPU se encontra no estado STOP, pode ser desligado. 
No modo STOP da CPU, as saídas acionadas estarão ativas após ativação PA. Os grupos analógicos transmitem o seu último valor.
Se você deseja usar esta função, insira o operando no formato de exibição correto e o valor de controle na tabela de observação.
Coloque a CPU em STOP mode e clique no botão "Enable peripheral outputs"
	
Confirme o aviso com 'Yes'.(® Yes) 
O operando deve ser endereçado como periférico em formato de byte, Word ou DWord (%QB0:P, %QW0:P, %QD0:P).
Clique em "Controlar variável imediatamente"
As saídas periféricas não podem ser observadas, mas elas podem observar adicionalmente a imagem de processo das saídas (PAA) na memória da CPU (também no modo STOP).
A ativação PA pode ser encerrada, clicando novamente no botão ou alterando a CPU para o modo RUN.
6.1.5 – Intertravamento
O termo intertravamento é utilizado em automação para indicar que um acionamento não poderá ocorrer se outro estiver ativo, em uma visão inversa, podemos também classificar como intertravamento todo acionamento que depende da ativação de outro acionamento, em ambos os casos existe um acionamento que depende de alguma forma, de outro. O que de fato irá mudar é o tipo de contato que intertrava um acionamento. Para intertravamento que não permite a ativação de outro, normalmente são utilizados contatos fechados no seguimento principal de corrente fictícia. Já para o intertravamento que só permite o acionamento quando outro acontece, o contato, seguindo a lógica anterior, deve ser do tipo aberto.
O assunto intertravamento é abordado no mundo industrial como um trabalho de altíssima responsabilidade, isto porque podem existir, por exemplo, equipamentos que jamais poderão funcionar juntos, com a possibilidade de causar danos materiais e/ou humanos. O assunto é tão importante que é tratado em separado e independente da lógica de funcionamento de cada dispositivo, exceto em casos extraordinários. Esta independência faz com que os sistemas de intertravamento se preocupem exclusivamente com as saídas físicas. Um diagrama especial chamado Causa e Efeito é desenvolvido para demonstrar graficamente todas as relações dos acionamentos, deste gráfico são extraídas as lógicas de intertravamento. 
Exemplo (Sistema de acionamento de três motores, o motor 2 não funciona se o Motor 1 estiver ligado, o Motor 3 não funciona se o Motor 1 ou o Motor 2 estiverem ligados.)
Figura 6.11: Diagrama com contatos de intertravamento.
	Na figura 6.9, a linha 4 é a lógica do intertravamento do Motor 3 (Motor 1 ou Motor 2), as três ultimas linhas são para copiar as imagem de acionamento nas respectivas saídas físicas e nestas linhas também são inseridos os contatos de intertravamento.
6.1.6 Circuito de Auto-Retenção
Em algumas condições é possível que necessitemos manter uma saída acionada mesmo que não exista mais, integralmente, a corrente fictícia que a acionou.
Nota: Não confundir retentividade com auto-Retenção. Retentividade é a capacidade de um endereço manter o seu dado mesmo com a ausência da fonte deenergia.
6.1.6.1 – Selo
Esta técnica é utilizada inserindo um contato em paralelo com todos os contatos que podem ser a fonte de acionamento de uma saída. O parâmetro (endereço) deste contato paralelo é o endereço da própria saída que foi acionada. Desta forma, é possível construir uma nova linha fictícia de acionamento, permitindo assim que as outras deixem de existir.
Figura 6.12: Diagrama com selo.
Podemos perceber na figura 6.10 que esse tipo de técnica não permite o desligamento da saída pelo próprio contato que a acionou, para a técnica de selo é necessário que outro contato com outro parâmetroseja inserido no meio da corrente fictícia que mantém a saída acionada, o local exato da conexão deste contato depende de cada caso, em geral deve estar na linha principal de acionamento.Figura 6.13: Diagrama com selo e desarme.
Na figura 6.11 podemos observar a inclusão de um contato no meio da linha principal de acionamento, ele vai permitir que a saída seja desligada assim que seu parâmetro %I0.1 for para nível lógico “1”. É importante ressaltar que o contato inserido no diagrama é do tipo normalmente fechado, o que obriga ao dispositivo externo enviar nível lógico “0” na sua condição estável. Neste curso usamos a CPU S7-1214C que possui entrada digital do tipo Sink, ou seja, a presença do potencial positivo da fonte é reconhecido como nível lógico 1, logo o dispositivo conectado a entrada deve ser do tipo normalmente aberto.
Exemplo (Programa desenvolvido por técnica de selo utilizado para detectar garrafas derrubadas da esteira conforme a figura 6.12. O pistão para retirada da garrafa é acionado quando somente o sensor de proximidade X0 é sensibilizado, o sensor de fim de curso Y0 determina a volta do pistão por efeito de mola.)
Figura 6.12: Sistema de detecção de garrafas derrubadas.
Figura 6.14: Diagrama com selo utilizado para a solução do sistema de detecção.
	NOTA: É importante observar que a velocidade de resposta dos sensores pode influenciar no funcionamento do sistema. Se X1 for muito mais rápido que X0, o sistema pode ser enganado e expelir uma garrafa corretamente posicionada. Em outro capítulo trataremos exclusivamente o problema de temporização.
6.1.6.2 – Instruções Set e Reset
Outra maneira de fazer a auto-retenção é pele instrução Set. Quando a instrução Set é sensibilizada pela corrente fictícia, ela leva o parâmetro de saída ao nível lógico “1” (set) e o mantém nesta condição mesmo que a corrente seja desfeita. 
Figura 6.15: Diagrama com instrução Set.
Para que a condição imposta pela instrução Set seja revertida, ou seja, o parâmetro retornar ao nível lógico “0”, é necessário que outra instrução de saída seja condicionada ao mesmo parâmetro e em outra linha Ladder, essa instrução é chamada de reset.
Nota: A empresa Rockwell, também fabricante de CLP, chama as instruções Set e Reset de Latch e Unlatch respectivamente.
Figura 6.16: Diagrama com instrução Set e Reset.
Programadores experientes normalmente evitam o uso de selo e não economizam na combinação set/reset. A prática desta técnica permite maior rapidez na solução de programações complexas. 
Exemplo(Programa desenvolvido por técnica de set/reset utilizado para detectar garrafas derrubadas da esteira conforme a figura 6.12. O pistão para retirada da garrafa é acionado quando somente o sensor de proximidade X0 é sensibilizado, o sensor de fim de curso Y0 determina a volta do pistão por efeito de mola.)
Figura 6.17: Diagrama com set/reset utilizado para a solução do sistema de detecção.
NOTA: O problema com temporização continua presente nesse modelo de programação, pelas mesmas causas. O assunto temporização será abordado em outro capítulo.
A técnica de set/resetpossui condições indesejáveis e/ou não permitidas. Quando existe uma corrente fictícia tanto na linha set quanto na linha reset, devemos tomar algumas precauções. Primeiramente é necessário identificar qual a prioridade determinada pelo CLP, normalmente a prioridade é para o reset. Imagine se em um CLP com prioridade de reset, o programador não percebe que durante o funcionamento do código existiria a ativação de um set com a linha de reset ativa. Erros assim são bastante complexos, isto porque, as vezes, a combinação que gera o erro de lógica só é percebida nos testes de campo.
O ideal para qualquer corrente fictícia de ativação, seja de um set ou reset, é que ela só exista durante o tempo necessário, mesmo que o parâmetro do contato ainda permita sua ativação. A solução encontrada está nos contatos especiais chamados de “P” e “N”, estes contatos, depois de ativados pelo parâmetro, mantém a corrente fictícia (contato fechado) somente durante o tempo de varredura (tempo necessário para executar todas as linhas do programa). Para que exista uma nova corrente de ativação, seja set ou reset, no contato tipo “P” o parâmetro deve voltar ao estado “0” e depois ao estado “1” (borda de subida), já no contato tipo “N” o parâmetro deve voltar ao estado “1” e depois ao estado “0” (borda de descida).
Exemplo: Procurando
6.1.7 – Programação Estruturada
A partir um bloco de organizacional (OB) é possível chamar outros blocos, tais como: Função (FC) ou Bloco de Função (FB). Está técnica é chamada de Programação Estruturada, isto faz com que a tarefa completa seja decomposta emsubtarefas, assim é possível encontrar mais fácilmente as soluções para programar a lógica e ter a sua funcionalidade testada.
Figura 6.18: Estruturação em blocos.
Cada software tem sua própria forma de criar e gerenciar as funções, mas de maneira geral, dentro da função é disponibilizado uma área de programação para inserir o código que será executado. No portal TIA, para criar uma função, deve-se iniciar a tarefa “Adicionar novo bloco” (Figura 6.19). 
Figura 6.19: Adicionar novo bloco.
Selecione a opção “Função”(figura 6.20),deum nome e escolha a linguagem de programação. A numeração realiza-se automaticamente. Como esta FC é posteriormente chamada através do nome simbólico, o número não é de grande importância. Dependendo da complexidade e objetivo tarefa executada por uma função, obviamente, a programação Ladder não será indicada, os software que cumprem a norma IEC61131-3 ofertam cinco linguagens diferentes, uma atividade que exige operações aritméticas pode fácilmente ser descrita por linguagem de Texto Estruturado.
Figura 6.20: Criação de Função.
Na declaração da “Função” são definidas as variáveis e estas são subdivididas em dois grupos:
· Os parâmetros do bloco, que permitem a interface do bloco com o programa.
	TIPO
	DESIGNAÇÃO
	ATIVIDADE
	DISPONÍVEIS
	Entrada
	Input
	Valores lidos pelo bloco
	FC, FB e OB
	Saída
	Output
	Valores gravados pelo bloco
	FC e FB
	Transição
	InOut
	Valor lido pelo bloco na chamada e gravação após o processamento.
	FC e FB
· Dados locais, usados para o armazenamento de resultados intermediarios.
	TIPO
	DESIGNAÇÃO
	ATIVIDADE
	DISPONÍVEIS
	Locais Temporarios
	Temp
	Armazenamento de resultados intermediarios temporários (ciclo).
	FC, FB e OB
	Locais Estáticos
	Static
	Armazenamento de resultados intermediarios estáticos acessíveis dentro do bloco de dados de instância.
	FB
Como exemplo foi criada uma função chamada “Acionamento_Bomba”, onde três chaves em paralelo (IN1, IN2 e IN3) acionam a saída (S). A figura 6.21 mostra o programa desenvolvido bem como a criação das variáveis. Note que as variáveis foram declaradas como parâmetros de entrada e saída, isto permite que sejam acessadas para passagem de parâmetros.
Figura 6.21: programa desenvolvido dentro da Função.
A função na forma de bloco pode ser vista na figura 6.22, os parâmetros EN (Enable) e ENO (Enable Out) são conectados a linha Ladder, os parâmetros IN1, IN2, IN3 e S são disponibilizados para a declaração do argumento.
Figura 6.22: função na forma de bloco. 
A figura 6.23mostra o uso da função “Acionamento_Bomba” como subrotina do bloco OB1. Toda vez que é necessário acionar uma saída a partir de três botões em paralelo pode-se chamar a função “Acionamento_Bomba”, sem a necessidade de desenvolver a lógica repetidamente.
Figura 6.23: função “Acionamento_Bomba” como sub rotina do bloco OB1.
O uso de uma função requer o conhecimento da lógica que está implantada na mesma. Não há como fazer uso de uma biblioteca de funções prontas se não é conhecido o seu funcionamento. Os programas normalmente ofertam uma gama de Funções ou Bloco de Funções (nativas), o uso destas bibliotecas deve ser precedido do estudo detalhado da sua operacionalidade. A norma IEC61131-3 prevê uma lista de Funções e Bloco de Funções consideradas importantes na programação de CLP e descreve também o modelo operacional de cada função. As funções nativas são normalmente impedidas de depuração de código, isto significa que o programador só faz uso operacional, mas não pode alterar o modelonativo. As funções nativas são para o programador o que os circuitos integrados são para o Engenheiro Eletrônico, sabem como funcionam e como utilizá-los, mas não podem mudar sua construção. A partir deste parágrafo, será descrito as principais Funções existentes em um CLP. 
6.1.7.1 – Funções de Temporização
6.1.7.1.1 – Time Pulse (TP)
Com a entrada IN habilitada, inicia-se a contagem de tempo na saída ET até o valor de preset (PT). Durante essa contagem, a saída Q permanece ligada.Permanecendo com a entrada IN habilitada, quando o efetivo (ET) for igual ao preset (ET=PT), a saída Q será desligada e o efetivo permanecerá com o valor final. O valor de ET será zerado (ET=0) somente quando a entrada IN for desligada. Ligando novamente a entrada IN, a saída Q é ligada e uma nova temporização iniciada.Utilizando um pulso na entrada IN (ON e em seguida OFF), a saída Q será ligada e permanecerá assim até que se atinja a contagem do efetivo em ET. Quando ET=PT, a saída Q será desligada e o efetivo será zerado automaticamente, pois a entrada IN permaneceu desligada ao final da temporização.O valor do preset PT pode ser alterado durante a execução do bloco funcional. Sendo o valor de PT maior que ET a temporização permanece até ET=PT. Caso contrário, PT menor que ET, a temporização é finalizada e a saída Q desligada. A figura 6.24 é o gráfico de funcionamento da função TP.
Figura 6.24: gráfico de funcionamento da função TP.
As variáveis que poderão ser utilizadas para cada parâmetro estão listadas na tabela 6.1.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	IN
	BOOL
	I, Q e M
	Início
	PT
	TIME
	M ou Constante
	Tempo pelo qual o pulso irá permanecer ligado (preset).
	Q
	BOOL
	I, Q e M
	Saída que será pulsada a partir do degrau ascendente da entrada IN e com o tempo de permanência determinado por PT. 
	ET
	TIME
	M ou Constante
	Tempo gasto (efetivo)
Tabela 6.1: variáveis da Função TP. 
6.1.7.1.2 – Time ON Delay (TON)
Com a entrada IN habilitada, inicia-se a contagem de tempo na saída ET (resolução 10ms) até o valor de preset (PT). Durante essa contagem, a saída Q permanece desligada.Quando o efetivo for igual ao preset (ET=PT), a saída Q será ligada e permanecerá assim até que IN seja desligado. Quando desligado, a saída Q é desligada e o efetivo ET zerado (ET= 0).O valor do preset PT pode ser alterado durante a execução do bloco funcional. Sendo o valor de PT maior que ET a temporização permanece até ET=PT. Caso contrário, PT menor que ET, a temporização é finalizada e a saída Q ligada. A figura 6.25 é o gráfico de funcionamento da função TON.
Figura 6.25: gráfico de funcionamento da função TON.
As variáveis que poderão ser utilizadas para cada parâmetro estão listadas na tabela 6.2.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	IN
	BOOL
	I, Q e M
	Início
	PT
	TIME
	M ou Constante
	Tempo queo degrau ascendente na entrada IN é atrasada (preset).
	Q
	BOOL
	I, Q e M
	Saída que será atrasada pelo tempo PT. 
	ET
	TIME
	M ou Constante
	Tempo gasto (efetivo)
Tabela 6.2: variáveis da Função TON. 
6.1.7.1.3 – Time OFF Delay (TOF)
Na transição de ON para OFF da entrada IN inicia-se a contagem de tempo na saída ET até o valor de preset (PT). Durante essa contagem, a saída Q permanece ligada. Quando o efetivo for igual ao preset (ET=PT), a saída Q será desligada e permanecerá assim até que IN seja ligado. Quando a entrada IN é ligada, a saída Q é ligada e o efetivo ET zerado (ET= 0).O valor do preset PT pode ser alterado durante a execução do bloco funcional. Sendo o valor de PT maior que ET a temporização permanece até ET=PT. Caso contrário, PT menor que ET, a temporização é finalizada e a saída Q desligada. A figura 6.26 é o gráfico de funcionamento da função TOF.
Figura 6.26: gráfico de funcionamento da função TOF.
As variáveis que poderão ser utilizadas para cada parâmetro estão listadas na tabela 6.3.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	IN
	BOOL
	I, Q e M
	Início
	PT
	TIME
	M ou Constante
	Tempo que o degrau descendente na entrada IN é atrasada (preset).
	Q
	BOOL
	I, Q e M
	Saída que será atrasada pelo tempo PT. 
	ET
	TIME
	M ou Constante
	Tempo gasto (efetivo)
Tabela 6.3: variáveis da Função TOF. 
Exemplo (Desenvolvimento de um programa para acionamento de três máquinas. A primeira liga imediatamente, a segunda 30s depois e a terceira 1min depois da segunda. Um botão liga a sequência e outro desliga todos ao mesmo tempo.)
6.1.7.2 – Funções de Contagem
6.1.7.2.1 – Contador Crescente (CTU)
Enquanto o valor da saída CV for menor que o valor de preset (PV), a saída Q permanecerá desligada. Quando a saída CV for maior ou igual ao valor de preset (PV), a saída Q será ligada.Quando a entrada de reset R for habilitada, o contador será zerado, isto é, CV=0.A contagem permanece até a saída CV=PV. Atingindo este valor, o contador permanecerá parado mesmo com pulsos na entrada CU até que seja resetada (R) a saída CV.Durante a contagem é possível a mudança de valor do preset (PV). Alterando o valor do preset (PV) durante a contagem, o bloco funcional continua incrementando a saída CV até CV=PV caso o novo valor de PV seja maior que CV. Sendo o novo valor do preset PV menor que CV, então a contagem é interrompida e a saída Q acionada.A figura 6.27 é o gráfico de funcionamento da função CTU.
Figura 6.27: gráfico de funcionamento da função CTU.
As variáveis que poderão ser utilizadas para cada parâmetro estão listadas na tabela 6.4.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	CU
	BOOL
	I, Q, M
	Sinal de contagem (pulso).
	R
	BOOL
	I, Q, M
	Reset de contagem (CV = 0).
	PV
	INT ou constante
	I, Q, M
	Preset.
	Q
	BOOL
	Q e M
	Saída.
	CV
	INT
	I, Q e M
	Efetivo de contagem.
Tabela 6.4: variáveis da Função CTU. 
6.1.7.2.2 – Contador Decrescente (CTD)
A cada pulso em CD a saída CV será decrementada.Quando o valor de contagem atingir o valor "0" zero a saída Q será ligada, caso contrário permanecerá desligada. A contagem permanece até a saída CV atingir o valor CV=0, o contador permanecerá parado mesmo com pulsos na entrada CD até que seja carregado (LD) um novo valor em CV. Quando a entrada load (LD) for habilitada, será carregado na saída de contagem (CV) o valor do preset (PV). Tanto PV quanto CV devem ser do mesmo tipo de dado. Durante a contagem é possível a mudança de valor do preset (PV). Alterando o valor do preset (PV) durante a contagem, o bloco funcional continua decrementando a saída CV até CV=0. Caso a entrada LD seja acionada durante a contagem, será carregado automaticamente o novo valor do preset (PV) para a saída CV e o bloco funcional continua a contagem a partir do novo valor de CV.
As variáveis que poderão ser utilizadas para cada parâmetro estão listadas na tabela 6.5.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	CD
	BOOL 
	I, Q, M
	Sinal de contagem (pulso).
	LD
	BOOL 
	I, Q, M
	Carrega Preset (PV) em CV (efetivo).
	PV
	INT ou constante
	I, Q, M
	Preset.
	Q
	BOOL
	Q e M
	Saída.
	CV
	INT
	I, Q e M
	Efetivo de contagem.
Tabela 6.5: variáveis da Função CTD. 
6.1.7.2.3 – Contador Crescente e Decrescente (CTD)
· Contagem crescente
A cada pulso em CU, a saída CV será incrementada.Enquanto o valor da saída CV for menor que o valor de preset (PV), a saída QU permanecerá desligada. Quando a saída CV for igual ao valor de preset (PV), a saída QU será ligada.Quando a entrada de reset (R) for habilitada, o contador será zerado, isto é, CV=0.A contagem permanece até a saída CV=PV. Atingindo este valor, o contador permanecerá parado mesmo com pulsos na entrada CU até que seja resetada (R) a saída CV.Durante a contagem é possível a mudança de valor do preset (PV). Alterando o valor do preset (PV) durante a contagem, o bloco funcional continua incrementando a saída CV até CV=PV caso o novo valor de PV seja maior que CV. Sendo o novo valor do preset PV menor que CV, então a contagem é interrompida e a saída QU acionada.
· Contagem decrescente
A cada pulso em CD a saída CV será decrementada. Quando o valor de contagematingir o valor "0" zero a saída QD será ligada, caso contrário permanecerá desligada. A contagem permanece até a saída CV atingir o valor CV=0, o contador permanecerá parado mesmo com pulsos na entrada CD até que seja carregado (LD) um novo valor em CV. Quando a entrada load (LD) for habilitada, será carregado na saída de contagem (CV) o valor do preset (PV). Tanto PV quanto CV devem ser do mesmo tipo de dado. Durante a contagem é possível a mudança de valor do preset (PV). Alterando o valor do preset (PV) durante a contagem, o bloco funcional continua decrementando a saída CV até CV=0. Caso a entrada LD seja acionada durante a contagem, será carregado automaticamente o novo valor do preset (PV) para a saída CV e o bloco funcional continua a contagem a partir do novo valor de CV.
A figura 6.28 é o gráfico de funcionamento da função CTUD.
Figura 6.28: gráfico de funcionamento da função CTUD.
As variáveis que poderão ser utilizadas para cada parâmetro estão listadas na tabela 6.6.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	CU
	BOOL 
	I, Q, M
	Sinal de contagem (pulso).
	CD
	BOOL 
	I, Q, M
	
	R
	BOOL
	I, Q, M
	Reset de contagem (CV = 0).
	LD
	BOOL 
	I, Q, M
	Carrega Preset (PV) em CV (efetivo).
	PV
	INT ou constante
	I, Q, M
	Preset.
	QU
	BOOL
	Q e M
	Saída crescente.
	QD
	BOOL
	Q e M
	Saída decrescente.
	CV
	INT
	I, Q e M
	Efetivo de contagem.
Tabela 6.6: variáveis da Função CTD. 
6.1.7.3 – Funções Comparação
As funções de comparação são muito utilizadas quando se deve tomar uma decisão a partir de um determinado valor (nível, pressão, quantidades inteiras em geral, etc).
 Greater EqualGreater Then LessEqualLessThenEqual
Quando a entrada EN for habilitada, é feita a comparação de IN1 para IN2, dependendo da operação (maior ou igual (GE) – maior (GT) – menor ou igual (LE) – menor (LT) – igual (EQ) )e sendo verdadeira, a saída ENO será ligada, caso contrário será desligada.
	PARÂMETRO
	TIPO DE DADO
	ÁREA DE MEMÓRIA
	DESCRIÇÃO
	EN
	BOOL
	-
	Habilita execução da instrução.
	IN1, IN2
	INT,UINT,REAL, STRING, TIME, e CONSTANTE.
	I, Q, M
	Variáveis de comparação 
	ENO
	BOOL
	-
	Resultado da comparação.
Exemplo (Desenvolvimento de um programa que conta o número de pessoas que entram em uma sala. Deve se ativar a iluminação na 1ª pessoa, o Ar na 10ª o 2° Ar na 30ª e desfazer tudo quando as pessoas saem por outra porta. Um alarme deverá informar quando o número máximo de 40 pessoas for atingido)
6.1.8 – Lógica Combinacional
Existem acionamentos que possuem características essencialmente lógicas, isto significa que uma ou mais combinações de contatos determina o acionamento de uma mesma saída. As técnicas utilizadas em lógica combinacional podem ser perfeitamente adotadas para extrair a menor combinação possível que permite os acionamentos pré-estabelecidos em uma determinada saída. 
Primeiramente iremos representar cada função lógica em diagrama Ladder. A tabela 6.4 mostra esta relação.
Tabela 6.4: Representação Ladder para cada função Lógica.
Exemplo (Representação da expressão S = ) em Ladder.)
Obs: A, B e C são símbolos dos endereços de entrada e S do endereço de saída.
A montagem Ladder segue	 a álgebra elementar, se inicia pelos parênteses e dentro de cada parêntese se resolve as multiplicações e depois as somas. Em álgebra booleana ainda devemos observar as parcelas complementadas, estas possuem hierarquia sobre qualquer operação. Na expressão , a multiplicação lógica AND só acontecerá após a solução NOR. 
O uso de MEMÓRIA de usuário como registro intermediário de uma parcela da expressão é uma prática usual e as vezes necessária. No exemplo acima seria impossível representar a parcela) na mesma linha que o restante da expressão. Isto se deve a complementação existente em toda parcela de expressão, técnicas de álgebra poderiam mudar o aspecto da expressão e permitir a transposição Ladder numa só linha, porém estas manobras se tornam desnecessária diante dos recursos que a diagramação Ladder proporciona.
6.1.8.1 - Diagrama Lógico 
A normaANSI/ISA 5.2 (Diagrama lógico binário para operações de processo)tem o objetivo de fornecerum método de diagramação lógica desistemas de intertravamento binário esequenciamento para a partida, operação,alarme e desligamento de equipamento eprocessos na indústria. A norma pretende facilitar oentendimento das operações lógicas emelhorar as comunicações entre técnicos, gerentes, projetistas, operadores e pessoalde manutenção, ligados ao sistema. Antes de se desenvolver um diagramalógico, deve se ter um diagrama de fluxo. AFigura 6.27é um diagrama de fluxo deprocesso. Deve-se ter também uma brevedescrição narrativa, ponto por ponto, doobjetivo do projetista.
Figura 6.27: diagrama de fluxo deprocesso.
A Figura 6.28 é um diagrama lógico associado com o diagramade fluxo da Figura 6.27. Os diagramas mostram muitos dossímbolos binários lógicos para operação doprocesso. Os símbolos de função deentrada e saída são os balões ebandeirolas dos instrumentos da normaANSI/ISA 5.1. As declarações deentradas e saída são interpostas entre osbalões ou bandeirolas e as setas decontinuação e a lógica levam de umdesenho lógico para outro. A lógica flui daesquerda para a direita. As setas são usadassomente onde for necessário, para melhorentendimento do fluxo de sinal.
Figura 6.28: diagrama lógico associado com o diagramade fluxo.
A tabela 6.5 representa a simbologia padrão ISA 5.2 com a respectiva funcionalidade lógica.
Tabela 6.5: simbologia padrão ISA 5.2 com a respectiva funcionalidade lógica.
A tabela 6.6 representa a simbologia padrão ISA 5.2 com a respectiva funcionalidade temporal.
Tabela 6.6: simbologia padrão ISA 5.2 com a respectiva funcionalidade temporal.
6.1.8.2–Simbologia para Atividades Específicas
6.1.8.2.1 - f1
A existência contínua da entrada lógicaA pelo tempo t1 faz a saída lógica B existirquando t1 expira. B termina quando Atermina. (É um temporizador para ligar).
Exemplo (Evitar alarme falso em nível alto,atuando somente se o nível permanecealto continuamente por 0,5 s. O sinal dealarme termina quando não há nível alto.)
6.1.8.2.2 - f2
A existência contínua da entrada lógicaA pelo tempo t1 faz a saída lógica B existirquando t1 expira. B termina quando A temsido terminado continuamente durante otempo t2 .
Exemplo (Purgar imediatamente com gás inerte, quando a concentração do combustívelficar alta. Parar a purga quando aconcentração não for alta continuamentepor 5 minutos.)
6.1.8.2.3 - f3
A terminação da entrada lógica A e suanão existência continua durante o tempo t3causa a saída lógica B existir, quando t3expirar. B termina quando:
· B tem existido por um tempo t4 ou
· A ainda existe, o que ocorrer Primeiro
Exemplo (O vapor é ligado durante 15 minutos,começando 6 minutos depois da parada doagitador, exceto que o vapor deve serdesligado se o agitador recomeça.)
6.1.8.2.4 - f4
A existência da entrada lógica A,independente de seu estado subseqüente,causa a saída lógica B existir quando otempo t1 expira. B existe durante o tempo t4e depois termina.
Exemplo (Se a pressão cai para valores baixosmomentaneamente, bloquear o controlecontínuo da turbina imediatamente, manterpor 2 minutos, então liberar a turbina parao controle contínuo.)
6.1.8.2.5 - f5
A existência contínua da entrada lógicaA durante o tempo t1, causa a saída lógicaB existir quando o tempo t1 expira. B existedurante o tempo t4 , independe do estadosubseqüente de A e depois termina.
Exemplo (Se o pH ficar continuamente por 1minuto, adicionar soda cáustica durante 3minutos.)
6.1.8.2.6 - f6
A existência contínua da entrada lógicaA durante o tempo t1, causa a saídalógica B existir quando o tempo t1expira.B termina quando o ocorrer o primeirodos seguintes fatos:tem expirado o tempo t4 ou A termina.
Exemplo (Se a temperatura for normalcontinuamente por 5 minutos, adicionarreagente por 2 minutos, exceto que oreagente não pode ser adicionado se atemperatura for anormal.)
6.1.9 Conversão de Circuito elétrico em Ladder
Para converterum diagrama elétrico em Ladder, de maneira geral, é só transformar as colunas em linhas. A figura 6.29 demonstra o circuito elétrico e sua representação em Ladder.
Figura 6.29: circuito elétrico e sua representação em Ladder.
Um circuito elétrico pode possuir conexões entre linhas de acionamento, a figura 6.30 mostra dois circuitos de acionamento com um contato comum entre eles.
Figura 6.30: circuitos de acionamento com um contato comum.
A conversão para o diagrama Ladder deve ocorrer com a montagem de cada linha de acionamento de forma independente, isto é, cada linha de acionamento deve receber apenas os contatos pertencentes a sua lógica. Em Ladder podemos repetir, quantas vezes for necessário, um contato com o mesmo parâmetro. A figura 6.31 mostra o diagrama convertido.
Figura 6.31: circuito elétrico convertido em Ladder.
Exemplo (Transformação do Circuito Elétrico em Diagrama Ladder)
6.1.9Matriz de Causa e Efeito
Deve mostrar o inter-relacionamento entre os eventos (causa) e as ações (efeito). É apresentado em uma forma matricial com as causas nas linhas e os efeitos nas colunas. As sequencias automáticas de parada, partida ou manobras operacionais específicas e as sequencias de segurança devem aparecer de forma separada ou em documentos distintos.
A Matriz é a forma mais utilizada na estruturação da lógica de intertravamento e alarmes, dessa forma enquanto uma equipe trata do controle propriamente dito, outra pode desenvolver toda parte de segurança. 
Esta técnica não deve explorar lógicas complexas, isso irá permitir que a solução de cada causa ou conjunto de causas tenha o efeito direto na linha de acionamento da variável física.
Cada combinação causa/efeito deve ser indicada por um “X”, se um efeito tem mais de uma causa, estes deverão ser combinados pela lógica “OU”. Outras siglas de operação poderão ser incluídas, “E” de lógica AND, as siglas “T” de temporização, “N” de negação, “S” de set,”R” de reset, “↓” de transição negativa e “↑” de transição positiva também poderão ser utilizadas. A figura 6.32 mostra os principais modelos de operações.
Figura 6.32: principais modelos de operações.
Exemplo
	
	FECHA V1
	FECHA V2
	LÂMPADA DE ATENÇÃO
	BOTÃODE EMERGÊNCIA
	
	
	
	LIGA SISTEMA
	
	
	
	BOMBA 1 LIGADA
	
	
	
	BOMBA 2 LIGADA
	
	
	
	PRESSÃO ALTA DO GÁS
	
	
	
	PRESSÃO BAIXA DO GÁS
	
	
	
6.1.10 Saltos
O jump (salto) deve ser mostrado por umalinha de sinal booleano terminada em umadupla seta (>>). A linha de sinal para umacondição de jump deve originar em umavariável booleana, saída booleana de uma função oubloco de função e linha de fluxo de potência de umdiagrama ladder.
Uma transferência de controle decontrole para a identificação do circuitodesignado deve ocorrer quando o valorbooleano da linha de sinal for 1(verdadeiro), assim, o jump incondicional éum caso especial do jump condicional.O alvo de um jump deve ser umaetiqueta do circuito dentro da unidade deorganização do programa, dentro da qualocorre o jump.
6.3 - Flowchart
O fluxograma (flowchart) é um sistemagráfico usado como uma ferramenta deanálise de programas e outros diagramas.O fluxograma contém blocos retangularesde ação, losangos para tomada dedecisão, a partir de comparação ouverificação de atributos. O fluxograma deprogramação tem dois elementos básicos:Ação e Ramificação
Um bloco de ação (retângulo)representa uma operação em um dado do sistema, tem um pontode entrada (superior) e uma saída(inferior). Os blocos de ação podem ter váriasfunções lógicas e de controle embutidas.Os blocos deação podem chamar (Call) uma sub-rotina,executar uma malha (Do), ter funçõestemporizadas (Wait) e fazer comunicação.
O bloco de encaminhamento, (losango) representa um caminho nocircuito de controle baseado no resultadode uma decisão. A decisão poderáser a comparação de duas variáveis ou a comparação de uma variável com uma constante. O bloco possuiuma entrada (superior) e duas saídas, umalateral e outra inferior.
Uma das vantagens da programaçãoatravés do fluxograma é a disponibilidadede uma biblioteca com controlescomplexos (controle de movimento,algoritmo PID, comunicação rápida dedados, etc.).Outras operações disponíveis incluemcontrole I/O sobre redes da planta, funçõesbooleanas, matemática de alto nível,manipulação de matrizes, funções string,movimento e cópia de dados. 
Os blocos de encaminhamento são decomparação e decisão. Uma decisãodepende de um Sim (Yes) ou Não (Not) auma condição: Chave A está fechada? Acomparação olha em dois valores paraverificar se são maiores que, menores queou iguais e retorna ao Sim ou Não. A lógicaIf-Then-Else podeser feita facilmente com um bloco dedecisão (If) com cada entrada indo paraum bloco de ação. Assim, se a chave Aestiver fechada, então ligar a bobina C e, além disso, ligar a lâmpada piloto e depois ligar os blocos de ação àpróxima ação.
Se o programador de fluxogramaconhece melhor o diagrama ladder, é útilfazer a seguinte analogia: bloco de decisãoage como contato e bloco de ação agecomo bobina. Se o contato está fechado (bloco de decisão), então ligar a bobina (bloco de ação).
6.2 - Sequential Function Chart (SFC)
Originado na França com o nome GRAphe Fonctionnel de Commande Etape/Transition (GRAFCET), foi internacionalizado pela norma IEC848 e rebatizado pela IEC61131-3 com o nome Diagrama de Função Seqüencial(Sequential Function Chart – SFC). Não éconsiderado uma linguagem, mas descrevegraficamente o comportamento seqüencialde um programa de controle. Estediagrama é uma estrutura que organiza autilização do programa de qualquer linguagem, dependendo do editorescolhido e por isso serve comoferramenta auxiliar para desenvolver aslinguagens textuais e gráficas.
O diagrama de função seqüencial éconstituído de:
1 - Passos,
2 - Elos dirigidos (links)
3 - Transições
O passo descreve um estadopermanente (às vezes, momentânea) deum processo seqüencial. Cada passorepresenta um estado particular dosistema. Um passo é representado por umretângulo com passos anteriores ligadospor uma linha formando um caminho. Oprimeiro passo tipicamente inicializa osistema.
O elo dirigido mostra a direção do fluxo dalógica.
A transição é usada para mostrar amudança condicional entre estadospermanentes. Uma transição é umacondição, que, quando verdadeira, causa adesativação do passo anterior e ativaçãodopasso seguinte. Uma linha cruzando alinha de ligação entre passos representauma transição. Há uma transição seguindocada passo.
Os passos podem ser associados a:Ações, Estados ou Comandos
O bloco de ação dentro de um passo e a transição podem ser programados em qualquer linguagem padrão, ou outras linguagens suportadas pelo editor. Nem todos os editores suportam as quatro linguagens IEC, mas eles podem ser conformes com uma ou mais. Condições ou comandos para a lógica são associados com transições (Fig. 3.16). Comandos ou ações são qualificados pelas letras símbolo:
S (stored – armazenado),
D (delayed – atrasado),
L (limited – limitado em tempo)
P (pulsed – pulsado, menor que limitado).
As letras podem ser combinadas de acordo com a figura 4.17. 
Comandos ou ações podem ser condicionais (letra C), (Fig. 4.18). 
Condições transitórias podem ser representadas por afirmações textuais, expressões booleanas ou símbolos gráficos (Fig. 4.19). 
Uma poderosa capacidade destas cartas de função é que elas podem representar caminhos lógicos paralelos, seleção de seqüência exclusiva (Fig. 4.20) ou seleção de seqüência inclusive (Fig.2.21). Na Fig. 4.20 a exclusividade é mostrada pela lógica booleana nas transições. Na Fig. 4.21 a simultaneidade é mostrada pelas linhas duplas, especialmente as mais baixas. Neste caso, a transição c não é habilitada até que os passos 09 e 10 sejam ativados ao mesmo tempo. Assim, e somente assim, a transição pode ser terminada.
7 - Diagrama de Blocos Funcionais
Os elementos da linguagemDiagrama de Bloco Funcional (FunctionalBlock Diagram, FBD) devem serinterligados por linhas de fluxo de sinalconforme a norma.Saídas dos blocos não devem serligadas juntas.

Outros materiais