Recentemente o Gabriel me questionou sobre como detectar falhas de comunicação entre um Mestre DP e seus Slaves no S7-300/400, e disponibilizar as falhas da CPU/Sistema no SCADA.
Citei algumas formas de como fazer isso, que você pode ler logo abaixo nesse post. O legal do questionamento do Gabriel é observar que o mercado, cada vez mais procura fazer softwares de qualidade e que forneçam informações consistentes ao usuário, seja ele da manutenção, operação ou engenharia. Parabéns ao Gabriel, e que mais pessoas passem a utilizar essas práticas.
Dentro do S7-300/400 costumamos classificar os erros em dois tipos básicos: Erros de Sistema e Erros de Funcionamento.
- Erros de sistemas são geralmente erros detectados pela própria CPU/sistema e tendem a levar a CPU para o estado STOP, como exemplo erro de acesso a periferia.
- Erros de funcionamento são erros não detectados pela CPU, e geralmente ocasionam instabilidade no processo, como exemplo erros de lógica.
Em ambos os casos o STEP7 provê ferramentas de diagnósticos para identificar tais erros. Estas ferramentas podem ser as tabelas de monitoramento de variáveis (VAT), monitoramento online do programa ou o poderosissímo diagnósticos de hardware .
E quais são as ferramentas que o STEP7 provê para que o próprio programa do usuário detecte estes erros, sejam eles de funcionamento ou de sistema?
A resposta é muito simples, a excessão dos forces (não força vai, tem soluções melhores) o STEP7 permite que o programa detecte tudo o que está acontecendo no sistema, e dessa forma o programa pode tomar uma decisão, como desabilitar uma determinada rotina ou simplesmente mandar uma mensagem para o SCADA/IHM.
Vamos citar alguns exemplos, sendo que não entrarei em muitos detalhes de como implementar, pois o espaço aqui é resumido e tornaria o post um pouco indigesto. Mas como sempre, se perguntar eu respondo. Só não respondo mais nada por e-mail. Suporte Técnico da Siemens é no 11-3833-4040. Brincadeira, respondo sim, mas tem que ser no blog, para ficar disponível para todo mundo.
- Detectando Erros por OBs.
Eu, particularmente não gosto de usar os OBs.
Bom, OB (organization block) é a maneira como a CPU interage com o seu programa, vale lembra que você nunca chama um OB, é sempre a CPU que decide o momento em que um determinado OB deve ser executado. O principal OB num programa é OB1, onde origina-se a grande maioria do seu programa, pois este é o OB cíclico que é executado após o término do ciclo da CPU.
Dessa forma, assim como existe o OB1 para uma determinada condição, existem outros OBs específicos, como por exemplo para situações de erros detectados pela CPU. Estes OBs geralmente estão entre a faixa do 80 ao 87 para erros assíncronos (ex, falha de um canal analógico) e na faixa do 121 ao 122 para os erros síncronos (ex, leitura de endereço inexistente).
Como todo bloco, o OB usa dados em sua local stack ou área L através de variáveis locais, sendo que no caso dos OBs a CPU vai disponibilizar diversas informações sobre o motivo do OB estar sendo executado, como por exemplo, timestamp do horário de execução do bloco, endereço do módulo que ocasionou a falha, tipo do módulo, tipo da falha e por aí vai. O que o seu programa pode fazer é analisar estes dados e em função dos valores, que são devidamente documentados nos manuais, diagnosticar o tipo da falha num determinado módulo. Aqui você pode estar se perguntando “Vou ter que analisar um monte de variáveis para detectar um erro” e a resposta é sim, vai! Felizmente, você que não é bobo nem nada vai criar um bloquinho que faça isso e você só vai chamar esse bloquinho dentro dos OBs. Nada mais simples.
O motivo de eu não gostar de usar OBs, é que preciso saber o OB que vai ser chamado para uma determinada falha. E também pelo fato do OB ser chamado duas vezes, uma para quando a falha for detectada e outra para quando a falha for sanada.
- Detectando Erros por SFC/SFB.
Um dos maiores prazeres que tenho em programar é ver o SFC51 no STEP7, é o verdadeiro faz tudo. De uma olhada na documentação do STEP7 pra ver o que é possível fazer com ele. Basicamente você pode consultar o status de qualquer módulo com o SFC51. Você pode por exemplo, consultar se um módulo possue alguma falha, pode diagnosticar se o conector de uma placa foi retirado, se um canal analógico de 4..20mA está com quebra de fio, se a CPU está com alguma falha interna/externa ou mesmo se a CPU possue algum sinal forçado (O pessoal de manutenção odeia esse, pois geralmente eu coloco essa condição no SCADA, ai fica logado quando um sinal foi forçado…he he he).
A grande sacada do SFC51, é que ele na realidade consulta o status list da CPU/Módulo e pode informar simplesmente todas as informações disponíveis no módulo. Evidentemente alguns módulos possuem mais informações que outros, portanto consulte a documentação dos seus módulos para maiores informações. O uso do SFC51 também é bem simples, basicamente para cada tipo de consulta ele retorna uma struct, e nessa struct está o resultado do que você consultou. Para maiores informações de uma olhada no www4.ad.siemens.de. Uma vez que você tem o status de um módulo, você pode fazer o que você quiser com ele. Desde bloquear uma lógica, até mesmo mandar uma informação para o SCADA.Existem outros SFC/SFBs para diagnosticar erros e falhas, tipo erros em redes DPs e por ai vai. Como sempre de uma olhada na documentação do STEP7.
AGORA, se você usa o STEP7 em conjunto com o WinCC, eu sugiro que você não recrie a roda. Você pode utilizar o conceito de TIA (Totally Integrated Automation ), onde é possível abrir o Hardware Diagnostic do STEP7 direto do WinCC, e com isso visualizar na apartir do SCADA erros em seus módulos. É possível visualizar até mesmo a lógica do PLC diretamente no SCADA, usando funções com o Ladder Rung Jump ou então visualizar processos sequencias com o Pro-Agent/Sequential Function Chart(SFC) ou S7-Graph.
Ainda no caso do WinCC, existe um controle ActiveX da Siemens, o qual eu nunca usei, que pode ser integrado ao WinCC que irá exibir as mesmas informações disponíveis no Module Information do STEP7.
Bom, resumidamente é isso. Existem muitas outras maneiras de diagnosticar falhas, que variam de sistema para sistema, e estas são as formas que eu realizo os diagnósticos.
Abraços,
E bom uso.
Márcio Roberto
Janeiro 2, 2007 às 3:58 pm
Achei muito interessante a matéria e até fiz questão de indicar a alguns amigos da aréa, apartir de agora estarei acompanhando mais a comunidade. Gostaria de saber, na empresa onde trabalho o CLP que predomina é o Mitsubishi Melsec série A tenho tido muita dificuldade em encontrar material a respeito se alguém tiver algo ficarei grato! Feliz 2007.
Janeiro 3, 2007 às 7:06 am
Vlw Michael,
Cara, eu nunca trabalhei com Mistubishi. Sei de algumas pessoas no orkut que já trabalharam e talvez pudessem te ajudar. Já deu uma olhada nas comunidades do orkut?
Abraços,
Márcio Roberto
Janeiro 3, 2007 às 6:36 pm
gostaria de pedir aos amigos que por favor me orientem em como conseguir algum material do S5 /S7 desde já grato. p.s Michel muito obrigado por manter este canal de esclarecimento para todos .
Janeiro 4, 2007 às 7:54 am
Anderson,
Existem duas formas de você conseguir esse material.
1. Participando dos cursos oferecidos pela Siemens e outras instituições.
2. Vasculhar o grande acervo online no site de suporte da Siemens. Da uma olhada www4.ad.siemens.de
Abraços,
Márcio Roberto
Janeiro 15, 2007 às 3:34 pm
Possuo um S7-300 em uma aplicação industrial o qual sem motivo qual quer apresenta falha e desliga as funções da maquina e no frontal do mesmo os leds indicativos de erro SF e BATF ficam acessos , o defeito some sem qual quer intervenção do operador após uns 10 seg, pergunto que significado tem estas siglas e qual é possível defeito deste PLC.
Att:
Marcelo
Janeiro 16, 2007 às 6:48 am
Marcelo,
Somente os leds de SF e BATF ficam acessos? Ou todos os leds acendem, se for todos os leds, é provável que você esta com um problema de alimentação, ou a CPU está resetando. Em todo o caso, com o STEP 7 é possível buscar o arquivo de log da CPU, dai vc pode analisar com mais precisa o que pode ter corrido.
Abraços,
Márcio Roberto
Janeiro 17, 2007 às 3:23 pm
Olá Marcio Grato pela dica , o problema foi resolvido com a troca da Fonte de alimentação ela baixava a tensão quando algumas cargas entravam simultaneamente e provocava o reset do plc.
Abril 4, 2007 às 8:52 am
Bom dia.
Chamo-me Helder, sou estudante de eng. Electrotecnica e ando à procura do software VFD de configuração dos Variadores de velocidade da serie E500 da Mitsubishi para um projecto didactico.
Está dificil de encontrar o software(espero por resposta da casa mãe, mas não sei se eles fornecem esse software gratis.
Gostava de saber se alguem mo pode fornecer?
Sem mais , obrigado pela atençao!
Abril 24, 2007 às 5:17 pm
gostei muito vou acesar senpre
Junho 24, 2007 às 6:49 am
Senhores trabalho com simatic siemens S5 econtantemente ele da falhas indo para STOP com falhas de bstack entre outras, preciso de aluma explicação sobre o que são as mesmas
grato Eduardo
Junho 27, 2007 às 1:50 pm
Boas,
tenho um problema que não estou a conseguir resolver. Tenho uma rede Profibus onde vários equipamentos ligados, acontec que uma das Et’s(200), está a deitar-me abaixo toda a rede, é sempre a mesma ET, pode ajudar-me.
Muito Grato pela atenção
Julho 7, 2007 às 4:32 pm
Td bem Elder, vc conseguiu o software que vc estava querendo.Sou representante da Mitsubishi para a região do Vele do Paraíba e sul de Minas Gerais.Dá um alô que que consigo para vc, abraço!
Evandro
CIM TAUBATE
(12)3624 559
(12)9117 1965
(11)8493 4182
Julho 7, 2007 às 5:59 pm
Sr.Marcio Roberto observando seu blog notei que havia uma pessoa ( Michael Rodrigues Monteiro) com dificuldades de encontrar Equipamentos da Serie A Mitsubishi, A CIM AUTOMAÇÃO REPRESENTA A MITSUBISHI A nivel Brasil….
Qualquer duvidas estarei a disposição…
Julho 14, 2007 às 1:29 pm
Joaquim,
Consegui resolver os problemas. Estou pensando em postar o seu caso no blog. O que acha?
Agosto 29, 2007 às 9:35 am
Bom dia Márcio,
montei uma tela com a configuração da rede Profibus no Wincc v6.0 SP4 e gostaria de saber se existe uma forma mais fácil de animar um “led” para indicar o status de cada nó da rede.
Existe um controle Wincc Channel diagnosis Control que cria uma tabela com todas as informações dos nós. Eu preciso apenas do status de cada nó. Existe outra forma de fazer sem tem que desenvolver no step7 (v5.3 + sp3)?
Obrigado.
Novembro 14, 2007 às 12:31 pm
Boa tarde Sr. Marcio Roberto:
Meu nome é José Manuel e
estou com muitas dificuldades em montar uma rede ethernet com duas cpu’s 317.
Seria possivel ajudar-me nesse sentido?
Ou seja quais são os passos a seguir para a configuração destas cpu’s?
como posso coloca-las a enviar e a receber dados?
Muito obrigado
Fevereiro 8, 2008 às 8:00 am
Sr Marcio Roberto tencontrei assim como senhor inumeras dificuldades em relação plc`s mitsubishi da serie fx sera teriamos como manter contato para troca de experiencias e informações desde ja agradeço
Julho 16, 2009 às 7:54 pm
olar sou marcio dos santos alvarenga,sou aluno de uma escola tecnica e gostaria de receber mais imformaçãoes sobre o plc no meu hemail, obricado.