O documento discute como diagnosticar e corrigir erros que fazem com que uma CPU vá para o modo de parada. Ele fornece instruções passo-a-passo para analisar pilhas de diagnóstico, interpretar mensagens de erro e modificar programas para prevenir que erros façam a CPU parar.
1. Data: 22.04.14
Arquivo: STOE_07P.1Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Procura por erros que levam a CPU para Stop
CPU
2. Data: 22.04.14
Arquivo: STOE_07P.2Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Chamando a Ferramenta "Module Information"
6. Data: 22.04.14
Arquivo: STOE_07P.6Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Diagnósticos com I Stack, B Stack e L Stack
Estrutura do Programa Bloco contendo erro
Local do erro
Você vê o conteúdo dos acumuladores,
registradores, status word, etc.
(no momento da interrupção) no I Stack.
Você vê os valores das variáveis
temporárias no momento da
interrupção no L Stack.
Local do erro
Você vê os blocos executados
antes da ocorrência do erro
no B Stack.
10. Data: 22.04.14
Arquivo: STOE_07P.10Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Exercício: Encontrando erros que causam Stop e eliminando-os
ResultadoO que fazerPasso
A memória da CPU é resetada.Execute um reset de memória na CPU.1
Copie o programa S7 "ERROR"
do projeto:
"ERROR _16" ("ERROR _32")
na estação de HW "My Station".
A estrutura de projeto é mostrada.2
O programa falho foi transferido. .
Transfira todos os blocos do
programa S7 "ERROR" para a CPU.
3
A CPU vai para o modo STOP.Realize um restart completo.4
A CPU volta a operar em RUN.
Encontre e elimine os erros,
que permitem sair do estado Stop.
5
11. Data: 22.04.14
Arquivo: STOE_07P.11Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Exercício: Analisando e Eliminando Falhas com I Stack, B Stack
ResultadoO que fazerPasso
A CPU via para STOP mais uma vez.
Leve as entradas I 1.0 a I 1.2 para “1“
em seqüência.
1
Responda as perguntas da tabela
abaixo.
Descubra a causa do erro com a
ajuda do buffer de diagnóstico e as
pilhas.
2
A CPU volta a operar em RUN.
Leve as entradas I 1.0 a I 1.2
para “0“novamente.
3
12. Data: 22.04.14
Arquivo: STOE_07P.12Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Exercício: Lendo o L Stack
ResultadoO que fazerPasso
A CPU via para STOP mais uma vez.Mude a I 1.2 para “1“.1
Os valores das variáveis temporárias
estão mostrados em formato
hexadecimal.
Leia o L Stack do bloco,
que causou o erro.
2
???
Determine quais valores estão
armazenados na variável temporária
"var1".
3
13. Data: 22.04.14
Arquivo: STOE_07P.13Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Exercício: Uso de OBs de Erro
ResultadoO que fazerPasso
Transfira o bloco FC 45 do
programa S7 "ERROR" para a CPU.
1
O bloco é executado e a CPU vai para
STOP.
Chame o bloco FC 45 no OB 1.
2
A CPU retorna para RUN e
o led "SF" acende.
Crie e transfira os OBs de erros
necessários, de modo que a CPU se
mantenha em RUN.
3
A CPU volta para STOP quando um
erro ocorre.
Modifique os OBs de erro de modo que
a CPU vá para STOP quando um
erro ocorrer.
4
A CPU retorna para RUN e o led
"SF" logo apaga.
No OB 1, delete a chamada do bloco
FC 45.
5
14. Data: 22.04.14
Arquivo: STOE_07P.14Siemens AG 1999. All rights reserved.
Conhecimento em Automação
Training Center
SIMATIC S7
Exercício Adicional: Analisando e Eliminando Falhas com o S7-400
ResultWhat to DoStep
A memória da CPU é resetada.Execute um reset de memória na CPU.1
Copie o programa S7 da estação de HW
"ERROR_400" do projeto
"ERROR _16" ("ERROR _32")
no projeto "My Project".
A estrutura do projeto é mostrada.2
O programa falho é transferido.
Transfira todos os blocos do programa
S7 "Diagnostic" para a CPU.
3
A CPU vai para STOP.Execute um completo restart.4
A CPU retorna para RUN.
Encontre e elimine os erros,
que levam ao estado Stop.
5
Um restart manual é possível.
Determine se um restart manual é
possível. Determine a causa do erro.
6
A saída Q 5.1 é setada após um
restart manual.
Após um restart manual, a saída Q 5.1 é
levada para “1“. Se isto não funcionar,
elimine o erro.
7
Notas do Editor
SumárioPáginaChamando a Ferramenta "Module Information" ...................................................................................2
"Diagnostic Buffer" ................................................................................................................................3
Interpretando Mensagens de Erro ........................................................................................................4
Abrindo um Bloco que contem Erro ......................................................................................................5
Diagnósticos com I Stack, B Stack e L Stack .......................................................................................6
B Stack (Pilha de Blocos) ......................................................................................................................7
I Stack (Pilha de Interrupção)...................................................................................................................8
L Stack (Pilha Local) .............................................................................................................................9
Exercício: Encontrando erros que causam Stop e eliminando-os ........................................................10
Exercício: Analisando e Eliminando Falhas com I Stack, B Stack .......................................................11
Exercício: Lendo o L Stack ...................................................................................................................12
Exercício: Uso de OBs de Erro ............................................................................................................13
Exercício Adicional: Analisando e Eliminando Falhas com o S7-400 ..................................................14
IntroduçãoA informação que você necessita para análise e eliminação de falha está armazenada em todas as ferramentas na função PLC -> Module Information. Você pode abrir esta função, por exemplo, a partir do SIMATIC Manager ou através do Editor de Programas.
SIMATIC ManagerSe a estrutura do projeto não está disponível na PG, você clica no ícone "Accessible Nodes" e então no MPI=x (onde “x“ é o endereço MPI da CPU conectada).Agora selecione a opção de menu PLC -> Module Information.Se você tiver aberto um projeto no disco rígido com o SIMATIC Manager, você pode selecionar a opção de menu PLC -> Module Information após você ter escolhido o programa S7.
Editor de Programas Tão logo você tenha aberto um bloco, a função de informação para análise e eliminação de falha aparece.
Diagnostic BufferO buffer de diagnóstico (diagnostic buffer) é um buffer FIFO localizado em uma área guarnecida por bateria na CPU que não pode ser apagado por um reset de memória. Ele contem todos os eventos de diagnóstico na ordem em que ocorreram.
Todos os eventos podem ser mostrados no equipamento de programação em formato texto e na seqüência de ocorrência.
Details on Event(detalhes no evento) Quando você seleciona um evento, informações adicionais são fornecidas na caixa de diálogo "Details on Event":
•Identificador de Evento (Event ID) e o número do evento,
•Informações adicionais, dependendo do evento, tais como o endereço da instrução que causou o evento,•etc.
Help on Event(ajuda no evento) Quando você clica no botão , uma ajuda no evento selecionado na lista é aberta.
(Example: a programming error has occured, the relevant OB (OB121) is not loaded or activated, however.)
Open Block (abrir bloco) Quando você clica no botão , o bloco no qual o erro ocorreu pode ser aberto na CPU. (no exemplo acima: "FC número: 10").
Abrindo a FerramentaVocê abre o buffer de diagnóstico pela seleção da opção de menu
PLC --> Module Information --> Diagnostic Buffer no gerenciador SIMATIC (SIMATIC Manager) ou pelo Editor de Programas.
GeralA última entrada aparece no topo da lista. O horário indica a você quais mensagens de erros ocorretam juntas (eventos números 1 e 2 do slide).
Interpretando ErrosEm nosso exemplo, um restart completo foi realizado antes da ocorrência do erro (eventos números 3 a 5). Após o restart, o erro ocorreu e causou as entradas números 1 e 2.Evento No. 1:A CPU foi para o modo Stop porque nenhum OB de erro foi programado. A caixa "Details on event" mostra o nível de execução (classe de prioridade), isto é, OB1 (ciclo) e a localização do erro no programa (FC 10, endereço 24 do módulo).Evento No. 2:A causa atual do erro aparece aqui, ou seja, erro de conversão BCD. A caixa "Details on event" mostra que existe um valor incorreto no acumulador 1 e qual OB de erro é responsável por ele (OB 121).
OBs de Erros
Abrindo um BlocoVocê pode abrir diretamente o bloco que contem o erro clicando no botão "Open Block". O bloco é aberto online. Em STL, o cursor é posicionado em frente a instrução onde o erro ocorreu. Em LAD/FBD, o network que contem o erro é mostrado.Em nosso exemplo, nós tentamos converter o valor das chaves pushwheel de BCD para inteiro. Um número BCD inválido foi inserido no acumulador 1. Neste caso, a leitura do I stack (ver páginas seguintes) irão ajudar você a obter uma análise mais exata do erro. O erro ocorreu no FC 10, Network 3.
IntroduçãoPara obter informações adicionais sobre o local do erro, você pode ler o conteúdo das pilhas (I Stack, B Stack, L Stack). Isto habilita você a determinar, por exemplo, quais valores foram armazenados nos acumuladores antes da CPU ter ido para o estado Stop.
B StackO B Stack contem uma lista de todos os blocos executados até a transição para o estado Stop.
I StackO I Stack contem os dados dos registradores no local da interrupção, tais como:•conteúdo dos acumuladores e endereços dos registros•quais blocos de dados estão abertos•conteúdo da status word (palavra de estado)•nível de execução do programa (ou seja, ciclo)•bloco interrompido especificando o network e o número da instrução •próximo bloco a ser executado
L StackO L Stack contem os valores das variáveis temporárias dos blocos. Você necessita alguma experiência para avaliar estes dados.
Stacks (pilhas)De modo a mostrar as informações das pilhas, a CPU deve ter ido para o modo STOP:
•devido a um erro de programa
• devido a uma instrução STOP
•na pesquisa de um breakpoint.
B StackA pilha de bloco (B Stack) é uma representação gráfica das chamadas hierárquicas, isto é, a seqüência e anilhamento dos blocos chamados até o local da interrupção.
O B Stack contem todas as interrupções através dos OBs de interrupção e OBs de erros bem como os DBs abertos.
Você irá encontrar a causa direta do modo STOP no bloco mostrado por último na lista. Em nosso exemplo, você pode ver o erro ocorrido na primeira chamada do bloco FC 10.
Abrir BlocoPara abrir um bloco online, você selecioan o bloco na lista da pilha B Stack e então clica no botão "Open Block". Você pode então editar este bloco. O cursor está localizado após a instrução falha (no início da próxima instrução).
I StackA pilha de interrupção (I Stack) sempre se refere a um nível de execução. Antes você poder abrir o I Stack, o bloco de organização correspondente deve ser selecionado no B Stack.
RegisterO conteúdo de todos os registradores importantes no momento da interrupção são mostrados na tela I Stack:
•Accumulators (acumuladores)Você pode selecionar o formato dos números para mostrar o conteúdo dos acumuladores na lista "Display format".
•Address register (registrador de endereços)Você pode selecionar o formato dos números para mostrar o conteúdo dos registradores de endereços na lista "Display format".
•Status word (palavra de estado)São mostrados os bits de 0 a 8 da palavra de estado. Eles estão identificados com abreviações de acordo com seu significado.
Ponto da InterrupçãoO campo "Point of Interruption" fornece informações sobre:
•o bloco interrompido, com a opção de abrí-lo diretamente (o cursor está então localizado diretamente em frente a instrução falha),
•a classe de prioridade do OB, cujo nível de execução foi interrompido,
•blocos de dados abertos com seu número e tamanho.
Exemplo de ErroDe nosso exemplo, você pode ver que o número hexadecimal 0000 000F está armazenado no acumulador 1. Este não é um número BCD válido e por esta razão ocorreu um erro de conversão durante a conversão de BCD para inteiro (instrução BTI).
Este erro pode ocorrer durante a mudança de valor selecionado pela chave pushwheel devido aos contatos mecânicos. Para corrigir isto, confirme a entrada pressionando um botão de pulso antes de executar a conversão.
L StackOs valores atuais das variáveis temporárias para os blocos não terminado até o momento da interrupção ficam gravados no L Stack (pilha local).
Os dados locais mostrados na janela L Stack referem-se ao bloco selecionado no B Stack.Os blocos ainda não terminados quando a CPU vai para o modo STOP estão listados na pilha de blocos (B Stack).
Exemplo de ErroEm nosso exemplo, as duas variáveis temporárias, variable1 e variable2 estão definidas no bloco FC 10.
A tabela de declarações do bloco FC 10 mostra os endereços relativos na pilha L na coluna de endereços. A variável variable1 está guardada nos bytes 0 e 1 do L Stack e a variável variable2 nos bytes 2 e 3.Portanto a variável variable1 contem o valor 78H, a qual corresponde ao número inteiro 120. A variável foi descrita no programa com as instruções
L 120, T variable1.
A variável variable2 tinha o valor 08H e este é o resultado da última conversão livre de erro de BCD para inteiro.Na figura abaixo, você pode ver a sessão importante de programa do bloco FC10:
ObjetivoAnalisar e eliminar o defeito de um programa com falha.
O que fazer1.Execute um reset de memória da CPU.2.Copie o programa S7 "ERROR" do projeto "ERROR_16" ou "ERROR_32" na estação de HW "My Station".
3.Transfira todos os blocos do programa S7 "ERROR" do projeto "My Project" para a CPU.
4. Realize um restart completo.
5. Leia o buffer de diagnóstico pela seleção PLC -> Module Information. Você deve selecionar o projeto "My Project" e o programa S7 "ERROR", deste modo os comentários corretos devem ser mostrados.
6.Determine os erros e elimíne-os.
ResultadoVocê agora está mais familiarizado com as facilidades do diagnóstico para análise e eliminação de falhas. A CPU executa o programa, mas as funções ainda não estão preenchidas. Os erros lógicos são eliminados em um exercício posterior.
TarefaVocê determinará informações adicionais de erros pela leitura das pilhas.
O que fazerExecute os passos do slide acima e responda as seguintes perguntas:
ObjetivoNo caso de um erro, você deve estar habilitado a determinar quais valores estavam armazenados nas variáveis temporárias.
O que fazer Execute os passos mostrados no slide acima. Nota do passo 3:De modo a que você possa determinar no L Stack em quais endereços a variável "var1" está armazenada, você deve dar uma olhada na tabela de declarações do bloco que contem a falha.
ResultadoO valor da variável "var1": ..........
ObjetivoEm um comissionamento de software, é possível que partes específicas do sistema ainda não esteja disponíveis. Se, de qualquer modo, o programa do usuário completo foi transferido, a CPU pode ir para STOP.Neste caso você pode continuar com o comissionamento, previnindo-se que a CPU vá para STOP pela programação de OBs de erros.
O que fazerExecute os passos mostrados no slide.
Notas•Um OB de erro vazio é suficiente para prevenir a ida para o estado Stop. Você pode identificar quais OBs de erro são necessários pelo buffer de diagnóstico.
•Para levar a CPU para Stop, chame a função de sistema SFC 46 no OB de erro.
ResultadoVocê se familiarizou com diversos OBs de erros e agora pode se valer deles.
ObjetivoVocê irá se familiarizar com as características especiais do S7-400.
O que fazerVer slide. Requisito: disponibilidade do kit de treinamento do S7-400.
Resultado