Você está na página 1de 37

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”.

Figura 4.1

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á

41
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 .

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

42
combinações das duas chaves podemos selecionar em qual condição a lâmpada deverá
permanecer. Acompanhe os diagramas abaixo:

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:

43
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.

Figura 4.4

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

44
Nº de combinações possíveis = 216
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

Nota: a variável word também pode ser definida como “palavra”.

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.

45
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”,

46
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:

“Lucas vai ao cinema se João ou Maria forem com ele,


e se seu pai emprestar o carro”

Figura 4.7

47
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 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

48
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.

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:

49
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, chaves, contatos etc. E dispositivos controlados,
bobinas, lâmpadas, alarmes etc.

50
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 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 é

51
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 exemplo anterior da figura 4.11 para
visualizarmos o diagrama em linguagem LADDER.

Figura 4.12

52
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.

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).

53
Figura 4.14

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.

54
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 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

55
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 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

Figura 4.20

56
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.

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

57
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.

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.

58
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.

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.

59
• 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 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™.

60
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 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

61
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.

Sistema Unitronics™

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

62
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 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

63
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.

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

64
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 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.

65
Sistema Allen Bradley / Rockwell

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 pequenas diferenças envolvidas
com os programas de edição fornecidos por diferentes fabricantes.

66
Sistema Unitronics™

Figura 4.32

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”.

67
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.

Sistema Allen Bradley / Rockwell

Figura 4.33

68
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 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.

69
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 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.

70
* 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 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

71
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. 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

72
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.

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:

AxB=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

73
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.

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.

74
Por fim, acrescentaremos mais uma linha no programa, responsável pela
indicação de resistência energizada, no exemplo 5 visto anteriormente, 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 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.

75
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:

Circuito com selo, partida direta de um motor em linguagem LADDER

Figura 4.42

76
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.

77

Você também pode gostar