Escolar Documentos
Profissional Documentos
Cultura Documentos
Biblioteca HighPerformance
Extensions
I
CAPÍTULO
Introdução
1
Este documento contém informações necessárias para entender o funcionamento de um conjunto de bibliotecas que
são uma extensão à Biblioteca HighPerformance Template.
O objetivo desta extensão é permitir utilizar e extrair, da melhor forma possível, os dados de uma aplicação E3
modelados utilizando a Biblioteca Plant Model, porém utilizando os mesmos moldes e conceitos da Biblioteca
HighPerformance Template.
A Biblioteca Plant Model permite realizar uma modelagem de um processo de supervisão e controle através de
objetos padronizados, tais como Medidas Analógicas, Medidas Discretas, Parâmetros, Comandos e Intertravamentos.
Saiba mais sobre esta biblioteca consultando o Manual do Usuário da Biblioteca Plant Model.
A Biblioteca HighPerformance Extensions, por sua vez, permite exibir e interagir com a Biblioteca Plant Model de
diversas formas, organizadas no grupo de arquivos descritos na tabela a seguir.
1 Introdução
CAPÍTULO
Instalação em uma Aplicação
2
Para usar a Biblioteca HighPerformance Extensions, adicione ao Domínio o arquivo extensions.e3pkg, disponível na
pasta Packages da distribuição. Caso prefira adicionar os arquivos individualmente, copie a pasta Extensions com
todas as pastas e arquivos para a pasta raiz da aplicação. Em seguida, no Studio, insira no Domínio todos os
arquivos de biblioteca (.lib) e projetos (.prj) que estão nas pastas XLibraries e XProjects, respectivamente. Os
arquivos de bibliotecas e projetos da Biblioteca HighPerformance Extensions sempre utilizam o prefixo hpX, para
que possam ser facilmente diferenciados dos objetos da aplicação.
3.1.1 hpXCommandButton
Permite realizar o envio de comandos em objetos do tipo xfCommandUnit. Este objeto realiza as verificações de
permissão sobre o objeto e possui comportamentos diferentes, dependendo do tipo de comando configurado para o
objeto xfCommandUnit associado. Este objeto possui um retângulo vertical ao lado direito, que indica os estados de
intertravamento e de feedback.
O estado Interlocked é recuperado automaticamente do objeto xfCommandUnit, indicando que existe alguma
situação de processo que pode bloquear o comando. Se o estado Interlocked está ativo, o efetivo bloqueio do
comando acontece dependendo da propriedade InterlockMode do objeto xfCommandUnit, que pode ser 0: Não
bloqueia, 1: Avisa ou 2: Bloqueia.
O estado Feedback, que tem uso opcional, é obtido de um estado digital (xfDiscreteInfo) que indica o retorno do
comando. Pode indicar os estados ativo (ColorStatusOn), inativo (ColorStatusOff) e inválido (ColorStatusInvalid) e
pode ser invertido a partir da propriedade InverseFeedBack.
1. Verifica se o comando está autorizado, ou seja, se o grupo do usuário pertence à lista de grupos autorizados do
comando ou nível mais alto (PlantFolder).
O resultado, seja sucesso ou falha, é logado no objeto xoLogger da Biblioteca Plant Model, que deve estar
instanciado como Logger.LogSvc, com os parâmetros a seguir no array de entrada.
· Elemento 0: "xfCommandUnit"
· Elemento 3: Resultado da operação. Os valores possíveis são 0: OK, 1: Falha, 2: Não autorizado ou 3: Bloqueado
· Elemento 6: Horário
3 Objetos
Propriedades do objeto hpXCommandButton
PROPRIEDADE DESCRIÇÃO
CmdObject Associação para um objeto xfCommandUnit
3.2.1 hpXBarGraphAlarmLimHoriz
O objeto hpXBarGraphAlarmLimHoriz é um gráfico de barras horizontal que apresenta os limites de alarmes na
forma de bandeiras ou flags sobrepostos à barra indicadora de valor, e deve estar associado a um objeto do tipo
xfAnalogInfo para o valor e outro para o setpoint.
PROPRIEDADE DESCRIÇÃO
AlarmSource Associação para um objeto Fonte de Alarme Analógico
Objetos 4
PROPRIEDADE DESCRIÇÃO
Domain Nome do Domínio Remoto, se houver, no formato
DOMAIN:
3.2.2 hpXBarGraphAlarmLimVert
O objeto hpXBarGraphAlarmLimVert é um gráfico de barras vertical que apresenta os limites de alarmes na forma
de bandeiras ou flags sobrepostos à barra indicadora de valor, e deve estar associado a um objeto do tipo
xfAnalogInfo para o valor e outro para o setpoint.
As formas de exibição são bastante semelhantes ao objeto hpBarGraphAlarmLimVertical, com as mesmas diferenças
listadas para o objeto hpXBarGraphAlarmLimHoriz.
PROPRIEDADE DESCRIÇÃO
AlarmSource Associação para o objeto Fonte de Alarme Analógico
5 Objetos
PROPRIEDADE DESCRIÇÃO
AnalogInfo Associação para o objeto xfAnalogInfo com o valor
corrente
Objetos 6
3.2.3 hpXDigitalDisplay
O objeto hpXDigitalDisplay é um indicador para variáveis digitais associado a um objeto xfDiscreteInfo, e exibe os
estados Ligado (On), Desligado (Off) ou Qualidade ruim (Bad quality).
PROPRIEDADE DESCRIÇÃO
CustomText Texto alternativo ao texto definido no objeto
xfDiscreteInfo, ou seja, as propriedades Caption ou
Name
3.2.4 hpXDigitalDisplayPopUp
O objeto hpXDigitalDisplayPopUp é um indicador para variáveis digitais associado a um objeto xfDiscreteInfo, e
exibe os estados Ligado (On), Desligado (Off) ou Qualidade ruim (Bad quality).
A diferença em relação ao objeto hpXDigitalDisplay é a possibilidade de abrir uma Tela Faceplate ao clicar.
PROPRIEDADE DESCRIÇÃO
CustomText Texto alternativo ao texto definido no objeto
xfDiscreteInfo, ou seja, as propriedades Caption ou
Name
7 Objetos
PROPRIEDADE DESCRIÇÃO
ShowTag Exibe ou esconde a propriedade Name do objeto
xfDiscreteInfo
3.2.5 hpXDynValueAnalog
O objeto hpXDynValueAnalog é um indicador de valor dinâmico, ou seja, exibe o valor e a unidade de uma variável
associada a um objeto xfAnalogInfo. Caso a qualidade da variável seja ruim, este objeto exibe a indicação "???".
PROPRIEDADE DESCRIÇÃO
AnalogInfo Associação para um objeto xfAnalogInfo
3.2.6 hpXDynValueDiscrete
Permite listar os possíveis estados de um objeto xfDiscreteInfo padrão e alterar estes valores caso seja usada a fonte
de dados OperatorSource.
PROPRIEDADE DESCRIÇÃO
DiscreteInfo Associação para um objeto xfDiscreteInfo
Objetos 8
PROPRIEDADE DESCRIÇÃO
PowerMode Verdadeiro se o dado vem de um objeto do Elipse
Power
3.2.7 hpXManualValueIO
Este objeto é usado para exibição e envio de setpoints associados a um objeto xfParameter. Esta indicação de valor
manual difere visualmente da indicação de valor dinâmico do objeto hpXDynValueAnalog basicamente pela cor. No
entanto, para alguns tipos de deficiências visuais, as duas cores podem ser muito parecidas, dificultando sua
diferenciação. Por este motivo foi acrescentado o ponto entre o valor e a unidade. Caso a qualidade da variável seja
ruim, este objeto exibe a indicação "???".
Este objeto também realiza as verificações de permissão sobre um objeto, logando o resultado, sucesso ou falha, no
objeto xoLogger da Biblioteca Plant Model, que deve estar instanciado como Logger.LogSvc, com os parâmetros a
seguir no array de entrada.
· Elemento 0: "xfParameter"
· Elemento 3: Resultado da operação. Os valores possíveis são 0: OK, 1: Falha ou 2: Não autorizado
· Elemento 5: Horário
PROPRIEDADE DESCRIÇÃO
CustomFormat Formato customizado que sobrescreve o formato padrão
do objeto xfParameter associado. Se o valor é uma
String vazia, habilita o formato configurado no objeto
xfParameter
9 Objetos
3.3.1 hpXBlockILIndicator
Este objeto exibe um ícone quando o objeto Unidade de Intertravamento associado está bloqueado e um ícone
se o objeto associado está desbloqueado.
A propriedade disponível neste objeto é InterlockUnit, que indica uma Associação para um objeto xfInterlockUnit.
3.3.2 hpXBlockIndicator
Este objeto exibe um ícone quando o objeto Unidade de Comando associado está bloqueado e um ícone se o
objeto associado está desbloqueado. Além disto, permite abrir uma nova Tela pop-up indicando quais são os
Intertravamentos ativos.
PROPRIEDADE DESCRIÇÃO
DataObject Associação para um objeto xfCommandUnit, que é
repassado como parâmetro para a Tela a ser aberta
3.3.3 hpXBlockIndicatorBypass
Este objeto exibe um ícone ou um ícone se a propriedade ByPassState está configurada para Falso ou
Verdadeiro, respectivamente. Se a propriedade LinkMode está configurada para Verdadeiro, clicar neste objeto
permite executar o comando associado na propriedade CommandUnit com o objetivo de alterar o by-pass.
PROPRIEDADE DESCRIÇÃO
ByPassState Associação para um objeto que indique o estado de by-
pass
3.3.4 hpXCollapseExpand
Este objeto é usado internamente na Tela de Faceplate para controlar a exibição mínima ou expandida . É usado
quando o número de objetos excede o tamanho padrão da Tela de Faceplate, permitindo assim que seja expandida
para exibir todos os objetos.
Objetos 10
Propriedades do objeto hpXCollapseExpand
PROPRIEDADE DESCRIÇÃO
Active Indica se o objeto hpXCollapseExpand está visível e
operacional
3.3.5 hpXFaceplateTemplate
Este objeto tem como principais funções armazenar a configuração do conteúdo de dados a ser exibido em uma Tela
Faceplate (não confundir com o objeto hpPopUpTemplate, que configura o estilo da janela) e informar os nomes da
biblioteca e do símbolo a ser exibido para indicação de estado operativo.
PROPRIEDADE DESCRIÇÃO
DeviceControlGallery Nome do arquivo de biblioteca que contém o ícone do
equipamento
11 Objetos
A ordem das letras define como as Associações aparecem na janela pop-up. Por exemplo, a expressão "A;C;S" indica a
exibição das abas Analógicas, Comandos e Status. Salvo indicação explícita, descrita no tópico Marcadores, a janela
abre exibindo a primeira aba declarada, neste caso a aba Analógicas.
· O ícone da aba é o objeto CustomIcon1, criado na biblioteca custom.lib. Para mais informações, consulte o
tópico Criação de um Ícone Personalizado
· O botão para abrir esta aba contém o texto de ajuda "Here comes a custom tip"
· A aba não tem um comando para expandir a janela, portanto o tamanho é fixo
· O botão para abrir esta aba contém o texto de ajuda "Here comes a custom tip"
· A largura da janela durante a expansão é de 700 pixels, enquanto a altura é de 600 pixels
3.3.5.4 Marcadores
O marcador * (asterisco) indica a aba que deve ser exibida ao abrir a janela pela primeira vez e deve ser declarado
imediatamente antes da letra correspondente. O marcador # (sinal numérico) indica a utilização de um botão
personalizado que funciona como um comando e não para exibir conteúdo de uma aba normal. Um cenário de uso é
quando se deseja abrir outra janela com um clique de mouse.
Objetos 12
Neste exemplo a barra de Associações é montada com os elementos descritos a seguir.
· O segundo elemento é a aba de Medidas Analógicas, que também é exibida ao abrir a janela
· O quarto elemento é definido pelo usuário e não exibe nenhum objeto na aba, indicando que é executada alguma
função implementada no botão CustomTab da biblioteca custom. Para mais informações, consulte o tópico
Criação de um Botão de Aba Personalizado
3.3.5.6 Instâncias
Os objetos hpXFaceplateTemplate devem ser instanciados na pasta hpXObjects.FaceplateTemplates, contida no
projeto hpXMain.
3.3.6 hpXProtection
Este objeto é usado para exibir o nome e estado de uma Proteção do Elipse Power.
PROPRIEDADE DESCRIÇÃO
ProtectionDevice Associação para um objeto PowerProtectionDevice
3.4.1 DataObjectBridge
Objeto usado internamente na Tela Faceplate, tem a função de armazenar e disponibilizar o código XML do objeto de
dados passado à Tela Faceplate.
3.4.2 hpXContainer
Objeto usado internamente na Tela Faceplate, tem a função de calcular as coordenadas de até 256 células de grade
conforme a configuração do usuário, criando e posicionando automaticamente objetos como filhos. Pode também ser
usado fora da Tela Faceplate, no contexto de uma Tela normal de processo onde é necessário exibir uma grade de
objetos. Suas principais funções são as seguintes:
· Receber todas as configurações da grade, tais como o número de colunas, linhas e quebras
· Calcular as coordenadas de cada célula da grade, com base nos parâmetros passados
· Receber toda a configuração de adição de objeto, ou seja, os parâmetros usados no método AddObject
13 Objetos
Desta forma todos os objetos criados são filhos de um contêiner que calcula e posiciona automaticamente cada um
destes objetos.
3.4.2.1 Propriedades
O objeto hpXContainer possui várias propriedades, que podem ser agrupadas de acordo com a função, conforme
os tópicos a seguir.
PROPRIEDADE DESCRIÇÃO
CellHeight Altura da célula da grade, em Himetric
PROPRIEDADE DESCRIÇÃO
ColumnBreak Número de linhas a serem preenchidas antes de ocorrer
uma quebra de coluna
PROPRIEDADE DESCRIÇÃO
ShowOfflineText Mostra ou esconde o texto que aparece no Studio
PROPRIEDADE DESCRIÇÃO
ActivateStatus Informa se um objeto é criado ativado ou desativado
Objetos 14
PROPRIEDADE DESCRIÇÃO
CreateNewObject Informa se um objeto deve ou não ser criado
PROPRIEDADE DESCRIÇÃO
CurrentGroupNum Número do grupo corrente. Sempre que ocorre uma
quebra de coluna ou quebra de linha, as células
preenchidas imediatamente antes da quebra passam a
formar um grupo. Cada grupo de células recebe uma
numeração progressiva para identificação
15 Objetos
NOTA
Todas as propriedades indicadas neste tópico são somente de leitura e estão disponíveis apenas em tempo de
execução.
2. Execute o evento CustomConfig para calcular as coordenadas. A propriedade Status indica o andamento deste
cálculo.
Em um cenário de preenchimento de grade por script, repita os passos 4 (quatro) e 5 (cinco), ajustando os
parâmetros de criação de objetos. A seguir são mostrados alguns cenários que ilustram a ordem na qual as células
são preenchidas.
1. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma coluna antes de passar para a próxima (propriedade
Orientation igual a zero), sem quebra de coluna (propriedade ColumnBreak igual a zero ou 3).
2. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma coluna antes de passar para a próxima (propriedade
Orientation igual a zero), com quebra de coluna após preencher duas células (propriedade ColumnBreak igual a
2).
Objetos 16
3.4.2.2.2 Preenchimento por Linha
1. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma linha antes de passar para a próxima (propriedade
Orientation igual a 1), sem quebra de linha (propriedade LineBreak igual a zero ou 3).
2. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma linha antes de passar para a próxima (propriedade
Orientation igual a 1), com quebra de linha após preencher duas células (propriedade LineBreak igual a 2).
O script a seguir referencia um objeto hpXContainer e cria até 9 (nove) objetos do tipo hpLinkIcon, posicionando-os
na grade definida em um objeto hpXGridCalc. Ao atingir o limite de objetos, estes são apagados e a contagem é
reiniciada.
Sub hpCommandButton1_OnEventClick()
Set Container = Screen.Item("hpXContainer1")
With Container
'Apaga os objetos da grade
'e reinicia a contagem da propriedade Index
If .Index > (.Columns * .Rows) Then .Reset = True
'Cria um objeto do tipo hpLinkIcon
'já posicionado na grade
.ClassName = "hpLinkIcon" 'Classe do objeto criado
.CreateNewObject = True 'Cria o objeto
End With
End Sub
Caso seja necessário acessar um objeto criado dentro do contêiner em um momento anterior, use o método
GetChildObject do objeto hpXContainer. Para mais informações, consulte a propriedade NewObjectPathName.
3.4.3 hpXGridCalc
Objeto usado internamente na Tela Faceplate, tem a função de calcular e armazenar as coordenadas de até 256
células de grade conforme a configuração do usuário. Pode também ser usado fora da Tela Faceplate, no contexto de
uma Tela normal de processo onde é necessário configurar uma grade.
Este objeto foi criado para atender a uma demanda de maior desempenho e flexibilidade em relação ao objeto
hpXContainer, porém sem o automatismo nativo.
· Recebe toda a configuração de grade, tais como número de colunas, linhas e quebras
· Calcula as coordenadas de cada célula de grade, com base nos parâmetros passados
17 Objetos
· Disponibiliza as coordenadas calculadas para o usuário, bem como outras informações de rastreamento de
preenchimento das células
O objeto hpXGridCalc realiza o mesmo cálculo e repassa as mesmas informações de rastreamento que o objeto
hpXContainer, mas não cria nenhum objeto internamente. Trata-se de uma calculadora de coordenadas e não de um
contêiner de objetos.
3.4.3.1 Propriedades
O objeto hpXGridCalc possui várias propriedades, que podem ser agrupadas de acordo com a função, conforme os
tópicos a seguir.
PROPRIEDADE DESCRIÇÃO
CellHeight Altura da célula da grade, em Himetric
PROPRIEDADE DESCRIÇÃO
ColumnBreak Número de linhas a serem preenchidas antes de ocorrer
uma quebra de coluna
PROPRIEDADE DESCRIÇÃO
ShowOfflineText Mostra ou esconde o texto que aparece no Studio
Objetos 18
PROPRIEDADE DESCRIÇÃO
Status Indica o estado do processamento no Studio usando o
evento CustomConfig. A indicação "Ready" significa que
o cálculo foi concluído
3.4.3.1.4 Coordenadas
PROPRIEDADE DESCRIÇÃO
X1, X2, ..., Xn Coordenada horizontal da célula indicada pelo número
da propriedade. X1 refere-se à primeira célula a ser
preenchida, X2 refere-se à segunda célula, e assim
sucessivamente
PROPRIEDADE DESCRIÇÃO
CurrentGroupNum Número do grupo corrente. Sempre que ocorre uma
quebra de coluna ou quebra de linha, as células
preenchidas imediatamente antes da quebra passam a
formar um grupo. Cada grupo de células recebe uma
numeração progressiva para identificação
NOTA
Todas as propriedades indicadas neste tópico são somente de leitura e estão disponíveis apenas em tempo de
execução.
19 Objetos
3.4.3.2 Exemplos de Uso
O uso geral deste objeto consiste nestes passos:
2. Execute o evento CustomConfig para calcular as coordenadas. A propriedade Status indica o andamento deste
cálculo.
4. Em tempo de execução, escreva na propriedade Index o número de uma célula, como por exemplo 3 (três).
5. Este objeto retorna, nas propriedades Xindex e Yindex, as coordenadas horizontais e verticais para a célula
indicada.
Em um cenário de preenchimento de grade por script, repita os passos 4 (quatro) e 5 (cinco), mudando o endereço
da célula na propriedade Index e lendo as coordenadas nas propriedades Xindex e Yindex. A seguir são mostrados
alguns cenários que ilustram a ordem na qual as células são preenchidas.
1. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma coluna antes de passar para a próxima (propriedade
Orientation igual a zero), sem quebra de coluna (propriedade ColumnBreak igual a zero ou 3).
2. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma coluna antes de passar para a próxima (propriedade
Orientation igual a zero), com quebra de coluna após preencher duas células (propriedade ColumnBreak igual a
2).
1. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma linha antes de passar para a próxima (propriedade
Orientation igual a 1), sem quebra de linha (propriedade LineBreak igual a zero ou 3).
Objetos 20
Preenchimento por linha sem quebra
2. Grade com nove células distribuídas em três linhas (propriedade Rows igual a 3) por três colunas (propriedade
Columns igual a 3), preenchendo inteiramente uma linha antes de passar para a próxima (propriedade
Orientation igual a 1), com quebra de linha após preencher duas células (propriedade LineBreak igual a 2).
O script a seguir referencia um objeto hpXGridCalc e cria até 9 (nove) objetos do tipo hpLinkIcon, posicionando-os
na grade definida em um objeto hpXGridCalc. Ao atingir o limite de 9 (nove) objetos, estes são apagados e a
contagem é reiniciada.
Sub hpCommandButton1_OnEventClick()
Set gridCalc = Screen.Item("hpXGridCalc1")
With gridCalc
'Define as coordenadas iniciais
Xini = .X
Yini = .Y
'Apaga os objetos da grade
'e reinicia a contagem de Index
If .Index > (.Columns * .Rows) Then
.Index = 1
For Each obj In Screen
If InStr(obj.Name,"hpLinkIconTestGridA") <> 0 Then
Screen.DeleteObject(obj.Name)
End If
Next
End If
'Cria um objeto do tipo hpLinkIcon
'já posicionado na grade
Set elm = Screen.AddObject("hpLinkIcon", False, "hpLinkIconTestGridA")
elm.X = Xini + .Xindex
elm.Y = Yini + .Yindex
elm.IconName = "hpIcon" & CStr(.Index)
elm.Activate()
elm.BringToFront()
'Aponta Index para o próximo objeto a ser criado
.Index = .Index + 1
End With
End Sub
21 Objetos
CAPÍTULO
Tela Faceplate
4
Uma Tela Faceplate lê o código especificado na propriedade PopupCode do objeto hpXFaceplateTemplate, na
estrutura de controle, e monta as abas e os controles de acordo com a configuração, conforme a figura a seguir.
Tela Faceplate
Os tópicos a seguir descrevem os passos necessários para configurar uma aplicação para uso da Tela Faceplate.
Tela Faceplate 22
· OutputMode: Configure com o valor 1 (um, armazena o código XML gerado na propriedade xmlData de cada
objeto xfPlantFolder)
· RunOnStart: Configure em Falso para melhor desempenho na inicialização do Viewer, porém requer que seja
executado via método CustomConfig
Estas configurações permitem gerar um código XML já otimizado para o uso da Tela Faceplate, que é salvo em cada
objeto da estrutura de dados que represente um equipamento.
É importante garantir que a pasta raiz de cada equipamento, que é do tipo xfPlantFolder, tenha sua propriedade
StoreXML configurada com o valor Verdadeiro. Isto permite o armazenamento do código XML na propriedade
xmlData, que é lida pela Tela Faceplate durante a abertura.
A Tela Faceplate não aceita código XML contendo nós do tipo xfPMRef, ou seja, que referenciem conteúdo externo.
Por isto, ao gerar um arquivo XML onde a propriedade XMLTemplate é igual a 3 (três, Faceplate), automaticamente o
valor da propriedade XRefMode é alterado para 1 (um), a fim de eliminar os atalhos e mesclar o conteúdo externo ao
código XML resultante.
23 Tela Faceplate
Botões da barra de título ocultos ou inativos
Neste caso, é preciso configurar o Tag Interno hShift para um valor diferente de 0 (zero), como mostrado na figura a
seguir, para exibir o botão Fechar no corpo da janela.
Tela Faceplate 24
Botão Fechar instanciado na janela
Este Tag está em Faceplate - hpData - Start - Vars, e seu valor deve ser menor do que 0 (zero), pois se refere ao
deslocamento horizontal a partir da borda direita da janela. O valor 0 (zero) se refere à borda. No exemplo da
imagem anterior, foi configurado com o valor -600, que é o valor recomendado. Para manter este botão invisível,
configure o valor do Tag hShift com o valor 0 (zero).
Recomenda-se criar um template para cada tipo de equipamento, como por exemplo um para Bombas e outro para
Válvulas. Em alguns casos pode ser interessante classificar os templates por fabricante de equipamentos que tenham
funcionamento e simbologia similar. Isto, no entanto, não é uma regra rígida e cada aplicação tem suas
particularidades.
Além disto, todo símbolo exibido pela Tela Faceplate deve obedecer aos critérios a seguir.
25 Tela Faceplate
· Ter uma propriedade chamada DataObject, do tipo xfPlantFolder, com valor inicial vazio. Esta propriedade
recebe uma Associação com a propriedade PathName do objeto de dados
· Ter uma propriedade chamada Orientation, do tipo Integer, com valor inicial 0 (zero). Esta propriedade indica se
o objeto deve ser representado na vertical ou na horizontal, ou se espelhado à esquerda ou à direita. Por
exemplo, uma válvula pode ser representada em quatro diferentes orientações, definidas pela propriedade
Orientation com os valores 0 (zero), 1 (um), 2 (dois) ou 3 (três)
· Todas as primitivas do E3 ou imagens que compõem um objeto gráfico implementado pelo desenvolvedor da
aplicação devem estar contidas em um Grupo ou Animação denominado Device
· Dentro de cada Grupo ou Animação Device, deve ser instanciado um objeto do tipo hpPopupOpen denominado
hpPopupOpen1. Durante a abertura, a Tela Faceplate desabilita automaticamente este objeto para que não se
possa abrir uma nova instância da Tela Faceplate a partir da própria Tela
Para não exibir o ícone do equipamento na Tela Faceplate, configure a propriedade DeviceControlName do objeto
hpXFaceplateTemplate para uma String vazia.
2. Tomando por base o objeto hpLinkIcon da biblioteca hpMenus, copie e cole no novo XControl somente as
primitivas. Exclua as propriedades e os scripts que vieram do objeto original.
3. O grupo Object pode ser desagrupado, resultando em apenas dois objetos na raiz do XControl, MouseArea e
Background.
4. Insira o ícone desejado na raiz do XControl, que pode ser qualquer ícone da biblioteca hpIcons ou equivalente.
NOTA
As Associações cadastradas na janela de conexão múltipla desta Associação devem permanecer inalteradas. Apenas
o campo Source da Associação original deve ser alterado.
7. Configure o script do XControl, por exemplo no evento Click do objeto MouseArea, com o código a seguir.
Sub MouseArea_Click()
MsgBox "Hello!"
End Sub
9. Salve o XControl.
Sempre que este botão personalizado é declarado na propriedade PopupCode do objeto hpXFaceplateTemplate,
deve obedecer ao formato Biblioteca.XControl, onde Biblioteca é o nome do arquivo de biblioteca que contém o
XControl e XControl é o nome do objeto.
Tela Faceplate 26
1. Crie um XControl em uma biblioteca de usuário.
2. Tomando por base um ícone qualquer da biblioteca hpIcons, copie e cole neste novo XControl as primitivas e as
propriedades.
3. Salve o XControl.
Sempre que este botão personalizado é declarado na propriedade PopupCode do objeto hpXFaceplateTemplate,
deve obedecer ao formato Biblioteca.Ícone, onde Biblioteca é o nome do arquivo de biblioteca que contém o ícone, e
Ícone é o nome do objeto.
27 Tela Faceplate
Matriz Filial em São Paulo
Rua Mostardeiro, 322/Cj. 902, 1001 e 1002 Rua dos Pinheiros, 870/Cj. 141 e 142
90430-000 — Porto Alegre — RS 05422-001 — São Paulo — SP
Fone: (+55 51) 3346-4699 Fone: (+55 11) 3061-2828
Fax: (+55 51) 3222-6226 Fax: (+55 11) 3086-2338
E-mail: elipse-rs@elipse.com.br E-mail: elipse-sp@elipse.com.br