Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 1
Conteúdo Pág.
Registradores e Áreas de Memória em uma CPU S7...................................................................... 2
Estrutura da Status Word ................................................................................................................. 3
Checando os Bits de Status ............................................................................................................. 4
Instruções com os Status Bits .......................................................................................................... 5
Bit BR e ENO em uma Chamada de Bloco ou Funções Complexas .............................................. 6
Funções de Salto Dependentes do Status Bits ................................................................................ 7
Funções de Salto Dependentes dos Códigos de Condição ............................................................. 8
Programação do Distribuidor de Saltos ........................................................................................... 9 
Programação de Instruções de Loop ............................................................................................... 10 
Instruções para Fim de Bloco .......................................................................................................... 11 
Exercício 1.1: Salto depois de uma Subtração ................................................................................ 12 
Exercício 1.2: Salto depois de uma Multiplicação ........................................................................... 13 
Exercício 1.3: Programando um Distribuidor de Saltos ................................................................... 14 
Data: 5/11/2000
Arquivo: PRO2_01P.1
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Instruções Dependentes do Estado Lógico Binário
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 2
Visão Geral Uma CPU-S7 contém vários registradores e áreas de memória para assegurar uma 
execução eficiente do programa. 
Registradores da CPUOs registradores da CPU são usados para endereçar ou processar dados. Os dados 
podem, com ajuda de comandos associados (L, T,...), ser trocados entre áreas de 
memórias e registradores da CPU: 
• Acumuladores: Dois (com S7-300) ou quatro (S7-400) acumuladores são usados 
para instruções byte, word e double word em operações aritméticas, comparações e 
outras. 
• Registrador de Endereços: Dois registradores de endereço são usados como 
ponteiros para o registro de endereçamento indireto. 
• Registrador de Bloco de Dados: Os registradores de bloco de dados contêm os 
números dos blocos de dados que estão abertos(ativos). Assim é possível que dois 
DBs estejam simultaneamente abertos; um DB com ajuda do registrador de DB e o 
outro como DB instance com o registrador DI. 
• Palavra de Status: Contém vários bits, que refletem o resultado ou o estado lógico de 
instruções individuais dentro da execução de programa.
Áreas de Memória A memória das CPUs S7 podem ser divididas em quatro áreas:
• A memória de carga é usada para armazenar o programa de usuário sem a função de 
endereçamento simbólico ou comentário. A memória de carga pode ser RAM ou 
memória FEPROM.
• A memória de trabalho (RAM integrada) é usada para armazenar a parte pertinente 
do programa de S7 necessário para sua execução. A execução do programa utiliza 
exclusivamente partes da memória de trabalho. 
• A área de I/O permite o acesso direto das entradas e saídas dos sinais conectados 
aos módulos ou dispositivos de campo.
• A memória do sistema (RAM) contém áreas, como a tabela de imagem de processo 
de entradas e saídas, memória de bits, temporizadores e contadores. Adicionalmente, 
pilha de dados locais, pilha de blocos e a pilha de interrupção.
Data: 5/11/2000
Arquivo: PRO2_01P.2
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Registradores e Áreas de Memória em uma CPU S7
Acumuladores
ACCU1
ACCU4
ACCU3
ACCU2
Somente
S7-400
AR2
AR1
Registradores de Endereços
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 Bit16 Bit
16 Bit
Memória de Carga
- Blocos Lógicos
- Blocos de Dados
Memória de Trabalho
- Blocos Lógicos
- Blocos de Dados
Área de I/O
Memória de Sistema
- Imagem de processo de entrada
- Imagem de processo de saída
- Bit de memória
- Temporizadores
- Contadores
- Pilha de Dados Locais
- Pilha de Interrupção
- Pilha de Blocos
Registradores na CPU S7 Áreas de Memórias na CPU S7
T, S, =,...
L, A, O,...
Tamanho DB
Tamanho DI
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 3
Palavra de Status Os bits individuais da palavra de status, fornecem a informação sobre o resultado ou o 
estado lógico da instruções executadas como também erros que possam ter surgido.
Você pode integrar o estado do sinal dos status bit´s diretamente em seu programa 
usando lógicas binárias e assim controlar o fluxo do programa. 
Primeiro Cheque O bit 0 da palavra de status é chamado de bit de primeiro cheque (/FC= First Check). A 
condição ”0” no bit /FC indica, que uma nova seqüência lógica está começando em seu 
programa. O barra diagonal na frente da abreviação FC indica que o bit de /FC é
negado.
Resultado Lógico O bit 1 da palavra de status é o bit RLO (RLO= ”Result of Logic Operation”). É usado 
como memória temporária em operações de lógica binárias. 
Uma instrução gerada pelo texto de uma instrução lógica checa, por exemplo, o estado 
do sinal de um contato e o combina logicamente com o resultado do cheque (bit de 
estado) de acordo com as regras da lógica booleana com o bit de RLO. O resultado da 
operação lógica é armazenado de volta no bit de RLO.
Bit de Status O bit de status (bit 2) salva o valor de um bit endereçado. O bit de status sempre 
mostra, por varredura (A, AN, O,...) ou instruções de escrita (=, S, R,) o estado do bit 
endereçado.
Bit OR O bit OR é utilizado quando você executa uma operação lógica AND antes de uma OR 
com a instrução O. O bit OR indica que uma operação lógica AND foi executada 
anteriormente e recebeu o valor “1”, pelo qual o resultado da operação lógica OR está
sempre determinado como sendo “1.”
Bit OV O bit OV (estouro de capacidade) mostra um erro em uma instrução matemática ou em 
uma instrução de comparação com números em ponto flutuante. O bit é “1” ou “0” de 
acordo com o resultado da operação da instrução matemática ou da instrução de 
comparação realizada.
Data: 5/11/2000
Arquivo: PRO2_01P.3
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Estrutura da 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
Significado dos bits na palavra de status
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 4
Bit OS O bit OS (estouro de capacidade memorizada) é estabelecido juntamente com o bit 
OV. O bit OS permanece memorizado depois de uma nova instrução matemática, quer 
dizer, não é mudado pelo resultado da próxima instrução matemática. 
Assim você tem a oportunidade, até mesmo em um local posterior em seu programa, 
avaliar um estouro de capacidade de um número ou uma instrução com números 
Reais inválidos. 
O bit OS somente é zerado com os comandos: JOS (salta, se OS = 1), chamadas de 
bloco efim de bloco. 
CC1 e CC0 Os bits CC1 e CC0 (códigos de condições) informam sobre os seguintes resultados:
• resultado de uma instrução matemática. 
• ou instrução de comparação.
• uma instrução lógica de palavra, ou
• sobre os bits jogados fora por uma instrução de deslocamento.
Os códigos de condição CC1 e CC0 podem ser testados indiretamente por meios das 
seguintes instruções.
CC1 CC0 Checa,se
0 0 A ==0 Resultado = 0 (ACCU2 = ACCU1)
1 0 A >0 Resultado > 0 (ACCU2 > ACCU1)
0 1 A 0
M 4.0M 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 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 ="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
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 8
Funções de salto Os saltos JO e JOS são executados se um estouro tiver ocorrido. Em uma
com OV e OS rotina de cálculo com diversas instruções executadas sucessivamente, a avaliação do 
bit OV deve ser realizada após cada função matemática. Uma instrução matemática 
que gera um estouro, cujo resultado mascara a faixa de números permitidos, zera o bit 
OV. 
Para permitir avaliar um estouro de faixa de números permissíveis no fim de uma 
rotina de cálculo, checa-se o bit OS. O bit OS somente é zerado com chamada de 
blocos e fim de bloco bem como com salto JOS.
Os bits restantes na palavra de status não são alterados com as funções de salto JO e 
JOS.
Funções de salto Uma função de programa pode ser dependente dos bits de status CC0 e
com CC0 e CC1 CC1.
Deste modo, você pode, por exemplo, checar se o resultado de um cálculo é positivo, 
negativo ou zero.
As funções de salto dependem dos bits de status CC0 e CC1 e não alteram qualquer 
bit de status. O resultado da operação lógica é monitorável por saltos e pode ser 
utilizado por conseqüentes operações lógicas no programa do usuário (não alterado 
pelo /FC).
Exemplo Subtração de dois inteiros com subseqüente avaliação:
L MW2
L MW8
-I
JZ ZERO // ocorre o salto se o resultado for igual a "0"
// Instruções, se o resultado for diferente de "0" 
ZERO: NOP 0 // Instruções p/reação quando resultado for igual "0"
Data: 5/11/2000
Arquivo: PRO2_01P.8
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
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)
JMZ Label1) Combina os saltos JM e JZ
(Resultado e o : 
. Se “0” estiver guardado no ACCU1-L-L, a primeira instrução de salto é
executada, com “1” a segunda, etc. Se o número for maior do que o tamanho da lista, 
JL salta para o fim da lista.
A instrução JL é executada apesar de quaisquer condições e desta forma não altera os 
bits de status.
Nota Os saltos podem tomar lugar dentro do comprimento total do bloco (mesmo além dos 
limites do network). Por esta razão, os nomes dos rótulos dos saltos dentro de um 
bloco devem ser únicos.
Somente é possível saltar dentro do bloco de programa, desde que a distância de salto 
possa somente ser determinada para os saltos por meio dos rótulos dos saltos. O 
comprimento do rótulo de salto é limitado a quatro caracteres alfanuméricos, pelo qual 
o primeiro caracter deve ser uma letra. É feita distinção entre letras maiúsculas e 
minúsculas no rótulo dos saltos.
Uma instrução deve sempre ser colocada depois do rótulo do salto separada por “:“. A 
máxima distância de salto é –32768 ou + 32767 palavras de código de programa. O 
máximo número atual de instruções que você pode sobre saltar depende do misto de 
instruções utilizadas em seu programa (instruções de uma, duas ou três palavras).
Data: 5/11/2000
Arquivo: PRO2_01P.9
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Programação do Distribuidor de Saltos
Carrega o 
número do salto
JL Over
...
Instruções para
ACCU1 > n
Exemplo: Distribuidor de saltos com 3 entradas
L Recipe no // Carrega o número 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 Operação
Label_n:
JU Label_1
JU Label_n
Instruções para
ACCU1 = 0
...
Instruções para
ACCU1 = n
Over:
Label_1:
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 10
Instrução de Loop A instrução de volta LOOP permite uma programação simplificada de loop.
Para a programação da instrução de loop o número desejado de execuções a serem 
realizadas é carregado no ACCU1-L. LOOP interpreta a palavra da direita do ACCU 1 
como um número inteiro não sinalizado de 16 bits na faixa de valores entre 0 a 65535. 
Com cada execução da instrução LOOP, o valor em ACCU1-L é decrementado de um. 
Subseqüentemente, o valor é comparado com zero. Se o valor é diferente de zero, um 
salto toma lugar para o rótulo de salto designado na instrução LOOP. Se o valor é igual 
a zero, não há salto e a próxima instrução, após a instrução LOOP, será executada. 
Nota O contador de voltas não deve ser inicializado com “0”, porque isto irá causar um loop 
a ser executado 65535 vezes.
Data: 5/11/2000
Arquivo: PRO2_01P.10
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Programação de Instruções de Loop (voltas)
Inicializa o
contador de voltas
LOOP NEXT
(Decrementa ACCU1
ACCU10?)
Sim
Não
Continuar
NEXT:
Sessão de códigos 
a serem executados 
diversas vezes
Carrega o contador de
voltas no ACCU1.
Exemplo: Instruções de Loop (voltas) 
com 4 varreduras
L +4 // Carrega o contador de voltas
NEXT: T MW10 // Início do loop
. // Código
. // Código
. // Código
L MW10 // Carrega o contador de voltas
// novamente
LOOP NEXT // Contador de voltas -1 e 
// salta para o rótulo NEXT
// se Accu 1> 0
Modo de Operação
Transfere para o
contador de voltas
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 11
Funções de Você pode terminar o processamento de blocos com BEC dependendo do 
Fim de Bloco resultado lógico operacional ou com BEU ou BE independentemente das condições.
BE A instrução BE termina o processamento do programa no bloco de programa corrente. 
BE é sempre a última instrução do bloco. Esta é automaticamente criada pelo STEP 7 
quando um bloco é salvo. Desta forma, esta não tem que ser introduzida 
separadamente. 
O sistema operacional diversifica suas atividades de chamada de blocos e recomeça o 
processamento de programas pela primeira instrução após a chamada do programa. A 
área de dados locais reservada pelo bloco é habilitada uma vez de novo. 
BEU A instrução BEU termina o processamento do programa do bloco de programa corrente 
da mesma forma que BE.
Diferentemente da instrução BE, você pode programar BEU repetidasvezes dentro de 
um bloco. A secção de programa após a instrução BEU somente será processada se 
houver um salto para esta parte do programa. 
BEC O bloco é finalizado dependendo do valor do bit RLO. Se RLO = 1, o processamento 
do programa é finalizado no bloco corrente e recomeça no próximo bloco chamado 
com a primeira instrução após a chamada de programa.
A área de dados locais reservada pelo bloco é habilitada uma vez de novo.
Se RLO = 0, a instrução BEC não é executada. A CPU fixa o RLO em “1” e processa a 
instrução seguinte a BEC.
Data: 5/11/2000
Arquivo: PRO2_01P.11
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
 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
Instruções de Fim de Bloco
RET
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 12
Data: 5/11/2000
Arquivo: PRO2_01P.12
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Exercício 1.1: Salto após uma Subtração
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)
20215 27
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Vista Geral Com funções de salto, o processamento linear de um programa pode ser interrompido 
e continuar em outro local. Um salto pode ser realizado, particularmente, em função de 
condições ou resultados.
Objetivo do Exercício Programação de uma função de salto, esta é executada dependendo do resultado da 
subtração.
Enunciado Gerar um projeto PRO2 e subseqüentemente uma pasta de programa S7 com o nome 
EXERCÍCIO e criar um FC 11 com a seguinte funcionalidade:
1. Carregar a palavra de entrada da chave rotativa e das chaves de teste como valor 
codificado em BCD nos acumuladores.
2. Subseqüentemente executar uma conversão dos valores para DINT. Para a 
conversão usar o comando BTD (BCD_TO_DINT). Este comando assegura que os 
valores lidos sejam interpretados como um número decimal positivo de quatro 
dígitos.
3. Então subtrair o valor gerado pelas chaves de teste do valor gerado pela chave 
rotativa.
4. Executar, dependendo do resultado, as seguintes ações:
Resultado = 0: escreve o valor codificado BCD da chave rotativa no display.
Notas: usar o comando de salto "JM [Label]“ para o caso distinto. Para mascarar 
erros de conversão durante o ajuste dos números, programar o OB 121com uma 
instrução: NOP 0.
5. Chamar o FC 11 no OB 1 e transferir os blocos (OB 1, OB 121 e FC 11) na CPU 
S7.
6. Teste seu programa.
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 13
Objetivo do Exercício Programação de uma função de salto, esta é executada dependendo do resultado da 
multiplicação.
Enunciado Criar um FC 12 com a seguinte funcionalidade: :
1. Carregar a palavra de entrada da chave rotativa e das chaves de teste como valor 
codificado em BCD (sem sinal) nos acumuladores.
2. Subseqüentemente executar uma conversão dos valores para DINT. Para a 
conversão usar o comando BTD (BCD_TO_DINT). Este comando assegura que os 
valores lidos sejam interpretados como um número decimal positivo de quatro 
dígitos. 
3. Então execute uma multiplicação em 16 bits. 
4. Cheque seu resultados dos cálculos para “Estouro” e execute as seguintes
ações:
Estouro: apague o display
Sem Estouro: execute a conversão do resultado em um número BCD positivo 
correspondente e mostre o resultado (pelo menos com os últimos quatro menos 
significativos) no display.
Notas: use o comando de salto "JO [Label]“ para testar o “Estouro”. Para 
mascarar erros de conversão durante o ajuste dos números, programar o OB 121 
com uma instrução: NOP 0.
5. Chamar o FC 11 no OB 1 e transferir os blocos (OB 1, OB 121 e FC 11) na CPU 
S7.
6. Teste seu programa.
Data: 5/11/2000
Arquivo: PRO2_01P.13
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Exercício 1.2: Salto após uma Multiplicação
*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
20215 27
Chaves de teste no simulador
0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com
Siemens Ltda.
Training Center
ST-7PRO2
Instr. Dependentes Estado Lóg. BinárioPágina 14
Objetivo do Exercício Familiarizar você com o uso de Salto para Lista. 
Enunciado Criar um FC 13 com a seguinte funcionalidade:
• Um número de 1a 5 pode ser passado via o parâmetro de entrada "Seleção“ com 
o tipo de dado INT.
• Dependendo do número passado, as seguintes ações são executadas:
1: O motor gira para direita 
2: O motor gira para esquerda.
3: O motor para.
4: A buzina é ligada.
5: A buzina é desligada.
• Todos os outros números são interpretados como erros, isto é, o “parâmetro de 
saída” ENO é fixado para FALSO.
Procedimento 1. Criar um FC 13 com a funcionalidade descrita acima. 
Na implementação do salto para lista note que somente saltos absolutos podem 
ser utilizados.
2. Chamar FC 13 no OB 1 em dependência do I 0.0.
O valor do parâmetro de entrada "Seleção" será passado ou ajustado com ajuda 
da chave rotativa no simulador e ser aceito com um valor de nível positive no I 0.0.
4. No caso de um erro, isto é, o valor da "Seleção” ser maior que 5 ou menor que 1, a 
saída Q 8.0 será zerada no OB 1 via o parâmetro ENO.
5. Transferir o OB 1 e o FC 13 e testar o programa.
Data: 5/11/2000
Arquivo: PRO2_01P.14
SIMATIC S7
Siemens AG 1998. All rights reserved.
Conhecimento em Automação
Training Center
Exercício 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
Função:
[JL Label]
Label:
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
Created with novaPDF Printer (www.novaPDF.com)
http://www.novapdf.com

Mais conteúdos dessa disciplina