Melhores práticas para o desenvolvimento de uma aplicação Elipse E3.

Introdução

O objetivo deste artigo é apresentar um roteiro que estabelece e resume as melhores práticas para desenvolvimento de uma aplicação Elipse E3. Com base nos módulos existentes no software, serão enumerados diversos artigos e dicas práticas para o bom desenvolvimento de aplicações com esta plataforma.

 

Bibliotecas

Existe um conjunto de orientações para desenvolver aplicações com boa performance; uma delas é a utilização de Bibliotecas. Devido a sua complexidade e extensão, o desenvolvimento de alguns projetos pode se tornar muito mais rápido com o uso dos recursos de orientação a objetos, bem como com as Bibliotecas disponíveis no Elipse E3, criando projetos simples e objetivos, que reduzem drasticamente o tempo de manutenção.

Portanto, abaixo apresentamos alguns artigos que demonstram essa prática no Elipse E3:

Banco de Dados

O Elipse E3 possui conexão nativa com os bancos SQL Server, Oracle e Access. A escolha dependerá diretamente de sua finalidade, com a avaliação das vantagens e desvantagens de cada um.

Os Históricos são módulos responsáveis pelo armazenamento de dados da aplicação em um Banco de Dados para análises futuras, onde é possível inserir chave primária e índices. Índices são campos (ou conjunto de campos) previamente ordenados pelo banco de dados a fim de melhorar a performance das consultas que utilizam estes índices.

Quanto às Consultas, dependendo da quantidade de dados retornados ou do número de objetos com consultas associadas, o acúmulo excessivo de dados pode gerar lentidão ao entrar em telas ou ao retornar dados.  Neste caso, é importante inserir um filtro, com um espaço de tempo curto no valor inicial das variáveis que realizam o filtro por data.

Nota

É importante destacar que ao utilizar um objeto Histórico ou o método Execute do objeto Consulta com o parâmetro ImmediateExecute igual a False, os dados passam pelas filas de operações do banco (arquivos .e3i e .e3o) de maneira assíncrona, o que garante uma melhor performance à aplicação. Não recomendamos ativar o método ImmediateExecute(True) pois este pode potencialmente causar travamentos no aplicativo por causa das desconexões do banco.

Outra alternativa seria utilizar o objeto E3Storage, um módulo do E3 destinado a historiar dados de forma compacta, otimizando assim a utilização do banco de dados e fazendo com que a informação seja armazenada com menor espaço possível.

Abaixo apresentamos alguns artigos que demonstram essa prática no Elipse E3:

Scripts

Embora a maioria dos aspectos do VBScript se aplique à programação de scripts no Elipse E3, algumas particularidades devem ser destacadas no que diz respeito às implementações do conceito de orientação a objetos no sistema.

Evite a utilização de scripts cíclicos; caso não seja possível utilizar associações para implementar o desejado, é recomendável criar um evento de usuário que somente seja executado quando uma condição for satisfeita.

No tutorial abaixo, o objetivo é familiarizar o usuário com VBScript no Elipse E3 através de exemplos e exercícios, o que deve proporcionar uma boa prática no desenvolvimento de scripts.

Comunicação

Para que a aplicação tenha uma boa performance de comunicação, é preciso avaliar uma série de fatores, tais como: o tipo de equipamento, o tipo de interface da comunicação utilizada, a velocidade (baud rate), a taxa de erros, etc. Além disso, para um melhor desempenho, algumas opções podem ser configuradas diretamente no driver.

Propriedade WriteSyncMode do driver

Determina como as escritas serão enviadas para o IOServer (modo síncrono ou assíncrono). Quando uma aplicação apresenta uma baixa performance na comunicação, esta propriedade pode ser alterada para o modo assíncrono sem confirmação (2 – wsmAsyncUnconfirmed). Na escrita assíncrona (sem confirmação), o E3Run envia o valor para o I/O Server e não aguarda o retorno; neste tipo de escrita, assume-se sempre que a escrita funcionou. Logo após, a aplicação será liberada imediatamente para que siga sua operação natural.

Propriedade WriteFeedBackMode do driver

Esta propriedade permite controlar a confirmação (feedback) das escritas em Tags de Comunicação. É aplicável somente em Tags de Comunicação que podem ser lidos, ou seja, cuja propriedade AllowRead esteja configurada como Verdadeiro. Portanto, em casos de baixa performance, esta propriedade pode ser alterada para 0 – wfWaitNextRead; neste caso, a leitura do Tag de Comunicação é realizada normalmente na próxima varredura.

Propriedade EnableReadGrouping do driver

Permite otimizações de leitura ou agrupamento automático de Tags de Comunicação. Esta propriedade não pode ser alterada quando o driver de comunicação estiver ativo. O valor padrão desta propriedade é Verdadeiro. A otimização de leitura só acontece se o driver de comunicação suportar este recurso.

É importante ressaltar que o agrupamento (EnableReadGrouping) no Elipse E3 requer que o equipamento suporte os limites estabelecidos. Entretanto, há equipamentos que suportam limites inferiores. Para que o agrupamento dos tags funcione nestes casos, alguns drivers (como o Driver Modicon Modbus Master ASC/RTU/TCP) permitem personalizar o limite máximo suportado de bytes de dados em cada comunicação.

No Driver Modbus, esta configuração pode ser realizada na opção Customize Max. PDU Size; já no Driver BACnet, use a opção Maximum number of properties per ReadPropertyMultiple request; finalmente, no Driver Allen Bradley DF1, acesse Max Message Bytes. Portanto, é preciso verificar se o driver possui essa possibilidade de configuração.

Pool de Processos IOServer

 Em aplicativos com centenas de Drivers, os recursos necessários para executar os processos IOServer para cada Driver podem esgotar a capacidade do sistema operacional. Nestes casos, pode ser necessário habilitar o Pool de Processos IOServer na aba Propriedades da configuração do Domínio.

Abaixo, apresentamos alguns artigos referentes ao conteúdo abordado acima:

Design de interface visual

Normalmente, as interfaces industriais são desenvolvidas por técnicos e engenheiros da própria indústria, e não por profissionais da área de design. Portanto, é comum que alguns técnicos desconheçam as disciplinas e os estudos de design, psicologia e ciências cognitivas que orientam o desenvolvimento das interfaces modernas.

A Biblioteca HighPerformance Template para E3 ou Elipse Power é um modelo de aplicação que sintetiza os resultados de diversos estudos realizados nas mais distintas áreas do conhecimento, aplicados ao desenvolvimento de interfaces industriais.

Geral

Afim de evitar que sua aplicação apresente lentidão, ou que demore ou “tranque” ao abrir telas e animações, recomendamos o artigo abaixo, que possui algumas dicas de bom desenvolvimento para evitar este tipo de problema de performance em aplicações do Elipse E3.

Este artigo foi útil? Was this post helpful?
Yes1
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *