Sei sulla pagina 1di 15

Instrues Dependentes do Estado Lgico Binrio

Registradores e reas de Memria em uma CPU S7


Acumuladores
ACCU4 32 Bit
Somente Memria de Carga
S7-400 ACCU3 32 Bit - Blocos Lgicos
- Blocos de Dados

ACCU2 32 Bit

ACCU1 32 Bit Memria de Trabalho


- Blocos Lgicos
L, A, O,... - Blocos de Dados
Registradores de Endereos
AR1 32 Bit
rea de I/O
T, S, =,...
AR2 32 Bit

Registrador de Bloco de Dados Memria de Sistema


- Imagem de processo de entrada
DB aberto Tamanho DB - Imagem de processo de sada
- Bit de memria
DI aberto Tamanho DI - Temporizadores
- Contadores

16 Bit 16 Bit - Pilha de Dados Locais


- Pilha de Interrupo
Palavra de Status - Pilha de Blocos
Status Bits 16 Bit

Registradores na CPU S7 reas de Memrias 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 Lgico da Operao

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 Binrio

9...15 sem 29 ..210


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

OV M 4.0 M 4.0
S >0 S
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

I 1.0 I 1.1 I 1.2


SAVE Salva o RLO no resultado binrio SAVE

BR Q 4.2 Q 5.0
A BR Verifica o resultado binrio
Bit BR e ENO em uma Chamada de Bloco ou Funo Complexa

LAD STL
Network 1: Programa Cclico Network 1: Programa Cclico
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
Funes 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) Rtulo (Label) pode ser constitudo de at 4 dgitos
alfanumricos
Funes de Salto dependentes dos Cdigos de Condio

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" no 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: nmero real invlido desordenado ou diviso por zero

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


alfanumricos
Programao do Distribuidor de Saltos

Modo de Operao Exemplo: Distribuidor de saltos com 3 entradas


Carrega o L Recipe no // Carrega o nmero da receita
nmero do salto
JL Over JL OVER // Distribuidor de saltos com 3 entradas

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)

Instrues para OVER:JU ERROR // Salta se ACCU1 > 2


Over:
ACCU1 > n ...
Label_1: Instrues para Rec0: L DBW4
ACCU1 = 0
...
.. Rec1: L DBW6
.
...
Label_n: Instrues para
ACCU1 = n Rec2: L DBW8
...
ERROR: CLR
...
Programao de Instrues de Loop (voltas)

Modo de Operao Exemplo: Instrues de Loop (voltas)


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

Transfere para o
NEXT: NEXT: T MW10 // Incio do loop
contador de voltas

Sesso de cdigos . // Cdigo


a serem executados
diversas vezes . // Cdigo

Carrega o contador de . // Cdigo


voltas no ACCU1.
L MW10 // Carrega o contador de voltas

LOOP NEXT // novamente


Sim
(Decrementa ACCU1
ACCU1<>0?)
LOOP NEXT // Contador de voltas -1 e
No // salta para o rtulo NEXT
// se Accu 1> 0
Continuar
Instrues 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

RET mostrado em FBD


Exerccio 1.1: Salto aps uma Subtrao

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)
Exerccio 1.2: Salto aps uma Multiplicao

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)
Exerccio 1.3: Programando um Distribuidor de Saltos
Funo:
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

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

Potrebbero piacerti anche