fundamentos da linguagem de programaçãofundamentos da linguagem de programação 4.1 tipos de...

44
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”. Figura 4.1

Upload: others

Post on 30-Sep-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Figura 4.1

Page 2: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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 .

Page 3: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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:

Page 4: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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:

Page 5: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Figura 4.4

Page 6: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 7: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 8: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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:

Page 9: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 10: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 11: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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:

Page 12: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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,

Page 13: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 14: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 15: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 16: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Figura 4.14

Page 17: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 18: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 19: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Figura 4.20

Page 20: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 21: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 22: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 23: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 24: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 25: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 26: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Sistema Unitronics™

Page 27: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 28: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 29: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 30: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Sistema Allen Bradley / Rockwell

Page 31: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 32: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

72

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

diferentes fabricantes.

Sistema Unitronics™

Figura 4.32

Page 33: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Sistema Allen Bradley / Rockwell

Page 34: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 35: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 36: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 37: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 38: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 39: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 40: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.

Page 41: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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,

Page 42: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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

Page 43: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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:

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

Page 44: Fundamentos da Linguagem de ProgramaçãoFundamentos 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

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.