Você está na página 1de 158

Tutorial do Elipse Power HMI

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


Versão 4.8.338 (06/03/2018)
Sumário
1 Apresentação ................................................................................................................................................ 1
1.1 O Treinamento ......................................................................................................................................... 1
2 Iniciando a Aplicação .................................................................................................................................. 2
2.1 Arquivos .................................................................................................................................................. 2
2.2 Elipse Power Studio ............................................................................................................................... 3
2.3 Execução de um Domínio ..................................................................................................................... 4
2.4 Exercícios ................................................................................................................................................ 4
3 Modelador Elétrico ...................................................................................................................................... 8
3.1 Cores de Tensão ...................................................................................................................................... 8
3.2 Exercícios ................................................................................................................................................ 8
4 Diagrama de Operação ............................................................................................................................. 21
4.1 Bibliotecas Elipse Power ....................................................................................................................... 21
4.2 Telas ....................................................................................................................................................... 21
4.3 Proporção ............................................................................................................................................. 22
4.4 Exercícios .............................................................................................................................................. 22
5 Estrutura de Telas ...................................................................................................................................... 25
5.1 Exercícios ............................................................................................................................................... 25
6 Estrutura de Dados .................................................................................................................................... 30
6.1 Exercícios ............................................................................................................................................... 30
7 Criação de Medidas ................................................................................................................................... 33
7.1 Padronização de Medidas Analógicas ................................................................................................ 33
7.2 Padronização de Medidas Discretas .................................................................................................. 34
7.3 Exercícios .............................................................................................................................................. 35
8 Configuração de Alarmes ......................................................................................................................... 40
8.1 Servidor de Alarmes ............................................................................................................................. 40
8.2 Configuração de Alarmes .................................................................................................................... 40
8.3 E3Alarm ................................................................................................................................................ 42
8.4 Exercícios .............................................................................................................................................. 43
9 Criação de Comandos ............................................................................................................................... 49
9.1 Exercícios .............................................................................................................................................. 49
10 Intertravamentos ..................................................................................................................................... 54
10.1 Exercícios ............................................................................................................................................. 54
11 Comunicação ............................................................................................................................................ 56
11.1 Exercícios .............................................................................................................................................. 56
12 Simulação de Valores e Associações ...................................................................................................... 68
12.1 Tipos de Associação ............................................................................................................................ 68
12.2 Edição de Associações ........................................................................................................................ 71
12.3 Servidor de Dados .............................................................................................................................. 72
12.4 Valores Booleanos .............................................................................................................................. 72
12.5 Exercícios ............................................................................................................................................ 74

I
13 Introdução aos Scripts ............................................................................................................................. 77
13.1 Definindo Scripts ................................................................................................................................. 77
13.2 Eventos ................................................................................................................................................. 81
13.3 Métodos .............................................................................................................................................. 82
13.4 Propriedades ...................................................................................................................................... 82
13.5 Exercícios ............................................................................................................................................. 83
14 Elipse Gateway ......................................................................................................................................... 85
14.1 Exercícios ............................................................................................................................................. 85
15 Segurança e Usuários .............................................................................................................................. 93
15.1 Usuários ............................................................................................................................................... 93
15.2 Grupos ................................................................................................................................................. 93
15.3 Permissões .......................................................................................................................................... 94
15.4 Proteção .............................................................................................................................................. 95
15.5 Exercícios ............................................................................................................................................. 96
16 Proteções .................................................................................................................................................. 99
16.1 Exercícios ............................................................................................................................................ 100
17 Bibliotecas ElipseX .................................................................................................................................. 103
17.1 Criação de Bibliotecas do Usuário ................................................................................................... 103
17.2 Quando Criar um ElipseX ................................................................................................................. 106
17.3 Exercícios ........................................................................................................................................... 106
18 Armazenamento de Dados ..................................................................................................................... 116
18.1 Histórico .............................................................................................................................................. 116
18.2 Storage ............................................................................................................................................... 116
18.3 Exercícios ............................................................................................................................................ 117
19 Consultas ................................................................................................................................................. 124
19.1 Criando uma Consulta ...................................................................................................................... 124
19.2 Consultas Internas ............................................................................................................................. 125
19.3 E3Browser .......................................................................................................................................... 126
19.4 Exercícios ........................................................................................................................................... 127
20 Relatórios ................................................................................................................................................ 130
20.1 Objetos do Relatório ......................................................................................................................... 131
20.2 Exercícios ........................................................................................................................................... 133
21 Solução dos Desafios .............................................................................................................................. 135
21.1 Desafio I .............................................................................................................................................. 135
21.2 Desafio II ............................................................................................................................................ 135
21.3 Desafio III ........................................................................................................................................... 138
21.4 Desafio IV .......................................................................................................................................... 139
21.5 Desafio V ........................................................................................................................................... 140
21.6 Desafio VI ........................................................................................................................................... 141
21.7 Desafio VII ......................................................................................................................................... 142
21.8 Desafio VIII ........................................................................................................................................ 144

II
21.9 Desafio IX ........................................................................................................................................... 145
21.10 Desafio X .......................................................................................................................................... 146
21.11 Desafio XI .......................................................................................................................................... 147
21.12 Desafio XII ........................................................................................................................................ 148
21.13 Desafio XIII ....................................................................................................................................... 150
21.14 Desafio XIV ....................................................................................................................................... 150

III
CAPÍTULO
Apresentação
1
Desde sua fundação em 1986, a Elipse Software vem desenvolvendo poderosas ferramentas computacionais voltadas
à criação de sistemas industriais e de gerenciamento de energia.
Sediada em Porto Alegre e com filiais em São Paulo, Curitiba, Belo Horizonte, Rio de Janeiro e Taiwan, a Elipse
Software é uma empresa brasileira com participação expressiva no mercado externo, atuando em países como
Alemanha, Índia, Rússia, Suécia, Argentina e Chile, entre outros.
Durante estes anos de experiência, desenvolvemos um grande número de soluções para as áreas de geração,
transmissão e distribuição de energia elétrica, fornecendo produtos para criação de sistemas como centros de
controle, telemedição, automação de subestações, supervisão de proteção, automação de transformadores,
conversores de protocolos e descarte de cargas.
O Elipse Power é uma plataforma completa de criação e desenvolvimento de aplicações com funções de supervisão,
controle, análise e gerenciamento de sistemas elétricos, podendo ser utilizado tanto para aplicações de pequeno
porte, como automação de uma única subestação, quanto para aplicações de grande porte, como sistemas EMS
(Energy Management System) ou DMS (Distribution Management System).
Toda a experiência adquirida junto ao setor elétrico, somada aos novos conceitos de redes inteligentes (Smart Grids),
foi utilizada no desenvolvimento de um produto específico para o mercado de energia elétrica.

1.1 O Treinamento
A base do roteiro deste Tutorial é uma aplicação hipotética, que apresenta os recursos mais importantes do Elipse
Power HMI. Esta aplicação não cobre todas as possibilidades de desenvolvimento oferecidas pela ferramenta. No
entanto, a quantidade e qualidade das informações apresentadas neste primeiro contato com o software são
suficientes para que se aprenda a utilizá-lo com autonomia para criar suas próprias aplicações. A sequência do
treinamento é a seguinte:
· Iniciando a Aplicação
· Modelagem Elétrica do Sistema a ser Supervisionado
· Diagrama de Operação
· Estrutura de Telas
· Estrutura de Dados
· Medidas Analógicas e Discretas
· Alarmes
· Comandos
· Intertravamentos
· Comunicação
· Associações
· Scripts
· Gateway
· Segurança e Usuários
· Proteções
· Bibliotecas ElipseX
· Armazenamento de Dados
· Consultas
· Relatórios

Sua participação é muito importante para nós. Ao final do treinamento, solicitaremos que você avalie diversos
aspectos do curso, como a qualidade e a quantidade das informações transmitidas em aula e pelo Tutorial, além do
trabalho do instrutor e a qualidade das instalações. Qualquer sugestão ou crítica é bem-vinda pela equipe de
desenvolvimento deste Tutorial.
A Elipse Software deseja a você um ótimo treinamento, e uma boa experiência de trabalho com o Elipse Power HMI!

1 Apresentação
CAPÍTULO
Iniciando a Aplicação
2
Após instalar o software, tem-se um grupo de programas chamado Elipse Power, com um ícone para abrir o
Elipse Power Studio. Quando o Elipse Power Studio inicia, abre-se uma caixa de diálogo com algumas opções de
projeto.

Caixa de diálogo inicial do Elipse Power Studio


As opções disponíveis nesta caixa de diálogo estão descritas na tabela a seguir.
Opções disponíveis na caixa de diálogo inicial do Elipse Power
OPÇÃO DESCRIÇÃO
Iniciar o E3 Studio Inicia o Elipse Power Studio, mas não abre nenhum
Domínio

Criar um Domínio novo Cria um novo Domínio através do Assistente de


Aplicações do Elipse Power, que pede o nome e o
caminho do novo Domínio

Abrir um Domínio existente Abre um Domínio existente dentre os últimos editados.


Clicando em Outros arquivos, pode-se localizar um
Domínio em um diretório específico

2.1 Arquivos
O Elipse Power trabalha com três tipos de arquivos de projeto, descritos a seguir.

2.1.1 Projetos
Contêm definições de objetos, Tags, Telas e outros componentes da aplicação. Os arquivos .prj são criados através
das opções Aplicação Padrão e Aplicação em Branco. A primeira opção cria um projeto pré-configurado com alguns
objetos básicos através de um assistente de criação de projeto, enquanto a segunda opção cria um projeto vazio a
ser implementado pelo usuário.

2.1.2 Bibliotecas
Contêm definições de objetos criados pelo usuário (ElipseX) para serem utilizados em projetos. Estas bibliotecas
podem ser reutilizadas em diferentes projetos, mas mantêm vínculos com a aplicação. Ou seja, se a biblioteca for
alterada, todos os objetos desta biblioteca são atualizados nos projetos automaticamente.

Iniciando a Aplicação 2
2.1.3 Configuração do Domínio
Armazena quatro tipos de informações: Opções de configuração do Domínio, lista de arquivos .prj e .lib,
configurações dos servidores que executam o Domínio e configurações de segurança (usuários e permissões). Sem
este arquivo, um projeto não pode ser executado no Elipse Power. Este item é visto mais adiante.

2.2 Elipse Power Studio


2.2.1 Organizer
O Organizer permite uma visão simples e organizada de toda a aplicação, ajudando na edição e configuração de
todos os objetos envolvidos no sistema através de uma árvore hierárquica de opções. Possui dois modos de
visualização: Domínio e Explorer.

Organizer
O modo Domínio mostra apenas as informações dos objetos abertos pertencentes ao Domínio, organizadas em
quatro grupos: Configuração, Bibliotecas de Objetos, Visualização e Objetos de Servidor.
O modo Explorer mostra projetos e bibliotecas abertos no Elipse Power Studio, pertencentes ou não ao Domínio. Os
objetos são mostrados no projeto ou biblioteca ao qual pertencem, ordenados alfabeticamente dentro de cada
projeto ou biblioteca.

2.2.2 Lista de Propriedades


A Lista de Propriedades é uma janela que mostra todas as propriedades do objeto em uso, permitindo a sua
configuração de forma simples e rápida. A Lista de Propriedades pode ser acessada pelo menu Visualizar - Lista de
Propriedades ou clicando em na barra de ferramentas Padrão.

3 Iniciando a Aplicação
Lista de Propriedades

2.3 Execução de um Domínio


Para executar ou visualizar um projeto no Elipse Power, é necessário que o Domínio seja colocado em execução. Para
isto, existem as seguintes opções no Studio:
· Executar aplicativo : Salva todas as configurações dos projetos e bibliotecas, inicia a execução do Domínio e
executa o Viewer
· Rodar/Parar Domínio : Inicia ou para a execução do Domínio
· Executar ou parar o Power Viewer : Executa o Viewer ou para sua execução

2.4 Exercícios
2.4.1 Criando uma Aplicação
Para criar uma nova aplicação no Elipse Power, é necessário primeiro criar um Domínio, que é responsável por reunir
todos os projetos da aplicação.
1. Execute o Elipse Power Studio (Iniciar - Programas - Elipse Software - Elipse Power - Elipse Power Studio),
selecione a opção Criar um Domínio novo e clique em OK. O Assistente de Aplicações é aberto, e ajuda o
usuário a criar um novo Domínio.

Iniciando a Aplicação 4
Assistente de Aplicações
2. Clique em Avançar. A tela da figura a seguir é mostrada.

Tipo de Aplicação
3. Selecione a opção Aplicação padrão. Após indicar o diretório onde a aplicação deve ser salva e o seu nome
(conforme figura anterior), clique em Avançar. A tela da figura a seguir é mostrada.

5 Iniciando a Aplicação
Domínio
4. Clique novamente em Avançar. A tela da figura a seguir é mostrada.

Resolução do Viewer
5. Configure a resolução de tela desejada e clique em Avançar.
6. Responda Não à pergunta Você deseja comunicar com um dispositivo/equipamento?. Clique em Avançar.
7. Responda Sim à pergunta Você quer guardar dados em disco?. Mantenha o nome do arquivo sugerido, pois o
banco de dados é alterado para SQL Server posteriormente. Clique em Avançar.
8. Responda Sim à pergunta Você deseja monitorar alarmes em sua aplicação? e selecione a opção Desejo
guardar os dados dos alarmes em disco. Clique em Avançar.
9. Por fim, aparece a tela da figura a seguir.

Iniciando a Aplicação 6
Conclusão do Assistente
10. Clique em Concluir. O Elipse Power Studio é aberto.

Elipse Power Studio


11. Com isto, o novo Domínio está pronto para ser configurado.

7 Iniciando a Aplicação
CAPÍTULO
Modelador Elétrico
3
O Elipse Power disponibiliza uma completa ferramenta de desenho e modelagem de redes de energia elétrica. Esta
ferramenta foi desenvolvida com a finalidade de oferecer ao usuário um ambiente único, que permita tanto visualizar
quanto cadastrar os dispositivos que constituem o sistema elétrico, suas interligações e seus parâmetros.

Níveis Hierárquicos
Para facilitar a navegação e a criação dos diagramas e configuração dos modelos, a ferramenta disponibiliza três
níveis hierárquicos distintos. São eles:
· Tela de visualização e edição de sistema: Este é o nível mais abrangente disponível na ferramenta de
modelagem
· Tela de visualização e edição de Subestações: Neste nível é possível inserir todos os equipamentos que
compõem uma Subestação, tais como Disjuntores, Chaves, Transformadores, Geradores, Capacitores, Reatores
e Barramentos
· Tela de visualização e edição de Alimentadores: Neste nível é possível inserir todos os equipamentos que
podem fazer parte de um Alimentador, tais como Disjuntores, Chaves, Chaves Fusíveis, Transformadores,
Geradores, Capacitores e Reatores

3.1 Cores de Tensão


É necessário cadastrar as tensões a serem utilizadas na aplicação, bem como a cor associada a cada uma destas
tensões. Para isto, selecione a aba Tensões do objeto Configuração do Power.

Cores das Tensões


Estas cores podem ser alteradas a qualquer momento em modo de edição, e com isto todos os equipamentos
associados a esta tensão recebem automaticamente a nova cor.

3.2 Exercícios
3.2.1 Modelo Elétrico
A próxima etapa do desenvolvimento da aplicação consiste na criação do modelo elétrico do sistema que se deseja
supervisionar. O exemplo apresentado no Tutorial é constituído por uma única Subestação de rebaixamento de
tensão, cujo diagrama unifilar é apresentado na figura a seguir.

Modelador Elétrico 8
Modelo elétrico do sistema
1. Após a criação da aplicação no Elipse Power, o arquivo EDB correspondente ao modelo elétrico é criado na
mesma pasta de destino e com o mesmo nome de Domínio e do projeto relativo à aplicação. Como padrão, a
aba Modelador Elétrico do objeto Configuração do Power é mostrada primeiro. O Elipse Power Studio deve
apresentar um ambiente de desenvolvimento similar ao da figura a seguir.

Ambiente de desenvolvimento

9 Modelador Elétrico
3.2.2 Subestação SE1
Primeiramente, vamos criar e configurar uma Subestação.
1. Selecione a ferramenta Subestação e clique na área de desenho. Uma Subestação deve ser inserida no sistema,
conforme a figura a seguir.

Inserir Subestação
2. Selecione a Subestação e altere sua propriedade Name para "SE1".
3. Clique duas vezes na Subestação para abrir o ambiente de modelagem da Subestação.
4. Para voltar ao nível Sistema, clique em .

3.2.3 Modelagem da Subestação


1. Primeiramente, selecione a ferramenta Chave e insira uma nova Chave na área de desenho.

Inserir Chave
2. Na Lista de Propriedades, altere o nome da Chave para "29-02".
3. Ao lado da Chave 29-02, insira uma nova Chave e altere seu nome para "29-04".

Modelador Elétrico 10
Inserir Chave
4. Para facilitar o desenho, ative a grade e o alinhamento dos elementos em relação à grade . As Chaves devem
ficar alinhadas à grade, como mostrado na figura a seguir.

Alinhamento à grade
5. A opção Trancar/Destrancar ferramenta ajuda na criação de vários objetos iguais. Selecione esta opção e em
seguida selecione a ferramenta Disjuntor .

DICA
Para a criação de vários objetos iguais, também é possível utilizar a tecla CTRL.

6. Insira cinco Disjuntores no modelo e configure o nome de cada objeto como "52-01", "52-02", "52-03", "52-04" e
"52-05". O modelo deve ficar como na figura a seguir.

11 Modelador Elétrico
Inserir Disjuntores
7. Abaixo dos Disjuntores 52-03, 52-04 e 52-05, insira três novas Chaves Seccionadoras. Configure os nomes das
Chaves como "29-08", "29-10" e "29-12". O modelo deve ficar como na figura a seguir.

Inserir Chaves
8. Selecione a ferramenta Barramento e insira uma Barra entre as Chaves Seccionadoras 29-02 e 29-04 e o
Disjuntor 52-01. Renomeie a Barra para "BARRA_138KV".

Modelador Elétrico 12
Inserir Barramento
9. Insira uma nova Barra entre o Disjuntor 52-02 e os Disjuntores 52-03, 52-04 e 52-05. Renomeie-a para
"BARRA_13_8KV", como mostrado na imagem a seguir.

Inserir Barramento
10. Selecione a ferramenta Transformador de 2 Enrolamentos e insira um Transformador entre os Disjuntores 52-
01 e 52-02.

Inserir Transformador
11. Rotacione o objeto Transformador, de forma que o seu Terminal 1 fique para cima. A rotação pode ser realizada
clicando-se no botão de rotação no canto superior esquerdo do objeto, ou selecionando o objeto e
pressionando a tecla R. O modelo deve ficar de acordo com a figura a seguir.

13 Modelador Elétrico
Rotacionar
12. Na Lista de Propriedades do Transformador, altere as seguintes propriedades:
· BaseVoltage1: 138
· BaseVoltage2: 13,8
· ConnectionType1: 0 - ctDelta
· ConnectionType2: 1 - ctWyeGrounded
· Name: TR-01

13. Selecione a ferramenta Conector e conecte os Terminais de todos os equipamentos.

Inserir Conector
14. Após a conexão de todos os objetos, a Subestação deve estar semelhante à figura a seguir.

Modelador Elétrico 14
Subestação
15. Para energizar a Subestação, vamos utilizar um objeto Gerador. Selecione a ferramenta Gerador e clique na
área de desenho próxima da Chave Seccionadora 29-02.
16. Altere a propriedade BaseVoltage do Gerador para "138" e conecte-o à Chave Seccionadora 29-02.

Propriedade BaseVoltage
17. Para quebrar a linha e realizar uma curva de 90°, precisamos inserir um Vértice. Selecione a ferramenta Vértice
Gráfico e clique no Conector criado. O Vértice também pode ser criado pressionando-se a tecla CTRL e
clicando com o botão esquerdo do mouse no Conector criado. Arraste o Vértice para a posição que desejar.

15 Modelador Elétrico
Vértice Gráfico
18. Selecione a ferramenta Gerador novamente e insira um novo Gerador próximo à Chave 29-04. Altere a
propriedade BaseVoltage do Gerador para "138kV" e conecte-o à Chave Seccionadora 29-04.

Gerador
19. Renomeie os Geradores para "G1" e "G2".
20. Selecione a ferramenta Carga e insira uma nova Carga próxima da Chave 29-08. Renomeie-a para "L1" e
conecte-a à Chave 29-08.

Carga de Distribuição
21. Insira mais duas Cargas, renomeando-as para "L2" e "L3" e conectando-as às Chaves 29-10 e 29-12.

Modelador Elétrico 16
22. Vamos organizar os conjuntos de Cargas, Chaves e Disjuntores em Bays. Com a tecla SHIFT pressionada, clique
nos objetos 52-03, 29-08 e L1 em sequência. Outra forma de selecionar múltiplos objetos é clicar na área de
desenho e arrastar o ponteiro do mouse, formando uma caixa de seleção.

Conjunto de Cargas, Chaves e Disjuntores


23. Utilize a ferramenta Cria Bay com o(s) objeto(s) selecionado(s) para criar o "Bay1".

Objeto Bay1
24. Repita o passo anterior para criar o "Bay2" (agrupando os objetos 52-04, 29-10 e L2) e o "Bay3" (agrupando os
objetos 52-05, 29-12 e L3).
25. Ao final deste processo, o modelo elétrico deve estar semelhante à figura a seguir.
17 Modelador Elétrico
Resultado final da Subestação
26. Deixe um espaço na parte inferior do unifilar, abaixo das Cargas. Neste local vão ser colocados alguns Displays
em tela, mais adiante. Clique no canto inferior direito e arraste o ponteiro do mouse para baixo, aumentando a
área de desenho. Outra opção é reconfigurar a propriedade CanvasBottom com um valor maior.

Modelador Elétrico 18
Espaço na parte inferior do unifilar

Propriedade CanvasBottom da Subestação

3.2.4 Cores de Tensão


1. Selecione a aba Tensões do objeto Configuração do Power e selecione as cores de sua preferência para as
tensões 13.8 e 138.

19 Modelador Elétrico
Cores de tensão

Modelador Elétrico 20
CAPÍTULO
Diagrama de Operação
4
Após configurar a estrutura de dados, é possível dar início ao desenvolvimento do diagrama de operação das
Subestações. De forma a facilitar a criação das Telas de operação, o Elipse Power permite que o diagrama de modelo
elétrico, criado no objeto Configuração dp Power, seja utilizado como base para importar todos os equipamentos
para uma Tela de um arquivo *.prj. Esta ferramenta utiliza um conjunto de bibliotecas gráficas, capaz de interagir com
o objeto de dados e distribuído juntamente com o Elipse Power. A principal função do Importador de Telas é gerar a
primeira versão da Tela, pois pequenos ajustes talvez sejam necessários.

4.1 Bibliotecas Elipse Power


Após a criação da aplicação no Elipse Power, os arquivos .lib correspondentes às bibliotecas PowerControls e
PowerDisplay são criados na mesma pasta de destino do Domínio e do projeto relativo à aplicação criada. Como
padrão, as bibliotecas PowerControls e PowerDisplay são adicionadas ao Domínio automaticamente no momento da
criação de uma nova aplicação.
A biblioteca PowerControls contém a definição gráfica dos objetos utilizados no Modelador Elétrico. É neste arquivo
que é definida a aparência dos símbolos elétricos no diagrama de operação, conforme os valores das respectivas
Medidas elétricas. Todos os objetos da biblioteca podem ser customizados ou utilizados como base para a criação
de seus próprios objetos.

Bibliotecas Elipse Power

4.2 Telas
A Tela é o objeto básico de interface com o usuário. Nela podem-se inserir os seguintes objetos:
· Primitivas do editor gráfico (retas, círculos, retângulos, polígonos, etc.)
· Controles ActiveX fornecidos pela Elipse (E3Alarm, E3Browser, E3Chart e E3Playback)
· Controles ActiveX fornecidos por terceiros
· Imagens não vetoriais (Arquivos BMP, JPG, GIF, etc.)
· Imagens vetoriais (Arquivos WMF, EMF, etc.)
· Controles padrão do Windows (Lista, Editor de Texto, Lista de Seleção, etc.)
· Bibliotecas gráficas do Elipse Power (XControl) compostas de quaisquer dos objetos descritos anteriormente
· Pastas do Viewer, Consultas, Tags Contador, Demo, Interno e Timer

As Telas utilizam como padrão para o tamanho e coordenadas as unidades Himetric, dadas em 1/100 mm, não em
pixels. Neste sistema, ao se adicionar um valor positivo em x, a coordenada x move-se para a direita. Quando se
adiciona um valor positivo em y, a coordenada y move-se para baixo, sendo a origem dada pelo canto superior
esquerdo da Tela.
As Telas podem ser abertas em modo Full-Screen, ocupando toda a área do Viewer, ou ainda como telas modais,
ocupando somente o tamanho de suas coordenadas de altura e largura.

21 Diagrama de Operação
Aba Design da Tela

4.3 Proporção
O Importador de Telas do Elipse Power cria os objetos na Tela de forma proporcional, considerando o tamanho do
objeto no modelo elétrico, a área de desenho do modelo e o tamanho da Tela. Após realizar uma importação, se
necessário, apague todos os objetos criados na Tela, faça os ajustes necessários e repita o processo de importação,
até que seja obtido um resultado satisfatório.
Para que os objetos de Tela fiquem com a melhor aparência possível, ou seja, que eles sejam criados com seus
tamanhos originais, o usuário pode se basear nas seguintes fórmulas:
CanvasTop = (Width / 2000) * Size
CanvasBottom = (Height / 2000) * Size

Onde:
· CanvasTop: Largura da área de desenho do modelador elétrico
· CanvasBottom: Altura da área de desenho do modelador elétrico
· Width: Largura da Tela de operação
· Height: Altura da Tela de operação
· Size: Tamanho do objeto no modelador elétrico

4.4 Exercícios
Neste exercício, vamos transformar em Telas da aplicação a construção do Modelador Elétrico.

Diagrama de Operação 22
4.4.1 Importar Modelo Elétrico
1. Clique com o botão direito do mouse na TelaInicial e selecione a opção Importar do Modelo Elétrico.

Importar do Modelo Elétrico


2. Na janela que se abre, selecione a Subestação SE1.

Selecionar Subestação
3. Deixe a configuração padrão na janela seguinte e clique em OK.

23 Diagrama de Operação
Janela Criação de Objeto
4. Após a importação, a Tela é criada com os objetos da biblioteca PowerControls.

Tela Inicial
5. Se necessário, apague todos os objetos criados na Tela, execute os ajustes necessários no modelo elétrico e
repita o processo de importação até que obtenha um resultado satisfatório.
6. A cor de fundo da Tela pode ser configurada na propriedade BackgroundColor, na Lista de Propriedades.
7. Execute a aplicação, clicando em , e teste a nova funcionalidade.

Diagrama de Operação 24
CAPÍTULO
Estrutura de Telas
5
O Quadro é o objeto que organiza e estrutura a interface, criando visualizações compostas para o usuário dentro da
janela principal do Viewer ou de um navegador.
No Quadro, pode-se criar Divisores para visualizar diferentes Telas ao mesmo tempo. Cada Divisor também pode
mostrar uma URL, uma planilha do Excel, um documento do Word ou um arquivo PDF.
A disposição dos Divisores dentro do Quadro pode ser horizontal ou vertical. Dentro de cada Divisor podem ser
inseridos outros Divisores. A cada par de novos Divisores criados pelas opções Dividir Horizontalmente e Dividir
Verticalmente, há sempre um Divisor Principal e um Divisor Secundário. Apenas o Divisor Principal tem valores que
definem explicitamente o seu posicionamento, ficando o Divisor Secundário com o valor restante.
Os Objetos de Tela são elementos gráficos que podem ser inseridos nas Telas para criar a interface visual com o
processo. Podem ser criados a partir da barra de ferramentas Objetos ou através do menu Objetos.
Uma vez selecionado o objeto que se deseja criar, mantenha o botão esquerdo do mouse pressionado na área da
Tela enquanto movimenta o mouse (um retângulo pontilhado mostra o tamanho e a forma do objeto). Ao soltar o
botão, o objeto é posicionado dentro da área especificada.

5.1 Exercícios
5.1.1 Quadro
O primeiro passo é montar a estrutura onde as Telas são apresentadas ao operador. Para isto, vai ser criado um
Quadro contendo três áreas distintas:
· Área superior contendo uma Tela de menu, com todas as funcionalidade de navegação do sistema. Esta Tela é
fixa
· Área inferior contendo um Sumário de Alarmes ativos no momento. Esta Tela é fixa
· Área central contendo as Telas de operação

Para criar esta estrutura, siga estes passos:


1. Clique com o botão direito do mouse no item Visualização - Viewer e Quadros no Organizer e selecione a opção
Inserir Quadro em - Tutorial_Elipse_Power.prj para criar o "Quadro1".
2. Clique com o botão direito do mouse na área do Quadro e selecione a opção Dividir Horizontalmente para criar
um Divisor horizontal.
3. Selecione o Divisor superior e configure as seguintes propriedades:
· Name: Area_Menu
· SplitDockPosition: 1 - dockTop
· SplitValue: 10%

4. Sobre a área inferior, crie mais um Divisor horizontal.


5. Selecione o Divisor central e configure as seguintes propriedades:
· Name: Area_Central
· SplitDockPosition: 1 - dockTop
· SplitValue: 92%

6. Selecione o Divisor inferior e renomeie-o como "Area_Alarme".


7. Configure o Quadro1 como Tela inicial do objeto Viewer. Para isto, clique com o botão direito do mouse no
objeto Viewer e selecione a opção Propriedades. Na aba Visualizador, campo Tela ou Quadro inicial, clique em
para abrir o AppBrowser e selecione o item Quadro1.

25 Estrutura de Telas
Propriedades do Viewer
8. Neste ponto, a estrutura de apresentação das Telas acabou de ser criada. Vamos criar as Telas que são
visualizadas em cada parte.

5.1.2 Criação de Telas


Vamos criar inicialmente a Tela de menu e a Tela de alarmes.
1. Selecione o item Visualização - Telas no Organizer e adicione uma nova Tela no projeto Tutorial_Elipse_Power.prj.
2. Utilizando o Assistente de Criação de Telas, defina o nome da Tela como "Tela_Menu", configure-a para ser aberta
no Divisor Area_Menu e selecione a opção Configurar como Tela inicial do Divisor.

Configurando o tamanho da Tela


3. Crie uma Tela com o nome "Tela_Alarmes", configurando-a para ser aberta no Divisor Area_Alarme.
4. Crie uma Tela com o nome "Tela_Eventos", configurando-a para ser aberta no Divisor Area_Central.
5. Configure a cor de fundo destas Telas como preferir.

Estrutura de Telas 26
5.1.3 Tela SE1
A Tela que contém o diagrama da Subestação deve ser modificada para ser mostrada no Divisor Area_Central.
1. Abra a TelaInicial e apague todos os seus objetos.
2. Altere o nome da Tela de "TelaInicial" para "Tela_SE1".
3. Clique com o botão direito do mouse na Tela e selecione a opção Ajustar ao Divisor.
4. Na janela que se abre, selecione o Divisor Area_Central e selecione a opção Configurar como Tela inicial do
Divisor.
5. Repita o processo de importação do diagrama unifilar, conforme o exercício anterior. Note que o tamanho total
do novo diagrama unifilar é adaptado à área disponível na Tela, agora um pouco menor.
6. Retorne ao objeto Quadro1 e verifique a configuração dos três Divisores.

Quadro1
7. Caso algum dos Divisores esteja em branco, clique com o botão direito do mouse neste Divisor e selecione a
opção Selecionar Tela ou Quadro.
8. Na janela do AppBrowser, selecione a Tela correspondente ao Divisor.
9. Execute a aplicação.

5.1.4 Recursos de Imagens


Todas as figuras utilizadas nesta aplicação são salvas dentro do projeto principal, para que não seja necessário
preocupar-se com os caminhos das figuras ao executar a aplicação em outro computador.
1. Clique com o botão direito do mouse em Recursos no Organizer e selecione a opção Inserir Recurso em.
2. Escolha todas as figuras que desejar.

5.1.5 Tela Menu


Vamos colocar o logotipo da Elipse Software na Tela_Menu.
1. Abra a Galeria e selecione o item Recursos de projetos na caixa de seleção.
2. Selecione e arraste a figura logoElipse.wmf para a Tela_Menu. Se a cor de fundo desta Tela for mais escura que a
imagem, utilize a figura logoElipse2.wmf.
3. Ajuste o tamanho e a posição da figura como desejar.

27 Estrutura de Telas
Recursos de projetos
Agora, vamos deixar criados os botões para navegação entre as Telas. A funcionalidade destes botões vai ser
implementada mais adiante neste Tutorial.
4. Insira um objeto CommandButton na Tela_Menu, ao lado do logotipo da Elipse Software.
5. Abra a janela de propriedades deste botão e configure a propriedade Caption com o valor "SE1".

DICA
Quando um objeto possui a propriedade Caption, esta propriedade pode ser modificada utilizando a tecla F2.

6. Configure as cores de texto e de fundo (propriedades ForeColor e BackColor, respectivamente) como desejar.
7. Faça uma cópia do botão e altere a propriedade Caption deste novo botão para "Eventos".

Estrutura de Telas 28
Tela Menu
DESAFIO I
Esconda os nomes das Barras ("BARRA_13_8KV" e "BARRA_138KV") no diagrama unifilar.

29 Estrutura de Telas
CAPÍTULO
Estrutura de Dados
6
O Elipse Power trata de forma separada o Modelo Elétrico e os objetos de dados da aplicação. Enquanto o Modelo
Elétrico é armazenado em um arquivo EDB e possui informações sobre os componentes do sistema e sua
conectividade, os objetos de dados são armazenados em arquivos PRJ e permitem que uma série de programações
sejam adicionadas a eles, tais como scripts, Associações para Tags de Comunicação, Associações para objetos de
Tela, Alarmes, Históricos, etc.

6.1 Exercícios
Para fins de exercício, inicialmente vamos utilizar em toda a aplicação apenas Fontes de Medida do tipo Operator,
onde os dados são inseridos pelo próprio usuário, não sendo necessário configurar nenhum Driver de Comunicação.
Como sugestão, todas as Medidas configuradas já devem ter suas Fontes de Medida do tipo Operator configuradas
com algum valor, permitindo que, assim que a aplicação seja executada, já existam valores carregados.
1. Confirme no Organizer a estrutura de objetos da Subestação. Deve existir um objeto para cada desenho do
Modelador Elétrico.

Organizer
2. Selecione a Chave Seccionadora 29-02 e, dentro dela, a Medida padrão PosicaoChave.
3. A posição da Chave é simulada pelo operador, por isto remova o item Scada desta Medida. Note que ao apagar
o item Scada, automaticamente a propriedade ActiveSource da Medida PosicaoChave torna-se Operator.
4. Execute a aplicação novamente.
5. Clique com o botão esquerdo do mouse na Chave 29-02 e selecione o item Medidas.

Estrutura de Dados 30
Chave Seccionadora 29-02 aberta
6. Na aba Discretas, selecione a Medida Estado da Chave. Mude o estado da Chave de Aberto para Fechado. Para
isto, clique duas vezes (ou pressione a tecla F2) no campo Valor da Medida Estado da Chave e digite "1" (um).

Estado da Chave
7. Verifique na Tela se a Chave Seccionadora fechou e se a Barra foi energizada.

Chave Seccionadora 29-02 fechada


8. Retorne à Subestação e remova o item Scada de todas as Medidas PosicaoChave e PosicaoDisjuntor, deixando
todas as fontes configuradas como Operator.
9. Configure o valor da fonte Operator das Medidas PosicaoDisjuntor de todos os Disjuntores da aplicação para
"1" (um), assim todos os Disjuntores iniciam fechados.
31 Estrutura de Dados
10. Por último, configure o valor da fonte Operator das Medidas PosicaoChave das Chaves 29-02, 29-08, 29-10 e 29-
12 para "1" (um), ou seja, estas Chaves iniciam a aplicação fechadas. Deixe o valor da fonte Operator da Chave 29-
04 configurada como "0" (zero), assim ela inicia aberta.

DICA
A ferramenta de verificação de erros na Subestação aponta todos os itens Scada que não estão associados a Tags
de Comunicação. Este recurso facilita na hora de localizar e remover estes objetos.

11. Execute a aplicação e teste suas funcionalidades.

Estrutura de Dados 32
CAPÍTULO
Criação de Medidas
7
O objeto Configuração do Power é essencial para o correto funcionamento das aplicações criadas no Elipse Power.
Além da Modelagem Elétrica e os recursos de Importação de Dados, este objeto concentra também um conjunto de
configurações referentes a padronização de tipos de Medidas, tipos de Comandos, níveis de tensão, cores de
Displays e cores de Chaves ou Disjuntores.
A criação dos padrões permite uma significativa redução do tempo de engenharia, facilitando o desenvolvimento de
novas aplicações e a expansão e manutenção de aplicações já existentes.
Na próxima etapa do desenvolvimento da aplicação, é necessário definir as Medidas que são utilizadas. São dois
tipos de Medidas disponíveis: Analógicas e Discretas.

7.1 Padronização de Medidas Analógicas


O primeiro conceito de padronização do Elipse Power diz respeito aos tipos de Medidas Analógicas. Entende-se por
tipo de Medida as diferentes medições existentes na aplicação, como por exemplo Potência Ativa, Tensão de Linha
entre Fase A-B, Corrente na Fase A, Temperatura do Óleo, etc. O tipo de Medida pode concatenar a grandeza física
amostrada (por exemplo, "Potência Ativa [W]" ou "Temperatura [°C]") com a localização do medidor (por exemplo,
"Fase A" ou "Óleo").
Com a utilização do conceito de padrão de Medida, o usuário reaproveita a configuração de unidade da grandeza
amostrada (por exemplo, "V", "°C", "W", "Wh", "A", etc.) da fase elétrica onde a Medida está sendo amostrada e da
descrição da Medida (por exemplo, "Potência Ativa Trifásica"). Com isto, quando o usuário instanciar uma Medida na
aplicação (por exemplo, "Tensão no Terminal do Gerador"), esta Medida deve apenas apontar para este padrão para
receber as configurações adotadas pelo padrão relacionado. Desta forma, se o usuário quiser, por exemplo, alterar a
descrição da Medida, basta fazê-lo no padrão que automaticamente todas as Medidas que referenciem este padrão
são atualizadas.
Alguns padrões estão disponíveis no próprio instalador do Elipse Power e não permitem que seus nomes, Fases
Elétricas e Unidades de Engenharia sejam alterados. Estes padrões nativos do Elipse Power possuem o prefixo
reservado "*" e não podem ser removidos da lista de padrões. Algumas destas Medidas com prefixo "*" podem ser
utilizadas por algoritmos específicos disponíveis no Elipse Power (por exemplo, Fluxo de Potência, Processador
Topológico e Estimador de Estado) ou pela biblioteca de objetos de Tela do Elipse Power, e por isso foram definidas
como nativas. A figura a seguir apresenta a tela de criação e edição dos padrões de Medidas Analógicas.

33 Criação de Medidas
Aba Analógicas

7.2 Padronização de Medidas Discretas


A padronização de Medidas Discretas segue o mesmo conceito introduzido para a padronização das Medidas
Analógicas, porém com uma diferença: as Medidas Discretas permitem transformar valores em algo que tenha
significado para o operador do sistema. Um exemplo típico são valores que informam o estado de um Disjuntor
(aberto ou fechado), onde o valor coletado pelo sistema de automação pode ser, por exemplo, 0 (zero) ou 1 (um).
Do ponto de vista do operador do sistema, 0 (zero) pode não ter significado algum e, portanto, o operador pode
não ter certeza sobre o estado atual do equipamento. Além disto, em um mesmo sistema de automação podem
existir diferentes equipamentos, de diferentes fabricantes, onde em um deles 0 (zero) significa aberto e em outro este
valor significa fechado.
Para resolver este problema, o Elipse Power provê um ambiente que permite tanto definir os tipos de pontos
discretos existentes na aplicação (Estado de Chaves, Estado de Disjuntores, Funções de proteção, Indicações de
atuações de Proteções, etc.), quanto relacionar um significado para cada possível valor que tal Medida Discreta possa
apresentar. Este ambiente está disponível no objeto Configuração do Power, na aba Discretas.
A aba de configuração de padrões de Medidas Discretas é dividida em três áreas, cada uma com uma função
específica. A primeira, apresentada na figura a seguir, serve para criar ou editar novos tipos de Medidas Discretas
(por exemplo, Estado do Disjuntor, Função Religamento, etc.).

Criação de Medidas 34
Tipos de Medidas Discretas
A área de edição de Conversões deve ser utilizada pelo usuário para cadastrar ou selecionar os diferentes tipos de
Conversões que possam existir no sistema. As Conversões estão relacionadas às características construtivas do
sistema de automação e permitem que o Elipse Power suporte diferentes formas de interpretar valores provenientes
de campo.

Conversões
A terceira e última área é utilizada para criar ou editar os possíveis Estados ou Significados da Medida Discreta (por
exemplo, uma chave na posição Aberta, Fechada, Intermediária ou Inválida), bem como relacioná-los ao valor da Fonte
(CLP, UTR, IED, etc.) para realizar a Conversão em tempo de execução. Os valores das Fontes podem variar em função
da Conversão selecionada na segunda área, enquanto os Significados e descrições são fixos para todas as
Conversões e dependem apenas do tipo da Medida Discreta. A figura a seguir apresenta a área de criação ou edição
de Estados ou Significados.

Estados ou Significados

7.3 Exercícios
7.3.1 Medidas Analógicas
Neste exercício, vamos adicionar as Medidas de corrente e potência ativa para os Disjuntores de saída da Subestação.
1. Na aba Design da Subestação SE1, selecione o Bay1, Disjuntor 52-03, Terminal2.
2. Clique com o botão direito do mouse no Terminal2 e selecione a opção Inserir - Medida Analógica.
3. Selecione a Medida criada, cujo nome é "MedidaAnalogica1", e altere as seguintes propriedades:
· Name: CorrenteA
· MeasurementType: *CurrentA (na caixa de seleção)

4. Selecione a Fonte de Medida, do tipo Operator, configure o tipo de dado da propriedade Value como Double, e
configure um valor para esta propriedade.
5. Repita os passos anteriores para criar uma nova Medida Analógica chamada "PotenciaAtiva" do tipo
*ActivePower. A potência normalmente é exibida em MW, portanto altere a propriedade UnitPrefix para 6 -
upMega.

35 Criação de Medidas
6. Selecione a Fonte de Medida, do tipo Operator, configure o tipo de dado da propriedade Value como Double, e
configure um valor para esta propriedade.
7. Execute a aplicação para testar as novas funcionalidades. Abra a janela de Medidas (PowerExplorer) do Disjuntor
52-03 e verifique o valor das Medidas.

Janela PowerExplorer
8. Crie as Medidas "CorrenteA" e "PotenciaAtiva" para os Disjuntores 52-04 e 52-05, presentes nos Bays Bay2 e Bay3,
respectivamente.
9. Para o Transformador TR-01, vamos criar a Medida de temperatura do óleo. A pasta Measurements não é criada
automaticamente, portanto deve ser criada utilizando o item Adicionar - Measurements do menu contextual do
Transformador.
10. Na pasta Measurements, adicione uma Medida Analógica chamada "TemperaturaOleo".
11. A lista de padrões de Medidas Analógicas não contém a medida de temperatura do óleo, portanto é necessário
criá-la. Para isto, selecione a aba Analógicas do objeto Configuração do Power.
12. Para cadastrar um novo padrão, clique em Adicionar e configure as colunas com os valores a seguir:
· Nome: TOL
· Fase Elétrica: -1 - epNone
· Descrição: Temperatura do Óleo
· Unidade: °C
· Ordenação: 1000

13. Retorne à configuração das Medidas do Transformador TR-01 e, na Medida TemperaturaOleo, configure a
propriedade MeasurementName para TOL.
14. No item Operator da Medida TemperaturaOleo, digite um valor de simulação e configure o valor da propriedade
como Double.
15. Execute a aplicação e verifique a Medida do Transformador TR-01.

Criação de Medidas 36
Transformador TR-01

7.3.2 XPowerDisplay
Com o auxílio da biblioteca XPowerDisplay, vamos adicionar Displays contendo as Medidas desejadas na Tela de
operação. Este objeto tem a função de mostrar o valor, formatação e unidade de medida, permitindo selecionar qual
Fonte de Medida é utilizada.
1. Na Tela_SE1, adicione embaixo da Carga L1 um objeto XPowerDisplay. Para isto, clique com o botão direito do
mouse em qualquer lugar da área da Tela e selecione a opção Inserir - XPowerDisplay.

Inserir XPowerDisplay
2. Configure a propriedade Measurement na Lista de Propriedades com o caminho da Medida CorrenteA, presente
no Terminal2 do Disjuntor 52-03. Utilize o AppBrowser para auxiliar nesta tarefa.

37 Criação de Medidas
AppBrowser
3. Adicione objetos XPowerDisplay para todas as Medidas desejadas, posicionando-os ao lado do equipamento que
contém a informação.
4. Execute a aplicação e verifique o seu funcionamento.

Aplicação em tempo de execução


DESAFIO II
No Transformador TR-01, crie as Medidas TensaoA, CorrenteA, PotenciaAtiva e TemperaturaEnrolamento e
exiba-as em Displays ao lado do Transformador. A Medida CorrenteA deve ser a soma das correntes dos
Disjuntores 52-03, 52-04 e 52-05.

7.3.3 Medidas Discretas


Agora vamos configurar as Medidas Discretas presentes no Disjuntor 52-01. A primeira Medida a ser configurada é a
que representa o estado Local ou Remoto de uma Chave.
1. Selecione a aba Discretas do objeto Configuração do Power e clique em Adicionar . Preencha as colunas
Nome, Fase Elétrica, Descrição e Ordenação com os valores a seguir:
· Nome: LR

Criação de Medidas 38
· Fase Elétrica: -1 - epNone
· Descrição: Chave Local/Remoto
· Ordenação: 1000

2. Crie um novo Significado clicando em . Configure as colunas Significado e Descrição como "Remoto", Valor no
aplicativo como "0" (zero) e Valor na Fonte também como "0" (zero).
3. Crie mais um Significado, configurando as colunas Significado e Descrição como "Local", Valor no aplicativo
como "1" (um) e Valor na Fonte também como "1" (um).
4. Na Subestação, clique com o botão direito do mouse na pasta Measurements do Disjuntor 52-01 e selecione a
opção Inserir - Medida Discreta.
5. Configure a Medida Discreta com os seguintes valores:
· Name: LocalRemoto
· MeasurementType: LR (na caixa de seleção)

NOTA
Da mesma forma que na Medida Analógica, tem-se a opção de inserir uma Fonte de Medida do tipo SCADA e
associá-la a um Tag de Comunicação.

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

Aba Discretas
7. Repita a criação da Medida Discreta LocalRemoto para todos os Disjuntores.
8. Execute a aplicação e teste a nova funcionalidade.

DESAFIO III
Crie a Medida TAPAutomaticoManual para o Transformador TR-01 com as condições 0: Manual e 1: Automático.

39 Criação de Medidas
CAPÍTULO
Configuração de Alarmes
8
O módulo de Alarmes do Elipse Power consiste basicamente em duas unidades, cujo funcionamento é interligado
logicamente:
· Servidor de Alarmes: Organiza o modo como os eventos e alarmes são tratados
· Configuração de Alarmes: Neste objeto os alarmes a serem tratados são criados e suas fontes configuradas

8.1 Servidor de Alarmes


O objeto Servidor de Alarmes centraliza todos os alarmes do projeto. Neste objeto podem ser encontrados os totais
de alarmes ativos da aplicação, reconhecidos ou não. Também é responsável por reportar os eventos de alarmes
para todos os Viewers conectados, bem como, se desejado, enviar estes eventos para um Banco de Dados.

IMPORTANTE
Um Domínio pode ter somente um objeto deste tipo, e sua presença é obrigatória para que haja verificação de
alarmes.

Através da aba Configuração da Janela de Propriedades deste objeto é possível especificar se os alarmes são
armazenados em um banco de dados. Os alarmes podem ser visualizados em um E3Alarm ou em um E3Browser.

8.2 Configuração de Alarmes


O objeto Configuração de Alarmes é onde as Fontes de Alarme são criadas. Para inserir este objeto no projeto,
clique com o botão direito do mouse no Organizer no item Objetos de Servidor - Alarmes, selecione a opção Inserir
Configuração de Alarmes em, e em seguida o nome do projeto desejado.

8.2.1 Área
O objeto Área permite agrupar um conjunto de Fontes de Alarmes, bem como outras Áreas de Alarme. Isto facilita o
gerenciamento, a operação e o monitoramento de um conjunto de Fontes de Alarmes relacionadas, permitindo, por
exemplo:
· Filtrar o conjunto de alarmes visíveis no sumário
· Habilitar ou desabilitar um conjunto de Fontes de Alarmes
· Reconhecer um conjunto de Fontes de Alarmes
· Verificar o total de alarmes ativos ou não reconhecidos de um conjunto de Fontes de Alarmes

Caso haja necessidade, novas Áreas podem ser inseridas dentro de outras Áreas.

8.2.2 Fontes de Alarme


As Fontes de Alarme definem todas as informações relativas às condições de alarme. Em cada Fonte de Alarme são
configurados seus limites, a mensagem relativa ao evento e sua severidade, bem como a necessidade ou não de
reconhecimento deste evento. Todas as Fontes de Alarme possuem as propriedades descritas na tabela a seguir.
Propriedades gerais das Fontes de Alarme
PROPRIEDADE DESCRIÇÃO
Texto da Mensagem É o texto associado àquela condição de alarme, que
aparece no objeto de visualização (E3Alarm), Banco de
Dados, etc. Pode conter até 255 caracteres de texto

Severidade Indica a gravidade do alarme ocorrido, podendo ser


Baixa, Média ou Alta. A severidade é utilizada para
filtragem e ordenação de mensagens

Pede Ack Indica que o alarme deve ser reconhecido pelo operador
para ser retirado da lista de alarmes no E3Alarm, ou
ainda se é reconhecido automaticamente quando a
variável deixa uma condição de alarme

Configuração de Alarmes 40
PROPRIEDADE DESCRIÇÃO
Mensagem de Retorno Sempre que uma Fonte de Alarme sai da condição de
alarme, esta mensagem é exibida nos objetos de
visualização

Há vários tipos de Fontes de Alarme que podem ser inseridas na Área de Alarme, descritas nos tópicos a seguir.

8.2.2.1 Alarme Analógico


Permite monitorar uma variável analógica pela especificação de até quatro níveis de alarme: LOLO (muito baixo), LO
(baixo), HI (alto) e HIHI (muito alto).

Fonte de Alarme Analógico

8.2.2.2 Alarme de Banda Morta


Permite monitorar uma variável analógica pela especificação de um limite máximo de diferença (valor de banda morta)
em relação a um valor de referência (Setpoint).

Fonte de Alarme de Banda Morta

8.2.2.3 Alarme Digital


Permite monitorar uma variável (ou expressão) digital pela especificação de alarme na borda de subida (em menos
um ou Verdadeiro) ou na borda de descida (em zero ou Falso).

41 Configuração de Alarmes
Fonte de Alarme Digital

8.2.2.4 Alarme Discreto


Permite monitorar uma variável pela especificação de múltiplas sub-condições.

Fonte de Alarme Discreto

8.3 E3Alarm
O E3Alarm serve para o monitoramento dos alarmes ativos ou não reconhecidos em uma aplicação. Através deste
objeto é possível verificar o estado dos alarmes, bem como reconhecê-los manualmente. Para utilizar este objeto,
clique com o botão direito do mouse na área de trabalho e selecione a opção Inserir - E3Alarm.

E3Alarm
A aba Conexões da Janela de Propriedades do E3Alarm especifica as informações referentes ao Servidor ou
Servidores de Alarmes e a aba Filtros especifica os filtros por área ou personalizados.

Configuração de Alarmes 42
Janela de Propriedades do E3Alarm

8.4 Exercícios
Vamos adicionar um Sumário de Alarmes na aplicação. Neste exemplo, vamos adicionar duas Fontes de Alarmes: uma
Discreta, associada à Posição do Disjuntor, e uma Analógica, vinculada à Corrente na Fase A.

8.4.1 Servidor de Alarmes


1. Verifique se o objeto Servidor de Alarmes está presente na aplicação. Ele foi adicionado no primeiro capítulo, em
um dos passos do Assistente de Aplicações. Caso ele não tenha sido criado, adicione o objeto clicando com o
botão direito do mouse no item Objetos de Servidor - Alarmes e selecione a opção Inserir Servidor de Alarmes
em - Tutorial_Elipse_Power.prj.

Servidor de Alarmes

8.4.2 Sumário de Alarmes


1. Adicione um objeto E3Alarm que preencha todo o espaço da Tela. Clique com o botão direito na Tela e selecione
a opção Inserir - E3Alarm.

43 Configuração de Alarmes
Inserir E3Alarm
2. Abra a janela de propriedades deste objeto e, na aba Conexões, configure o nome do Servidor de Alarmes na
coluna Servidor de Alarmes da Conexão padrão com o Servidor adicionado na aplicação, utilizando o
AppBrowser. Na aba Filtros, selecione o item Alarmes e Eventos da opção Filtrar por tipo do Filtro padrão
(clicando em Configurar).

Propriedades do filtro
3. Na aba Colunas, selecione os seguintes campos:
· Reconhecido
· Operador
· Área
· Mensagem
· Severidade
· DataHora (Entrada)
· DataHora (Saída)
· DataHora (Reconhecido)
· Valor formatado

Configuração de Alarmes 44
Aba Colunas

8.4.3 Alarme Discreto


1. Na Subestação SE1, Disjuntor 52-01, selecione a Medida PosicaoDisjuntor na pasta Measurements e, através do
menu contextual, selecione a opção Inserir - Alarme Discreto.

Inserir Alarme Discreto


2. Clique com o botão direito do mouse no Alarme Discreto e, na janela de propriedades, selecione a aba Discreto e
configure-a com os valores da tabela a seguir.
Configurações da aba Discreto
NOME TEXTO DA MENSAGEM TIPO
Open Aberto 0 - Alarme

Closed Fechado 2 - Retorno

Intermediate Intermediário 1 - Evento

Invalid Inválido 1 - Evento

45 Configuração de Alarmes
Propriedades do Alarme Discreto
3. Execute a aplicação. Altere o estado do Disjuntor 52-01 e verifique se o alarme aparece no Sumário de Alarmes.

Aplicação em execução
4. Copie o Alarme Discreto do Disjuntor 52-01 e cole-o nos outros Disjuntores da Subestação.
5. Repita os passos anteriores para criar Alarmes para todas as Chaves.

DESAFIO IV
Crie um Alarme para a Medida LocalRemoto de todos os Disjuntores.

8.4.4 Alarme Analógico


Insira também um Alarme do tipo Analógico para monitorar o comportamento da Corrente na Fase A. Para isto, siga
estes passos:
1. Selecione a Medida CorrenteA no Terminal2 do Disjuntor 52-03 (pertencente ao Bay1) e, através do menu
contextual, selecione a opção Inserir - Alarme Analógico.

Configuração de Alarmes 46
Inserir Alarme Analógico
2. Clique com o botão direito do mouse no Alarme e selecione a opção Propriedades. Na janela que se abre,
selecione a aba Analógico e configure-a como na figura a seguir.

Propriedades do Alarme Analógico


3. Execute a aplicação.
4. Clique no Display associado à Medida de corrente e selecione a opção Entrada Manual de Valores.

Entrada manual de valores


5. Digite um valor superior a 160 e verifique se o Alarme aparece no Sumário de Alarmes.

47 Configuração de Alarmes
Sumário de Alarmes

DESAFIO V
Crie Alarmes Analógicos para as Medidas TemperaturaOleo, TensaoA, PotenciaAtiva e CorrenteA do
Transformador TR-01.

Configuração de Alarmes 48
CAPÍTULO
Criação de Comandos
9
A padronização dos tipos de Comandos seguem o mesmo conceito introduzido nas Medidas Analógicas e Discretas.
O cadastro dos tipos de Comandos deve ser realizado na aba Comandos do objeto Configuração do Power. Alguns
exemplos de tipos de Comandos são: posição de disjuntor, posição de tap de transformador e comando local ou
remoto.
Assim como na padronização dos Estados ou Significados das Medidas Discretas, cada tipo de Comando pode ter
uma ou várias Ações de Comando. Exemplos de requisições de ações são Subir posição de tap, Abrir chave e
Habilitar função de religamento. A figura a seguir mostra a tela de configuração de padrões de Comandos.

Aba Comandos
A interface contém uma área de edição de scripts, apresentada na figura a seguir, que permite que o usuário defina
quais scripts são realizados quando os métodos Operate, Select e Cancel são executados nos objetos de Comando.
O padrão já vem com o evento OnOperate pré-configurado, com o script mínimo necessário para o envio de um
comando, basicamente escrever o valor configurado no Tag associado.

Evento OnOperate
Neste capítulo, vamos configurar o comando de abertura e fechamento das chaves não supervisionadas. Para isto, é
necessário reunir as informações de nome, descrição e valor a ser enviado para os pontos de comunicação.

9.1 Exercícios
Esta seção contém exercícios sobre o conteúdo deste capítulo.

49 Criação de Comandos
9.1.1 Posição da Chave
1. Clique com o botão direito do mouse na Chave 29-08, pertencente ao Bay1, e selecione a opção Adicionar -
Commands.
2. Clique com o botão direito do mouse na pasta Commands e selecione a opção Inserir - Comando Discreto.
3. Este Comando deve ter as seguintes propriedades alteradas:
· Name: cmdPosicaoChave
· CommandType: *SwitchPosition (na caixa de seleção)

Comando Discreto
4. No caso do Comando da Chave, vamos utilizar duas Unidades, uma destinada a enviar um comando para abrir e
outra para fechar. Selecione a UnidadeComando1 e altere a propriedade Name para "Abrir".
5. A Unidade de Comando Abrir deve enviar o comando Open. Selecione-a e, na lista de propriedades, configure a
propriedade CommandName para "Open".
6. Clique com o botão direito do mouse no Comando cmdPosicaoChave e selecione a opção Inserir - Unidade de
Comando ou, se preferir, crie uma cópia da Unidade Abrir.
7. Altere a propriedade Name da segunda Unidade para "Fechar".
8. Na Unidade Fechar, configure a propriedade CommandName para "Close".
9. Como nossa Chave não é supervisionada, o valor dos comandos Abrir (Open) e Fechar (Close) devem ser enviados
para a fonte Operator da Medida PosicaoChave. Na coluna Tag da Unidade Abrir, clique em para abrir o
AppBrowser.
10. No AppBrowser, selecione o item SE1.Bay1.[29-08].Measurements.PosicaoChave.Operator e clique em Colar.
11. Repita o passo anterior para a Unidade Fechar.

Unidades de Comando Abrir e Fechar

DICA
Em uma Subestação, é comum existir Disjuntores e Chaves não supervisionadas. No capítulo sobre comunicação
construiremos exemplos de comandos em equipamentos.

12. Execute a aplicação e teste a nova funcionalidade. Clique na Chave 29-08 e teste os Comandos cadastrados.

Criação de Comandos 50
Comandos de Chave
13. Crie o Comando Discreto "cmdPosicaoChave" para as Chaves 29-10 e 29-12.

DICA
A configuração do Comando é praticamente a mesma, portanto é possível copiar o objeto Commands e colá-lo nas
outras Chaves. Só não esqueça de alterar os Tags associados às Unidades Abrir e Fechar.

9.1.2 Local ou Remoto


O padrão de Comando Local/Remoto não existe no Elipse Power, portanto é preciso cadastrá-lo.
1. Selecione a aba Comandos do objeto Configuração do Power.
2. Clique em e selecione a opção Comando Discreto. Configure as seguintes propriedades:
· Nome: LR
· Fase Elétrica: 1 - epNone
· Descrição: Comando Local/Remoto
· Ordenação: 1000

3. Clique em para criar os Significados, conforme a figura a seguir.

51 Criação de Comandos
Criação de Significados
4. Na Subestação SE1, clique com o botão direito do mouse no Disjuntor 52-01 e selecione a opção Adicionar -
Commands.
5. Adicione um Comando Discreto na pasta Commands. Configure as seguintes propriedades deste objeto:
· Name: cmdLocalRemoto
· CommandType: LR (na caixa de seleção)

6. Adicione duas Unidades de Comando ao Comando cmdLocalRemoto, "Remoto" e "Local". Não esqueça de
configurar a propriedade CommandName destas Unidades.
7. Na coluna Tag selecione, utilizando o AppBrowser, o item SE1.[52-01].Measurements.LocalRemoto.Operator
para as Unidades Local e Remoto.
8. Execute a aplicação e teste o novo Comando.

Criação de Comandos 52
Comando Local/Remoto

DESAFIO VI
Crie um Comando de Passo para controle de posição do Tap do Transformador TR-01.

DICA
Utilize o Comando *TapPosition, que é padronizado pelo Elipse Power.

53 Criação de Comandos
CAPÍTULO
Intertravamentos
10
Os Intertravamentos têm a função de informar quando há uma restrição para a execução de algum Comando.
Esta restrição é aplicada a todos os Comandos que estão no mesmo nível e nos níveis inferiores. Por exemplo, um
Intertravamento criado em um Bay faz com que todos os Comandos presentes neste Bay sejam intertravados nos
equipamentos. Da mesma forma, um Intertravamento criado em uma Unidade de Comando tem influência apenas
nesta Unidade.
Pode-se adicionar diversos Intertravamentos dentro de cada pasta, e basta que se infrinja apenas um destes
Intertravamentos para que o Intertravamento seja disparado.
Por definição, o Intertravamento não bloqueia o Comando, apenas informa que ele está bloqueado. De posse desta
informação, a aplicação pode simplesmente avisar ao operador, como também efetivamente bloquear o Comando.

10.1 Exercícios
Neste exemplo, vamos configurar a Unidade de Comando de abertura do comando de posição da Chave 29-08, para
que informe que o Comando não pode ser enviado caso a Chave já esteja aberta. Para isto, siga estes passos:
1. Clique com o botão direito do mouse na Unidade de Comando Abrir do Comando cmdPosicaoChave, na pasta
Commands da Chave 29-08, pertencente ao Bay1, e selecione a opção Adicionar - Interlocks.
2. Clique com o botão direito do mouse na pasta Interlocks e selecione a opção Inserir - Intertravamento.
3. Configure a propriedade Measurement do Intertravamento com a expressão "SE1.Bay1.[29-
08].Measurements.PosicaoChave", utilizando o AppBrowser.
4. Configure a propriedade ComparisonValue do Intertravamento com o valor 0 - Aberta.
5. Repita os passos anteriores para o Intertravamento do Comando Fechar, alterando o valor da propriedade
ComparisonValue para 1 - Fechada.

Intertravamentos
6. Execute a aplicação e verifique as novas funcionalidades.

Intertravamentos 54
Comando de Chave

DESAFIO VII
Crie um Comando para operar o Disjuntor 52-01. Este Comando não pode ser enviado se o dispositivo estiver em
modo Local.

55 Intertravamentos
CAPÍTULO
Comunicação
11
O Elipse Power HMI permite a comunicação com equipamentos de aquisição de dados, controladores, CLPs
(Controladores Lógicos Programáveis), UTRs (Unidades Terminais Remotas), ou qualquer outro tipo de equipamento
através de Drivers de Comunicação ou Servidores OPC, de acordo com o tipo do equipamento ou tipo de
comunicação necessários. Os Drivers de Comunicação e Servidores OPC funcionam neste caso como servidores de
variáveis, ou seja, eles fornecem as informações do mundo externo para o Elipse Power para que a supervisão do
processo se realize. As variáveis envolvidas no processo são conhecidas como Tags e podem ser de vários tipos, de
acordo com a utilização desejada.

11.1 Exercícios
Neste exercício, configuraremos um Driver IEC61850 para comunicar com o Simulador IEC61850 Server da Infotech,
além de realizar a associação dos objetos de dados com as variáveis disponibilizadas. Para a simulação de
comandos, o Simulador contém duas chaves, uma do tipo DO (Direct Operate) e outra do tipo SBO (Select Before
Operate) que são supervisionadas e controlados através da aplicação desenvolvida.

NOTA
Para realizar este exercício, o Simulador IEC61850 Server da Infotech deve estar em execução. Este Simulador está
disponível em http://www.infotech.pl.

11.1.1 Driver IEC 61850


Primeiramente, realizaremos a configuração do Driver.
1. Clique com o botão direito do mouse no item Drivers e OPC do Organizer e selecione a opção Inserir Driver de
Comunicação em – Tutorial_Elipse_Power.prj. Neste momento, a janela de seleção do Driver é aberta. Busque a
DLL referente ao protocolo IEC 61850 (IEC61850.dll).
2. Altere o nome do objeto Driver1 para "IEC61850".
3. Abra a janela de configuração do Driver utilizando a opção Configurar o driver na barra de ferramentas do
Driver.
4. Na aba IEC61850 Device Config, declare os IEDs que vão ser utilizados na comunicação. No campo Server, digite
"INFOTECH" e, no campo IP, digite o endereço IP do servidor local ("127.0.0.1"). Em seguida, clique em Add para
adicionar um novo IED à lista de servidores.

Comunicação 56
Aba IEC61850 Device Config
5. Na aba Commands, selecione a opção Use Single Tag Command Alias. Esta opção instrui o Driver a criar,
durante o processo de importação de variáveis de comunicação via tag browsing, um Tag único para envio de
comandos. Se esta opção não estiver selecionada, o Driver utiliza uma Tag Bloco com cinco Elementos.

Aba Commands
6. Na aba IEC61850 General, selecione a opção Apply Local Time Offset to Timestamps. As estampas de tempo
adotadas pelo protocolo IEC 61850 sempre se referem ao padrão UTC (Universal Time Coordinate). Esta opção
indica que o Driver deve aplicar o offset local (fuso horário e horário de verão) à estampa de tempo enviada pelo
equipamento.

57 Comunicação
Aba IEC61850 General
7. Na aba Reports, habilite as opções Prefer Buffered Report Control Blocks e Poll Tags not found in any Report.
Desta maneira, o Driver trabalha de forma a buscar os Tags primeiramente em datasets associados a relatórios
bufferizados. Caso negativo, repete a busca mas agora em relatórios não bufferizados. Caso o Driver não encontre
o Tag em nenhum relatório, a leitura é realizada por polling. Lembre-se que a leitura por polling não é indicada,
uma vez que não é eficiente e não trabalha de forma a tratar o sequenciamento de eventos, ou seja, em uma
eventual desconexão, os dados deste período são perdidos.

Aba Reports
8. Para finalizar a configuração do Driver, clique em OK.
9. O protocolo IEC 61850 tem uma característica diferente em relação a outros protocolos de comunicação, uma vez
que informa quais as variáveis existentes, permitindo assim serem importados de forma dinâmica. A importação
pode ser realizada tanto de forma online, na qual o Driver trabalha de forma a buscar a base de dados do IED,

Comunicação 58
quanto de forma offline, na qual a base de dados é importada através de um arquivo no formato ICD ou SCD. A
importação dos Tags é realizada através da ferramenta Tag Browser do Driver. Neste exercício, realizaremos
uma importação online e, com o Simulador IEC61850 Server da Infotech executando, os Tags estão disponíveis na
pasta Online do Tag Browser.

Janela Tag Browser


10. Para adicionar os Tags de Comunicação ao projeto, arraste os Tags desejados da lista da direita para a lista da
esquerda. Utilizaremos os Tags referentes às Chaves Obj1CSWI1 e Obj3CSWI2. Portanto, arraste primeiro o
Logical Node (pasta) Obj1CSWI1 para o projeto. NOTA: As Chaves estão no Logical Device DemoProtCtrl.

Seleção do Logical Device Obj1CSWI1


11. Após adicionar os Tags referentes à Chave Obj1CSWI1, adicione o Logical Node (pasta) Obj3CSWI2 ao projeto.

59 Comunicação
Seleção do Logical Device Obj3CSWI2
12. Além destes dois Logical Devices, importe também as pastas I3pMMXU1$MX$A$phsA, I3pMMXU1$MX$A$phsB e
I3pMMXU1$MX$A$phsC, que estão na pasta DataSets/LLN0$DS1_Measurement do Logical Device
DemoMeasurement. A janela Tag Browser deve estar conforme a figura a seguir.

Seleção dos Logical Devices de DemoMeasurement

11.1.2 Configuração de Medidas e Comandos


Após configurar o Driver e importar os Tags, o próximo passo é associar as Medidas e Comandos criados até o
momento na estrutura de dados do Elipse Power com os Tags referentes à posição e Comandos destes dois
Disjuntores.
A primeira Chave a ser configurada na aplicação é do tipo DO (Direct Operate), ou seja, pode ser operada
diretamente, sem a necessidade de um comando Select. A Chave deste tipo no Simulador é a Obj1CSWI1, que vai ser
associada à Chave 29-02 da aplicação desenvolvida neste Tutorial.

Comunicação 60
1. O protocolo IEC 61850 disponibiliza a informação a respeito da posição de uma Chave através dos valores 1 (um,
fechado) e 2 (dois, aberto) e, nesta condição, é necessário criar uma nova Conversão nos padrões de Medidas
Discretas, a fim de converter o valor enviado pelo equipamento para os valores utilizados pelo Elipse Power. Na
aba Discretas do objeto Configuração do Power, clique no padrão *SwitchPosition e crie uma nova Conversão
com o nome "IEC61850" com os valores mostrados na figura a seguir.

Criação de uma Conversão


2. Realizada a configuração dos padrões, agora devemos realizar a configuração do objeto 29-02. Para isto,
selecione a Medida PosicaoChave na pasta Measurements da Chave 29-02. Configure a seguinte propriedade
desta Medida:
· MeasurementType: *SwitchPosition

3. Como vamos trabalhar com um Tag do Driver IEC 61850, é necessário criar uma fonte do tipo SCADA. Para isto,
clique com o botão direito do mouse na Medida PosicaoChave e selecione a opção Adicionar - Scada. Em
seguida, mude a propriedade ActiveSource da Medida Discreta para Scada.
4. Configure a propriedade Conversion da fonte SCADA como IEC61850 (criada anteriormente).
5. Associe a fonte SCADA da Medida PosicaoChave com o Tag IEC61850.Obj1CSWI1.ST.Pos.stVal. Esta Associação
é realizada no campo Tag da fonte, e o caminho referente ao Tag de Comunicação pode ser buscado tanto pelo
AppBrowser quanto pela propriedade PathName do próprio Tag.

61 Comunicação
Tag stVal
6. Após configurar a Medida de posição da Chave 29-02, deve-se criar o Comando de posição. O primeiro passo é
criar uma nova Conversão referente ao tipo de Chave (DO) nos padrões de Comando. Para isto, na aba
Comandos do objeto Configuração do Power, selecione o padrão *SwitchPosition e crie uma nova Conversão
com o nome "IEC61850_DO", alterando apenas os valores da coluna Operate Feedback. O feedback retornado
pelo protocolo IEC 61850 para um comando Operate efetuado com sucesso é 5 (cinco), portanto deve-se alterar
o valor da coluna Operate Feedback para o valor "5", tanto na Conversão Open quanto na Conversão Close.

Nova Conversão

Comunicação 62
7. Clique com o botão direito do mouse na Chave 29-02 e selecione a opção Adicionar - Commands. Adicione um
Comando Discreto na pasta Commands e configure as seguintes propriedades deste objeto:
· Name: cmdSwitch
· CommandType: *SwitchPosition (através da caixa de seleção)
· Conversion: IEC61850_DO

8. Nesta Chave vão ser inseridas duas Unidades de Comando, uma destinada a enviar um comando para abrir e
outra para fechar. Por padrão, o objeto Comando já vem com uma Unidade de Comando criada, portanto deve-
se criar apenas uma nova Unidade. Para isto, clique com o botão direito do mouse no Comando cmdSwitch e
selecione a opção Inserir - Unidade de Comando.
9. Selecione a UnidadeComando1 e configure as seguintes propriedades:
· Name: Abrir
· CommandName: Open

10. Selecione a UnidadeComando2 e configure as seguintes propriedades:


· Name: Fechar
· CommandName: Close

11. O Simulador utilizado neste exercício contém duas Chaves, uma do tipo DirectOperate e outra do tipo
SelectBeforeOperate. Neste primeiro exercício, devemos configurar o Comando do tipo DirectOperate. Para
Chaves deste tipo, o Simulador disponibiliza apenas um Tag Operate responsável por realizar os Comandos de
abrir ou fechar. Além disto, é possível utilizar o recurso de feedback para verificar o retorno do equipamento em
relação ao Comando enviado. Os seguintes Tags devem ser associados com as propriedades OperateWriteTag e
OperateFeedbackTag das Unidades de Comando Abrir e Fechar.
· OperateFeedbackTag: IEC61850.Obj1CSWI1.CO.Pos.Pos_Stat.Status
· OperateWriteTag: IEC61850.Obj1CSWI1.CO.Pos.Operate

NOTA
Os Tags, tanto para a Unidade de Comando Abrir quanto para a Unidade de Comando Fechar, são os mesmos.
Cada Unidade de Comando possui suas respectivas propriedades OperateWriteTag e OperateFeedbackTag, e são
associadas exatamente com os mesmos Tags do Driver.

12. Execute a aplicação paralelamente com o Simulador Infotech e teste o novo Comando.

Aplicação em tempo de execução


13. Após configurar o Comando e a Medida da posição da Chave 29-02, devemos criar as Medidas Analógicas
referentes às correntes de fase A, B e C da Chave Obj1CSWI1 do Simulador. Para isto, crie três Medidas
Analógicas dentro da pasta Measurements do objeto 29-02 da estrutura de dados do Elipse Power, através da
opção Inserir - Medida Analógica.
14. Renomeie as Medidas para "CurrentA", "CurrentB" e "CurrentC", configurando o tipo destas Medidas com seu
respectivo padrão, conforme mostrado na figura a seguir.

63 Comunicação
Medidas Analógicas
15. Crie uma fonte do tipo SCADA em cada uma das Medidas, clicando com o botão direito na Medida e
selecionando a opção Adicionar - SCADA.
16. Altere as seguintes propriedades da Medida CurrentA:
· ActiveSource: 1 - stScada
· Tag: IEC61850.[I3pMMXU1$MX$A$phsA].cVal.mag.f.Value

17. Altere as seguintes propriedades da Medida CurrentB:


· ActiveSource: 1 - stScada
· Tag: IEC61850.[I3pMMXU1$MX$A$phsB].cVal.mag.f.Value

18. Altere as seguintes propriedades da Medida CurrentC:


· ActiveSource: 1 - stScada
· Tag: IEC61850.[I3pMMXU1$MX$A$phsC].cVal.mag.f.Value

Comunicação 64
Fontes do tipo SCADA
19. Crie três objetos XPowerDisplay ao lado da Chave 29-02 na tela de operação e associe-os com as Medidas
Analógicas CurrentA, CurrentB e CurrentC.
20. Execute a aplicação e verifique as novas funcionalidades.

O Simulador também contém uma Chave SBO (Select Before Operate), que necessita um Comando de seleção antes de
ser operada. Para trabalhar com este tipo de Comando, deve-se criar uma nova Conversão nos padrões de Comando,
além de realizar as Associações necessários, tanto no Comando quanto nas Medidas.
21. Na aba Comandos do objeto Configuração do Power, selecione o Comando *SwitchPosition e crie uma nova
Conversão com o nome "IEC61850_SBO". Neste exercício, vamos utilizar a opção Select automático antes de
Operate. Desta maneira, a seleção é realizada de forma automática, antes do envio do Comando Operate. Como
descrito anteriormente, o feedback retornado pelo protocolo IEC 61850 para o comando Operate efetuado com
sucesso é 5 (cinco). Para o comando Select, o protocolo prevê o retorno do valor 2 (dois) para informar o
sucesso da operação. Configure o valor das colunas Operate Feedback e Select Feedback com seus respectivos
valores 5 (cinco) e 2 (dois) em ambas as ações de comando, Open e Close.

65 Comunicação
Conversão do tipo Select Before Operate
22. Ainda na Conversão IEC61850_SBO, deve-se criar um script para realizar o Comando de seleção. Através da caixa
de seleção, selecione o evento OnSelect e clique em para gerar o script. Este script é criado automaticamente
e não é necessário nenhuma alteração para seu correto funcionamento.
23. Localize a Medida PosicaoChave na pasta Measurements da Chave 29-04. Configure as seguintes propriedades
desta Medida:
· MeasurementType: *SwitchPosition

24. Adicione uma fonte do tipo SCADA clicando com o botão direito do mouse na Medida PosicaoChave e
selecionando a opção Adicionar - Scada. Em seguida, altere as seguintes propriedade desta fonte:
· ActiveSource: 1 - stScada
· Conversion: IEC61850

25. Na Medida SCADA, associe o Tag para leitura de posição da Chave. Clique em para localizar o Tag utilizando
o AppBrowser, ou copie a propriedade PathName do Tag de Comunicação. Busque pelo seguinte Tag do Driver
IEC61850:
· Tag: IEC61850.Obj3CSWI2.ST.Pos.stVal

26. Em seguida, deve-se adicionar um Comando de posição para a Chave 29-04. Clique com o botão direito do
mouse neste objeto e selecione a opção Adicionar - Commands. Insira um novo Comando Discreto na pasta
Commands, através da opção Inserir - Comando Discreto, e altere as seguintes propriedades:
· Name: cmdSwitch_SBO
· CommandType: *SwitchPosition
· Conversion: IEC61850_SBO

Neste Comando vão ser criadas duas Unidades de Comando, referentes aos Comandos de abrir e fechar.
27. Clique com o botão direito do mouse no Comando cmdSwitch_SBO e selecione a opção Inserir - Unidade de
Comando.

Comunicação 66
28. Selecione a UnidadeComando1 e altere as seguintes propriedades:
· Name: Abrir
· CommandName: Open

29. Selecione a UnidadeComando2 e altere as seguintes propriedades:


· Name: Fechar
· CommandName: Close

Diferentemente da Chave anterior, esta Chave é do tipo Select Before Operate (SBO), ou seja, requer um Comando de
seleção antes de ser operada. Para isto, além do Tag referente ao Comando Operate, também deve-se associar o
Tag referente ao Comando Select às Unidades de Comando. Lembre-se que utilizaremos o recurso de feedback, tanto
do Comando Select quanto do Comando Operate.
30. Os seguintes Tags de Comunicação devem ser associados com as propriedades OperateFeedbackTag,
OperateWriteTag, SelectFeedbackTag e SelectWriteTag das Unidades de Comando Abrir e Fechar:
· OperateFeedbackTag: IEC61850.Obj3CSWI2.CO.Pos.Pos_Stat.Status
· OperateWriteTag: IEC61850.Obj3CSWI2.CO.Pos.Operate
· SelectFeedbackTag: IEC61850.Obj3CSWI2.CO.Pos.Pos_Stat.Status
· SelectWriteTag: IEC61850.Obj3CSWI2.CO.Pos.SelectWithValue

31. Execute a aplicação paralelamente com o Simulador Infotech e teste o novo Comando.

67 Comunicação
CAPÍTULO
Simulação de Valores e Associações
12
Associações (ou Conexões) são ligações realizadas entre propriedades e objetos ou entre outras propriedades. As
Associações trazem grande facilidade ao criar animações e outros tipos de lógicas comuns, minimizando a utilização
de scripts.
Através da aba Associações da Janela de Propriedades, tem-se acesso a todas as propriedades disponíveis do objeto
a ser tratado e todos os tipos possíveis de Associações para estas propriedades.

Aba Associações
Pode-se associar um objeto ou criar uma expressão. Ao criar uma expressão ou associar um objeto ou propriedade
ao campo Fonte, o texto aparece na cor azul, caso este corresponda a um item existente ou carregado no Studio. Se
o item não existir, ou pertencer a um módulo não existente no Domínio, o texto aparece em vermelho, e este item é
mostrado como um erro, até ser corrigido ou excluído com a opção Verificar Domínio.

12.1 Tipos de Associação


Esta seção contém informações sobre os tipos de Associações.

12.1.1 Associação Simples


Na Associação Simples, o valor do campo Fonte é copiado para a propriedade toda vez que a fonte é modificada.

Associação Simples
Simulação de Valores e Associações 68
12.1.2 Associação Bidirecional
Na Associação Bidirecional acontece o mesmo que na Associação Simples, porém caso também haja uma variação
na propriedade, seu valor é copiado para o campo Fonte, gerando assim um caminho de duas direções.

Associação Bidirecional

12.1.3 Associação Digital


Já na Associação Digital é possível estabelecer que, caso a variável ou expressão do campo Fonte seja uma
propriedade digital, seus estados Verdadeiro e Falso são mapeados para certos valores no destino, incluindo a opção
de Pisca (alternância de valores).

Associação Digital

12.1.4 Associação Analógica


A Associação Analógica permite estabelecer uma escala de conversões entre a variável fonte e a variável destino.
Através de quatro valores especificados, é realizada uma escala linear entre os valores da propriedade e os valores
da fonte.

69 Simulação de Valores e Associações


Associação Analógica

12.1.5 Associação por Tabela


Na Associação por Tabela, pode-se estabelecer condições entre a variável, os valores e o destino. Na tabela são
especificados valores mínimos e máximos, e valores para a propriedade referente a estas condições.

Associação por Tabela

Simulação de Valores e Associações 70


12.1.6 Associação Reversa
A Associação Reversa é uma Associação unidirecional do objeto para a fonte.

Associação Reversa

12.1.7 Associação Múltipla


Na Associação Múltipla, cada linha da Associação permite buscar o valor de uma fonte diferente. A fonte ativa é
selecionada de acordo com o valor da fonte principal da Associação.

Associação Múltipla

12.2 Edição de Associações


O Elipse Power possui uma ferramenta chamada Editar Associações, onde é possível mudar uma ou mais
Associações criadas na aplicação de forma mais rápida do que pela janela tradicional. O acesso a esta ferramenta é
realizado clicando-se com o botão direito do mouse em um ou mais objetos e selecionando a opção Editar
Associações.

71 Simulação de Valores e Associações


Janela Editar Associações

12.3 Servidor de Dados


O Servidor de Dados é o módulo responsável pela execução e gerenciamento de Tags e objetos que não estejam
envolvidos diretamente com a comunicação. Através do Servidor de Dados pode-se configurar Tags internos e Tags
de simulação, além de inserir XObjects, que são os objetos de dados das bibliotecas ElipseX. Alguns dos objetos que
podem ser inseridos no Servidor de Dados estão listados na tabela a seguir.
Objetos que podem ser inseridos no Servidor de Dados
OBJETO DESCRIÇÃO
Tag Contador Objeto que faz uma contagem de tempo, em segundos,
até atingir um valor pré-determinado, ou que realiza
uma certa contagem indefinidamente.

Tag Demo Objeto que gera valores de acordo com a forma de


onda. É utilizado para simulação de valores e permite
gerar curvas definidas ou valores aleatórios.

Tag Interno Objeto de propósito genérico, utilizado para guardar


valores de qualquer tipo, incluindo números, textos e
outros objetos.

Tag Timer Objeto para contagem de tempo e programação de


atividades. Estabelece horários, com repetições, para
executar ações.

Pasta de Dados Define grupos e subdiretórios para a organização das


informações. Novas pastas podem ser inseridas dentro
de outras, conforme a necessidade.

NOTA
Os objetos inseridos no Servidor de Dados são executados pelo E3 Server, portanto estão presentes no Servidor.
Esta informação retrata o modo como o Elipse Power trabalha.

12.4 Valores Booleanos


Em VBScript, 0 (zero) é considerado como Falso e qualquer valor diferente de zero é considerado Verdadeiro.
Considere, por exemplo, um Tag que representa uma entrada ou saída digital, portanto seus valores são 0 (zero) ou 1
(um). Ao usar o valor do Tag para Associações com propriedades do tipo Boolean, o Elipse Power considera o
seguinte:
Valor do Tag para tipos Boolean
TAG VBSCRIPT
0 Falso

1 Verdadeiro

Ao utilizar o comando NOT, o Elipse Power considera o seguinte:

Simulação de Valores e Associações 72


Valor do Tag com NOT
TAG NOT TAG VBSCRIPT
0 -1 Verdadeiro

1 -2 Verdadeiro

Portanto, NOT de 1 (um) não é Falso, pois seu valor não é igual a 0 (zero). Caso deseje utilizar o comando NOT,
primeiro converta o valor do Tag para Boolean com o método CBool.
Conversão de Tags com CBool
TAG CBOOL(TAG) NOT CBOOL(TAG)
0 Falso Verdadeiro

1 Verdadeiro Falso

Uso do método CBool


Outra opção seria trabalhar com a propriedade Bit00 do Tag, que já é uma propriedade do tipo Boolean, ao invés
de trabalhar com a propriedade Value do Tag.

Uso da propriedade Bit00

73 Simulação de Valores e Associações


12.5 Exercícios
12.5.1 Horário do Sistema
1. No Organizer, selecione o item Objetos de Servidor - Objetos de Dados - Dados.
2. Insira um Tag Demo com o nome "Relogio".

Adicionar Tag Demo


3. Configure a propriedade Type deste Tag para 3 - CurrentTime.
4. Abra a janela Tela_Menu e insira um novo Display no canto da Tela, para exibir o horário atual.
5. Abra a janela de propriedades deste objeto e selecione a aba Formatação. Defina o formato como Hora e, no
item Tipo, selecione 13:06:03. Esta formatação mostra as horas, os minutos e os segundos.

Horário do sistema
6. Selecione a aba Associações. Na propriedade Value, use o AppBrowser para selecionar, na coluna Fonte, o Tag
Demo Relogio (em Objetos de Servidor - Objetos de Dados - Dados). À direita, selecione a propriedade Value e
clique em Colar. A informação vai do Tag para o Display, logo a Associação é do tipo Simples (Propriedade «
Fonte).

Simulação de Valores e Associações 74


Display

12.5.2 Simulação de Corrente


1. Crie mais um Tag Demo na pasta Dados, com o nome "Corrente5203".
2. Altere as seguintes propriedades:
· Minimum: 125
· Maximum: 250
· Type: 0 - Random

3. Clique com o botão direito do mouse na Medida Analógica CorrenteA no Terminal2 do Disjuntor 52-03,
pertencente ao Bay1, e selecione a opção Adicionar - Scada.
4. Associe o Tag Demo criado anteriormente na coluna Tag desta fonte de medida.

Associação de Tag Demo


5. Por fim, altere a propriedade ActiveSource da Medida CorrenteA para 1 - stScada.

12.5.3 Indicação de Local e Remoto


1. Abra a Tela_SE1 e insira um Display ao lado do Disjuntor 52-02.

Display
2. Clique com o botão direito do mouse no Display e selecione a opção Propriedades. Na janela que se abre,
selecione a aba Associações.
3. Na propriedade Value, use o AppBrowser para selecionar, na coluna Fonte, a Medida Discreta LocalRemoto, na
pasta Measurements do Disjuntor 52-02. À direita, selecione a propriedade Value e clique em Colar.
4. Configure a conexão como Digital e defina os valores conforme a figura a seguir.

75 Simulação de Valores e Associações


Propriedade Value
5. Execute a aplicação. Alterne o valor da Medida entre Local e Remoto, e verifique se o texto do Display sinaliza a
informação corretamente.

DESAFIO VIII
Quando houver um ou mais alarmes não reconhecidos na Subestação, o texto do botão SE1 na Tela_Menu deve
piscar em outra cor.

DICA
Utilize a propriedade ActiveNACKAlarms do objeto Subestação.

Simulação de Valores e Associações 76


CAPÍTULO
Introdução aos Scripts
13
Os Scripts são trechos de código (programação) com os quais se pode criar procedimentos associados a eventos
específicos, permitindo grande flexibilidade no desenvolvimento e no uso de aplicações. Todos os scripts estão
associados a eventos, e cada objeto do Elipse Power possui uma lista de eventos previamente definidos, sendo
possível também definir novos eventos de usuário.
De acordo com os conceitos da programação orientada a objetos, as Propriedades definem atributos de um objeto,
como a aparência de um controle de Tela ou o valor inicial de um objeto quando se inicia o aplicativo.

NOTA
Estamos trabalhando até agora apenas com propriedades no Elipse Power. Já conhecemos algumas propriedades
dos objetos do Elipse Power e vimos que temos duas maneiras de alterá-las, na Janela de Propriedades ou por
Associações.

Os Métodos são funções previamente definidas, que executam determinadas ações sobre as propriedades do objeto
que chama estas ações. Exemplos disto são funções para realizar a escrita em Tags (Write ou WriteEx), entre outras.
Em linguagens de programação orientadas a objeto, para agir sobre uma propriedade é necessária a criação de
métodos. No Elipse Power, para cada método desejado, é necessário definir a qual evento ele está associado, pois
os scripts do Elipse Power são orientados a eventos.
Os Eventos são ocorrências relacionadas a um objeto, que podem ser tratadas de modo a se realizar uma ação (um
método).

13.1 Definindo Scripts


A linguagem que o Studio usa em seus scripts é o VBScript, um subconjunto da linguagem Visual Basic desenvolvida
pela Microsoft. O VBScript possui um interpretador rápido, leve e portável, desenvolvido para o uso em navegadores
para a Internet e outras aplicações que usam ActiveX Controls, Automation Servers e Java Applets. Os scripts são sempre
associados a eventos de um determinado objeto. Entretanto, para facilitar e aumentar a velocidade de
desenvolvimento, o Elipse Power já incorpora algumas ações mais comuns que podem ser realizadas com scripts
através de assistentes (wizards) chamados Picks. Pode-se definir que um determinado evento executa um script, um
Pick ou uma combinação deles, em uma sequência definida durante a criação do script (no Studio).

13.1.1 Executar Scripts


Permite a edição de um script personalizado que é executado na ocorrência do evento determinado.

Executar Script

13.1.2 Picks
Os Picks implementam uma forma amigável de realizar procedimentos comuns em scripts, poupando tempo de
escrita de código. Entre eles estão ações como troca de Tela ou atribuição de valores, que são bastante comuns na
criação de um projeto.

77 Introdução aos Scripts


13.1.2.1 Abrir Tela
Abre uma determinada Tela ou Quadro.

Pick Abrir Tela

Introdução aos Scripts 78


13.1.2.2 Abrir Tela Modal
Abre uma Tela em estilo modal.

Pick Abrir Tela Modal

13.1.2.3 Executar Aplicação


Executa um programa específico.

Pick Executar Aplicação

79 Introdução aos Scripts


13.1.2.4 Carregar Valor
Carrega um valor em um Tag.

Pick Carregar Valor

13.1.2.5 Inverter Valor


Permite mudar o valor de um Tag. Se o valor do Tag for igual a Valor1, então o Tag recebe Valor2. Se o valor do Tag
for igual a Valor2, então o Tag recebe Valor1. Se o valor do Tag não for igual nem a Valor1 nem a Valor2, o Tag
recebe Valor1.

Pick Inverter Valor

Introdução aos Scripts 80


13.1.2.6 Imprimir Relatório
Permite imprimir um Relatório em uma Tela ou em uma impressora.

Pick Imprimir Relatório

13.2 Eventos
Os Eventos são ocorrências relacionadas a um objeto, que disparam ações programadas. Basicamente são dois tipos
de eventos: Físicos (ou externos) e Internos.
Eventos físicos são, por exemplo, ações no teclado ou no mouse. Neste caso, a informação relevante é a tecla
pressionada ou a posição do cursor e o status dos botões. Eventos internos são, por exemplo, a mudança de uma
temperatura de uma câmara de 10 para 11 graus Celsius.
No Elipse Power há uma lista disponível de eventos classificada por objetos, iniciando pelos eventos padrão,
presentes em todos os objetos. Estes eventos são acessados através da aba Scripts, disponível no Editor do objeto
para o qual se deseja criar o script.

Lista de eventos

81 Introdução aos Scripts


13.2.1 Eventos Definidos pelo Usuário
Apesar de o Elipse Power vir com uma extensa gama de eventos, muitas vezes o usuário necessita criar um evento
específico para a aplicação. Um exemplo para a utilização de eventos definidos pelo usuário é a realização de um
cálculo (ou tarefa mais complexa) em um objeto, quando o evento gerador vem de outro Tag ou propriedade.
É possível a criação de eventos personalizados definidos pelo usuário através da opção Criar novo evento na lista de
eventos ou ao clicar em Criar evento do usuário .

Criar evento do usuário

13.3 Métodos
Os Métodos são procedimentos que podem ser executados por objetos. Por exemplo, o objeto Tela tem um método
para a adição de objetos (AddObject) e outro para o seu fechamento (Close). Por estarem encapsulados, isto é,
guardados dentro dos objetos, na chamada de um método sempre deve constar a qual objeto este método se refere.
Muitos métodos pré-definidos possuem parâmetros, que podem (ou devem) ser passados na sua chamada. Para isto,
o VBScript possui uma regra que deve ser seguida. Se o método é utilizado em uma atribuição, seus parâmetros
devem estar entre parênteses. Os parênteses usados nas citações de métodos neste Tutorial servem apenas como
indicativo para diferenciá-los das propriedades. Nos scripts, deve-se seguir esta regra.

AppBrowser

13.4 Propriedades
Todo objeto possui Propriedades que guardam informações a respeito de suas características. Por exemplo, um
objeto do tipo Retângulo possui a propriedade Name, que contém seu nome e as propriedades Width e Height, que

Introdução aos Scripts 82


guardam sua largura e altura, respectivamente, entre outras. Para acessar as propriedades, proceda como no tópico
Métodos, porém selecione a pasta Propriedades no AppBrowser.

13.5 Exercícios
13.5.1 Pick Abrir Tela
Vamos implementar a navegação entre as Telas da aplicação. Cada botão na Tela_Menu deve abrir sua respectiva
Tela na área central do Quadro.
1. Na Tela_Menu, selecione o botão identificado como "SE1" e, na parte inferior, selecione a aba Scripts.
2. No evento Click, crie um novo Pick do tipo Abrir Tela.
3. No campo Abrir a Tela, selecione o item Tela_SE1 e, no campo No Quadro, selecione o item Area_Central.

Pick Abrir Tela


4. Configure o botão identificado como "Eventos" para que abra a sua respectiva Tela.

13.5.2 Script
Vamos criar um botão "Sair" para que o usuário possa fechar a aplicação.
1. Na Tela_Menu, insira um novo botão com a propriedade Caption igual a "Sair".
2. No botão Sair, crie um novo script.

83 Introdução aos Scripts


Script
3. Para inserir comentários em um script, inicie a linha com aspas simples. Digite o texto a seguir.
'Sair da aplicação

4. Na linha seguinte, abra o AppBrowser , selecione o método Exit do Viewer e clique em Colar.
'Sair da aplicação
Application.Exit

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

DESAFIO IX
Crie um botão ao lado do banner de alarmes para reconhecer todos os alarmes ativos da aplicação.

DICA
Esta ação pode ser realizada através de um método do objeto E3Alarm.

Introdução aos Scripts 84


CAPÍTULO
Elipse Gateway
14
O Elipse Power permite implementar um gateway de protocolos. O Elipse Gateway provê um gateway via software que
dispensa a necessidade de hardware adicional e garante a eficiência da transmissão de dados. Esta solução pode ser
utilizada por subestações ou unidades de geração para reportar dados para centros de controle e órgãos de gestão
de energia, ou simplesmente para a troca de dados entre dois sistemas. A estrutura do Elipse Gateway é a seguinte:

Estrutura do Elipse Gateway


Para criar um gateway de comunicação entre os dois Drivers (mestre e escravo) na mesma aplicação, siga os
procedimentos vistos nos exercícios a seguir.

14.1 Exercícios
Neste exercício criaremos um Driver IEC 104 Slave para prover dados coletados através do protocolo IEC 61850, desta
forma compondo um gateway de protocolos. Além de prover os dados coletados, criaremos Tags para enviar
comandos através do protocolo IEC 870-104. A aplicação para simular o COS (IEC 104 Master) pode ser encontrada
no artigo sobre gateways do Knowledgebase da Elipse Software.

14.1.1 Driver de Comunicação


1. Crie um novo Driver de Comunicação clicando com o botão direito do mouse no item Objetos de Servidor -
Drivers e OPC, selecionando a opção Inserir Driver de Comunicação em e selecionando o projeto do Tutorial.
Selecione o arquivo .dll referente ao Driver IEC 870-104 e renomeie o objeto criado para "IEC104".
2. Na aba IEC870, configure a opção Protocol como IEC 870-5-104 SLAVE.

Opção Protocol
3. Selecione o item Slave dentro da aba IEC870 e configure a opção Select/Execute command com o valor handle
automatically. Esta opção permite que todos os comandos recebidos sejam repassados diretamente aos Tags
do Driver, sem que a aplicação necessite gerenciar as respostas ao sistema externo mestre.

85 Elipse Gateway
Opção Select/Execute Command
4. Selecione o item Stations dentro da aba IEC870, selecione a opção Use the following list of pre-defined
stations, clique em Add e configure a nova estação conforme a figura a seguir.

Opção Adicionar Estações


5. Selecione a aba Setup e configure a opção Physical Layer como Ethernet e a opção Timeout para três segundos
(3000 ms).
6. Por fim, selecione a aba Ethernet e habilite a opção Listen for connections on port, configurando o Driver para
escutar na porta 2404.

14.1.2 Tags de Comunicação do Driver IEC 870-104


Após configurar o Driver, vamos criar os Tags de Comunicação. As ASDUs que vamos utilizar são as seguintes:
· 30 - M_SP_TB_1 (definida no IEC 870-5-104): Single-point information with time tag (contém timestamp)

Elipse Gateway 86
· 36 - M_ME_TF_1 (definida no IEC 870-5-104): Measured value, short floating point number with time tag
(contém timestamp)
· 45 - C_SC_NA_1 (Slave): Single command

1. Clique com o botão direito do mouse no Driver IEC104 e selecione o item Inserir - Nova Pasta para criar três
novas Pastas de Comunicação.
2. Renomeie estas Pastas para "Analogicas", "Discretas" e "Comandos".

Pastas do Driver
3. Primeiramente, crie os Tags de Comunicação referentes às Medidas Analógicas CorrenteA, CorrenteB e
CorrenteC da Chave Obj1CSWI1 do Driver IEC61850. Para isto, dentro da Pasta Analogicas crie três Tags de
Comunicação usando a opção Inserir - Tag de Comunicação do menu contextual.
4. Renomeie estes Tags para "CSWI1_CurrentA", "CSWI1_CurrentB" e "CSWI1_CurrentC".
5. Configure os parâmetros N destes Tags com os seguintes valores:
· CSWI1_CurrentA: N1 = 1, N2 = 5, N3 = 36 e N4 = 7
· CSWI1_CurrentB: N1 = 1, N2 = 5, N3 = 36 e N4 = 8
· CSWI1_CurrentC: N1 = 1, N2 = 5, N3 = 36 e N4 = 9

Tags de Comunicação analógicos


6. Configure as propriedades dos Tags de Comunicação CSWI1_CurrentA, CSWI1_CurrentB e CSWI1_CurrentC com
os seguintes valores:
· AllowWrite: True
· AllowRead: False
· AdviseType: 0 - AlwaysinAdvise

7. Agora associe os Tags de Comunicação CSWI1_CurrentA, CSWI1_CurrentB e CSWI1_CurrentC com os Tags


referentes às correntes de fase A, B e C da Chave Obj1CSWI1 do Simulador IEC61850 Infotech. Para isto, clique
com o botão direito do mouse no Tag CSWI1_CurrentA e selecione a opção Propriedades. Na aba Associações,
crie uma Associação na propriedade Value, buscando pelo valor "IEC61850.
[I3pMMXU1$MX$A$phsA].cVal.mag.f.Value" no Driver IEC61850.

87 Elipse Gateway
Associação Simples
8. Repita o passo anterior para os Tags CSWI1_CurrentB e CSWI1_CurrentC, associando-os com os valores
"IEC61850.[I3pMMXU1$MX$A$phsB].cVal.mag.f.Value" e "IEC61850.[I3pMMXU1$MX$A$phsC].cVal.mag.f.Value",
respectivamente.
9. Agora crie os Tags para as Medidas Discretas. Para isto, clique com o botão direito do mouse na Pasta Discretas
e use a opção Inserir - Tag de Comunicação para criar três Tags de Comunicação.
10. Renomeie estes Tags para "pos_CSWI1", "pos_3CSWI2" e "Feedback_pos_3CSWI2".
11. Configure os parâmetros N destes Tags com os seguintes valores:
· pos_CSWI1: N1 = 1, N2 = 5, N3 = 30 e N4 = 1
· pos_3CSWI2: N1 = 1, N2 = 5, N3 = 30 e N4 = 2
· Feedback_pos_3CSWI2: N1 = 1, N2 = 5, N3 = 36 e N4 = 3

Tags de Comunicação discretos


12. Configure as propriedades dos Tags de Comunicação pos_CSWI1, pos_3CSWI2 e Feedback_pos_3CSWI2 com os
seguintes valores:
· AllowWrite: True
· AllowRead: False
· AdviseType: 0 - AlwaysinAdvise

13. Associe a propriedade Value do Tag Feedback_pos_3CSWI2 com o valor


"IEC61850.Obj1CSWI1.CO.Pos.Pos_Stat.Status.Value" do Driver IEC61850.

Elipse Gateway 88
Associação Simples
14. Nos Tags referentes à posição das Chaves CSWI1 e 3CSWI2, deve-se realizar uma Conversão, uma vez que esta
informação é retornada através de um ponto duplo no protocolo IEC 61850 (0, 1, 2 e 3) e deve ser disponibilizada
através de um ponto simples no protocolo IEC 104 (0 e 1). Para realizar esta Conversão, utilize uma Associação
por Tabela. Para isto, clique com botão direito do mouse no Tag pos_CSWI1 e selecione a opção Propriedades.
Crie uma Associação na propriedade Value, buscando pelo valor "IEC61850.Obj1CSWI1.ST.Pos.stVal.Value" do Tag
referente à posição da Chave CSWI1 no Driver IEC61850.

Associação Simples
15. Clique na Associação e selecione a opção Conexão por tabela . Esta tabela deve ser criada de forma a
converter os valores 1 (um) e 2 (dois), retornados pelo Driver IEC61850 para representar a posição de uma Chave,
nos valores 0 (zero) e 1 (um), utilizados pelo protocolo IEC 104. A tabela deve ficar conforme a figura a seguir.

89 Elipse Gateway
Associação por Tabela
16. Repita os passos anteriores para criar uma Associação por Tabela no Tag pos_3CSWI2. Crie esta Associação na
propriedade Value do Tag com o valor "IEC61850.Obj3CSWI2.ST.Pos.stVal.Value", referente ao Tag da posição da
Chave Obj3CSWI2 no Driver IEC61850.

Associação por Tabela


17. Por fim, crie os Tags de comando no Driver IEC104. Primeiro, crie um Tag de Comunicação responsável por enviar
o comando para a Chave CSWI1. Para isto, clique com o botão direito do mouse na Pasta Comandos e selecione
a opção Inserir - Tag de Comunicação.
18. Renomeie este Tag para "Operate_CSWI1".
19. Configure os parâmetros N deste Tag com os seguintes valores:
· Operate_CSWI1: N1 = 1, N2 = 4, N3 = 45 e N4 = 4

Elipse Gateway 90
Tag de Comunicação para comandos
20. Configure as seguintes propriedades do Tag Operate_CSWI1:
· AllowWrite: False
· AllowRead: True
· AdviseType: 0 - AlwaysinAdvise

21. Agora deve-se implementar um script para tratar os comandos recebidos no Driver IEC104 e realizar o envio dos
comandos para o Driver IEC61850. Para isto, selecione o Tag Operate_CSWI1 na aba Design do Driver, selecione
a aba Scripts, selecione o evento OnRead e clique em para criar um script.
22. Utilizando o AppBrowser , busque o método WriteEx do Tag de Comunicação responsável por enviar um
comando Operate para a Chave Obj1CSWI1, ou seja, "IEC61850.Obj1CSWI1.CO.Pos.Operate".
23. Retire os parênteses do método WriteEx e omita os parâmetros WriteStatus e WriteSyncMode.
24. Ao final deste procedimento, tem-se o script a seguir.
Sub Operate_CSWI1_OnRead()
Application.GetObject("IEC61850.Obj1CSWI1.CO.Pos.Operate")_
.WriteEx Value, Timestamp, Quality
End Sub

25. Após criar o script do Tag Operate_CSWI1, agora deve-se configurar o comando da Chave 3CSWI2. Como esta
Chave é do tipo SBO (Select Before Operate), deve-se criar um Bloco de Comunicação no Driver IEC104 que
trabalhe de forma a separar a informação recebida e, a partir daí, realizar a operação solicitada. Crie um novo
Bloco de Comunicação na Pasta Comandos, utilizando o menu contextual Inserir - Bloco de Comunicação.
26. Configure o nome do Bloco de Comunicação como "cmd_3CSWI2" e seu tamanho em quatro Elementos. Cada
Elemento deste Bloco de Comunicação representa as informações descritas a seguir para o comando recebido:
· Elemento 0: Valor do comando (depende do tipo de comando)
· Elemento 1: Cause Of Transmission (6: Activate ou 8: Deactivate)
· Elemento 2: Select/Execute (0: Execute ou 1: Select)
· Elemento 3: Quality Of Command (0: Undefined, 1: Short pulse duration, 2: Long duration pulse ou 3:
Persistent output)

27. Configure os parâmetros B do Bloco de Comunicação cmd_3CSWI2 com os seguintes valores:


· B1: 1
· B2: 4
· B3: 45
· B4: 5

28. Configure o nome dos Elementos deste Bloco de Comunicação para "Valor", "COT", "Operacao" e "Qualidade",
conforme a figura a seguir.

91 Elipse Gateway
Bloco de Comunicação
29. Configure as seguintes propriedades do Bloco de Comunicação cmd_3CSWI2:
· AdviseType: 0 - AlwaysInAdvise
· AllowRead: True
· AllowWrite: False

30. Por último, crie o script a seguir no evento OnRead do Bloco de Comunicação, para tratar a informação recebida
e realizar o envio do comando Select ou Operate para a Chave Obj3CSWI2 do Driver IEC61850. Este script deve
testar o valor recebido no Elemento Operacao e enviar o valor do Elemento Valor para os Tags Operate ou
SelectWriteValue da Chave Obj3CSWI2 no Driver IEC61850.
Sub cmd_3CSWI2_OnRead()
Valor = Item("Valor").Value
Operacao = Item("Operacao").Value
If Operacao = 1 Then
Application.GetObject("IEC61850.Obj3CSWI2.CO.Pos.SelectWithValue")_
.WriteEx Valor, Timestamp, Quality
Else
Application.GetObject("IEC61850.Obj3CSWI2.CO.Pos.Operate")_
.WriteEx Valor, Timestamp, Quality
End If
End Sub

31. Dependendo da ordem de ativação dos objetos instanciados na aplicação, é possível que o Driver escravo seja
ativado antes do Driver mestre e com isto o primeiro valor de cada variável não é recebido nos Tags do Driver
escravo. Por causa disto, é preciso criar um script de reinicialização dos Tags do Driver IEC104. Para isto, crie o
script a seguir no evento AfterStart do Driver IEC104 para ativar e desativar todos os Tags existentes.
Sub IEC104_AfterStart()
For Each Tag In Me
Tag.Deactivate()
Tag.Activate()
Next
End Sub

NOTA
No caso de Pastas dentro de um Driver, é necessário apenas desativá-las e reativá-las, não sendo necessário varrer
internamente cada uma das Pastas.

32. As configurações do gateway estão finalizadas. Para testar a comunicação, o artigo referente à implementação de
um gateway no Elipse Knowledgebase contém uma aplicação que se conecta à aplicação desenvolvida neste
Tutorial, de forma a validar as configurações necessárias.

Elipse Gateway 92
CAPÍTULO
Segurança e Usuários
15
O Elipse Power possui um controle de acesso às Telas, aos Alarmes e aos Domínios em uma lista de usuários, onde
para cada nome é atribuída uma senha e um login. Conforme a opção configurada, uma aplicação permite acesso aos
usuários cadastrados ou acesso ilimitado às Telas do projeto.

15.1 Usuários
Através da opção Usuários é possível configurar as informações referentes aos usuários que têm ou não acesso à
aplicação. Para utilizar este recurso, selecione o menu Arquivo - Usuários e clique na aba Usuários.

Aba Usuários

IMPORTANTE
Após configurar a segurança, somente os usuários listados têm acesso à aplicação.

15.2 Grupos
A opção Grupos permite que sejam criados grupos com características que são comuns para todos os seus membros
(usuários). Um grupo também pode pertencer a outros grupos. Só não é permitido pertencer a outro grupo que
pertença a ele, ou seja, uma referência circular. Para utilizar este recurso, selecione o menu Arquivo - Usuários e
clique na aba Grupos.

93 Segurança e Usuários
Aba Grupos

15.3 Permissões
A aba Permissões configura as permissões dos usuários e grupos para Domínios, Viewers, Telas e Alarmes. Uma
verificação de permissão consiste em uma informação que o membro do grupo tem sobre um comando que atua
sobre um objeto específico.
Por exemplo, o Usuario1 tem permissão para o comando Abrir sobre o objeto Tela1. Cada membro do grupo pode
negar ou afirmar a permissão de um comando, independente do grupo ao qual pertence. Desta forma, ele não vai
levar em consideração a informação do grupo. Também pode-se optar por sempre utilizar a informação definida pelo
grupo. Se as informações dos grupos são conflitantes, é usada a seguinte ordem de preferência: Negar » Afirmar »
Indiferente.

Segurança e Usuários 94
Aba Permissões

15.4 Proteção
O Elipse Power possui uma ferramenta de proteção de projetos ou de bibliotecas. Através deste item é possível
proteger o conteúdo do arquivo contra a edição, a visualização ou a execução não autorizada. Para utilizar este
recurso, clique com o botão direito do mouse no nome do projeto no Organizer e selecione a opção Proteção.

95 Segurança e Usuários
Proteção de arquivo
Esta opção possui dois tipos de proteção: Edição e Execução.
· Proteção de Edição: Protege o arquivo contra alterações e visualizações não autorizadas. Este recurso é utilizado
para evitar que determinada biblioteca ou projeto seja alterado acidentalmente, ou que sejam copiados
procedimentos de conhecimento específico do desenvolvedor. O Elipse Power fornece um controle sobre a
edição destes arquivos, sejam eles projetos ou bibliotecas
· Proteção de Execução: Esta opção é utilizada para proteger um arquivo contra execução não autorizada. Para
tanto, é necessário solicitar a gravação de uma senha no dispositivo de proteção, que é feita pela Elipse Software.
Isto protege o desenvolvedor de cópias não autorizadas do projeto, por exemplo

Quando um arquivo .lib ou .prj é aberto no Studio, este inicializa mostrando um ícone cinza com um cadeado,
indicando que está protegido e este conteúdo não pode ser acessado. Para acessar o conteúdo do arquivo, clique
com o botão direito do mouse neste ícone e selecione a opção Abrir com senha. Após informar a senha e liberar o
acesso, o ícone se torna colorido , indicando a acessibilidade dos arquivos.

IMPORTANTE
As proteções implementadas não podem ser desfeitas caso as senhas sejam perdidas. Portanto, ao proteger
determinado arquivo, mantenha as senhas armazenadas de modo seguro. Isto garante o acesso ao arquivo sempre
que necessário.

15.5 Exercícios
A seguir, veremos como configurar usuários em um Domínio no Elipse Power e como utilizar este recurso para inibir
ou permitir acesso a Telas, controles, alarmes, etc.

Segurança e Usuários 96
15.5.1 Usuários
1. No menu Arquivo, selecione a opção Usuários.

Menu Arquivo - Usuários


2. Selecione a aba Grupos e crie dois grupos de usuários, chamados Supervisores e Operadores.
3. Através da aba Usuário, crie quatro usuários. Tenha cuidado com o uso de maiúsculas e minúsculas.

Dados do usuário

NOTA
Selecione a opção Este usuário é um administrador para um dos usuários criados.

4. Configure dois usuários para pertencerem ao grupo Operadores e dois para o grupo Supervisores.

15.5.2 Permissões
1. Na aba Permissões, selecione a opção Grupos. Bloqueie a Tela_Eventos para o grupo Operadores.

15.5.3 Login
Na Tela_Menu, insira um objeto Command Button e modifique a propriedade Caption para "Login".
1. Selecione a aba Scripts do botão e adicione um script.
2. Na primeira linha, digite o seguinte comentário:
'Login do usuário
97 Segurança e Usuários
4. Na segunda linha, abra o AppBrowser e selecione o método Login do Viewer.
'Login do usuário
Application.Login()

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

15.5.4 Nome do Usuário


1. Na Tela_Menu, insira um objeto Display.
2. Clique com o botão direito do mouse no Display para abrir a janela de propriedades.
3. Na aba Associações, selecione a propriedade Value do objeto Display e crie uma Associação Simples com a
propriedade User do objeto Viewer.

Propriedade User do Viewer

DESAFIO X
Crie um usuário "Convidado" que não possa enviar Comandos, não possa escrever em Medidas e nem reconhecer
alarmes na aplicação.

Segurança e Usuários 98
CAPÍTULO
Proteções
16
Padrões de tipos de Proteções seguem o mesmo conceito introduzido nas Medidas e Comandos.O cadastro dos
tipos de Proteções deve ser realizado na aba Proteções do objeto Configuração do Power. Algumas Proteções já são
fornecidas pelo próprio instalador do Elipse Power, como Proteção de Sobrecorrente, Proteção de Subtensão, etc.
Além das existentes, também é possível criar novas Proteções.
A figura a seguir apresenta a tela de criação e edição dos padrões de Proteções.

Aba Proteções
Todos os equipamentos permitem a inserção da pasta Protections, desde a Subestação, Alimentador, Linha de
Transmissão, até qualquer um dos equipamentos que podem ser inseridos nestes objetos. Para adicionar a pasta
Protections, clique com o botão direito do mouse no equipamento desejado e selecione a opção Adicionar -
Protections.
Dentro da pasta Protections é possível adicionar as Proteções desejadas, sendo que esta pasta fornece uma
padronização na estruturação dos dados. Dentro da Proteção podem existir duas pastas, Measurements e
Commands, que possuem as mesmas características das pastas de mesmo nome inseridas diretamente nos
equipamentos.

99 Proteções
Pasta Protections
Ao criar uma nova Proteção, o Elipse Power já cria automaticamente a pasta Measurements com as Medidas
Discretas do tipo Modo de Proteção (ProtectionMode) e Atuação da Proteção (ProtectionOperate). Este local é o
indicado para criar todas as Medidas relacionadas a esta Proteção, como configurações, inicialização da Proteção,
perfil de Proteção, etc.

16.1 Exercícios
Neste exercício vai ser criada uma Proteção do tipo 79: Religamento Automático em um dos Disjuntores da
aplicação.

16.1.1 Proteção
1. Na Subestação SE1, clique com o botão direito do mouse no Disjuntor 52-03, pertencente ao Bay1, e selecione a
opção Adicionar - Protections.
2. Clique com o botão direito do mouse na pasta Protections e selecione a opção Inserir - Proteção.
3. Renomeie esta Proteção para "79" e selecione o tipo de Proteção como *AutoReclosing.
4. A fase elétrica na qual a Proteção está inserida pode ser definida na propriedade ElectricalPhase. Altere esta
propriedade para 8 - epDevice.
5. Note que, ao inserir uma Proteção, o Elipse Power automaticamente cria duas Medidas Discretas, ModoProtecao
e OperacaoProtecao. Apague os itens SCADA de cada uma destas Medidas, desta forma deixando a fonte ativa
como Operator.

Proteções
6. Configure o valor da fonte Operator da Medida ModoProtecao para "1" (um).

16.1.2 Alarmes
1. Na Medida OperacaoProtecao, insira um Alarme Discreto.
2. Clique com o botão direito do mouse no Alarme e selecione a opção Propriedades. Selecione a aba Discreto.
3. Configure o Alarme conforme mostrado na figura a seguir.

Proteções 100
Alarme Discreto
4. Execute a aplicação.
5. Clique no Disjuntor 52-03 e selecione a opção Medidas para abrir a janela PowerExplorer.
6. Na aba Proteções, altere o campo Atuação da Proteção escrevendo o valor "0" (Normal) ou "1" (Atuada).
Verifique se o alarme aparece no Sumário de Alarmes.

Atuação da Proteção

16.1.3 Comandos de Proteção


Neste exercício vamos criar um Comando para incluir ou excluir a Proteção (Comando de Modo da Proteção).
1. Na Subestação SE1, na pasta Protections do Disjuntor 52-03, selecione a Proteção 79 e adicione uma pasta de
Comandos. Para isto, clique com o botão direito do mouse na Proteção e selecione a opção Adicionar -
Commands.
2. Clique com o botão direito do mouse na pasta Commands e selecione a opção Inserir - Comando Discreto.
3. Renomeie o Comando para "cmdModoProtecao" e configure o tipo como *ProtectionMode.
4. Clique com o botão direito do mouse no Comando cmdModoProtecao e adicione mais uma Unidade de
Comando.

101 Proteções
5. Renomeie as Unidades para "Ligar" e "Desligar".
6. Configure as propriedades CommandName das Unidades de Comando Ligar e Desligar com os valores TurnOn
e TurnOff, respectivamente.
7. Os Comandos de ligar e desligar devem escrever no item Operator da Medida ModoProtecao da Proteção 79.
Na coluna Tag do Comando Ligar, selecione o item SE1.Bay1.[52-03].Protections.
[79].Measurements.ModoProtecao.Operator, utilizando o AppBrowser.
8. Configure a Unidade de Comando Desligar repetindo o passo anterior.

Unidades de Comando
9. Crie a mesma Proteção para os Disjuntores 52-04 e 52-05.

DICA
A configuração da Proteção é praticamente a mesma, portanto é possível copiar o objeto Protections e colar nos
outros Disjuntores. Só não esqueça de alterar os Tags associados às Unidades Ligar e Desligar.

DESAFIO XI
Crie uma Proteção de Sobrecorrente Temporizada (51) na fase Neutro do Disjuntor 52-03.

Proteções 102
CAPÍTULO
Bibliotecas ElipseX
17
O Elipse Power possui ferramentas que permitem transformar qualquer objeto ou conjunto de objetos de uma
aplicação em uma biblioteca do usuário. A ideia das bibliotecas de usuários (chamadas de ElipseX) vem das
linguagens de programação orientadas a objetos, onde diversos componentes podem ser compartilhados entre
projetos sem que seja necessário desenvolver novamente cada um dos objetos. O uso de Bibliotecas no Elipse Power
é altamente recomendável, devido ao ganho de produtividade que elas trazem. 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

O uso de Bibliotecas é recomendado na maioria das aplicações.

Bibliotecas de Objetos

17.1 Criação de Bibliotecas do Usuário


Os objetos ElipseX podem conter, além de um desenho, variáveis internas que podem ser exportadas para a
aplicação, além de lógicas de programação (scripts) que vão estar presentes em todas as cópias do objeto sendo
criado, diminuindo a necessidade de repetição de código em diversas partes do aplicativo. Para criar uma nova
biblioteca no Elipse Power, siga estes procedimentos:
1. Abra o menu Arquivo, selecione o item Novo Projeto e clique em Avançar.
2. Na opção Informe o tipo de Aplicação, selecione o item Biblioteca de componentes do E3.

103 Bibliotecas ElipseX


Assistente de Aplicações
3. Digite o nome da biblioteca e clique em Avançar.
4. Determine as especificações referentes ao Domínio.
5. Clique em Concluir.

Em uma biblioteca ElipseX podem ser inseridos três tipos de objetos: XControls, XFolders e XObjects.
Podem ser inseridos nos XControls todos os itens disponíveis para as Telas. Entre estes itens estão as primitivas de
desenho, objetos gráficos vetoriais, incluindo objetos da biblioteca de símbolos (WMF, EMF, etc.), objetos gráficos não
vetoriais (BMP, JPEG, GIF, etc.), controles ActiveX do Elipse Power (E3Chart, E3Browser, E3Alarm), controles ActiveX de
terceiros e outros XControls.
Um XFolder é um objeto que permite inserir objetos filhos em suas instâncias. Desta forma, é possível organizer ou
criar hierarquias de objetos em uma aplicação. Pode-se inserir em um XFolder itens como Pastas de Dados, Tags de
Comunicação, Filtros de Alarmes e instâncias de XFolders, entre outros.
Os XObjects podem conter quaisquer tipos de objetos não gráficos, que são executados no E3 Server. Pode-se inserir
em um XObject os seguintes objetos: Driver de Comunicação, Servidor de Dados, Banco de Dados, Fórmulas,
Configuração de Alarmes, Servidor de Alarmes, objetos COM e outros XObjects.
Em um mesmo arquivo .lib pode existir qualquer número de componentes ElipseX, sejam eles XControls, XFolders ou
XObjects. Pode-se ter também várias bibliotecas diferentes (vários arquivos .lib) no mesmo Domínio.

17.1.1 XControl
O XControl define uma interface gráfica com o usuário, que pode ser composta de quaisquer objetos do Elipse
Power, com o propósito de ser multiplicada facilmente por um projeto. Pode-se criar um XControl clicando com o
botão direito do mouse no arquivo .lib criado no Domínio ou no item Bibliotecas de Objetos - XControl,
selecionando a opção Inserir - XControl.

Bibliotecas ElipseX 104


Aba Design de um XControl

Aba Propriedades de um XControl


Ao inserir um XControl, observe que na parte inferior da tela existem três abas: Design, Propriedades e Scripts. Na
aba Propriedades, pode-se inserir propriedades a serem exportadas pelo objeto. Elas podem ser associadas a um
Tag ou outra propriedade qualquer quando o objeto estiver em uso em um projeto. Na aba Design, que equivale a
uma Tela, pode-se inserir os objetos gráficos descritos anteriormente.
As propriedades a serem exportadas (XProperties) podem ser inseridas através da tecla INS do teclado ou clicando
em , e excluídas clicando em . As opções disponíveis são descritas na tabela a seguir.
Opções disponíveis na aba Propriedades de um XControl
OPÇÃO DESCRIÇÃO
Nome Determina o nome da Propriedade do XControl

Tipo Determina o tipo de dado suportado pela Propriedade

Pública Habilita ou desabilita a visibilidade da Propriedade fora


da biblioteca, isto é, determina se a Propriedade é ou
não pública

Persistente Determina se a Propriedade é salva no projeto ou não

Retentiva Determina se a Propriedade é retentiva ou não. No caso


de XControls, as Propriedades não podem ser retentivas

Valor inicial Determina o valor inicial da Propriedade

Texto de Ajuda Texto de declaração e documentação da Propriedade

105 Bibliotecas ElipseX


Note que outros objetos de Dados (XFolders e XObjects) podem ser declarados como Tipos. Isto permite que em
uma única Propriedade seja controlado o funcionamento de todo um objeto, tornando mais fácil a manutenção de
uma biblioteca.
A edição deste objeto possui os mesmos recursos gráficos e opções da edição de Telas. Pode-se inserir os XControls
em qualquer Tela, ou ainda dentro de outro XControl clicando com o botão direito do mouse na Tela ou XControl de
destino e selecionando a opção Inserir.
A partir deste momento, o XControl tem um nome dentro da Tela, e é entendido como uma cópia da definição
original. Assim, deve-se definir (se necessário) os valores ou as Associações que esta cópia específica tem no contexto
que está sendo utilizada.

17.1.2 XFolder
Um XFolder é um objeto do 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.

17.1.3 XObject
Além dos XControls e XFolders, pode-se criar uma biblioteca de dados, chamada XObject. Com ela, pode-se definir
uma estrutura de dados a ser executada no servidor. Tal estrutura pode realizar cálculos, Associações, comunicações,
verificação de alarmes, registro histórico, etc., que independam de alguma interface gráfica (Viewer) aberta ou em
execução naquele momento. Para criar um XObject, clique com o botão direito do mouse no arquivo .lib no Organizer
e selecione o item Inserir - XObject.
As opções disponíveis para as Propriedades de um XObject são as mesmas de um XControl ou XFolder. Além das
Propriedades, podem ser inseridos em um XObject quaisquer objetos do Elipse Power que sejam executados no
servidor. Para saber a lista completa, clique na lista de seleção da coluna Tipo da Propriedade e verifique a lista de
objetos disponíveis. Isto permite que se possa definir um sistema complexo de gerenciamento como uma biblioteca,
que pode ser facilmente replicado quantas vezes forem necessárias no aplicativo.
Pode-se inserir os XObjects em qualquer Servidor de Dados clicando com o botão direito do mouse no Servidor de
Dados e selecionando o item Inserir. Mesmo que o arquivo de biblioteca possua vários XControls, XFolders e
XObjects, o Elipse Power Studio exibe para as Telas somente os XControls, e para os Servidores de Dados somente
os XFolders e os XObjects.

17.2 Quando Criar um ElipseX


Existem alguns critérios para indicar a necessidade da criação de objetos no Elipse Power:
· Repetição no uso: Se um mesmo equipamento ou processo é usado mais de uma vez no mesmo projeto
· Procedimentos de conhecimento do usuário: Frequentemente, um processo criado por determinada empresa
deve ser protegido de cópia ou alteração. Isto é comum no caso de integradores de serviços ou fabricantes de
máquinas
· Uso de controladores: Um controlador de processo, cujo mapeamento de memória é fixo, pode ser
implementado com todas as funcionalidades disponíveis. A flexibilidade disponível para a construção e uso dos
objetos no Elipse Power permite que sejam utilizadas posteriormente apenas as variáveis de interesse,
desprezando-se as demais

NOTA
Não é possível copiar uma Biblioteca e utilizar os dois arquivos (original e cópia) no mesmo Domínio. Por exemplo,
não se pode copiar um arquivo .lib para separá-lo em dois novos arquivos.

17.3 Exercícios
Neste exercício, vamos adicionar um ícone para indicar a atuação da Proteção 79 nos Disjuntores. A Elipse Software
oferece a biblioteca PowerProtectionControls com exemplos de sinalização de Proteções.

Bibliotecas ElipseX 106


17.3.1 Biblioteca PowerProtectionControls
1. No Elipse Power Studio, clique no menu Arquivo - Abrir Projeto, selecione o arquivo PowerProtectionControls.lib
(fornecido pelo instrutor) e adicione-o ao Domínio ativo.

Adicionar biblioteca ao Domínio ativo

17.3.2 ProtectionItem
1. Clique com o botão direito do mouse na Tela_SE1 e selecione o item Inserir - PowerProtectionControls -
ProtectionItem.

Inserir ProtectionItem
2. Posicione o objeto próximo ao Disjuntor 52-03.

ProtectionItem
3. Na janela de propriedades do objeto, localize a propriedade ProtectionSource e configure a Associação com a
expressão "SE1.Bay1.[52-03].Protections.[79]".

107 Bibliotecas ElipseX


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

ProtectionItem em tempo de execução

17.3.3 Customizando a Biblioteca PowerControls


Customizar a biblioteca PowerControls requer um certo cuidado. É importante lembrar que esta biblioteca é
desenvolvida e mantida pela Elipse Software, ou seja, caso o usuário realize alguma modificação em um XControl da
biblioteca, esta customização é perdida quando a biblioteca for eventualmente atualizada. Visando este cenário, este
exercício demonstra a maneira recomendada para a personalização da biblioteca PowerControls, que consiste na
criação de uma nova biblioteca contendo uma instância da biblioteca padrão.
Nesta aplicação, todos os Disjuntores devem conter o ícone da Proteção 79 ao lado do objeto. Para isto, vamos criar
uma versão customizada do objeto Breaker.
1. Apague o objeto ProtectionItem criado em Tela no exercício anterior.
2. Crie um novo XControl usando a opção Inserir Xcontrol em no item Bibliotecas de Objetos - XControls do
Organizer, selecionando a opção <Nova Biblioteca>.

Opção Inserir XControl em


3. Configure o nome desta nova biblioteca.
4. Renomeie o objeto criado de "XControl1" para "BreakerCustom".
5. Instancie um objeto Breaker dentro do objeto BreakerCustom.
Bibliotecas ElipseX 108
Inserir objeto Breaker
NOTA
Ao instanciar um XControl dentro de outro, cria-se uma dependência entre as bibliotecas. Agora, o objeto
BreakerCustom da biblioteca criada só funciona corretamente caso a biblioteca PowerControls também esteja
presente no Domínio.

6. Crie a propriedade SourceObject, que deve ser exatamente igual à do XControl original.

Propriedade SourceObject
7. Associe a propriedade SourceObject à mesma propriedade interna da biblioteca. Para isto, selecione a aba
Design do objeto BreakerCustom, clique com o botão direito do mouse no objeto Breaker1 e selecione a aba
Associações. Associe a propriedade SourceObject do objeto Breaker1 à propriedade SourceObject do objeto
BreakerCustom, conforme a figura a seguir.

109 Bibliotecas ElipseX


Associação com a propriedade SourceObject
8. Após este procedimento, crie os pontos referentes aos terminais. Isto deve ser realizado com o auxílio da
ferramenta Editar Pontos de Conexão . O primeiro destes deve se chamar "Terminal1", e o sufixo deve ser
incrementado de acordo com o número de pontos necessários (neste caso, "Terminal1" e "Terminal2").

Bibliotecas ElipseX 110


Criação do Terminal 1

Criação do Terminal 2
9. Além da propriedade SourceObject, o Importador de Telas necessita das propriedades Orientation,
ShowTerminals e ColorMode para realizar a importação dos objetos customizados para a Tela de operação. Da

111 Bibliotecas ElipseX


mesma forma que com a propriedade SourceObject, crie as propriedades Orientation, ShowTerminals e
ColorMode, conforme a figura a seguir.

Criação de propriedades
NOTA
A propriedade ColorMode só está disponível em aplicações criadas a partir da versão 4.7 do Elipse Power.

10. Associe as propriedades criadas às suas respectivas propriedades internas da biblioteca, conforme mostrado
anteriormente neste exercício.

Associações das novas propriedades


11. Para as modificações necessários, vamos inserir um objeto ProtectionItem. Para isto, selecione a aba Design do
objeto BreakerCustom, clique com o botão direito do mouse na área cinza e selecione o item Inserir -
PowerProtectionControls - ProtectionItem.

Inserir objeto ProtectionItem

Bibliotecas ElipseX 112


12. Posicione o objeto ao lado do Disjuntor.

Posicionar o objeto ProtectionItem


13. Clique com o botão direito do mouse no objeto e selecione o item Propriedades. Na aba Associações, clique em
à direita da propriedade ProtectionSource para abrir o AppBrowser.
14. Com o auxílio do AppBrowser, selecione a propriedade SourceObject do objeto BreakerCustom.
15. Complete a expressão digitando o texto ".Protections.[79]". A expressão final deve ser semelhante à da figura a
seguir.

Propriedade SourceObject com expressão


NOTA
O XControl ProtectionItem, configurado desta forma, só funciona corretamente caso exista, dentro do Disjuntor
associado, uma pasta Protections e uma Proteção com o nome 79. Note que o Verificador de Domínio indica que a
Associação está incorreta, colorindo a expressão em vermelho. Caso o aplicativo siga esta regra proposta, esta
indicação pode ser ignorada.

16. Salve as alterações.


17. Clique com o botão direito do mouse no item Bibliotecas de Objetos do Organizer e selecione a opção Registrar
bibliotecas carregadas.

113 Bibliotecas ElipseX


18. Por último, importe a Tela novamente, mas agora utilizando o objeto BreakerCustom. Para realizar esta
importação, clique com o botão direito do mouse no item ConfiguracaoPower em Objetos de Servidor - Power -
Configuração e selecione a opção Modelo Elétrico - Importar para Tela(s).

Opção Importar para Tela(s)


19. Na janela Importação para Telas, selecione a opção Preferências.
20. Na janela Preferências de Importação para Telas, desabilite a opção Usar classes padrão da biblioteca
PowerControls.lib e, no objeto Disjuntor, selecione o objeto Breaker customizado (BreakerCustom), clicando em
na coluna Classe.

Bibliotecas ElipseX 114


Janela Preferências de Importação para Telas
NOTA
Se todas as configurações foram executadas com sucesso (propriedades e terminais), o nome da classe aparece em
negrito, informando que aquela não é uma classe padrão. Caso contrário, uma mensagem é mostrada indicando
quais pontos não foram configurados com sucesso.

21. Clique em OK e, na janela Importação para Telas, selecione a Subestação SE1 e a Tela para onde esta Subestação
deve ser importada. Importe para a Tela e verifique que a Tela é importada com o objeto criado anteriormente.
22. Execute a aplicação e verifique as novas funcionalidades.

NOTA
Este formato de customização de bibliotecas torna possível atualizar a biblioteca base da Elipse Software
(PowerControls.Lib) e toda melhoria realizada no objeto base é aplicada automaticamente à biblioteca customizada.
Porém, caso esta característica não seja necessária e se deseje realizar a modificação mais rapidamente, pode-se
simplesmente criar as novas funcionalidades na biblioteca padrão. Com isto, todas as Telas já importadas recebem
estas novas funcionalidades.

DESAFIO XII
Crie um Display, ao lado do Disjuntor, para indicar se ele está em modo Local ou Remoto. Execute esta configuração
dentro da biblioteca.

115 Bibliotecas ElipseX


CAPÍTULO
Armazenamento de Dados
18
O Armazenamento de Dados no Elipse Power é utilizado para guardar as informações do projeto através de
Históricos, Fórmulas e Alarmes. Possui suporte a MDB (Microsoft Access), Oracle e SQL Server.
No Elipse Power existem basicamente dois objetos com a função de gravar dados em um banco de dados: o
Histórico e o Storage.

18.1 Histórico
Históricos são módulos responsáveis pelo armazenamento de dados da aplicação em um Banco de Dados. Permitem
armazenar dados de processos para análises futuras. Pode-se criar tantos arquivos de Históricos quantos se desejar,
cada um contendo diversos Tags ou expressões. Cada Histórico pode criar ou utilizar uma tabela independente
dentro do Banco de Dados, cujo armazenamento pode ser definido por tempo ou por evento. Através da
propriedade CacheSize, define-se o número de registros enviados por vez para o Banco de Dados. Conforme a
definição da propriedade DBServer, define-se o Servidor do Banco de Dados que é utilizado pelo Histórico.

Objeto Histórico
O objeto Histórico é indicado para dados de faturamento, coletas de medidores de energia e outros processos
envolvendo valores que não possam ter compactação.

18.2 Storage
O Storage é um módulo historiador do Elipse Power 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 gravados 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, o uso de Históricos
convencionais é o recomendado.

18.2.1 Funcionamento
A gravação no Storage é feita 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 de
qualidade no 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 mínimo programado

Conforme vão sendo obtidos novos valores para as variáveis, um algoritmo de verificação de gravação vai
interpretando a sequência e decidindo se cada ponto é ou não armazenado.
Esta verificação, entretanto, 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.
Armazenamento de Dados 116
Para cada tipo de grandeza armazenada, é gerado automaticamente um conjunto de tabelas, um para os Tags
analógicos, outro para os textos e um terceiro para os digitais. Desta forma, cada Storage pode gerenciar até sete
tabelas (backup), caso se especifique que os três tipos de Tags devem ser armazenados:
· <NomeTabela>_Fields
· <NomeTabela>
· <NomeTabela>_Text
· <NomeTabela>_Bit

18.2.2 Configuração
Quando o Storage é criado na aplicação, uma lista de definições dos campos de gravação é mostrada.

Campos do Storage
Para efeitos de posterior consulta nos dados, toda a busca se dá através do caminho do Tag ou da propriedade que
está sendo armazenada (campo Fonte). A propriedade Nome só é utilizada caso o campo Fonte contenha uma
expressão. Logo, se expressões não estiverem sendo utilizadas no campo Fonte, não é necessário levar em
consideração a propriedade Nome.

18.3 Exercícios
18.3.1 Banco de Dados
1. Verifique se o objeto BancoDados1 está presente na aplicação. Este objeto foi adicionado no primeiro capítulo,
em um dos passos do Assistente de Aplicações. Caso não tenha sido criado, adicione-o clicando com o botão
direito do mouse no item Objetos de Servidor - Banco de Dados e selecione a opção Inserir Banco de Dados
em - Tutorial_Elipse_Power.prj.

Banco de Dados
2. Selecione o objeto e, através do menu contextual, abra a janela de propriedades. Nesta janela, execute as
seguintes configurações:
· Banco de Dados: 2 - stSqlServer
· Servidor: .\SqlExpress
· Banco de Dados: ELIPSEPower_Treinamento
· Biblioteca de Rede: 0 - Padrão
· Usuário: Fornecido pelo administrador do banco de dados
· Senha: Fornecida pelo administrador do banco de dados

117 Armazenamento de Dados


Propriedades do Banco de Dados
3. Clique em Testar Conexão. Se as configurações estiverem corretas, a caixa de diálogo a seguir é mostrada.

Conexão bem sucedida

NOTA
Estas configurações são válidas para treinamentos na Elipse Software. Caso não seja esta a situação, utilize as
configurações fornecidas pelo administrador do banco de dados.

18.3.2 Servidor de Alarmes


1. Abra a janela de propriedades do Servidor de Alarmes e configure-o para gravar os dados em disco,
preenchendo os campos mostrados na figura a seguir.

Armazenamento de Dados 118


Aba Configuração
2. Clique em Campos e selecione as informações que deseja armazenar.
3. Clique em Gerar Tabela. Com esta configuração, o Elipse Power já tem acesso ao banco de dados configurado,
também permitindo a gravação de alarmes na tabela Alarms.

18.3.3 Storage
Vamos criar um objeto Storage e configurá-lo para armazenar informações do sistema. Com o Storage criado, vamos
adicionar as informações que são armazenadas, as variáveis referentes à posição de Disjuntores e Chaves e a
temperatura do óleo no Transformador.
1. Insira um objeto Storage no projeto Tutorial_Elipse_Power.prj. Isto é feito selecionando a opção Inserir Storage
em do menu contextual do item Objetos de servidor - Banco de Dados.

Inserir Storage
2. Altere o nome do objeto para "StoragePower".
3. No objeto StoragePower, insira um campo e selecione a propriedade Value da Medida PosicaoDisjuntor do
Disjuntor 52-01 na Subestação SE1. A configuração deve ser feita da seguinte forma:
· Fonte: SE1.[52-01].Measurements.PosicaoDisjuntor.Value

119 Armazenamento de Dados


· Tipo: 3 - Integer

Campo do Storage
4. Repita o passo anterior para outras Medidas Discretas que desejar guardar no banco de dados.
5. Vamos configurar agora a informação de temperatura do óleo do Transformador para ser armazenada. Vamos
adicionar um novo Campo no Storage, apontando para esta Medida:
· Fonte: SE1.[TR-01].Measurements.TemperaturaOleo.Value
· Tipo: 0 - Double
· Banda Morta: 5
· Unidade: 0 - dbPercent

6. Repita o passo anterior para outras Medidas Analógicas que desejar guardar no banco de dados.
7. Abra a janela de propriedades do objeto StoragePower e configure as seguintes opções presentes na aba
Storage com os seguintes valores:
· Servidor de Banco de Dados: BancoDados1 (utilizando o AppBrowser)
· Nome da tabela: MedidasPower

Aba Storage
8. Clique em Gerar Tabela. Deve ser mostrada a janela da figura a seguir.

Armazenamento de Dados 120


Estrutura criada com sucesso

18.3.4 Histórico
1. Crie três Tags Internos, chamados de "CommandType", "CommandUnit" e "User", e configure o tipo de dados da
propriedade Value destes Tags como String.

Tags Internos
2. Crie um objeto Histórico, chamado de "HistCommand", e configure a propriedade ScanTime (ou o campo
Intervalo entre registros (ms) na Janela de Propriedades do Histórico) com o valor 0 (zero). Neste Histórico, crie
três campos do tipo String e associe-os à propriedade Value dos três Tags Internos criados no item anterior.

Objeto Histórico
NOTA
Ao configurar um campo com o tipo String, é preciso também configurar o tamanho deste campo.

3. Após criar o Histórico e gerar a tabela no banco de dados, é preciso estabelecer quais Comandos são
registrados neste banco de dados. Os objetos de Comando do Elipse Power contêm uma propriedade chamada
EnablePowerConfigEvent, cuja função é habilitar ou desabilitar a geração de eventos OnCommand do objeto
ConfiguracaoPower (ver próximo item). Portanto, neste item a propriedade EnablePowerConfigEvent dos
Comandos de posição (SwitchPosition) das Chaves 29-02 e 29-04 deve ser configurada com o valor Verdadeiro
(True), como mostra a figura a seguir.

121 Armazenamento de Dados


Propriedade EnablePowerConfigEvent
4. Agora crie um script no evento OnCommand do objeto ConfiguracaoPower. Este evento é disparado sempre
que um Comando é executado (se a propriedade EnablePowerConfigEvent estiver configurada como
Verdadeiro). O evento retorna os parâmetros CommandUnit (o objeto Unidade de Comando que está recebendo
o comando), CommandAction (um inteiro que indica o tipo de Comando: 1 - Operate, 2 - Select ou 3 - Cancel) e
ActorID (o nome do usuário que enviou o Comando). O script é desenvolvido de forma a atribuir as informações
necessárias relativas a cada Comando aos Tags Internos criados anteriormente, e então inserir uma nova linha na
tabela do banco de dados. Conforme visto anteriormente, o evento OnCommand retorna três parâmetros que
devem ser associados com o valor dos Tags Internos. Note que o parâmetro CommandUnit retorna um objeto,
portanto deve-se utilizar uma propriedade deste objeto. Neste exercício, digite o script a seguir.
Select Case CommandAction
Case 1
Application.GetObject("Dados.CommandType").Value = "Operate"
Case 2
Application.GetObject("Dados.CommandType").Value = "Select"
Case 3
Application.GetObject("Dados.CommandType").Value = "Cancel"
End Select
Application.GetObject("Dados.CommandUnit").Value = CommandUnit.PathName
Application.GetObject("Dados.User").Value = ActorId

5. Após associar os parâmetros retornados pelo evento aos Tags Internos, insira um novo registro na tabela a partir
do método WriteRecord do objeto HistCommand, de acordo com a linha a seguir.
Application.GetObject("HistCommand").WriteRecord()

6. Ao final, o script deve estar conforme a figura a seguir.

Armazenamento de Dados 122


Script do evento OnCommand

123 Armazenamento de Dados


CAPÍTULO
Consultas
19
O objeto Consulta (ou Query) auxilia no processo de definição de consultas no banco de dados da aplicação. Toda
vez que o Elipse Power necessita buscar dados do banco de dados é necessário enviar um comando, de forma que
se saiba quais os dados desejados para aquele objeto. Para esta busca, toda vez que uma aplicação precisar gravar
ou buscar dados armazenados em um banco de dados, são enviados comandos no formato SQL (Structured Query
Language).
A Consulta apresenta uma interface amigável que permite a construção de consultas SQL usando uma interface gráfica
e o acompanhamento imediato do código SQL gerado. A Consulta permite mostrar os dados dos últimos n dias,
horas ou meses, data inicial e final e consultas, dependendo do filtro a ser implementado.
O Assistente de Configuração da Consulta é responsável por criar o texto que executa o filtro ou a consulta, não
sendo necessário para o usuário saber detalhes como data, etc. Para utilizar este recurso, clique com o botão direito
do mouse na Tela do projeto e selecione a opção Inserir - Consulta.

NOTA
Quando se cria um objeto Relatório ou um E3Browser, o objeto Consulta é adicionado a este automaticamente. No
entanto, também se pode inserir uma Consulta em uma Pasta de Dados ou em uma Tela e utilizar seus dados através
de scripts.

19.1 Criando uma Consulta


1. A definição da Consulta começa quando o usuário informa o Servidor de Banco de Dados onde a Consulta busca
os dados.

Definir o Servidor de Banco de Dados


2. Após definido o Banco de Dados, uma nova janela aparece com as tabelas que foram encontradas, permitindo
sua seleção.

Seleção de tabelas

Consultas 124
3. Selecione as tabelas que vão fazer parte da Consulta e clique em OK.
4. Na aba Campos são adicionados os campos retornados pela Consulta, bem como definidos filtros e ordenações.
5. Na aba Variáveis são mostradas as variáveis criadas para os filtros.
6. Na aba Visualizar pode-se realizar uma prévia da Consulta.
7. Na aba SQL pode-se visualizar e editar o código SQL.

Janela de configuração da Consulta


8. A janela mostrada na figura anterior pode ser aberta clicando-se com o botão direito do mouse no objeto
Consulta e selecionando a opção Configurar.

19.2 Consultas Internas


Ao iniciar a configuração de uma Consulta em uma aplicação que possui um Storage, este objeto entra na lista de
Bancos de Dados disponíveis para consulta. Isto porque o Storage atua como um novo provedor de dados, criando
facilidades para o usuário consultar os dados nas tabelas temporais.
Uma vez escolhido o próprio Storage como provedor de dados para a Consulta, sua interface de configuração
apresenta várias diferenças, como pode ser visto na figura a seguir. A primeira delas é que ao invés de exibir as
tabelas, é mostrada uma árvore com todas as variáveis que estão sendo armazenadas. A outra diferença é que o
usuário pode escolher uma entre sete funções para consolidação dos dados: LastValue, ArchivedValue,
TagAttribute, CompressedDataNValues, CompressedDataStartEndTime, SampledData e CalculatedData.
A explicação detalhada sobre cada uma destas funções está presente no Manual do Usuário do Elipse Power.

125 Consultas
Consulta no objeto Storage

19.3 E3Browser
O E3Browser é um controle ActiveX utilizado para visualizar dados armazenados em bancos de dados gerados pelo
Elipse Power ou outro software qualquer. Pode-se configurar Consultas utilizando filtros de vários tipos nos dados e
atribuir cores para cada coluna, entre outras configurações. Este objeto é utilizado para visualizar Históricos, Alarmes
ou qualquer tabela existente no banco de dados.

E3Browser
Para utilizar este recurso, insira o E3Browser no projeto clicando com o botão direito do mouse na Tela e
selecionando a opção Inserir - E3Browser.

Consultas 126
Inserir E3Browser
O E3Browser utiliza o objeto Consulta para auxiliar o usuário no processo de definição de consultas no banco de
dados da aplicação.

19.4 Exercícios
Vamos criar um E3Browser para visualizar os alarmes gravados no banco de dados.

19.4.1 E3Browser
1. Insira um E3Browser na Tela_Eventos.
2. Para configurar os dados que o E3Browser mostra, abra a janela de propriedades do objeto e selecione a aba
Consulta.
3. Selecione a Consulta1 e clique em Configurar.

Aba Consulta
4. Selecione o Banco de Dados que contém a tabela que se deseja consultar.
5. Selecione a tabela Alarms.
6. Selecione os campos que deseja mostrar em tela. Se deseja mostrar todos os campos da tabela, clique no
asterico (*).

127 Consultas
Tabela Alarms
7. Selecione a aba Visualizar e clique em Executar Consulta para verificar o resultado da Consulta.

Executar Consulta
8. Clique em OK. Ao finalizar este passo, estão disponíveis no E3Browser todos os campos listados na Consulta.
Configure cada campo com a cor, formatação e tamanho que desejar.

Consultas 128
Configuração da Consulta
9. Execute a aplicação e abra a Tela_Eventos para testar a nova funcionalidade.

DESAFIO XIII
Faça com que o E3Browser mostre os textos "Não" e "Sim" ao invés de "0" e "1" para a coluna Acked (que indica se
o alarme foi reconhecido).

129 Consultas
CAPÍTULO
Relatórios
20
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.

Seções do Relatório
Um Relatório é estruturado conforme descrito na tabela a seguir.
Estrutrura do Relatório
SEÇÃO DESCRIÇÃO
Report Header Esta Seção é impressa no início do Relatório. Utilizada
para imprimir títulos de Relatórios, tabelas de somas,
gráficos ou qualquer outra informação que necessite
aparecer somente uma vez no início do Relatório

Report Footer Esta Seção é impressa no final do Relatório. Utilizada


para imprimir uma soma de um Relatório, totais gerais
ou qualquer outra informação que necessite ser impressa
somente uma vez no final do Relatório

Relatórios 130
SEÇÃO DESCRIÇÃO
Page Header Esta Seção é impressa no topo de cada página do
Relatório. É a primeira Seção impressa na página, exceto
quando esta página contém a Seção Report Header.
Utilizada para imprimir cabeçalhos de colunas, números
de páginas, títulos de páginas ou qualquer outra
informação que necessite ser impressa no início de cada
página

Page Footer Esta Seção é impressa uma vez na base de cada página
no Relatório. Usada para imprimir totais de páginas,
números de páginas ou qualquer outra informação que
necessite ser impressa somente uma vez na base de
cada página

Detail Esta Seção é o corpo do Relatório, que imprime uma vez


para cada registro na fonte de dados

Group Header, Group Footer Um Relatório pode ter múltiplos grupos aninhados. Cada
grupo possui uma Seção Header e uma Seção Footer. A
Seção Header é impressa antes de qualquer Seção
Detail no grupo. A Seção Footer é impressa depois da
Seção Detail do grupo

A barra de ferramentas Relatórios contém três itens de configuração que permitem editar, visualizar o Relatório e
criar scripts. Estes itens são descritos na tabela a seguir.
Opções de configuração na barra de ferramentas Relatórios
OPÇÃO DESCRIÇÃO
Prévia de Impressão (Preview) Através desta opção é possível visualizar uma prévia da
impressão do Relatório. Assim, é possível verificar
configurações de margem, figuras, etc.

Configurações do Relatório (Report Settings) Nestas configurações pode-se determinar


Configurações de Página, Configurações de
Impressão, Configurações da Grade e Estilo do
Relatório

Editor de Scripts Através desta opção é possível editar scripts para o


Relatório. No campo Object é necessário especificar o
objeto onde se deseja criar o script e, no campo Events,
o evento do Relatório em que ocorre a ação

20.1 Objetos do Relatório


A ferramenta Relatório possui vários objetos específicos que podem ser utilizados, disponíveis na barra de
ferramentas Relatórios.

Barra de ferramentas Relatórios


Os recursos disponíveis na barra de ferramentas Relatórios estão descritos na tabela a seguir.
Recursos disponíveis na barra de ferramentas Relatórios
OPÇÃO DESCRIÇÃO
Linha Objeto básico de reta que liga dois pontos quaisquer.
Permite o desenho de retas, através de dois pontos
especificados na sua criação ou em polígonos

Retângulo Este objeto permite o desenho de retângulos, utilizando


toda a largura ou altura do objeto. Criado a partir de
dois vértices

131 Relatórios
OPÇÃO DESCRIÇÃO
Retângulo Arredondado Retângulo criado através de dois vértices com a opção
dos cantos serem arredondados a partir de um fator de
arredondamento. Ao ser inserido ou editado, exibe um
pequeno ponto próximo ao canto superior esquerdo do
objeto, que permite modificar o fator de
arredondamento

Elipse Este objeto permite o desenho de círculos e elipses,


utilizando toda a largura ou altura e definindo o centro
do círculo no centro do retângulo

Figura Este objeto permite mostrar imagens que estejam


armazenadas em arquivos, estejam elas dentro ou fora
do arquivo do aplicativo

Texto Possibilita a criação de um texto. Ao definir a área na


Tela, pode-se digitar diretamente o texto desejado, que
aceita também múltiplas linhas

Campo de Dados Através deste objeto é possível associar um campo da


tabela no Banco de Dados. Este campo é especificado
na propriedade DataField

Caixa de Seleção Permite inserir um dado do tipo Booleano que pode ou


não estar ligado a um Banco de Dados

Código de Barras Permite gerar uma figura que converte uma sequência
de números e caracteres em um código de barras. Este
código é uma representação numérica ou alfanumérica,
utilizada para facilitar diferentes processos. Este código
é decifrado através de scanners, canetas e equipamentos
de leitura óptica

Quebra de Página É um ponto em que uma página termina e outra começa


no Relatório. Por exemplo, pode-se forçar uma quebra
de página para assegurar que o título de um capítulo
comece sempre em uma nova página

Tabela É um objeto composto por linhas e colunas onde são


inseridos textos ou gráficos. As tabelas nos Relatórios
são usadas para organizar e apresentar informações.
Pode-se também usar tabelas para criar layouts de
página

E3Chart Este objeto é utilizado para visualizar os dados do


Relatório em formato gráfico

Enviar para frente e Enviar para trás Através destes botões é possível enviar um objeto para
frente ou para trás de outro. Ao selecionar as opções
Enviar para frente ou Enviar para trás, o objeto
selecionado é colocado na primeira ou na última
posição na ordem de sobreposições

Carregar Arquivo RPX Importa a configuração do Relatório de um arquivo


externo

Salvar Arquivo RPX Exporta a configuração do Relatório para um arquivo


externo

NOTA
A opção Impressora do ícone do E3 Server na Área de Notificações do Windows exibe a lista das impressoras
encontradas local ou remotamente, e permite que o usuário escolha uma para ser usada pelo E3 Server.

Relatórios 132
20.2 Exercícios
20.2.1 Relatório de Alarmes
1. Insira um novo Relatório no projeto, com o nome "RelatorioAlarmes".
2. Note que este objeto já é criado contendo um objeto Consulta.

Adicionar Relatório
3. Configure a Consulta do Relatório para buscar os seguintes campos da tabela de alarmes:
· E3TimeStamp
· ActorID
· Area
· Message

4. Verifique o resultado da Consulta e clique em OK.


5. Adicione dois objetos Texto na Seção Page Header do Relatório. Na propriedade Caption do primeiro Texto,
digite "Elipse Software Ltda - Treinamento Elipse Power Studio", e na propriedade Caption do segundo Texto
digite "Relatório de Alarmes". Altere a fonte do texto conforme desejar, utilizando a propriedade Font dos objetos
Texto.
6. Para cada campo escolhido na Consulta, insira novos objetos Texto na Seção Page Header e configure-os com o
nome dos campos. Estes são os títulos das colunas.
7. Na Seção Detail, insira um Campo de Dados para cada campo, alinhando-o com o seu respectivo Texto. Na
propriedade DataField, digite exatamente o título da coluna configurada na Consulta.

Seção Detail
8. Para visualizar o Relatório, clique em Gerar Relatório .

20.2.2 Numeração de Páginas


O uso dos Campos de Dados do Relatório do Elipse Power é bastante flexível, sendo configurado no próprio Campo
de Dados que a função deve executar. Por exemplo, para criar na Seção Page Footer a indicação "Página 1 de 12",
siga estes procedimentos:
1. Insira dois Textos fixos, "Página" e "de".

133 Relatórios
2. Entre os Textos, insira um Campo de Dados e configure-o para mostrar o número da página atual:
· SummaryType: 4 - ddSMPageCount
· SummaryRunning: 2 - ddSRAll
3. Após o Texto "de", insira um Campo de Dados e configure-o para mostrar o número total de páginas:
· SummaryType: 4 - ddSMPageCount
· SummaryRunning: 0 - None

Numeração de páginas

20.2.3 Visualizar Relatório


Para visualizar o Relatório em tempo de execução, execute estes procedimentos:
1. Insira um Botão de Comando com o texto "Relatório" no canto inferior da Tela_Eventos.
2. No evento Click, crie um Pick do tipo Imprimir Relatório.
3. No campo Imprimir Relatório, selecione o item RelatorioAlarmes.
4. Na opção Saída, selecione o item Tela.

Pick Imprimir Relatório

DESAFIO XIV
Crie um botão para exportar o relatório para um arquivo do Excel.

DICA
Utilize o método Export do objeto Relatório.

Relatórios 134
CAPÍTULO
Solução dos Desafios
21
21.1 Desafio I
Esconda os nomes das Barras ("BARRA_13_8KV" e "BARRA_138KV") no diagrama unifilar
1. Abra a Tela Tela_SE1 e selecione o objeto de Tela BARRA_138KV.
2. Altere a propriedade ShowShortName deste objeto para False.

Propriedade ShowShortName
3. Repita o procedimento para o objeto BARRA_13_8KV.

21.2 Desafio II
No Transformador TR-01, crie as Medidas TensaoA, CorrenteA, PotenciaAtiva e
TemperaturaEnrolamento e exiba-as em Displays ao lado do Transformador. A Medida CorrenteA
deve ser a soma das correntes dos Disjuntores 52-03, 52-04 e 52-05
1. As informações elétricas geralmente são coletadas no terminal do equipamento, portanto vamos criar as Medidas
no Terminal2.
2. Clique com o botão direito do mouse no Terminal2 do Transformador TR-01 e selecione a opção Inserir -
Medida Analógica.
3. Renomeie a Medida para "TensaoA".
4. Configure o tipo da Medida como *VoltageA (na caixa de seleção).
5. Selecione a fonte de medida Operator e defina um valor inicial para ela.

Medida Analógica
6. Repita os passos anteriores para a criação das Medidas "CorrenteA" (do tipo *CurrentA) e "PotenciaAtiva" (do
tipo *ActivePower).
7. Selecione a Medida PotenciaAtiva e configure a propriedade unitPrefix com o valor 6 - upMega.
8. A Medida CorrenteA deve ser a soma das correntes de outros Disjuntores, portanto é um valor calculado.
Selecione a Medida CorrenteA e insira uma fonte do tipo Calculated.

135 Solução dos Desafios


Adicionar Calculated
9. Para esta fonte de medida, configure a coluna Tag com a expressão a seguir.
SE1.Bay1.[52-03].Terminal2.CorrenteA.Value_
+ SE1.Bay2.[52-04].Terminal2.CorrenteA.Value_
+ SE1.Bay3.[52-05].Terminal2.CorrenteA.Value

10. Por fim, altere a propriedade ActiveSource da Medida CorrenteA para o valor 5 - stCalculated.
11. A informação de temperatura do enrolamento é uma característica do equipamento, portanto o mais indicado é
criar esta Medida na pasta Measurements, e não em um terminal. Clique com o botão direito do mouse na pasta
Measurements e insira uma nova Medida Analógica.
12. Renomeie a Medida para "TemperaturaEnrolamento".
13. A Medida TemperaturaEnrolamento não possui um padrão criado. Para este caso, vamos demonstrar duas
soluções possíveis.

SOLUÇÃO 1
1. Selecione a aba Analógicas do objeto Configuração do Power. Clique em Adicionar e configure as colunas
conforme indicado a seguir:
· Nome: TEN
· Fase Elétrica: -1 - epNone
· Descrição: Temperatura do Enrolamento
· Unidade: °C
· Ordenação: 1000

2. Volte para a Subestação e configure o tipo da Medida como TEN (na caixa de seleção).
3. Defina um valor inicial para a fonte Operator desta Medida.

Solução dos Desafios 136


Medida de Temperatura

SOLUÇÃO 2
1. Selecione a aba Analógicas do objeto Configuração do Power. Selecione o padrão TOL e reconfigure-o conforme
indicado a seguir:
· Nome: Temp
· Fase Elétrica: -1 - epNone
· Descrição: Temperatura {DocString}
· Unidade: °C
· Ordenação: 1000

Template Temp
2. Volte para a Subestação e configure o tipo das Medidas TemperaturaOleo e TemperaturaEnrolamento como
Temp (na caixa de seleção).

Tipo de Medida Temp


3. Configure a propriedade DocString da Medida TemperaturaOleo com o texto "do Óleo".
4. Repita o procedimento anterior para a Medida TemperaturaEnrolamento, configurando a propriedade
DocString como "do Enrolamento".

Temperatura do Óleo

137 Solução dos Desafios


Temperatura do Enrolamento
Note que, com esta solução, o padrão Temp permanece disponível para uso de qualquer medida de temperatura,
permitindo que o usuário especifique, na própria medida, onde este valor está sendo medido.
14. Abra a Tela_SE1 e crie objetos XPowerDisplay ao lado do Transformador TR-01, associando cada um deles com
sua respectiva Medida.
15. Execute a aplicação e teste as novas funcionalidades.

21.3 Desafio III


Crie a Medida TAPAutomaticoManual para o Transformador TR-01 com as condições 0: Manual e 1:
Automático
1. Primeiramente, é necessário criar um padrão para esta Medida. Selecione a aba Discretas do objeto Configuração
do Power.
2. Crie um novo padrão e configure-o da seguinte forma:
· Nome: TAPAutomaticoManual
· Fase elétrica: -1 - epNone
· Descrição: Controle de Tap Automático/Manual
· Semânticas:
· 0: Automático
· 1: Manual

Solução dos Desafios 138


Template de Medida Discreta
3. Selecione o Transformador TR-01 na Subestação e crie uma Medida Discreta na pasta Measurements.
4. Renomeie esta Medida para "TAPAutomaticoManual" e configure o seu tipo com o respectivo padrão, que tem o
mesmo nome (na caixa de seleção).
5. Configure um valor inicial para a fonte Operator desta Medida.

Adicionar Medida Discreta

21.4 Desafio IV
Crie um Alarme para a Medida LocalRemoto de todos os Disjuntores
1. Selecione a Medida LocalRemoto na pasta Measurements do Disjuntor 52-01.
2. Insira um Alarme Discreto dentro desta Medida.

139 Solução dos Desafios


Adicionar Alarme Discreto
O operador deve ser alertado quando o equipamento está em modo Local, pois nesta condição ele não deve enviar
comandos pelo supervisório, devido ao risco de ferir a pessoa que está em campo.
3. Configure o alarme com os valores descritos na tabela a seguir.
Configurações do Alarme Discreto
NOME TEXTO DA MENSAGEM TIPO
Remoto Remoto 2 - Retorno

Local Local 0 - Alarme

4. Copie este Alarme e cole-o na Medida LocalRemoto dos outros Disjuntores.

21.5 Desafio V
Crie Alarmes Analógicos para as Medidas TemperaturaOleo, TensaoA, PotenciaAtiva e CorrenteA
do Transformador TR-01
1. Selecione a Medida TemperaturaOleo na pasta Measurements do Transformador TR-01.
2. Insira um Alarme Analógico dentro desta Medida.

Adicionar Alarme Analógico


3. Configure este Alarme conforme a figura a seguir:

Solução dos Desafios 140


Configuração do Alarme Analógico
4. Repita os passos anteriores para outras Medidas do Transformador, adaptando os limites e as mensagens de
alarme como preferir.

21.6 Desafio VI
Crie um Comando de Passo para controle de posição do Tap do Transformador TR-01

DICA
Utilize o padrão *TapPosition, que é padronizado no Elipse Power.

Este Comando serve para ajustar o Tap do Transformador, que é representado pela Medida PosicaoTap. Portanto,
primeiramente é necessário configurar esta Medida.
1. Selecione a Medida PosicaoTap do Transformador TR-01 e apague sua fonte de medida SCADA.
2. Selecione a fonte Operator desta Medida e configure o seu valor inicial como "8".

Fonte Operator
3. Feito isto, insira a pasta Commands no Transformador e, dentro desta pasta, crie um Comando de Passo.
4. Renomeie o Comando para "cmdTapPosition" e configure o seu tipo como *TapPosition (na caixa de seleção).
5. Expanda o Comando e renomeie a UnidadeComando1 para "DesceTap". Verifique se a propriedade
CommandName desta Unidade está configurada como StepDown.
6. Renomeie a UnidadeComando2 para "SobeTap". Verifique se a propriedade CommandName desta Unidade está
configurada como StepUp.

Unidade de Comando
7. Na coluna Tag, associe com a fonte Operator da Medida TapPosition com a expressão "SE1.[TR-
01].Terminal1.PosicaoTap.Operator", utilizando o AppBrowser. A expressão é a mesma para ambas as Unidades.

141 Solução dos Desafios


Tag
Até agora, todos os comandos enviavam valores fixos para o Tag associado. No caso do controle de Tap é um pouco
diferente, pois precisamos saber o valor atual da Medida, para poder incrementá-la ou decrementá-la. Portanto, é
necessário reconfigurar o padrão de comando *TapPosition.
8. Abra a janela de configurações do padrão *TapPosition na aba Comandos do objeto Configuração do Power.
9. Configure a coluna Operate Value com o valor "-1" para a Semântica StepDown.
10. Mantenha o valor "1" para a Semântica StepUp.

Semânticas
11. Altere o script do evento OnOperate. Ao invés de apenas enviar o comando WriteValue, vamos somá-lo ao valor
atual do Tag. O script deve ficar da seguinte forma (a parte destacada em negrito deve ser adicionada ao script
original).
Sub OnOperate(ActorID, WriteValue, FeedbackValue, Failed)
Set Tag = Application.GetObject(OperateWriteTag)
Failed = Not Tag.WriteEx(Tag.Value + WriteValue)
End Sub

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

21.7 Desafio VII


Crie um Comando para operar o Disjuntor 52-01. Este Comando não pode ser enviado se o
dispositivo estiver em modo Local
1. Selecione a pasta Commands do Disjuntor 52-01.
2. Insira mais um Comando Discreto e configure-o da seguinte forma:
· Name: cmdPosicaoDisjuntor
· CommandType: *BreakerPosition (na caixa de seleção)

3. Selecione a UnidadeComando1 e altere a propriedade Name para "Abrir". Altere também a propriedade
CommandName para "Open".
4. Insira mais uma Unidade de Comando. Altere a propriedade Name para "Fechar" e a propriedade
CommandName para "Close".
5. Associe ambas as Unidades com a fonte Operator da Medida PosicaoDisjuntor deste equipamento.

Propriedade Measurement

Agora vamos configurar o Intertravamento conforme indicado no desafio. O bloqueio vale tanto para a Unidade Abrir
quanto para a Unidade Fechar, portanto o Intertravamento pode ser inserido dentro do Comando Discreto.
6. No Comando Discreto cmdPosicaoDisjuntor, insira uma pasta Interlocks.
7. Nesta pasta, insira um Intertravamento.

Solução dos Desafios 142


Adicionar Intertravamento
8. Configure este Intertravamento da seguinte forma:
· Measurement: SE1.[52-01].Measurements.LocalRemoto (utilize o AppBrowser)
· ComparisonOperator: 0 - coEqualTo
· ComparisonValue: 1 - Local

Propriedades do Intertravamento
9. Execute a aplicação e teste a nova funcionalidade. Se o Disjuntor estiver em modo Local, ambas as Unidades
devem estar intertravadas.

143 Solução dos Desafios


Disjuntor em modo Local

21.8 Desafio VIII


Quando houver um ou mais alarmes não reconhecidos na Subestação, o texto do botão SE1 na
Tela_Menu deve piscar em outra cor

DICA
Utilize a propriedade ActiveNACKAlarms do objeto Subestação.

A propriedade ActiveNACKAlarms indica o número de alarmes que estão sem reconhecimento dentro da Subestação.
Queremos que o texto do botão pisque se este valor for maior que 0 (zero). Portanto, vamos criar uma Associação
Digital na cor do texto do objeto, colocando uma expressão como fonte.
1. Abra a Tela_Menu, clique com o botão direito do mouse no botão cujo texto é "SE1" e selecione a opção
Propriedades.
2. Na aba Associações, crie uma Associação Digital na propriedade ForeColor.
3. Utilize o AppBrowser para selecionar a propriedade ActiveNACKAlarms do objeto SE1. Complete a expressão
manualmente, digitando "> 0" ao final.

Solução dos Desafios 144


Propriedade ActiveNACKAlarms
4. Selecione a opção Pisca para a condição Ligado. Configure as cores como desejar.

Propriedade ForeColor

21.9 Desafio IX
Crie um botão ao lado do banner de alarmes para reconhecer todos os alarmes ativos da aplicação

DICA
Esta ação pode ser realizada através de um método do objeto E3Alarm.

1. Abra a Tela_Alarmes.
2. Crie um objeto Command Button ao lado do objeto E3Alarm. Se necessário, redimensione o banner para que a
Tela tenha espaço suficiente para o botão.
3. Configure o texto do botão como "Reconhecer todos".

145 Solução dos Desafios


Tela_Menu
4. Selecione a aba Scripts deste objeto e insira um script .
5. Abra o AppBrowser e localize o método AckAll do objeto E3Alarm da Tela.

Método AckAll
6. Cole a expressão e remova o parâmetro opcional [Operator].
7. Se desejar, adicione um comentário acima da linha para identificar seu propósito.

Aba Script

21.10 Desafio X
Crie um usuário "Convidado" que não possa enviar Comandos, não possa escrever em Medidas e
nem reconhecer alarmes na aplicação
Note que as três ações indicadas no desafio são escritas em objetos do servidor.
1. Abra a janela de configuração de usuários do Studio (menu Arquivo - Usuários).
2. Na aba Usuários, clique em Novo e crie um usuário com o nome "Convidado".
3. Na aba Permissões, selecione o usuário recém-criado e, na lista à direita, selecione o item Viewer.

Solução dos Desafios 146


4. Configure para que este usuário não tenha acesso de escrita ao servidor.

Aba Permissões

21.11 Desafio XI
Crie uma Proteção de Sobrecorrente Temporizada (51) na fase Neutro do Disjuntor 52-03
1. Na Subestação SE1, selecione o Disjuntor 52-03, pertencente ao Bay1. Clique com o botão direito do mouse na
pasta Protections e selecione a opção Inserir - Proteção.
2. Renomeie esta Proteção para "51N" e selecione o tipo de Proteção como *TimeOvercurrent.
3. A fase elétrica na qual a Proteção está inserida pode ser definida na propriedade ElectricalPhase. Altere esta
propriedade para 4 - epNeutral.
4. Apague as fontes SCADA das Medidas criadas automaticamente (ModoProtecao e OperacaoProtecao), desta
forma deixando a fonte ativa como Operator.
5. Configure o valor da fonte Operator da Medida ModoProtecao para "1" (um).

Medida ModoProtecao
6. Execute a aplicação e teste a nova funcionalidade.

147 Solução dos Desafios


Aplicação em tempo de execução

21.12 Desafio XII


Crie um Display, ao lado do Disjuntor, para indicar se ele está em modo Local ou Remoto. Execute
esta configuração dentro da biblioteca
Esta funcionalidade já foi implementada no exercício de Associações. Agora vamos adaptar o objeto para que ele
esteja presente em todos os Disjuntores.
1. Utilize as teclas CTRL + X para recortar o Display de indicação de Local ou Remoto, inserido na Tela_SE1 ao lado
do Disjuntor 52-02.

Display
2. Selecione o XControl Breaker e cole o objeto (CTRL + V), posicionando-o ao lado do Disjuntor.

Disjuntor
Vamos adaptar a fonte da Associação, que foi feita anteriormente na propriedade Value. Agora o Display não deve
mais apontar para a Medida do Disjuntor 52-02, mas sim para a Medida do Disjuntor que estiver associado ao objeto
Breaker.

Solução dos Desafios 148


3. Na janela de associações deste Display, altere a fonte de "SE1.[52-02].Measurements.LocalRemoto.Value" para
"Breaker.SourceObject.Measurements.LocalRemoto.Value". Utilize a tecla F2 para editar o texto da Associação.

Associação

Nova Associação
4. Salve as alterações e registre as bibliotecas carregadas.
5. Execute a aplicação e teste a nova funcionalidade.

Aplicação em tempo de execução

149 Solução dos Desafios


21.13 Desafio XIII
Faça com que o E3Browser mostre os textos "Não" e "Sim" ao invés de "0" e "1" para a coluna
Acked (que indica se o alarme foi reconhecido)
1. Abra a janela de propriedades do objeto E3Browser1, que foi inserido na Tela_Eventos.
2. Configure a coluna Formato do campo Acked com o texto "Sim";"";"Não".

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

E3Browser em tempo de execução


NOTA
Mais informações sobre formatadores estão disponíveis no Manual do Usuário do Elipse Power, no tópico Telas e
Objetos de Tela - Formatação de Valores.

21.14 Desafio XIV


Crie um botão para exportar o relatório para um arquivo do Excel

DICA
Utilize o método Export do objeto Relatório.

1. Insira mais um botão na Tela_Eventos, com o texto "Exportar".


2. Selecione a aba Scripts do objeto e crie um script.
3. Utilize o AppBrowser para selecionar o método Export do Relatório. Note que os parâmetros do método são
explicados no Manual de Referência de Scripts, que é aberto na própria interface do AppBrowser, à direita.

Solução dos Desafios 150


Método Export
4. Cole e adapte o script, que deve ficar da seguinte forma:
Sub CommandButton2_Click()
Set Report = Application.LoadReport("RelatorioAlarmes")
Report.Export "EXCEL", "C:\Tutorial_Elipse_Power\RelatorioExcel.xls"
End Sub

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

151 Solução dos Desafios


Anotações
A

Anotações
Anotações
Matriz Filial SP
Rua 24 de Outubro, 353 - 10º andar Rua dos Pinheiros, 870 - Conj. 141/142
90510-002 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: elipse-rs@elipse.com.br E-mail: elipse-sp@elipse.com.br

Filial PR Filial MG
Av. Sete de Setembro, 4698 - Sala 1705 Rua Antônio de Albuquerque, 156
80240-000 Curitiba - PR 7º andar, sala 705
Fone: (+55 41) 4062-5824 30112-010 Belo Horizonte - MG
E-mail: elipse-pr@elipse.com.br Fone: (+55 31) 4062-5824
E-mail: elipse-mg@elipse.com.br

Filial RJ Taiwan
Av. Luiz Carlos Prestes, 180 - 3º andar 9F., No.12, Beiping 2nd St., Sanmin Dist.
22775-055 Rio de Janeiro - RJ 807 Kaohsiung City - Taiwan
Fone: (+55 21) 2112-4682 Fone: (+886 7) 323-8468
Fax: (+55 21) 2158-1099 Fax: (+886 7) 323-9656
E-mail: elipse-rj@elipse.com.br E-mail: evan@elipse.com.br

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
elipse@elipse.com.br

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