Escolar Documentos
Profissional Documentos
Cultura Documentos
HP Extensions
Manual do Usuário da
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 Elipse E3
modelados utilizando a Biblioteca PlantModel, porém utilizando os mesmos moldes e conceitos da Biblioteca
HighPerformance Template.
A Biblioteca PlantModel 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 PlantModel.
A Biblioteca HighPerformance Extensions, por sua vez, permite exibir e interagir com a Biblioteca PlantModel de
diversas formas, organizadas no grupo de arquivos descritos na tabela a seguir.
Introdução 1
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 PlantModel, 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
Objetos 3
Propriedades do objeto hpXCommandButton
PROPRIEDADE DESCRIÇÃO
CmdObject Associação para um objeto xfCommandUnit
3.1.2 hpXPowerCommandButton
Permite realizar o envio de comandos em objetos do tipo PowerCommandUnit. 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.
PROPRIEDADE DESCRIÇÃO
CmdObject Associação para um objeto PowerCommandUnit
4 Objetos
3.2 Biblioteca hpXDisplayMedia
Esta seção contém informações sobre os objetos da Biblioteca hpXDisplayMedia.
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 5
PROPRIEDADE DESCRIÇÃO
ShowFaceplate Habilita a funcionalidade de link para este objeto. Os
valores possíveis para esta propriedade são True:
Permite abrir a Tela especificada na propriedade
popName com o clique do mouse ou False: Desativa a
funcionalidade de link
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
6 Objetos
PROPRIEDADE DESCRIÇÃO
EventClick Incrementa o valor de 1 (um) a 9 (nove) quando este
objeto recebe um evento de clique com o botão
esquerdo do mouse. Esta propriedade é válida somente
quando a propriedade EnableClick é igual a True
Objetos 7
PROPRIEDADE DESCRIÇÃO
XChartColor Cor usada pela barra quando a propriedade
UseXChartColor está configurada com o valor
Verdadeiro, no formato numérico
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 Define um texto personalizado como texto deste objeto.
Esta propriedade tem prioridade sobre as propriedades
ShowTag e ShowCaption
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 Define um texto personalizado como texto deste objeto.
Esta propriedade tem prioridade sobre as propriedades
ShowTag e ShowCaption
8 Objetos
PROPRIEDADE DESCRIÇÃO
popTemplate Template com a formatação visual do objeto
hpPopUpTemplate
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 com o valor
corrente
Objetos 9
PROPRIEDADE DESCRIÇÃO
ShowFaceplate Habilita a funcionalidade de link para este objeto. Os
valores possíveis para esta propriedade são True:
Permite abrir a Tela especificada na propriedade
popName com o clique do mouse ou False: Desativa a
funcionalidade de link
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
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 PlantModel, 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
10 Objetos
· 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
3.2.8 hpXPowerDynValueAnalog
O objeto hpXPowerDynValueAnalog é um indicador de valor dinâmico, ou seja, exibe o valor e a unidade de uma
variável associada a um objeto PowerAnalogMeasurement. Caso a qualidade da variável seja ruim, este objeto exibe
a indicação "???".
PROPRIEDADE DESCRIÇÃO
AnalogInfo Associação para um objeto PowerAnalogMeasurement
Objetos 11
PROPRIEDADE DESCRIÇÃO
popName Tela a ser aberta, como por exemplo "Faceplate?100?0"
3.3.1 hpXAuthorization
Este objeto permite armazenar o grupo do usuário e as estações nas quais este grupo pode executar alterações de
valores de comandos ou parâmetros através da Tela Faceplate.
O objeto hpXAuthorization pode ser aplicado em um cenário em que se deseja realizar restrições de comandos pelo
grupo do usuário e as estações que este grupo pode atuar.
1. Para cada grupo de usuários que se deseja verificar as permissões, adicione um novo objeto hpXAuthorization
na pasta hpXObjects - AuthorizationManager.
3. Para cada objeto hpXAuthorization, adicione as estações onde este grupo de usuários pode realizar alterações.
4. Nos objetos do tipo xfCommand e xfParameter que controlam a autorização por grupos, os nomes dos grupos
de usuários autorizados devem ser adicionados na propriedade AuthorizedGroups, separados por ponto e
vírgula.
5. Para controlar a autorização de estações, configure a propriedade AuthorizedGroups dos objetos xfCommand e
xfParameter e habilite a propriedade CheckStation.
PROPRIEDADE DESCRIÇÃO
AuthorizationName Nome da autorização. Este nome não precisa ser igual
ao nome do grupo de usuários cadastrado no Elipse E3
ou Elipse Power ao qual esta autorização se refere
12 Objetos
3.3.2 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.3 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.4 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 Define o status de by-pass. Os valores possíveis para esta
propriedade são True: Ativo ou False: Inativo
Objetos 13
3.3.5 ~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.
PROPRIEDADE DESCRIÇÃO
Active Indica se o objeto ~hpXCollapseExpand está visível e
operacional
NOTA
Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
3.3.6 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
14 Objetos
NOTA
Para não exibir um ícone de equipamento na Tela Faceplate, configure as propriedades DeviceControlGallery e
DeviceControlName com uma String vazia.
· A: Medidas Analógicas
· D: Medidas Discretas
· C: Comandos
· S: Status
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, nesta ordem. Salvo indicação explícita, descrita no tópico
Marcadores, a janela abre exibindo a primeira aba declarada, neste caso a aba Analógicas.
xfSetPointsFolder xfParameter
Objetos 15
NOTAS
· Os objetos do tipo xfParameter podem ser alocados tanto na pasta xfMeasuresFolder quanto na pasta
xfSetPointsFolder. Esta alocação é opcional e serve apenas para fins de organização, considerando serem
instanciados juntamente com outras Medidas ou separadamente na própria pasta.
· O mesmo ocorre com objetos do tipo xfDiscreteInfo, que podem ser exibidos tanto na aba Discretas (D), se
alocados na pasta xfMeasuresFolder, quanto na aba Status (S), se alocados na pasta xfStatusFolder.
Pode-se utilizar tipos de objetos personalizados na Tela Faceplate, nos cenários descritos a seguir.
Nesta aba pode-se substituir o objeto de Tela padrão associado ao objeto do tipo xfAnalogInfo por um objeto
personalizado, declarando este objeto e a respectiva biblioteca na propriedade PopupCode, no formato a seguir.
A{Biblioteca.Objeto}
Aba Comandos
Nesta aba pode-se substituir os objetos de Tela padrão associados a objetos do tipo xfCommandUnit e
xfInterlockUnit por objetos personalizados, declarando estes objetos e as respectivas bibliotecas na propriedade
PopupCode, no formato a seguir.
C{Biblioteca.Objeto1, Biblioteca.Objeto2}
O primeiro objeto declarado associa-se ao objeto do tipo xfCommandUnit e o segundo objeto declarado associa-se
ao objeto do tipo xfInterlockUnit.
O objeto de Tela padrão para objetos do tipo xfCommandUnit é hpXCommandButton e o objeto de Tela padrão
para objetos do tipo xfInterlockUnit é hpXBlockIndicator.
Nesta aba pode-se substituir o objeto de Tela padrão associado a objetos do tipo xfDiscreteInfo por um objeto
personalizado, declarando este objeto e a respectiva biblioteca na propriedade PopupCode, no formato a seguir.
D{Biblioteca.Objeto}
16 Objetos
O objeto de Tela padrão para objetos do tipo xfDiscreteInfo é hpXDynValueDiscrete.
Aba Status
Nesta aba pode-se substituir o objeto de Tela padrão associado a objetos do tipo xfDiscreteInfo por um objeto
personalizado, declarando este objeto e a respectiva biblioteca na propriedade PopupCode no formato a seguir.
S{Biblioteca.Objeto}
Marcador % (Porcentagem)
Caso o usuário deseje manter um dos objetos padrão, use o caractere % (porcentagem) como um marcador. Por
exemplo, na aba Comandos, para usar o objeto de comando padrão da Tela e alterar apenas o objeto de
intertravamento, a sintaxe da propriedade PopupCode é a seguinte:
C{%,myLib.myXControl}
A sintaxe de parâmetros somente usando marcadores é equivalente ao uso padrão dos parâmetros. Os exemplos a
seguir de sintaxe da propriedade PopupCode são equivalentes.
A{%};C{%,%}
A;C
· 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
NOTA
O parâmetro Tip é opcional e não permite usar os caracteres de vírgula, ponto e vírgula e pipe (|), além dos
caracteres ASCII entre 0 (zero) e 31 e o caractere 127 (DEL).
· 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
NOTA
O parâmetro Tip é opcional e não permite usar os caracteres de vírgula, ponto e vírgula e pipe (|), além dos
caracteres ASCII entre 0 (zero) e 31 e o caractere 127 (DEL).
3.3.6.4 Marcadores
Marcadores são usados para informar à Tela que um determinado parâmetro tem comportamento diferente do
padrão.
Marcadores disponíveis
MARCADOR DESCRIÇÃO
* (asterisco) Indica a aba que deve ser exibida ao abrir a janela pela
primeira vez e deve ser declarado imediatamente antes
da letra correspondente, como por exemplo "A;*C;D"
18 Objetos
· 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.6.6 Instâncias
Os objetos hpXFaceplateTemplate devem ser instanciados na pasta hpXObjects.FaceplateTemplates, contida no
projeto hpXMain.
3.3.7 ~hpXProtection
Este objeto é usado para exibir o nome e estado de uma Proteção do Elipse Power.
PROPRIEDADE DESCRIÇÃO
InterlocksScreenPathName Propriedade PathName da Tela Interlocks
NOTA
Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
3.4.1 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
Objetos 19
· Retornar a referência de um objeto recém criado para uso por script
Desta forma todos os objetos criados são filhos de um contêiner que calcula e posiciona automaticamente cada um
destes objetos.
3.4.1.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
20 Objetos
3.4.1.1.3 Funcionalidades no Studio
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
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
Objetos 21
PROPRIEDADE DESCRIÇÃO
CurrentRowNumAbs Número absoluto da linha corrente, ou seja, sem levar
em conta os agrupamentos de linhas
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).
22 Objetos
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).
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).
As grades permitem acomodar diferentes tipos de objetos, por isto é possível configurar as colunas com até 3 (três)
larguras distintas, conforme os elementos exibidos em cada coluna. Para isto são definidos os tipos de colunas
Primárias, Secundárias e Terciárias.
Cada tipo de coluna possui uma propriedade exclusiva que define a largura. A propriedade CellWidth define a
largura para a coluna primária, a propriedade CellWidthSecondaryColumn define a largura para a coluna secundária
e a propriedade CellWidthTertiaryColumn define a largura para a coluna terciária.
Desta forma, é possível escolher entre 3 (três) padrões diferentes de tamanhos de colunas, apenas colunas primárias,
uma combinação de colunas primárias com secundárias ou uma combinação de colunas primárias, secundárias e
terciárias.
As colunas usadas em cada padrão são aquelas cuja largura é configurada com um valor diferente de 0 (zero). Uma
vez definido o padrão, este se repete ao longo de toda a grade.
Objetos 23
Padrão com Colunas de Mesma Largura
Para definir um padrão que use apenas uma largura para todas as células, deve-se usar apenas as colunas primárias.
Para isto, configure a propriedade CellWidth com um valor maior que 0 (zero) e as propriedades
CellWidthSecondaryColumn e CellWidthTertiaryColumn iguais a 0 (zero, desabilitado). O padrão construído é o de
um único valor de largura, que se repete em todas as células.
Para definir um padrão que use duas larguras distintas, deve-se usar as colunas primárias e secundárias. Para isto,
configure as propriedades CellWidth e CellWidthSecondaryColumn com um valor maior que 0 (zero) e a
propriedade CellWidthTertiaryColumn igual a 0 (zero, desabilitado). O padrão construído é o de duas larguras
distintas de colunas.
Sempre que o padrão é repetido, inicia novamente com uma coluna primária.
24 Objetos
Orientação por coluna
Para definir um padrão que use três larguras distintas, deve-se usar as colunas primárias, secundárias e terciárias.
Para isto, configure as propriedades CellWidth, CellWidthSecondaryColumn e CellWidthTertiaryColumn com um
valor maior que 0 (zero). O padrão construído é o de três larguras distintas de colunas.
Sempre que o padrão é repetido, inicia novamente com uma coluna primária.
Ao definir uma quebra de linha, na propriedade LineBreak, ou uma quebra de coluna, na propriedade ColumnBreak,
restringe-se a repetição do padrão dentro do grupo definido pela quebra. A figura a seguir mostra uma grade
orientada por linha, configurada com duas linhas e três colunas, usando o padrão de colunas primária e secundária.
Objetos 25
Orientação por linha
A figura a seguir mostra esta mesma grade configurada para o dobro de células e uma quebra de linha na terceira
coluna.
O grupo criado após a quebra sempre inicia com uma coluna primária. Isto vale também para a orientação vertical
com quebra de coluna.
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.2 hpXDataObjectBridge
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.
NOTA
Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
3.4.3 ~hpXEventBridge
Objeto usado internamente na Tela Faceplate, tem a função de armazenar e disponibilizar valores de variáveis internas
à Tela. Não é configurável pelo usuário. As propriedades disponíveis neste objeto estão descritas na tabela a seguir.
26 Objetos
Propriedades do objeto ~hpXEventBridge
PROPRIEDADE DESCRIÇÃO
dimGroupAnalogs Define as dimensões de largura e altura da caixa de
diálogo para a aba Medidas Analógicas recolhida. Para
mais informações sobre o formato desta propriedade,
consulte a nota a seguir
Objetos 27
PROPRIEDADE DESCRIÇÃO
dimGroupCustom8 Define as dimensões de largura e altura da caixa de
diálogo para a aba Custom8. Para mais informações
sobre o formato desta propriedade, consulte a nota a
seguir
28 Objetos
PROPRIEDADE DESCRIÇÃO
dimGroupProtections2 Define as dimensões de largura e altura da caixa de
diálogo para a aba Proteções nível 1 expandida em
aplicações do Elipse Power. Para mais informações
sobre o formato desta propriedade, consulte a nota a
seguir
Objetos 29
PROPRIEDADE DESCRIÇÃO
numColumnsNormalWarnings Número de colunas a serem exibidas na aba Alertas em
aplicações Biblioteca FlexControl normal, ou recolhida,
quando a orientação da grade é vertical, ou seja, igual a
0 (zero)
NOTAS
· Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
· O valor das propriedades com prefixo dimGroup tem o formato WxH, onde W é a largura e H é a altura, como
por exemplo "800x600" para uma aba com largura de 800 pixels e altura de 600 pixels.
3.4.4 ~hpXFaceplateConfig
Objeto usado internamente na Tela Faceplate, deve ser configurado pelo usuário para garantir o funcionamento
conforme as preferências.
NOTA
Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
3.4.4.1 Propriedades
PROPRIEDADE DESCRIÇÃO
ApplicationType Tipo de aplicação. Os valores possíveis são 0: Custom ou
1: Flex Control
30 Objetos
PROPRIEDADE DESCRIÇÃO
ShowEmbeddedCloseButton Controla a visibilidade do botão Close. Os valores
possíveis são True: Mostra o botão ou False: Esconde o
botão
3.4.5 ~hpXFaceplateVars
O objeto ~hpXFaceplateVars foi descontinuado. Este objeto não recebe mais atualizações e vai ser removido da
Biblioteca HighPerformance Extensions em uma versão futura. Recomenda-se o uso do objeto ~hpXEventBridge
no lugar deste objeto.
3.4.6 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
· 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.6.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
Objetos 31
PROPRIEDADE DESCRIÇÃO
ContentRightEdge Coordenada da borda direita do conteúdo na grade.
Corresponde ao valor da coordenada horizontal da
última célula preenchida mais a largura
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
3.4.6.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
32 Objetos
3.4.6.1.5 Rastreamento do Preenchimento de Células
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.
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.
Objetos 33
3.4.6.2.1 Preenchimento por Coluna
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).
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).
As grades permitem acomodar diferentes tipos de objetos, por isto é possível configurar as colunas com até 3 (três)
larguras distintas, conforme os elementos exibidos em cada coluna. Para isto são definidos os tipos de colunas
Primárias, Secundárias e Terciárias.
34 Objetos
Cada tipo de coluna possui uma propriedade exclusiva que define a largura. A propriedade CellWidth define a
largura para a coluna primária, a propriedade CellWidthSecondaryColumn define a largura para a coluna secundária
e a propriedade CellWidthTertiaryColumn define a largura para a coluna terciária.
Desta forma, é possível escolher entre 3 (três) padrões diferentes de tamanhos de colunas, apenas colunas primárias,
uma combinação de colunas primárias com secundárias ou uma combinação de colunas primárias, secundárias e
terciárias.
As colunas usadas em cada padrão são aquelas cuja largura é configurada com um valor diferente de 0 (zero). Uma
vez definido o padrão, este se repete ao longo de toda a grade.
Para definir um padrão que use apenas uma largura para todas as células, deve-se usar apenas as colunas primárias.
Para isto, configure a propriedade CellWidth com um valor maior que 0 (zero) e as propriedades
CellWidthSecondaryColumn e CellWidthTertiaryColumn iguais a 0 (zero, desabilitado). O padrão construído é o de
um único valor de largura, que se repete em todas as células.
Para definir um padrão que use duas larguras distintas, deve-se usar as colunas primárias e secundárias. Para isto,
configure as propriedades CellWidth e CellWidthSecondaryColumn com um valor maior que 0 (zero) e a
propriedade CellWidthTertiaryColumn igual a 0 (zero, desabilitado). O padrão construído é o de duas larguras
distintas de colunas.
Sempre que o padrão é repetido, inicia novamente com uma coluna primária.
Objetos 35
Padrão em quatro colunas
Para definir um padrão que use três larguras distintas, deve-se usar as colunas primárias, secundárias e terciárias.
Para isto, configure as propriedades CellWidth, CellWidthSecondaryColumn e CellWidthTertiaryColumn com um
valor maior que 0 (zero). O padrão construído é o de três larguras distintas de colunas.
Sempre que o padrão é repetido, inicia novamente com uma coluna primária.
36 Objetos
Padrão com Quebras de Linha ou Coluna
Ao definir uma quebra de linha, na propriedade LineBreak, ou uma quebra de coluna, na propriedade ColumnBreak,
restringe-se a repetição do padrão dentro do grupo definido pela quebra. A figura a seguir mostra uma grade
orientada por linha, configurada com duas linhas e três colunas, usando o padrão de colunas primária e secundária.
A figura a seguir mostra esta mesma grade configurada para o dobro de células e uma quebra de linha na terceira
coluna.
O grupo criado após a quebra sempre inicia com uma coluna primária. Isto vale também para a orientação vertical
com quebra de coluna.
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
Objetos 37
3.4.7 ~hpXInterlocksConfig
Objeto usado internamente na Tela Interlocks, deve ser configurado pelo usuário para garantir o funcionamento
conforme as preferências. As propriedades disponíveis neste objeto estão descritas na tabela a seguir.
PROPRIEDADE DESCRIÇÃO
ShowEmbeddedCloseButton Controla a visibilidade do botão Close. Os valores
possíveis são True: Mostra o botão ou False: Esconde o
botão
NOTA
Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
3.4.8 ~hpXLinkBridge
Objeto usado internamente na Tela Faceplate, tem a função de operar as Associações que controlam a visibilidade das
abas. Não é configurável pelo usuário.
NOTA
Este objeto é de uso restrito e não deve ser usado diretamente em uma aplicação.
38 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.
· OutputMode: Configure com o valor 1 (um, armazena o código XML gerado na propriedade xmlData de cada
objeto xfPlantFolder)
Tela Faceplate 39
· XRefMode: Configure com o valor 1 (um)
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.
Nos modos 0 (zero) e 1 (um), a Tela Faceplate é retrátil para que ocupe a menor área de Tela quando aberta,
enquanto nos modos 2 (dois) e 3 (três), a Tela é exibida sempre expandida para que o conteúdo sempre esteja visível.
Nos modos 1 (um) e 3 (três), a Tela pode atingir a menor largura quando estiver retraída, no modo 1 (um), ou quando
houver poucos elementos exibidos, no modo 3 (três). Se o tamanho reduzido prejudicar a legibilidade de alguma
informação, os modos 0 (zero) e 2 (dois) permitem configurar manualmente o tamanho mínimo.
As dimensões das abas são definidas nas Associações existentes nas propriedades dimGroup[Aba] do objeto
~hpXEventBridge. Por exemplo, a propriedade dimGroupAnalogs define a dimensão da Tela quando a aba Analogs
está aberta e retraída, enquanto a propriedade dimGroupAnalogs2 executa este procedimento para a mesma aba
expandida.
40 Tela Faceplate
4.3.2 Ajustando o Conteúdo à Grade
Todo o controle de largura e altura das células onde são posicionados os objetos de cada aba é realizado nos
objetos hpXGridCalc contidos nos respectivos grupos de cada aba, dentro da Tela Faceplate.
Eventualmente pode haver variações nas configurações destas grades, como no caso em que o conteúdo pode ser
exibido horizontalmente, ByRow, ou verticalmente em colunas, ByColumn.
O script da Tela adapta o conteúdo exibido à configuração destes objetos de grade. Por exemplo, a grade da aba
Commands pode ser configurada para ter apenas duas colunas, propriedades Columns e LineBreak iguais a 2 (dois),
uma para o título e outra para um botão de comando.
Se a grade é configurada para exibir três colunas, propriedades Columns e LineBreak iguais a 3 (três), uma para o
título e duas para os comandos, o conteúdo se adapta automaticamente.
Tela Faceplate 41
Grade com três colunas
Somente as abas Comandos, Discretos e Status possuem este recurso, configurado nas propriedades
groupByColumnCommands e groupByColumnDiscretes do objeto ~hpXEventBridge, e na propriedade MultiState
do objeto xfDiscreteInfo para a aba Status.
No caso da aba Status, basta que um único objeto xfDiscreteInfo esteja com a propriedade MultiState configurada
para Verdadeiro para que a disposição dos elementos seja representada verticalmente.
Caso esta disposição seja usada com a Tela retrátil, modos 0 (zero) ou 1 (um), é preciso definir o número de colunas
que são exibidas na visualização com Tela retraída. Esta configuração é realizada nas propriedades
42 Tela Faceplate
numColumnsNormal[Aba] do objeto ~hpXEventBridge. Por exemplo, a propriedade
numColumnsNormalCommands configura o número de colunas para a aba Comandos.
Aba Protection
A aba Protection é um caso especial, que possui duas grades em grupos diferentes. A grade no grupo
GroupProtections funciona como nas demais abas. Já a grade no grupo GroupProtections3 foi criada
especificamente para as informações expandidas de cada Proteção.
Configuração Manual
Caso o usuário opte por configurar um tamanho mínimo manual com a Tela recolhida, propriedade DisplayMode
igual a 0 (zero), pode ocorrer o corte de elementos que não cabem na Tela.
Configuração manual
Isto pode ocorrer por tratar-se de uma configuração manual. Neste caso, recomenda-se:
O valor da propriedade DisplayMode também pode ser alterado para 1 (um) ou 3 (três), de forma que a Tela se
adapte para exibir todos os objetos.
Tela Faceplate 43
Botões da barra de título ocultos ou inativos
Neste caso, é preciso configurar a propriedade HorizontalOffset do objeto ~hpXFaceplateConfig para um valor
diferente de 0 (zero), como mostrado na figura a seguir, para exibir o botão Fechar no corpo da janela.
44 Tela Faceplate
Botão Fechar instanciado na janela
Para manter este botão invisível, configure a propriedade HorizontalOffset 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.
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.
Tela Faceplate 45
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.
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.
NOTA
Para mais informações sobre o uso de ícones personalizados, consulte o tópico Abas do Tipo Custom.
Além disto, todo símbolo exibido pela Tela Faceplate deve obedecer aos critérios a seguir.
· 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
46 Tela Faceplate
· 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 Elipse 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.
Objetos de Tela
3. Clique com o botão direito do mouse no Disjuntor e selecione a opção Inserir - Bibliotecas - hpMenus -
hpPopupOpen, de forma que este objeto abra a Tela Faceplate com um clique do mouse.
4. Crie uma Associação Simples na propriedade popArg do objeto hpPopupOpen com a expressão
"Parent.DataObject.PathName".
5. Crie uma Associação Simples na propriedade popName do objeto hpPopupOpen com a expressão
"Parent.ModalScreenName".
Objetos de Dados
1. Para criar um objeto que armazene código XML, selecione um objeto na estrutura de dados que represente um
equipamento.
2. Crie uma pasta do tipo DataServer na raiz deste objeto, chamada "xmlView".
3. Clique com o botão direito do mouse na pasta e selecione a opção Inserir - Panel - Tag Interno. Nomeie este
Tag como "xmlData".
Tela Faceplate 47
2. Configure a propriedade XMLTemplate do objeto com o valor 3: Faceplate.
48 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
Integradores Youtube