• Nenhum resultado encontrado

Fundamentos da Linguagem de Programação

N/A
N/A
Protected

Academic year: 2021

Share "Fundamentos da Linguagem de Programação"

Copied!
44
0
0

Texto

(1)

41

Fundamentos da Linguagem de

Programação

4.1 Tipos de Dados

4.1.1 O Bit

O bit é a menor unidade de informação que um sistema pode identificar. Quando tratamos de sistemas elétricos ou eletrônicos, a informação de um bit é muito utilizada. A palavra bit é uma derivação do termo binário, ou seja, o que possui duas unidades, dois elementos, o bit em seu estado natural somente pode assumir duas possibilidades, “0” e “1”, ou seja, ligado ou desligado, com tensão ou sem tensão, e assim tudo que se assemelha com somente duas condições possíveis, por exemplo: podemos dizer que a lâmpada incandescente de nosso quarto se assemelha a um bit? Sim, se assumirmos que quando ela esteja desligada está em estado “0” e quando está ligada está no estado “1” estamos de certa forma representando somente duas informações, conseqüentemente podemos assimilar a um bit.

Em comandos elétricos, quando ligamos um botão a uma entrada de um CLP e ele quando é pressionado envia um sinal elétrico em forma de tensão colocamos o bit correspondente da entrada em nível “1”, e quando soltamos o botão e o sinal elétrico é interrompido, assim colocamos o bit correspondente da entrada em nível “0”.

(2)

42

Dentro da estrutura de software do CLP, o bit associado a uma entrada pode ser lido e seu status utilizado para as operações lógicas do programa. Quando o bit está associado a uma saída ele também pode ser lido, ativado (ligado) ou desativado (desligado) de acordo com os resultados da lógica descrita no programa do usuário.

Uma enorme vantagem na utilização de um CLP é que o usuário pode criar os bits de forma virtual, ou seja, não é necessário trabalhar somente com os bits associados às entradas e saídas. O usuário poderá criar milhares de bits virtuais no sistema como se estivesse utilizando milhares de relés auxiliares em seu projeto, assim o projetista pode desenvolver lógicas de controle complexas e com isso incrementar o seu processo de automação.

Mais adiante, quando abordarmos a linguagem de programação, voltaremos a comentar e exemplificar as funções de um bit.

4.1.2 O Byte

O termo byte é definido como um conjunto de oito bits. Assim ao invés de obtermos somente duas informações discretas se utilizarmos um conjunto de bits agrupados, podemos multiplicar as possibilidades da informação, assim os sistemas podem identificar situações diferentes por meio de sinais elétricos distintos. Acompanhe o exemplo abaixo para identificar como é possível ampliar a quantidade de informações em um sistema elétrico ou eletrônico com a quantidade de bits que utilizamos no circuito.

Se imaginarmos que a lâmpada incandescente de nosso quarto está desligada ou ligada podemos assimilar com somente duas possibilidades , ou seja , um Bit , agora imagine a situação , lâmpada desligada , lâmpada com luminosidade de 25% , lâmpada com luminosidade de 75% e lâmpada totalmente acessa , como um sistema elétrico pode identificar estas quatro combinações ? É simples, basta acrescentar mais um Bit ao sistema .

(3)

43

Figura 4.2

Agora, como representar isso em diagrama elétrico? Muito simples, vamos considerar que cada bit represente uma chave, e adotaremos que a chave estando aberta a condição é “0” e a chave estando fechada a condição é “1”, assim com as combinações das duas chaves podemos selecionar em qual condição a lâmpada deverá permanecer. Acompanhe os diagramas abaixo:

(4)

44

Figura 4.3

Podemos notar que, ao passo que aumentamos o número de bits no sistema, podemos aumentar significativamente a quantidade de informações “embutidas” nos sinais elétricos. Esta progressão pode ser representada de forma matemática de acordo com a expressão abaixo:

(5)

45

Nº de Combinações possíveis = 2

Nº de Bits

Equação 1

Assim chegamos à conclusão de que:

1 Bit = 21 = 2 combinações 2 Bits = 22 = 4 combinações 3 Bits = 23 = 8 combinações 4 Bits = 24 = 16 combinações 5 Bits = 25 = 32 combinações 6 Bits = 26 = 64 combinações 7 Bits = 27 = 128 combinações

8 Bits = 28 = 256 combinações – 1 byte

Portanto na definição de byte (8 Bits) podemos ter 256 combinações diferentes entre os bits, essas combinações estão entre 00000000 até 11111111, ou seja, de 0 a 256.

(6)

46

4.1.3 A Word

Como o byte é um conjunto de oito bits que juntos podem identificar até 256 combinações diferentes, a Word também se caracteriza por uma combinação de bits que juntos podem identificar cerca de 65 milhões de combinações diferentes. Para ser mais preciso, uma Word corresponde ao conjunto de 16 Bits agrupados, que, segundo a equação 1 vista anteriormente, uma Word corresponde a:

Nº de combinações possíveis = 2 Nº de Bits

Nº de combinações possíveis = 2

16

Nº de combinações = 65536

Assim uma Word nos dá um universo gigantesco de possibilidades de códigos diferentes, inclusive para cálculos matemáticos. Esse tipo de variável é muito utilizado em computadores e microprocessadores para processamento numérico e processamento digital, e também é utilizado diretamente nos processamentos de CLPs, que utilizam esses códigos para identificação dos estados dos módulos de entradas e saídas, CLPs de pequeno porte como os micros CLPs utilizam variáveis do tipo byte para controlar os módulos de entradas e saídas. Por essa razão é muito comum encontrarmos micro CLPs que possuem somente oito entradas e oito saídas, e CLPs maiores utilizam variáveis do tipo Word para controlar os módulos de entradas e saídas, portanto possuem módulos de dezesseis entradas e dezesseis saídas.

Figura 4.5

(7)

47

4.2 Endereçamento

No sistema de processamento de um CLP, cada variável seja do tipo bit, byte ou word, possui um local físico na memória do sistema. Essa posição física da memória é chamada de “endereço”, assim quando o programa de usuário que utiliza os valores descritos em uma variável procura o valor pelo endereço correspondente, o endereço também pode ser chamado de “registro” por alguns fabricantes.

Quando elaboramos um programa de usuário também devemos endereçar as variáveis que estamos manipulando, por exemplo, quando ligamos uma saída ou fazemos a leitura de uma entrada, devemos atribuir um bit físico a um endereço, para que o programa do sistema possa localizar o dado correspondente na memória do sistema.

(8)

48

Figura 4.6

4.3 Linguagem de Programação

Um programa é definido como um conjunto de regras lógicas que juntas executam uma determinada função em um CLP. A linguagem de programação mais utilizada é a linguagem LADDER. Como vista anteriormente, outras linguagens também são utilizadas com a linguagem “C”, “Basic” ou a linguagem “Assembly”, porém se analisarmos mais profundamente, cerca de 90% dos usuários utilizam a linguagem LADDER.

Essa linguagem é a mais utilizada em função de ser uma adaptação da linguagem de diagrama elétrico, usualmente utilizada por profissionais como eletricistas ou técnicos no chão de fabrica. Assim sua aceitação foi quase que instantânea no meio profissional, há quem diga que foi o principal fator que fez que essa tecnologia de automação via CLP fosse consolidada tão rapidamente. A linguagem LADDER tem grande ligação com a lógica Booleana e o uso de mnemônicos de programação auxilia em muito a programação do código do programa do usuário. Uma expressão mnemônica é um termo simples e fácil de assimilar, ela representa um símbolo gráfico em forma de texto, assim o programador pode optar entre desenvolver seu programa de forma gráfica ou em forma de texto. Por exemplo, “OUT” representa saída , “T” ou “TON” representa um temporizador, “B” ou “M” representa um bit ou relé auxiliar, “MI” ou “N” representa um endereço de memória de 16 bits, e assim por diante. A grande maioria dos programas compiladores de CLP possuem recursos para transladar a linguagem LADDER para a linguagem de instruções e vice-versa, fica a cargo do programador escolher qual forma de trabalho é mais simples ou fácil de se utilizar.

Pois bem, com fazer a ligação da lógica booleana com os diagramas elétricos convencionais? Muito simples, a lógica booleana consiste em expressões lógicas e simples que, se seguidas fielmente, nos dão três situações distintas, condição de entrada, objetivo e condição de saída, exemplo:

(9)

49

“Lucas vai ao cinema se João ou Maria forem com ele, e se seu pai emprestar o carro”

Figura 4.7

Nessa frase podemos identificar todas as situações implícitas em um sistema lógico, temos objetivo “Lucas ir ao cinema”, temos três condições de entrada “se João for com ele” ou “se Maria for com ele” e ainda “se seu pai emprestar o carro”, condição de saída “ir ao cinema”.

Note que a expressão utilizada como exemplo é puramente lógica, podemos identificar um estado de entrada, uma lógica “OR” e uma lógica “AND”, se todas essas condições forem satisfeitas, o objetivo é atingido, ir ao cinema.

Imagine esse exemplo transladado para circuito elétrico, será possível? Observe a figura 4.7.

Veja que se o projetista pensar de forma lógica, tudo pode ser elaborado, e o entendimento dos operadores lógicos booleanos pode nos dar o auxílio necessário para elaboração de qualquer circuito lógico, seja elétrico, eletrônico ou puramente lógico, como vimos no exemplo acima.

Existem muitos operadores lógicos booleanos, porém todos derivam de operadores básicos, AND, OR, NOT, a partir do entendimento desses três

(10)

50

operadores básicos, podemos desenvolver outros mais complexos. Nos tópicos 4.3.1 até 4.3.3 abordamos os operadores básicos.

4.3.1 Operador Lógico “AND ” ou “E“

O operador booleano AND define uma situação em que temos no mínimo duas situações de entrada para uma situação de saída. Para que a situação de saída seja verdadeira, é necessário que as duas situações de entrada sejam verdadeiras, acompanhe o exemplo. Para que a lâmpada acenda (situação de saída) é necessário que as duas chaves de entrada S1 e S2 (situações de entrada) estejam ligadas.

Figura 4.8

No exemplo acima, podemos visualizar como se define a expressão booleana AND, juntamente com seu símbolo gráfico e sua representação em linguagem elétrica de contatos. A configuração AND ou E pode suportar inúmeros dispositivos de entrada, ou seja, pode suportar quantos contatos em série forem necessários para o desenvolvimento da aplicação.

4.3.2 Operador Lógico “OR” ou “OU”

O operador booleano OR é definido como a combinação de no mínimo duas situações de entrada para uma situação de saída. Para que a situação de saída seja verdadeira, é necessário que apenas uma situação das duas de entrada seja verdadeira, acompanhe o exemplo. Para que a lâmpada acenda (situação de saída) é necessário que a chave S1 ou a chave S2 (situações de entrada) estejam ligadas.

(11)

51

Figura 4.9

A expressão OR é definida eletricamente como contatos em paralelo. Podem existir vários contatos ou dispositivos de entradas em uma única porta OU.

4.3.3 Operador Lógico “NOT” ou “NÃO“

O operador NOT se comporta como um dispositivo inversor de sinal, ou seja, se aplicamos um sinal com nível lógico “1” em sua entrada, obtemos na saída em nível lógico “0”, se aplicarmos nível lógico “0” em sua entrada obtemos em sua saída, nível lógico “1”, acompanhe o diagrama abaixo:

(12)

52

Figura 4.10

Esse operador é bastante utilizado em sistemas elétricos, pois permite inverter eletricamente o sinal proveniente de uma chave ou dispositivo. O único inconveniente é a utilização de dispositivos auxiliares como um relé, porém isso não é problema quando falamos de programação de um CLP. Existem milhares de relés auxiliares virtuais dentro da memória do sistema disponíveis para esse tipo de aplicação.

4.4 Programas LADDER

Os diagramas elétricos convencionais representam como a corrente elétrica deve fluir no sistema. Esses diagramas representam de forma gráfica todos os elementos e conexões dos circuitos, os circuitos convencionais consistem em duas linhas horizontais que simbolizam o barramento de alimentação, esse barramento é responsável pelo fornecimento de tensão elétrica aos dispositivos. O nível de tensão elétrica que circula nesses barramentos está na ordem de 24Vcc/Vca a 220Vca, que são os padrões utilizados para os dispositivos e acionamentos. Logo abaixo entre essas linhas horizontais estão locados os dispositivos de controle e os dispositivos controlados, também estão interconectados por meio de linhas, porém essas linhas estão dispostas na vertical, cada linha vertical deve possuir no mínimo um dispositivo de controle e um dispositivo controlado, a combinação de um ou mais dispositivos de controle gera as condições de funcionamento do dispositivo controlado. São exemplos de dispositivos de controle: botões,

(13)

53

chaves, contatos etc. E dispositivos controlados, bobinas, lâmpadas, alarmes etc.

Figura 4.11

O circuito é funcional quando a corrente elétrica proveniente do barramento de alimentação L1 chega até o pólo da bobina do contactor K1, isso acontece quando:

a) Alimentamos o barramento L1 e L2 com a tensão de comando do sistema.

b) Após energizado, a tensão elétrica flui por meio do contato fechado (NF) do botão S1, deixando energizado um dos pólos do botão S2 e do contato auxiliar de K1.

c) Quando pressionamos o botão de controle S2, a tensão elétrica flui pelo contato energizando um dos pólos da bobina do contactor K1.

d) A bobina do contactor K1, quando energizada, faz que o dispositivo funcione, proporcionando assim a ligação elétrica entre os contatos de potência do dispositivo, e simultaneamente

(14)

54

acionando os contatos auxiliares, os contatos NF se abrem e os contatos NA se fecham.

e) O contato NA do contactor se fecha, criando assim um novo caminho para a corrente elétrica chegar à bobina do contactor. f) Agora, se soltarmos o botão de controle S2, a bobina continua

sendo energizada, pois a corrente elétrica flui pelo contato auxiliar de K1, assim o contactor continua ligado até ser cessado o fornecimento de energia elétrica para o dispositivo.

g) Para cessar o fornecimento elétrico ao dispositivo, basta pressionar o botão de controle S1, assim o contato NF se abre e a corrente elétrica é interrompida, fazendo que a bobina do dispositivo deixe de funcionar, nesta ocasião os contatos elétricos voltam à posição original.

h) Para iniciar o sistema novamente, basta pressionar o botão S2 e o sistema volta a ser acionado.

O circuito exemplificado acima é um dos circuitos mais básicos encontrados em ambiente industrial, é utilizado para acionamento de motores de forma direta, ou seja, o circuito de potência para acionamento do motor elétrico é comandado pelos contatos de potência do contactor K1. Esse circuito é chamado de “Partida Direta” ou “Circuito Selo”.

A programação em LADDER é muito semelhante ao diagrama elétrico visto acima, com pequenas diferenças que não influenciam no entendimento, o profissional que interpreta os diagramas convencionais não terá dificuldade de assimilar os conceitos da linguagem em LADDER. Na linguagem tradicional a simbologia elétrica representa de forma real como os componentes estão interligados, já na linguagem em LADDER os símbolos representam conceitos lógicos e o programa existe apenas nas memórias do CLP.

Em um diagrama LADDER representamos os barramentos de alimentação na forma vertical, diferente da forma convencional, na horizontal, assim conseqüentemente as linhas de instrução estarão representadas horizontalmente entre as linhas do barramento de alimentação, na prática não existe corrente elétrica circulando nesses barramentos, é somente uma forma lógica e virtual para representarmos como o sistema deverá funcionar. Cada linha de instrução deverá ter no mínimo um elemento de saída, caso contrário o sistema interpretará como um curto-circuito e o programa compilador exibirá uma mensagem de erro ao usuário, na prática as linhas de controle contêm uma ou mais condições de entradas e uma ou várias condições de saída. As condições de saída estão posicionadas ao lado direito do barramento de alimentação e são acionadas de acordo com o resultado lógico das instruções de controle da linha, que estão posicionadas no lado esquerdo da linha. Acompanhe o exemplo abaixo de um diagrama em LADDER, vamos utilizar o

(15)

55

exemplo anterior da figura 4.11 para visualizarmos o diagrama em linguagem LADDER.

Figura 4.12

O programa principal do CLP, quando em operação, realiza o SCAN para verificação das linhas de controle, o ciclo de SCAN verifica os dados da tabela de imagem das entradas e compara com as instruções de controle da linha, se forem verdadeiras o dispositivo controlado é acionado, no exemplo uma saída, o ciclo de SCAN atualiza o dado na tabela de imagem das saídas, o ciclo de SCAN verifica linha a linha em frações de segundo e de controle e de acordo com os resultados lógicos obtidos atualiza os dados da tabela de imagem de saídas constantemente.

Vale lembrar que o ciclo de SCAN realiza essa varredura de forma contínua e cadenciada, seguindo os barramentos de controle de cima para baixo e da direita para a esquerda, por exemplo, se o ciclo de SCAN verifica que um estado de um dispositivo de controle é falso, o programa de varredura não continua a verificação na linha e passa a analisar a linha logo abaixo, se o dispositivo de controle estiver com o estado verdadeiro, continua a varredura da linha até verificar o estado do dispositivo controlado, e assim sucessivamente.

Para todos os dispositivos utilizados nos diagramas elétricos convencionais, como contatos, temporizadores, bobinas, contadores etc. Existem símbolos semelhantes na linguagem LADDER, esses símbolos são normalizados internacionalmente, porém os fabricantes podem criar blocos de controles avançados e utilizar símbolos próprios. Embora esses blocos podem ter funções semelhantes em CLPs de fabricantes diferentes, não necessariamente possuem a mesma simbologia, porém os dispositivos mais comuns como contatos abertos, contatos fechados, bobinas seguem um mesmo padrão.

(16)

56

4.4.1 Operador Normalmente Aberto

Esse operador é um operador genérico, pode representar um estado de uma entrada, ou estados de vários dispositivos, como botões, temporizadores, contadores, comparadores e relés auxiliares, possui uma condição de bit, ou seja, possui somente dois estados: verdadeiro (ligado), ou falso (desligado). Essa instrução requisita um local na memória do CLP, e sempre que estiver no estado verdadeiro (ligado) possui continuidade lógica, se for falsa a continuidade lógica é interrompida.

Figura 4.13

Por exemplo: se conectarmos em uma das entradas do CLP um botão normalmente aberto, no programa do usuário teremos que atribuir um bit correspondente à entrada, e sempre que utilizarmos o sinal desse botão devemos selecionar uma instrução de bit normalmente aberto e atribuir junto com a instrução o endereço correspondente. Vamos imaginar que um botão (S1) do tipo normalmente aberto esteja conectado à entrada 1 de um CLP (I / 1) e este botão quando pressionado acione uma lâmpada conectada à saída 2 do mesmo CLP (O / 2).

(17)

57

Seguindo os princípios de programação LADDER, quando pressionarmos o botão S1, o estado verdadeiro correspondente à entrada 1 é gravado na tabela de imagem de entradas, assim quando o SCAN do CLP checar a instrução de bit correspondente à entrada 1, atribuída ao endereço I / 1, a linha se torna verdadeira, assim o programa de varredura do CLP atribui um sinal verdadeiro à saída correspondente atribuída ao endereço O / 2 na tabela de imagem de saídas, portanto a lâmpada é acesa.

Figura 4.15

4.4.2 Instrução Normalmente Fechado

Essa instrução também é considerada um operador genérico, pode representar um estado de uma entrada de um ou vários dispositivos. Como a instrução normalmente aberto possui característica de bit, essa instrução requisita um local na memória do CLP, e sempre que estiver no estado verdadeiro (ligado) não possui continuidade lógica, se possuir estado falso (desligado) a continuidade lógica é estabelecida. Na prática possui a função lógica inversa à instrução de bit normalmente aberto.

Figura 4.16

Utilizando o mesmo exemplo da figura 4.14, se ao invés de atribuirmos a instrução normalmente aberta ao sinal do botão S1 atribuirmos a instrução normalmente fechado, a lâmpada permanecerá acesa enquanto o botão S1 não for pressionado, quando ele for pressionado a lâmpada é apagada, seguindo a definição do operador. Quando o estado da entrada for falso, o operador mantém a continuidade lógica, assim a linha é verdadeira e a

(18)

58

lâmpada é acesa, quando pressionamos o botão, a instrução se torna verdadeira e a condutividade lógica na linha é interrompida, apagando a lâmpada.

Figura 4.17

4.4.3 Instrução Energizar Bit

A instrução de energizar bit é aplicada para ligar ou desligar saídas digitais, relés auxiliares virtuais, energizar contadores e temporizadores etc. Essa instrução é referenciada como atribuição aos dispositivos controlados ditos anteriormente, e equivale a bobinas de contactores e relés auxiliares nos diagramas elétricos convencionais.

Quando as condições lógicas dos dispositivos que comandam essa instrução são verdadeiras, o bit correspondente é energizado, se essa instrução estiver associada a uma saída externa, ela é acionada, por outro lado se estiver associada a um registrador de bit (relé auxiliar virtual) ele é setado internamente nas memórias do CLP.

Figura 4.18

4.4.4 Instrução Energizar Bit com Retenção

A instrução energizar bit com retenção é uma derivação da instrução convencional vista no item anterior 4.4.3. Enquanto a instrução anterior é mantida em estado verdadeiro somente quando as condições da linha são verdadeiras, a instrução com retenção funciona da seguinte maneira: após

(19)

59

ocorrida a condição de energização, o bit se mantém ligado até que receba um comando para se desligar, esse comando deve ser dado em uma outra linha de controle e pode ser utilizado quantas vezes forem necessárias. E obrigatoriamente deve possuir uma condição de set e uma condição de reset do bit selecionado.

Esse tipo de instrução pode ser utilizado para circuitos que exijam contatos de selo, como os vistos nas figuras 4.14 e 4.15, substituindo a utilização de contatos auxiliares na lógica de controle. Vejamos os exemplos da figura 4.14 e 4.155 utilizando a função de energizar bit com retenção.

Figura 4.19

Nesse caso, para se ligar a saída O/1 devemos tornar verdadeira a condição de controle por meio de I/1, assim o bit correspondente à saída O/1 é energizado (setado), após essa ocorrência o bit de controle I/1 pode se tornar falso que as condições referentes ao bit de saída O/1 continuam inalteradas. Para se desligar o bit correspondente à saída O/1 devemos tornar verdadeira a condição referente ao bit I/2, com esta condição verdadeira por pelo menos um ciclo de scan o bit O/1 e desenergizado (resetado).

Essa função é descrita como sendo resultado de operadores do tipo Flip-Flop comumente encontrados em circuitos eletrônicos.

Sistema Unitronics Sistema Rockwell

(20)

60

Na figura 4.20, visualizamos os operadores em programas comerciais, note que não existem diferenças significativas na simbologia utilizada.

4.4.5 Combinações entre Operadores

Após definirmos os operadores básicos para linguagem de programação LADDER, podemos combinar os operadores de várias formas e com isso conseguir a função desejada para operação lógica. Os princípios da lógica booleana podem ser representados nestas combinações.

Figura 4.21

As instruções de programação em série utilizam a lógica AND para conceber um estado lógico para saída. Imagine uma aplicação em que é necessário que o operador de uma prensa feche a porta de proteção do equipamento e pressione dois botões simultaneamente para que um motor possa ser acionado, o circuito demonstra que para que a condição do bit de saída seja verdadeira, é necessário que todos os operadores de controle da linha, Porta de Acesso, Botão 1 e Botão 2, sejam verdadeiros, assim existe condutividade lógica na linha e o bit de saída é acionado, liberando assim a ligação do motor de controle da prensa.

(21)

61

Figura 4.22

As instruções de programação em paralelo utilizam a lógica OR para conceber um estado lógico para saída. Imagine a aplicação em que é necessário acionar uma bomba d’água em dois locais diferentes, com o auxílio dessa lógica o operador pode realizar a tarefa de forma simples e prática acionando os botões 1 e 2 instalados em locais distintos.

Com essas combinações básicas, podemos conceber quase todos os tipos de circuitos de comandos elétricos utilizados nas indústrias, desde os mais simples como partir um motor de forma direta, até os mais complexos como controlar sistemas de nível, temperatura, e a partida de motores de grande potência com sistemas de partida especial.

4.5 Blocos de Funções

Em função da dificuldade de representar os blocos de função mais avançada de forma precisa devido à grande quantidade de fabricantes, adotaremos daqui por diante um sistema simples e de fácil acesso chamado de “Vision”, fabricado pela empresa Unitronics®. Essa linha de produtos é bastante útil didaticamente, pois possui CLPs de baixo custo com integração a uma IHM, ou seja, temos dois produtos em um, um CLP e uma IHM, seu programa editor de código fonte é bastante intuitivo e pode ser encontrado de forma gratuita na Internet, ou em outra possibilidade; na aquisição do produto está incluída toda a documentação de software, além dos cabos de comunicação entre o computador e o dispositivo, o que normalmente não é disponibilizado por outros fabricantes de grande porte para sistemas de automação.

O software de edição do programa de usuário criado pela Unitronics® é o “Visilogic™”, que está disponível no site www.unitronics.com, esse software é parte integrante dos controladores linha Vision V120 , V 230 , V260 , V280 e V290.

Um outro software utilizado para exemplificar a linguagem utilizada é o produzido pela empresa Rockwell Automation®, o software chamado de RSLogix 500® é utilizado para edição e criação dos programas de usurário dos Controladores da família SLC500 e Micrologix®, produzidos pela empresa americana Allen Bradley®, esta linha de dispositivos abrange desde os micros CLPs até os CLPs modulares de grande porte.

(22)

62

Vale lembrar que a sigla CLP é marca registrada do fabricante Allen Bradley, que foi uma das empresas pioneiras na fabricação desses dispositivos.

Para maiores informações acesse www.software.rockwell.com

4.5.1 Instruções de Temporização

Em sistemas industriais os eletricistas contam com um dispositivo que auxilia nos circuitos que necessitam de intervalos de tempo pré-programados, esses dispositivos são utilizados para retardar a entrada de algum componente elétrico ou lógica de controle , são definidos como relés de tempo ou relés temporizadores. Esse dispositivo têm seu funcionamento bastante simplificado, ou seja, após o dispositivo ser energizado, passa a contar um intervalo de tempo e, após transcorrido esse tempo, aciona um relé auxiliar, o intervalo de tempo pode ser ajustado em um botão frontal no dispositivo. Os mais comuns variam de 1 a 30 segundos, mas também podem ser encontrados com intervalos de tempo que variam de alguns minutos até algumas horas.

Existem dois tipos de lógica de funcionamento para estes dispositivos, a primeira e mais comum é chamada de “Lógica com Retardo na Energização”, que significa que os contatos do relé auxiliar do dispositivo serão acionados quando o dispositivo é energizado e transcorrido o tempo pré-selecionado. Para voltar à condição original com o relé desligado, basta interromper o fornecimento de energia para o dispositivo. A segunda opção é chamada de “Lógica com Retardo na Desenergização”, que tem seu funcionamento inverso ao primeiro. Quando o dispositivo é energizado, o relé auxiliar é imediatamente acionado, e a contagem do tempo pré-selecionado é iniciada a partir da interrupção no fornecimento de energia para o dispositivo, e só após o término do tempo pré-programado o relé auxiliar do dispositivo é desligado.

Acompanhe o gráfico de tempos da figura 4.23 para identificar o funcionamento dos dois modelos.

(23)

63

Figura 4.23

A função de temporização também está presente nos programas dos CLPs e podem ser utilizados centenas de temporizadores diferentes no programa do usuário. Esses temporizadores utilizam bases de tempo mais precisas do que os relés temporizadores convencionais, em micros e pequenos CLPs está na ordem de décimos (0,01) de segundo, já nos CLPs de médio e grande porte apresentam temporizadores com resolução de centésimos (0,001) de segundo.

O símbolo utilizado para representar o bloco de temporizador em um programa de CLP pode variar de fabricante para fabricante, porém todos têm as mesmas características de acionamento, são elas:

 Apresentam um bit para acionamento do bloco de função.

 Apresentam um bit que é acionado no término de contagem de tempo.

 Apresentam uma variável de oito ou dezesseis bits para escrita e/ou leitura do valor de temporização.

 Apresentam uma variável de oito ou dezesseis bits para escrita e/ou leitura de valor de pré-set de temporização.

Como definimos, os símbolos gráficos para representar os blocos de função podem variar de acordo com fabricante. Assim por meio de um exemplo

(24)

64

prático, podemos representar essas diferenças e concluir que não é muito complicado compreender que os símbolos podem ser diferentes, mas os princípios básicos são os mesmos.

Exemplo: imagine um sistema no qual exista um botão ligado a uma entrada digital de um CLP e que quando é acionado após 5 segundos uma saída é energizada fazendo que uma lâmpada acenda, acompanhe:

Sistema Unitronics™

Figura 4.24

Nesse exemplo o botão 1 está associado a um marcador de bit “MB 0”, que quando em estado verdadeiro aciona o Bit de controle do temporizador “TD 0”, que, por sua vez, está com um tempo de pré-set ajustado para 5 segundos. Assim, quando o temporizador chegar ao final da contagem (5 seg) irá acionar o bit correspondente a seu estado, estando setado o bit de saída do temporizador “TD 0” a condição da linha se torna verdadeira e o marcador de bit MB 1 que está associado à saída da lâmpada se torna verdadeiro, acendendo a lâmpada.

Note que a resolução do temporizador TD 0 pode chegar a intervalos de 0,01 seg, esta é a característica do sistema Unitronics™.

(25)

65

Sistema Allen Bradley / Rockwell

Figura 4.25

Nesse exemplo 2 o Botão_1 está associado a um bit “B3/0”, que, quando em estado verdadeiro, aciona o bloco de função “TON” (Temporizador com Retardo na Energização). Esse bloco de função está configurado com o endereço “T4:0”, que, por sua vez, está com um tempo de pré-set ajustado para 5 segundos. Assim quando o temporizador chegar ao final da contagem (5 seg) irá acionar o bit “DN” correspondente ao seu estado de contagem, estando setado o bit “DN” do temporizador “T4:0” (endereçado como T4:0/DN) a condição da linha 0001 se torna verdadeira e a saída endereçada como “O:2/0” é acionada, acendendo a lâmpada.

A resolução do temporizador identificado como “T4:0” pode chegar até a casa dos 0,001 seg, dependendo do modelo de CPU utilizada, essa é a característica dos sistemas Allen Bradley™.

Nos dois exemplos a lógica de controle é a mesma, porém podemos notar as diferenças entre os símbolos utilizados, isso significa que o entendimento das funções e blocos básicos é fator primordial para que o usuário possa desenvolver programas, para qualquer fabricante de equipamento, bastando compreender somente a ferramenta de programação oferecida pelos fabricantes.

4.5.2 Instruções de Contagem

A utilização de instrumentos de contagem mecânica ou eletrônica em máquinas e equipamentos também pode ser substituída por controles à base

(26)

66

de CLPs, como os temporizadores, os CLPs possuem inúmeras funções para substituir esses dispositivos, e com várias vantagens, como, por exemplo, velocidade de contagem elevada, possibilidade de se incrementar ou decrementar o mesmo contador, gravação de valores acumulados em memória não volátil, possibilidade de utilização dos valores acumulados em operações aritméticas e operações com comparadores etc. Essas funcionalidades são muito difíceis de se conseguir em um contador eletromecânico convencional. Como visto anteriormente, os símbolos que representam esse bloco de função pode variar de fabricante para fabricante, mas, de modo geral, todos possuem as seguintes interfaces de controle:

 Apresentam um bit para acionamento do bloco de função.

 Apresentam um bit que é acionado no término de contagem.

 Apresentam uma variável de oito ou dezesseis bits para escrita e/ou leitura do valor de contagem.

 Apresentam uma variável de oito ou dezesseis bits para escrita e/ou leitura de valor de pré-set de contagem.

O funcionamento desse bloco de função é bastante simples, basta que o bit de acionamento do bloco seja verdadeiro durante um intervalo de tempo (no mínimo 1 ciclo de Scan) para que seja incrementado ou decrementado o valor do acumulador.

Abaixo podemos visualizar dois exemplos de sistemas utilizando o bloco de função de contagem.

Exemplo: imagine a automação de um processo que esteja integrado a uma esteira transportadora de caixas, que faz a ligação de um setor de produção ao setor de expedição e estoque de uma certa empresa. Quando as caixas transportadas pela esteira passarem para área de expedição e estoque, um sensor de proximidade, que está posicionado de forma estratégica, envia um pulso a uma entrada de um CLP a cada caixa movimentada em sua face sensora. O valor da quantidade de caixas que passaram pela esteira é totalizado em um contador virtual dentro de um programa de um CLP, e o seu valor disponibilizado em uma tela de IHM, para que o supervisor do equipamento possa contabilizar o total de caixas produzidas no dia e enviadas ao setor de expedição e estoque da empresa.

(27)

67

Figura 4.26

No exemplo 3 o sinal proveniente do sensor de proximidade está associado a um marcador de bit “MB 2”, que, quando em estado verdadeiro, durante no mínimo um ciclo de Scan, incrementa o valor no contador “C 0”, assim quando as caixas forem passando pela esteira e o sensor de proximidade enviar pulsos a cada caixa, teremos o valor da totalização registrado no contador “C 0”, e seu valor pode ser lido a partir de uma IHM.

Sistema Allen Bradley / Rockwell

Figura 4.27

No exemplo 4 o sinal proveniente do sensor de proximidade está associado a um bit “B3/2”, que, quando em estado verdadeiro, durante no mínimo um ciclo de scan, aciona o bloco de função “CTU” (Contador Crescente) que totaliza a quantidade de pulsos recebidos no registro “Accum” (Acumulador), e seu valor pode ser lido a partir de uma IHM.

Note que o valor de pré-set está zerado, isso significa que não utilizamos a função de contagem pré-programada. Se for necessário que a um certo valor

(28)

68

do acumulador um bit para alarme ou sinalização seja ligado, basta adicionarmos no pré-set o valor de contagem desejado. Assim, quando o valor for atingido, o bit de estado (DN) irá se tornar verdadeiro, assim poderíamos utilizar em outra posições do programa para acionamento de sinalização ou alarme.

Os blocos de contadores vistos acima são do tipo que apresentam contagem na forma crescente, ou seja, enquanto as condições da linha de controle permanecerem verdadeiras, o valor é incrementado no registro ACC (acumulador) do bloco de função, porém de forma idêntica temos os blocos de contagem de forma decrescente, ou seja, com as mesmas características dos blocos vistos acima, mas com a lógica de contagem decrescente. As ligações e os métodos de controle são os mesmos, apresentando diferenças somente na simbologia, acompanhe:

Sistema Unitronics™ Sistema Allen Bradley / Rockwell

Figura 4.28

4.5.3 Instruções de Comparação

Nos programas gerados com instruções de temporização e contagem, é comum a manipulação numérica das variáveis de tempo e contagem, assim os CLPs possuem recursos para que o usuário possa trabalhar e obter informações dessas variáveis de forma fácil e lógica. A utilização de comparadores numéricos facilita e auxilia na obtenção de circuitos de controles mais avançados. Esses comparadores, na maioria das aplicações, são capazes de manipular variáveis de 16 bits (65536 possibilidades), então podemos manipular grandes valores numéricos sem nos preocupar com o estouro numérico das variáveis no programa.

(29)

69

Os blocos de comparadores podem ser classificados em sete blocos distintos, são eles:

 Comparador de Igualdade A = B

 Comparador de Não Igual A < > B

 Comparador de Menor A < B

 Comparador de Maior A > B

 Comparador de Menor Igual A < = B

 Comparador de Maior Igual A > = B

 Comparador de Range B < A > C

Os blocos comparadores possuem entradas para no mínimo duas variáveis que serão analisadas. Se o valor numérico das variáveis satisfizer as condições do bloco, a condutividade lógica da linha é garantida. Se a condição não for satisfeita, a condutividade lógica é interrompida, acompanhe:

Figura 4.29

Quando a condição estabelecida pelo bit I/1 for verdadeira, o bloco comparador de igualdade passa a avaliar as condições numéricas dos registros A e B. Se os números contidos em A e B forem iguais, o bloco é verdadeiro e a condutividade lógica é estabelecida, fazendo que o bit associado à saída O/1 seja energizado. Se os números contitos nos registros A e B não forem iguais, a condutividade lógica é interrompida e assim o bit associado à saída O/1 é desenergizado.

As variáveis utilizadas para preencher as entradas de A e B podem ser quaisquer valores inteiros que estejam disponíveis nos endereços de memória do sistema, isto é, podem ser valores de temporizadores, contadores, e resultados de operações aritméticas ou valores disponíveis dos módulos das entradas ou saídas analógicas (se o sistema possuir), dentre esses valores podemos destacar os registros do acumulador, valores de pré-set, valores correntes do contador e temporizador etc.

Alguns fabricantes permitem valores negativos e positivos de 16 ou 32 bits, outros permitem só valores positivos de 16 bits, CLPs de médio e grande

(30)

70

porte podem manipular além de números inteiros, números com ponto flutuante de 16 ou 32 bits de resolução. Antes de utilizar esses blocos de função, verifique junto à descrição da função quais os limites de valores estabelecidos pelo fabricante.

Acompanhe nas figuras 4.30 e 4.31 exemplos dos blocos de funções.

Sistema Unitronics™

Figura 4.30

Na figura acima podemos identificar os sete blocos utilizados para instruções de comparação, igualdade (equal), diferente (not equal), menor (less than), menor igual (less equal), maior (greater than), maior igual (greater equal), range (in range), respectivamente.

(31)

71

Figura 4.31

Os comparadores podem ser utilizados para inúmeras aplicações de controle, como o controle de temperatura de aquecimento de um forno, por exemplo. Imagine uma automação em que devemos controlar a temperatura de aquecimento de um conjunto de resistências elétricas de um forno que deve permanecer a uma temperatura de 150 ºC, para isso o projetista dimensionou a utilização de um Micro CLP e uma IHM, no programa criado pelo projetista, ele utilizou uma chave seletora ligada a uma das entradas digitais, para que o operador possa ligar ou desligar o sistema de aquecimento, utilizou duas lâmpadas ligadas às saídas digitais, uma para indicação de que o sistema está ligado e outra para informar que as resistências estão energizadas. O sensor de temperatura foi instalado em uma das entradas analógicas disponíveis no dispositivo, na IHM o projetista colocou a informação do valor de temperatura real instantânea do sistema e também colocou a informação de temperatura de Set Point do forno (150 ºC).

Nos diagramas abaixo, podemos acompanhar a evolução do programa de usuário desenvolvido para aplicação. O programa-fonte foi desenvolvido em dois programas diferentes, para que o leitor possa ter uma noção das

(32)

72

pequenas diferenças envolvidas com os programas de edição fornecidos por diferentes fabricantes.

Sistema Unitronics™

(33)

73

O funcionamento do sistema é bastante simples, a chave seletora para ligar ou desligar o sistema de aquecimento foi atribuída ao bit “MB 0” , as saídas do sistema (a) resistência, foi atribuída ao bit “MB 1”, (b) Lâmpada 1 - Resistências Energizadas - foi atribuída ao bit “MB 2”, (c) Lâmpada 2 - Sistema de Aquecimento Ligado, foi atribuída ao bit “MB 3”, o sinal analógico proveniente do sensor de temperatura no interior do forno foi atribuído à Memória de Inteiro “MI 0” e o valor do Set Point foi atribuído ao endereço de memória de inteiro “MI 1”.

Para que o sistema funcione, o bit de controle “MB 1” deve ser verdadeiro. Nessa condição o operador ligou a chave seletora, assim a linha possui condutividade lógica até o ponto onde está posicionado o bloco comparador “menor igual”, esse bloco compara os valores de temperatura real instantânea do sistema e o valor de Set Point inserido pelo usuário. Se o valor de “MI 0” (Temp Real) for menor que o valor de “MI 1” (Set Point) isso indica que a temperatura do forno está menor que o valor estabelecido pelo usuário, assim o bloco permite a condutividade lógica, se essa condição prevalecer, o bit associado“MB 1” torna-se verdadeiro, acionando assim o conjunto de resistências, provocando o aquecimento do forno. As resistências estando ligadas, a temperatura se eleva, então o valor de “MI 0” torna-se igual ou maior que o valor de “MI 1” indicando que a temperatura atingiu o valor desejado, se essa condição ocorrer, o bloco interrompe a condutividade lógica e o bit “MB 1” é desligado, desenergizando assim o conjunto de resistências. Assim esse ciclo se repete infinitamente enquanto o bit de controle “MB 1” estiver ligado.

Note que lâmpada de indicação de sistema ligado está inserida em uma linha única, controlada pelo bit “MB 0”. Quando esse bit de controle for verdadeiro, a linha toda se torna verdadeira acionando assim o bit “MB 3”, acendendo a lâmpada e indicando que o sistema está ligado. Agora a indicação de resistência energizada está inserida juntamente com a linha de controle das resistências, essa ligação está representada por meio de uma ligação em paralelo (Lógica OR) com o bit “MB 1” que controla as resistências, portanto, quando as resistências estiverem ligadas, a lâmpada associada ao bit “MB 2” também estará ligada. A IHM (interface) está representando em forma gráfica os valores descritos nas memórias de inteiros (“MI 0” e “MI 1”), assim o operador pode visualizar os valores reais e valores de controle associados ao sistema.

(34)

74

Figura 4.33

Verifique que na linguajem do fabricante Rockwell existem diferenças mínimas entre os gráficos, as diferenças se referem ao endereçamento dos bits de entradas e saídas. Embora possuam codificações diferentes, na prática executam as mesmas funções.

4.5.4 Instruções Aritméticas

Como o princípio de operação dos CLPs baseia-se em grande parte em operações aritméticas, é claro que essas opções estão disponíveis para que o usuário possa utilizá-las em seus programas, ou seja, o programador possui à sua disposição as operações aritméticas básicas para execução de cálculos matemáticos em seu programa. Em micros e pequenos CLPs podemos encontrar as operações de adição, subtração, multiplicação e divisão, enquanto nos CLPs de médio e grande porte encontramos além das operações básicas, operações com operadores para extração de raiz quadrada, seno, co-seno , tangente, exponencial, dentre outras.

Com esses operadores o programador pode executar a maioria das operações necessárias a um projeto de automação, como por exemplo o cálculo de áreas e volumes, totalização de vazão, conversão entre unidades e demais coisas do gênero.

É interessante que o usuário verifique as limitações do CLP a ser utilizado, pois alguns são limitados em função da CPU, ou seja, o usuário

(35)

75

deverá verificar se a CPU pode realizar cálculos em oito, dezesseis ou trinta e dois bits, e ainda se a operações podem ser realizadas com ponto flutuante ou números negativos. Se isso for uma limitação, o programador deverá tomar certas precauções com as operações, porém nada de tão sério, somente alguns cuidados para que o resultado das operações não ultrapasse os limites numéricos da CPU.

Quando nos referimos a essas limitações, estamos, por exemplo, dizendo que se uma CPU trabalha com registradores de oito bits (256 combinações), o usuário não poderá ter como resultado de uma adição valores maiores que 256. Se isso acontecer temos um estouro na contagem (overflow), em alguns CLPs esse estouro pode causar falha e parar o ciclo de scan do dispositivo, mas fique tranqüilo, a maioria dos CLPs do mercado trabalham na faixa de dezesseis bits ou mais de resolução, assim os limites passam a valores acima de sessenta e cinco milhões de combinações, que é o suficiente para 99% dos casos.

Os símbolos gráficos desses blocos de funções também são bastante parecidos, com diferenças mínimas. Abaixo temos exemplos desses blocos de função.

(36)

76

Sistema Unitronics™

Figura 4.34

Podemos visualizar na figura 4.34 os símbolos gráficos que representam as operações aritméticas básicas disponíveis para que o programador possa criar funções ou lógicas de controle de acordo com a necessidade do projeto. Os blocos de função descritos acima representam: adição (ADD); subtração (SUB); multiplicação (MUL); divisão (DIV); raiz quadrada (SQRT); potenciação (Power); e por fim aos blocos de função trigonométricos: seno (SIN); co-seno (COS) e tangente (TAN).

Note que os operadores dos blocos básicos são do tipo “MI”, ou seja, são memórias de números inteiros, então os resultados obtidos são sempre inteiros. Se em alguma operação o valor de resposta apresentar ponto flutuante, ele é suprimido no resultado, porém os operadores trigonométricos apresentam operadores do tipo “MF”, ou seja, memória de Floats (números com ponto flutuante), assim o resultado dos cálculos obtidos é representado de

(37)

77

forma exata com todas os valores obtidos na operação. Se houver necessidade de obter os valores exatos nas operações básicas, o usuário tem à disposição outros blocos de função específicos para manipular os resultados completos das operações.

* Atenção: essas particularidades se referem ao sistema Unitronics. Caso o usuário esteja utilizando um dispositivo de um fabricante diferente, deve

verificar nas instruções do bloco de função.

Sistema Allen Bradley / Rockwell

Figura 4.35

Os blocos da figura 4.35 são representações do programa do fabricante Rockwell® Allen Bradley®, e se diferenciam em muito pouco do sistema visto anteriormente na figura 4.34, com as diferenças basicamente no endereçamento das variáveis, porém a metodologia de utilização é a mesma.

Agora, onde podemos, em uma aplicação industrial, aplicar a utilização de operações matemáticas? Muito simples, utilizando como base o exemplo 5 onde criamos um controle de temperatura para um forno industrial, descrevemos um programa para ligar e desligar um conjunto de resistências baseadas na temperatura de Set Point informada pelo usuário. Agora, com base no conhecimento das instruções aritméticas, podemos criar facilmente

(38)

78

um circuito de controle que utilize a função de histerese, que é um recurso muito útil para esse tipo de controle: ela é que define quando o sistema deverá ser ligado novamente após um desligamento provocado pela situação de temperatura ideal no sistema. A histerese é expressa em valores percentuais, ou seja, quando definimos que um sistema de controle possui uma histerese de 3 %, definimos que, após o circuito se desligar quando a temperatura real atingir o valor de Set Point (no exemplo 150 ºC), ele torna a ligar quando a temperatura real satisfaz a equação:

Temperatura para religação < = Set Point – 3 % de histerese Sendo que: Set Point = 150 ºC

Histerese = Set Point x 3 % = 150 x 0.03 = 4,5 ºC histerese Set Point – histerese: 150 – 4,5 = 145,5 ºC

O valor de histerese pode ser definido pelo usuário em qualquer faixa de percentagem, controladores universais apresentam esse valor em forma de percentagem ou já expressa na unidade da variável de processo (ºC), os valores mais usuais de histerese estão nas faixas de 1% a 5 %, contudo o valor pode ser ajustado de acordo com as necessidades do projeto.

Assim, com a utilização dos blocos matemáticos, podemos adicionar facilmente esse controle ao projeto proposto, acompanhe o desenvolvimento do programa:

Sistema Unitronics™

Figura 4.36

Na primeira linha do programa, atribuímos a memória de bit MB 0 à chave seletora de operação do sistema. Quando o bit atribuído à chave seletora for verdadeiro, toda a linha se torna verdadeira, acionando assim os bits MB 4 e MB 3, o bit MB 4 tem a função de um relé auxiliar e determina se o sistema está ligado ou não. Esse bit será utilizado nas demais linhas do programa sempre que necessitarmos identificar se o sistema foi acionado ou não por parte do operador, o bit MB 3 está endereçado a uma saída digital.

(39)

79

Essa saída está ligada a uma lâmpada que traz a indicação visual ao operador do real estado do sistema.

Figura 4.37

Na segunda linha de programação podemos visualizar o circuito responsável pela energização do conjunto de resistências. Se a condição de MB 4 for verdadeira, existe condutividade lógica na linha até o bloco de função do comparador Menor Igual, note que neste exemplo, diferente do anterior, o registro B não se refere mais ao valor do Set Point, mas sim ao valor agora determinado pelo cálculo da histerese, no caso 145,5 ºC. Então, para que o bloco se torne verdadeiro e permita a condutividade lógica, o valor real da temperatura deve ser menor que o valor 145,5 (resultado do cálculo de histerese), essa condição ocorre quando: (a) o sistema é ligado pela primeira vez, e o interior do forno está frio; ou (b) depois de o sistema ser desligado pelo controle de temperatura.

Note também que não é utilizada mais a função de bit simples para o acionamento da saída MB 1, agora está sendo utilizada a instrução de energizar bit com retenção, pois, quando a temperatura ultrapassar o valor do registro B (145,5 ºC) o bloco de instrução do comparador deixa de ser verdadeiro e bloqueia a condutividade lógica da linha, no entanto como o bit MB 1 já foi iniciado, ele permanece ligado até que receba o comando de Reset, que veremos nas linhas de programa a seguir.

(40)

80

Figura 4.38

Na linha de programa 3 identificamos o cálculo do valor de histerese, para o exemplo adotamos o valor de 3 %, entretanto outros valores podem ser atribuídos, inclusive com o acesso à inclusão desse valor via IHM. Assim o operador pode ajustar o valor de histerese de acordo com a sua necessidade.

Para encontrar o valor da histerese, utilizamos dois blocos matemáticos: o primeiro bloco de multiplicação (MUL F) com ponto flutuante, pois manipularemos valores com duas casas decimais, no exemplo 0,03 (3 %). O segundo, o bloco de subtração (SUB F) também com ponto flutuante, já que o valor que vamos subtrair também tem resolução de uma casa decimal.

Na instrução de multiplicação, o registro A está atribuído ao valor de Set Point e o registro B está atribuído ao valor em percentagem da histerese. Então o resultado desta operação é o valor em graus (ºC) da histerese, que aplicando a expressão:

A x B = C MI 1 x F# = MF 2 150 x 0,03 = 4,5

Com o resultado obtido de 4,5 armazenado no endereço “MF 2”, basta subtrair do valor do Set Point, que está armazenado no registro “MI 1” (150 ºC). Para esta operação, basta utilizar o bloco matemático de subtração (SUB F), representado pela expressão:

A – B = C MI 1 – MF 2 = MF 3

150 – 4,5 = 145,5

Assim obtemos o valor real da histerese do sistema no registro “MF 3”, valor obtido 145,5 ºC.

(41)

81

Essa operação é necessária, pois se o operador optar por alterar o valor do Set Point, o valor da histerese é calculado automaticamente, mantendo a faixa sempre em 3% do valor programado de Set Point.

Verifique que o registro “MF 3” foi utilizado na linha 2 do programa, determinando em qual valor de temperatura o conjunto de resistências deve ser acionado.

Até esse ponto o programa já definiu três circuitos básicos: o circuito de habilitação do sistema, o circuito de energização do conjunto de resistências e o circuito de cálculo da histerese. Agora é necessário criar uma lógica para desligar o conjunto de resistências na condição de temperatura ideal, ou seja, quando a temperatura real for igual ou maior que a temperatura de Set Point, acompanhe:

Figura 4.39

Na linha 4 do programa, definimos um comparador de Maior Igual, este bloco controla o reset do bit MB 1. Assim quando o valor do registro “A” (temperatura real) for maior que o valor do registro “B” (Set Point) o bloco se torna verdadeiro permitindo assim a condutividade lógica do circuito, essa condição indica que a temperatura atingiu o valor ideal do sistema. Se essa condição prevalecer, o bit “MB 1” é desligado e as resistências são desenergizadas.

Para que o bit “MB 1” volte a ser energizado religando as resistências, a temperatura deve ser menor ou igual ao valor de histerese, esse circuito foi definido na linha 2 do programa , portanto o sistema funciona dessa forma infinitamente enquanto a chave seletora estiver ligada, ou seja, enquanto o bit “MB 4” for verdadeiro.

Por fim, acrescentaremos mais uma linha no programa, responsável pela indicação de resistência energizada, no exemplo 5 visto anteriormente,

(42)

82

atribuímos ao bit “MB 2” a saída digital correspondente a essa lâmpada, acompanhe:

Exemplo 4.40

A linha 5 do programa do usuário faz referência à saída correspondente à lâmpada de indicação de resistência ligada, o bit MB 2 atribuído a essa saída está sendo controlado pelo bit de acionamento da resistência. Assim, quando esse bit for verdadeiro, a saída correspondente à lâmpada também será verdadeira.

Os blocos de instruções vistos acima representam apenas um exemplo básico das funcionalidades de um sistema de automação baseado em CLP. Essas instruções são básicas e suficientes para que o programador possa desenvolver e solucionar a grande maioria das aplicações e problemas encontrados em ambiente industrial, essas instruções são encontradas em praticamente todos os tipos e modelos de CLPs fabricados atualmente, vale ressaltar que existem outras inúmeras funcionalidades e instruções específicas para controle avançado, com funcionalidades diferentes para cada dispositivo ou modelo encontrado atualmente no mercado. Cabe ao programador verificar junto ao equipamento as funcionalidades disponíveis e as limitações de cada equipamento.

4.6. Programas em Linguagem de Instruções

A grande maioria dos projetistas preferem e elaboram programas para CLPs em linguagem do tipo LADDER, porém existe uma outra linguagem, chamada de linguagem de instruções, que faz a conversão dos símbolos gráficos utilizados na linguagem LADDER em mnemônicos de programação. Os mnemônicos são instruções em forma de texto que representam as instruções e blocos de função dos CLPs. Esses mnemônicos são utilizados em situações onde o projetista não dispõe de um terminal de computador para elaboração do programa de usuário, assim o projetista utiliza um HHP – Hand Held Programmer, que nada mais é do que um console de programação móvel e portátil que o projetista pode levar ao chão de fábrica para fazer alterações e atualizações na máquina sem ter que instalar um computador ao lado do equipamento.

A grande maioria dos programas fornecidos para elaboração dos diagramas em linguagem LADDER suportam também a linguagem em

(43)

83

instruções, e podem inclusive fazer a conversão de uma linguagem para outra de uma forma rápida e prática. Assim o programador pode optar por elaborar seu programa em qualquer uma das linguagens. Vale lembrar que essa conversão só é possível em um programa editor baseado PC, em um HHP só é possível a elaboração e a visualização dos programas na linguagem de instruções.

Abaixo podemos visualizar alguns exemplos em uma tabela com os símbolos em linguagem LADDER e seu mnemônico correspondente em linguagem de instruções:

Figura 4.41

Com a ajuda dessa tabela não é difícil fazer a conversão de um programa em linguagem LADDER para a linguagem de instruções. Um circuito simples como o de partida direta de um motor (figura 4.42) pode facilmente ser transladado para a linguagem de instruções, acompanhe:

(44)

84

Figura 4.42

Circuito com selo, partida direta de um motor em linguagem de instruções

LDI I / 1 AND I / 2 OR O / 1 OUT O / 1

Simples, não? Dessa forma são realizados programas utilizando a linguagem de instruções, essa linguagem é mais simples do parece e foi pelo seu uso que os primeiros CLPs forma programados.

Vale ressaltar que os mnemônicos apresentados acima são básicos. Todos os blocos de funções encontrados na linguagem tipo LADDER podem ser representados dessa forma, como, por exemplo, os temporizadores que são expressos pelas siglas “TON”, “TIMER” ou simplesmente com a sigla “T”, ou ainda os blocos aritméticos que poder ser representados por: Adição – ADD, Subtração - SUB, Multiplicação – MUL, Divisão – DIV. Os mnemônicos não são idênticos para todos os modelos de CLPs, os fabricantes diferentes podem não compartilhar dos mesmos códigos, assim o projetista deverá verificar a documentação do dispositivo antes de elaborar a aplicação.

Referências

Documentos relacionados

FIGURA 1: Valores médios da porcentagem de germinação de sementes de Hymenaea stigonocarpa submetidas a diferentes tratamentos pré-germinativos.. contrapartida, Souza et

Avaliação do impacto do processo de envelhecimento sobre a capacidade funcional de adultos mais velhos fisicamente ativos.. ConScientiae

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Portanto, mesmo percebendo a presença da música em diferentes situações no ambiente de educação infantil, percebe-se que as atividades relacionadas ao fazer musical ainda são

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Dentre as principais conclusões tiradas deste trabalho, destacam-se: a seqüência de mobilidade obtida para os metais pesados estudados: Mn2+>Zn2+>Cd2+>Cu2+>Pb2+>Cr3+; apesar dos