Você está na página 1de 15

Lidando com Erros Sncronos e Assncronos

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_08P.1

Conhecimento em Automao
Training Center

Contedo

Pg.

Manipulando Erros Assncronos ...........................................................................................


Manipulando os Blocos de Organizao de Erros .............................................................................
Exemplo de um OB de Erro Assncrono .............................................................................................
Manipulando Erros Sncronos .....................................................................................................
Informaes de partida do OB121 para Erros de Programao ........................................................
Informaes de partida do OB122 para Erros de Acesso ..................................................................
Mscara de Erros Sncronos ..............................................................................................................
SFC 36 para Mscara de Falhas Sncronas .................................................................
Estrutura de programao de Filtro de Falhas ...................................................................................
Estrutura de acesso ao Filtro de Falhas .............................................................................................
SFC 37 para desmascaramento de Falhas Sncronas ............................................................
SFC 38 para leitura do registrador de Erros ............................................................................
Exemplo: Testando Bloco de Dados ...................................................................................................
Exerccio 8.1: Manipulao de Erro no FC81 ..............................................................................

Siemens Ltda
Training Center

Pgina 1

2
3
4
5
6
7
8
9
10
11
12
13
14
15

ST-7PRO2
Erros Sncronos e Asscronos

Manipulando Erros Assncronos


Erros Assncronos no so atribudos a posio particular do programa,
isto , eles aparecem assncronos para o processamento do programa.
Tipo de Erro

Exemplo

OB de erro

Erro de Tempo

Mx. tempo de varredura excedido

OB 80

Erro da Fonte de
Alimentao

Falha da bateria de backup

OB 81 2)

Diagnstico de
Interrupo

Quebra-de-fio na entrada de um mdulo com


capacidade de interrupo

OB 82

Removendo/Inserindo
mdulo de Interrupo

Removendo um mdulo de sinal no S7-400


durante o modo de operao (RUN)

OB 83 1)

Erro de Hardware CPU

Nvel de sinal de falha na interface MPI

OB 84 1)

Erro de seqncia no
programa

Erro na atualizao da imagem de processo


(mdulo com defeito)

OB 85

Defeito no bastidor
ou bastidor

Defeito em fonte de alimentao de bastidor


de expanso

OB 86 1)

Erro de comunicao

Identificador de mensagem incorreta

OB 87

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_08P.2

1) somente

com

S7-400
2) no

vai p/Stop
sem OB de erro

Conhecimento em Automao
Training Center

Introduo

O slide acima relaciona os eventos de erros assncronos. Estes erros no so


atribudos para determinadas posies do programa.
Erro de Tempo
A monitorao do tempo de ciclo de varredura tem um ajuste padro de
150ms. O sistema reconhece um erro de tempo se a durao 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 Alimentao
S7-400 com o defeito da alimentao de 24 V no bastidor central ou bastidor
de expanso.
Diferentemente de outros tipos de erros, sem um OB de erro existente, a CPU
mantm-se em estado de Run e um led vermelho de erro acende na CPU.
Diagnstico de
Diagnstico capacita mdulos, como por exemplo mdulos analgicos, a
Interrupo
poderem gatilhar um diagnstico de interrupo no caso de um erro. Aos
mdulos devem ser atribudos parmetros para tanto. Neste caso o
diagnstico de interrupo habilitado.
Interrupo de
gatilhado pela insero ou remoo de mdulos no sistema de PLC S7-400.
Remoo/Insero
Na insero de mdulos, o sistema operacional verifica se o tipo de mdulo
correto foi inserido. Esta funo permite a remoo e insero de mdulos
durante o ciclo de programa.
Erro de CPU-H/W
No S7-400, erros so reconhecidos na interface MPI atravs do K-Bus ou no
mdulo de interface para I/O distribudo.
Erro de seqncia
Resulta de erros de acesso periferia (I/O) na atualizao da imagem de
de programa
processo ou por exemplo, da perda de OB para interrupo parametrizada
horrio do dia (time-of-day).
Defeito em Bastidor reconhecido quando um bastidor, uma subrede em sistemas de PLC em
rede ou uma estao de periferia (I/O) distribuda falhar.
Erro de Comunicao Um 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 informao. No S7-400 existem diversas causas, por
exemplo, o envio de sincronizao de mensagens no possvel.

Siemens Ltda
Training Center

Pgina 2

ST-7PRO2
Erros Sncronos e Asscronos

Manipulando os Blocos de Organizao 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


necessrio, requisitar o estado Stop com a funo do sistema SFC
46 depois da execuo do OB de erro.

Um identificador de erro adicional armazenado nas informaes de


partida do OB de erro, o qual pode se avaliado no programa.

Uma descrio dos OBs de erro podem ser encontrados no ajuda


Online ou do sistema e Manual de Funes Padro.

A transmisso dos OBs de erro que no so suportados por


determinadas CPU so rejeitados com uma mensagem de erro.

SIMATIC S7
Siemens AG 1999. All rights reserved.

Informao
de partida

Date:
File:

04.10.2007
PRO2_08P.3

Conhecimento em Automao
Training Center

Favor prestar ateno s regras de uso dos OBs de erro.


Para cada bloco de organizao, variveis temporrias so definidas na parte
de declarao. O sistema operacional armazena as informaes de partida
nestas variveis. O sistema operacional armazena informaes adicionais nas
informaes de partida quando o bloco chamado.
Como um exemplo voc pode ver as informaes de partida no OB 81.

A varivel 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: Tenso de backup no bastidor central est perdida (BAF).
B#16#23: Defeito da alimentao 24V no bastidor central / eliminado.
B#16#31: Pelo menos uma bateria de backup de um bastidor de
expanso est esgotada.
B#16#32: Tenso de backup em um dos bastidores de expanso est
esgotada.
B#16#33: defeito da alimentao 24V em um bastidor de expanso.
Siemens Ltda
Training Center

Pgina 3

ST-7PRO2
Erros Sncronos e Asscronos

Exemplo de um OB de Erro Assncrono


OB81: OB de erro: defeito na fonte de alimentao
Network 1:
L
L
==I
=
L
L
==I
=
A
A
S

defeito na bateria, chegada do evento


#OB81_FLT_ID
B#16#22
M
81.1
#OB81_EV_classe
B#16#39
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 memria auxiliar
Identificador: entrando, saindo
Identificador: entrando evento

//
//
//
//
//

Flag mem. aux. entrando evento


Defeito na bateria e
entrando evento
Seta flag mem. aux. para mostrar
erro

Network 2: Reseta flag de memria 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

// Reset flag de memria auxiliar

81.0

Date:
File:

04.10.2007
PRO2_08P.4

Conhecimento em Automao
Training Center

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.

Descrio

Em erros de fonte de alimentao 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 varivel #OB81_FLT_ID avaliada, de forma a
determinar se existiu um defeito na bateria. Neste caso a varivel contm o
valor 22H. A comparao desta forma preenchida e o bit de memria 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 esto na varivel #OB81_EV_classe:
B#16#39 entrando evento
B#16#38 saindo evento.
O set e o reset do flag de memria auxiliar M 81.0 arquivado atravs da
avaliao destas variveis.
No programa cclico, o flag de memria auxiliar M81.0 pode ser lincado uma
memria geradora de pulso e ser atribuda a uma sada. A sada ento
piscar enquanto a bateria estiver esgotada ou removida.

Siemens Ltda
Training Center

Pgina 4

ST-7PRO2
Erros Sncronos e Asscronos

Manipulando Erros Sncronos




Erros sncronos so atribudos diretamente a uma posio no


programa do usurio

Erros em instrues aritmticas (overflow, REAL nmero invlido)


Ajuste de Bits de Status

Erros no processamento de instrues STL (erro sncrono)


Chamada do OB de erro sncrono
Tipo de erro

Exemplo

OB de erro

Erro de programao

Bloco chamado no existe na CPU

OB 121

Erro de acesso

Acesso direto a um mdulo com defeito


ou no existente

OB 122

SIMATIC S7
Siemens AG 1999. All rights reserved.

Date:
File:

04.10.2007
PRO2_08P.5

Conhecimento em Automao
Training Center

Erros sncronos

O sistema operacional da CPU gera uma falha sncrona, quando um erro


ocorre em conexo imediata com o programa em processamento.
OB121 chamado com a programao de um erro. OB122 chamado com
um erro de acesso. Se o OB de erro sncrono no carregado na CPU, a
CPU chaveada para o modo STOP quando a falha sncrona ocorre.
O OB de erro sncrono tem a mesma prioridade que o bloco no qual o erro
ocorreu. Por esta razo, os registradores do bloco interrompido pode ser
acessado no OB de erro sncrono e este o porque o programa no OB de
erro sncrono pode tambm retornar os registradores (se necessrio com
mudana de contedo) para o bloco interrompido.

Mascaramento de
erros sncronos

S7 tem os seguintes SFCs, com as quais voc pode mascarar e demascarar


os eventos de partida do OB121 enquanto o seu programa est sendo
processado:
SFC36 (MSK_FLT):
mascara o cdigo de erro especfico
SFC37 (DMSK_FLT): demascara o cdigo de erro que foi mascarado
pelo SFC36
SFC38 (READ_ERR): l o registrador de erro

Siemens Ltda
Training Center

Pgina 5

ST-7PRO2
Erros Sncronos e Asscronos

Informaes de partida do OB121 para Erros de Programao


Nome da varivel

Tipo de dado Descrio, parametrizao

OB121_EV_classe

BYTE

B#16#25= Chamada erro de programao OB121

OB121_SW_FLT

BYTE

Cdigo de erro (ver texto)

OB121_PRIORITY

BYTE

Classe de prioridade na qual o erro ocorreu

OB121_OB_NUMBER

BYTE

Nmero 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

Adio ao cdigo de erro (ver texto)

OB121_FLT_REG

WORD

OB121: fonte do erro

OB121_BLK_NUM

WORD

Nmero de blocos no qual o erro ocorreu

OB121_PRG_ADDR

WORD

Endereo do erro no bloco causador do erro


(somente S7-400)

OB121_DATE_TIME

DT

Momento da gravao do erro de programao

SIMATIC S7
Siemens AG 1999. All rights reserved.

Cdigo de erro
(#OB121_SW_FLT)

Date:
File:

04.10.2007
PRO2_08P.6

Conhecimento em Automao
Training Center

B#16#21: erro de converso BCD. A varivel #OB121_FLT_REG contm um


identificador para o registrador respectivo (W#16#0000: ACCU 1).
B#16#22: Dimenso da faixa de erro durante leitura.
B#16#23: Dimenso da faixa de erro durante escrita.
B#16#28: Acesso indireto leitura de BYTE, WORD ou DWORD com
endereo de bit diferente de 0 (combinado durante leitura).
B#16#29: Acesso indireto escrita de BYTE, WORD ou DWORD com
endereo de bit diferente de 0 (combinado durante escrita).
Neste caso, #OB121_FLT_REG contm o endereo do byte de falha e
#OB121_RESERVED_1 contm o tipo do acesso e rea de memria :
Bit 7 a 4 (tipo de acesso): Bit 3 a 0 (rea de memria)
0: acesso Bit
0: rea I/O
4: DB Global
1: acesso Byte
1: PII
5: DB Instance
2: acesso Word
2: PIQ
6: dado local prprio
3: acesso Double word
3: Memria Bit
7: dado local do chamado
B#16#24: Faixa de erro durante leitura
B#16#25: Faixa de erro durante escrita
#OB121_FLT_REG contm o identificador B#16#86: rea dado local prprio.
B#16#26: Erro com No. de temporizador (No. invlido no #OB121_FLT_REG)
B#16#27: Erro com No. de contador (No. invlido 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: Nmero do erro em chamada de FC (No. no #OB121_FLT_REG)
B#16#35: Nmero do erro em chamada de FB (No. no #OB121_FLT_REG)
B#16#3A: Acesso a DB no carregado (No. no #OB121_FLT_REG)
B#16#3C: Acesso a FC no carregado (No. no #OB121_FLT_REG)
B#16#3D: Acesso a SFC no carregado (No. no #OB121_FLT_REG)
B#16#3E: Acesso a FB no carregado (No. no #OB121_FLT_REG)
B#16#3F: Acesso a SFB no carregado (No. no #OB121_FLT_REG)

Siemens Ltda
Training Center

Pgina 6

ST-7PRO2
Erros Sncronos e Asscronos

Informaes de partida do OB122 para Erros de Acesso


Nome da varivel

Tipo de dado Descrio, parametrizao

OB122_EV_CLASS

BYTE

B#16#29= Chamada erro acesso

OB122_SW_FLT

BYTE

Cdigo de erro (valores possveis : 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

Nmero 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

Adio ao cdigo de erro (ver texto)

OB122_FLT_REG

WORD

OB122: identificador do endereo onde ocorreu o erro.

OB122_BLK_NUM

WORD

Nmero do bloco no qual o erro ocorreu

OB122_PRG_ADDR

WORD

Endereo do erro no bloco causador do erro


(somente S7-400)

OB122_DATE_TIME

DT

Momento da gravao do erro de programao.

SIMATIC S7
Siemens AG 1999. All rights reserved.

Cdigo de erro
B#16#42
B#16#43:
B#16#44:
B#16#45:

OB122_MEM_AREA

Siemens Ltda
Training Center

Date:
File:

04.10.2007
PRO2_08P.7

Conhecimento em Automao
Training Center

A varivel #OB122_SW_FLT tem o seguinte significado:


S7-300: Erro acesso I/O, leitura
S7-400: Primeiro acesso leitura depois de que ocorre erro
S7-300: Erro acesso I/O, escrita
S7-400: Primeiro acesso escrita depois de que ocorre erro
Somente para S7-400: erro no n-ssimo (n>1) acesso leitura depois que
ocorre erro.
Somente para S7-400: erro no n-ssimo (n>1) acesso escrita depois que
ocorre erro.
A varivel #OB122_MEM_AREA contm informao sobre o tipo de acesso e
a rea de memria:
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 memria:
0: rea I/O
1: Tabela da Imagem de Processo de Entrada
2: Tabela da Imagem de Processo de Sada

Pgina 7

ST-7PRO2
Erros Sncronos e Asscronos

Mscara de Erros Sncronos


Desvantagens do OB de erro sncrono :
Cdigo para o gerenciamento de processo e para a manipulao de
erro distribudo entre pelo menos dois blocos
 Problemas com subseqentes mudanas ou com manuteno


Melhor:


Cdigo para gerenciamento de processo e para a manipulao de


erro no mesmo bloco

Mascaramento da falha sncrona:


Antes de instrues "crticas":
SFC 36 MSK_FLT: mascara falhas sncronas
(OB12x inibe a chamada)
 Executa instrues "crticas"
 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 sncronas


SIMATIC S7

Date:
File:

Siemens AG 1999. All rights reserved.

Desvantagens dos
OBs de erro
sncrono

Siemens Ltda
Training Center

Conhecimento em Automao
Training Center

A manipulao dos eventos de erros sncronos pelo significado dos OBs de


erros sncronos tem algumas desvantagens:

Alternativas aos
OBs de erro
sncrono

04.10.2007
PRO2_08P.8

Com uma manipulao de erro qualificado, uma correspondente


avaliao de erro no OB de erro sncrono deve ser executado para cada
bloco com instrues que podem gatilhar um erro sncrono.
Dentro do OB de erro sncrono um considervel tabalho deve desta forma
ser executado de forma a localizar o erro no programa do usurio e ento
poder reagir de acordo.
Cada mudana em um bloco existente conduz a mudanas
correspondentes no OB de erro sncrono.
Blocos no podem ser integrados em um programa do usurio sem a
correspondente considerao no OB de erro sncrono.

S7 oferece, com the ajuda da funo Mscara de Erros Sncronos", um


mecanismo que atribui o cdigo para o gerenciamento de processo e para a
manipulao de erro associado a ser instalado no mesmo bloco.
Isto toma lugar, por exemplo, nos seguintes passos:
1. Antes da execuo de instrues "crticas" (p.ex. abertura de um DB,
ou acesso a um DB de comprimento desconhecido), o correspondente
erro sncrono pode ser mascarado pela ao do SFC 36 (MSK_FLT).
se an instruction ento fails, no sncrono erro OB chamado.
2. Depois da execuo de instrues "crticas", voc pode verificar pela
ao do SFC 38 (READ_ERR), enquanto ainda no ocorreram erros
crticos e reagir de acordo.
3. Uma vez concludas as atividades, a falha sncrona previamente
mascarada pode ento ser desmascarada e ento a chamada do OB de
erro sncrono habilitado novamente.

Pgina 8

ST-7PRO2
Erros Sncronos e Asscronos

SFC 36 para Mscara de Falhas Sncronas


"MSK_FLT"
EN

ENO

??.?

PRGFLT_SET_MASK

RET_VAL

??.?

??.?

ACCFLT_SET_MASK PRGFLT_MASKED

??.?

ACCFLT_MASKED

??.?

Parmetro

Declarao

Tipo dado

rea de memria

Descrio

PRGFLT_SET_MASK

INPUT

DWORD

I, Q, M, D, L, Const.

ACCFLT_SET_MASK

INPUT

BYTE

I, Q, M, D, L, Const.

Nova (adicional) programao


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:

04.10.2007
PRO2_08P.9

Retorna o valor do SFC,


W#16#0001: o novo filtro fica com
rea em comum com o filtro existente
Programao completa filtro de falhas
Acesso completo filtro de falhas

Conhecimento em Automao
Training Center

Mascarando
erros sncronos

Com o SFC 36 (MSK_FLT), voc inibe a chamada do OB de erro sncrono


usando filtros de falhas. Com o nvel lgico "1" voc identifica nos filtros de
falhas para quais erros sncronos o OB no ser chamado (as falhas
sncronas sero mascaradas).
O mascaramento especificado ajustado sobre a mscara armazenada no
sistema operacional (operao lgica OU dos bits filtrados). SFC36 sinaliza
no valor retornado se, para a mscara especificada nos parmetros de
entrada, a mscara j existe (W#16#0001) para pelo menos um bit.
O SFC36 entrega em sua sada todos os parmetros atualmente mascarados
e indicados com nvel lgico "1".

Reao da CPU

Quando um erro de programao ou acesso mascarado, ento a CPU


reage de acordo com o seu tipo de erro:
1. O OB de erro no chamado para erros de programao 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 sncrona no buffer de diagnstico
independentemente da mscara.

Validade do
mascaramento

A mscara somente valida para a classe de prioridade na qual o SFC 36


foi chamado. Se voc, por exemplo, inibir a chamada do OB de erro sncrono
em um programa principal, o OB de erro sncrono ir continuar a ser chamado
se o erro ocorrer em uma interrupo de programa.

Siemens Ltda
Training Center

Pgina 9

ST-7PRO2
Erros Sncronos e Asscronos

Estrutura de programao de Filtro de Falhas


31

30

29

28

27 26

25

24

23

22

DB no carregado
FC no carregado

21

20 19

18

17

16 15

14

13

12

11 10

Erro escrita no DB instance


Erro de nmero de bloco DI
Erro de nmero de bloco FC
Erro de nmero de bloco FB

sem significado

Erro de converso BCD


Erro tamanho faixa, leitura

Erro escrita no DB
Erro de nmero de bloco DB

FB no carregado

Erro tamanho faixa, escrita


Erro de faixa, leitura

Erro de faixa, escrita


Erro do nmero do temporizador
Erro do nmero do contador
Erro de alinhamento, leitura
Erro de alinhamento, escrita

Nota: Os bits correspondentes do parmetro de sada PRGFLT_MASKED


so setados como a seguir:
Valor = 1: erro est mascarado.
Valor = 0: erro no est mascarado.

SIMATIC S7
Siemens AG 1999. All rights reserved.

Programao de
filtro de falha

Siemens Ltda
Training Center

Date:
File:

04.10.2007
PRO2_08P.10

Conhecimento em Automao
Training Center

Voc controla a funo do sistema para a manipulao de erro sncrono com


os filtros de falha. Na programao do filtro de falhas existe um bit para cada
possvel falha de programao. Na especificao do filtro de falhas, voc
ajusta os bits de erro sncrono os quais voc deseja mascarar, desmascarar
ou checar.
O filtro de falhas envia pela funo do sistema indicando com o nvel lgico
1 os erros sncronos que ainda esto mascarados ou que ocorreram.

Pgina 10

ST-7PRO2
Erros Sncronos e Asscronos

Estrutura de acesso ao Filtro de Falhas


31

30

29

...

. . .

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 mdulo
no existente ou com acesso repetido

sem significado

Somente S7-400:
Erro de acesso a I/O em escrita de mdulo
no existente ou com acesso repetido

Nota: Os bits correspondentes do


parmetro de sada ACCFLT_MASKED
so setados como a seguir:
Valor = "1": Erro est mascarado.
Valor = "0": Erro no est mascarado.
Os bits no relevantes tm o valor "1".

SIMATIC S7
Siemens AG 1999. All rights reserved.

Filtro de falhas
de acesso

Siemens Ltda
Training Center

Date:
File:

04.10.2007
PRO2_08P.11

Conhecimento em Automao
Training Center

As CPUs S7-400 distingem entre dois tipos de erro de acesso a periferia.


Acesso a mdulo no existente e falha de acesso a mdulo inserido como
existente.
Se um mdulo falha durante operao, um estouro de tempo (time-out) (QVZ)
ocorre quando o mdulo acessado pelo programa. Ao mesmo tempo, este
mdulo interpretado como no existente, por tanto a cada acesso adicional
um erro de acesso a periferia (I/O) (PZF) sinalizado.
A CPU tambm sinaliza um erro de acesso a periferia (I/O) quando um
mdulo no existente acessado, seja este diretamente atravs da rea de
I/O ou indiretamente atravs da imagem de processo.

Pgina 11

ST-7PRO2
Erros Sncronos e Asscronos

SFC 37 para desmascaramento de Falhas Sncronas


"DMSK_FLT"
EN

ENO

??.?

PRGFLT_RESET_MASK

RET_VAL

??.?

??.?

ACCFLT_RESET_MASK

PRGFLT_MASKED

??.?

ACCFLT_MASKED

??.?

Parmetro

rea de memria

Descrio

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

Programao filtro de falhas para resetar


Acesso ao filtro de falhas para resetar
Retorna valor do SFC,
W#16#0001: o novo filtro contm bits que
no so setados no filtro armazenado
Mantm mascarados erros programao
Mantm mascarados erros de acesso

SIMATIC S7
Siemens AG 1999. All rights reserved.

Desmascaramento
de falhas sncronas

Siemens Ltda
Training Center

Declarao Tipo dado

OUTPUT
OUTPUT

Date:
File:

04.10.2007
PRO2_08P.12

Conhecimento em Automao
Training Center

A funo do sistema SFC37 (DMSK_FLT) utiliza o filtro de falhas para


habilitar a chamada dos OBs de erros sncronos de novo. Com o nvel lgico
"1" voc identifica no filtro de falhas para quais erros sncronos os OBs esto
de novo sendo chamados (as falhas sncronas so desmascaradas).
As entradas correspondentes do desmascaramento especificado, que esto
no registrador de erros, so apagadas.
No retorno do valor, a SFC37 sinaliza com W#16#0001 se para o
desmascaramento especificado nos parmetros de entrada, no existe
mscara (armazenada) para pelo menos um bit.
A SFC37 entrega em seus parmetros de sada todos os eventos mascarado
atualmente com nvel lgico "1".
Se uma falha sncrona desmascarada ocorre, o OB correspondente
chamado de novo e o evento inserido no registrador de erro. Habilitao
vlida para a classe de prioridade corrente.

Pgina 12

ST-7PRO2
Erros Sncronos e Asscronos

SFC 38 para leitura do Registrador de Erros


"READ_ERR"
EN

ENO

??.?

PRGFLT_QUERRY

RET_VAL

??.?

??.?

ACCFLT_QUERRY

PRGFLT_CLR

??.?

ACCFLT_CLR

??.?

Parmetro

Declarao

Tipo dado rea de memria Descrio

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.

Leitura do
registrador de erro

Siemens Ltda
Training Center

Date:
File:

04.10.2007
PRO2_08P.13

Programao filtro de falhas para checagem


Acesso filtro de falhas para checagem
Retorna valor do SFC,
W#16#0001: o filtro de verificao contm
bits que no so setados (no filtro armazenado)
Programao filtro de falhas com mensagens
de erro
Acesso filtro de falhas com mensagens de erro

Conhecimento em Automao
Training Center

A funo do sistema SFC38 (READ_ERR) faz a leitura do registrador de


erro. Com nvel lgico "1" voc identifica no filtro de falhas para quais erros
sncronos voc deseja que sejam lidas as entradas.
No retorno do valor, a SFC38 sinaliza com W#16#0001 se para a seleo
especificada nos parmetros de entrada, no existe mscara (armazenada)
para pelo menos um bit.
A SFC38 retorna os eventos selecionados com nvel lgico "1" nos
parmetros de sada, quando eles ocorrem e apaga estes eventos do
registrador de erro com a varredura. Um bit setado significa que o erro
sncrono associado mascarado ocorreu pelo menos uma vez.
As falhas sncronas que ocorreram na classe de prioridade corrente so
sinalizadas.

Pgina 13

ST-7PRO2
Erros Sncronos e Asscronos

Exemplo: Testando Bloco de Dados


Network 1: Mascaramento, Teste, Desmascaramento
// Mascara "DB no 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 no existe
// na mscara para erros de acesso

// Testa chamada
OPN DB[DB_NO];
// Checa programao 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 no existe"
Call SFC
37(
PRGFLT_RESET_MASK
ACCFLT_RESET_MASK
RET_VAL
PRGFLT_MASKED
ACCFLT_MASKED

SIMATIC S7
Siemens AG 1999. All rights reserved.

Exemplo

Siemens Ltda
Training Center

// Identificador: DB no existe
// na mscara para erros de acesso

// Seta varivel auxiliar DB no existe

:=
:=
:=
:=
:=

DW#16#4000000,
DW#16#0,
#SFC37Error,
#Prog37Mask,
#Acc37Mask);

Date:
File:

// Identificador: DB no existe
// na mscara para erros de acesso

04.10.2007
PRO2_08P.14

Conhecimento em Automao
Training Center

Este exemplo mostra o procedimento para mascarar a possvel falha sncrona


na abertura de um DB.
1. No primeiro passo, a instruo "crtica" OPN DB... mascarada com a
ajuda da SFC 36 (MSK_FLT).
2. Depois dela, a instruo OPN DB[DB_NO] executada. Se o DB no
est na memria de trabalho da CPU, ento OB121 no chamado neste
caso.
3. Com a ajuda da SFC38 (READ_ERR), o registrador de erro lido e
checado de forma que a instruo para abertura do DB tenha falhado ou
no.
No caso de um erro, a varivel local #DB_NOT_THERE setada para "1"
e s ento uma avaliao pode ser feita posteriormente.
4. No fim, a falha sncrona mascarada desmascarada de novo com a
ajuda da SFC37 (DMSK_FLT), atravs do reestabelecimento do estado
original.

Pgina 14

ST-7PRO2
Erros Sncronos e Asscronos

Exerccio 8.1: Manipulao de Erro no FC81

Decl.
in
out
out
out

Nome
Meas_values
RET_VAL
Sum
Mean_value

Tipo
ANY
INT
REAL
REAL

FC 81

EN

Meas_values

ENO

Causa
Tudo O. K.
Tipo dado <>REAL
DB no existe
Erro compr. faixa

Cdigo erro
0
-1
-2
-4

RET_VAL
Cdigo de erro

Sum
Mean_value

SIMATIC S7

Date:
File:

Siemens AG 1999. All rights reserved.

04.10.2007
PRO2_08P.15

Conhecimento em Automao
Training Center

Vista geral

No exerccio 4.3 voc criou uma FC43 que determinava a soma e a mdia de
valores de um ARRAY de nmeros REAL. At agora, somente um erro
elementar manipulado (checando o tipo de dado) tem sido realizado dentro
desta FC.
O erro manipulado est agora sendo expandido de modo que com a nova
FC81 est seguro contra coliso, isto , com atribuio de parmetro
incorreto, nenhuma falha sncrona gatilhada.
Mais adiante, a FC81 permite, no parmetro de sada adicional #RET_VAL,
informao sobre o tipo de erro.

Objetivo

Antes de tudo copia a FC43 dentro da FC81 e integra a seguinte manipulao


de erro :
Se um tipo de dado diferente de REAL passado, ento a FC81
excitada com um cdigo de erro -1.
Se um nmero invlido de DB passado (p.ex. nmero fora da faixa
permitida DB no existente), ento FC81 excitada com um cdigo de
erro -2.
Se dentro de um loop existe um acesso a um endereo no existente
(erro de faixa ou comprimento de faixa), ento FC81 excitada com um
cdigo de erro -4.
Em todos os casos de erro, FC81 ajusta o bit BR em zero e retorna um
nmero REAL invlido no parmetro de sada #Sum e #Mean_value.

O que fazer

1.
2.
3.
4.

Questo?

Como voc pode fazer a "coliso" na FC81?

Siemens Ltda
Training Center

Complementar FC81 com o parmetro de sada #RET_VAL (cdigo erro).


Na FC81 implementar o correspondente erro manipulado.
Programar a chamada da FC81 no OB1.
Transferir os blocos participantes para a CPU e testar o resultado.

Pgina 15

ST-7PRO2
Erros Sncronos e Asscronos