Siemens SIMATIC S7-1500 falha OB121: Erro de programação
O sistema operacional chama o OB121 quando ocorre um erro de programação na execução de uma instrução do programa do usuário, desde que o bloco não use tratamento local de erros (GET_ERROR ou GET_ERR_ID). Se nem o OB121 nem o tratamento local capturarem o erro, o S7-1500 passa de RUN para STOP e registra uma entrada no buffer de diagnóstico. O Fault_ID identifica o erro, ex. 16#3A acesso a um DB não carregado, 16#22/16#23 erros de comprimento de área, 16#75 profundidade máxima de aninhamento de blocos excedida.
Diagnostique esta falha com IA
Diagnóstico grátis Envie uma foto do display, o histórico de falhas ou os parâmetros do seu Siemens SIMATIC S7-1500. O InduQT compara as evidências e sugere os próximos testes.
Quando aparece
- RUN, quando a instrução com erro é executada
- Muitas vezes após um download, ou quando um índice ou ponteiro assume um valor novo
Causas prováveis e testes
1Acesso a um DB, FC ou FB não carregado ou inexistente
- Indícios
- Fault_ID 16#3A, 16#3B, 16#3C ou 16#3E; ocorre após um download parcial ou um bloco apagado.
- Teste
- Comparar os blocos da CPU com o projeto (comparação online/offline) e carregar o bloco ausente.
2Erro de área ou de comprimento por endereçamento indireto ou acesso a array
- Indícios
- Fault_ID 16#22–16#25; o buffer de diagnóstico indica o bloco e o acesso.
- Teste
- Ler o valor do índice ou ponteiro no erro e comparar com a área endereçada.
3Aninhamento de chamadas ou dados locais excedidos
- Indícios
- Fault_ID 16#00/16#75 (aninhamento) ou 16#76 (dados locais).
- Teste
- Revisar a profundidade de chamadas e a recursão no bloco indicado por BlockNr.
Como diferenciar
- No S7-1500 um erro de programação sem OB121 nem tratamento local para a CPU; um erro de acesso à periferia (OB122) não.
- Se o bloco usa GET_ERROR ou GET_ERR_ID, o OB121 não é chamado para erros desse bloco; quem decide é o tratamento de erros do próprio bloco.
- A Siemens indica que o S7-1200 trata internamente erros de programação e de acesso e continua em RUN com entrada no buffer, então o mesmo programa pode parar um S7-1500 e não um S7-1200.
Evidências para reunir
- Exportação do buffer de diagnóstico com a causa do STOP e o bloco
- Informação de partida do OB121 (BlockNr, BlockType, Fault_ID, Area), se registrada
- Comparação online/offline dos blocos
- Arquivo do projeto TIA Portal
Trabalhos em linhas de combustível, queimadores, vasos de pressão e equipamentos elétricos devem ser feitos por pessoal qualificado, seguindo a documentação do fabricante e as normas locais (como a NR-10 e a NR-13). Nunca faça jumper em um dispositivo de segurança ou intertravamento.
Relacionados
- Siemens SIMATIC S7-1500 OB80: Erro de tempo (tempo de ciclo excedido)
- Siemens SIMATIC S7-1500 OB82: Interrupção de diagnóstico
- Siemens SIMATIC S7-1500 OB83: Interrupção de retirada/inserção (periferia descentralizada)
- Siemens SIMATIC S7-1500 OB86: Falha de rack (falha de estação ou sistema de E/S)
- Siemens SIMATIC S7-1500 OB122: Erro de acesso à periferia
- Todos os códigos de falha do Siemens SIMATIC S7-1500 (em inglês)