E3tutorial Advanced PTB PDF

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 97

Tutorial do E3 Avançado

Copyright © 1999-2020 Elipse Software Ltda. Todos os direitos reservados.


Versão 5.1.186 (18/03/2020)
Sumário
1 Treinamento Avançado ............................................................................................................................. 1
1.1 Aplicação do Treinamento .................................................................................................................. 1
1.2 Exercícios ............................................................................................................................................... 2
2 Canais de Suporte ....................................................................................................................................... 4
2.1 Elipse Knowledgebase .......................................................................................................................... 4
2.2 Elipse Fórum .......................................................................................................................................... 5
2.3 Canal de Vídeos ..................................................................................................................................... 6
3 Referências aos Objetos ............................................................................................................................ 8
3.1 Application ............................................................................................................................................ 8
3.2 Objetos do Servidor .............................................................................................................................. 8
3.3 Método Item ......................................................................................................................................... 8
3.4 Comando Set ......................................................................................................................................... 9
3.5 Eventos .................................................................................................................................................. 9
3.6 Exercícios ............................................................................................................................................. 11
4 Usuários .................................................................................................................................................... 12
4.1 Login .................................................................................................................................................... 12
4.2 Administração de Usuários ............................................................................................................... 12
4.3 Confirmação de Senha ....................................................................................................................... 13
4.4 Bloqueio de Senha .............................................................................................................................. 14
4.5 Exercícios ............................................................................................................................................. 14
5 Bibliotecas: XObjects e XControls .......................................................................................................... 17
5.1 XControl .............................................................................................................................................. 17
5.2 XObject ................................................................................................................................................ 18
5.3 Exercícios ............................................................................................................................................. 18
6 Layer .......................................................................................................................................................... 28
6.1 Exercícios ............................................................................................................................................. 28
7 Adicionando Objetos em Tempo de Execução ..................................................................................... 30
7.1 Adicionar Objeto ................................................................................................................................ 30
7.2 Evento CustomConfig ........................................................................................................................ 31
7.3 Exercícios ............................................................................................................................................. 32
8 Arrays ........................................................................................................................................................ 33
8.1 Exercícios ............................................................................................................................................. 33
9 Bibliotecas: XFolders ............................................................................................................................... 34
9.1 Exercícios ............................................................................................................................................. 34
10 IOKit ........................................................................................................................................................ 40
10.1 Trabalhando Offline ......................................................................................................................... 40
10.2 Exercícios ........................................................................................................................................... 40
11 Importação e Exportação ...................................................................................................................... 44
11.1 Arquivo CSV ...................................................................................................................................... 44
11.2 Gerenciador de Modelos ................................................................................................................. 44

I
11.3 Exercícios ........................................................................................................................................... 47
12 Consulta .................................................................................................................................................. 49
12.1 Criando e Acessando Variáveis ....................................................................................................... 49
12.2 Edição Direta do Código SQL .......................................................................................................... 49
12.3 Update ............................................................................................................................................... 49
12.4 Delete ................................................................................................................................................ 49
12.5 Exercícios ........................................................................................................................................... 50
13 GetADORecordSet ................................................................................................................................. 55
13.1 Exercícios ........................................................................................................................................... 55
14 Storage .................................................................................................................................................... 57
14.1 Funcionamento ................................................................................................................................ 57
14.2 Configuração .................................................................................................................................... 57
14.3 Consultas Internas ........................................................................................................................... 58
15 Alarmes ................................................................................................................................................... 60
15.1 Eventos versus Alarmes .................................................................................................................. 60
15.2 Campos do Usuário .......................................................................................................................... 60
15.3 Assinatura Eletrônica ....................................................................................................................... 60
15.4 Exercícios ........................................................................................................................................... 62
16 Relatórios ................................................................................................................................................ 71
16.1 Group Header e Footer .................................................................................................................... 71
16.2 Exercícios ........................................................................................................................................... 71
17 WebViewer ............................................................................................................................................. 74
17.1 Aplicações E3 na Web ...................................................................................................................... 74
17.2 Arquivos E3Web.asp e DocWrite.asp ............................................................................................ 76
17.3 Configurando o Internet Information Services ............................................................................ 76
17.4 Licenças ............................................................................................................................................. 81
17.5 Exercícios ........................................................................................................................................... 82
17.6 Exercícios Complementares ............................................................................................................ 82
18 Event Log Viewer ................................................................................................................................... 84
18.1 Configuração do Armazenamento de Arquivos ........................................................................... 84
18.2 Abertura de Arquivos ...................................................................................................................... 84
18.3 Merge de Eventos ............................................................................................................................ 85
18.4 Filtros ................................................................................................................................................. 85
18.5 Exercícios ........................................................................................................................................... 87
19 E3 Tweak ................................................................................................................................................. 88
19.1 Configurações do E3 Server ............................................................................................................ 88
19.2 Configurações do E3Run ................................................................................................................. 88
19.3 Configurações do REC ..................................................................................................................... 88
19.4 Configurações dos Logs .................................................................................................................. 89
19.5 Configurações do Filtro COM ......................................................................................................... 89
19.6 Exercícios ........................................................................................................................................... 89

II
20 Preparatório para a Certificação .......................................................................................................... 90

III
CAPÍTULO
Treinamento Avançado
1
Durante o Treinamento vão ser discutidos os seguintes itens:
· Referências aos Objetos: Referência a objetos do Servidor e do Viewer, comandos Item e Set, eventos de scripts
· Usuários: Login, administração de usuários, confirmação de senha, bloqueio de usuário, inatividade
· Bibliotecas: XObject, XControl, Combo Box, Option Button, Tela indexada, SelectMenu
· Layer: Camadas
· Adicionando Objetos em Tempo de Execução: AddObject, TypeName, CustomConfig
· Arrays: Copiar configuração de objetos
· IOKit: Trabalhando offline, XFolder
· Importação e Exportação: Lista de Tags de comunicação
· Consulta: Consulta, criando e acessando variáveis, edição direta do código SQL, Update e Delete
· GetADORecordSet: Buscando resultados de uma Consulta
· Alarmes: Eventos, campos do usuário, assinatura eletrônica, evento OnDrawRow do E3Browser
· Relatórios: Grupos e totalizadores
· WebViewer: Publicando uma aplicação do E3 na Internet
· Event Log Viewer: Logs do E3
· E3 Tweak: Chaves de registro

1.1 Aplicação do Treinamento


Neste Treinamento é apresentado um estudo de caso que simula uma aplicação real, um sistema de supervisão e
controle. O instrutor desenvolve a aplicação junto com os alunos, passo a passo, facilitando o entendimento e o
aprendizado da ferramenta.
Este sistema apresenta uma planta de saneamento, exemplificando vários aspectos e recursos disponíveis no E3.
O operador do sistema pode visualizar as temperaturas e o nível dos tanques, e controlar o funcionamento das
bombas.

Tela de visualização de tanques e bombas


O sistema também mostra condições de alarme no caso de algum parâmetro ultrapassar os limites estabelecidos,
como por exemplo um aumento excessivo de temperatura.

1 Treinamento Avançado
Tela de visualização de alarmes
O usuário também pode inserir, atualizar e remover registros em um banco de dados.

Tela de cadastro no banco de dados

1.2 Exercícios
1.2.1 Projeto
1. Crie uma nova aplicação padrão com o nome "TreinamentoAvancado". Responda Não à todas as perguntas do
Assistente de Aplicações.
2. Adicione as figuras FundoSaneamento, Bomba, Tanque, MedidaAnalogica e Alarme como Recursos da
aplicação.

NOTA
Os arquivos de recursos deste Treinamento podem ser baixados, juntamente com a aplicação completa, no artigo KB
4276 do Elipse Knowledgebase.

Treinamento Avançado 2
1.2.2 Tela Inicial
1. Configure como figura de fundo da Tela a figura FundoSaneamento, inserida como Recurso.
2. Modifique a cor de fundo da Tela (propriedade BackgroundColor) para a cor cinza (RGB(210, 210, 210)).

Tela de saneamento

3 Treinamento Avançado
CAPÍTULO
Canais de Suporte
2
A Elipse Software possui alguns recursos online para ajudá-lo a tirar dúvidas e buscar informações sobre produtos.
Os recursos disponíveis são os seguintes:
· Elipse Knowledgebase
· Elipse Fórum
· Canal de Vídeos

2.1 Elipse Knowledgebase


O Elipse Knowledgebase tem como finalidade ajudar o usuário dos produtos da Elipse Software a encontrar
respostas rápidas para dúvidas ou problemas que esteja enfrentando durante a utilização, seja durante o
desenvolvimento de aplicações ou depois de prontas. Este espaço nada mais é do que um portal onde muitas
informações técnicas e dicas estão concentradas. A sua base de informações é constantemente atualizada e tem uma
linguagem simples que visa o rápido entendimento de quem está utilizando. O KB está disponível em kb.elipse.com.br,
conforme a figura a seguir.

Página inicial do Elipse Knowledgebase

2.1.1 Busca no KB
Esta opção busca em toda a base de dados por uma palavra ou palavras que o usuário digitar, retornando todos os
artigos que possuem a palavra alvo da busca. Para isto, digite uma palavra ou expressão e clique em Pesquisar.

Pesquisa no KB

Canais de Suporte 4
2.1.2 Categorias
Existe a possibilidade de acessar todos os artigos pertencentes a uma categoria específica. Para isto, no campo
Categorias, selecione a categoria que deseja buscar os respectivos artigos.

Categorias no KB
Todos os artigos da categoria selecionada são retornados como resultado da busca. Dentro destas categorias
existem várias subcategorias, cada uma delas tratando de um tema específico.

2.2 Elipse Fórum


O Fórum da Elipse Software é uma ferramenta online para discussões e troca de conhecimento sobre produtos e
novidades. O Fórum está disponível em forum.elipse.com.br, conforme a figura a seguir.

Página inicial do Fórum da Elipse Software

5 Canais de Suporte
2.2.1 Categorias
O Fórum apresenta categorias tais como Elipse E3, Elipse Power e Elipse Mobile, conforme a figura a seguir.

Categorias do Fórum
Assim, caso o usuário deseje comentar sobre o Elipse Mobile, por exemplo, há uma página específica para isto.
Assim, o Fórum disponibiliza as informações de forma mais organizada, não deixando que um comentário sobre o E3
seja publicado em meio aos posts referentes aos Drivers, por exemplo, centralizando as discussões.

2.2.2 Acompanhamento
Para manter o usuário informado sobre o andamento de sua conversa sem necessidade de se manter logado, o
Fórum também notifica, via e-mail, caso alguma resposta seja publicada em relação ao comentário. A mesma lógica
também é válida para os casos em que o nome do usuário seja apenas mencionado. As opções de acompanhamento
são as seguintes:
· Observar: O usuário é notificado a cada novo post e resposta
· Monitorar: O usuário é notificado quando alguém mencionar o nome ou responder um post
· Normal: O usuário é notificado caso alguém mencione o nome ou responda um post. Esta é a opção padrão
· Silenciar: O usuário não é notificado sobre nenhum post ou tópico

Opções de acompanhamento no Fórum

2.3 Canal de Vídeos


A Elipse Software possui um canal de vídeos de seus produtos. Este canal contém desde vídeos rápidos que ensinam
um determinado assunto até vídeo-aulas completas.
O Canal de Vídeos está disponível em youtube.com/elipsesoftware, conforme a figura a seguir.

Canais de Suporte 6
Página inicial do Canal de Vídeos

2.3.1 Playlists
A seção Playlists contém diversos vídeos, separados por produtos de forma organizada e de fácil acesso.

Playlists do Canal de Vídeos

2.3.2 Inscrição
Clique em Inscrever-se e inscreva-se no Canal de Vídeos para ser notificado a cada novo vídeo postado.

Inscrição no Canal de Vídeos

7 Canais de Suporte
CAPÍTULO
Referências aos Objetos
3
Objetos são componentes de software reutilizáveis, que permitem maximizar o uso e aumentar a qualidade e
produtividade em aplicativos.
Um objeto no E3 encapsula ou contém três diferentes partes (propriedades, métodos e eventos) que podem ser
manipuladas para a utilização das vantagens de sua funcionalidade na aplicação.
Propriedades definem atributos de um objeto, como sua aparência na Tela ou seu valor inicial quando o aplicativo é
iniciado.
Métodos são funções que realizam uma ação específica em ou com um objeto.
Eventos são notificações geradas por um objeto em resposta a alguma ocorrência em particular, como um clique de
mouse ou uma mudança no valor de um Tag, entre outras.
Uma das características mais importantes ao se trabalhar com scripts no E3 é considerar a separação existente entre
os processos que são executados no Servidor e aqueles executados na interface do Cliente (E3 Viewer).

3.1 Application
A palavra Application representa o contexto atual do objeto e pode indicar tanto funções que são executadas no E3
Viewer quanto no Servidor. Neste caso, o objeto Application sabe de antemão quais funções devem ser executadas
tanto para um quanto para o outro caso. Não é possível, entretanto, executar métodos de Viewer dentro do Servidor,
assim como também não é possível executar métodos de Servidor dentro do E3 Viewer. Exemplos:
· Application.ChangePassword: Método do Viewer que permite alterar a senha do usuário atual
· Application.Trace(mensagem): Método do Servidor que escreve uma mensagem em um arquivo texto

3.2 Objetos do Servidor


Para se acessar um objeto que está sendo executado no Servidor a partir de um Objeto de Tela ou um ElipseX, deve-
se usar o método Application.GetObject. Exemplo:

Objetos de Servidor
· Application.GetObject("Dados.TagInterno1"): Tag Interno do Servidor de Dados
· Application.GetObject("BancoDados"): Banco de Dados

3.3 Método Item


O método Item retorna a referência para o objeto filho do objeto que o chamou. Este método pode buscar um
objeto tanto pelo nome quanto pelo índice (inteiro). Se o índice ou o nome especificado é válido, o método Item
retorna a referência ao objeto. Caso contrário, o método retorna um erro de parâmetro inválido. Exemplo:

Referências aos Objetos 8


Objeto E3Browser
· Screen.Item("E3Browser1"): Objeto E3Browser que está dentro da Tela
· Screen.Item("E3Browser1").Item("Consulta1"): Objeto Consulta que está dentro do E3Browser

3.4 Comando Set


O VBScript implementa o conceito das linguagens de programação orientadas a objeto, permitindo que uma variável
do tipo Variant assuma a forma de um objeto qualquer através do comando Set. Deste modo, a variável funciona
como um ponteiro para o objeto desejado, permitindo acessar seus métodos e propriedades. Exemplo:
Set retangulo = Screen.Item("Retangulo1")
retangulo.BackgroudColor = RGB(255, 0, 0)
'Sem o comando Set, a mesma chamada
'teria que ser escrita da seguinte forma
Screen.Item("Retangulo1").BackgroundColor = RGB(255, 0, 0)

Aparentemente, não existe vantagem neste caso, pois pode-se executar a mesma tarefa em uma única linha de
código. Porém, se logo a seguir, no mesmo script, outras operações sejam necessárias, o processo se torna mais
simples e rápido se a chamada ao método Item não é repetida em todas as linhas.
'Exemplo ruim
Screen.Item("Retangulo1").BackgroundColor= RGB(212, 208, 20)
Screen.Item("Retangulo1").Height = 500
Screen.Item("Retangulo1").Width = 500
'Exemplo melhor
Set Retangulo = Screen.Item("Retangulo1")
Retangulo.BackgroundColor = RGB(212, 208, 20)
Retangulo.Height = 500
Retangulo.Width = 500

3.5 Eventos
Eventos são notificações geradas por um objeto em resposta a alguma ocorrência em particular, como um clique de
mouse ou uma mudança no valor de um Tag, entre outras. Alguns exemplos de eventos estão listados nos tópicos a
seguir.

3.5.1 KeyDown
KeyDown(KeyCode, Shift)
Ocorre no momento em que uma tecla é pressionada, independente do foco na Tela. Os parâmetros deste evento
estão descritos na tabela a seguir.
Parâmetros disponíveis no evento KeyDown
NOME DESCRIÇÃO
KeyCode Número inteiro que identifica o caractere ASCII da tecla
pressionada

Shift Mostra o atalho de teclado usado juntamente com a tecla


pressionada:
· 4: Tecla SHIFT
· 8: Tecla CTRL

9 Referências aos Objetos


NOME DESCRIÇÃO
· 12: Teclas CTRL + SHIFT

Exemplo:
Sub TelaInicial_KeyDown(KeyCode, Shift)
' Mostra uma caixa de mensagem quando
' o usuário pressiona uma tecla
MsgBox "Código da tecla: " & KeyCode
End Sub

NOTA
Para uma lista com todos os códigos de tecla disponíveis para o parâmetro KeyCode, consulte o artigo Keys
Enumeration no Microsoft Developer Network.

3.5.2 MouseDown
MouseDown(Button, ShiftState, MouseX, MouseY)
Ocorre quando se pressiona qualquer botão do mouse na Tela. Utilize o evento MouseDown para determinar ações
específicas quando a Tela é clicada pelo usuário. Os parâmetros deste evento estão descritos na tabela a seguir.
Parâmetros disponíveis no evento MouseDown
NOME DESCRIÇÃO
Button Mostra o botão do mouse pressionado:
· 1: O botão do mouse pressionado é o esquerdo
· 2: O botão do mouse pressionado é o direito
· 4: O botão do mouse pressionado é o do meio

ShiftState Mostra a tecla pressionada juntamente com o botão do


mouse:
· 4: Tecla SHIFT
· 8: Tecla CTRL
· 12: Teclas CTRL + SHIFT

MouseX Mostra a coordenada X onde o botão do mouse foi


clicado na Tela

MouseY Mostra a coordenada Y onde o botão do mouse foi


clicado na Tela

Exemplo:
Sub TelaInicial_MouseDown(Button, ShiftState, MouseX, MouseY)
' Mostra uma caixa de mensagem
' com as coordenadas do ponteiro do mouse
MsgBox "Coordenada X: " & MouseX & _
vbNewLine & "Coordenada Y: " & MouseY
End Sub

Referências aos Objetos 10


3.6 Exercícios
1. Qual das alternativas a seguir é o modo correto de se referenciar o objeto Consulta1?

Objeto Consulta
a. ( ) Screen.Item("Consulta1")
b. ( ) Item("TelaInicial").Item("Consulta1")
c. ( ) Screen.Item("E3Browser1").Item("Consulta1")
d. ( ) Item("E3Browser1").Item("Consulta1")

2. Para sair da aplicação ao pressionar a tecla ESC, crie o seguinte script no evento KeyDown da TelaInicial.
'ESC: Sair da aplicação
If KeyCode = 27 Then
Application.Exit()
End If

11 Referências aos Objetos


CAPÍTULO
Usuários
4
Através desta opção é possível controlar o acesso às Telas, Alarmes, Domínios e E3 Viewers em uma lista de usuários
e grupos. Conforme a opção configurada, a aplicação permite ou não o acesso aos usuários cadastrados.
As permissões de acesso são configuradas por usuário ou por grupos de usuários. Os grupos podem ser criados
contendo apenas usuários ou também outros grupos.

4.1 Login
Login([Mode])
Este método abre uma caixa de diálogo para o login (autenticação de usuário) na aplicação. O usuário logado
permanece na memória até que seja realizado outro login ou logout (saída do usuário da aplicação). Este método
possui o parâmetro Mode, um Booleano que determina se uma mensagem de confirmação ou de falha da operação
deve ser mostrada (o padrão é Falso).

Tela de login

4.2 Administração de Usuários


Apenas o Administrador pode ter acesso ao método UserAdministration. A caixa de diálogo para configuração dos
usuários é acessível somente ao usuário habilitado como Administrador.

Administração de usuários
UserAdministration()
Este método abre uma caixa de diálogo que permite editar a lista de usuários do E3 Server. As funções disponíveis
são as seguintes:
· Mostrar a lista de todos os usuários
· Apagar usuários (não é possível apagar o usuário atual)
· Adicionar e editar usuários
· Editar as configurações de um usuário
· Alterar a senha do usuário
· Alterar os demais dados do usuário (login, nome, etc.)

Usuários 12
Aba Usuários

4.3 Confirmação de Senha


Para confirmar a senha do usuário logado na aplicação, utilize o método PasswordConfirm.

PasswordConfirm([Mode])
Este método abre uma caixa de diálogo solicitando a confirmação da senha do usuário atualmente logado. O método
retorna Verdadeiro se a senha é confirmada ou Falso caso contrário. O parâmetro Booleano Mode determina se deve
ser executado um logout em caso de falha na confirmação (Verdadeiro) ou não (Falso).
Se a caixa de diálogo é fechada ao clicar em Cancelar, o método retorna Falso. Caso não haja usuário logado, o
método retorna Falso, mas sem abrir a caixa de diálogo. Caso a senha digitada não esteja correta, a solicitação é
repetida até no máximo três vezes. Se o usuário digitar a senha incorreta nestas três vezes, a caixa de diálogo é
fechada e o método retorna Falso.

Confirmação de senha

13 Usuários
4.4 Bloqueio de Senha
A conta de um usuário pode ser bloqueada nas seguintes condições:
· Se a senha expirar (o tempo de expiração pode ser um atributo global, de grupo ou de usuário)
· Se o usuário digitar a senha errada um determinado número de vezes seguidas, isto é, se ocorrer uma falha de
login

Uma vez bloqueada, a conta não permite login. Esta condição persiste até que um administrador desbloqueie a senha
manualmente ou então o time-out de bloqueio expire.

4.5 Exercícios
4.5.1 Usuários
1. No menu Arquivo, selecione a opção Usuários.
2. Selecione a aba Grupos e crie dois grupos de usuários, chamados "Manutenção" e "Operador".
3. Através da aba Usuário, crie dois usuários. Configure um como pertencente ao grupo Manutenção e outro ao
grupo Operador.
4. Na configuração do usuário pertencente ao grupo Manutenção, selecione a opção Este usuário é um
administrador.

4.5.2 Login
1. Na parte superior da TelaInicial, insira o Texto "Usuário" e ao lado um Display para exibir o nome do usuário
logado.
2. No Display, crie uma Associação entre a propriedade Value e a propriedade User do Viewer.
3. Insira um botão com o texto "Login" na TelaInicial e crie o script a seguir.
'Login
Application.Login(True)

4.5.3 Administração de Usuários

Tela Inicial
1. Ao lado do botão de login, insira um Botão de Comando com o texto "Adm".
2. Neste Botão de Comando, insira o script a seguir.
'Administração de usuários
Application.UserAdministration()

4.5.4 Opções de Segurança


1. Clique com o botão direito do mouse no ícone do E3 Admin na Área de Notificações do Windows e selecione o
item Domínio - Opções.

Opções do Domínio
2. Na aba Segurança, configure as opções conforme a figura a seguir.

Usuários 14
Políticas de segurança

NOTA
Configurações de segurança não são aplicadas aos usuários já existentes, apenas na alteração ou na criação de um
usuário.

4.5.5 Confirmação de Senha


A cada 10 minutos, o usuário deve confirmar a sua senha.
1. Insira no Viewer um Tag Contador com o nome de "ConfirmarSenha".
2. Configure as seguintes propriedades do Tag Contador:
· AutoRestart: True
· CounterType: 0 - Preset
· Preset: 600

3. No evento OnPreset do Tag Contador, insira o script a seguir.


'Confirmar senha
If Parent.PasswordConfirm(True) = False Then
'Sair do Viewer
Parent.Exit()
End If

4. Execute a aplicação e teste a nova funcionalidade.

4.5.6 Logout por Inatividade


1. Abra a Janela de Propriedades do Viewer e, na aba Visualizador, configure a verificação de inatividade após cinco
minutos e duas retentativas de login.

15 Usuários
Janela de Propriedades do Viewer
2. No evento OnInactive do Viewer, crie o script a seguir.
Logout(False)
MsgBox "Sessão encerrada por inatividade."

Usuários 16
CAPÍTULO
Bibliotecas: XObjects e XControls
5
O E3 fornece uma ferramenta de bibliotecas do usuário chamada de ElipseX. O uso de bibliotecas no E3 é altamente
recomendável na maioria dos casos, devido ao ganho de produtividade que trazem às aplicações. Algumas das
vantagens dos ElipseX:
· Reutilização de código
· Minimização de testes durante o desenvolvimento
· Criação de interfaces padrão para os objetos desenvolvidos
· Diminuição do tempo de desenvolvimento de novos projetos
· Proteção do conteúdo do projeto
· Hierarquização de objetos

5.1 XControl
Um XControl define uma interface gráfica com o usuário, que pode ser composta de quaisquer objetos do E3 e tem
o propósito de ser multiplicada facilmente pelo projeto.

Aba Design de um XControl

Aba Propriedades de um XControl


A edição do objeto gráfico pode ser realizada da mesma forma como é realizada a edição de uma Tela, possuindo os
mesmos recursos gráficos e opções. Pode-se inserir XControls em qualquer Tela, ou ainda dentro de outro XControl.

NOTA
Se o tamanho deste objeto é alterado na aba Design do Editor da Biblioteca e registrado novamente, é necessário
selecionar a opção Tamanho Original no menu contextual da Tela para que a alteração seja visível.

17 Bibliotecas: XObjects e XControls


5.2 XObject
Além dos XControls e XFolders, pode-se criar uma biblioteca de dados, denominada XObject. Com esta biblioteca,
pode-se definir uma estrutura de dados que é executada no Servidor. Tal estrutura pode realizar cálculos,
Associações, comunicações, verificação de alarmes ou registro histórico, entre outras tarefas, independente de haver
alguma interface gráfica (E3 Viewer) aberta ou em execução naquele momento.

Aba Propriedades de um XObject


Podem ser inseridos em um XObject quaisquer módulos do E3 que sejam executados no Servidor, a saber:
· Drivers de Comunicação e Drivers de Comunicação OPC
· Tags de Comunicação
· Servidores de Alarmes e Alarmes
· Fórmulas
· Servidores de Dados
· Históricos

Isto permite que se possa definir como uma biblioteca um sistema complexo de gerenciamento, que pode ser
facilmente replicado quantas vezes sejam necessárias em um aplicativo.

IMPORTANTE
Veja que XControls, XFolders e XObjects só podem se relacionar com o mundo externo através das propriedades
(ou ainda através do ponteiro do mouse e teclado, no caso dos XControls). Isto significa que não se pode acessar
dados internos de um XControl, XFolder ou XObject, exceto de dentro do próprio objeto.

5.3 Exercícios
Nestes exercícios, vamos trabalhar com a estrutura XObject-XControl e criar um terceiro objeto de biblioteca, o
XControl ConfigBomba, para a Tela indexada.
1. Crie um novo projeto e, através do Assistente de Aplicações, selecione a opção Biblioteca de componentes do
E3. Nomeie a biblioteca como "LibSaneamento". Clique em Avançar, adicione-a ao Domínio ativo e conclua.

5.3.1 XO_Bomba
Este XObject tem as propriedades Velocidade (baixa, média e alta) e Estado (ligado e desligado).
1. Insira um novo XObject na biblioteca, nomeando-o como "XO_Bomba". Insira duas propriedades e configure-as
conforme a figura a seguir.

XObject XO_Bomba
2. Salve o objeto e registre a biblioteca.

Bibliotecas: XObjects e XControls 18


5.3.2 XC_Bomba
O XControl XC_Bomba simula o estado de uma bomba, conforme as configurações do XObject XO_Bomba.
1. Insira um novo XControl na biblioteca, com o nome "XC_Bomba".
2. Insira a imagem da bomba, adicionada anteriormente como Recurso.

Bomba
3. Insira os objetos Texto e Display, conforme a figura a seguir.

Texto e Display
4. No desenho da bomba, clique com o botão direito do mouse e selecione as opções Converter para símbolo e
Explodir símbolo.

NOTA
Este XControl é inserido dentro da Tela Inicial, sobre as imagens das bombas. Por isto, adapte o tamanho da figura
Bomba com o tamanho das imagens das bombas na Tela, facilitando a futura inserção do objeto.

5. Modifique a propriedade OverrideFillMode para 2 - SolidFill e a propriedade OverrideFillColor para a cor cinza
(RGB(150, 150, 150)).

19 Bibliotecas: XObjects e XControls


Propriedades OverrideFillColor e
OverrideFillMode
6. Na aba Propriedades, crie as Propriedades mostradas na figura a seguir.

Aba Propriedades
7. Os Textos devem criar o nome do objeto XO_Bomba associado. Na propriedade Value dos Textos, crie uma
Associação Simples com a propriedade Name do objeto XO_Bomba através da propriedade Fonte.

Associação com a propriedade Value

Bibliotecas: XObjects e XControls 20


8. O Texto com o nome da bomba pode aparecer em cima ou embaixo da figura, dependendo da posição do
objeto na Tela. Crie uma Associação Simples na propriedade Visible do Texto de baixo com a propriedade
Embaixo do objeto XC_Bomba.
9. Para o Texto de cima, crie uma Associação Simples na propriedade Visible com a expressão "NOT
XC_Bomba.Embaixo".

Associação com as propriedades Value e Visible


10. No objeto que representa a bomba, crie uma Associação Digital na propriedade OverrideFillColor, conforme a
figura a seguir.

Associação Digital na propriedade OverrideFillColor


11. No objeto Texto inserido ao lado da bomba, vamos exibir o estado da bomba (On ou Off). Para isto, crie uma
Associação Digital na propriedade Value, conforme a figura a seguir.

21 Bibliotecas: XObjects e XControls


Associação Digital na propriedade Value
12. No objeto Display, vamos exibir a velocidade de rotação da bomba. Para isto, vamos alterar a letra (B: Baixa, M:
Média e A: Alta) e a cor do objeto. Para alterar a letra, crie uma Associação por Tabela na propriedade Value
com a Propriedade Velocidade do objeto XO_Bomba, conforme a figura a seguir.

Associação por Tabela na propriedade Value


13. Para mudar a cor do Display, crie uma Associação por Tabela da propriedade ForegroundColor com a
propriedade Velocidade.

Bibliotecas: XObjects e XControls 22


Associação por Tabela na propriedade ForegroundColor
14. Para que o Display não seja exibido caso a bomba esteja desligada, crie uma Associação Simples da propriedade
Visible do Display com a propriedade Estado do objeto XO_Bomba.

Associação Simples na propriedade Visible


15. Salve as modificações e registre a biblioteca.

5.3.3 Tela
1. Sobre cada imagem de bomba na TelaInicial, insira um XControl do tipo XC_Bomba. Ajuste a propriedade
Embaixo conforme desejar.

5.3.4 Dados
Para facilitar futuras lógicas, vamos separar os XObjects XO_Bomba em uma pasta chamada Bombas.
1. No Servidor de Dados, pasta Dados, insira uma Pasta de Dados chamada "Bombas".
2. Para cada bomba na Tela, insira na pasta Bombas um XObject XO_Bomba. Configure as propriedades Name para
"B01"e DocString para "Bomba01" na primeira bomba e nomeie sequencialmente as demais.

23 Bibliotecas: XObjects e XControls


Pasta Bombas

Propriedades Name e DocString

3. Associe os XControls XC_Bomba da Tela com os XObjects criados.

Associação com os XObjects

Bibliotecas: XObjects e XControls 24


4. Configure as propriedades Estado e Velocidade das bombas e verifique a funcionalidade.

5.3.5 XC_Comando
Para alterar as propriedades da bomba, vamos criar um XControl que vai ser utilizado como Tela indexada.
1. Insira um XControl chamado "XC_Comando".
2. Configure-o conforme a figura a seguir. São utilizados três Textos ("Nome", "Comando" e "Velocidade"), um Botão
Liga e Desliga ("ON" e "OFF") e um Botão de Comando ("Velocidade").

XControl XC_Comando
3. Crie a propriedade Fonte para acessar as propriedades do XObject XO_Bomba.

Propriedade Fonte
4. No Texto Nome, crie uma Associação Simples na propriedade Value com a propriedade DocString do objeto
XO_Bomba.

Associação Simples com a propriedade DocString

25 Bibliotecas: XObjects e XControls


5. No Botão Liga e Desliga, crie uma Associação Bidirecional na propriedade Value com a propriedade Estado do
XObject XO_Bomba para alterar o estado da bomba. Na propriedade Caption, crie uma Associação Digital para
alterar o texto do Botão de Comando dependendo do valor da propriedade Estado.

Associações com as propriedades Value e Caption


6. No Botão de Comando, vamos alterar o valor da velocidade de rotação da bomba. Para isto, vamos utilizar o
método SelectMenu do Viewer no evento Click do Botão de Comando e passar o valor retornado para a
propriedade Velocidade.

NOTA
Como o retorno do método SelectMenu começa em 1 (um) e não em 0 (zero) como o valor da Propriedade
Velocidade (0: Baixa, 1: Média e 2: Alta), subtraímos 1 (um) da variável op no script.

op = Application.SelectMenu("Baixa|Média|Alta")
XC_Comando.Fonte.Velocidade = op - 1

7. Na propriedade Caption do Botão Liga e Desliga, crie uma Associação por Tabela para alterar o texto do Botão
de Comando de acordo com o valor da Propriedade Velocidade.

Associação com as propriedades Caption e Velocidade


8. Para desabilitar a alteração da velocidade se a bomba estiver desligada, crie uma Associação Simples na
propriedade Enabled com a propriedade Estado.

Bibliotecas: XObjects e XControls 26


Associação entre as propriedades Enabled e Estado
9. Salve as modificações e registre a biblioteca.

5.3.6 Tela Indexada


É muito comum termos Telas que se repetem na aplicação. Ao invés de criar várias Telas, vamos criar apenas uma e
configurar de onde buscar os dados. Para este tipo de Tela usamos o nome de Tela Indexada.
1. Crie uma Tela chamada "TelaComando", com o tamanho de 300 por 300 pixels.
2. Insira o XControl XC_Comando nesta Tela.
3. Para abrir a tela de configuração ao clicar em uma bomba, no XControl XC_Bomba insira o script a seguir no
evento Click do objeto que representa a bomba.
Arg = XC_Bomba.Fonte.PathName
Set newScreen = Application.GetFrame("virtualFrame")
newScreen.MoveFrame , , 200, 250
newScreen.SetFrameOptions XC_Bomba.Fonte.Name, 1 + 2 + 16 + 64 + 2048
Set screenObj = Application.GetScreen("TelaComando")
newScreen.ShowScreen screenObj, 100, 0
screenObj.Item("XC_Comando1").Fonte = Arg

NOTA
O método GetFrame permite abrir uma Tela em formato pop-up, definindo o seu tamanho através do método
MoveFrame. Já o método GetScreen permite definir uma Tela a ser aberta e sua fonte de dados, ou seja, a instância
do XObject XO_Bomba.

4. Salve a aplicação e teste as novas funcionalidades.

27 Bibliotecas: XObjects e XControls


CAPÍTULO
Layer
6
A propriedade Layer de uma Tela define em quais camadas um objeto de Tela deve aparecer. O valor representa uma
máscara de 32 bits, um bit para cada camada. Portanto, podem ser definidas até 32 camadas individuais. Assim,
objetos de Tela podem ser agrupados logicamente e mostrados ou escondidos apenas modificando a máscara da
propriedade Layer.
Opções disponíveis para a propriedade Layer
BIT2 BIT1 BIT0 LAYER DESCRIÇÃO
0 0 0 0 Esconde todos os
objetos
0 0 1 1 Exibe objetos cuja
propriedade Layer
esteja configurada
como 1
0 1 0 2 Exibe objetos cuja
propriedade Layer
esteja configurada
como 2
0 1 1 3 Exibe objetos cuja
propriedade Layer
esteja configurada
como 1, 2 ou 3
1 0 0 4 Exibe objetos cuja
propriedade Layer
esteja configurada
como 4
1 0 1 5 Exibe objetos cuja
propriedade Layer
esteja configurada
como 1, 4 ou 5
1 1 0 6 Exibe objetos cuja
propriedade Layer
esteja configurada
como 2, 4 ou 6
1 1 1 7 Exibe objetos cuja
propriedade Layer
esteja configurada
como 1, 2, 3, 4, 5, 6
ou 7

NOTA
Para exibir todos os objetos de uma Tela, configure a propriedade Layer da Tela para o valor -1 (menos um).

6.1 Exercícios
1. No objeto XC_Bomba, altere a propriedade Layer dos Textos que exibem o nome do objeto para 2 (dois).
2. Salve a biblioteca e registre-a.
3. Na TelaInicial, insira uma Caixa de Seleção com o texto "Identificação". Altere o nome do objeto para "ckLayer".
4. Na Janela de Propriedades da TelaInicial, aba Associações, crie uma Associação Digital na propriedade Layer da
Tela com a propriedade Value do objeto ckLayer. Configure o campo Ligado para 3 (propriedade Layer ligada)
e o campo Desligado para 1 (propriedade Layer desligada).

Layer 28
Associação Digital

29 Layer
CAPÍTULO
Adicionando Objetos em Tempo de Execução
7
Em algumas situações, uma aplicação não tem uma estrutura fixa, precisando criar os objetos necessários em tempo
de execução. Por exemplo, uma aplicação que deve ler uma lista de equipamentos em um banco de dados e
estabelecer uma comunicação com estes equipamentos. Além disto, estes equipamentos variam com o tempo, junto
com suas propriedades.
Se os objetos inseridos em tempo de execução são objetos do servidor (Tags, Drivers, Históricos, Alarmes, etc.), as
modificações podem ser salvas através do comando Save. Objetos de visualização (Telas ou Relatórios, por exemplo)
não podem ser salvos.

7.1 Adicionar Objeto


AddObject(ClassName, [Activate], [ObjectName])
Este método adiciona um novo objeto à aplicação. Os parâmetros deste método estão descritos na tabela a seguir.
Parâmetros disponíveis no método AddObject
NOME DESCRIÇÃO
ClassName Tipo de objeto a ser criado

Activate Indica se o objeto é ativado após sua criação

ObjectName Nome do objeto

Enquanto o objeto estiver ativo, as Associações e os scripts permanecem habilitados. Exemplo:


Set retangulo = Screen.AddObject("DrawRect", True)
retangulo.X = 200
retangulo.Y = 200
retangulo.ForegroundColor = vbRed

Se o objeto é criado com o parâmetro Activate em Falso, mais tarde ele pode ser ativado pelo método Activate.
O tipo do objeto pode ser visualizado na barra de título da Lista de Propriedades.

Objeto Retângulo (DrawRect)

Adicionando Objetos em Tempo de Execução 30


Objeto Tag Interno (InternalTag)

7.2 Evento CustomConfig


O evento CustomConfig é um recurso presente a partir da versão 3.2 do E3. Permite criar assistentes de configuração
das instâncias de um objeto ElipseX no E3 Studio.
Uma opção de configuração aparece no menu contextual das instâncias de objetos ElipseX sempre que existir um
script associado ao evento CustomConfig da definição do objeto ElipseX. Quando a opção é selecionada no menu, o
evento é disparado.
O texto que aparece na opção do menu pode ser informado na propriedade CustomConfigText da definição do
objeto ElipseX. Se esta propriedade estiver em branco, aparece o texto "Configurar", conforme mostra a figura a
seguir.

31 Adicionando Objetos em Tempo de Execução


Configurando um XControl
NOTA
O script associado ao evento CustomConfig executa no E3 Studio, onde os objetos não estão ativos. Portanto, o
comportamento é diferente do usual.

7.3 Exercícios
Neste exercício é usado o evento CustomConfig do XControl XC_Bomba para criar o XObject e associá-lo à bomba
automaticamente, facilitando a configuração.

7.3.1 CustomConfig
1. No XControl XC_Bomba, selecione o evento CustomConfig e insira o script a seguir.
'Nome da bomba
Nome = InputBox("Digite o nome da Bomba:")
If Nome = "" Then Exit Sub

'Cria o objeto XO_Bomba


Set obj = Application.GetObject("Dados.Bombas")._
AddObject("XO_Bomba", True, Nome)
obj.DocString = InputBox("Digite uma descrição para a Bomba:")

'Associa o XControl ao XObject


Fonte = obj.PathName

2. Salve as modificações e registre a biblioteca.


3. Na Tela, clique com o botão direito do mouse em uma bomba e selecione a opção Configurar.

Adicionando Objetos em Tempo de Execução 32


CAPÍTULO
Arrays
8
Em certas situações é conveniente atribuir mais de um valor relacionado a uma única variável. Para isto, pode-se criar
uma variável que contém uma série de valores, uma variável do tipo Array ou Vetor.
Para declarar uma variável explicitamente, utiliza-se o comando Dim. A declaração de um array utiliza parênteses
contendo sua dimensão. Exemplo:
Dim A(10)

Pode-se atribuir dados a cada um dos elementos de um array usando-se um índice começando em 0 (zero) e
terminando no tamanho declarado (o número de elementos de um array é sempre o número mostrado nos
parênteses mais um). Exemplo:
A(0) = 256
A(1) = 324
A(2) = 100
...
A(10) = 55

Também é possível criar um array utilizando o método Array(arglist) do VBScript. Este comando retorna uma variável
do tipo Variant que contém um array. Os valores devem ser separados por vírgulas. Exemplo:
A = Array(10, 20, 30)
MsgBox A(0)
MsgBox A(1)
MsgBox A(2)

8.1 Exercícios
Neste exercício, vamos programar a opção de copiar as configurações de uma bomba e passá-las para as demais
bombas usando o botão direito do mouse.
1. Crie um Tag Interno no Viewer chamado "CopiarBomba".
2. No XControl XC_Bomba, selecione o grupo com a imagem da bomba e insira o script a seguir no evento
MouseDown.
If Button = 2 Then 'Clique com o botão direito do mouse
If TypeName(Application.Item("CopiarBomba").Value) = "Empty" Then
Menu = "Copiar"
Else
Menu = "Copiar|Colar"
End If

opcao = Application.SelectMenu(Menu)
If opcao = 1 Then 'Copiar
'Salva as informações no Tag do Viewer
Dim arr(2)
arr(1) = XC_Bomba.Fonte.Estado
arr(2) = XC_Bomba.Fonte.Velocidade
Application.Item("CopiarBomba").Value = arr
ElseIf opcao = 2 Then 'Colar
'Passa as informações do Tag do Viewer para DadosBomba
arr = Application.Item("CopiarBomba").Value
XC_Bomba.Fonte.Estado = arr(1)
XC_Bomba.Fonte.Velocidade = arr(2)
End If
End If

3. Salve as modificações e registre a biblioteca.


4. Execute a aplicação e teste a nova funcionalidade.

33 Arrays
CAPÍTULO
Bibliotecas: XFolders
9
Um XFolder é um objeto de servidor que permite organizar ou criar uma hierarquia de objetos nas instâncias criadas.
Os objetos que podem ser inseridos em uma instância de XFolder são Pastas de Dados, Tags de Comunicação,
Consultas, Filtros de Alarmes, instâncias de XFolders e XObjects e Alarmes.

NOTA
Não é permitido inserir objetos na definição de um XFolder, somente em suas instâncias.

9.1 Exercícios
Nestes exercícios, vamos trabalhar com a estrutura XFolder-XControl e criar uma certa hierarquia de objetos.

9.1.1 XF_Tanque
1. Insira um novo XFolder na biblioteca e nomeie-o como "XF_Tanque".
2. Modifique as propriedades FriendlyName e InstanceName, para "Tanque" e "TQ", respectivamente.
3. Vamos inserir uma figura para ser exibida nas instâncias deste objeto. Para isto, insira na propriedade IconPath o
nome do objeto Tanque inserido como Recurso na aplicação.

Propriedades do XFolder

9.1.2 XF_MedidaAnalogica
1. Insira um novo XFolder na biblioteca e nomeie-o como "XF_MedidaAnalogica".
2. Modifique as propriedades FriendlyName e InstanceName, para "MedidaAnalogica".
3. Vamos inserir uma figura para ser exibida nas instâncias deste objeto. Para isto, insira na propriedade IconPath o
nome do objeto MedidaAnalogica inserido como Recurso na aplicação.
4. Crie uma Propriedade chamada "Value", do tipo Double.

Bibliotecas: XFolders 34
Propriedade Value
5. Salve as modificações e registre a biblioteca.

9.1.3 Dados
Para facilitar futuras lógicas, vamos separar os XFolders XF_Tanque em uma pasta chamada Tanques.
1. No Servidor de Dados, insira uma Pasta de Dados chamada "Tanques" na pasta Dados.
2. Insira um objeto XF_Tanque.
3. Dentro deste objeto XF_Tanque, insira um objeto XF_MedidaAnalogica e modifique seu nome para "Nivel".
4. Repita este procedimento mais sete vezes, totalizando oito objetos XF_Tanque e seus níveis. Utilize os atalhos de
teclado CTRL + C (Copiar) e CTRL + V (Colar) para facilitar o procedimento.

Pasta Tanques

9.1.4 XC_Tanque
1. Insira um novo XControl na biblioteca e nomeie-o como "XC_Tanque".
2. Configure-o conforme a figura a seguir. São utilizados dois Textos ("Nome", "00") e um Retângulo.

35 Bibliotecas: XFolders
XControl
XC_Tanque
3. Crie a Propriedade Fonte para acessar as propriedades do XFolder XF_MedidaAnalogica.

Propriedade Fonte
4. No objeto Texto para exibir o valor do nível, modifique a formatação para Porcentagem e uma casa decimal.

Formato do Texto
5. Na propriedade Value do Texto, crie uma Associação Analógica com a Propriedade Value do objeto
XF_MedidaAnalogica, conforme a figura a seguir.

Bibliotecas: XFolders 36
Associação Analógica
6. Na propriedade VerticalPercentFill do Retângulo, crie uma Associação Simples com a Propriedade Value do
objeto XF_MedidaAnalogica.

Associação Simples
7. No Texto Nome, modifique a propriedade Layer para 2 (dois).
8. Ainda no Texto Nome, crie uma Associação Simples na propriedade Value com a Propriedade Name do objeto
XF_Tanque. Como a Propriedade Fonte acessa um objeto XF_MedidaAnalogica, é necessário adicionar a
expressão "Parent", que permite acessar o objeto pai de XF_MedidaAnalogica.

37 Bibliotecas: XFolders
Associação Simples

NOTA
A Associação do procedimento anterior aparece em vermelho porque na biblioteca não é possível acessar a
hierarquia de objetos utilizada na aplicação.

9. Salve as modificações e registre a biblioteca.

9.1.5 Tela
1. Na Tela inicial da aplicação, insira oito objetos XC_Tanque, conforme a figura a seguir.

Objetos XC_Tanque
2. Associe as Propriedades Fonte dos objetos XC_Tanque aos objetos Nivel dos objetos XF_Tanque da Pasta
Tanques.

Bibliotecas: XFolders 38
Associação com a propriedade Fonte
3. Repita a Associação do procedimento anterior para as todos os objetos XC_Tanque da Tela.

39 Bibliotecas: XFolders
CAPÍTULO
IOKit
10
O IOKit é um componente compartilhado utilizado pelos Drivers de Comunicação da Elipse Software, implementando
o acesso padrão do nível físico e proporcionando interfaces para Serial, Modem, Ethernet e RAS.
Atualmente o IOKit permite que apenas uma conexão seja aberta para cada Driver. Isto significa que, caso seja
necessário o acesso a duas portas seriais, devem ser adicionados dois Drivers na aplicação e cada um deles
configurado para cada uma das portas seriais.

10.1 Trabalhando Offline


O modo Offline foi planejado para sistemas onde o Driver necessita ser configurado em tempo de execução. Este é o
caso quando simplesmente não se sabe o tipo de conexão ou os parâmetros até que a aplicação esteja em execução.
Em modo Offline, todos os Tags de Comunicação do Driver falham (todas as escritas e leituras). Os únicos Tags
permitidos são os Tags gerais do IOKit (N1/B1 igual a menos um e N2/B2 igual a zero). Embora seja possível chavear
o Driver entre os modos Online e Offline em tempo de execução, geralmente os seguintes passos são necessários:
1. Configure a opção Start driver Offline na janela de propriedades Extras do Driver. Esta opção permite que o
Driver inicie no estado Offline.
2. Configure os parâmetros do Driver em um script da aplicação. O script pode ser executado automaticamente ou
de acordo com uma solicitação do usuário.
3. Configure o Driver para o modo Online.

10.2 Exercícios
Neste exercício vamos alternar o acesso a dois equipamentos (Elipse Modbus Simulator) em tempo de execução,
modificando a porta TCP/IP de acesso.

10.2.1 Simulador Modbus


1. Execute o Elipse Modbus Simulator e insira dois CLPs, conforme a figura a seguir.

Elipse Modbus Simulator

10.2.2 Driver
1. Insira um objeto Driver de Comunicação na aplicação.
2. Configure este Driver para comunicar com o Elipse Modbus Simulator utilizando as seguintes propriedades:
· Aba Modbus

IOKit 40
· Modbus Mode: Modbus TCP
· Aba Setup
· Physical Layer: Ethernet
· Aba Ethernet
· Main IP: 127.0.0.1
· Port: 502

3. Insira oito Tags de Comunicação e configure-os para ler os endereços de 1 (um) a 8 (oito) do Simulador.
· N1: 1 (um)
· N2: 1 (um)
· N3: 0 (zero)
· N4: De 1 (um) a 8 (oito)

4. Como o Elipse Modbus Simulator varia entre 0 (zero) e 65535 e a variação usada na aplicação deve estar entre 0
(zero) e 100, habilite a escala nos Tags conforme a figura a seguir.

Tags de Comunicação
5. Abra o Tag Browser , selecione o Tag IO.Ethernet.MainPort, que está na pasta IOKit - Parameters na lista
Tags disponibilizados pelo driver, e arraste-o para a lista Tags do projeto corrente.

Tag Browser

41 IOKit
6. Teste a conexão.

10.2.3 Tanques
1. Na pasta de dados Tanques, em Objetos de Servidor - Objetos de Dados - Dados, selecione o objeto Nivel
dentro do tanque TQ1.

Objeto Nivel
2. Crie uma Associação Bidirecional na propriedade Value com o Tag de Comunicação Nivel1.

Associação Bidirecional
3. Repita esta Associação para os demais objetos Nivel e seus respectivos Tags.
4. Execute a aplicação e teste as novas funcionalidades.

10.2.4 Script
Neste exercício, vamos criar um script para alterar os simuladores acessados através da porta TCP/IP configurada.
1. Na Tela inicial, insira um Botão de Comando.
2. Selecione a aba Scripts e crie um novo script no evento Click.
3. Insira o código a seguir.

IOKit 42
Set driver = Application.GetObject("Driver1")
Set porta = Application.GetObject("Driver1.[IO.Ethernet.MainPort]")
' Coloca o Driver em modo Offline
driver.Write -1, 0, 0, 4, 0
' Muda a porta TCP/IP
If porta.value = 502 Then
porta.WriteEx 503
Else
porta.WriteEx 502
End If
' Coloca o Driver em modo Online
driver.Write -1, 0, 0, 4, 1

4. Execute a aplicação e teste as novas funcionalidades.

43 IOKit
CAPÍTULO
Importação e Exportação
11
A ferramenta de importação de objetos do E3 tem como objetivo ler as informações sobre os objetos de um arquivo
CSV (Comma-Separated Values) e recriá-los no ambiente de configuração (E3 Studio). Para cada objeto, é possível
obter informações sobre propriedades, Associações e itens de coleções.
A ferramenta de exportação de objetos do E3 tem como objetivo salvar informações sobre os objetos selecionados
no ambiente de configuração (E3 Studio) para um arquivo CSV. Para cada objeto, podem ser gravadas suas
propriedades, Associações e seus itens de coleções.
Qualquer objeto do E3 pode ser importado ou exportado. O objeto selecionado para a operação é chamado de
objeto raiz. Além dos objetos, as Associações e as coleções também podem ser importadas e exportadas.

NOTA
Os scripts NÃO são exportados, apenas objetos e Associações. Para trabalhar com importação ou exportação é
necessário ter uma licença de E3 Studio.

11.1 Arquivo CSV


Um arquivo CSV (Comma-Separated Values) é um arquivo texto baseado em colunas separadas por um caractere
separador previamente definido. Cada coluna do arquivo CSV representa uma ou mais propriedades de objetos do
E3. Cada linha do arquivo representa um objeto, Associação ou item de coleção. Para que estes arquivos sejam
utilizados corretamente, é preciso observar alguns detalhes:
· A primeira linha do arquivo CSV deve conter um cabeçalho que identifique as colunas corretamente
· O cabeçalho deve ter obrigatoriamente uma coluna que identifica o tipo do objeto que está sendo importado ou
exportado. Esta coluna chama-se ObjectType
· O cabeçalho das demais colunas deve ser o próprio nome da propriedade
· As colunas podem ser colocadas em qualquer ordem no arquivo. Pode haver colunas a mais ou a menos, sem
prejuízo da operação de importação ou exportação. A única coluna obrigatória é ObjectType, porque sem ela
não é possível identificar o tipo de objeto que deve ser criado

11.2 Gerenciador de Modelos


Modelos são arquivos INI utilizados para configurar a ferramenta de importação e exportação, informando, por
exemplo, qual o separador que deve ser utilizado no arquivo CSV e se as Associações dos objetos devem ou não ser
exportadas, entre outras configurações.
O Gerenciador de Modelos é uma ferramenta que auxilia o usuário na criação de um arquivo INI para ser utilizado na
importação ou exportação de objetos do E3.
Na aba Configurações é possível salvar um arquivo de modelo. Quando a opção Salvar as alterações deste modelo
em um arquivo INI é selecionada, define-se o arquivo INI onde as alterações do modelo são salvas, e este arquivo
pode ser reutilizado.

Importação e Exportação 44
Aba Configurações
Através da aba Propriedades, o usuário seleciona quais as propriedades dos objetos que deseja utilizar na
importação ou na exportação. O valor inicial da lista é ObjectType. As demais propriedades devem ser adicionadas
manualmente pelo usuário.

45 Importação e Exportação
Aba Propriedades
Ao clicar em , a janela da figura a seguir é aberta para a seleção de propriedades.

Adicionar propriedades

Importação e Exportação 46
As propriedades em negrito nesta lista já foram inseridas na lista que define as colunas do arquivo CSV. Clique duas
vezes em uma propriedade para que ela seja adicionada ou removida, dependendo se ela já estava na lista ou não.
As propriedades também podem ser agrupadas. Selecione as que deseja agrupar e clique em . Os nomes das
propriedades são agrupados em uma mesma linha, utilizando o nome da coluna definido para a propriedade que
está no topo da lista.

11.3 Exercícios
11.3.1 Exportação
1. Clique com o botão direito do mouse em um objeto Driver e selecione a opção Exportar.

Menu Exportar

11.3.2 Importação
1. Clique com o botão direito do mouse no Driver e selecione a opção Importar.
2. Selecione o arquivo CSV criado no exercício anterior.
3. Caso já exista o Tag que foi importado, aparece uma mensagem perguntando se este deve ser sobrescrito ou
ignorado.

47 Importação e Exportação
Aviso de importação
4. Verifique se todos os Tags foram criados com sucesso.

Importação e Exportação 48
CAPÍTULO
Consulta
12
Neste capítulo vamos abordar o objeto Consulta do E3 (Query), com foco na utilização da edição direta do código
SQL (Structured Query Language), isto é, sem a utilização do Assistente de Configuração de Consultas.

12.1 Criando e Acessando Variáveis


Na janela de configuração da Consulta, na aba Campos, pode-se adicionar filtros diretamente nos campos. Estes
filtros podem ser constituídos de variáveis que são definidas por script, utilizando o método SetVariableValue da
Consulta. A forma de declarar as variáveis depende do tipo de dados que representam:
· <%Nome_da_Variavel%> se o valor é numérico
· '<%Nome_da_Variavel%>' se o valor é uma String
· #<%Nome_da_Variavel%># se o valor é uma data

12.2 Edição Direta do Código SQL


O objeto Consulta do E3, além de criar o código SQL automaticamente através de configuração, também permite que
o usuário defina diretamente a consulta desejada. Para isto, utilize a opção Habilita edição direta do SQL na aba
SQL.

Opção Habilita edição direta do SQL

12.3 Update
Utilize o comando Update para editar campos de uma tabela, respeitando certas condições.
UPDATE Tabela1
SET Tabela1.Campo = '<%NovoValor%>'
WHERE Tabela1.Campo = '<%ValorAntigo%>'

12.4 Delete
Utilize o comando Delete na sintaxe SQL a seguir.
DELETE
FROM Tabela1
WHERE Tabela1.Campo = '<%Valor%>'

49 Consulta
NOTA
O método Execute da Consulta deve ser utilizado em um comando SQL que não tenha retorno, como Delete ou
Update. O parâmetro ImmediateExecute indica se a operação passa pelas filas de operações do Banco de Dados
(configurado como Falso) ou se é enviada diretamente para o banco de dados (configurado como Verdadeiro).

12.5 Exercícios
Neste exercício vamos implementar uma Tela para o cadastro de CLPs da aplicação, informando o nome, porta TCP/IP
e endereço IP do equipamento.

12.5.1 Aplicação
1. Insira no projeto um novo Servidor de Dados, chamado "DadosHistorico".
2. Neste Servidor de Dados, insira três Tags Internos chamados "Equipamento", "IP" e "Porta".

Servidor de Dados
3. Insira um objeto Banco de Dados no projeto.
4. Selecione a opção 0 - stAccess na aba Configuração e selecione um nome para o arquivo MDB.

Consulta 50
Configuração do Banco de Dados
5. Insira um objeto Histórico chamado "HistEquipamento" e crie os campos Equipamento, Porta e IP, configurando
a coluna Fonte de cada um destes campos com seus respectivos Tags Internos criados no Servidor de Dados
DadosHistorico.
6. Não é permitido mais de um registro com o mesmo nome de equipamento, portanto selecione o campo
Equipamento como chave primária utilizando a Caixa de Seleção da coluna Chave Primária .

Configuração do Histórico
7. Abra a Janela de Propriedades do Histórico e configure-o para gravar os dados na tabela
ConfigEquipamento do Banco de Dados, gravando um registro novo a cada 0 (zero) milissegundos.

51 Consulta
Configuração do Histórico
8. Gere a estrutura da tabela.

Consulta 52
12.5.2 Tela

Tela de configuração dos equipamentos


1. Insira uma nova Tela no projeto, chamada "TelaEquipamentos", com o tamanho de 500 por 500 pixels.
2. Insira nesta Tela um objeto E3Browser.
3. Configure o E3Browser para exibir a tabela ConfigEquipamento e retornar os campos Equipamento, Porta e IP e
ainda atualizar-se a cada 1000 milissegundos.
4. Abaixo do E3Browser, insira três SetPoints para poder editar o nome do equipamento, sua porta TCP/IP e seu
endereço IP. Identifique cada SetPoint com um Texto.
5. Para facilitar os scripts seguintes, renomeie os SetPoints para "spEquipamento", "spPorta" e "spIP".
6. Crie uma Associação Bidirecional dos SetPoints com seus respectivos Tags em DadosHistorico.
7. Abaixo dos textos, insira três Botões de Comando chamados "Inserir", "Atualizar" e "Remover".
8. Na TelaInicial, insira um Botão de Comando para abrir a TelaEquipamentos.

12.5.3 Inserir
Para inserir um registro no Histórico sem habilitar a gravação por scan, deve-se utilizar o método WriteRecord do
próprio Histórico.
1. Ao clicar em Inserir, o objeto Histórico deve inserir uma linha na tabela. No evento Click do botão Inserir, crie o
script a seguir.
Application.GetObject("HistEquipamento").WriteRecord()

2. Execute a aplicação e cadastre pelo menos dois CLPs, modificando a porta TCP/IP de acordo com os
equipamentos criados no Elipse Modbus Simulator.

53 Consulta
12.5.4 Atualizar
Para atualizar um registro já existente na tabela, deve-se utilizar o comando Update. O registro que deve ser
modificado é o registro selecionado. Para retornar o valor dos campos de um E3Browser, use o método
GetColummValue.
1. Insira na Tela um objeto Consulta e nomeie-o como "ConsultaUpdate".
2. Na aba SQL, habilite a edição direta e altere o comando existente.
UPDATE ConfigEquipamento
SET Porta = <%Porta%>, IP = '<%IP%>'
WHERE Equipamento = '<%Equipamento%>'

3. Deseja-se atualizar a linha selecionada no E3Browser. Para retornar o valor de uma linha do E3Browser, crie o
script a seguir no evento DblClick deste objeto.
Screen.Item("spEquipamento").Value = GetColumnValue(0)
Screen.Item("spPorta").Value = GetColumnValue(1)
Screen.Item("spIP").Value = GetColumnValue(2)

4. No botão Atualizar, adicione o script a seguir no evento Click.


'UPDATE
Screen.Item("ConsultaUpdate").SetVariableValue _
"Equipamento", Screen.Item("spEquipamento").Value
Screen.Item("ConsultaUpdate").SetVariableValue _
"IP", Screen.Item("spIP").Value
Screen.Item("ConsultaUpdate").SetVariableValue _
"Porta", Screen.Item("spPorta").Value
Screen.Item("ConsultaUpdate").Execute(True)

5. Execute a aplicação e teste a nova funcionalidade.

12.5.5 Apagar
Neste exercício, vamos apagar o registro selecionado no E3Browser. Para remover um registro da tabela, use o
comando Delete.
1. Insira na Tela um objeto Consulta e nomeie-o como "ConsultaDelete".
2. Na aba SQL, edite o comando para o código a seguir.
DELETE FROM ConfigEquipamento
WHERE Equipamento = '<%Equipamento%>'

3. No botão Remover, insira o script a seguir.


'Nome do equipamento
clp = Screen.Item("spEquipamento").Value
'Confirmação do usuário
If MsgBox("Deseja realmente remover o equipamento " & _
clp & "?", vbYesNo + vbQuestion) = vbYes Then
Set cs = Screen.Item("ConsultaDelete")
cs.SetVariableValue "Equipamento", Screen.Item("spEquipamento").Value
cs.Execute()
End If

4. Execute a aplicação e teste a nova funcionalidade.

Consulta 54
CAPÍTULO
GetADORecordSet
13
O método GetADORecordSet da Consulta retorna um Recordset do tipo ADO (ActiveX Data Object), resultante da
execução da Consulta configurada.
O objeto ADORecordset é usado para acessar os registros de uma tabela do banco de dados e possui as
propriedades e métodos descritos nas tabelas a seguir.
Propriedades do objeto ADORecordset
NOME DESCRIÇÃO
BOF Retorna Verdadeiro se a posição do ponteiro é anterior
ao primeiro registro

EOF Retorna Verdadeiro se a posição do ponteiro é posterior


ao último registro

RecordCount Retorna o número de registros na tabela

Métodos do objeto ADORecordset


NOME DESCRIÇÃO
MoveFirst Move o ponteiro para o primeiro registro

MoveLast Move o ponteiro para o último registro

MoveNext Move o ponteiro para o próximo registro

MovePrevious Move o ponteiro para o registro anterior

Para acessar registros individualmente, utilize o comando Fields("NomeCampo"). Exemplo:


Set RS = Screen.Item("Consulta1").GetADORecordset()
For i = 1 To RS.RecordCount
Campo1 = RS.Fields("Campo1").Value
Campo2 = RS.Fields("Campo2").Value
Campo3 = RS.Fields("Campo3").Value
MsgBox Campo1 & vbTab & Campo2 & vbTab & Campo3
Next

13.1 Exercícios
Neste exercício, vamos alterar o equipamento acessado através da tabela de equipamentos do Banco de Dados.

13.1.1 GetADORecordSet
1. Na Tela inicial, insira um objeto Consulta (Query) com o nome de "ConsultaEquipamento".
2. Configure a Consulta para acessar a tabela ConfigEquipamento e retornar os campos Equipamento, Porta e IP.
3. Na Tela inicial, adicione um Botão de Comando. No evento Click deste objeto, insira o script a seguir.
Set porta = Application.GetObject("Driver1.[IO.Ethernet.MainPort]")
Set driver = Application.GetObject("Driver1")
'Acessa a tabela ConfigEquipamento
Set cs = Screen.Item("ConsultaEquipamento").GetADORecordset()
'Move o ponteiro para o último registro
cs.MoveLast
'Percorre toda tabela
For i = 1 To cs.RecordCount
equip = cs.Fields("Equipamento").Value & "|" & equip
'Move para o registro anterior
cs.MovePrevious
Next
'Exibe o nome de todos os equipamentos registrados
op = Application.SelectMenu(equip)
'Move para o primeiro registro
cs.MoveFirst
For i = 1 To cs.RecordCount
'Verifica se a linha da tabela contem o nome do CLP selecionado

55 GetADORecordSet
If i = op Then
'Coloca o Driver no modo Offline
driver.Write -1, 0, 0, 4, 0
'Muda a porta TCP/IP
porta.WriteEx cs.Fields("Porta").Value
'Coloca o Driver no modo Online
driver.Write -1, 0, 0, 4, 1
End If
cs.MoveNext
Next

4. Execute a aplicação e teste a nova funcionalidade.

GetADORecordSet 56
CAPÍTULO
Storage
14
O Storage é um módulo historiador do E3 desenvolvido para aperfeiçoar o uso de bancos de dados, permitindo que
uma determinada informação seja armazenada ocupando o menor espaço possível.
Existe todo um conjunto de funcionalidades específicas para este módulo, como consultas pré-construídas e
algoritmos de compactação de dados, entre outros. Através desta ferramenta é possível recuperar com grande
exatidão todas as mudanças nas variáveis de processo, ocupando assim o mínimo de espaço no banco de dados.
O uso do Storage é fortemente recomendado para processos onde o objetivo do registro seja o acompanhamento
de tendências que necessitem manter informações essenciais ao processo. Através de um algoritmo matemático
bastante difundido, o Storage pode fornecer informações relevantes de um determinado processo ocupando menos
espaço em disco do que os dados obtidos por um Histórico gravado periodicamente.
Em processos onde os dados devem ser precisos, como medições usadas para faturamento de insumos (água,
energia ou gás), ou processos onde os dados devem ser integralizados em um período, recomenda-se a utilização de
Históricos convencionais.

14.1 Funcionamento
A gravação no Storage é realizada da seguinte maneira:
· Após a definição da tabela, os dados são gravados de acordo com as configurações. Se houver variação na
qualidade do Tag, os dados também são gravados
· Os dados só não são gravados se a variação ocorreu em um tempo menor do que o tempo mínimo programado

Conforme vão sendo obtidos novos valores para as variáveis, um algoritmo de verificação de gravação interpreta a
sequência e decide se cada ponto é ou não armazenado.
Entretanto, esta verificação só ocorre para os campos analógicos. Para os campos de texto e digitais, basta que haja
uma mudança qualquer de valor ou de qualidade para que sejam gravados.
Para cada tipo de grandeza armazenada, um conjunto de tabelas é gerado automaticamente, um conjunto para os
Tags analógicos, outro conjunto para os Tags de texto e um terceiro conjunto para os Tags digitais. Desta forma,
cada Storage pode gerenciar até sete tabelas (backup), caso seja especificado que os três tipos de Tags devem ser
armazenados.
<NomeTabela>_Fields
<NomeTabela>
<NomeTabela>_Text
<NomeTabela>_Bit
<NomeTabela>_Backup
<NomeTabela>_Text_Backup
<NomeTabela>_Dig_Backup

14.2 Configuração
Quando um Storage é criado em uma Tela, é mostrada uma lista de definições dos campos de gravação, conforme a
figura a seguir.

Campos do Storage
Para efeitos de posterior consulta nos dados, toda a busca é realizada através do caminho do Tag ou da propriedade
que está sendo armazenada (coluna Fonte). A coluna Nome só é utilizada caso a coluna Fonte contenha uma

57 Storage
expressão. Logo, se expressões não são utilizadas na coluna Fonte, não há necessidade de se importar com a coluna
Nome.

14.3 Consultas Internas


A ferramenta Consulta (Query) prevê algumas facilidades para realizar consultas nos dados de um Storage. Ao
configurar uma Consulta, ao invés de exibir as tabelas, há uma árvore com todas as variáveis armazenadas.

Configuração da Consulta
O usuário pode escolher uma dentre as funções descritas nos tópicos a seguir para consolidação dos dados.

14.3.1 LastValue
Retorna o último valor armazenado no banco de dados.

14.3.2 ArchivedValue
Retorna um valor armazenado em relação a um determinado instante de tempo definido na variável TimeStamp. O tipo
de relação pode ser um dos seguintes:
· Previous: Valor armazenado imediatamente anterior à estampa de tempo fornecida
· Next: Valor armazenado imediatamente posterior à estampa de tempo
· Interpolated: Valor calculado a partir dos valores Previous e Next
· ExactTime: Valor armazenado no exato instante fornecido pela estampa de tempo

14.3.3 TagAttribute
Retorna um atributo do Tag, que pode ser um dos seguintes valores:
· FieldDescription: Significado ou descrição do Tag
· FieldSource: Caminho do Tag sendo armazenado
· FieldType: Tipo de dados (Double, Bit, String ou Integer)
· FieldEU: Unidade de engenharia
· FieldLowEng: Limite inferior

Storage 58
· FieldHighEng: Limite superior
· FieldDeadBand: Banda morta para gravação
· FieldDeadBandUnit: Unidade de banda morta (absoluta ou percentagem)
· FieldMinRecTime: Tempo mínimo para gravação
· FieldMaxRecTime: Tempo máximo para gravação
· FieldSize: Tamanho do campo
· FieldVARTYPE: Tipo de dados nativo do campo
· FieldScanTimeMs: Tempo de varredura usado para refazer o gráfico do Tag

14.3.4 CompressedDataNValues
Retorna, para um único Tag, N valores definidos pela variável NumVals, armazenados a partir de um instante inicial,
definido pela variável StartTime.

14.3.5 CompressedDataStartEndTime
Retorna, para um único Tag, os valores armazenados entre intervalos definidos pelas variáveis StartTime e EndTime.

14.3.6 SampledData
Retorna, para um ou mais Tags, os valores interpolados, ou seja, estimados entre instantes definidos pelas variáveis
StartTime e EndTime, a intervalos fixos definidos pela variável TimeInterval.

14.3.7 CalculatedData
Retorna, para um ou mais Tags, o resultado de operações matemáticas aplicadas aos dados entre os instantes
definidos pelas variáveis StartTime e EndTime, a intervalos fixos definidos pela variável TimeInterval. Os tipos de
cálculos são Total, Mínimo, Máximo, Desvio Padrão, Amplitude, Média e Mediana.

59 Storage
CAPÍTULO
Alarmes
15
O E3 dispõe de um conjunto de objetos que permite ao usuário monitorar alarmes em uma aplicação. Com eles, é
possível especificar e gerenciar alarmes e eventos das variáveis de um processo.

15.1 Eventos versus Alarmes


Um Evento, ao ser ativado, é reconhecido automaticamente pelo usuário System e não incrementa o número de
alarmes ativos, nem o número de alarmes não reconhecidos.

15.2 Campos do Usuário


É possível especificar as configurações de bancos de dados e determinar campos para a geração da tabela de
alarmes, e cada campo possui uma propriedade correspondente. Caso o usuário queira inserir mais informações
nesta tabela, na aba Campos do usuário pode-se adicionar valores arbitrários aos eventos de alarmes.

Aba Campos do usuário


As opções disponíveis nesta aba estão descritas na tabela a seguir.
Opções disponíveis na aba Campos do usuário
OPÇÃO DESCRIÇÃO
Nome Determina o nome do campo

Tipo Determina o tipo de dados do campo (String, Integer,


Double ou DateTime)

Tamanho Determina o tamanho do campo

Fonte Determina a fonte de dados do Alarme

Propagar Força a atualização imediata de todos os alarmes que


herdam o valor deste Campo do Usuário, sempre que
este receber um valor forçado ou se a Associação é
alterada

15.3 Assinatura Eletrônica


Para executar uma assinatura eletrônica no E3, utilize o método ESign do Viewer. Quando este método é utilizado, a
caixa de diálogo da figura a seguir é mostrada.

Alarmes 60
Assinatura Eletrônica
ESign(ObjName, [Description], [Action], [From], [To], [User], [Comment])
· ObjName: Texto que contém o nome de um Tag ou outro objeto da aplicação
· Description: Texto que contém a descrição de ObjName. Este parâmetro é opcional e, se omitido, busca os
dados da propriedade DocString de ObjName
· Action: Texto que contém a ação a ser executada (por exemplo, "Alteração do valor"). Este parâmetro é opcional
e o seu valor padrão é uma String vazia
· From: Variant que contém o valor original ou o estado que vai ser alterado. Este parâmetro é opcional
· To: Variant que contém o novo valor do Tag ou o valor a ser aplicado em Action. Este parâmetro é opcional
· User: Texto de retorno. Recebe o nome de login digitado na caixa de diálogo. Este parâmetro é opcional
· Comment: Texto de retorno. Recebe o comentário digitado na caixa de diálogo. Este parâmetro é opcional

Ao clicar em , abre-se uma janela que permite autenticar o usuário. Se a opção Windows é selecionada, os campos
Nome do usuário e Senha são automaticamente desabilitados. Clique em Outro usuário para selecionar um usuário
pertencente ao domínio de rede. Caso a opção E3 seja selecionada, digite as informações de um usuário pertencente
ao Domínio do E3 nos campos Nome do usuário e Senha.

Login integrado
Este método retorna Verdadeiro se o usuário clicar em OK, e se os campos Usuário e Senha são válidos. Se a caixa
de diálogo é cancelada ou se o login ou a senha estiverem errados, após três tentativas o método retorna Falso. Em
caso de falha, os parâmetros User e Comment são configurados para uma String vazia.

61 Alarmes
Os comentários pré-definidos são guardados no Registro do Windows. Apenas os últimos 26 comentários são salvos.
Cada vez que a janela é criada, os últimos comentários são buscados no Registro e usados para preencher a lista de
seleção. Se um novo comentário é informado pelo usuário, ele é salvo e o mais antigo é descartado, caso não haja
posição livre. Se um comentário pré-definido é utilizado, este passa a ser o primeiro da lista de comentários mais
recentes.

15.4 Exercícios
Neste exercício, vamos monitorar o nível dos tanques e, caso esteja fora do valor esperado, gerar um alarme.
Desejamos salvar na tabela de alarmes a descrição do tanque e também o motivo de reconhecimento do alarme.

15.4.1 Servidor de Alarmes


Configuraremos o Servidor de Alarmes para salvar o horário de entrada, saída e reconhecimento do alarme, a
mensagem, o valor, se o alarme está ativo ou já retornou ao estado normal e dois campos de usuário, que
configuraremos mais adiante.
1. Insira um objeto Servidor de Alarmes no projeto.
2. Abra a janela de propriedades do Servidor de Alarmes e configure-o para salvar as informações no objeto
BancoDados1. Mantenha o nome da tabela como "Alarms".
3. Selecione os campos mostrados na figura a seguir e mais os que desejar.

Campos da tabela de alarmes

15.4.2 Configuração de Alarmes


Todo tanque deve ter um alarme monitorando a informação de nível.
1. Insira nas instâncias do XFolder XF_MedidaAnalogica (Nivel) um Alarme Analógico.

Alarmes 62
Alarme Analógico

NOTA
Ao criar este Alarme, automaticamente a propriedade Fonte é configurada para monitorar a propriedade Value do
objeto Nivel, conforme a figura a seguir.

Fonte dos dados do Alarme Analógico


2. Configure os níveis e mensagens do Alarme Analógico como desejar.

63 Alarmes
Configuração do Alarme Analógico
3. No objeto Nivel, modifique a propriedade IsAlarmArea para o valor True.
4. Repita os procedimentos anteriores para todos os objetos Nivel. Pode-se arrastar o Alarme criado para outro
objeto Nivel com a tecla CTRL pressionada, de forma a copiar o Alarme.

NOTA
Não esqueça de configurar a propriedade IsAlarmArea de todos os objetos Nivel para o valor True.

Toda bomba deve sinalizar quando foi ligada ou desligada.


1. Insira no XObject XO_Bomba um objeto Configuração de Alarmes.
2. No objeto ConfigAlarmes, insira uma nova Área com o nome de "Bombas".
3. Na Área Bombas, insira um Alarme Digital para a propriedade XO_Bomba.Velocidade.

Alarme Digital
4. Na aba Digital deste Alarme, configure a opção Valor para 2 (dois) e as mensagens do Alarme como desejar.

Alarmes 64
Configuração do Alarme Digital

NOTA
Para modificar a opção Valor para 2 (dois), modifique o tipo de dados desta opção para Integer.

15.4.3 XC_Bomba
Sempre que a velocidade de rotação da bomba estiver alta, vamos sinalizar para a operação através de uma imagem
na Tela.
1. No XControl XC_Bomba, adicione a imagem Alarme, inserida como Recurso na galeria de imagens.

Figura Alarme
2. Na propriedade Visible da figura Alarme, insira uma Associação Simples com a expressão a seguir.

65 Alarmes
Associação Simples

NOTA
Trabalhe com os comandos Copiar (CTRL + C) e Colar (CTRL + V). Para editar uma Associação criada anteriormente,
use a tecla F2.

15.4.4 Campos do Usuário


Por padrão, pode-se incluir na tabela de alarmes até quatro campos de usuários, podendo ser adicionados mais
campos a partir do Servidor de Alarmes. Usaremos o Campo de Usuário 1 (UserField1) para salvar a descrição dos
objetos tanque e bomba e o Campo de Usuário 2 (UserField2) para inserir o motivo do reconhecimento do alarme.

15.4.4.1 Tanques
1. No objeto Nivel de TQ1, abra a Janela de Propriedades e, na aba Área de Alarmes, configure o campo
UserField1 para salvar o nome do objeto Tanque.

Fonte do Campo do Usuário


2. Repita o procedimento para todos os outros objetos Nivel da Pasta Tanques.

15.4.4.2 Bombas
1. Abra a Janela de Propriedades da Área Bombas do XObject XO_Bomba e configure o campo UserField1 (aba
Área de Alarmes) para salvar o nome da bomba (propriedade Name).

Alarmes 66
Fonte do Campo do Usuário

15.4.4.3 Motivo do Reconhecimento


1. Para justificar o motivo de reconhecimento de um Alarme, insira na Pasta Dados um Tag Interno chamado
“MotivoReconhecimento”.

Tag Interno
2. Abra a Janela de Propriedades do Servidor de Alarmes e configure o campo UserField2 (aba Campos do
Usuário) para salvar o motivo de reconhecimento do Alarme.

67 Alarmes
Servidor de Alarmes

15.4.5 E3Alarm
1. Na parte inferior da TelaInicial, insira um objeto E3Alarm.
2. Configure a coluna Servidor de Alarmes da Conexão padrão (aba Conexões) com o Servidor de Alarmes criado
anteriormente.
3. Selecione as colunas e cores de sua preferência. Não se esqueça de selecionar o Campo de Usuário 1 (UserField1)
e o Campo de Usuário 2 (UserField2).

Vamos configurar uma opção de filtro através de uma Lista de Seleção. Caso seja selecionado o item Todos, não deve
haver filtro. Caso contrário, deve exibir apenas a Área selecionada na Lista de Seleção.
1. Insira, ao lado do objeto E3Alarm, uma Lista de Seleção (Combo Box) e altere seu nome para "cbFiltroAlarme".
2. No evento OnStartRunning, insira o script a seguir para preencher a Lista de Seleção.
'Limpar a lista
Clear()
'Adicionar itens
AddItem "Todos"
AddItem "Nivel"
AddItem "Bomba"

3. No E3Alarm, crie uma Associação Múltipla no campo AreaFilter com a expressão 'TelaInicial.cbFiltroAlarme.Value
= "Todos"'.
4. Adicione duas linhas na Associação Múltipla. Para o valor 0 (zero), o filtro deve receber o valor da Lista de
Seleção. Para o valor -1 (menos um), deve receber uma String vazia.

Alarmes 68
Associação Múltipla
5. Teste a nova funcionalidade.

15.4.6 Assinatura Eletrônica


Para reconhecer um Alarme, é necessário informar um usuário válido e o motivo do reconhecimento.
1. Insira um Botão de Comando próximo ao E3Alarm para reconhecer o Alarme selecionado.
2. No evento Click deste Botão de Comando, insira o script a seguir.
Set alarme = Screen.Item("E3Alarm1").GetFocusedEvent()
ObjName = alarme.AlarmSourceName
Description = alarme.Message
Action = "Reconhecimento de alarme"
If Application.ESign(ObjName, Description, Action, "", "",_
Usuario, Comentario) Then
'Motivo do reconhecimento
Application.GetObject("Dados.MotivoReconhecimento").Value = Comentario
'Reconhece o alarme
Screen.Item("E3Alarm1").AckSelected(Usuario)
'Limpa o motivo
Application.GetObject("Dados.MotivoReconhecimento").Value = ""
End If

3. Execute a aplicação e teste a nova funcionalidade.

15.4.7 E3Browser
Os Alarmes gravados na tabela de alarmes são visualizados em um E3Browser. Para separar os tipos de informação
(entrada, reconhecimento e saída do Alarme), mudaremos a cor do texto da linha.
1. Insira uma nova Tela, chamada "TelaAlarmes", com o tamanho de 500 por 500 pixels.
2. Insira um E3Browser nesta Tela.
3. Configure o E3Browser para exibir a tabela Alarms. Selecione os campos ConditionActive, InTime, OutTime e
AckTime e mais os campos de sua preferência.
4. Para colorir o E3Browser simulando o E3Alarm, no evento OnDrawRow insira o script a seguir.
ConditionActive = GetColumnValue(0)
InTime = GetColumnValue(1)
OutTime = GetColumnValue(2)
AckTime = GetColumnValue(3)
'Alarme ativo
If ConditionActive = 1 Then
'Entrada de alarme ou reconhecimento
If AckTime = "00:00:00" Then 'Entrada
RowTextColor = vbRed
Else 'Reconhecimento
RowTextColor = vbBlue
End If
Else

69 Alarmes
'Saída de alarme ou reconhecimento
If AckTime = "00:00:00" Then 'Saída
RowTextColor = vbMagenta
Else 'Reconhecimento
RowTextColor = vbBlack
End If
End If

5. Insira na TelaInicial um Botão de Comando para abrir a TelaAlarmes.

Alarmes 70
CAPÍTULO
Relatórios
16
O Relatório é um componente ActiveX chamado ActiveReport, que permite a visualização e impressão de valores
instantâneos de variáveis do sistema e dados armazenados em bancos de dados (Alarmes, Históricos, Consultas e
Fórmulas). Para utilizar o Relatório, clique com o botão direito do mouse no item Visualização - Relatórios do
Organizer, em modo Domínio, selecione a opção Inserir Relatório em e em seguida o nome do projeto desejado.
O Relatório também utiliza o objeto Consulta. Este objeto permite que seja especificada a origem dos dados do
banco de dados que são visualizados no Relatório.
Um Relatório contém várias Seções. Cada Seção do Relatório contém um grupo de controles que são processados e
impressos ao mesmo tempo, como uma unidade.

16.1 Group Header e Footer


Um Relatório pode ter múltiplos Grupos. Cada Grupo possui uma Seção Header e uma Seção Footer. A Seção Header
imprime antes de qualquer Seção Detail no Grupo. A Seção Footer imprime depois da Seção Detail do Grupo.
Através do Group Footer vamos mostrar as estatísticas de cada Grupo, separadas por colunas:
· Soma de todos os dados
· Valores máximo e mínimo armazenados
· Média

16.2 Exercícios
16.2.1 Relatório
1. Insira um Relatório no projeto, chamado "RelatorioAlarmes".
2. Clique com o botão direito do mouse no objeto Consulta1 do Relatório e selecione a opção Configurar.
3. Selecione o Banco de Dados e, na sequência, a tabela Alarms.
4. Selecione o campo E3TimeStamp e mais os campos que desejar.
5. Para cada campo selecionado na Consulta, insira um Campo de Dados na Seção Detail e configure sua
propriedade DataField.
6. Finalize o design do Relatório conforme sua preferência.

16.2.2 Group Header e Footer


1. Clique com o botão direito do mouse no fundo do Relatório e selecione a opção Insert - Group Header/Footer.
Esta opção insere um novo Grupo no Relatório.

Inserir Group Header ou Footer


2. Na propriedade DataField do GroupHeader1, escreva a expressão ou campo pelo qual deseja agrupar os dados.
Nossos dados vão ser agrupados por minuto.

71 Relatórios
Inserir expressão em um Campo
3. Copie o campo E3TimeStamp da Seção Detail para a Seção GroupFooter1.
4. Para calcular o número de registros no minuto modifique, no Campo de Dados E3TimeStamp no GroupFooter1,
as propriedades conforme a figura a seguir.

Propriedades de E3TimeStamp
5. À frente do Campo de Dados, insira um texto fixo com a expressão "Número de alarmes no minuto".

16.2.3 Imprimir
1. Na TelaAlarmes, insira um Botão de Comando e altere a propriedade Caption para "Imprimir".
2. Insira um Pick do tipo Imprimir Relatório e selecione o RelatorioAlarmes para ser impresso na Tela.

16.2.4 Exportar
Para que o usuário selecione o nome e o diretório do arquivo que vai ser gerado, vamos abrir uma caixa de diálogo.
1. Na TelaAlarmes, insira um Botão de Comando e altere a propriedade Caption para "Exportar".
2. Crie o script a seguir.

Relatórios 72
'Exportar
If Application.ShowFilePicker(False, NomeArquivo,"pdf", _
128, "Arquivos PDF|*.pdf|Todos os arquivos|*.*") Then
Set Report = Application.LoadReport("RelatorioAlarmes")
Report.Export "PDF", NomeArquivo
End If

3. Com o auxílio do AppBrowser, selecione o método ShowFilePicker do Viewer.


Application.ShowFilePicker(Open, FileName, Extension, Flags, Filter)

4. Como desejamos salvar um arquivo, substitua o parâmetro Open por "False".


5. O parâmetro FileName deve ser uma variável interna de script, que armazena o nome do arquivo. Substitua-o por
"NomeArquivo".
6. Caso não seja informada a extensão do arquivo, considera-se como padrão o que for informado no parâmetro
Extension. Digite "pdf".
7. Para que uma mensagem de confirmação apareça para o usuário caso o arquivo já exista, altere o parâmetro
Flags para "128".
8. As caixas de diálogo de arquivos permitem filtros para facilitar a busca por tipos de arquivos.

Filtro de arquivos
9. O filtro é sempre um par de Strings separadas por uma barra vertical (o caractere "|"), em que o primeiro item é
o nome que aparece para o usuário e o segundo é uma identificação para o sistema operacional.
10. Substitua o parâmetro Filter pela expressão "Arquivos PDF|*pdf|Todos os arquivos|*.*".
11. O arquivo só pode ser gerado se o usuário clicar em Salvar. Se o usuário cancelar a ação, nada deve acontecer.
No início do comando ShowFilePicker, digite "If" e ao final digite "Then".
12. Para exportar o Relatório, selecione no AppBrowser o item Tarefas - Carregar relatório - RelatorioAlarmes e, à
direita, o método Export.
Set Report = Application.LoadReport("RelatorioAlarmes")
Report.Export([ExportFilter], [ExportFileName])

13. Substitua o parâmetro ExportFilter por "PDF" e o parâmetro ExportFileName pela variável NomeArquivo, criada
anteriormente.
14. Teste a nova funcionalidade da aplicação.

73 Relatórios
CAPÍTULO
WebViewer
17
O WebViewer é um componente ActiveX que permite ao navegador comportar-se como o E3 Viewer, visualizando e
controlando aplicações E3 via Internet. Desta forma, é possível visualizar e interagir com um processo de chão de
fábrica através do Internet Explorer, que pode estar em qualquer computador da rede que tenha acesso ao E3 Server.
Depois de instalado, o WebViewer funciona exatamente como o E3 Viewer, executando o download da aplicação
(Telas, bitmaps, etc.) para a máquina local. Todas as funcionalidades do E3 Viewer (E3Chart, E3Alarm, etc.) são
suportadas pelo WebViewer.

17.1 Aplicações E3 na Web


Para que aplicações E3 estejam disponíveis na web, é preciso utilizar um servidor de Internet que execute corretamente
os scripts da página do controle WebViewer. Qualquer servidor de Internet pode ser utilizado, desde que execute
páginas ASP (Active Server Pages).

17.1.1 IIS (Internet Information Services)


Um servidor de Internet fornecido juntamente com o Windows é o servidor IIS (Internet Information Services). Para
instalar o IIS no Windows 7 SP1, Windows 8, Windows 8.1 e Windows 10, execute os passos a seguir, utilizando uma
conta com direitos de administrador:
1. Abra o menu Iniciar - Painel de Controle (Start - Control Panel) no Windows 7 SP1, ou abra o item Aplicativos -
Sistema do Windows - Painel de Controle (Apps - Windows System - Control Panel) na tela Inicial do Windows 8 e
Windows 8.1. No Windows 10, clique com o botão direito do mouse no menu Iniciar (Start) e selecione o item
Painel de Controle (Control Panel).
2. Clique em Programas e Recursos (Programs and Features).
3. Clique em Ativar ou desativar recursos do Windows (Turn Windows features on or off).
4. Localize na lista o item Serviços de Informações da Internet (Internet Information Services) e clique em para
expandir todos os seus subitens.

Recursos do Windows
5. Selecione, no mínimo, as opções a seguir e clique em OK.
· Ferramentas de Gerenciamento da Web (Web Management Tools)
· Console de Gerenciamento do IIS (IIS Management Console)
· Scripts e Ferramentas de Gerenciamento do IIS (IIS Management Scripts and Tools)
· Serviço de Gerenciamento do IIS (IIS Management Service)

WebViewer 74
· Serviços da World Wide Web (World Wide Web Services)
· Recursos de Desenvolvimento de Aplicativos (Application Development Features)
· ASP
· Extensões ISAPI (ISAPI Extensions)
· Filtros ISAPI (ISAPI Filters)
· Recursos Http Comuns (Common Http Features)
· Conteúdo Estático (Static Content)
· Documento Padrão (Default Document)
· Redirecionamento de HTTP (HTTP Redirection)
· Segurança (Security)
· Autenticação Básica (Basic Authentication)
· Filtragem de Solicitações (Request Filtering)

6. O sistema inicia a instalação do software. Aguarde a finalização do processo para configurar o sistema.

17.1.2 Arquivos Web


Após a instalação do IIS, todos os arquivos da pasta c:\arquivos de programas\elipse e3\web devem ser copiados
para c:\inetpub\wwwroot. Esta pasta é criada na instalação do IIS. Além destes arquivos, o instalador do WebViewer
(e3webviewer-x86-ptb.exe) também deve ser copiado para esta mesma pasta. Este arquivo pode ser obtido através
de download no site da Elipse Software. Um detalhe muito importante é que a versão destes instaladores deve ser
exatamente a mesma versão do E3 Server.
Qualquer usuário, desde que esteja devidamente autorizado pelas políticas de segurança e acesso da empresa, pode
visualizar e controlar uma aplicação E3 na Internet através do Internet Explorer. Alguns requisitos básicos são
necessários:
· Computador com Windows 7 SP1 ou superior
· Internet Explorer 8.0 ou superior
· Acesso à Internet

O servidor verifica se o cliente tem um WebViewer instalado e atualizado. Se não existir, o pacote do WebViewer é
enviado para instalação no cliente.

Aviso de Segurança
Quando o usuário confirmar o aviso de segurança, o plug-in é instalado. O componente é assinado pela Elipse
Software, e o usuário deve aceitar sua instalação para que se iniciem as configurações necessárias.
No acesso seguinte não é mais necessário instalar os componentes, e o tempo de conexão é mais rápido.

75 WebViewer
17.2 Arquivos E3Web.asp e DocWrite.asp
Os arquivos E3Web.asp e DocWrite.asp têm a função de carregar e iniciar o ActiveX E3Downloader. O arquivo
e3downloader.cab é o ActiveX que é enviado para a máquina cliente e executa a instalação do arquivo e3webviewer-
x86-ptb.exe. Os arquivos e3web2.asp e docwrite2.asp têm a função de carregar e iniciar o ActiveX do WebViewer que
mostra a aplicação sendo executada na máquina do Internet Explorer. Todos estão disponíveis para configuração do
usuário. Estes arquivos estão localizados no diretório onde o E3 foi instalado, na pasta web.
A página docwrite2.asp vem configurada considerando-se que o E3 Server está executando no mesmo computador
que o servidor web. Porém, é possível alterar o código fonte desta página para atender a configuração desejada. Para
mais informações, consulte o Manual do Usuário do E3. É possível editar o arquivo docwrite2.asp incluindo algumas
configurações. Caso se queira permitir ao usuário informar uma Tela inicial válida, diferente da configurada no
Domínio, deve-se alterar a linha a seguir, colocando em Nome_da_tela um nome de Tela válido na aplicação.
<param name="Screen" value="Nome_da_tela">

Caso se queira informar a necessidade de se executar o comando ping para o servidor antes de tentar a conexão,
deve-se alterar a linha a seguir. O valor pode ser True ou False.
<param name="Ping" value="True">

Se esta linha é omitida, o comando ping é executado.


Para especificar um diretório para a gravação do cache do E3 Viewer, deve-se alterar o parâmetro CachePath no
arquivo docwrite2.asp. Se este parâmetro não é especificado, é usado o diretório temporário do sistema (variável de
ambiente TEMP). Exemplo:
<param name="CachePath" value="diretorio_para_cache">

Caso seja preciso que o WebViewer procure por outros servidores na rede se não conseguir conectar ao servidor
especificado no parâmetro Domain, deve-se alterar o parâmetro UseServers no arquivo docwrite2.asp. Se o parâmetro
não é informado, o WebViewer tenta se conectar apenas ao servidor especificado no parâmetro Domain, que é o
comportamento padrão do WebViewer (valor "True"). A alteração do valor para "False" só funciona para servidores e
WebViewers que estejam na mesma rede. Exemplo:
<param name="UseServers" value="False">

A configuração do WebViewer para abrir no modo Somente Leitura é realizada através do parâmetro StartReadOnly.
<param name="StartReadOnly" value="False">

Em ambos os casos, esta configuração só tem efeito na abertura do WebViewer. Se o parâmetro é mudado durante
a execução, a conexão ou reconexão do WebViewer não é afetada.
Para se navegar para uma página diferente do padrão após o carregamento do WebViewer, deve-se modificar o
atributo value do parâmetro URLToLoad do arquivo docwrite.asp para o endereço desejado. Exemplo:
<param name="URLToLoad" value="URL">

Se esta linha é omitida, a página e3web2.asp é carregada.


Para especificar se o instalador do WebViewer deve ou não instalar o ActiveX Control Pad (MS Forms), deve-se
modificar o parâmetro InstallACP do arquivo docwrite.asp com os valores "True" ou "False", respectivamente. Se este
item não existir, o valor assumido é "True" (o ActiveX Control Pad é instalado). Exemplo:
<param name="InstallACP" value="True">

NOTA
Caso o parâmetro InstallACP esteja configurado com o valor "False", as Telas da aplicação que utilizem MS Forms
podem apresentar erros durante o carregamento, se os objetos MS Forms não tenham sido previamente instalados
por outros aplicativos, como por exemplo o Microsoft Office.

17.3 Configurando o Internet Information Services


São necessárias algumas configurações no IIS para que a aplicação E3 possa ser acessada via web. Antes de tudo,
deve-se liberar o acesso à porta TCP/IP 6515 (porta utilizada pelo E3 para comunicação com o WebViewer), e
também a porta TCP/IP padrão do IIS, normalmente a 80.
Existem duas configurações possíveis para a organização dos servidores E3 e IIS, o E3 Server e o IIS no mesmo
servidor ou em servidores distintos. Neste Tutorial é abordada apenas a primeira opção. Informações detalhadas

WebViewer 76
sobre este assunto podem ser obtidas no artigo Publicando aplicações E3 na Internet com o Microsoft Internet
Information Services do Elipse Knowledgebase.

E3 Server e IIS no mesmo servidor

17.3.1 Windows 7 SP1


No Windows 7 SP1, siga estes procedimentos:
1. Abra o menu Iniciar - Painel de Controle - Ferramentas Administrativas (Start - Control Panel - Administrative
Tools).
2. Abra o item Gerenciador do Serviços de Informações da Internet (IIS) (Internet Information Services (IIS) Manager).
3. Selecione o item Site da Web Padrão (Default Web Site) no painel Conexões (Connections) e selecione a opção
Documento Padrão (Add Virtual Directory) no quadro central.

Documento padrão
4. Clique em Abrir Recurso (Open Feature) e em Adicionar (Add) no painel Ações (Actions), digite "e3web.asp" no
campo Nome (Name) e clique em OK.

77 WebViewer
Adicionar documento padrão
5. Após estes procedimentos, o computador cliente pode acessar o servidor web utilizando o Internet Explorer.

17.3.2 Windows 8 e Windows 8.1


No Windows 8 e Windows 8.1, siga estes procedimentos:
1. Na tela Inicial, abra o item Aplicativos - Sistema do Windows - Painel de Controle - Ferramentas
Administrativas (Apps - Windows System - Control Panel - Administrative Tools).
2. Abra o item Gerenciador do Serviços de Informações da Internet (IIS) (Internet Information Services (IIS) Manager).
3. Selecione o item Site da Web Padrão (Default Web Site) no painel Conexões (Connections) e selecione a opção
Documento Padrão (Default Document) no quadro central.

WebViewer 78
Documento padrão
4. Clique em Abrir Recurso (Open Feature) e em Adicionar (Add) no painel Ações (Actions), digite "e3web.asp" no
campo Nome (Name) e clique em OK.

79 WebViewer
Adicionar documento padrão
5. Após estes procedimentos, o computador cliente pode acessar o servidor web utilizando o Internet Explorer.

17.3.3 Windows 10
No Windows 10, siga estes procedimentos:
1. Clique com o botão direito do mouse no menu Iniciar (Start).
2. Clique em Painel de Controle (Control Panel).
3. Clique em Ferramentas Administrativas (Administrative Tools).
4. Abra o item Gerenciador do Serviços de Informações da Internet (Internet Information Services (IIS) Manager).
5. Selecione o item Site da Web Padrão (Default Web Site) no painel Conexões (Connections) e selecione a opção
Documento Padrão (Default Document) no quadro central.

WebViewer 80
Documento padrão
6. Clique em Abrir Recurso (Open Feature) e em Adicionar (Add) no painel Ações (Actions), digite "e3web.asp" no
campo Nome (Name) e clique em OK.

Adicionar documento padrão


7. Após estes procedimentos, o computador cliente pode acessar o servidor web utilizando o Internet Explorer.

17.4 Licenças
Deve-se considerar o número de licenças para acesso, pois cada WebViewer conectado consome uma licença de E3
Viewer como se estivesse fora do Internet Explorer. Sempre que necessário, podem ser adquiridas novas licenças de
E3 Viewer, possibilitando um maior número de acessos simultâneos.

81 WebViewer
17.5 Exercícios
1. Siga o conteúdo do capítulo e publique uma aplicação E3 na Internet.

17.6 Exercícios Complementares


17.6.1 Restrições de IP e Número de Acessos
Com este recurso é possível bloquear totalmente a conexão, ou ainda limitar a quantidade e o tipo de licenças usadas
simultaneamente para um determinado grupo de endereços IP.
1. Para acessar os grupos de E3 Viewers, clique com o botão direito do mouse no ícone do E3 Admin na Área de
Notificação do Windows e selecione o item Domínio - Opções.

Opção Domínio - Opções


2. Clique na aba Grupos de Viewers e configure os grupos que desejar.

Aba Grupos de Viewers

WebViewer 82
17.6.2 KB
· KB-32109: Licença para WebViewer

83 WebViewer
CAPÍTULO
Event Log Viewer
18
O Elipse Event Log Viewer é um sistema de logs desenvolvido pela Elipse Software. Os processos do E3 usam um
formato binário para gravação de eventos, disponível para sistemas operacionais Windows XP SP3 ou superiores e,
para sistemas anteriores, os logs são gravados em arquivos de texto.
Os arquivos são armazenados em formato estruturado que permite uma série de funcionalidades como filtros,
gravação de mensagens binárias, ordenamento e pesquisa.
O Event Log Viewer é um controle ActiveX que pode ser integrado ao E3, para que seja possível o acompanhamento
dos processos do E3 de dentro da aplicação e possui um serviço de controle e gerenciamento de arquivos pelo
sistema, que garante a manutenção de um tamanho máximo de arquivos em disco sem esgotamento do espaço
disponível.
Para utilizar o Event Log Viewer, selecione o menu Ferramentas - Log Viewer no E3 Studio ou clique com o botão
direito do mouse no ícone do E3 Admin na Área de Notificações do Windows e selecione o menu Atalhos - Log
Viewer.

18.1 Configuração do Armazenamento de Arquivos


Através da opção Storage Settings, é possível configurar o gerenciamento automático dos arquivos .etl ou .log
gravados pelo E3. Com esta opção é possível gerenciar onde os arquivos de log são armazenados, o tamanho
máximo do repositório e o tempo que cada arquivo permanece no repositório (com base na data de criação do
arquivo). Selecione o menu View - Storage Settings, ou clique em Storage Settings na barra de ferramentas.

Janela Storage Settings

18.2 Abertura de Arquivos


Os arquivos de log com extensão .etl podem ser abertos no Event Log Viewer de três formas:
· Através do menu File - Open
· Clicando em Open Event File na barra de ferramentas
· Arrastando o arquivo até a janela do Event Log Viewer

Event Log Viewer 84


Janela de visualização de eventos
Na área de visualização de eventos, os arquivos são ordenados cronologicamente, um evento por linha.

18.3 Merge de Eventos


Com o Event Log Viewer, também é possível abrir mais de um arquivo ao mesmo tempo e mesclar suas informações
como se fosse um único arquivo. Os eventos são ordenados cronologicamente, de modo a permitir a análise de
eventos de causa e consequência entre máquinas diferentes ou entre arquivos diferentes. Clique em Merge Event
Files ou use o menu File - Merge Event Files e selecione os arquivos que deseja mesclar clicando em Add file.

Janela Merge Files

18.4 Filtros
Esta seção contém informações sobre a filtragem de eventos no Event Log Viewer.

85 Event Log Viewer


18.4.1 Filtro de Mensagens
O Filtro de Mensagens permite restringir o intervalo dos eventos através da seleção do tipo de mensagem a ser
mostrado. Para acessar esta opção, selecione o menu Actions - Filter Editor ou clique em Filter Editor e clique na
aba By Message.

Janela Filtro de Mensagem


Ao clicar em Help, é mostrada uma janela com a sintaxe correta para cada palavra chave válida. Quando mais de um
valor é usado em uma palavra-chave, é necessário separá-los com uma vírgula. A ordem de avaliação dos scripts de
filtro é dada por um OR entre palavras chave e um AND entre linhas. Exemplo:
Process == (0xC48,0x9C8);
Module == ("MANAGER______");

Isto significa que apenas são exibidos eventos que satisfaçam à equação lógica a seguir.
(Process == 0xC48 OR 0x9C8) AND Module == MANAGER______

Para ligar o filtro, use a opção correspondente na barra de ferramentas.

18.4.2 Filtro de Tempo


O Filtro de Tempo permite restringir o intervalo das mensagens através da seleção de data e hora iniciais e finais a
serem mostradas. Para acessar esta opção, selecione o menu Actions - Filter Editor ou clique em Filter Editor e
clique na aba By Time. No filtro por tempo, a hora inicial é incluída, mas a final é excluída.

Event Log Viewer 86


Janela Filtro de Tempo

18.5 Exercícios
1. Abra o Event Log Viewer.
2. Selecione o arquivo com a data atual para ser visualizado.
3. Realize testes de filtros por mensagem e por tempo.

87 Event Log Viewer


CAPÍTULO
E3 Tweak
19
O E3 Tweak é uma pequena e simples ferramenta de configuração avançada para o E3, que está presente a partir da
versão 3.1. A grande finalidade é introduzir uma interface gráfica para todas aquelas configurações que até então só
poderiam ser realizadas através do Editor do Registro do Windows.
O E3 Tweak é apresentado em uma janela com itens de configuração dispostos em uma estrutura de árvore. Os itens
são classificados conforme a área na qual suas configurações atuam: E3 Server, E3Run, REC, Logs e Filtro COM.

19.1 Configurações do E3 Server


Definir um Número de Tentativas de Leitura da Hardkey
Um E3 Server executa um certo número de tentativas de leitura do dispositivo de proteção. Se esta leitura não é bem-
sucedida, o E3 inicia em modo Demo.

Desabilitar Múltiplas CPUs


No caso de computadores bi-processados, é possível configurar o E3 Server para utilizar apenas a primeira ou todas
as CPUs disponíveis no sistema.

Definir o Time-out para o Ping


É possível forçar o E3 Server a detectar rapidamente desconexões de E3 Viewers remotos, interrompendo o acúmulo
de dados a enviar para o E3 Viewer.

Configurar o Heartbeat da Licença


Durante a conexão da licença do servidor com o E3 Viewer é aplicado por padrão um keep-alive (ou heartbeat). Se o
E3 Viewer passar algum tempo sem responder, sua conexão é desfeita automaticamente.

Configurar a Porta TCP/IP Utilizada pelo REC


É possível configurar o número da porta TCP/IP usada pelo protocolo REC. Valores entre 1024 e 65535 podem ser
usados. Valores iguais ou abaixo de 1024 são reservados. Valores nulos ou inválidos habilitam a utilização da porta
6515.

Definir Timeout para o Fim do E3Run


É possível especificar um tempo máximo, em milissegundos, para encerrar o E3Run.

19.2 Configurações do E3Run


Ocultar a Janela de Progresso
É possível optar entre exibir ou ocultar a janela de progresso do E3Run.

Definir Tamanho da Pilha da Thread de Runtime


O E3 Server armazena as chamadas de funções em uma estrutura temporária em tempo de execução chamada de
Pilha da Thread e, conforme as funções vão sendo processadas, são retiradas desta pilha. Embora não seja
recomendado, o tamanho desta pilha pode ser ajustado.

19.3 Configurações do REC


Definir o Nível de Compressão
É possível habilitar a compactação de pacotes de comunicação usando o protocolo REC entre o E3 Server, o E3
Viewer e o E3 Studio.

Definir o Time-out da Conexão


Para situações em que um E3 Server está iniciando e a detecção do dispositivo de proteção é lenta, pode-se controlar
o tempo máximo que o E3 Studio ou o E3 Admin levam para conectar ao E3 Server.

E3 Tweak 88
19.4 Configurações dos Logs
Definir o Tempo Mínimo da Função de Gravar Logs
É possível definir o tempo mínimo para logar uma função nos logs Full (funções que durarem menos que este tempo
não são logadas).

Definir o Tempo para Avisos de Funções Travadas


É possível definir o tempo, em milissegundos, que uma função deve estar executando para que seja gerado um aviso
(EcoLogWarning) de que a função provavelmente está trancada.

Habilitar ou Desabilitar as Seções de Logs


É possível definir quais seções de log são habilitadas. As seções podem ser subdivididas em módulos, e cada módulo
pode ser habilitado separadamente.

19.5 Configurações do Filtro COM


Habilitar o Filtro
O E3Run implementa um filtro de chamadas COM (Component Object Model) visando evitar chamadas reentrantes. Este
filtro por padrão está desabilitado e habilitá-lo só é recomendado em sistemas que apresentarem erros ou
travamentos aparentemente sem causa.

19.6 Exercícios
1. Altere o número de retentativas de leitura do dispositivo de proteção para 10 retentativas.

89 E3 Tweak
CAPÍTULO
Preparatório para a Certificação
20
Leituras recomendadas:
· Como o E3 funciona
· Noções de VBScript no Software E3: Introdução
· Usando Bibliotecas no E3: Introdução
· Usando o E3 Viewer no E3: Introdução
· Usando Bancos de dados no E3: Introdução

Seguem alguns exercícios para estudar para a prova de certificação:


1. Utilizando os recursos gráficos do E3 (círculo, retângulo, linhas, etc.), crie um velocímetro.
2. Crie uma aplicação com um gráfico. Ao entrar na Tela, o gráfico deve exibir os últimos 20 minutos.
3. Exporte um relatório gráfico para o formato PDF.
4. Insira uma Caixa de Seleção na Tela que lista o nome de todos os Tags Demo da pasta Dados. Ao selecionar um
Tag na lista, um Display deve ser criado em tempo de execução e associado ao Tag selecionado.

Preparatório para a Certificação 90


Anotações
A

Anotações
Anotações
Matriz Filial em São Paulo
Rua Mostardeiro, 322/902 Rua dos Pinheiros, 870/Cj. 141 e 142
90430-000 — Porto Alegre — RS 05422-001 — São Paulo — SP
Fone: (+55 51) 3346-4699 Fone: (+55 11) 3061-2828
Fax: (+55 51) 3222-6226 Fax: (+55 11) 3086-2338
E-mail: [email protected] E-mail: [email protected]

Filial no Paraná Filial em Minas Gerais


Av. Sete de Setembro, 4698/1708 Rua Antônio de Albuquerque, 156/705
80240-000 — Curitiba — PR 30112-010 — Belo Horizonte — MG
Fone: (+55 41) 4062-5824 Fone: (+55 31) 4062-5824
E-mail: [email protected] E-mail: [email protected]

Filial no Rio de Janeiro Taiwan


Av. José Silva de A. Neto, 200/Bl. 4/Sl. 109B 9F., No.12, Beiping 2nd St., Sanmin Dist.
22775-056 — Rio de Janeiro — RJ 807 — Kaohsiung City — Taiwan
Fone Comercial: (+55 21) 2430-5912 Fone: (+886 7) 323-8468
Suporte Técnico: (+55 21) 2430-5963 Fax: (+886 7) 323-9656
E-mail: [email protected] E-mail: [email protected]

Consulte nosso website para informações sobre o representante do seu estado.

www.elipse.com.br
kb.elipse.com.br
forum.elipse.com.br
www.youtube.com/elipsesoftware
[email protected]

Gartner, Cool Vendors in Brazil 2014, April 2014.


Gartner does not endorse any vendor, product or service depicted in its
research publications, and does not advise technology users to select only
those vendors with the highest ratings. Gartner research publications
consist of the opinions of Gartner’s research organization and should not
be construed as statements of fact. Gartner disclaims all warranties,
expressed or implied, with respect to this research, including any warranties
of merchantability of fitness for a particular purpose.

Você também pode gostar