You are on page 1of 15

Instrues Dependentes do Estado Lgico Binrio

Registradores e reas de Memria em uma CPU S7


Acumuladores
ACCU1
ACCU4
ACCU3
ACCU2
Somente
S7-400
AR2
AR1
Registradores de Endereos
DB aberto
Registrador de Bloco de Dados
DI aberto
Status Bits
Palavra de Status
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
32 Bit
16 Bit 16 Bit
16 Bit
Memria de Carga
- Blocos Lgicos
- Blocos de Dados
Memria de Trabalho
- Blocos Lgicos
- Blocos de Dados
rea de I/O
Memria de Sistema
- Imagem de processo de entrada
- Imagem de processo de sada
- Bit de memria
- Temporizadores
- Contadores

- Pilha de Dados Locais
- Pilha de Interrupo
- Pilha de Blocos
Registradores na CPU S7 reas de Memrias na CPU S7
T, S, =,...
L, A, O,...
Tamanho DB
Tamanho DI
Estrutura da Palavra de Status
Bit Tarefa Grandeza Significado

0 /FC 2
0
Primeiro Cheque

1 RLO 2
1
Resultado Lgico da Operao

2 STA 2
2
Status

3 OR 2
3
Or (ou)

4 OS 2
4
Estouro Armazenado

5 OV 2
5
Estouro

6 CC0 2
6
Bit de Resultado

7 CC1 2
7
Bit de Resultado

8 BR 2
8
Resultado Binrio

9...15 sem 2
9
..2
10

funo
Significado dos bits na palavra de status
Checando os Bits de Status
OV
S >0
M 4.0
M 4.0
S
Cheque em STL
A OV Verifica o estouro de capacidade
A OS Verifica o estouro de capacidade memorizado
A BR Verifica o bit de memria BR
Cheque do Resultado Binrio (CC0, CC1)
A ==0 Resultado igual a 0
A > 0 Resultado maior que 0
A <>0 Resultado no igual a 0
A =<0 Resultado menor que ou igual a 0
etc.
A UO Operao no permitida
Cheque em LAD e em FBD
Instrues com Bits de Status
Instruo Significado Exemplo

SET Fixa o RLO em "1" SET //RLO-1-bit de memria
= M 0.1

CLR Fixa RLO em "0" CLR //RLO-0-bit de memria

NOT Inverte o RLO O Manual
O Automtico
NOT;
= modo de operao
= M0.0


SAVE Salva o RLO no resultado binrio



A BR Verifica o resultado binrio
I 1.0 I 1.1 I 1.2
BR Q 4.2 Q 5.0
SAVE
Bit BR e ENO em uma Chamada de Bloco ou Funo Complexa
LAD STL
Network 1: Programa Cclico
FC23
I0.0
EN
MW12
Step_bit
_memory
Step_
display
ENO ( )
M10.0
QW12
Network 2: ???
ADD_I
EN
345 IN1
OUT
ENO ( )
M10.1
MW100
987 IN2
Network 1: Programa Cclico
A I 0.0
JNB _001
CALL FC 23
Step_bit_memory :=MW12
Step_display :=QW12
_001: A BR
= M 10.0
Network 2: ???
L 345
L 987
+I
T MW 100
AN OV
SAVE
CLR
A BR
= M 10.1
Funes de salto (Jump) dependentes dos Bits de Status
JU Label
1)
Salto Incondicional

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

JCN Label
1)
salto se o bit "RLO" = 0

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

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

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

JBNI Label
1)
salto se o bit "BR" = 0

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

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


1)
Rtulo (Label) pode ser
constitudo de at 4 dgitos
alfanumricos

Funes de Salto dependentes dos Cdigos de Condio
JZ Label
1)
Salta se na palavra de status o bit "CC1"=0 e "CC0"=0
(Resultado = 0)

JN Label
1)
Salta se na palavra de status o bit "CC1" no for igual a "CC0"
(Resultado <> 0)

JP Label
1)
Salta se na palavra de status o bit "CC1"=1 e "CC0"=0
(Resultado > 0)

JM Label
1)
Salta se na palavra de status o bit "CC1"=0 e "CC0"=1
(Resultado < 0)

JPZ Label
1)
Combina os saltos JZ e JP
(Resultado >= 0)

JMZ Label
1)
Combina os saltos JM e JZ
(Resultado <= 0)

JUO Label
1)
Salta se: nmero real invlido desordenado ou diviso por zero



1)
Rtulo (Label) pode ser constitudo de at 4 dgitos
alfanumricos
Programao do Distribuidor de Saltos
Carrega o
nmero do salto
JL Over
.
.
.
Instrues para
ACCU1 > n
Exemplo: Distribuidor de saltos com 3 entradas
L Recipe no // Carrega o nmero da receita
JL OVER // Distribuidor de saltos com 3
entradas
JU Rec0 // Salta para receita No. 0 (ACCU1 =
0)
JU Rec1 // Salta para receita No. 1 (ACCU1 =
1)
JU Rec2 // Salta para receita No. 2 (ACCU1 =
2)
OVER: JU ERROR // Salta se ACCU1 > 2
...
Rec0: L DBW4
...
Rec1: L DBW6
...
Rec2: L DBW8
...
ERROR: CLR
...
Modo de Operao
Label_n:
JU Label_1
JU Label_n
Instrues para
ACCU1 = 0
.
.
.
Instrues para
ACCU1 = n
Over:
Label_1:
Programao de Instrues de Loop (voltas)
Inicializa o
contador de voltas
LOOP NEXT
(Decrementa ACCU1
ACCU1<>0?)
Sim
No
Continuar
NEXT:
Sesso de cdigos
a serem executados
diversas vezes
Carrega o contador de
voltas no ACCU1.
Exemplo: Instrues de Loop (voltas)
com 4 varreduras
L +4 // Carrega o contador de voltas
NEXT: T MW10 // Incio do loop
. // Cdigo
. // Cdigo
. // Cdigo
L MW10 // Carrega o contador de voltas
// novamente
LOOP NEXT // Contador de voltas -1 e
// salta para o rtulo NEXT
// se Accu 1> 0
Modo de Operao
Transfere para o
contador de voltas

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


Instrues de Fim de Bloco
RET
Exerccio 1.1: Salto aps uma Subtrao
Chave rotativa
1 2 3 4
- D
Resultado positivo (>=0)
Escreve o valor de IW 4
no display
Deleta o display
Resultado negativo
[JM Label]
converte p/
DINT
converte p/
DINT
BTD
BTD
Chave rotativa: IW4 (IW2, mod. 32 bit)
Chaves de teste: IW0 (IW0, mod. 32 bit)
Display: QW12 (QW6, mod. 32 bit)

2
0
2
15
2
7
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Exerccio 1.2: Salto aps uma Multiplicao
*I
Sem estouro
Escreve o resultado
no display
Apaga o display
Estouro
[JO Label]
DTB
Converte o resultado
para BCD
Chave rotativa: IW4 (IW2, mod. 32 bit)
Chaves de teste: IW0 (IW0, mod. 32 bit)
Display: QW12 (QW6, mod. 32 bit)

Chave rotativa
1 2 3 4
converte p/
DINT
converte p/
DINT
BTD
BTD
2
0
2
15
2
7
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Exerccio 1.3: Programando um Distribuidor de Saltos
Chave rotativa
1
1
2
3
4
5
Motor_girar para direita
Motor_girar para esquerda
Desligar motor
Ligar buzina
Desligar buzina
Saltar via salto para lista
Funo:
[JL Label]
Label:
Endereos: 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

You might also like