Pro2 08p

208 views
125 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
208
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pro2 08p

  1. 1. Lidando com Erros Síncronos e Assíncronos SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.1 Conhecimento em Automação Training Center
  2. 2. Manipulando Erros Assíncronos Erros Assíncronos não são atribuídos a posição particular do programa, isto é, eles aparecem assíncronos para o processamento do programa. Tipo de Erro Exemplo OB de erro Erro de Tempo Máx. tempo de varredura excedido OB 80 Erro da Fonte de Alimentação Falha da bateria de backup OB 81 2) Diagnóstico de Interrupção Quebra-de-fio na entrada de um módulo com capacidade de interrupção OB 82 Removendo/Inserindo módulo de Interrupção Removendo um módulo de sinal no S7-400 durante o modo de operação (RUN) OB 83 1) Erro de Hardware CPU Nível de sinal de falha na interface MPI OB 84 1) Erro de seqüência no programa Erro na atualização da imagem de processo (módulo com defeito) OB 85 Defeito no bastidor ou bastidor Defeito em fonte de alimentação de bastidor de expansão OB 86 1) Erro de comunicação Identificador de mensagem incorreta OB 87 SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.2 1) somente com S7-400 2) não vai p/Stop sem OB de erro Conhecimento em Automação Training Center
  3. 3. Manipulando os Blocos de Organização de Erros  De forma a impedir que a CPU vá para Stop no caso de um erro, transferir um OB de erro vazio.  Você pode programar a resposta desejada no OB de erro e, se necessário, requisitar o estado Stop com a função do sistema SFC 46 depois da execução do OB de erro.  Um identificador de erro adicional é armazenado nas informações de partida do OB de erro, o qual pode se avaliado no programa.  Uma descrição dos OB‘s de erro podem ser encontrados no “ajuda“ Online ou do sistema e Manual de Funções Padrão.  A transmissão dos OBs de erro que não são suportados por determinadas CPU são rejeitados com uma mensagem de erro. SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.3 Conhecimento em Automação Training Center
  4. 4. Exemplo de um OB de Erro Assíncrono OB81: OB de erro: defeito na fonte de alimentação Network 1: L L ==I = L L ==I = A A S defeito na bateria, chegada do evento #OB81_FLT_ID B#16#22 M M M M 81.2 81.1 81.2 81.0 Carrega identificador de erro Identificador: defeito bateria no bastidor central (CR) Seta flag de memória auxiliar Identificador: entrando, saindo Identificador: entrando evento // // // // // M 81.1 #OB81_EV_classe B#16#39 // // // // // // Flag mem. aux. entrando evento Defeito na bateria e entrando evento Seta flag mem. aux. para mostrar erro Network 2: Reseta flag de memória auxiliar, quando bateria O.K. L L ==I R SIMATIC S7 Siemens AG 1999. All rights reserved. #OB81_EV_classe B#16#38 // Identificador: entrando, saindo // Identificador: saindo M // Reset flag de memória auxiliar 81.0 Date: File: 09.03.2014 PRO2_08P.4 Conhecimento em Automação Training Center
  5. 5. Manipulando Erros Síncronos  Erros síncronos são atribuídos diretamente a uma posição no programa do usuário  Erros em instruções aritméticas (overflow, REAL número inválido) Ajuste de Bits de Status Erros no processamento de instruções STL (erro síncrono) Chamada do OB de erro síncrono Tipo de erro Exemplo OB de erro Erro de programação Bloco chamado não existe na CPU OB 121 Erro de acesso Acesso direto a um módulo com defeito ou não existente OB 122 SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.5 Conhecimento em Automação Training Center
  6. 6. Informações de partida do OB121 para Erros de Programação Nome da variável Tipo de dado Descrição, parametrização OB121_EV_classe BYTE B#16#25= Chamada erro de programação OB121 OB121_SW_FLT BYTE Código de erro (ver texto) OB121_PRIORITY BYTE Classe de prioridade na qual o erro ocorreu OB121_OB_NUMBER BYTE Número do OB (B#16#79) OB121_BLK_TYPE BYTE Tipo de bloco interrompido (somente S7-400) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C OB121_RESERVED_1 BYTE Adição ao código de erro (ver texto) OB121_FLT_REG WORD OB121: fonte do erro OB121_BLK_NUM WORD Número de blocos no qual o erro ocorreu OB121_PRG_ADDR WORD Endereço do erro no bloco causador do erro (somente S7-400) OB121_DATE_TIME DT Momento da gravação do erro de programação SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.6 Conhecimento em Automação Training Center
  7. 7. Informações de partida do OB122 para Erros de Acesso Nome da variável Tipo de dado Descrição, parametrização OB122_EV_CLASS BYTE B#16#29= Chamada erro acesso OB122_SW_FLT BYTE Código de erro (valores possíveis : B#16#42, B#16#43, B#16#44, B#16#45) OB122_PRIORITY BYTE Classe de prioridade na qual o erro ocorreu OB122_OB_NUMBR BYTE Número do OB (B#16#80) OB122_BLK_TYPE BYTE Tipo de bloco interrompido(somente S7-400) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C OB122_MEM_AREA BYTE Adição ao código de erro (ver texto) OB122_FLT_REG WORD OB122: identificador do endereço onde ocorreu o erro. OB122_BLK_NUM WORD Número do bloco no qual o erro ocorreu OB122_PRG_ADDR WORD Endereço do erro no bloco causador do erro (somente S7-400) OB122_DATE_TIME DT Momento da gravação do erro de programação. SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.7 Conhecimento em Automação Training Center
  8. 8. Máscara de Erros Síncronos Desvantagens do OB de erro síncrono :  Código para o gerenciamento de processo e para a manipulação de erro é distribuído entre pelo menos dois blocos  Problemas com subseqüentes mudanças ou com manutenção Melhor:  Código para gerenciamento de processo e para a manipulação de erro é no mesmo bloco Mascaramento da falha síncrona:  Antes de instruções "críticas": SFC 36 MSK_FLT: mascara falhas síncronas (OB12x – inibe a chamada)  Executa instruções "críticas"  Avalia se um erro ocorreu SFC 38 READ_ERR: lê registrador de erro  OB12x - habilita a chamada uma vez novamente: SFC 37 DMSK_FLT: demascara falhas síncronas SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.8 Conhecimento em Automação Training Center
  9. 9. SFC 36 para Máscara de Falhas Síncronas "MSK_FLT" EN ENO ??.? PRGFLT_SET_MASK RET_VAL ??.? ??.? ACCFLT_SET_MASK PRGFLT_MASKED ??.? ACCFLT_MASKED ??.? Parâmetro Declaração Tipo dado Área de memória Descrição PRGFLT_SET_MASK INPUT DWORD I, Q, M, D, L, Const. ACCFLT_SET_MASK INPUT BYTE I, Q, M, D, L, Const. Nova (adicional) programação filtro de falhas Novo (adicional) acesso filtro de falha RET_VAL OUTPUT INT I, Q, M, D, L PRGFLT_MASKED ACCFLT_MASKED OUTPUT OUTPUT DWORD DWORD I, Q, M, D, L I, Q, M, D, L SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.9 Retorna o valor do SFC, W#16#0001: o novo filtro fica com área em comum com o filtro existente Programação completa filtro de falhas Acesso completo filtro de falhas Conhecimento em Automação Training Center
  10. 10. Estrutura de programação de Filtro de Falhas 31 30 29 28 27 26 25 24 23 22 DB não carregado FC não carregado 21 20 19 18 17 16 15 14 13 12 11 10 8 7 6 5 4 3 2 1 0 Erro de conversão BCD Erro tamanho faixa, leitura Erro escrita no DB Erro escrita no DB instance Erro de número de bloco DB FB não carregado 9 Erro de número de bloco DI Erro de número de bloco FC Erro de número de bloco FB sem significado Erro tamanho faixa, escrita Erro de faixa, leitura Erro de faixa, escrita Erro do número do temporizador Erro do número do contador Erro de alinhamento, leitura Erro de alinhamento, escrita Nota: Os bits correspondentes do parâmetro de saída PRGFLT_MASKED são setados como a seguir: Valor = “1“: erro está mascarado. Valor = “0“: erro não está mascarado. SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.10 Conhecimento em Automação Training Center
  11. 11. Estrutura de acesso ao Filtro de Falhas 31 30 29 ... 7 6 5 4 3 2 1 0 . . . Erro de acesso a I/O em leitura Erro de acesso a I/O em escrita Somente S7-400: Erro de acesso a I/O em leitura de módulo não existente ou com acesso repetido sem significado Somente S7-400: Erro de acesso a I/O em escrita de módulo não existente ou com acesso repetido Nota: Os bits correspondentes do parâmetro de saída ACCFLT_MASKED são setados como a seguir: Valor = "1": Erro está mascarado. Valor = "0": Erro não está mascarado. Os bits não relevantes têm o valor "1". SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.11 Conhecimento em Automação Training Center
  12. 12. SFC 37 para desmascaramento de Falhas Síncronas "DMSK_FLT" EN ENO ??.? PRGFLT_RESET_MASK RET_VAL ??.? ??.? ACCFLT_RESET_MASK PRGFLT_MASKED ??.? ACCFLT_MASKED ??.? Parâmetro Declaração Tipo dado Área de memória Descrição Programação filtro de falhas para resetar Acesso ao filtro de falhas para resetar Retorna valor do SFC, W#16#0001: o novo filtro contém bits que não são setados no filtro armazenado Mantém mascarados erros programação Mantém mascarados erros de acesso PRGFLT_RESET_MASK INPUT ACCFLT_RESET_MASK INPUT RET_VAL OUTPUT DWORD BYTE INT I, Q, M, D, L, Const. I, Q, M, D, L, Const. I, Q, M, D, L PRGFLT_MASKED ACCFLT_MASKED DWORD DWORD I, Q, M, D, L I, Q, M, D, L SIMATIC S7 Siemens AG 1999. All rights reserved. OUTPUT OUTPUT Date: File: 09.03.2014 PRO2_08P.12 Conhecimento em Automação Training Center
  13. 13. SFC 38 para leitura do Registrador de Erros "READ_ERR" EN ENO ??.? PRGFLT_QUERRY RET_VAL ??.? ??.? ACCFLT_QUERRY PRGFLT_CLR ??.? ACCFLT_CLR ??.? Parâmetro Declaração Tipo dado Área de memória Descrição PRGFLT_QUERRY ACCFLT_QUERRY RET_VAL INPUT INPUT OUTPUT DWORD BYTE INT I, Q, M, D, L, Const. I, Q, M, D, L, Const. I, Q, M, D, L PRGFLT_CLR OUTPUT DWORD I, Q, M, D, L ACCFLT_CLR OUTPUT DWORD I, Q, M, D, L SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.13 Programação filtro de falhas para checagem Acesso filtro de falhas para checagem Retorna valor do SFC, W#16#0001: o filtro de verificação contém bits que não são setados (no filtro armazenado) Programação filtro de falhas com mensagens de erro Acesso filtro de falhas com mensagens de erro Conhecimento em Automação Training Center
  14. 14. Exemplo: Testando Bloco de Dados Network 1: Mascaramento, Teste, Desmascaramento // Mascara "DB não existe" Call SFC 36( PRGFLT_SET_MASK := DW#16#4000000, ACCFLT_SET_MASK := DW#16#0, RET_VAL := #SFC36Error, PRGFLT_MASKED := #Prog36Mask, ACCFLT_MASKED := #Acc36Mask); // Identificador: DB não existe // na máscara para erros de acesso // Testa chamada OPN DB[DB_NO]; // Checa programação de erro Call SFC 38( PRGFLT_QUERRY ACCFLT_QUERRY RET_VAL PRGFLT_MASKED ACCFLT_MASKED := := := := := DW#16#4000000, DW#16#0, #SFC38Error, #Prog38Mask, #Acc38Mask); // Avalia resultado L #Prog38Mask L DW#16#4000000 ==D = #DB_NOT_THERE // Desmascara "DB não existe" Call SFC 37( PRGFLT_RESET_MASK ACCFLT_RESET_MASK RET_VAL PRGFLT_MASKED ACCFLT_MASKED SIMATIC S7 Siemens AG 1999. All rights reserved. // Identificador: DB não existe // na máscara para erros de acesso // Seta variável auxiliar “DB não existe“ := := := := := DW#16#4000000, DW#16#0, #SFC37Error, #Prog37Mask, #Acc37Mask); Date: File: // Identificador: DB não existe // na máscara para erros de acesso 09.03.2014 PRO2_08P.14 Conhecimento em Automação Training Center
  15. 15. Exercício 8.1: Manipulação de Erro no FC81 Decl. in out out out EN Nome Meas_values RET_VAL Sum Mean_value Tipo ANY INT REAL REAL FC 81 Meas_values ENO Causa Tudo O. K. Tipo dado <>REAL DB não existe Erro compr. faixa Código erro 0 -1 -2 -4 RET_VAL Código de erro Sum Mean_value SIMATIC S7 Siemens AG 1999. All rights reserved. Date: File: 09.03.2014 PRO2_08P.15 Conhecimento em Automação Training Center

×