Você está na página 1de 15

Instruções Dependentes do Estado Lógico Binário

Registradores e Áreas de Memória em uma CPU S7


Acumuladores
ACCU4 32 Bit
Somente Memória de Carga
S7-400 ACCU3 32 Bit - Blocos Lógicos
- Blocos de Dados

ACCU2 32 Bit

ACCU1 32 Bit Memória de Trabalho


- Blocos Lógicos
L, A, O,... - Blocos de Dados
Registradores de Endereços
AR1 32 Bit
Área de I/O
T, S, =,...
AR2 32 Bit

Registrador de Bloco de Dados Memória de Sistema


- Imagem de processo de entrada
DB aberto Tamanho DB - Imagem de processo de saída
- Bit de memória
DI aberto Tamanho DI - Temporizadores
- Contadores

16 Bit 16 Bit - Pilha de Dados Locais


- Pilha de Interrupção
Palavra de Status - Pilha de Blocos
Status Bits 16 Bit

Registradores na CPU S7 Áreas de Memórias na CPU S7


Estrutura da Palavra de Status

Significado dos bits na palavra de status


Bit Tarefa Grandeza Significado

0 /FC 20 Primeiro Cheque

1 RLO 21 Resultado Lógico da Operação

2 STA 22 Status

3 OR 23 Or (ou)

4 OS 24 Estouro Armazenado

5 OV 25 Estouro

6 CC0 26 Bit de Resultado

7 CC1 27 Bit de Resultado

8 BR 28 Resultado Binário

9...15 sem 29 ..210


função
Checando os Bits de Status

 Cheque em STL
A OV Verifica o estouro de capacidade
A OS Verifica o estouro de capacidade memorizado
A BR Verifica o bit de memória BR

 Cheque do Resultado Binário (CC0, CC1)


A ==0 Resultado igual a 0
A >0 Resultado maior que 0
A <>0 Resultado não igual a 0
A =<0 Resultado menor que ou igual a 0
etc.
A UO Operação não permitida

 Cheque em LAD e em FBD

OV M 4.0 M 4.0
S >0 S
Instruções com Bits de Status

Instrução Significado Exemplo

SET Fixa o RLO em "1" SET //RLO-1-bit de memória


= M 0.1

CLR Fixa RLO em "0" CLR //RLO-0-bit de memória

NOT Inverte o RLO O Manual


O Automático
NOT;
= modo de operação
= M0.0

I 1.0 I 1.1 I 1.2


SAVE Salva o RLO no resultado binário SAVE

BR Q 4.2 Q 5.0
A BR Verifica o resultado binário
Bit BR e ENO em uma Chamada de Bloco ou Função Complexa

LAD STL

Network 1: Programa Cíclico Network 1: Programa Cíclico


A I 0.0
I0.0 FC23 M10.0 JNB _001
EN ENO ( ) CALL FC 23
Step_bit_memory :=MW12
Step_bit Step_ Step_display :=QW12
MW12 _memory display QW12 _001: A BR
= M 10.0

Network 2: ??? Network 2: ???


L 345
ADD_I M10.1 L 987
EN ENO ( ) +I
T MW 100
345 IN1 OUT MW100 AN OV
SAVE
987 IN2 CLR
A BR
= M 10.1
Funções de salto (Jump) dependentes dos Bits de Status

JU Label1) Salto Incondicional

JC Label1) salta se o bit "RLO" =1

JCN Label1) salto se o bit "RLO" = 0

JCB Label1) salto se o bit "RLO" = 1 e salva RLO

JNB Label1) salto se o bit "RLO" = 0 e salva RLO

JBI Label1) salto se o bit "BR" = 1

JBNI Label1) salto se o bit "BR" = 0

JO Label1) salto se o bit "OV" na palavra de status =1

JOS Label1) salto se o bit "OS" na palavra de status =1


1)
Rótulo (Label) pode ser constituído de até 4 dígitos
alfanuméricos
Funções de Salto dependentes dos Códigos de Condição

JZ Label1) Salta se na palavra de status o bit "CC1"=0 e "CC0"=0


(Resultado = 0)

JN Label1) Salta se na palavra de status o bit "CC1" não for igual a "CC0"
(Resultado <> 0)

JP Label1) Salta se na palavra de status o bit "CC1"=1 e "CC0"=0


(Resultado > 0)

JM Label1) Salta se na palavra de status o bit "CC1"=0 e "CC0"=1


(Resultado < 0)

JPZ Label1) Combina os saltos JZ e JP


(Resultado >= 0)

JMZ Label1) Combina os saltos JM e JZ


(Resultado <= 0)

JUO Label1) Salta se: número real inválido “desordenado” ou divisão por zero

1)
Rótulo (Label) pode ser constituído de até 4 dígitos
alfanuméricos
Programação do Distribuidor de Saltos

Modo de Operação Exemplo: Distribuidor de saltos com 3 entradas


Carrega o L Recipe no // Carrega o número da receita
número do salto
JL OVER // Distribuidor de saltos com 3 entradas
JL Over
JU Label_1 JU Rec0 // Salta para receita No. 0 (ACCU1 = 0)
..
. JU Rec1 // Salta para receita No. 1 (ACCU1 = 1)

JU Label_n JU Rec2 // Salta para receita No. 2 (ACCU1 = 2)

Over: Instruções para OVER: JU ERROR // Salta se ACCU1 > 2


ACCU1 > n
...
Label_1: Instruções para
ACCU1 = 0 Rec0: L DBW4
...
..
. Rec1: L DBW6
...
Label_n: Instruções para
ACCU1 = n Rec2: L DBW8
...
ERROR: CLR
...
Programação de Instruções de Loop (voltas)

Modo de Operação Exemplo: Instruções de Loop (voltas)


com 4 varreduras
Inicializa o
contador de voltas L +4 // Carrega o contador de voltas

Transfere para o
NEXT: contador de voltas NEXT: T MW10 // Início do loop

Sessão de códigos . // Código


a serem executados
diversas vezes . // Código

Carrega o contador de
. // Código
voltas no ACCU1.
L MW10 // Carrega o contador de voltas
LOOP NEXT
Sim // novamente
(Decrementa ACCU1
ACCU1<>0?)
LOOP NEXT // Contador de voltas -1 e
Não // salta para o rótulo NEXT
Continuar // se Accu 1> 0
Instruções de Fim de Bloco

 BE Fim de Bloco

 BEU Fim de Bloco Incondicional (dentro de um bloco)

 BEC Fim de Bloco Condicional (dependente do RLO)

(RET) mostrado em LAD

mostrado em FBD

RET
Exercício 1.1: Salto após uma Subtração

Chave rotativa Chaves de teste no simulador

1 2 3 4 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
215 27 20
converte p/ BTD BTD converte p/
DINT DINT

-D
Resultado positivo (>=0)

Resultado negativo
[JM Label]

Deleta o display Escreve o valor de IW 4


no display

Chave rotativa: IW4 (IW2, mod. 32 bit)


Chaves de teste: IW0 (IW0, mod. 32 bit)
Display: QW12 (QW6, mod. 32 bit)
Exercício 1.2: Salto após uma Multiplicação

Chave rotativa Chaves de teste no simulador

1 2 3 4 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
215 27 20
converte p/ BTD BTD converte p/
DINT DINT

*I
Sem estouro

Estouro DTB Converte o resultado


para BCD
[JO Label]

Apaga o display Escreve o resultado


no display

Chave rotativa: IW4 (IW2, mod. 32 bit)


Chaves de teste: IW0 (IW0, mod. 32 bit)
Display: QW12 (QW6, mod. 32 bit)
Exercício 1.3: Programando um Distribuidor de Saltos
Função:
Chave rotativa

1 [JL Label]

1
Motor_girar para direita
2
Motor_girar para esquerda
3
Desligar motor
4
Ligar buzina
5
Desligar buzina

Label: Saltar via salto para lista

Endereços: S7-300 (16-Bit) S7-300 (32-Bit)


I0.0 I0.0
Q8.0 Q4.0
Motor_direita: Q20.5 Q8.5
Motor_esquerda: Q20.6 Q8.6
Buzina: Q20.7 Q8.7
www.apostilastecnicas.com

Você também pode gostar