SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
1. TRATAMENTO DE VARIÁVEIS

As variáveis são os elementos que, em última análise transportam as informações das
interfaces de entrada para o programa; de uma parte do programa para outra, e do
programa para as interfaces de saída. O conteúdo das variáveis, processado de forma
adequada, determina o fluxo de todo o programa, controlando as ações a serem
executadas e gerando resultados de saída.
Hoje em dia os processos de uma maneira geral trabalham, afora pontos binários, com
uma grande gama de valores numéricos e alfa-numericos, estes por sua vez devem ser
lidos, comparados e manipulados pelo controlador.
Além do mais, as facilidades apresentadas pelos recursos básicos do Ladder, em
controles combinacionais, desaparecem rapidamente quando processo controlado exige
lógicas seqüenciais com um mínimo de sofisticação.
Dada tais circunstancias, uma abordagem mais ampla, que vá além do “bobina /
contado”, torna-se necessária. Antes, porém, vale rever ou conhecer alguns conceitos
relativos a forma como o CLP reconhece e trata os dados da memória de aplicação.

1.1. TIPOS DE DADOS
Os valores são armazenados na no controlador – assim como em qualquer equipamento
digital – sob forma binária. Dependendo da ordem grandeza ou do contexto, estes dados
são trados de forma distinta.
Na série S7-200, memória do controlador pode ser acessada de quatro formas básicas.
A Tabela 1.1 contém tais formas e a quantidade de informação abrangida em cada
forma de acesso.
Tabela 1.1 – Formas de acesso à memória de acordo com a resolução.
Tipo de Dado*

Resolução

Bit

1 Bit

Byte

8 Bits

Word

16 Bits

Double Word

32 Bits

* Existem, ainda dados não numéricos que são tratados com seqüência de
caracteres “Char”

Ou seja, cada tipo de dado está associado basicamente à quantidade de memória
ocupada por um operador. Assim, este critério serve apenas para indicar o tamanho do
dado.
Existem, ainda, outras convenções (como, por exemplo, Nible que é um conjunto de
quatro bits) que não são adotadas pelo fabricante do equipamento.
Outro parâmetro importante é o tipo de operador, este define a classe numérica do dado.
A Tabela 1.2 fornece os ranges provenientes das relações entre os dois parâmetros.
Tabela 1.2 – Tipos de Operador e Ranges.
Tipo de operador

Precisão

Range

Booleano

Bit

0~1

Byte

0 ~ 255

Word

0 ~ 65535

Double word

0 ~ 4294967296

Byte*

(-)127 ~ 127

Word

(-) 32677 ~ 32677

Double word

(-) 2147483647 ~ 2147483647

Real
Ponto Flutuante

Double word
(FLOAT IEEE)

(+) 1.175495E-38 ~ 3.402823E+38
(-) 1.175495E-38 ~ 3.402823E+38

Seqüência de
Caracteres (CHAR)

1 + N.de Caracteres
x 8 Bits

ASCII
(1~255 Caracteres)

Inteiro
sem sinal

Inteiro

* Nos controladores da serie S7-200 os dados do tipo Byte são sempre tratados como inteiro com
sinal.
1.2. ENDEREÇAMENTO
Para as diversas áreas de memória da CPU S7–200, com exceção das tabelas de pontos
analógicos (entradas e saídas), dos contadores e timers, a forma de endereçamento
obedece a seguinte lógica:
Bit

=>

[Área][Byte].[Bit]

(Exemplo Q0.0, S34.6 ....)

Byte

=>

[Área][B][Byte]

(Exemplo IB10, VB10 ....)

Word

=>

[Área][W][Byte inicial]

(Exemplo SW4, VW6 ....)

Double Word =>

[Área][D] [Byte inicial]

(Exemplo VD0, ID20 ....)

As tabelas de pontos analógicos são acessadas somente como Word. O endereço é
definido pelo número da entrada “AI” ou saída “AQ” (Exemplo AQ0, AI4...).
Os timers e contadores possuem duas áreas de memória distintas, um bit de staus e uma
Word contendo o valor. O endereçamento utiliza o “T” ou “C” mais número do
dispositivo. Tanto o bit quanto a Word possuem o mesmo endereço o programa
diferencia-os pelo contexto ou pela instrução utilizada (Exemplo C0, T32...).
Os contadores rápidos são tratados sempre como Double Word. O endereço e formado
por “HC” mais o número do contador (Exemplo HC0, HC1...).
Existem algumas particularidades que devem ser observadas quando do acesso aos
endereços de memória. As figuras a seguir, podem ajudar a entendê-las.
Mem
Byte 0
Byte 1
Byte 2
Byte 3
Byte 4
Byte 5
Byte 6
.
Byte N

Bit 0
0.0
1.0
2.0
3.0
4.0
5.0
6.0
.
N.0

Bit 1
0.1
1.1
2.1
3.1
4.1
5.1
6.1
.
N.1

Bit 2
0.2
1.2
2.2
3.2
4.2
5.2
6.2
.
N.2

Bit 3
0.3
1.3
2.3
3.3
4.3
5.3
6.3
.
N.3

Figura 1.1 - Exemplo de um mapa memória genérico.

Bit 4
0.4
1.4
2.4
3.4
4.4
5.4
6.4
.
N.4

Bit 5
0.5
1.5
2.5
3.5
4.5
5.5
6.5
.
N.5

Bit 6
0.6
1.6
2.6
3.6
4.6
5.6
6.6
.
N.6

Bit 7
0.7
1.7
2.7
3.7
4.7
5.7
6.7
.
N.7
Fonte – Ilustração do autor

A Figura 1.2 mostra um exemplo de acesso ao sexto bit do byte 1 na tabela imagem das
entradas digitais.

I0.0
I1.0
I2.0
I3.0
I4.0
I5.0
I6.0
I7.0
I8.0
I9.0

I0.1
I1.1
I2.1
I3.1
I4.1
I5.1
I6.1
I7.1
I8.1
I9.1

I0.2
I1.2
I2.2
I3.2
I4.2
I5.2
I6.2
I7.2
I8.2
I9.2

I0.3
I1.3
I2.3
I3.3
I4.3
I5.3
I6.3
I7.3
I8.3
I9.3

I0.4
I1.4
I2.4
I3.4
I4.4
I5.4
I6.4
I7.4
I8.4
I9.4

I0.5
I1.5
I2.5
I3.5
I4.5
I5.5
I6.5
I7.5
I8.5
I9.5

I0.6
I1.6
I2.6
I3.6
I4.6
I5.6
I6.6
I7.6
I8.6
I9.6

I0.7
I1.7
I2.7
I3.7
I4.7
I5.7
I6.7
I7.7
I8.7
I9.7

Figura 1.2 - Exemplo endereço tipo Bit.
Fonte – Ilustração do autor

Figura 1.3 mostra a estrutura da variável VB0.

V0.0
V1.0
1.0
V2.0
V3.0
V4.0
V5.0

V0.1
V1.1
V2.1
V3.1
V4.1
V5.1

V0.2
V1.2
V2.2
V3.2
V4.2
V5.2

V0.3
V1.3
V2.3
V3.3
V4.3
V5.3

V0.4
V1.4
V2.4
V3.4
V4.4
V5.4

V0.5
V1.5
V2.5
V3.5
V4.5
V5.5

V0.6
V1.6
V2.6
V3.6
V4.6
V5.6

V0.7
V1.7
V2.7
V3.7
V4.7
V5.7

V6.0
V7.0

V6.1
V7.1

V6.2
V7.2

V6.3
V7.3

V6.4
V7.4

V6.5
V7.5

V6.6
V7.6

V6.7
V7.7

LSB
V1.0

-- -- -VB1
-- -- --

Figura 1.3 - Exemplo endereço tipo Byte.
Fonte – Ilustração do autor

A Figura 1.4 mostra a estrutura da variável VW4

MSB
V1.7
V0.0
V1.0
V2.0
V3.0
V4.0
V5.0
V6.0
V7.0

V0.1
V1.1
V2.1
V3.1
V4.1
V5.1
V6.1
V7.1

V0.2
V1.2
V2.2
V3.2
V4.2
V5.2
V6.2
V7.2

V0.3
V1.3
V2.3
V3.3
V4.3
V5.3
V6.3
V7.3

LSB

V0.5
V1.5
V2.5
V3.5
V4.5
V5.5
V6.5
V7.5

V5.7

V0.6
V1.6
V2.6
V3.6
V4.6
V5.6
V6.6
V7.6

V0.7
V1.7
V2.7
V3.7
V4.7
V5.7
V6.7
V7.7

MSB

-- -- -VW4

VB5
-- -- --

V5.0

V0.4
V1.4
V2.4
V3.4
V4.4
V5.4
V6.4
V7.4

VB4
-- -- --

V4.0

V4.7

Figura 1.4 - Exemplo endereço tipo Word.
Fonte – Ilustração do autor.

Figura 1.5 mostra a estrutura da variável VD0.

V0.0
V1.0
V2.0
V3.0
V4.0
V5.0
V6.0

V0.1
V1.1
V2.1
V3.1
V4.1
V5.1
V6.1

V0.2
V1.2
V2.2
V3.2
V4.2
V5.2
V6.2

V0.3
V1.3
V2.3
V3.3
V4.3
V5.3
V6.3

V0.4
V1.4
V2.4
V3.4
V4.4
V5.4
V6.4

V0.5
V1.5
V2.5
V3.5
V4.5
V5.5
V6.5

V0.6
V1.6
V2.6
V3.6
V4.6
V5.6
V6.6

V0.7
V1.7
V2.7
V3.7
V4.7
V5.7
V6.7

V7.0

V7.1

V7.2

V7.3

V7.4

V7.5

V7.6

V7.7

V8.0

V8.0

V8.0

V8.0

V8.0

V8.0

V8.0

V8.7

V9.0

V9.0

V9.0

V9.0

V9.0

V9.0

V9.0

V9.0

-- -- -VD0

LSB
VW2
V3.0

VB3
--

V3.7

V2.0

VB2
--

V2.7

Figura 1.5 - Exemplo endereço tipo Doube Word.
Fonte – Ilustração do autor.

V1.0

MSB
VW0
VB1
--

V1.7

V0.0

VB0
--

V0.7
Cabe destacar que existe sobreposição das operandos, isto é, um mesmo conjunto de
dados (bits) pode fazer parte de vários operandos. Este particularidade confere grande
flexibilidade ao sistema, porem, exige atenção na definição dos endereços.
Por exemplo, VB4 é a parte alta de VW4, assim sendo, um incremento de simples
(somar mais um ao conteúdo) em VB4, implicará em um incremento 256 no valor de
VW4.
Outro ponto importante, Words consecutivas terão sempre um Byte em comum. De
forma análoga Double Words compartilharão três Bytes.

1.3. ÁREAS DA MEMÓRIA DE APLICAÇÃO
As Tabelas 1.3, 1.4 e 1.5 contém detalhes da memória da CPU 224, estes podem
esclarecer alguns pontos que por ventura tenham ficado obscuros nos tópicos anteriores.
Tabela 1.3 – Áreas de memória 1
CPU 224 V2.00
Área

Descrição

TIPO DE ACESSO
Bit

Byte

Word

Dword

I

Entradas Digitais Leitura|Escrita Leitura|Escrita Leitura|Escrita
Registradores da imagem

Leitura|Escrita

Q

Saídas Digitais Leitura|Escrita Leitura|Escrita Leitura|Escrita
Registradores da imagem

Leitura|Escrita

M

Memória interna

Leitura|Escrita Leitura|Escrita Leitura|Escrita

Leitura|Escrita

SM

Memória Especial
SM0 ~ SM29 -> Só
Leitura

Leitura|Escrita Leitura|Escrita Leitura|Escrita

Leitura|Escrita

V

Variáveis

Leitura|Escrita Leitura|Escrita Leitura|Escrita

Leitura|Escrita

T

Timers

T - Bit
Leitura|Escrita

Não

T - Valor
Leitura|Escrita

Não

C

Contadores

C - Bit
Leitura|Escrita

Não

C - Valor
Leitura|Escrita

Não

HC

Contadores Rápidos

Não

Não

Não

Leitura apenas

AI

Entradas Analógicas

Não

Não

Leitura apenas

Não

AQ

Saídas Analógicas

Não

Não

Escrita apenas

Não

L

Variáveis Locais

Leitura|Escrita Leitura|Escrita Leitura|Escrita

Leitura|Escrita
A retentividade é a característica de certas áreas de manter o valor mesmo quando o
CLP for desligado. Forçar um operando, significa alterar seu valor através do canal de
comunicação serial. As propriedades como a retentividade e a permissão de forçar
valores bem como range de cada uma das áreas de memória são descritas na Tabela 1.4.
Tabela 1.4 – Áreas de memória 2.
CPU 224 V2.00

PODE SER

Área

Range

Descrição

Retentiva

Forçada

I

I0.0 ~ I15.7*

Entradas Digitais Registradores da imagem

Não

Sim

Q

Q0.0 ~ Q15.7*

Saídas Digitais Registradores da imagem

Não

Sim

M**

M0.0 ~ M31.7

Memória interna

Sim

Sim

SM

SM0.0 ~ SM549.7

Memória Especial
SM0 ~ SM29 -> Só Leitura

Não

Não

V**

V0.0 ~ V8191.7

Variáveis

Sim

Sim

T

T0 ~ T255

Timers

Valor-> Sim
Bit -> Não

Não

C

C0 ~ C255

Contadores

Valor-> Sim
Bit -> Não

Não

HC

HC0 ~ HC5

Contadores Rápidos

Não

Não

AI

AI0 ~AI15

Entradas Analógicas

Não

Sim

AQ

AQ0 ~AQ15

Saídas Analógicas

Não

Sim

L

0 ~ 59

Variáveis Locais

Não

Não

* O número de pontos nas tabelas de entradas e saídas digitais é significativamente maior do que a
quantidade de pontos físicos, mesmo que sejam usadas todas as expansões possíveis. Este espaço
pode ser usado como memória adicional.
** Pode armazenar operandos do tipo CHAR.

O fabricante do equipamento definiu que cada área de memória sendo acessada com
certo tipo de dado somente aceitará determinado operado. A Tabela 1.5 mostra tais
convenções.
Tabela 1.5 – Áreas de memória 3.
Área

Bit

Byte

Word

Dword

I

Booleano

Inteiro sem sinal

Inteiro sem sinal

Inteiro sem sinal

Q

Booleano

Inteiro sem sinal

Inteiro sem sinal

Inteiro sem sinal

M

Booleano

Inteiro sem sinal

Inteiro sem sinal

Inteiro sem sinal

V

Booleano

Inteiro sem sinal

Inteiro

Real (ponto flutuante)

T

T - Bit ->
Booleano

Não

T - Valor - >
Inteiro

Não

C

C - Bit ->
Booleano

Não

C - Valor - >
Inteiro

Não

HC

Não

Não

Não

Inteiro sem sinal

AI

Não

Não

Inteiro sem sinal

Inteiro sem sinal

AQ

Não

Não

Inteiro sem sinal

Não
2. SYMBOL TABLE

A tabela símbolos (symbol table) pode ser utilizada para definir tags – nomes para
variáveis ou endereços – e definir constantes.
A utilização de tags auxilia a organização do programa e permite ao programador
associar os endereços a termos mais amigáveis.

Figura 2.1 – Tela com exemplo
Fonte – S7 MicroWin.
Existe uma área para comentários, estes podem ser exibidos nas lógicas, ou não,
dependendo das preferências setadas.
Há também campos para indicar tags ou endereços repetidos e inválidos, além disto, os
endereços inválidos aparecerão em vermeho.
Para definir constantes, deve–se saber que:
Os valores alfanuméricos (tipo CHAR) devem ficar entre aspas
Números sem indicação de base são decimais.
Números sem ponto serão tratados como INTEIROS.
Números com ponto serão tratados como FLOAT.
Para utilizar outras bases: BASE#VALOR por exemplo, 2#1011, 16#3EF.
Para forçar operadores booleanos deve-se usar base dois com um digito apenas.
3. STATUS Chart

Trata-se de uma ferramenta extremamente simples e de grande valor. Permite monitorar
e forçar o valor das variáveis em tempo real.

Figura 3.1 – Tela com exemplo
Fonte – S7 MicroWin.
4. INSTRUÇÕES DE PROGRAMAÇÃO

4.1. COMPARAÇÃO
As expressões estão contidas no menu “Compare” do “Instruction”. Todos
os blocos têm comportamento de um contato NA, que é ativando quando a
expressão lógica for verdadeira. As operações aceitas são igual, igual ou maior, igual ou
menor, maior, menor e diferente.
As comparações utilizam sempre dois elementos, que serão chamados Operando 1 e
Operando 2. Somente podem ser comparados operandos de mesma classe de dados –
Bytes (Inteiro sem Sinal), Inteiros (Word), Inteiros (Double Word) e Reais (Float).
Vale lembrar que o OP1 deve ser necessariamente um endereço de memória, isto é, uma
variável. Já o OP2 pode ser variável ou constante.
Compara e ativa a saída do bloco, se os Bytes dos Operandos
são iguais.
Compara e ativa a saída do bloco se os Inteiros (Word) dos
Operandos são iguais.
Compara e ativa a saída do bloco se os Inteiros (Double Word)
dos Operandos são iguais.
Compara e ativa a saída do bloco se os Reais dos Operandos
são iguais.
Compara e ativa a saída do bloco se os Bytes dos Operandos
são diferentes.
Compara e ativa a saída do bloco se os Inteiros (Word) dos
Operandos são diferentes.
Compara e ativa a saída do bloco se os Inteiros (Double Word)
dos Operandos são diferentes.
Compara e ativa a saída do bloco se os Reais dos Operandos
são diferentes.
Compara e ativa a saída do bloco se o Byte do OP1 for maior
ou igual a OP2.
Compara e ativa a saída do bloco se o Inteiro (Word) do OP1
for maior ou igual a OP2.
Compara e ativa a saída do bloco se o Inteiro (Double Word) do
OP1 for maior ou igual a OP2.
Compara e ativa a saída do bloco se o Real do OP1 for maior
ou igual a OP2.
Compara e ativa a saída do bloco se o Byte do OP1 for menor
ou igual a OP2.
Compara e ativa a saída do bloco se o Inteiro (Word) do OP1
for menor ou igual a OP2.
Compara e ativa a saída do bloco se o Inteiro (Double Word) do
OP1 for menor ou igual a OP2.
Compara e ativa a saída do bloco se o Real do OP1 for menor
ou igual a OP2.
Compara e ativa a saída do bloco se o Byte do OP1 for maior a
OP2.
Compara e ativa a saída do bloco se o Inteiro (Word) do OP1
for maior a OP2.
Compara e ativa a saída do bloco se o Inteiro (Double Word) do
OP1 for maior a OP2.
Compara e ativa a saída do bloco se o Real do OP1 for maior a
OP2.
Compara e ativa a saída do bloco se o Byte do OP1 for menor a
OP2.
Compara e ativa a saída do bloco se o Inteiro (Word) do OP1
for menor a OP2.
Compara e ativa a saída do bloco se o Inteiro (Double Word) do
OP1 for menor a OP2.
Compara e ativa a saída do bloco se o Real do OP1 for menor a
OP2.

4.2. ESCRITA NA MEMÓRIA
As instruções de escrita na memória ou de movimentação de dados estão
contidas no menu “Move” do “insruction”.
Quando a entrada “EN” for acionada, o Byte contido em “IN”
(pode ser um endereço ou uma constante) é movido para
“OUT” (deve ser obrigatoriamente uma variável – endereço).

Quando a entrada “EN” for acionada, o Word contido em “IN”
(pode ser um endereço ou uma constante) é movido para
“OUT” (deve ser obrigatoriamente uma variável – endereço).
Quando a entrada “EN” for acionada, o Double Word contido
em “IN” (pode ser um endereço ou uma constante) é movido
para “OUT” (deve ser obrigatoriamente uma variável –
endereço).
Quando a entrada “EN” for acionada, os “N” ((“N” é um byte,
pode ser variável ou constante) Bytes contidos a partir do
endereço “IN” são movido para os “N” endereços iniciando em
“OUT”.
Quando a entrada “EN” for acionada, os “N” (“N” é um byte,
pode ser variável ou constante) Word contidos a partir do
endereço “IN” são movido para os “N” endereços iniciando em
“OUT”.

Quando a entrada “EN” for acionada, os “ N” ((“N” é um
byte,pode ser variável ou constante) Double Word contidos a
partir do endereço “IN” são movido para os “N” endereços
iniciando em “OUT”.
4.3. MATEMÁTICA DE INTEIROS
As instruções do “Integer Math” permitem que sejam realizadas
operações matemáticas (fundamentais: adição, subtração, multiplicação,
divisão, incremento e decremento) com números inteiros.
Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” + “IN2”.
OUT => Inteiro (Word), obrigatoriamente variável.
IN1 => Inteiro (Word), constate ou variável.
IN2 => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” + “IN2”.
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN1 => Inteiro (Double Word), constate ou variável.
IN2 => Inteiro (Double Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” - “IN2”.
OUT => Inteiro (Word), obrigatoriamente variável.
IN1 => Inteiro (Word), constate ou variável.
IN2 => Inteiro (Word), obrigatoriamente variável.
Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” - “IN2”.
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN1 => Inteiro (Double Word), constate ou variável.
IN2 => Inteiro (Double Word), obrigatoriamente variável.

Quando “EM” recebe energia, executa a operação “OUT” =
“IN1” x “IN2”. (Multipica duas Words e obtém uma Double
Word).
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN1 => Inteiro (Word), constate ou variável.
IN2 => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” x “IN2”.
OUT => Inteiro (Word), obrigatoriamente variável.
IN1 => Inteiro (Word), constate ou variável.
IN2 => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” x “IN2”.
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN1 => Inteiro (Double Word), constate ou variável.
IN2 => Inteiro (Double Word), obrigatoriamente variável.
Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” / “IN2”. (Divide uma Double por uma Word e obtém
uma Word)
OUT => Inteiro (Word), obrigatoriamente variável.
IN1 => Inteiro (Double Word), constate ou variável.
IN2 => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” / “IN2”.
OUT => Inteiro (Word), obrigatoriamente variável.
IN1 => Inteiro (Word), constate ou variável.
IN2 => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN1” / “IN2”.
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN1 => Inteiro (Double Word), constate ou variável.
IN2 => Inteiro (Double Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN” + 1.
OUT => Byte, obrigatoriamente variável.
IN => Byte, obrigatoriamente variável.
Quando “EN” recebe energia, executa a operação “OUT” =
“IN” + 1.
OUT => Inteiro (Word), obrigatoriamente variável.
IN => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN” + 1.
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN => Inteiro (Double Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
““IN” - 1.
OUT => Byte, obrigatoriamente variável.
IN => Byte, obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN” - 1.
OUT => Inteiro (Word), obrigatoriamente variável.
IN => Inteiro (Word), obrigatoriamente variável.

Quando “EN” recebe energia, executa a operação “OUT” =
“IN” - 1.
OUT => Inteiro (Double Word), obrigatoriamente variável.
IN => Inteiro (doubleWord), obrigatoriamente variável.
5. CONFIGURANDO A IHM TD 200
Tanto as mensagens que serão exibidas, quanto as definições dos flags de controle
serão enviados ao controlador como parte integrante do programa. Para realizar tal
tarefa, o Step7–MicroWin utiliza um tutorial, esse é acessado pelo menu “Tools” opção
“Text Display Wizard ...”

1

2

3

Após iniciar o tutorial, receberemos uma tela de boas vindas, basta clicar na opção
“next”.
Na segunda tela, será selecionado o tipo de IHM a ser programado. No caso presente,
trata-se da Versão 2.1.
A tela seguinte diz respeito à seleção do idioma (inglês, alemão, francês, italiano, chinês
ou espanhol) e do tipo de fonte (letra).

4

4

No quarto passo existem três CheckBox a opção “A” permite visualizar e setar o
relógio de tempo real no menu da IHM. A opção “B” permite alterar o conteúdo das
variáveis exibidas na tela. E, a opção “C” pode habilitar o uso de senha para realizar tais
tarefas, note que quanto a senha é desabilitada o campo para digita-la desaparece.

5

6
A quinta etapa consiste em selecionar quais bits de memória (Mx.y) serão responsáveis
por transferir ao programa o nível lógico das teclas F1 ~ F8. Assim, se a opção for o
byte de memória 31, M31.0 fica vinculado à tecla F1, M31.1 à tecla F2 e assim
sucessivamente. Neste todos os contados de M31.3 existentes no programa, serão
invertidos quando a tecla F4 for pressionada.
O display da TD 200 possui duas linhas com vinte colunas cada. A primeira CheckBox
da sexta tela possibilita escolher entre mensagens com vinte caracteres (duas por tela)
ou quarenta caracteres (uma por tela). No campo seguinte, deve-se declarar o número
total de mensagens que serão utilizadas. Lembre-se que cada mensagem ocupará
quarenta bytes (vinte words) da memória de trabalho.

7

8

Na sétima tela serão configurados os endereços de memória que controlam a exibição
das mensagens, bem como o endereço inicial onde elas serão armazenadas.
São necessários quatorze bytes para a inicializar a IHM. O primeiro campo
define o endereço inicial.
No campo seguinte define-se o endereço inicial dos flags que controlam a
exibição das mensagens na tela. Este endereço precisa distar quatorze bytes
daquele definido no campo acima. Cada mensagem possui um único

flag,

portando, esta área da memória terá o tamanho igual ao numero de mensagens
dividido por oito (se o resto da divisão não for nulo, ele ocupará mais um byte)
O ultimo campo deve conter a posição de memória em que os caracteres das
mensagens serão armazenados.
Na oitava tela é efetuado o preenchimento do texto a ser exibido. Para passar a
mensagem seguinte basta clicar em “Next Message”.

8

9

Em cada caixa são exibidos o endereço do bit de controle e o byte inicial donde os
caracteres são armazenados. Caso tenha sido selecionada, na tela 7, a posição VB14
como inicial para os flags de controle, o endereçamento seguirá a tabela abaixo.
V14.7

MSG 1

V14.6

MSG 2

V14.5

MSG 3

V14.4

MSG 4

V14.3

MSG 5

V14.2

MSG 6

V14.1

MSG 7

V14.0

MSG 8

V15.7

MSG 9

V15.6

MSG 10

V15.5

MSG 11

V15.4

MSG 12

V15.3

MSG 13

V15.2

MSG 14

V15.1

MSG 15

V15.0

MSG 16

V16.7

MSG 17

V16.6

MSG 18

V16.5

MSG 19

V16.4

MSG 20

V16.3

MSG 21

V16.2

MSG 22

V16.1

MSG 23

V16.0

MSG 24

V17.7

MSG 25

V17.6

MSG 26

V17.5

MSG 27

V17.4

MSG 28

V17.3

MSG 29

V17.2

MSG 30

…
Desta maneira, quando o bit V14.7 é setado, a Mensagem 1 é exibida no display. Se
mais de uma for mensagem habilitada será exibida a de menor índice. Para visualizar as
outras use as teclas direcionais.
Por exemplo, se o programa em questão necessitar de nove mensagens e o primeiro
campo for definido com “byte 0” (VB0). O segundo campo deve ser definido como
quatorze. Se existem nove mensagens, os “bytes 14 e 15” (VB14 e VB15) ficam
reservados para esta função. O terceiro campo deve ser dezesseis, serão necessários
trezentos sessenta bytes (9 x 40) para armazenar os caracteres, ou seja, VB16 até
VB375. Para este exemplo, as variáveis de programa devem começar na posição
VB376.

Mais conteúdo relacionado

Mais procurados

Expansão Marítima Portuguesa: Ilhas atlânticas e Marrocos
Expansão Marítima Portuguesa: Ilhas atlânticas e MarrocosExpansão Marítima Portuguesa: Ilhas atlânticas e Marrocos
Expansão Marítima Portuguesa: Ilhas atlânticas e MarrocosFabiana Léo
 
2016 aulas 22 a 24 - progr ext noite - nox
2016   aulas 22 a 24 - progr ext noite - nox2016   aulas 22 a 24 - progr ext noite - nox
2016 aulas 22 a 24 - progr ext noite - noxpaulomigoto
 
Cultura,arte e religião
Cultura,arte e religiãoCultura,arte e religião
Cultura,arte e religiãoTeresa Maia
 
Aula calculos quimicos positivo
Aula calculos quimicos positivoAula calculos quimicos positivo
Aula calculos quimicos positivoNai Mariano
 
ALCADIENOS E ALCINOS - AULA 9
ALCADIENOS E ALCINOS - AULA 9ALCADIENOS E ALCINOS - AULA 9
ALCADIENOS E ALCINOS - AULA 9Kaires Braga
 
Apostila volumetria de oxirredução
Apostila volumetria de oxirreduçãoApostila volumetria de oxirredução
Apostila volumetria de oxirreduçãoGraziela Leal
 
Mes 實作 第二週
Mes 實作 第二週Mes 實作 第二週
Mes 實作 第二週信宏 陳
 
Marques de pombal
Marques de pombalMarques de pombal
Marques de pombalsylvialuzo
 
Aula 07 tecnologias da eng quimica - reatores quimicos - 18.03
Aula 07   tecnologias da eng quimica - reatores quimicos - 18.03Aula 07   tecnologias da eng quimica - reatores quimicos - 18.03
Aula 07 tecnologias da eng quimica - reatores quimicos - 18.03Nelson Virgilio Carvalho Filho
 
Apresentação1 terramoto
Apresentação1 terramotoApresentação1 terramoto
Apresentação1 terramotoCarla Teixeira
 
Acção do marquês de pombal
Acção do marquês de pombalAcção do marquês de pombal
Acção do marquês de pombalmariainesguterres
 
F3 - Marquês de Pombal
F3  -  Marquês de PombalF3  -  Marquês de Pombal
F3 - Marquês de PombalRui Nobre
 

Mais procurados (20)

Soluções
SoluçõesSoluções
Soluções
 
Marques de Pombal
Marques de Pombal Marques de Pombal
Marques de Pombal
 
Apostila pratica
Apostila praticaApostila pratica
Apostila pratica
 
Expansão Marítima Portuguesa: Ilhas atlânticas e Marrocos
Expansão Marítima Portuguesa: Ilhas atlânticas e MarrocosExpansão Marítima Portuguesa: Ilhas atlânticas e Marrocos
Expansão Marítima Portuguesa: Ilhas atlânticas e Marrocos
 
2016 aulas 22 a 24 - progr ext noite - nox
2016   aulas 22 a 24 - progr ext noite - nox2016   aulas 22 a 24 - progr ext noite - nox
2016 aulas 22 a 24 - progr ext noite - nox
 
Reatores químicos 2
Reatores químicos 2Reatores químicos 2
Reatores químicos 2
 
Cultura,arte e religião
Cultura,arte e religiãoCultura,arte e religião
Cultura,arte e religião
 
Corantes
CorantesCorantes
Corantes
 
Aula calculos quimicos positivo
Aula calculos quimicos positivoAula calculos quimicos positivo
Aula calculos quimicos positivo
 
ALCADIENOS E ALCINOS - AULA 9
ALCADIENOS E ALCINOS - AULA 9ALCADIENOS E ALCINOS - AULA 9
ALCADIENOS E ALCINOS - AULA 9
 
Apostila volumetria de oxirredução
Apostila volumetria de oxirreduçãoApostila volumetria de oxirredução
Apostila volumetria de oxirredução
 
Mes 實作 第二週
Mes 實作 第二週Mes 實作 第二週
Mes 實作 第二週
 
Marques de pombal
Marques de pombalMarques de pombal
Marques de pombal
 
Pratica 13 quimica
Pratica 13  quimicaPratica 13  quimica
Pratica 13 quimica
 
Os Povos
Os PovosOs Povos
Os Povos
 
Aula 07 tecnologias da eng quimica - reatores quimicos - 18.03
Aula 07   tecnologias da eng quimica - reatores quimicos - 18.03Aula 07   tecnologias da eng quimica - reatores quimicos - 18.03
Aula 07 tecnologias da eng quimica - reatores quimicos - 18.03
 
Apresentação1 terramoto
Apresentação1 terramotoApresentação1 terramoto
Apresentação1 terramoto
 
Acção do marquês de pombal
Acção do marquês de pombalAcção do marquês de pombal
Acção do marquês de pombal
 
2º As comunidades agro-pastoris
2º As comunidades agro-pastoris2º As comunidades agro-pastoris
2º As comunidades agro-pastoris
 
F3 - Marquês de Pombal
F3  -  Marquês de PombalF3  -  Marquês de Pombal
F3 - Marquês de Pombal
 

Semelhante a Apostila siemens s7

Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoesCratuscb
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
 
Fichas tic pedro amorim e gonçalo mouzinho
Fichas tic pedro amorim e gonçalo mouzinhoFichas tic pedro amorim e gonçalo mouzinho
Fichas tic pedro amorim e gonçalo mouzinhononoano_terceira
 
SIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUES
SIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUESSIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUES
SIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
Programação de Jogos Digitais - Aula 2
Programação de Jogos Digitais - Aula 2Programação de Jogos Digitais - Aula 2
Programação de Jogos Digitais - Aula 2Anderson Andrade
 
Augusto loureiro sistemas microprocessados
Augusto loureiro   sistemas microprocessadosAugusto loureiro   sistemas microprocessados
Augusto loureiro sistemas microprocessadosLorena Barreto
 
Inversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdf
Inversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdfInversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdf
Inversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdfAndreLuisDaSilva5
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Anderson Andrade
 
Introducao arq computador
Introducao arq computadorIntroducao arq computador
Introducao arq computadorPAULO Moreira
 

Semelhante a Apostila siemens s7 (20)

Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoes
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 
05-ModeloDeVonNeumann.pdf
05-ModeloDeVonNeumann.pdf05-ModeloDeVonNeumann.pdf
05-ModeloDeVonNeumann.pdf
 
Microprogramacao
MicroprogramacaoMicroprogramacao
Microprogramacao
 
Microprogramacao
MicroprogramacaoMicroprogramacao
Microprogramacao
 
Fichas tic pedro amorim e gonçalo mouzinho
Fichas tic pedro amorim e gonçalo mouzinhoFichas tic pedro amorim e gonçalo mouzinho
Fichas tic pedro amorim e gonçalo mouzinho
 
Ic aula 2
Ic aula 2Ic aula 2
Ic aula 2
 
SIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUES
SIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUESSIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUES
SIMATIC S7 AVANZADO PROGRAMACAO EMERSON EDUARDO RODRIGUES
 
03 linguagem ladder instrucoes de bit
03 linguagem ladder instrucoes de bit03 linguagem ladder instrucoes de bit
03 linguagem ladder instrucoes de bit
 
S7 avançado
S7 avançadoS7 avançado
S7 avançado
 
Micro master440 p_list_port
Micro master440 p_list_portMicro master440 p_list_port
Micro master440 p_list_port
 
Pro3 04 e_enderecamento_indireto
Pro3 04 e_enderecamento_indiretoPro3 04 e_enderecamento_indireto
Pro3 04 e_enderecamento_indireto
 
aula 08.pdf
aula 08.pdfaula 08.pdf
aula 08.pdf
 
Programação de Jogos Digitais - Aula 2
Programação de Jogos Digitais - Aula 2Programação de Jogos Digitais - Aula 2
Programação de Jogos Digitais - Aula 2
 
Aula 01 .pdf
Aula 01 .pdfAula 01 .pdf
Aula 01 .pdf
 
introducao_(1).ppt
introducao_(1).pptintroducao_(1).ppt
introducao_(1).ppt
 
Augusto loureiro sistemas microprocessados
Augusto loureiro   sistemas microprocessadosAugusto loureiro   sistemas microprocessados
Augusto loureiro sistemas microprocessados
 
Inversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdf
Inversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdfInversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdf
Inversor-de-frequencia-siemens-Micro-Master-420-lista-de-paramentros.pdf
 
Redes de Computadores - Aula 02
Redes de Computadores - Aula 02Redes de Computadores - Aula 02
Redes de Computadores - Aula 02
 
Introducao arq computador
Introducao arq computadorIntroducao arq computador
Introducao arq computador
 

Apostila siemens s7

  • 1. 1. TRATAMENTO DE VARIÁVEIS As variáveis são os elementos que, em última análise transportam as informações das interfaces de entrada para o programa; de uma parte do programa para outra, e do programa para as interfaces de saída. O conteúdo das variáveis, processado de forma adequada, determina o fluxo de todo o programa, controlando as ações a serem executadas e gerando resultados de saída. Hoje em dia os processos de uma maneira geral trabalham, afora pontos binários, com uma grande gama de valores numéricos e alfa-numericos, estes por sua vez devem ser lidos, comparados e manipulados pelo controlador. Além do mais, as facilidades apresentadas pelos recursos básicos do Ladder, em controles combinacionais, desaparecem rapidamente quando processo controlado exige lógicas seqüenciais com um mínimo de sofisticação. Dada tais circunstancias, uma abordagem mais ampla, que vá além do “bobina / contado”, torna-se necessária. Antes, porém, vale rever ou conhecer alguns conceitos relativos a forma como o CLP reconhece e trata os dados da memória de aplicação. 1.1. TIPOS DE DADOS Os valores são armazenados na no controlador – assim como em qualquer equipamento digital – sob forma binária. Dependendo da ordem grandeza ou do contexto, estes dados são trados de forma distinta. Na série S7-200, memória do controlador pode ser acessada de quatro formas básicas. A Tabela 1.1 contém tais formas e a quantidade de informação abrangida em cada forma de acesso.
  • 2. Tabela 1.1 – Formas de acesso à memória de acordo com a resolução. Tipo de Dado* Resolução Bit 1 Bit Byte 8 Bits Word 16 Bits Double Word 32 Bits * Existem, ainda dados não numéricos que são tratados com seqüência de caracteres “Char” Ou seja, cada tipo de dado está associado basicamente à quantidade de memória ocupada por um operador. Assim, este critério serve apenas para indicar o tamanho do dado. Existem, ainda, outras convenções (como, por exemplo, Nible que é um conjunto de quatro bits) que não são adotadas pelo fabricante do equipamento. Outro parâmetro importante é o tipo de operador, este define a classe numérica do dado. A Tabela 1.2 fornece os ranges provenientes das relações entre os dois parâmetros. Tabela 1.2 – Tipos de Operador e Ranges. Tipo de operador Precisão Range Booleano Bit 0~1 Byte 0 ~ 255 Word 0 ~ 65535 Double word 0 ~ 4294967296 Byte* (-)127 ~ 127 Word (-) 32677 ~ 32677 Double word (-) 2147483647 ~ 2147483647 Real Ponto Flutuante Double word (FLOAT IEEE) (+) 1.175495E-38 ~ 3.402823E+38 (-) 1.175495E-38 ~ 3.402823E+38 Seqüência de Caracteres (CHAR) 1 + N.de Caracteres x 8 Bits ASCII (1~255 Caracteres) Inteiro sem sinal Inteiro * Nos controladores da serie S7-200 os dados do tipo Byte são sempre tratados como inteiro com sinal.
  • 3. 1.2. ENDEREÇAMENTO Para as diversas áreas de memória da CPU S7–200, com exceção das tabelas de pontos analógicos (entradas e saídas), dos contadores e timers, a forma de endereçamento obedece a seguinte lógica: Bit => [Área][Byte].[Bit] (Exemplo Q0.0, S34.6 ....) Byte => [Área][B][Byte] (Exemplo IB10, VB10 ....) Word => [Área][W][Byte inicial] (Exemplo SW4, VW6 ....) Double Word => [Área][D] [Byte inicial] (Exemplo VD0, ID20 ....) As tabelas de pontos analógicos são acessadas somente como Word. O endereço é definido pelo número da entrada “AI” ou saída “AQ” (Exemplo AQ0, AI4...). Os timers e contadores possuem duas áreas de memória distintas, um bit de staus e uma Word contendo o valor. O endereçamento utiliza o “T” ou “C” mais número do dispositivo. Tanto o bit quanto a Word possuem o mesmo endereço o programa diferencia-os pelo contexto ou pela instrução utilizada (Exemplo C0, T32...). Os contadores rápidos são tratados sempre como Double Word. O endereço e formado por “HC” mais o número do contador (Exemplo HC0, HC1...). Existem algumas particularidades que devem ser observadas quando do acesso aos endereços de memória. As figuras a seguir, podem ajudar a entendê-las. Mem Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 . Byte N Bit 0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 . N.0 Bit 1 0.1 1.1 2.1 3.1 4.1 5.1 6.1 . N.1 Bit 2 0.2 1.2 2.2 3.2 4.2 5.2 6.2 . N.2 Bit 3 0.3 1.3 2.3 3.3 4.3 5.3 6.3 . N.3 Figura 1.1 - Exemplo de um mapa memória genérico. Bit 4 0.4 1.4 2.4 3.4 4.4 5.4 6.4 . N.4 Bit 5 0.5 1.5 2.5 3.5 4.5 5.5 6.5 . N.5 Bit 6 0.6 1.6 2.6 3.6 4.6 5.6 6.6 . N.6 Bit 7 0.7 1.7 2.7 3.7 4.7 5.7 6.7 . N.7
  • 4. Fonte – Ilustração do autor A Figura 1.2 mostra um exemplo de acesso ao sexto bit do byte 1 na tabela imagem das entradas digitais. I0.0 I1.0 I2.0 I3.0 I4.0 I5.0 I6.0 I7.0 I8.0 I9.0 I0.1 I1.1 I2.1 I3.1 I4.1 I5.1 I6.1 I7.1 I8.1 I9.1 I0.2 I1.2 I2.2 I3.2 I4.2 I5.2 I6.2 I7.2 I8.2 I9.2 I0.3 I1.3 I2.3 I3.3 I4.3 I5.3 I6.3 I7.3 I8.3 I9.3 I0.4 I1.4 I2.4 I3.4 I4.4 I5.4 I6.4 I7.4 I8.4 I9.4 I0.5 I1.5 I2.5 I3.5 I4.5 I5.5 I6.5 I7.5 I8.5 I9.5 I0.6 I1.6 I2.6 I3.6 I4.6 I5.6 I6.6 I7.6 I8.6 I9.6 I0.7 I1.7 I2.7 I3.7 I4.7 I5.7 I6.7 I7.7 I8.7 I9.7 Figura 1.2 - Exemplo endereço tipo Bit. Fonte – Ilustração do autor Figura 1.3 mostra a estrutura da variável VB0. V0.0 V1.0 1.0 V2.0 V3.0 V4.0 V5.0 V0.1 V1.1 V2.1 V3.1 V4.1 V5.1 V0.2 V1.2 V2.2 V3.2 V4.2 V5.2 V0.3 V1.3 V2.3 V3.3 V4.3 V5.3 V0.4 V1.4 V2.4 V3.4 V4.4 V5.4 V0.5 V1.5 V2.5 V3.5 V4.5 V5.5 V0.6 V1.6 V2.6 V3.6 V4.6 V5.6 V0.7 V1.7 V2.7 V3.7 V4.7 V5.7 V6.0 V7.0 V6.1 V7.1 V6.2 V7.2 V6.3 V7.3 V6.4 V7.4 V6.5 V7.5 V6.6 V7.6 V6.7 V7.7 LSB V1.0 -- -- -VB1 -- -- -- Figura 1.3 - Exemplo endereço tipo Byte. Fonte – Ilustração do autor A Figura 1.4 mostra a estrutura da variável VW4 MSB V1.7
  • 5. V0.0 V1.0 V2.0 V3.0 V4.0 V5.0 V6.0 V7.0 V0.1 V1.1 V2.1 V3.1 V4.1 V5.1 V6.1 V7.1 V0.2 V1.2 V2.2 V3.2 V4.2 V5.2 V6.2 V7.2 V0.3 V1.3 V2.3 V3.3 V4.3 V5.3 V6.3 V7.3 LSB V0.5 V1.5 V2.5 V3.5 V4.5 V5.5 V6.5 V7.5 V5.7 V0.6 V1.6 V2.6 V3.6 V4.6 V5.6 V6.6 V7.6 V0.7 V1.7 V2.7 V3.7 V4.7 V5.7 V6.7 V7.7 MSB -- -- -VW4 VB5 -- -- -- V5.0 V0.4 V1.4 V2.4 V3.4 V4.4 V5.4 V6.4 V7.4 VB4 -- -- -- V4.0 V4.7 Figura 1.4 - Exemplo endereço tipo Word. Fonte – Ilustração do autor. Figura 1.5 mostra a estrutura da variável VD0. V0.0 V1.0 V2.0 V3.0 V4.0 V5.0 V6.0 V0.1 V1.1 V2.1 V3.1 V4.1 V5.1 V6.1 V0.2 V1.2 V2.2 V3.2 V4.2 V5.2 V6.2 V0.3 V1.3 V2.3 V3.3 V4.3 V5.3 V6.3 V0.4 V1.4 V2.4 V3.4 V4.4 V5.4 V6.4 V0.5 V1.5 V2.5 V3.5 V4.5 V5.5 V6.5 V0.6 V1.6 V2.6 V3.6 V4.6 V5.6 V6.6 V0.7 V1.7 V2.7 V3.7 V4.7 V5.7 V6.7 V7.0 V7.1 V7.2 V7.3 V7.4 V7.5 V7.6 V7.7 V8.0 V8.0 V8.0 V8.0 V8.0 V8.0 V8.0 V8.7 V9.0 V9.0 V9.0 V9.0 V9.0 V9.0 V9.0 V9.0 -- -- -VD0 LSB VW2 V3.0 VB3 -- V3.7 V2.0 VB2 -- V2.7 Figura 1.5 - Exemplo endereço tipo Doube Word. Fonte – Ilustração do autor. V1.0 MSB VW0 VB1 -- V1.7 V0.0 VB0 -- V0.7
  • 6. Cabe destacar que existe sobreposição das operandos, isto é, um mesmo conjunto de dados (bits) pode fazer parte de vários operandos. Este particularidade confere grande flexibilidade ao sistema, porem, exige atenção na definição dos endereços. Por exemplo, VB4 é a parte alta de VW4, assim sendo, um incremento de simples (somar mais um ao conteúdo) em VB4, implicará em um incremento 256 no valor de VW4. Outro ponto importante, Words consecutivas terão sempre um Byte em comum. De forma análoga Double Words compartilharão três Bytes. 1.3. ÁREAS DA MEMÓRIA DE APLICAÇÃO As Tabelas 1.3, 1.4 e 1.5 contém detalhes da memória da CPU 224, estes podem esclarecer alguns pontos que por ventura tenham ficado obscuros nos tópicos anteriores. Tabela 1.3 – Áreas de memória 1 CPU 224 V2.00 Área Descrição TIPO DE ACESSO Bit Byte Word Dword I Entradas Digitais Leitura|Escrita Leitura|Escrita Leitura|Escrita Registradores da imagem Leitura|Escrita Q Saídas Digitais Leitura|Escrita Leitura|Escrita Leitura|Escrita Registradores da imagem Leitura|Escrita M Memória interna Leitura|Escrita Leitura|Escrita Leitura|Escrita Leitura|Escrita SM Memória Especial SM0 ~ SM29 -> Só Leitura Leitura|Escrita Leitura|Escrita Leitura|Escrita Leitura|Escrita V Variáveis Leitura|Escrita Leitura|Escrita Leitura|Escrita Leitura|Escrita T Timers T - Bit Leitura|Escrita Não T - Valor Leitura|Escrita Não C Contadores C - Bit Leitura|Escrita Não C - Valor Leitura|Escrita Não HC Contadores Rápidos Não Não Não Leitura apenas AI Entradas Analógicas Não Não Leitura apenas Não AQ Saídas Analógicas Não Não Escrita apenas Não L Variáveis Locais Leitura|Escrita Leitura|Escrita Leitura|Escrita Leitura|Escrita
  • 7. A retentividade é a característica de certas áreas de manter o valor mesmo quando o CLP for desligado. Forçar um operando, significa alterar seu valor através do canal de comunicação serial. As propriedades como a retentividade e a permissão de forçar valores bem como range de cada uma das áreas de memória são descritas na Tabela 1.4. Tabela 1.4 – Áreas de memória 2. CPU 224 V2.00 PODE SER Área Range Descrição Retentiva Forçada I I0.0 ~ I15.7* Entradas Digitais Registradores da imagem Não Sim Q Q0.0 ~ Q15.7* Saídas Digitais Registradores da imagem Não Sim M** M0.0 ~ M31.7 Memória interna Sim Sim SM SM0.0 ~ SM549.7 Memória Especial SM0 ~ SM29 -> Só Leitura Não Não V** V0.0 ~ V8191.7 Variáveis Sim Sim T T0 ~ T255 Timers Valor-> Sim Bit -> Não Não C C0 ~ C255 Contadores Valor-> Sim Bit -> Não Não HC HC0 ~ HC5 Contadores Rápidos Não Não AI AI0 ~AI15 Entradas Analógicas Não Sim AQ AQ0 ~AQ15 Saídas Analógicas Não Sim L 0 ~ 59 Variáveis Locais Não Não * O número de pontos nas tabelas de entradas e saídas digitais é significativamente maior do que a quantidade de pontos físicos, mesmo que sejam usadas todas as expansões possíveis. Este espaço pode ser usado como memória adicional. ** Pode armazenar operandos do tipo CHAR. O fabricante do equipamento definiu que cada área de memória sendo acessada com certo tipo de dado somente aceitará determinado operado. A Tabela 1.5 mostra tais convenções.
  • 8. Tabela 1.5 – Áreas de memória 3. Área Bit Byte Word Dword I Booleano Inteiro sem sinal Inteiro sem sinal Inteiro sem sinal Q Booleano Inteiro sem sinal Inteiro sem sinal Inteiro sem sinal M Booleano Inteiro sem sinal Inteiro sem sinal Inteiro sem sinal V Booleano Inteiro sem sinal Inteiro Real (ponto flutuante) T T - Bit -> Booleano Não T - Valor - > Inteiro Não C C - Bit -> Booleano Não C - Valor - > Inteiro Não HC Não Não Não Inteiro sem sinal AI Não Não Inteiro sem sinal Inteiro sem sinal AQ Não Não Inteiro sem sinal Não
  • 9. 2. SYMBOL TABLE A tabela símbolos (symbol table) pode ser utilizada para definir tags – nomes para variáveis ou endereços – e definir constantes. A utilização de tags auxilia a organização do programa e permite ao programador associar os endereços a termos mais amigáveis. Figura 2.1 – Tela com exemplo Fonte – S7 MicroWin.
  • 10. Existe uma área para comentários, estes podem ser exibidos nas lógicas, ou não, dependendo das preferências setadas. Há também campos para indicar tags ou endereços repetidos e inválidos, além disto, os endereços inválidos aparecerão em vermeho. Para definir constantes, deve–se saber que: Os valores alfanuméricos (tipo CHAR) devem ficar entre aspas Números sem indicação de base são decimais. Números sem ponto serão tratados como INTEIROS. Números com ponto serão tratados como FLOAT. Para utilizar outras bases: BASE#VALOR por exemplo, 2#1011, 16#3EF. Para forçar operadores booleanos deve-se usar base dois com um digito apenas.
  • 11. 3. STATUS Chart Trata-se de uma ferramenta extremamente simples e de grande valor. Permite monitorar e forçar o valor das variáveis em tempo real. Figura 3.1 – Tela com exemplo Fonte – S7 MicroWin.
  • 12. 4. INSTRUÇÕES DE PROGRAMAÇÃO 4.1. COMPARAÇÃO As expressões estão contidas no menu “Compare” do “Instruction”. Todos os blocos têm comportamento de um contato NA, que é ativando quando a expressão lógica for verdadeira. As operações aceitas são igual, igual ou maior, igual ou menor, maior, menor e diferente. As comparações utilizam sempre dois elementos, que serão chamados Operando 1 e Operando 2. Somente podem ser comparados operandos de mesma classe de dados – Bytes (Inteiro sem Sinal), Inteiros (Word), Inteiros (Double Word) e Reais (Float). Vale lembrar que o OP1 deve ser necessariamente um endereço de memória, isto é, uma variável. Já o OP2 pode ser variável ou constante. Compara e ativa a saída do bloco, se os Bytes dos Operandos são iguais. Compara e ativa a saída do bloco se os Inteiros (Word) dos Operandos são iguais. Compara e ativa a saída do bloco se os Inteiros (Double Word) dos Operandos são iguais. Compara e ativa a saída do bloco se os Reais dos Operandos são iguais. Compara e ativa a saída do bloco se os Bytes dos Operandos são diferentes.
  • 13. Compara e ativa a saída do bloco se os Inteiros (Word) dos Operandos são diferentes. Compara e ativa a saída do bloco se os Inteiros (Double Word) dos Operandos são diferentes. Compara e ativa a saída do bloco se os Reais dos Operandos são diferentes. Compara e ativa a saída do bloco se o Byte do OP1 for maior ou igual a OP2. Compara e ativa a saída do bloco se o Inteiro (Word) do OP1 for maior ou igual a OP2. Compara e ativa a saída do bloco se o Inteiro (Double Word) do OP1 for maior ou igual a OP2. Compara e ativa a saída do bloco se o Real do OP1 for maior ou igual a OP2. Compara e ativa a saída do bloco se o Byte do OP1 for menor ou igual a OP2. Compara e ativa a saída do bloco se o Inteiro (Word) do OP1 for menor ou igual a OP2. Compara e ativa a saída do bloco se o Inteiro (Double Word) do OP1 for menor ou igual a OP2. Compara e ativa a saída do bloco se o Real do OP1 for menor ou igual a OP2.
  • 14. Compara e ativa a saída do bloco se o Byte do OP1 for maior a OP2. Compara e ativa a saída do bloco se o Inteiro (Word) do OP1 for maior a OP2. Compara e ativa a saída do bloco se o Inteiro (Double Word) do OP1 for maior a OP2. Compara e ativa a saída do bloco se o Real do OP1 for maior a OP2. Compara e ativa a saída do bloco se o Byte do OP1 for menor a OP2. Compara e ativa a saída do bloco se o Inteiro (Word) do OP1 for menor a OP2. Compara e ativa a saída do bloco se o Inteiro (Double Word) do OP1 for menor a OP2. Compara e ativa a saída do bloco se o Real do OP1 for menor a OP2. 4.2. ESCRITA NA MEMÓRIA As instruções de escrita na memória ou de movimentação de dados estão contidas no menu “Move” do “insruction”.
  • 15. Quando a entrada “EN” for acionada, o Byte contido em “IN” (pode ser um endereço ou uma constante) é movido para “OUT” (deve ser obrigatoriamente uma variável – endereço). Quando a entrada “EN” for acionada, o Word contido em “IN” (pode ser um endereço ou uma constante) é movido para “OUT” (deve ser obrigatoriamente uma variável – endereço). Quando a entrada “EN” for acionada, o Double Word contido em “IN” (pode ser um endereço ou uma constante) é movido para “OUT” (deve ser obrigatoriamente uma variável – endereço). Quando a entrada “EN” for acionada, os “N” ((“N” é um byte, pode ser variável ou constante) Bytes contidos a partir do endereço “IN” são movido para os “N” endereços iniciando em “OUT”. Quando a entrada “EN” for acionada, os “N” (“N” é um byte, pode ser variável ou constante) Word contidos a partir do endereço “IN” são movido para os “N” endereços iniciando em “OUT”. Quando a entrada “EN” for acionada, os “ N” ((“N” é um byte,pode ser variável ou constante) Double Word contidos a partir do endereço “IN” são movido para os “N” endereços iniciando em “OUT”.
  • 16. 4.3. MATEMÁTICA DE INTEIROS As instruções do “Integer Math” permitem que sejam realizadas operações matemáticas (fundamentais: adição, subtração, multiplicação, divisão, incremento e decremento) com números inteiros. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” + “IN2”. OUT => Inteiro (Word), obrigatoriamente variável. IN1 => Inteiro (Word), constate ou variável. IN2 => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” + “IN2”. OUT => Inteiro (Double Word), obrigatoriamente variável. IN1 => Inteiro (Double Word), constate ou variável. IN2 => Inteiro (Double Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” - “IN2”. OUT => Inteiro (Word), obrigatoriamente variável. IN1 => Inteiro (Word), constate ou variável. IN2 => Inteiro (Word), obrigatoriamente variável.
  • 17. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” - “IN2”. OUT => Inteiro (Double Word), obrigatoriamente variável. IN1 => Inteiro (Double Word), constate ou variável. IN2 => Inteiro (Double Word), obrigatoriamente variável. Quando “EM” recebe energia, executa a operação “OUT” = “IN1” x “IN2”. (Multipica duas Words e obtém uma Double Word). OUT => Inteiro (Double Word), obrigatoriamente variável. IN1 => Inteiro (Word), constate ou variável. IN2 => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” x “IN2”. OUT => Inteiro (Word), obrigatoriamente variável. IN1 => Inteiro (Word), constate ou variável. IN2 => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” x “IN2”. OUT => Inteiro (Double Word), obrigatoriamente variável. IN1 => Inteiro (Double Word), constate ou variável. IN2 => Inteiro (Double Word), obrigatoriamente variável.
  • 18. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” / “IN2”. (Divide uma Double por uma Word e obtém uma Word) OUT => Inteiro (Word), obrigatoriamente variável. IN1 => Inteiro (Double Word), constate ou variável. IN2 => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” / “IN2”. OUT => Inteiro (Word), obrigatoriamente variável. IN1 => Inteiro (Word), constate ou variável. IN2 => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN1” / “IN2”. OUT => Inteiro (Double Word), obrigatoriamente variável. IN1 => Inteiro (Double Word), constate ou variável. IN2 => Inteiro (Double Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN” + 1. OUT => Byte, obrigatoriamente variável. IN => Byte, obrigatoriamente variável.
  • 19. Quando “EN” recebe energia, executa a operação “OUT” = “IN” + 1. OUT => Inteiro (Word), obrigatoriamente variável. IN => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN” + 1. OUT => Inteiro (Double Word), obrigatoriamente variável. IN => Inteiro (Double Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = ““IN” - 1. OUT => Byte, obrigatoriamente variável. IN => Byte, obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN” - 1. OUT => Inteiro (Word), obrigatoriamente variável. IN => Inteiro (Word), obrigatoriamente variável. Quando “EN” recebe energia, executa a operação “OUT” = “IN” - 1. OUT => Inteiro (Double Word), obrigatoriamente variável. IN => Inteiro (doubleWord), obrigatoriamente variável.
  • 20. 5. CONFIGURANDO A IHM TD 200 Tanto as mensagens que serão exibidas, quanto as definições dos flags de controle serão enviados ao controlador como parte integrante do programa. Para realizar tal tarefa, o Step7–MicroWin utiliza um tutorial, esse é acessado pelo menu “Tools” opção “Text Display Wizard ...” 1 2 3 Após iniciar o tutorial, receberemos uma tela de boas vindas, basta clicar na opção “next”.
  • 21. Na segunda tela, será selecionado o tipo de IHM a ser programado. No caso presente, trata-se da Versão 2.1. A tela seguinte diz respeito à seleção do idioma (inglês, alemão, francês, italiano, chinês ou espanhol) e do tipo de fonte (letra). 4 4 No quarto passo existem três CheckBox a opção “A” permite visualizar e setar o relógio de tempo real no menu da IHM. A opção “B” permite alterar o conteúdo das variáveis exibidas na tela. E, a opção “C” pode habilitar o uso de senha para realizar tais tarefas, note que quanto a senha é desabilitada o campo para digita-la desaparece. 5 6
  • 22. A quinta etapa consiste em selecionar quais bits de memória (Mx.y) serão responsáveis por transferir ao programa o nível lógico das teclas F1 ~ F8. Assim, se a opção for o byte de memória 31, M31.0 fica vinculado à tecla F1, M31.1 à tecla F2 e assim sucessivamente. Neste todos os contados de M31.3 existentes no programa, serão invertidos quando a tecla F4 for pressionada. O display da TD 200 possui duas linhas com vinte colunas cada. A primeira CheckBox da sexta tela possibilita escolher entre mensagens com vinte caracteres (duas por tela) ou quarenta caracteres (uma por tela). No campo seguinte, deve-se declarar o número total de mensagens que serão utilizadas. Lembre-se que cada mensagem ocupará quarenta bytes (vinte words) da memória de trabalho. 7 8 Na sétima tela serão configurados os endereços de memória que controlam a exibição das mensagens, bem como o endereço inicial onde elas serão armazenadas. São necessários quatorze bytes para a inicializar a IHM. O primeiro campo define o endereço inicial. No campo seguinte define-se o endereço inicial dos flags que controlam a exibição das mensagens na tela. Este endereço precisa distar quatorze bytes daquele definido no campo acima. Cada mensagem possui um único flag, portando, esta área da memória terá o tamanho igual ao numero de mensagens dividido por oito (se o resto da divisão não for nulo, ele ocupará mais um byte)
  • 23. O ultimo campo deve conter a posição de memória em que os caracteres das mensagens serão armazenados. Na oitava tela é efetuado o preenchimento do texto a ser exibido. Para passar a mensagem seguinte basta clicar em “Next Message”. 8 9 Em cada caixa são exibidos o endereço do bit de controle e o byte inicial donde os caracteres são armazenados. Caso tenha sido selecionada, na tela 7, a posição VB14 como inicial para os flags de controle, o endereçamento seguirá a tabela abaixo. V14.7 MSG 1 V14.6 MSG 2 V14.5 MSG 3 V14.4 MSG 4 V14.3 MSG 5 V14.2 MSG 6 V14.1 MSG 7 V14.0 MSG 8 V15.7 MSG 9 V15.6 MSG 10 V15.5 MSG 11 V15.4 MSG 12 V15.3 MSG 13 V15.2 MSG 14 V15.1 MSG 15 V15.0 MSG 16 V16.7 MSG 17 V16.6 MSG 18 V16.5 MSG 19 V16.4 MSG 20 V16.3 MSG 21 V16.2 MSG 22 V16.1 MSG 23 V16.0 MSG 24 V17.7 MSG 25 V17.6 MSG 26 V17.5 MSG 27 V17.4 MSG 28 V17.3 MSG 29 V17.2 MSG 30 …
  • 24. Desta maneira, quando o bit V14.7 é setado, a Mensagem 1 é exibida no display. Se mais de uma for mensagem habilitada será exibida a de menor índice. Para visualizar as outras use as teclas direcionais. Por exemplo, se o programa em questão necessitar de nove mensagens e o primeiro campo for definido com “byte 0” (VB0). O segundo campo deve ser definido como quatorze. Se existem nove mensagens, os “bytes 14 e 15” (VB14 e VB15) ficam reservados para esta função. O terceiro campo deve ser dezesseis, serão necessários trezentos sessenta bytes (9 x 40) para armazenar os caracteres, ou seja, VB16 até VB375. Para este exemplo, as variáveis de programa devem começar na posição VB376.