A natureza distribuída e o processamento independente dos dispositivos fazem com que as redes industriais sejam um ambiente propício para o uso de agentes. Além disso, em ambientes de redes industriais as tarefas que são executadas pelos dispositivos, na maioria dos casos, são dependentes umas das outras. Neste cenário, há uma estreita conexão e colaboração entre os sensores e atuadores de uma planta. Por isso, as tendências de pesquisa nesta área é propor a troca de modelos hierárquicos por modelos horizontais ([Deen 2003], [Shen et al. 2001]), nos quais partes (sistemas de software e dispositivos) de um mesmo nível podem interagir diretamente uns com os outros.
Nestes casos, agentes de software e sistemas multiagente (SMA) são utilizados como arquiteturas que permitem este tipo de interação. O paradigma de desenvolvimento de agentes permite a quebra da complexidade de problemas, dividindo-os em partes menores (pequenas tarefas), que são executadas através da interação entre os agentes. O maior es- forço de pesquisa neste sentido está dedicado em aplicar um SMA para problemas de alocação, i. e. organizar eficientemente no nível de chão-de-fábrica tarefas das células de produção ([Giret et al. 2005], [Cockburn & Jennings 1996], [Stefano & Santoro 2000], [Stefano & Santoro 2002]). O paradigma de desenvolvimento de agentes é uma alterna- tiva para sistemas distribuídos e de engenharia complexa em seus vários níveis, como a administração, supervisório e chão de fábrica.
Para Wagner (2002), um sistema de automação pode interagir com um sistema multia- gente na forma de um nível hierárquico de comunicação (Figura 2.12). A cooperação dos agentes é desenvolvida para agir de forma muito parecida com o sistema de automação e
pode ser divida em duas categorias básicas: agentes de recurso (AR) e agentes de serviços (AS):
• Com o sistema multiagente, todas as entidades reais (sensores, atuadores, etc.) que estão no foco do problema do sistema de automação são representados pelos agentes de recursos. A complexidade destes agentes depende do nível de atuação da entidade em questão.
• Os agentes de recurso encapsulam as informações da entidade que ele representa. Isto é, eles são capazes de se comunicar com as interfaces da entidade (dispositivos) e prover uma visão abstrata da entidade para o agente de sistema.
• Agentes de recursos podem ser de diferentes tipos para representar diferentes visões (papéis) da entidade: agente de projeto, agente de monitoramento, agente de diag- nóstico. Estes agentes cooperam entre si para alcançar o objetivo do sistema. • Agentes de recursos agem autonomamente em referência às entidades que eles
representam. Por exemplo: agentes representando um dispositivo de campo são capazes de responder a uma mudança no ambiente através da manipulação dos parâmetros do dispositivo. Sinais de status e diagnósticos podem ser armazenados e interpretados por agentes de recursos de, forma a gerar informação de manutenção (e.g. predição de vida útil ou predição de falhas).
• Agentes de recursos podem, de forma autônoma, construir estruturas que refletem as estruturas físicas e lógicas da planta.
• Ações pró-ativas podem ser aplicadas para predição de falhas ou planejamento de manutenção preventiva.
• Agentes de serviço não representam uma entidade real, mas uma tarefa ou visão dentro do sistema de automação. Eles são desenvolvidos para realizar funções não cobertas por dispositivos ou elementos de controle. (gerência de dispositivos, gerenciamento de inspeção, etc.)
• A comunicação já existente entre os dispositivos e sistemas supervisórios deve ser mantida. Além disso, os agentes devem respeitar as restrições do processo (re- strições de tempo-real).
Stefano & Santoro (2009) apresentam uma arquitetura baseada em agentes móveis para controle de processos distribuídos. Um conjunto de agentes é utilizado para, em uma célula de produção, controlar, monitorar reconfigurar funcionalidades da célula. Os agentes (Figura 2.13) operam em uma estrutura de dois níveis: no nível superior os agentes de planejamento analisam as entradas do sistema e automaticamente criam os agentes de campo, os quais operam no nível inferior e executam tarefas de controle. Os agentes de camposão móveis e são capazes de, autonomamente, assumir o controle da célula. A mobilidade permite que o agente de campo mude sua execução de um disposi- tivo para outro quando uma falha do sistema requerer uma nova distribuição de tarefas.
Um algoritmo de balanço de carga é introduzido para alocar cada agente de campo a um controlador de modo a não sobrecarregar os dispositivos. Este algoritmo usa a técnica de branch-and-bound (ramifica e limitar) para explorar todas as possibilidades de alo- cação e aplica duas heurísticas para eliminar as soluções não-viáveis e selecionar o mel- hor ramo a ser analisado. O algoritmo foi desenvolvido para execução on line, de modo
Controle de Processos Nível de Supervisão Nível de Campo Sensores & Atuadores AR n AR 3 AR 2 AR 1 AS n AS 1
Figura 2.12: Sistema multiagente como parte de um sistema hierárquico de automação [Wagner 2002]
C Agente de Campo Sensor
Atuador Agente de Planejamento Agente de Monitoramento P C P M M C P M C P M
Figura 2.13: Ambiente de atuação de agente de Stefano & Santoro (2009)
a permitir uma rápida distribuição dos agentes quando uma situação de falha acontecer. Além disso, os agentes são desenvolvidos usando um o framework de desenvolvimento de agentes JADE (Java Agent Development Framework).
Nesta mesma linha de implementação está o trabalho de Frey (2008), que assim como a arquitetura de agentes que será apresentada nesta tese, utiliza aprendizagem de máquina (no caso mapas auto-organizáveis) para que os agentes aprendam como diagnosticar os problemas encontrados no processo industrial. O sistema de diagnóstico ilustrado na Figura 2.14 é baseado na idéia de analisar continuamente as mensagens transmitidas no barramento de campo (fieldbus) e extrair suas características, as quais descrevem o com-
portamento do respectivo dispositivo de campo e sua interação com todo o processo. fieldbus fieldbus DC DC DC M M M D D Dispositivos de campo Agente Mestre Agente de Diagnóstico Agente de Diagnóstico Mestre
Figura 2.14: Ambiente de atuação de agente de [Frey 2008]
Os agentes de diagnóstico, que estão no nível mais baixo do processo de automação (fieldbus) são executados nos dispositivos, como por exemplo, os fieldbus gateways (Seção 2.3.2). A tarefa dos vários agentes de diagnóstico é analisar as mensagens do barramento de campo de um determinado dispositivo e gerar informações significantes que possam indicar falhas ou problemas.
Implementado em um nível mais alto do processo de automação (supervisório) estão os agentes de diagnóstico mestres. Eles recolhem também informações sobre o processo contidas nos sistemas de monitoramento e controle da planta. Ainda segundo Frey (2008), não há um padrão entre os processos industriais, ou seja, é pouco provável que uma planta tenha um comportamento similar a outra, mesmo quando se trata da produção de um mesmo item ou controle das mesmas variáveis. Essa natureza singular de cada processo faz com que sejam necessários sistemas que possam se adaptar a um contexto novo ou desconhecido.
Com isso, baseando-se no histórico dos valores das variáveis medidas, usam um al- goritmo de aprendizagem de rede neural, mais especificamente o SOM (self-organizing feature maps) ou mapas de características auto-organizáveis. A vantagem desse método é que não é necessário conhecer um modelo do processo a priori.
Outro trabalho que relaciona multiagentes na supervisão de processos industriais é o de Pirttioja et al. (2005). Os autores mostram que agentes atuam como mediadores entre o operador (supervisor) e o processo (dispositivos). Para isso é criada uma camada de con- hecimento cujo o objetivo, segundo o autor, é integrar o máximo de informações possíveis e automatizar o processamento dessas informações facilitando a tomada de decisões dos usuários. A arquitetura proposta pode ser vista na Figura 2.15.
O tipo de agente principal é o Agente de Processo (PA) que é o responsável por moni- torar uma determinada quantidade de dispositivos monitorados (esfera de influência). Ele
AP 11 AP 12 AP 1 AP 13 FD AC AI BD ABD Agentes de Processo Esfera de Influência Agente Cliente Agente de Tarefas Especiais Ambiente
Figura 2.15: Ambiente de atuação de agente de [T.Pirttioja et al. 2005]
verifica constantemente as variáveis do processo e observa mudanças na estrutura física da planta. Os Agentes de Processos (AP) formam uma hierarquia, manipulando abstração de dados de um nível para o outro. No nível inferior do processo, os agentes manipulam informações detalhadas das medições, enquanto os agentes nos níveis mais altos lidam com informações mais resumidas sobre as condições do processo.
O Agente de Informação (AI) é um especialista que provê serviços de informação para outros agentes. Um Agente de Informação possui habilidades de decompor uma tarefa em sub-tarefas. Essas sub-tarefas são repassadas para outros agentes, os quais tem a possibilidade de executá-las. Ou seja, agentes de informação delegam tarefas para outros agentes.
O Agente Cliente (AC) provê uma interface para os agentes humanos e traduz as consultas dos usuários para a linguagem de comunicação dos agentes. Já os Agentes de Banco de Dados(ABD) servem como mecanismo de acesso as informações armazenadas em sistemas legados. Os ABD também traduzem as informações para um formato com- patível com a linguagem dos agentes. Por fim, o Facilitador de Diretório (FD) fornece uma ampla variedade de serviços e informações sobre o processo para os agentes. O FD é padronizado pela FIPA.
Em seu trabalho, Elmenreich (2003) propõe a idéia de um sistema multiagente para interconectar diversos agentes independentes e assim fazer com que esse agrupamento extrapole as capacidade dos agentes individuais. De uma forma geral, segundo o autor, o uso de agentes deve aumentar a velocidade do processamento (através do paralelismo), confiança (através da redundância), eficiência e flexibilidade. Pesquisas recentes têm mostrado também a capacidade de SMA em sistemas embarcados. Contudo, existem alguns problemas críticos para um SMA neste ambientes [Elmenreich 2003]:
• Comunicação - agentes devem concordar com um protocolo de transporte, comu- nicação e linguagem comuns de forma a interagir corretamente [Nwana & Ndumu
1999]. Por exemplo, um SMA que lida com sistemas embarcados diferentes, provavel- mente não consegue lidar com representações diferentes de dados e semânticas. • Integração com aplicações existentes - especialmente sistemas embarcados pos-
suem sistemas legados; sistemas que foram desenvolvidos de acordo com suas próprias regras e convenções. Uma vez que a participação de tais sistemas não foi previamente incluída nos projetos (SMA), deve existir um esforço extra na im- plementação de uma interface apropriada para o SMA.
• Capacidade de tempo-real - devido à forma livre de acoplamento dos agentes indi- viduais, um SMA é tipicamente assíncrono e, então, tende a acelerar suas tarefas, tempos de execução inesperado e, no pior caso, situações de deadlock.
• Supervisão - É geralmente difícil monitorar o comportamento de cada agente indi- vidualmente para que se respeite as exigências de sistema em tempo real. Tarefas de monitoramento podem mudar o comportamento ou desempenho de um SMA. Além disso, outros aspectos na implementação de agentes em ambientes industriais devem ser levados em conta. De acordo com Landaburu et al. (2002), agentes devem ser usados em sistemas fieldbus como plataforma leve, não atrapalhando o processo em questão. Li et al. (2004) diz que um sistema multiagente é um campo importante de pesquisa em sistemas de controles inteligentes e diagnóstico de falhas. Baseado em pesquisa sobre funções de cooperação e coordenação de multiagentes, uma estrutura semântica a qual integra controle, diagnóstico e monitoramento é construída e estes mod- elos (estratégia de cooperação e máquina de raciocínio) também são desenvolvidos.
Outro trabalho que podemos citar é o de Macerauskas & Teresius (2004). Os au- tores comparam a implementação de um protótipo baseado em agente de controle de células com a experiência de implementações usando abordagens tradicionais de agentes, mostrando os benefícios de cada abordagem. O uso de várias linguagens e plataformas de comunicação distribuídas, para desenvolver aplicações de controle, permite o uso da mesma aplicação em ambientes de diferentes sistemas.
Agente Operacional Agente Operacional
Agente de Produto Agente Supervisor Agente de Tarefa Parte Lógica Parte Lógica Agente de Gerência Interação dos Agentes Sistemas Externos
Figura 2.16: Ambiente de atuação de agente de [Macerauskas & Teresius 2004] Os Agentes Operacionais (AO), mostrados na Figura 2.16, controlam as interações com os recursos físicos, tais como humanos, sensores e atuadores. Os AO possuem a
parte lógicaque controla e interage com os dispositivos. O Agente Supervisor coordena os demais agentes de acordo com a estrutura organizacional da planta. Enquanto que o agente de produtorepresenta os recursos disponíveis no sistema e cuida da informações associadas ao processo realizado pela planta. Os Agentes de Tarefas controlam a execução de uma tarefa e as informações sobre a manufatura de um produto e o Agente de Gerência supervisiona e aloca os agentes no sistema.
A arquitetura desenvolvida para um agente genérico é baseada em três módulos e uma base de dados local que contém todas as informações relevantes sobre o comportamento dos agentes. Existe ainda um módulo de tomada de decisão que controla todas as ativi- dades de um agente e inclui mecanismos de cooperação e mecanismos de aprendizagem de forma a auxiliar a tomada de decisão dos supervisores quando ocorrer uma falha. As informações armazenadas na base de dados local envolve vários tipos de dados tais como restrições, objetivos, regras de decisão e procedimentos.
Cada agente é autônomo, tem controle do seu próprio comportamento e possui uma comunidade e conhecimento locais. Ainda segundo Macerauskas & Teresius (2004), é possível construir agentes independentes que possam ser alocados em ambientes distribuí- dos. A adição de inteligência a um agente para, por exemplo, tomar decisões, pode ser vista como um plug-in de um módulo de inteligência. Para pequenos usos específicos, a abordagem tradicional pode apresentar vantagens de pequena complexidade de desen- volvimento.
A principal diferença entre SMA e sistemas tradicionais é que SMA não possui um controle de dispositivo comum, o qual pode ditar as ações dos agentes. Em comparações com abordagens tradicionais o SMA apresenta importantes melhorias tais como expansi- bilidade, robustez, reatividade, suporte a ambientes distribuídos e re-uso de código.
No trabalho de Lin & Yang (2007) vemos que a construção de uma ontologia6 é im-
portante para implementação de uma linguagem de conteúdo em uma plataforma multi- agente, e assim crucial para a implementação de sua proposta de metodologia de recon- figuração de um sistema de linha de produção usando SMA. Assim, o modelo proposto é construído de acordo com duas funções: satisfazer o conhecimento sobre o processo da linha de produção e suportar o procedimento de reconfiguração. Para isso o autor usa o modelagem fornecida pelo Protégé [Dong et al. 2007] (Ontologias) e Zeus [Glanzer et al. 2001] (Agentes).