Anda di halaman 1dari 15

Instrues Dependentes do Estado Lgico Binrio

Registradores e reas de Memria em uma CPU S7


Acumuladores
ACCU4
Somente
S7-400

32 Bit

Memria de Carga
ACCU3

32 Bit

ACCU2

32 Bit

ACCU1

32 Bit

Blocos Lgicos
Blocos de Dados

32 Bit

AR2

32 Bit

Registrador de Bloco de Dados


DB aberto

Tamanho DB

DI aberto

Tamanho DI

16 Bit

16 Bit

Palavra de Status
Status Bits

Blocos Lgicos
Blocos de Dados

Memria de Trabalho
L, A, O,...

Registradores de Endereos
AR1

rea de I/O

T, S, =,...

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

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

/FC

20

Primeiro Cheque

RLO

21

Resultado Lgico da Operao

STA

22

Status

OR

23

Or (ou)

OS

24

Estouro Armazenado

OV

25

Estouro

CC0

26

Bit de Resultado

CC1

27

Bit de Resultado

BR

28

Resultado Binrio

9...15

sem
funo

29 ..210

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
S

>0

M 4.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

NOT

Inverte o RLO

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

//RLO-0-bit de memria

I 1.0
SAVE

Salva o RLO no resultado binrio

Verifica o resultado binrio

I 1.2
SAVE

BR
A BR

I 1.1

Q 4.2

Q 5.0

Bit BR e ENO em uma Chamada de Bloco ou Funo Complexa


LAD

STL

Network 1: Programa Cclico


FC23

I0.0

ENO

( )

Step_
Step_bit
_memory display

QW12

EN

MW12

M10.0

Network 2: ???
ADD_I

M10.1

EN

ENO

( )

345

IN1

OUT

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 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
Carrega o
nmero do salto

Exemplo: Distribuidor de saltos com 3 entradas


L Recipe no // Carrega o nmero da receita

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 Rec2

// Salta para receita No. 2 (ACCU1 = 2)

JU Label_n
Over:

Instrues para
ACCU1 > n

OVER:JU ERROR // Salta se ACCU1 > 2

Label_1:

Instrues para
ACCU1 = 0

Rec0: L DBW4

...
...

..
.
Label_n:

Instrues para
ACCU1 = n

Rec1: L DBW6
...
Rec2: L DBW8
...
ERROR: CLR
...

Programao de Instrues de Loop (voltas)


Modo de Operao
Inicializa o
contador de voltas
Transfere para o
contador de voltas

NEXT:

Sesso de cdigos
a serem executados
diversas vezes
Carrega o contador de
voltas no ACCU1.

Sim

Exemplo: Instrues de Loop (voltas)


com 4 varreduras
L +4
NEXT: T MW10

// Cdigo

// Cdigo

// Cdigo

L MW10

// Carrega o contador de voltas


// novamente

(Decrementa ACCU1
ACCU1<>0?)

LOOP NEXT
Continuar

// Incio do loop

LOOP NEXT

No

// Carrega o contador de voltas

// Contador de voltas -1 e
// salta para o rtulo NEXT
// se Accu 1> 0

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

mostrado em FBD

RET

Exerccio 1.1: Salto aps uma Subtrao


Chaves de teste no simulador

Chave rotativa
1

converte p/
DINT

4
BTD

0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
215

BTD

27

converte p/
DINT

-D
Resultado positivo (>=0)
Resultado negativo
[JM Label]
Deleta o display

Chave rotativa:
Chaves de teste:
Display:

IW4 (IW2, mod. 32 bit)


IW0 (IW0, mod. 32 bit)
QW12 (QW6, mod. 32 bit)

Escreve o valor de IW 4
no display

20

Exerccio 1.2: Salto aps uma Multiplicao


Chaves de teste no simulador

Chave rotativa
1

converte p/
DINT

0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
215

BTD

BTD

27

20

converte p/
DINT

*I
Sem estouro
Estouro
[JO Label]
Apaga o display

Chave rotativa:
Chaves de teste:
Display:

IW4 (IW2, mod. 32 bit)


IW0 (IW0, mod. 32 bit)
QW12 (QW6, mod. 32 bit)

DTB

Converte o resultado
para BCD

Escreve o resultado
no display

Exerccio 1.3: Programando um Distribuidor de Saltos


Funo:
Chave rotativa
1

[JL Label]
1
2
3
4
5

Motor_girar para direita


Motor_girar para esquerda
Desligar motor
Ligar buzina
Desligar buzina

Label: Saltar via salto para lista


Endereos:

S7-300 (16-Bit)
I0.0
Q8.0
Motor_direita:
Q20.5
Motor_esquerda:
Q20.6
Buzina:
Q20.7

S7-300 (32-Bit)
I0.0
Q4.0
Q8.5
Q8.6
Q8.7

www.apostilastecnicas.com

Anda mungkin juga menyukai