SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Tratamento de Erros
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
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.
1)
somente com
S7-400
2)
não vai p/Stop
sem OB de erro
ExemploTipo de Erro
Erro de Tempo Máx. tempo de varredura excedido
Erro da Fonte de
Alimentação
Falha da bateria de backup
Diagnóstico de
Interrupção
Quebra-de-fio na entrada de um módulo com
capacidade de interrupção
Removendo/Inserindo
módulo de Interrupção
Removendo um módulo de sinal no S7-400
durante o modo de operação (RUN)
Erro de Hardware CPU Nível de sinal de falha na interface MPI
Erro de seqüência no
programa
Erro na atualização da imagem de processo
(módulo com defeito)
Defeito no bastidor
ou bastidor
Defeito em fonte de alimentação de bastidor
de expansão
Erro de comunicação Identificador de mensagem incorreta
OB de erro
OB 80
OB 81 2)
OB 82
OB 83 1)
OB 84 1)
OB 85
OB 86 1)
OB 87
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
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 Ltda.
SITRAIN Training for
Automation and Drives
Exemplo de um OB de Erro Assíncrono
OB81: OB de erro: defeito na fonte de alimentação
Network 1: defeito na bateria, chegada do evento
L #OB81_FLT_ID // Carrega identificador de erro
L B#16#22 // Identificador: defeito bateria no
==I // bastidor central (CR)
= M 81.1 // Seta flag de memória auxiliar
L #OB81_EV_classe // Identificador: entrando, saindo
L B#16#39 // Identificador: entrando evento
==I
= M 81.2 // Flag mem. aux. entrando evento
A M 81.1 // Defeito na bateria e
A M 81.2 // entrando evento
S M 81.0 // Seta flag mem. aux. para mostrar
// erro
Network 2: Reseta flag de memória auxiliar, quando bateria O.K.
L #OB81_EV_classe // Identificador: entrando, saindo
L B#16#38 // Identificador: saindo
==I
R M 81.0 // Reset flag de memória auxiliar
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
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
ExemploTipo de erro
Erro de programação Bloco chamado não existe na CPU
Erro de acesso
Acesso direto a um módulo com defeito
ou não existente
OB de erro
OB 121
OB 122
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Informações de partida do OB121 para Erros de Programação
Tipo de dadoNome da variável
OB121_EV_classe BYTE
OB121_SW_FLT BYTE
Descrição, parametrização
B#16#25= Chamada erro de programação OB121
Código de erro (ver texto)
OB121_PRIORITY BYTE
OB121_OB_NUMBER BYTE
Classe de prioridade na qual o erro ocorreu
Número do OB (B#16#79)
OB121_BLK_TYPE BYTE
OB121_RESERVED_1 BYTE
Tipo de bloco interrompido (somente S7-400)
OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C
Adição ao código de erro (ver texto)
OB121_FLT_REG WORD
OB121_BLK_NUM WORD
OB121: fonte do erro
Número de blocos no qual o erro ocorreu
OB121_PRG_ADDR WORD
OB121_DATE_TIME DT
Endereço do erro no bloco causador do erro
(somente S7-400)
Momento da gravação do erro de programação
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Informações de partida do OB122 para Erros de Acesso
Tipo de dadoNome da variável
OB122_EV_CLASS BYTE
OB122_SW_FLT BYTE
Descrição, parametrização
B#16#29= Chamada erro acesso
Código de erro (valores possíveis : B#16#42, B#16#43,
B#16#44, B#16#45)
OB122_PRIORITY BYTE
OB122_OB_NUMBR BYTE
Classe de prioridade na qual o erro ocorreu
Número do OB (B#16#80)
OB122_BLK_TYPE BYTE
OB122_MEM_AREA BYTE
Tipo de bloco interrompido(somente S7-400)
OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C
Adição ao código de erro (ver texto)
OB122_FLT_REG WORD
OB122_BLK_NUM WORD
OB122: identificador do endereço onde ocorreu o erro.
Número do bloco no qual o erro ocorreu
OB122_PRG_ADDR WORD
OB122_DATE_TIME DT
Endereço do erro no bloco causador do erro
(somente S7-400)
Momento da gravação do erro de programação.
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
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 Ltda.
SITRAIN Training for
Automation and Drives
SFC 36 para Máscara de Falhas Síncronas
"MSK_FLT"
EN ENO
PRGFLT_SET_MASK
ACCFLT_SET_MASK
RET_VAL ??.?
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. Nova (adicional) programação
filtro de falhas
ACCFLT_SET_MASK INPUT BYTE I, Q, M, D, L, Const. Novo (adicional) acesso filtro de falha
RET_VAL OUTPUT INT I, Q, M, D, L Retorna o valor do SFC,
W#16#0001: o novo filtro fica com
área em comum com o filtro existente
PRGFLT_MASKED OUTPUT DWORD I, Q, M, D, L Programação completa filtro de falhas
ACCFLT_MASKED OUTPUT DWORD I, Q, M, D, L Acesso completo filtro de falhas
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Estrutura de programação de Filtro de Falhas
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Erro de conversão BCD
Erro tamanho faixa, leitura
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, escritasem significado
Erro escrita no DB
Erro escrita no DB instance
Erro de número de bloco DB
Erro de número de bloco DI
Erro de número de bloco FC
Erro de número de bloco FB
DB não carregado
FC não carregado
FB não carregado
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 Ltda.
SITRAIN Training for
Automation and Drives
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
Somente S7-400:
Erro de acesso a I/O em leitura de módulo
não existente ou com acesso repetido
sem significado
Erro de acesso a I/O em escrita
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 Ltda.
SITRAIN Training for
Automation and Drives
SFC 38 para leitura do Registrador de Erros
"READ_ERR"
EN ENO
PRGFLT_QUERRY
ACCFLT_QUERRY
RET_VAL ??.?
PRGFLT_CLR ??.?
ACCFLT_CLR ??.?
??.?
??.?
Parâmetro Declaração Tipo dado Área de memória Descrição
PRGFLT_QUERRY INPUT DWORD I, Q, M, D, L, Const. Programação filtro de falhas para checagem
ACCFLT_QUERRY INPUT BYTE I, Q, M, D, L, Const. Acesso filtro de falhas para checagem
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC,
W#16#0001: o filtro de verificação contém
bits que não são setados (no filtro armazenado)
PRGFLT_CLR OUTPUT DWORD I, Q, M, D, L Programação filtro de falhas com mensagens
de erro
ACCFLT_CLR OUTPUT DWORD I, Q, M, D, L Acesso filtro de falhas com mensagens de erro
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
SFC 37 para desmascaramento de Falhas Síncronas
"DMSK_FLT"
EN ENO
PRGFLT_RESET_MASK
ACCFLT_RESET_MASK
RET_VAL ??.?
PRGFLT_MASKED ??.?
ACCFLT_MASKED ??.?
??.?
??.?
Parâmetro Declaração Tipo dado Área de memória Descrição
PRGFLT_RESET_MASK INPUT DWORD I, Q, M, D, L, Const. Programação filtro de falhas para resetar
ACCFLT_RESET_MASK INPUT BYTE I, Q, M, D, L, Const. Acesso ao filtro de falhas para resetar
RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC,
W#16#0001: o novo filtro contém bits que
não são setados no filtro armazenado
PRGFLT_MASKED OUTPUT DWORD I, Q, M, D, L Mantém mascarados erros programação
ACCFLT_MASKED OUTPUT DWORD I, Q, M, D, L Mantém mascarados erros de acesso
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Exemplo: Testando Bloco de Dados
Network 1: Mascaramento, Teste, Desmascaramento
// Mascara "DB não existe"
Call SFC 36(
PRGFLT_SET_MASK := DW#16#4000000, // Identificador: DB não existe
ACCFLT_SET_MASK := DW#16#0, // na máscara para erros de acesso
RET_VAL := #SFC36Error,
PRGFLT_MASKED := #Prog36Mask,
ACCFLT_MASKED := #Acc36Mask);
// Testa chamada
OPN DB[DB_NO];
// Checa programação de erro
Call SFC 38(
PRGFLT_QUERRY := DW#16#4000000, // Identificador: DB não existe
ACCFLT_QUERRY := DW#16#0, // na máscara para erros de acesso
RET_VAL := #SFC38Error,
PRGFLT_MASKED := #Prog38Mask,
ACCFLT_MASKED := #Acc38Mask);
// Avalia resultado
L #Prog38Mask
L DW#16#4000000
==D
= #DB_NOT_THERE // Seta variável auxiliar “DB não existe“
// Desmascara "DB não existe"
Call SFC 37(
PRGFLT_RESET_MASK := DW#16#4000000, // Identificador: DB não existe
ACCFLT_RESET_MASK := DW#16#0, // na máscara para erros de acesso
RET_VAL := #SFC37Error,
PRGFLT_MASKED := #Prog37Mask,
ACCFLT_MASKED := #Acc37Mask);
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Máscara de erros síncronos (SFC 36)
Programa Atual
• Avaliação dos erros síncronos
ocorridos (SFC 38)
• possivelmente gerar o código do
erro
• Alimentar o bit BR
Desmascarar os erros síncronos
(SFC 37)
"FC_Read" (FC50), Versão 3
Descrição: Expansão do Programa para Tratamento de Erros
SIMATIC S7
Siemens Ltda.
SITRAIN Training for
Automation and Drives
Exercício: Integrando o Tratamento de Erros no "FC_Read" (FC50)

Mais conteúdo relacionado

PPT
Pro3 04 e_enderecamento_indireto
PPT
PDF
Compiladores 7
PDF
Compiladores 6
PDF
Compiladores 5
PPT
PPTX
Tradutor de Pig Latin
DOCX
Compiladores
Pro3 04 e_enderecamento_indireto
Compiladores 7
Compiladores 6
Compiladores 5
Tradutor de Pig Latin
Compiladores

Mais procurados (20)

PPTX
Conjunto de instruções mips - introdução
PDF
Compiladores 1
PPT
PPTX
Geração de código linguagem c
PDF
Caderno de exercícios cobol
PDF
Apostila cobol
PDF
Cheat sheet Mips 32 bits
DOC
Algoritmos
PDF
Final presentation of proposal language
PDF
E booklingc
PDF
PDF
Introdução ao c++
PDF
Pipeline desdobramento escalonamento
PPT
Curso de Linguagem C
PDF
Gera loterps flexdocs
PPTX
PDF
Apresentação Linguagem C
PPT
Gerador de Código-Objeto - Compiladores
PDF
Apostila turbo pascal
PDF
Lab5 decod 7seg
Conjunto de instruções mips - introdução
Compiladores 1
Geração de código linguagem c
Caderno de exercícios cobol
Apostila cobol
Cheat sheet Mips 32 bits
Algoritmos
Final presentation of proposal language
E booklingc
Introdução ao c++
Pipeline desdobramento escalonamento
Curso de Linguagem C
Gera loterps flexdocs
Apresentação Linguagem C
Gerador de Código-Objeto - Compiladores
Apostila turbo pascal
Lab5 decod 7seg
Anúncio

Semelhante a Pro3 06 e_tratamento_de_erros (20)

PPT
PPT
PPT
Stoe 01 p
PDF
S7 avançado
PDF
Manual getstarted
PPT
Stoe 09 p
PPT
10 blocos de organização
PPT
PPT
Stoe 04 p
PPT
Ko 7 kdp-06
PPT
Stoe 14 p
PPT
PPT
CLP S7 300 E S7 400
PDF
Apostila clp (conceitos básicos)
PDF
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
PDF
Microcontroladores pic ling c unicamp
PPTX
AULA controlador lógico programavel CLIC 02 WEG.pptx
Stoe 01 p
S7 avançado
Manual getstarted
Stoe 09 p
10 blocos de organização
Stoe 04 p
Ko 7 kdp-06
Stoe 14 p
CLP S7 300 E S7 400
Apostila clp (conceitos básicos)
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic ling c unicamp
AULA controlador lógico programavel CLIC 02 WEG.pptx
Anúncio

Mais de Luiz Otavio Da Silva Ladeira (20)

PPT
Profibuspa 140503095338-phpapp01
PPT
Profibusdp 140503095743-phpapp01
PPT
Aplicaes 140425105404-phpapp01
PPT
1hart 140503100312-phpapp02
PPT
Pro3 03 e_dados_complexos
PPT
Pro2 05 e_instrucoes_de_jump_e_de_acumuladores

Último (20)

PDF
Aula sobre Materiais de construção - Construções rurais.ppt
PPTX
Caminho das Bromélias _Nível Obra - Governança em SSMA_03.2024.pptx
PDF
Manutenção de motores de indução trifésicos.pdf
PDF
Impactos ambientais gerados pela construção civil
PDF
Apresentação Empregado por Posto Adicional
PPTX
Portuguese_Portfolio_May_2024.pptx_redes
PDF
07-Equipamento+de+protecao+individual+contra+queda+de+altura+Trava-queda+desl...
PDF
Palestras_Tribologia_Profa_MCristinaMFarias.pdf
PPT
22a Aula Manejo de Plantas Daninhas(1).ppt
PDF
Pesquisa Operacional - Programação Linear
PPT
1 - Serviços em Eletricidade - 1° SOS RCP DEA - Rev a.ppt
PDF
3 - Condução de Calor Permanante (Coordendas Retangulares, Cilíndricas e Esfé...
PPT
Ergonomia Aula 01 conceitos básicos segurança
PPTX
1 Conceitos-de-Gestao-da-Qualidaade.pptx
PDF
Aspectos Gerais da area de Instrumentacao.pdf
PPT
Aula-Completação de poços de petroleo e gas
PPTX
AGROECOLOGIA sistemas de ecologia renovable
PPTX
MUROS DE CONCRETO TRANSPORTADOS POR CAMINHÃO
PPTX
Treinamento em powerpoint para integração de colaboradores em fábrica de pequ...
PPT
Curso de NR 10 para segurança do trabalho
Aula sobre Materiais de construção - Construções rurais.ppt
Caminho das Bromélias _Nível Obra - Governança em SSMA_03.2024.pptx
Manutenção de motores de indução trifésicos.pdf
Impactos ambientais gerados pela construção civil
Apresentação Empregado por Posto Adicional
Portuguese_Portfolio_May_2024.pptx_redes
07-Equipamento+de+protecao+individual+contra+queda+de+altura+Trava-queda+desl...
Palestras_Tribologia_Profa_MCristinaMFarias.pdf
22a Aula Manejo de Plantas Daninhas(1).ppt
Pesquisa Operacional - Programação Linear
1 - Serviços em Eletricidade - 1° SOS RCP DEA - Rev a.ppt
3 - Condução de Calor Permanante (Coordendas Retangulares, Cilíndricas e Esfé...
Ergonomia Aula 01 conceitos básicos segurança
1 Conceitos-de-Gestao-da-Qualidaade.pptx
Aspectos Gerais da area de Instrumentacao.pdf
Aula-Completação de poços de petroleo e gas
AGROECOLOGIA sistemas de ecologia renovable
MUROS DE CONCRETO TRANSPORTADOS POR CAMINHÃO
Treinamento em powerpoint para integração de colaboradores em fábrica de pequ...
Curso de NR 10 para segurança do trabalho

Pro3 06 e_tratamento_de_erros

  • 1. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Tratamento de Erros
  • 2. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives 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. 1) somente com S7-400 2) não vai p/Stop sem OB de erro ExemploTipo de Erro Erro de Tempo Máx. tempo de varredura excedido Erro da Fonte de Alimentação Falha da bateria de backup Diagnóstico de Interrupção Quebra-de-fio na entrada de um módulo com capacidade de interrupção Removendo/Inserindo módulo de Interrupção Removendo um módulo de sinal no S7-400 durante o modo de operação (RUN) Erro de Hardware CPU Nível de sinal de falha na interface MPI Erro de seqüência no programa Erro na atualização da imagem de processo (módulo com defeito) Defeito no bastidor ou bastidor Defeito em fonte de alimentação de bastidor de expansão Erro de comunicação Identificador de mensagem incorreta OB de erro OB 80 OB 81 2) OB 82 OB 83 1) OB 84 1) OB 85 OB 86 1) OB 87
  • 3. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives 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.
  • 4. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Exemplo de um OB de Erro Assíncrono OB81: OB de erro: defeito na fonte de alimentação Network 1: defeito na bateria, chegada do evento L #OB81_FLT_ID // Carrega identificador de erro L B#16#22 // Identificador: defeito bateria no ==I // bastidor central (CR) = M 81.1 // Seta flag de memória auxiliar L #OB81_EV_classe // Identificador: entrando, saindo L B#16#39 // Identificador: entrando evento ==I = M 81.2 // Flag mem. aux. entrando evento A M 81.1 // Defeito na bateria e A M 81.2 // entrando evento S M 81.0 // Seta flag mem. aux. para mostrar // erro Network 2: Reseta flag de memória auxiliar, quando bateria O.K. L #OB81_EV_classe // Identificador: entrando, saindo L B#16#38 // Identificador: saindo ==I R M 81.0 // Reset flag de memória auxiliar
  • 5. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives 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 ExemploTipo de erro Erro de programação Bloco chamado não existe na CPU Erro de acesso Acesso direto a um módulo com defeito ou não existente OB de erro OB 121 OB 122
  • 6. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Informações de partida do OB121 para Erros de Programação Tipo de dadoNome da variável OB121_EV_classe BYTE OB121_SW_FLT BYTE Descrição, parametrização B#16#25= Chamada erro de programação OB121 Código de erro (ver texto) OB121_PRIORITY BYTE OB121_OB_NUMBER BYTE Classe de prioridade na qual o erro ocorreu Número do OB (B#16#79) OB121_BLK_TYPE BYTE OB121_RESERVED_1 BYTE Tipo de bloco interrompido (somente S7-400) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C Adição ao código de erro (ver texto) OB121_FLT_REG WORD OB121_BLK_NUM WORD OB121: fonte do erro Número de blocos no qual o erro ocorreu OB121_PRG_ADDR WORD OB121_DATE_TIME DT Endereço do erro no bloco causador do erro (somente S7-400) Momento da gravação do erro de programação
  • 7. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Informações de partida do OB122 para Erros de Acesso Tipo de dadoNome da variável OB122_EV_CLASS BYTE OB122_SW_FLT BYTE Descrição, parametrização B#16#29= Chamada erro acesso Código de erro (valores possíveis : B#16#42, B#16#43, B#16#44, B#16#45) OB122_PRIORITY BYTE OB122_OB_NUMBR BYTE Classe de prioridade na qual o erro ocorreu Número do OB (B#16#80) OB122_BLK_TYPE BYTE OB122_MEM_AREA BYTE Tipo de bloco interrompido(somente S7-400) OB: B#16#88, DB: B#16#8A, FB: B#16#8E, FC: B#16#8C Adição ao código de erro (ver texto) OB122_FLT_REG WORD OB122_BLK_NUM WORD OB122: identificador do endereço onde ocorreu o erro. Número do bloco no qual o erro ocorreu OB122_PRG_ADDR WORD OB122_DATE_TIME DT Endereço do erro no bloco causador do erro (somente S7-400) Momento da gravação do erro de programação.
  • 8. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives 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
  • 9. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives SFC 36 para Máscara de Falhas Síncronas "MSK_FLT" EN ENO PRGFLT_SET_MASK ACCFLT_SET_MASK RET_VAL ??.? 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. Nova (adicional) programação filtro de falhas ACCFLT_SET_MASK INPUT BYTE I, Q, M, D, L, Const. Novo (adicional) acesso filtro de falha RET_VAL OUTPUT INT I, Q, M, D, L Retorna o valor do SFC, W#16#0001: o novo filtro fica com área em comum com o filtro existente PRGFLT_MASKED OUTPUT DWORD I, Q, M, D, L Programação completa filtro de falhas ACCFLT_MASKED OUTPUT DWORD I, Q, M, D, L Acesso completo filtro de falhas
  • 10. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Estrutura de programação de Filtro de Falhas 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Erro de conversão BCD Erro tamanho faixa, leitura 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, escritasem significado Erro escrita no DB Erro escrita no DB instance Erro de número de bloco DB Erro de número de bloco DI Erro de número de bloco FC Erro de número de bloco FB DB não carregado FC não carregado FB não carregado 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.
  • 11. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives 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 Somente S7-400: Erro de acesso a I/O em leitura de módulo não existente ou com acesso repetido sem significado Erro de acesso a I/O em escrita 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".
  • 12. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives SFC 38 para leitura do Registrador de Erros "READ_ERR" EN ENO PRGFLT_QUERRY ACCFLT_QUERRY RET_VAL ??.? PRGFLT_CLR ??.? ACCFLT_CLR ??.? ??.? ??.? Parâmetro Declaração Tipo dado Área de memória Descrição PRGFLT_QUERRY INPUT DWORD I, Q, M, D, L, Const. Programação filtro de falhas para checagem ACCFLT_QUERRY INPUT BYTE I, Q, M, D, L, Const. Acesso filtro de falhas para checagem RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC, W#16#0001: o filtro de verificação contém bits que não são setados (no filtro armazenado) PRGFLT_CLR OUTPUT DWORD I, Q, M, D, L Programação filtro de falhas com mensagens de erro ACCFLT_CLR OUTPUT DWORD I, Q, M, D, L Acesso filtro de falhas com mensagens de erro
  • 13. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives SFC 37 para desmascaramento de Falhas Síncronas "DMSK_FLT" EN ENO PRGFLT_RESET_MASK ACCFLT_RESET_MASK RET_VAL ??.? PRGFLT_MASKED ??.? ACCFLT_MASKED ??.? ??.? ??.? Parâmetro Declaração Tipo dado Área de memória Descrição PRGFLT_RESET_MASK INPUT DWORD I, Q, M, D, L, Const. Programação filtro de falhas para resetar ACCFLT_RESET_MASK INPUT BYTE I, Q, M, D, L, Const. Acesso ao filtro de falhas para resetar RET_VAL OUTPUT INT I, Q, M, D, L Retorna valor do SFC, W#16#0001: o novo filtro contém bits que não são setados no filtro armazenado PRGFLT_MASKED OUTPUT DWORD I, Q, M, D, L Mantém mascarados erros programação ACCFLT_MASKED OUTPUT DWORD I, Q, M, D, L Mantém mascarados erros de acesso
  • 14. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Exemplo: Testando Bloco de Dados Network 1: Mascaramento, Teste, Desmascaramento // Mascara "DB não existe" Call SFC 36( PRGFLT_SET_MASK := DW#16#4000000, // Identificador: DB não existe ACCFLT_SET_MASK := DW#16#0, // na máscara para erros de acesso RET_VAL := #SFC36Error, PRGFLT_MASKED := #Prog36Mask, ACCFLT_MASKED := #Acc36Mask); // Testa chamada OPN DB[DB_NO]; // Checa programação de erro Call SFC 38( PRGFLT_QUERRY := DW#16#4000000, // Identificador: DB não existe ACCFLT_QUERRY := DW#16#0, // na máscara para erros de acesso RET_VAL := #SFC38Error, PRGFLT_MASKED := #Prog38Mask, ACCFLT_MASKED := #Acc38Mask); // Avalia resultado L #Prog38Mask L DW#16#4000000 ==D = #DB_NOT_THERE // Seta variável auxiliar “DB não existe“ // Desmascara "DB não existe" Call SFC 37( PRGFLT_RESET_MASK := DW#16#4000000, // Identificador: DB não existe ACCFLT_RESET_MASK := DW#16#0, // na máscara para erros de acesso RET_VAL := #SFC37Error, PRGFLT_MASKED := #Prog37Mask, ACCFLT_MASKED := #Acc37Mask);
  • 15. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Máscara de erros síncronos (SFC 36) Programa Atual • Avaliação dos erros síncronos ocorridos (SFC 38) • possivelmente gerar o código do erro • Alimentar o bit BR Desmascarar os erros síncronos (SFC 37) "FC_Read" (FC50), Versão 3 Descrição: Expansão do Programa para Tratamento de Erros
  • 16. SIMATIC S7 Siemens Ltda. SITRAIN Training for Automation and Drives Exercício: Integrando o Tratamento de Erros no "FC_Read" (FC50)

Notas do Editor

  • #2: ConteúdoPágina Manipulando Erros Assíncronos02 Manipulando os Blocos de Organização de Erros03 Exemplo de um OB de Erro Assíncrono04 Manipulando Erros Síncronos05 Informações de partida do OB121 para Erros de Programação06 Informações de partida do OB122 para Erros de Acesso07 Máscara de Erros Síncronos08 SFC 36 para Máscara de Falhas Síncronas09 Estrutura de programação de Filtro de Falhas10 Estrutura de acesso ao Filtro de Falhas11 SFC 38 para leitura do Registrador de Erros12 SFC 37 para desmascaramento de Falhas Síncronas13 Exemplo: Testando Bloco de Dados14 Descrição: Expansão do Programa para Tratamento de Erros15 Exercício: Integrando o Tratamento de Erros no "FC_Read" (FC50)16
  • #3: IntroduçãoO slide acima relaciona os eventos de erros assíncronos. Estes erros não são atribuídos para determinadas posições do programa. Erro de TempoA monitoração do tempo de ciclo de varredura tem um ajuste padrão de 150ms. O sistema reconhece um erro de tempo se a duração do ciclo é maior do que 150 ms. Se o erro ocorre duas vezes no mesmo ciclo, a CPU vai para o estado de Stop. Erro na Fonte Ocorre com a falha ou a perda da bateria de backup e adicionalmente para o de Alimentação S7-400 com o defeito da alimentação de 24 V no bastidor central ou bastidor de expansão. Diferentemente de outros tipos de erros, sem um OB de erro existente, a CPU mantém-se em estado de Run e um led vermelho de erro acende na CPU. Diagnóstico de Diagnóstico capacita módulos, como por exemplo módulos analógicos, a Interrupção poderem gatilhar um diagnóstico de interrupção no caso de um erro. Aos módulos devem ser atribuídos parâmetros para tanto. Neste caso o diagnóstico de interrupção é habilitado. Interrupção deÉ gatilhado pela inserção ou remoção de módulos no sistema de PLC S7-400. Remoção/Inserção Na inserção de módulos, o sistema operacional verifica se o tipo de módulo correto foi inserido. Esta função permite a remoção e inserção de módulos durante o ciclo de programa. Erro de CPU-H/W No S7-400, erros são reconhecidos na interface MPI através do K-Bus ou no módulo de interface para I/O distribuído. Erro de seqüência Resulta de erros de acesso à periferia (I/O) na atualização da imagem de de programa processo ou por exemplo, da perda de OB para interrupção parametrizada horário do dia (time-of-day). Defeito em Bastidor É reconhecido quando um bastidor, uma subrede em sistemas de PLC em rede ou uma estação de periferia (I/O) distribuída falhar. Erro de ComunicaçãoUm identificador de mensagem incorreto no recebimento de dados globais está presente no S7-300 ou o bloco de dados é muito curto para armazenamento do estado (status) da informação. No S7-400 existem diversas causas, por exemplo, o envio de sincronização de mensagens não é possível.
  • #4: Informação Favor prestar atenção às regras de uso dos OB’s de erro. de partida Para cada bloco de organização, variáveis temporárias são definidas na parte de declaração. O sistema operacional armazena as informações de partida nestas variáveis. O sistema operacional armazena informações adicionais nas informações de partida quando o bloco é chamado. Como um exemplo você pode ver as informações de partida no OB 81. A variável OB81_FLT_ID tem o seguinte significado: •B#16#21: Pelo menos uma bateria de backup do bastidor central está esgotada (BATTF) •B#16#22: Tensão de backup no bastidor central está perdida (BAF). •B#16#23: Defeito da alimentação 24V no bastidor central / eliminado. •B#16#31: Pelo menos uma bateria de backup de um bastidor de expansão está esgotada. •B#16#32: Tensão de backup em um dos bastidores de expansão está esgotada. •B#16#33: defeito da alimentação 24V em um bastidor de expansão.
  • #5: Tarefa O defeito na bateria deve resultar na amostragem de um erro na console operacional. Depois de trocada a bateria a mensagem deve automaticamente desaparecer. DescriçãoEm erros de fonte de alimentação p.ex. falha de bateria, o OB de erro é chamado uma vez pelo sistema operacional. Depois do erro ser eliminado o OB 81 é chamado mais uma vez. No programa exemplo, a variável #OB81_FLT_ID é avaliada, de forma a determinar se existiu um defeito na bateria. Neste caso a variável contém o valor 22H. A comparação desta forma é preenchida e o bit de memória M 81.1 é gatilhado. O erro mostrado será inicializado quando a bateria tiver falhado (entrando evento) e limpada depois que o erro tenha sido eliminado (saindo evento). Os seguintes identificadores estão na variável #OB81_EV_classe: • B#16#39entrando evento • B#16#38saindo evento. O “set” e o “reset” do flag de memória auxiliar M 81.0 é arquivado através da avaliação destas variáveis. No programa cíclico, o flag de memória auxiliar M81.0 pode ser lincado à uma memória geradora de pulso e ser atribuída a uma saída. A saída então piscará enquanto a bateria estiver esgotada ou removida.
  • #6: Erros síncronos O sistema operacional da CPU gera uma falha síncrona, quando um erro ocorre em conexão imediata com o programa em processamento. OB121 é chamado com a programação de um erro. OB122 é chamado com um erro de acesso. Se o OB de erro síncrono não é carregado na CPU, a CPU é chaveada para o modo STOP quando a falha síncrona ocorre. O OB de erro síncrono tem a mesma prioridade que o bloco no qual o erro ocorreu. Por esta razão, os registradores do bloco interrompido pode ser acessado no OB de erro síncrono e este é o porque o programa no OB de erro síncrono pode também retornar os registradores (se necessário com mudança de conteúdo) para o bloco interrompido. Mascaramento de S7 tem os seguintes SFCs, com as quais você pode mascarar e demascarar erros síncronos os eventos de partida do OB121 enquanto o seu programa está sendo processado: •SFC36 (MSK_FLT): mascara o código de erro específico •SFC37 (DMSK_FLT): demascara o código de erro que foi mascarado pelo SFC36 •SFC38 (READ_ERR): lê o registrador de erro
  • #7: Código de erro B#16#21: erro de conversão BCD. A variável #OB121_FLT_REG contém um (#OB121_SW_FLT)identificador para o registrador respectivo (W#16#0000: ACCU 1). B#16#22:Dimensão da faixa de erro durante leitura. B#16#23: Dimensão da faixa de erro durante escrita.B#16#28: Acesso indireto leitura de BYTE, WORD ou DWORD com endereço de bit diferente de 0 (combinado durante leitura).B#16#29: Acesso indireto escrita de BYTE, WORD ou DWORD com endereçode bit diferente de 0 (combinado durante escrita). Neste caso, #OB121_FLT_REG contém o endereço do byte de falha e #OB121_RESERVED_1 contém o tipo do acesso e área de memória : Bit 7 a 4 (tipo de acesso):Bit 3 a 0 (área de memória) 0: acesso Bit 0: área I/O 4: DB Global 1: acesso Byte 1: PII5: DB Instance 2: acesso Word 2: PIQ 6: dado local próprio 3: acesso Double word 3: Memória Bit 7: dado local do chamado B#16#24: Faixa de erro durante leituraB#16#25: Faixa de erro durante escrita #OB121_FLT_REG contém o identificador B#16#86: área dado local próprio. B#16#26:Erro com No. de temporizador (No. inválido no #OB121_FLT_REG) B#16#27:Erro com No. de contador (No. inválido no #OB121_FLT_REG) B#16#30:Acesso escr.DB global proteg.contra escr.(No.no#OB121_FLT_REG) B#16#31:Acesso escr.DB inst.proteg.contra escr.(No.no#OB121_FLT_REG) B#16#32:No. erro em acesso to global DB (No. no #OB121_FLT_REG) B#16#33:No. erro em acesso to instance DB (No. no #OB121_FLT_REG) B#16#34:Número do erro em chamada de FC (No. no #OB121_FLT_REG) B#16#35:Número do erro em chamada de FB (No. no #OB121_FLT_REG) B#16#3A: Acesso a DB não carregado (No. no #OB121_FLT_REG) B#16#3C: Acesso a FC não carregado (No. no #OB121_FLT_REG) B#16#3D: Acesso a SFC não carregado (No. no #OB121_FLT_REG) B#16#3E: Acesso a FB não carregado (No. no #OB121_FLT_REG) B#16#3F: Acesso a SFB não carregado (No. no #OB121_FLT_REG)
  • #8: Código de erro A variável #OB122_SW_FLT tem o seguinte significado: B#16#42 S7-300: Erro acesso I/O, leituraS7-400: Primeiro acesso leitura depois de que ocorre erro B#16#43:S7-300: Erro acesso I/O, escritaS7-400: Primeiro acesso escrita depois de que ocorre erro B#16#44:Somente para S7-400: erro no n-éssimo (n>1) acesso leitura depois que ocorre erro. B#16#45:Somente para S7-400: erro no n-éssimo (n>1) acesso escrita depois que ocorre erro. OB122_MEM_AREAA variável #OB122_MEM_AREA contém informação sobre o tipo de acesso e a área de memória: Bit 7 a 4 tipo de acesso: 0:Acesso Bit 1:Acesso Byte 2:Acesso Word 3:Acesso Double word Bit 3 a 0 área de memória: 0: Área I/O 1:Tabela da Imagem de Processo de Entrada2:Tabela da Imagem de Processo de Saída
  • #9: Desvantagens dosA manipulação dos eventos de erros síncronos pelo significado dos OBs de OBs de erro erros síncronos tem algumas desvantagens: síncrono •Com uma manipulação de erro qualificado, uma correspondente avaliação de erro no OB de erro síncrono deve ser executado para cada bloco com instruções que podem gatilhar um erro síncrono. Dentro do OB de erro síncrono um considerável trabalho deve desta forma ser executado de forma a localizar o erro no programa do usuário e então poder reagir de acordo. •Cada mudança em um bloco existente conduz a mudanças correspondentes no OB de erro síncrono. •Blocos não podem ser integrados em um programa do usuário sem a correspondente consideração no OB de erro síncrono. Alternativas aosS7 oferece, com a ajuda da função “Máscara de Erros Síncronos", um OBs de erro mecanismo que atribui o código para o gerenciamento de processo e para a síncrono manipulação de erro associado a ser instalado no mesmo bloco. Isto toma lugar, por exemplo, nos seguintes passos: 1.Antes da execução de instruções "críticas" (p.ex. abertura de um DB, ou acesso a um DB de comprimento desconhecido), o correspondente erro síncrono pode ser mascarado pela ação do SFC 36 (MSK_FLT). Se uma instrução gerar um erro, o OB de erro síncrono não é chamado. 2.Depois da execução de instruções "críticas", você pode verificar pela ação do SFC 38 (READ_ERR), enquanto ainda não ocorreram erros críticos e reagir de acordo. 3.Uma vez concluídas as atividades, a falha síncrona previamente mascarada pode então ser desmascarada e então a chamada do OB de erro síncrono é habilitado novamente.
  • #10: MascarandoCom o SFC 36 (MSK_FLT), você inibe a chamada do OB de erro síncrono erros síncronos usando filtros de falhas. Com o nível lógico "1" você identifica nos filtros de falhas para quais erros síncronos o OB não será chamado (as falhas síncronas serão “mascaradas”). O mascaramento especificado é ajustado sobre a máscara armazenada no sistema operacional (operação lógica OU dos bits filtrados). SFC36 sinaliza no valor retornado se, para a máscara especificada nos parâmetros de entrada, a máscara já existe (W#16#0001) para pelo menos um bit. O SFC36 entrega em sua saída todos os parâmetros atualmente mascarados e indicados com nível lógico "1". Reação da CPU Quando um erro de programação ou acesso é mascarado, então a CPU reage de acordo com o seu tipo de erro: 1.O OB de erro não é chamado para erros de programação ou acesso. 2.O evento de erro é inserido no registrador de erro. O registrador de erro pode ser lido com a ajuda do SFC38 (READ_ERR). 3.O sistema operacional insere a falha síncrona no buffer de diagnóstico independentemente da máscara. Validade do A máscara somente é valida para a classe de prioridade na qual o SFC 36 mascaramento foi chamado. Se você, por exemplo, inibir a chamada do OB de erro síncrono em um programa principal, o OB de erro síncrono irá continuar a ser chamado se o erro ocorrer em uma interrupção de programa.
  • #11: Programação deVocê controla a função do sistema para a manipulação de erro síncrono com filtro de falha os filtros de falha. Na programação do filtro de falhas existe um bit para cada possível falha de programação. Na especificação do filtro de falhas, você ajusta os bits de erro síncrono os quais você deseja mascarar, desmascarar ou checar. O filtro de falhas envia pela função do sistema indicando com o nível lógico “1” os erros síncronos que ainda estão mascarados ou que ocorreram. Erro de Número deErros de numeração de blocos ocorrem quando a faixa de numeração de blocos Blocoda CPU utilizada é ultrapassada. Erro de escritaErros de escrita podem ocorrer com tentativas de escrita em data blocks que possuam o atributo 'Write-protected in the PLC'. Este atributo é editado pelo próprio programador. Erro de faixaErros de faixa ocorrem quando variáveis locais temporárias ou áreas de bit memory são endereçadas no programa, porém não existem na CPU utilizada. Erro de AlinhamentoErros de alinhamento sempre ocorrem quando áreas de bytes, words ou double words são endereçadas utilizando endereçamento indireto por memória ou por registrador de endereços, e cujos endereços de bit não são iguais a zero dentro do ponteiro de 32 bits.
  • #12: Filtro de falhasAs CPUs S7-400 distinguem entre dois tipos de erro de acesso a periferia. de acesso Acesso a módulo não existente e falha de acesso a módulo inserido como existente. Se um módulo falha durante operação, um estouro de tempo (time-out) (QVZ) ocorre quando o módulo é acessado pelo programa. Ao mesmo tempo, este módulo é interpretado como “não existente”, por tanto a cada acesso adicional um erro de acesso a periferia (I/O) (PZF) é sinalizado. A CPU também sinaliza um erro de acesso a periferia (I/O) quando um módulo não existente é acessado, seja este diretamente através da área de I/O ou indiretamente através da imagem de processo.
  • #13: Leitura do A função do sistema SFC38 (READ_ERR) faz a leitura do registrador de registrador de erro erro. Com nível lógico "1" você identifica no filtro de falhas para quais erros síncronos você deseja que sejam lidas as entradas. No retorno do valor, a SFC38 sinaliza com W#16#0001 se para a seleção especificada nos parâmetros de entrada, não existe máscara (armazenada) para pelo menos um bit. A SFC38 retorna os eventos selecionados com nível lógico "1" nos parâmetros de saída, quando eles ocorrem e apaga estes eventos do registrador de erro com a varredura. Um bit setado significa que o erro síncrono associado mascarado ocorreu pelo menos uma vez. As falhas síncronas que ocorreram na classe de prioridade corrente são sinalizadas.
  • #14: DesmascaramentoA função do sistema SFC37 (DMSK_FLT) utiliza o filtro de falhas para de falhas síncronashabilitar a chamada dos OBs de erros síncronos de novo. Com o nível lógico "1" você identifica no filtro de falhas para quais erros síncronos os OBs estão de novo sendo chamados (as falhas síncronas são “desmascaradas”). As entradas correspondentes do desmascaramento especificado, que estão no registrador de erros, são apagadas. No retorno do valor, a SFC37 sinaliza com W#16#0001 se para o desmascaramento especificado nos parâmetros de entrada, não existe máscara (armazenada) para pelo menos um bit. A SFC37 entrega em seus parâmetros de saída todos os eventos mascarado atualmente com nível lógico "1". Se uma falha síncrona desmascarada ocorre, o OB correspondente é chamado de novo e o evento é inserido no registrador de erro. Habilitação é válida para a classe de prioridade corrente.
  • #15: ExemploEste exemplo mostra o procedimento para mascarar a possível falha síncrona na abertura de um DB. 1.No primeiro passo, a instrução "crítica" OPN DB... é mascarada com a ajuda da SFC 36 (MSK_FLT). 2.Depois dela, a instrução OPN DB[DB_NO] é executada. Se o DB não está na memória de trabalho da CPU, então OB121 não é chamado neste caso. 3.Com a ajuda da SFC38 (READ_ERR), o registrador de erro é lido e checado de forma que a instrução para abertura do DB tenha falhado ou não. No caso de um erro, a variável local #DB_NOT_THERE é setada para "1" e só então uma avaliação pode ser feita posteriormente. 4.No fim, a falha síncrona mascarada é desmascarada de novo com a ajuda da SFC37 (DMSK_FLT), através do reestabelecimento do estado original.
  • #16: Situação AtualNo programa atual (FC50, Versão 2), os data records das peças são selecionados a partir do "DB_Database.Database„, transferido via parâmetro de entrada #Database , baseado em um código pré-definido e transferido para o "FB_Line" (FB31) através do parâmetro de saída #Parts_Data. Se, por exemplo, um DB de base de dados for parametrizado no FC 50 e não existir na CPU, a CPU irá para o modo STOP no momento em que o bloco tentar acessar os data records. ObjetivoO bloco "FC_Read" (FC 50, Versão 3) deve ser expandido de forma que a CPU não vá para o modo Stop quando um dos erros síncronos abaixo listados ocorrer. A partir disso, um código de erro interno deve ser gerado e transferido para o parâmetro de saída "RET_VAL" para cada tipo de erro síncrono. Do mesmo modo, se ocorrer um erro, o parâmetro ENO (internamente corresponde ao bit BR) deve ser levado ao nível ' 0‘, para que graficamente o erro possa ser visualizado e avaliado via lógica binária diretamente na saída do FC 50. Os códigos de erros possuem o seguinte significado: No. do ErroSignificado - 1DB chamado não carregado na CPU - 4Erro de comprimento de faixa na leitura
  • #17: Procedimento1.Programe as chamadas dos blocos SFC 36 a SFC 38 de forma apropriada. Declare variáveis temporárias adicionais para carregar os parâmetros dos SFCs 2.No bloco "FC_Read" (FC 50), declare o parâmetro de saída adicional "RET_VAL". Os códigos dos erros serão escritos nessa variável. 3.Adapte a chamada do bloco FC 50 dentro do OB 1. Para testar a exibição de erros, utilize uma MW (no exemplo da figura ele possui o símbolo "MW_FC50_Error_No") para o parâmetro "RET_VAL", cujo conteúdo pode ser visualizado através da função "Monitor Variable". 4.Verifique a funcionalidade do FC 50: a.apagando o "DB_Database" da CPU b.modificando as variáveis estáticas "Database.Max_Number" e "Database.Size" para um valor maior do que 20.