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

Este artigo tem como objetivo apresentar um roteiro com as melhores práticas para desenvolvimento de uma aplicação Elipse E3.
Com base nos módulos existentes no software, serão enunciados diversos artigos e dicas para um bom desenvolvimento.

Bibliotecas

Existe um conjunto de orientações para desenvolver aplicações com boa performance, e uma delas é a utilização de Bibliotecas.
Devido a complexidade e extensão de alguns projetos, o seu desenvolvimento pode se tornar muito mais rápido com o uso dos recursos de orientação a objetos e as Bibliotecas disponíveis no E3, criando projetos simples e objetivos, reduzindo 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 Access, Oracle, SQL Server, PostgreSQL e MySQL, e a escolha dependerá diretamente de sua finalidade, onde teremos que avaliar suas vantagens e desvantagens.

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.

Já para a configuração da Consulta, dependendo da quantidade de dados retornados em uma consulta, ou do número de objetos que possuem consultas associadas, o acúmulo excessivo de dados pode gerar lentidão ao entrar em telas e ao retornar os dados provenientes das consultas.  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.

É importante destacar, que utilizando 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, proporcionando maior performance na aplicação. Não recomendamos ativar o ImmediateExecute(True), justamente por potencialmente causar travamentos no aplicativo mediante desconexões do banco.

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

Scripts

Apesar de a maioria dos aspectos do VBScript se aplicarem à programação de scripts no 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, e 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 seja satisfeita.

No tutorial exemplo abaixo, temos como objetivo familiarizar o uso do VBScript no E3 através de exemplos e exercícios, proporcionando uma boa prática no desenvolvimento de scripts.

Comunicação

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

Propriedade WriteSyncMode do driver: Determina como as escritas serão enviadas para o IOServer (modo síncrono ou assíncrono). Se por ventura uma aplicação apresentar uma baixa performance na comunicação, esta propriedade pode ser alterada para o modo assíncrono sem confirmação. 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 seguir sua operação natural.

Propriedade WriteFeedBackMode do driver: Esta propriedade permite controlar a confirmação, ou feedback, das escritas em Tags de Comunicação. É aplicável somente a Tags de Comunicação que possam ser lidos, ou seja, possuam a propriedade AllowRead em Verdadeiro. Portanto, em casos de baixa performance, esta propriedade pode ser alterada para 0 – wfWaitNextRead (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 com o driver de comunicação 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 E3 requer que o equipamento suporte os limites estabelecidos. Há equipamentos, entretanto, que suportam limites inferiores. Para que o agrupamento dos tags funcione nestes casos, alguns drivers (como por exemplo 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 em Maximum number of properties per ReadPropertyMultiple request, e no Driver Allen Bradley DF1 em Max Message Bytes. Portanto, deve-se 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 anteriormente:

Design de interfaces 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 estes 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 no desenvolvimento de interfaces industriais.

Geral

Afim de evitar que sua aplicação apresente lentidão, bem como demora ao abrir telas e animações trancando, recomendamos o artigo abaixo, que possui algumas dicas de bom desenvolvimento, ajudando a evitar este tipo de problema de performance em aplicações do E3.

Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 5 / 5. Count: 3

Deixe seu Comentário

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