Prévia do material em texto
Ignition Core
Treinamento de 5 dias.
HMI · SCADA Software
Copyright (c) 2022 FG Automação Industrial
Todos os direitos reservados.
Versão traduzida para português (BR) do
Treinamento Ignition Core de 5 dias.
©2019 Inductive Automation Página 1 de 397
Treinamento básico do software Ignition de 5 dias
© 2019 Inductive Automation.
Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida de qualquer
forma ou por qualquer meio - gráfico, eletrônico, fotográfico ou mecânico; incluindo, mas não
limitado a, fotocópia, gravação, gravação ou armazenamento de informações e sistemas de
recuperação - sem a permissão por escrito da Inductive Automation.
Todos os nomes de produtos da Inductive Automation, incluindo, mas não se limitando à
Ignition by Inductive Automation®, Ignition Edge by Inductive Automation®, Ignition SCADA
by Inductive Automation®, Perspective®, como
bem como o nome da empresa, o símbolo da marca de verificação Inductive Automation® e
Ignition e o símbolo da roda dentada/seta da Inductive Automation são marcas registradas da
Inductive Automation, seja por meio de registro federal ou uso contínuo. Outras marcas e
nomes de produtos são marcas registradas de seus respectivos proprietários.
Todos os esforços foram feitos para tornar este livro o mais completo e preciso possível, mas
nenhuma garantia de adequação é declarada ou implícita. As informações fornecidas são
"como estão" sem qualquer garantia de qualquer tipo. A Inductive Automation não terá
responsabilidade perante qualquer pessoa ou entidade com relação a qualquer perda ou dano
de quaisquer atos ou omissões decorrentes ou com base nas informações contidas em seu
livro.
Impresso: dezembro de 2019 nos EUA
Versão: 8.0
©2019 Inductive Automation Página 2 de 397
Sumário
BEM-VINDO ...................................................................................................................... 7
Sobre este treinamento ................................................................................................................................................................... 7
CAPÍTULO 1 ...................................................................................................................... 8
Introdução ao Software ................................................................................................................................................... 8
O que é o Ignition? ............................................................................................................................................................................. 8
Ignition Software Stack ................................................................................................................................................................... 9
Ignition Como um Hub de Comunicações ............................................................................................................................ 10
As Várias Arquiteturas do Ignition.......................................................................................................................................... 10
Partes Principais do Ignition ..................................................................................................................................................... 10
CAPÍTULO 2 .................................................................................................................... 12
Instalação e Ativação...................................................................................................................................................... 12
Instale o Ignition no Windows .................................................................................................................................................. 13
Comissionamento ........................................................................................................................................................................... 17
Instalando um Banco de Dados ................................................................................................................................................ 20
Acessando o Gateway .................................................................................................................................................................... 20
Licenciamento e Ativação............................................................................................................................................................ 23
Como Funciona o Licenciamento ............................................................................................................................................. 23
Como Funciona a Ativação .......................................................................................................................................................... 26
CAPÍTULO 3 .................................................................................................................... 29
Conectando a PLCs e Bancos de Dados .................................................................................................................... 29
Conectando-se a Simuladores ................................................................................................................................................... 30
Conectando-se a Dispositivos Allen Bradley ...................................................................................................................... 34
Conectando-se a Um Banco de Dados .................................................................................................................................... 38
Guia de Conexão do Microsoft SQL Server ........................................................................................................................... 41
CAPÍTULO 4 .................................................................................................................... 42
Inicie o Designer e Crie um Projeto .......................................................................................................................... 42
Iniciando o Designer ...................................................................................................................................................................... 43
Criando um Projeto ........................................................................................................................................................................ 47
CAPÍTULO 5 .................................................................................................................... 49
Clientes Vision, Janelas e Navegação ........................................................................................................................ 49
Tipos de Lançamento .................................................................................................................................................................... 50
Baixando e Instalando .................................................................................................................................................................. 50
Janelas, Componentes e Templates ......................................................................................................................................... 55
Nomes e Organização das Janelas ............................................................................................................................................ 55
©2019 Inductive Automation Página 3 de 397
Tipos de Janelas ............................................................................................................................................................................... 56
Alterando as Propriedades da Janela .....................................................................................................................................a janela para Components e pressione Enter.
4. Clique com o botão direito do mouse em Components e desmarque Open on STarup.
Observação: é importante ter apenas uma janela principal definida como Open on
Startup. Caso contrário, você terá várias janelas principais ocultando umas das outras.
5. Clique duas vezes em Components para abri-lo.
6. Na Janela Principal, selecione o componente Header Label.
• Altere a propriedade Text do rótulo para Components
• Clique no ícone de pasta no Property Editor do Image Path para selecionar um
ícone diferente.
©2019 Inductive Automation Página 64 de 397
Clientes Vision, Janelas e Navegação
Agora que criamos uma Janela de Componentes, podemos adicioná-la às nossas guias.
7. No Project Browser, clique duas vezes na janela Navigation para abri-la.
8. Clique com o botão direito do mouse no componente Tab Strip e selecione
Customizer > Tab Strip Customizer. A janela do Tab Strip Customizer é exibida.
9. Selecione a guia Overview e clique no botão Add Tab à esquerda. Uma nova guia
chamada Tab 1 é adicionada.
10. Clique na lista suspensa para Window Name e selecione Main Windows/
Components.
11. Altere o Display Name para Components.
©2019 Inductive Automation Página 65 de 397
Clientes Vision, Janelas e Navegação
12. Clique em OK para enviar suas alterações.
13. Salve o projeto.
Volte para o seu Cliente aberto para visualizar suas alterações. Por padrão, todas as
atualizações do projeto serão enviadas automaticamente para todos os Clientes para que
você veja seu novo botão Faixa de Guias imediatamente.
©2019 Inductive Automation Página 66 de 397
Capítulo 6
Propriedades e Veiculações do Componente Vision
Componentes são o conteúdo útil de suas janelas. Qualquer interface de usuário
de computador contém componentes, eles são os widgets com os quais você
trabalha todos os dias, são os botões, áreas de texto, menus suspensos, gráficos
e assim por diante.
O módulo Vision vem com uma série de componentes úteis prontos para uso,
muitos dos quais são especializados para uso em controles industriais. Outros
módulos, como o módulo Relatórios, possuem mais componentes para fins
especiais.
©2019 Inductive Automation Página 67 de 397
Propriedades e Vinculações do Componente Vision
Configurando Componentes
A configuração de componentes é provavelmente a maior parte do trabalho de um
designer ao projetar um projeto do Vision. O fluxo de trabalho básico é pegar um
componente da paleta e soltá-la em um contêiner em uma janela. A partir daí, você pode
usar o mouse para arrastar e redimensionar o componente para a posição correta.
Enquanto o componente está selecionado, você pode usar o painel Property Editor para
alterar as propriedades do componente, o que altera a aparência e o comportamento do
componente.
Para fazer o componente fazer algo útil, como exibir informações dinâmicas ou controlar
um registro de dispositivo, você configura associações de propriedade para o componente.
Para fazer o componente reagir à interação do usuário, configure o script para ele.
Você pode configurar os seguintes itens para cada componente:
● Propriedades
● Propriedades Personalizadas (Propriedades Dinâmicas)
● Tamanho e Posição
● Modo de layout
● Personalizadores de estilo
● Script
● Segurança
©2019 Inductive Automation Página 68 de 397
Propriedades e Vinculações do Componente Vision
Arraste Componentes Para a Janela
O fluxo de trabalho básico é pegar um componente da paleta de componentes ou do
Symbol Factory e soltá-lo em um contêiner em uma janela. A partir daí, você pode usar o
mouse para arrastar e redimensionar o componente para a posição correta.
As formas também são componentes. Use a barra de ferramentas de formas para criar
formas diferentes.
Cada forma pode ser selecionada individualmente, nomeada e atribuída às suas próprias
propriedades. As formas têm alguns recursos adicionais que outros componentes não têm,
como a capacidade de rotação. As Formas são criadas usando as ferramentas de forma
não arrastadas da paleta de componentes.
Vamos arrastar alguns componentes para sua janela.
Arraste Componentes Para a Tela
À direita do designer, você encontrará uma lista de componentes
1. Abra sua nova janela principal. Você pode encontrá-lo no Project Browser ou, como já
está aberto no exemplo anterior, há uma guia na parte inferior do Designer.
2. Selecione o texto de boas-vindas grande e o botão Abrir Pop-up e exclua-os clicando
com o botão direito do mouse e selecionando Delete ou pressionando a tecla delete.
3. Clique e arraste alguns componentes para a janela, por exemplo:
● Cylindrical Tank
● Label
● LED Display
● Meter
4. Salve o projeto.
©2019 Inductive Automation Página 69 de 397
Propriedades e Vinculações do Componente Vision
Enquanto o componente está selecionado, você pode usar o painel Property Editor para
alterar as propriedades do componente, o que altera a aparência e o comportamento do
componente.
Para fazer o componente fazer algo útil, por exemplo, exibir informações dinâmicas ou
controlar um registro de dispositivo, você configura associações de propriedade para o
componente. Para fazer o componente reagir à interação do usuário, configure
manipuladores de eventos para ele.
Entendendo o Layout do Componente
Layout é o conceito de que o tamanho e a posição de um componente, que é relativo ao
tamanho e à posição de seu contêiner familiar, podem ser dinâmicos. O recurso de layout
permite a criação de janelas que se redimensionam graciosamente. Este é um conceito
muito importante devido à implantação de clientes Vision lançados pela Web, eles
geralmente acabam sendo lançados em muitos monitores diferentes com muitas
resoluções diferentes.
©2019 Inductive Automation Página 70 de 397
Propriedades e Vinculações do Componente Vision
Você pode escolher entre dois modos de layout: relativo e ancorado.
©2019 Inductive Automation Página 71 de 397
Propriedades e Vinculações do Componente Vision
Modo Relativo
O layout relativo é o modo padrão, que é um modo simples, mas eficaz. Ele simplesmente
mantém o tamanho e a posição de um componente em relação ao seu contêiner familiar
constante, mesmo que o contêiner familiar aumente ou diminua.
Mais precisamente, ele lembra a posição e o tamanho do componente como uma
porcentagem dos limites de seu familiar na última vez que a janela foi salva. O modo
Relativo também tem a opção de dimensionar adequadamente a fonte de um componente.
Modo Ancorado
O layout ancorado permite especificar várias "âncoras" para o componente. As âncoras
ditam a distância de cada uma das quatro arestas do componente de suas arestas
correspondentes no contêiner familiar.
©2019 Inductive Automation Página 72 de 397
Propriedades e Vinculações do Componente Vision
Por exemplo, se você ancorar em cima e à esquerda, seu componente permanecerá a uma
distância constante das bordas superior e esquerda de seu familiar. Como você não
especificou uma âncora para os lados direito ou inferior, eles não serão afetados pelo
layout.
Exemplos
O recurso de layout de componentes do Ignition permite que os componentes sejam
redimensionados automaticamente. Esse recurso oferece a vantagem de não precisar
desenvolver uma aplicação em uma resolução específica. Para ilustrar como o layout de
componentes funciona, vejamos alguns pequenos exemplos com os componentes que
acabamos de adicionar. Você pode alterar o layout de vários componentes ao mesmo
tempo.
1. Selecione todos os componentes que você acabou de adicionar à janela principalclicando neles enquanto mantém o controle pressionado.
2. Clique com o botão direito em um dos componentes selecionados e selecione a opção
Layout. Use os exemplos a seguir para testar o layout no Cliente.
Exemplo 1 - Modo Relativo - Manter proporção
Por padrão, as restrições de layout de um componente são definidas para Relative-
Maintain Aspect Ratio, o que significa que os componentes serão redimensionados com
base na proporção do tamanho do componente para o tamanho da janela, mantendo a
proporção.
Para ver a configuração padrão, clique com o botão direito do mouse nos componentes e
escolha Layout... no menu. Este é o layout padrão para novos componentes, então você
não precisa alterar nada. Abra o cliente e redimensione-o. À medida que a janela fica
maior, os componentes serão redimensionados, mas nunca parecerão distorcidos.
©2019 Inductive Automation Página 73 de 397
Propriedades e Vinculações do Componente Vision
Componentes Definidos para Manutenção-Relativa da Proporção
Componentes Definidos para Manutenção-Relativa da Proporção,
Redimensionado Maior
©2019 Inductive Automation Página 74 de 397
Propriedades e Vinculações do Componente Vision
Exemplo 2 - Modo Relativo - Sem Proporção
A opção Relative- Do not Maintain Aspect Ratio significa que os componentes serão
redimensionados com base no tamanho do contêiner e ignoram quaisquer alterações na
proporção. Isso significa que os componentes serão distorcidos se as proporções do
designer e do cliente forem diferentes.
1. Selecione todos os novos componentes na janela.
2. Clique com o botão direito do mouse em um dos componentes selecionados e selecione
Layout.
3. Selecione Relative, mas agora desmarque Maintain Aspect Ratio.
4. Salve o projeto e teste-o em um cliente aberto. Observe como os componentes
parecem distorcidos com todos os componentes definidos com No Aspect Ratio.
Todos os componentes definidos com proporção de manutenção relativa
©2019 Inductive Automation Página 75 de 397
Propriedades e Vinculações do Componente Vision
Todos os componentes definidos sem proporção
Exemplo 3 - Modo Ancorado
A opção Anchored Mode significa que os componentes serão bloqueados a uma certa
distância de um conjunto de arestas. Isso significa que os componentes não serão
redimensionados a menos que estejam travados em arestas opostas e seguirão as arestas
conforme as dimensões do Cliente mudam.
1. Selecione todos os novos componentes na janela.
2. Clique com o botão direito do mouse em um dos componentes selecionados e selecione
Anchored Mode.
3. Selecione as opções de layout Top e Left e certifique-se de que as outras opções
estejam desmarcadas. Pressione OK.
3. Salve o projeto e abra um cliente.
Os componentes serão todos bloqueados no canto superior esquerdo do Cliente. À medida
que o Cliente aumenta, você notará um espaço vazio à direita e abaixo dos componentes.
©2019 Inductive Automation Página 76 de 397
Propriedades e Vinculações do Componente Vision
5. Isso é mais perceptível se você tornar a janela do Designer pequena e o Cliente grande.
©2019 Inductive Automation Página 77 de 397
Propriedades e Vinculações do Componente Vision
Essa é a ideia básica. Você pode testar todos os modos de layout para ter uma ideia melhor
deles.
Ferramentas de Desenho
Formas como linhas, retângulos e círculos são criadas usando as ferramentas de forma
não arrastadas da paleta de componentes. Mas as formas também são componentes, pois
cada forma pode ser selecionada individualmente, nomeada e atribuída às suas
propriedades. As formas têm alguns recursos adicionais que outros componentes não têm,
como a capacidade de girar.
Por padrão, a barra de ferramentas de forma é exibida na borda direita da janela do
Designer, mas você pode arrastá-la para onde preferir.
©2019 Inductive Automation Página 78 de 397
Propriedades e Vinculações do Componente Vision
Há uma série de ferramentas aqui para seu uso, e cada uma faz com que a área de trabalho
de edição da janela aja de maneira diferente quando ativa.
As ferramentas de forma permitem criar várias formas e editá-las depois de criadas. Clique
no ícone da ferramenta para torná-la a ferramenta ativa, depois clique no Designer e
arraste para colocar a ferramenta em sua área de trabalho. Você também pode clicar duas
vezes em uma forma para mudar para a ferramenta nativa dessa forma. Quando uma
ferramenta está ativa, uma barra de ferramentas é exibida com ações e configurações
específicas para essa ferramenta.
Depois que uma forma é criada, você pode alterar sua cor de preenchimento, cor de traço
e estilo de traço. Todas as formas podem ser tratadas como caminhos e usadas com
funções de geometria composta para alterar ou criar outras formas.
Ferramenta de Seleção
Normalmente a ferramenta de seleção está ativa. Quando ativado, você pode selecionar
formas e componentes. Os componentes selecionados podem ser movidos,
redimensionados e girados. Para obter mais informações sobre a ferramenta de seleção
para manipular componentes e formas, consulte o Manual do Usuário do Ignition.
Ferramenta Retângulo
A “ferramenta retângulo” cria e edita formas retangulares. Para criar um retângulo,
selecione a ferramenta e arraste para dentro de uma janela, mantendo pressionada a tecla
Ctrl, formando um quadrado perfeito. Depois que um retângulo é criado, você pode usar
as alças quadradas para alterar a altura e a largura do retângulo. Isso é importante porque
é a única maneira de redimensionar um retângulo girado enquanto ele permanece um
retângulo.
©2019 Inductive Automation Página 79 de 397
Propriedades e Vinculações do Componente Vision
Se você redimensionar um retângulo girado não ortogonalmente usando a ferramenta de
seleção, ele se inclina e se torna um paralelogramo, mas se você clicar duas vezes nele
para que a “ferramenta retângulo” fique ativa, você pode alterar a largura e a altura do
retângulo usando as alças específicas da ferramenta.
Há também pequenas alças de círculo que permitem alterar o raio de arredondamento do
canto do retângulo. Basta arrastar o círculo para baixo ao lado do retângulo selecionado
para torná-lo um retângulo arredondado. Mantenha pressionada a tecla Ctrl para arrastar
cada alça de arredondamento independentemente se desejar arredondamento de canto
não simétrico. Você pode usar o botão Endireitar na barra de ferramentas da ferramenta
retângulo para retornar um retângulo arredondado para ser um retângulo de canto reto
padrão.
Ferramenta Elipse
A ferramenta elipse cria e edita círculos e elipses. Você a usa da mesma maneira que a
ferramenta retângulo. Enquanto for a ferramenta ativa, você pode arrastar dentro de uma
janela para criar uma nova elipse. Mantenha pressionada a tecla Ctrl para torná-lo um
círculo perfeito. Quando uma elipse é selecionada, use as alças de largura e altura para
alterar a forma.
Ferramenta Polígono/Estrela
A ferramenta polígono cria polígonos e estrelas. Use a barra de ferramentas que fica visível
quando esta ferramenta está ativa para alterar as configurações da forma que é criada ao
arrastar para criar um polígono. Você pode usar esta ferramenta para fazer qualquer
polígono com 3 cantos (um triângulo) ou mais. Uma vez criado, você pode usar a alça
quadrada central para mover o polígono e as alças de diamante para alterar o tamanho e
o ângulo do polígono. Mantenha pressionada a tecla Ctrl para manter a rotação do
polígono em um múltiplo de 15°.
Ferramenta Seta
A ferramenta de seta cria formas de seta de um ou dois lados. Quando estiver ativo, basta
arrastar para criar uma nova seta. Use a caixa de seleção na barra de ferramentas para
escolher uma seta simples ou dupla. Paraalterar a seta, use as alças de diamante para
alterar as duas extremidades da seta e as alças circulares para alterar o tamanho do eixo
e da cabeça. Ao alterar a direção da seta, você pode manter pressionada a tecla Ctrl para
ajustar a seta em incrementos de 15°.
©2019 Inductive Automation Página 80 de 397
Propriedades e Vinculações do Componente Vision
Ferramenta Lápis
A ferramenta permite desenhar linhas e formas à mão livre. Quando selecionado, você
pode desenhar diretamente em uma janela mantendo pressionado o botão do mouse.
Solte o botão do mouse para finalizar o caminho. Se você parar de desenhar dentro do
pequeno quadrado colocado na origem da forma, você cria um caminho fechado, caso
contrário, você cria um caminho aberto (linha).
Na barra de ferramentas da ferramenta lápis, há uma configuração Simplifiy e Smooth,
bem como alternar entre criar segmentos de linha reta ou segmentos de linha curva.
A opção Simplify permite especificar um tamanho em pixels que diminui o número de
pontos usados ao criar a linha. Em geral, os pontos na linha estão tão distantes quanto
esta configuração Simplificar. Se você achar que a linha não é precisa o suficiente, diminua
essa configuração. Se você optar por criar segmentos curvos, os segmentos entre os
pontos serão curvas de Bézier em vez de linhas retas. A opção Smooth controla o quão
curvilíneo esses segmentos podem obter.
Ferramenta de Linha
A ferramenta de linha desenha linhas, polígonos arbitrários ou caminhos curvos. Ao
contrário de todas as outras ferramentas, você não arrasta para criar novos caminhos com
a ferramenta de linha. Em vez disso, você clica em cada vértice que deseja adicionar ao
seu caminho. Para desenhar uma linha reta, basta clicar uma vez onde deseja que a linha
comece e clique duas vezes onde deseja que a linha termine. Para fazer um caminho de
vários vértices, clique em cada vértice e para finalizar a linha, clique duas vezes, pressione
entre ou faça um vértice dentro da caixa de origem.
Conforme você desenha a linha, as sessões "bloqueadas" são desenhadas em verde e o
próximo segmento é desenhado em vermelho. Mantenha pressionada a tecla Ctrl a
qualquer momento para ajustar o próximo segmento em incrementos de 15°.
Na barra de ferramentas da ferramenta de linha, você pode escolher entre três modos:
normal line, perpendicular e curve. O modo perpendicular é como o modo de linha,
exceto que cada segmento é restrito a ser horizontal ou vertical. O modo Curve cria um
caminho de curva Bézier tentando desenhar uma curva suave entre os dois vértices
anteriores e o novo vértice.
Ferramenta de Caminho
A ferramenta de caminho edita todas as formas e caminhos. Essa ferramenta permite
modificar diretamente os nós no caminho, adicionar novos nós, remover nós e alternar
segmentos entre retos ou curvos.
©2019 Inductive Automation Página 81 de 397
Propriedades e Vinculações do Componente Vision
Ferramenta Gradiente
A ferramenta de gradiente afeta a orientação e a extensão de qualquer pintura de
gradiente.
Ferramenta Conta-gotas
A ferramenta conta-gotas define a(s) forma(s) e/ou componente(s) selecionada(s) de
primeiro plano/fundo ou cores de traço/preenchimento, puxando as cores de outro lugar
na janela. Quando esta ferramenta estiver ativa, clique com o botão esquerdo para definir
o preenchimento ou fundo da seleção e clique com o botão direito para definir o traço da
seleção ou primeiro plano. Observe que essa ferramenta funciona na maioria dos
componentes e também nas formas. Por exemplo, clicar com o botão direito do mouse
define a cor da fonte em um botão, ou clicar com o botão esquerdo define a cor de fundo.
Arraste algumas formas para a janela.
Definindo o preenchimento e o Traçado de Uma Forma
Todas as formas têm três propriedades que afetam sua aparência, são as seguintes:
• Fill Paint é do tipo Paint e representa a cor interna da forma.
• Stroke Paint é do tipo Paint e representa a cor do contorno da forma.
• Stroke Style é do tipo Stroke e afeta as propriedades de espessura, cantos e traço do
contorno da forma.
Editando Tintas
As tintas de preenchimento e traçado podem ser definidas para uma variedade de tipos
diferentes de tintas. Você pode editar o preenchimento ou a pintura do traçado de uma
forma de duas maneiras:
1. Selecione um dos componentes da ferramenta de desenho.
2. Na propriedade Fill Paint, clique no ícone Edit à direita do Property Editor para abrir
a roda de cores.
©2019 Inductive Automation Página 82 de 397
Propriedades e Vinculações do Componente Vision
Tipos de Pintura de Preenchimento e Traçado
Na parte superior do painel Preenchimento e traçado, uma área de seleção permite
escolher entre os cinco tipos de tinta diferentes.
Esses cinco tipos de tinta são os seguintes:
• No Paint - Quando usado como tinta de preenchimento, torna o interior da forma
transparente. Usado como a pintura do traço, não desenha o contorno das formas.
©2019 Inductive Automation Página 83 de 397
Propriedades e Vinculações do Componente Vision
• Solid Color - Equivalente ao tipo Color usado em outras partes da biblioteca de
componentes. Uma cor sólida é qualquer cor, incluindo um nível alfa (transparência).
• Linear Gradient - Misture suavemente qualquer número de cores ao longo de uma linha
reta ao longo da forma. Cada cor é chamada de Stop. Cada parada é representada como
um controle que pode ser arrastado em uma visualização horizontal do gradiente no editor
de gradiente. Você pode clicar em uma parada para selecioná-la e alterar sua cor ou
arrastá-la para posicioná-la. Você pode clicar com o botão direito nele para removê-lo.
Você pode clicar com o botão direito do mouse na faixa de visualização para adicionar
novas paradas e alterar o modo de ciclo do gradiente.
• Radial Gradient - Muito semelhante ao gradiente linear, exceto que as cores emanam
de um ponto criando uma elipse de cada matiz. As tintas radiais são configuradas da
mesma forma que as tintas lineares.
• Pattern Paint - Usa um padrão de pixel repetido com duas cores diferentes. Você pode
escolher um padrão na lista suspensa ou criar o seu próprio usando o editor de padrões
integrado.
Limites de pintura gradiente
As duas pinturas de gradiente, linear e radial, são mais do que uma lista de paradas
coloridas, elas também precisam ser colocadas em relação à forma. O mesmo gradiente
pode parecer muito diferente dependendo de como é colocado contra a forma. Por padrão,
um gradiente linear é executado horizontalmente na largura de toda a forma, mas isso é
facilmente alterado. Ao alternar para a Gradient Tool, você pode arrastar as alças que
controlam como o gradiente é aplicado.
©2019 Inductive Automation Página 84 de 397
Propriedades e Vinculações do Componente Vision
Ciclos de gradiente
As duas pinturas de gradiente, linear e radial, ambas têm um modo de três ciclos que você
pode escolher clicando com o botão direito do mouse na faixa de visualização.
Os três modos de ciclo mostrados acima são os seguintes:
1. No Cycle - A primeira e a última paradas continuam para sempre após a borda dos
limites da pintura.
2. Reflect - Além dos limites da tinta, ela é refletida e desenhada ao contrário e depois
refletida novamente, criando uma repetição suave.
3. Repeat - Além dos limites da tinta, repete-se para sempre.
Estilo de traço
A pintura de traço de uma forma é apenas metade da história. O estilo de traçado também
é um componente importante de como um contorno é desenhado. Principalmente o estilo
controla a espessura da linha desenhada, mas você também pode usá-lo para criar uma
linha tracejada.
A configuração de espessura é especificada em pixels. Criar uma linha tracejada é tão fácil
quanto escolher o estilo na lista.O efeito das configurações de espessura e padrão de traço é bastante autoexplicativo, mas
as outras configurações de traço são um pouco mais sutis. Você pode notar seu efeito
mais facilmente em linhas grossas.
©2019 Inductive Automation Página 85 de 397
Propriedades e Vinculações do Componente Vision
Propriedades do Componente
Cada componente tem um conjunto único de propriedades. Uma propriedade é
simplesmente uma variável nomeada que afeta algo sobre o comportamento ou a
aparência do componente.
Cada propriedade tem um tipo de dados distinto. Passe o mouse sobre o nome da
propriedade no painel Property Editor para ver sua descrição, tipo de dados e nome de
script.
As diferentes maneiras que um nome de propriedade pode aparecer são as seguintes:
● Um nome azul que indica que a propriedade é uma propriedade personalizada
(dinâmica).
● Um nome em negrito com um ícone de vinculação que indica que a
propriedade está vinculada usando uma vinculação de propriedade.
● Um nome em negrito com um ícone de paleta de cores que indica que a
propriedade está usando as configurações de estilos do componente.
● Um nome em negrito vermelho com um ícone de aviso que indica que a
propriedade tem uma vinculação e um estilo. A propriedade pode ter uma
vinculação ou um estilo, mas não ambos.
©2019 Inductive Automation Página 86 de 397
Propriedades e Vinculações do Componente Vision
Propriedades do Componente Personalizado
A maioria dos componentes do Vision oferece suporte a propriedades personalizadas. Isso
significa que, além das propriedades normais do componente, você pode adicionar suas
próprias propriedades. Você pode pensar nessas propriedades como suas próprias
variáveis na janela.
As propriedades personalizadas são extremamente úteis e essenciais para a criação de
projetos sustentáveis usando o Ignition Vision. Eles permitem que você transforme um
componente "simples" em um personalizado para seu uso específico.
Você notará que as propriedades personalizadas adicionadas são exibidas no Property
Editor em azul. Você pode usar essas propriedades como quaisquer outras, com vinculação
de dados, scripts, estilos e assim por diante.
Noções Básicas Sobre Vinculação de Propriedade
O Property Binding é talvez o conceito mais importante a ser entendido ao projetar um
projeto usando o módulo Vision. É principalmente por meio da vinculação de propriedades
que você dá vida às janelas e as faz fazer coisas úteis.
Quando você inicialmente coloca um componente em uma tela, ele não faz nada. Alterar
suas propriedades no Designer faz com que pareça ou haja diferente, mas não tem
conexão com o mundo real. Isso é o que a vinculação de propriedade adiciona.
A vinculação de propriedade, como o próprio nome sugere, permite vincular uma
propriedade a outra coisa. Que outra coisa poderia ser:
• Propriedade de algum outro componente
• Uma etiqueta OPC
• Os resultados de uma consulta SQL
• Uma expressão envolvendo qualquer uma dessas coisas
• Os resultados de um script Python
Agora que sabemos um pouco sobre os componentes e propriedades, vamos arrastar
alguns componentes na janela e testar algumas vinculações.
©2019 Inductive Automation Página 87 de 397
Propriedades e Vinculações do Componente Vision
Vinculações de Propriedade
As associações de propriedade são úteis para forçar dois componentes a corresponderem
exatamente aos seus valores. Vamos pegar um componente Tanque e um componente
Deslizante e usar um para alterar o outro.
1. Se você ainda não tiver um em sua janela principal, arraste um componente Cylindrical
Tank para a janela.
Alterar a propriedade Value no tanque altera o nível do líquido no tanque.
Alterar a propriedade Capacity no tanque também altera o nível. Arraste um componente
Slider para a janela.
1. Coloque o Designer no Preview Mode selecionando-o em Menubar under Project ->
Preview Mode. Agora você pode arrastar a alça do controle deslizante e pode ver que a
propriedade valor do componente do controle deslizante muda.
4. Você pode alterar outras propriedades no Slider para afetar a aparência. Defina a
propriedade Horizontal Slider como False e altere a forma do controle deslizante para
ser alto e fino. Mova-o ao lado do tanque.
5. Agora podemos ligar o tanque e o controle deslizante juntos. Como as vinculações
escutam as alterações de valor, selecione o componente Cylindrical Tank para adicionar
a vinculação lá.
6. Encontre a propriedade Value do tanque e clique no ícone de vinculação à direita.
7. Selecione o tipo de associação de Propriedade.
8. Expanda a árvore de propriedades e selecione a propriedade Slider -> Value.
©2019 Inductive Automation Página 88 de 397
Propriedades e Vinculações do Componente Vision
9. Clique em OK. Agora você pode ver que o valor do tanque corresponde ao controle
deslizante.
10. Coloque o Designer de volta no Preview Mode e mova o controle deslizante para
ver a mudança de valor.
©2019 Inductive Automation Página 89 de 397
Propriedades e Vinculações do Componente Vision
11. O componente Deslizante tem mais uma propriedade que vale a pena mudar. Retire o
Designer do modo de visualização, selecione o controle Slider e defina a propriedade
Defer Updates como False. Isso fará com que o controle deslizante dispare
constantemente atualizações em vez de esperar até que você solte a alça do controle
deslizante. Você pode testar este é o modo de visualização.
Veiculações de Expressão
Também podemos definir uma vinculação mais complexa. A vinculação de expressão
permitirá que você use mais de uma propriedade em nossa linguagem de expressão para
criar uma lógica complexa para retornar um único valor. Vamos adicionar um rótulo ao
nosso exemplo que exiba o valor atual de uma maneira melhor.
1. Arraste um componente Label para a janela abaixo do tanque.
A propriedade Texto do componente é o que nos permite escrever na janela. Você pode
alterar a propriedade Texto para testá-la.
2. Clique no ícone de vinculação à direita da propriedade Texto.
3. Queremos mostrar o valor do Tanque, mas também queremos mostrar às unidades
"galões". Selecione o tipo de vinculação Expression.
4. Podemos começar com um link para o Tanque. Clique no ícone Insert Property no
canto superior direito.
5. Selecione a propriedade Cylindrical Tank -> Value e clique em OK. Você o verá
preencher o campo de expressão com:
{Root Container.Cylindrical Tank.value}
©2019 Inductive Automation Página 90 de 397
Propriedades e Vinculações do Componente Vision
6. Podemos usar esse valor e adicionar uma string a ele. Você pode concatenar strings na
linguagem de expressão com o operador +. Adicione +"gal" à expressão. Observe o
espaço antes do "g" em gal.
{Root Container.Cylindrical Tank.value}+ "gal"
7. Clique em OK. Agora você verá o valor na alteração da etiqueta.
Você pode usar o modo de visualização para mover o controle deslizante e ver o valor na
etiqueta atualizar.
©2019 Inductive Automation Página 91 de 397
Propriedades e Vinculações do Componente Vision
©2019 Inductive Automation Página 92 de 397
Capítulo 7
Tags
No Ignition, uma Tag é mais do que simplesmente o que é considerado uma "tag"
em outros sistemas. Cada Tag do Ignition inicia de forma semelhante como um
ponto de dados e pode ter um valor estático ou dinâmico que vem de um endereço
OPC, uma expressão ou uma consulta SQL.
Além disso, as Tags do Ignition nos permitem adicionar configurações para
alarme, dimensionamento, armazenamento histórico e muito mais.
As Ignition Tags são armazenadas em Providers, e você pode ter quantos
provedores quiser. Por padrão, uma novainstalação do Ignition terá um único
provedor interno de tags - isso pode ser considerado como um banco de dados
interno de tags padrão.
©2019 Inductive Automation Página 93 de 397
Tags
Principais Benefícios das Tags
As tags funcionam de forma natural e fácil com o Ignition para oferecer os seguintes
recursos interessantes:
Design de Tela de Arrastar e Soltar
Usando os módulos Vision e Perspective, você pode arrastar e soltar Tags em uma janela
para criar automaticamente novos componentes vinculados. Arraste Tags para
componentes ou propriedades existentes para vinculá-los rapidamente aos dados.
Design Orientado a Objetos
Use Tag UDTs (User Defined Types) para projetar tipos de dados reutilizáveis,
parametrizados e extensíveis. Você pode criar e configurar novas instâncias desses tipos
em segundos, economizando muito tempo em relação aos sistemas de tags tradicionais.
Desempenho e Escalabilidade
As Tags oferecem um ótimo desempenho tanto no Gateway quanto no Cliente. No
Gateway, o sistema pode suportar milhares de alterações de valor por segundo e centenas
de milhares de Tags. No Cliente, as Tags melhoram a eficiência com sua arquitetura de
assinatura leve. Adicionar Clientes adicionais cria um efeito quase insignificante no banco
de dados e no desempenho do Gateway.
Feedback de Componentes integrados
As tags oferecem um sistema de qualidade e sobreposição para os componentes do módulo
Vision e Perspective. Se a qualidade dos dados de uma Tag não for boa, um componente
que depende dele recebe uma sobreposição visual. Os componentes de entrada exibem
uma sobreposição animada enquanto as solicitações pendentes de gravação estão sendo
gravadas. Esses recursos comunicam efetivamente o status do sistema rapidamente.
Valores das Tags
Fundamentalmente, o objetivo principal de uma Tag é representar um valor no sistema
Ignition. Os valores podem vir do OPC, expressões, consultas e assim por diante, e podem
ser usados em janelas do Vision, visualizações do Perspective, Transaction Groups e muito
mais.
©2019 Inductive Automation Página 94 de 397
Tags
Além disso, as Tags oferecem o seguinte conjunto principal de recursos que está acima e
além de valores simples:
• Alarme
• Dimensionamento
• Metadados
• Histórico
Dependendo do tipo específico de Tag, ainda mais opções podem estar disponíveis. Em
geral, as tags fornecem uma interface comum para vincular vários tipos de dados no
Ignition.
Criando Tags
Agora que você está no Designer e criou algumas janelas de navegação, um bom
primeiro passo é criar algumas Tags. Você usará essas Tags para status e controle em
tempo real e para armazenar o histórico com o Histórico de Tags. As tags são todas
configuradas no painel Tag Browser.
Criando tags arrastando-as do OPC
A maneira mais fácil de criar Tags é arrastando as Tags do Navegador OPC.
1. No Tag Browser, primeiro selecione a pasta Tags e clique no ícone Navegador de
Servidores OPC.
©2019 Inductive Automation Página 95 de 397
Tags
O navegador OPC é exibido e você pode navegar por todas as suas conexões OPC.
Por padrão, você tem uma conexão com o Ignition OPC UA Server interno, que contém
os dispositivos que você criou anteriormente. Navegue pelos dispositivos e encontre
algumas Tags de seu interesse.
2. No navegador OPC, destaque ambas as pastas dentro da pasta GenSim e arraste-a
para a pasta Tags no Tag Browser.
Você pode arrastar Tags ou pastas individuais. Ao arrastar pastas, o Ignition mantém a
mesma hierarquia do PLC.
3. Expanda a pasta GenSim > Ramp para ver os valores ativos.
É isso! Agora você tem algumas tags. Você pode ver seus valores entrarem e começar a
atualizar automaticamente. Por padrão, eles são atualizados a uma taxa de 1 segundo.
©2019 Inductive Automation Página 96 de 397
Tags
Propriedades das Tags
Cada Tag tem um conjunto de propriedades que afetam a aparência e o comportamento
do seu projeto. Você pode acessar as propriedades da Tag clicando duas vezes em uma
Tag ou clicando com o botão direito do mouse em uma Tag e selecionando Edit Tag.
©2019 Inductive Automation Página 97 de 397
Tags
Existem muitas propriedades para cada Tag e vamos passar por todas elas esta semana.
Por enquanto, queremos apenas falar sobre as primeiras seções:
• Propriedades Básicas - Estas propriedades são as principais informações de uma Tag:
nome, Grupo de Tags (execução) e status habilitado.
• Valor - Esta seção é de onde a Tag obtém seus dados. Para uma Tag OPC como os
simuladores, isso significa os dados do caminho OPC.
• Propriedades Numéricas - Esta seção controla como o valor bruto é representado na
Tag do Ignition. Inclui uma banda morta, escala e limites de engenharia.
• Propriedades de Metadados - Esta seção oferece um local para documentar a Tag da
maneira que desejar.
A Segurança, Permissões, Histórico e Alarmes serão abordados nas seções posteriores da
aula.
©2019 Inductive Automation Página 98 de 397
Tags
Você também pode adicionar propriedades às Tags clicando no ícone Adicionar na parte
superior. Essas propriedades aceitam quaisquer valores estáticos e podem ser usadas para
identificar ou agrupar suas Tags ou para armazenar dados adicionais. Eles são comumente
usados para serem vinculados a outras propriedades, como configurações de alarme.
Arrastando Tags para Janelas e Componentes
Você pode arrastar Tags para um componente de três maneiras diferentes:
• Arraste uma Tag para uma janela e então crie um componente.
• Arraste um componente da Paleta de componentes para a janela e depois arraste uma
Tag para o componente.
• Arraste um componente da Paleta de componentes para a janela e depois arraste uma
Tag para apenas uma propriedade do componente.
Arrastando uma Tag para uma Janela para Criar um
Componente
1. Abra a Main Window.
2. Arraste a Tag Ramp 1 da pasta Rampa para a janela (que é o Recipiente Raiz).
Um menu pop-up é exibido.
3. No menu pop-up, selecione Display > Tank.
©2019 Inductive Automation Página 99 de 397
Tags
4. Observe no Property Editor que as propriedades Mouseover Text, Value e Units do
componente Tank estão em negrito, isso significa que essas propriedades estão
vinculadas a Tags.
©2019 Inductive Automation Página 100 de 397
Tags
5. Clique no ícone de vinculação à direita da propriedade Value.
A janela de vinculação de propriedade é exibida mostrando que o valor da propriedade
está vinculada a Tag Ramp 1.
Arrastando Várias Tags Para Uma Janela
Você também pode selecionar várias Tags de uma vez e arrastá-las para a janela ao
mesmo tempo.
1. Selecione várias das Realistics Tags (com CTRL+click ou Shift+click) e arraste
todos para a janela.
2. Selecione o componente LED Display.
©2019 Inductive Automation Página 101 de 397
Tags
3. Observe que arrastar a Tag para um componente existente vincula várias propriedades
de uma só vez.
©2019 Inductive Automation Página 102 de 397
Tags
Vinculações Bidirecionais
As tags que você arrasta para a tela criarão automaticamente vinculações bidirecionais
quando forem soltas.
1. Arraste um Numeric Text Field para a janela.
2. Arraste a Tag WriteableInteger1 para a propriedade Valor (Integer) do campo de
texto numérico.
3. Observe que apenas uma propriedade está em negrito agora.
4. Coloque o Designer no modo de visualização e altere o valor no campo de texto
numérico.
Uma mensagem de erro deve aparecer informando que o Gateway não está no
Read/Write Mode. Este é um recurso de segurança no Ignition.©2019 Inductive Automation Página 103 de 397
Tags
5. Você pode habilitar o Read/Write Mode na barra de menus do designer. Selecione
Project > Comm Read/Write e tente alterar o valor novamente.
6. Se você estiver trabalhando no Designer e tentar inserir um valor no Numeric Text
Field do Property Editor e o Read/Write Mode não estiver ativado, você receberá uma
mensagem pop-up. Você tem a opção de escolher Enable Read/Write Mode na caixa
de mensagem. Selecione Enable Read/Write Mode ou Write Once. Tente inserir um
valor novamente.
©2019 Inductive Automation Página 104 de 397
Tags
Tipos de Tags
Existem vários tipos de Tags. Enquanto falamos de "Tags" geralmente queremos dizer as
Tags executadas pelo Gateway, mas as Tags do sistema e as Tags do Cliente podem
desempenhar um papel importante no design geral de um projeto.
Tags Executadas Pelo Gateway
As Tags executadas no Gateway suportam todos os recursos principais das Tags:
dimensionamento, alarme, histórico e permissões baseadas em função. Elas são idênticas
em suas configurações, além de definir como o valor é gerado.
• Tag OPC - Um servidor OPC e endereço que direciona valores. O endereço OPC é
subscrito à taxa do Grupo de Tags da Tag.
• Tag de Memória - Um valor simples que é especificado durante a configuração e é
armazenado quando escrito (se a Tag permitir escrita).
• Tag de Expressão - A Tag acionada por uma expressão. A sintaxe da expressão é a
mesma das associações de propriedades e permite operações matemáticas, referências a
outras Tags, operações lógicas e muito mais.
• Tag Derivada - Uma Tag acionada por uma Tag de origem e possui expressões de
leitura e escrita. Ela se comporta da mesma forma que a Tag de Expressão, mas permite
que você escreva valores de volta na Tag de origem.
• Tag de Consulta - Executa uma Consulta SQL, cujo resultado fornece o valor para a
Tag. Assim como a vinculação SQL no Vision, o SQL Query Tag pode fazer referência a
outras Tags para construir consultas dinâmicas.
• Tag de Referência - Um tipo simples que possui o mesmo valor de outra Tag. Dessa
forma, você pode ter várias cópias da mesma fonte e definir valores diferentes para
alarmes, histórico, escala, etc.
• Tag Complexa (UDT) - Criada a partir de um tipo de Tag padrão, mas oferece uma
variedade de recursos adicionais. Em termos simples, você pode pensar nelas como uma
forma de criar "templates de dados", onde uma determinada estrutura de Tag é definida
e pode então ser criada como se fosse uma única Tag.
©2019 Inductive Automation Página 105 de 397
Tags
Criando Tags de Memória
Tags de Memória são simplesmente valores. Você pode usá-las como setpoints (que não
são armazenados no PLC) ou apenas para armazenar informações extras.
1. No Tag Browser, clique com o botão direito do mouse em Tags ou em uma pasta de
sua preferência e selecione New Tag > Memory Tag.
2. No Editor de ag, defina o Nome para TempF, defina o Tipo de Dados para Float, e
defina o valor inicial para uma temperatura razoável como 50,3.
©2019 Inductive Automation Página 106 de 397
Tags
3. Clique em OK.
É isso! Agora você tem uma Tag de Memória que pode ser lida ou gravada. Isso é como
ter uma variável global para seu projeto.
Criando uma Tag Derivada
Uma Tag Derivada permite realizar um cálculo especial baseado em outras Tags para
leitura e outro para escrita. Dessa forma, você pode fazer o cálculo uma vez e visualizá-
lo em qualquer janela do seu projeto.
1. No Tag Browser, clique com o botão direito do mouse em Tags ou em uma pasta de sua
preferência e selecione New Tag > Derived Tag.
©2019 Inductive Automation Página 107 de 397
Tags
2. No Editor de Tags, defina o nome para TempC, o Tipo de Dados para Float.
3. Defina o Source Tag Path para nossa nova Tag TempF. Você pode clicar no ícone
Edit à direita para selecionar a Tag.
©2019 Inductive Automation Página 108 de 397
Tags
4. Este tipo de Tag possui expressões de Leitura e Gravação. Encontre a propriedade
Read Expression e clique no ícone Edit à direita.
5. Digite esta expressão usando o objeto {origem} integrado:
({origem}-32)*5/9
©2019 Inductive Automation Página 109 de 397
Tags
6. Clique em Commit e em OK. Você verá o valor do seu cálculo na Tag.
7. Com uma Tag Derivada, você também escreve o valor de volta na mesma Tag. Na
Tag Editor > Escrever Expressão, clique no ícone Edit à direita.
8. Insira a seguinte expressão:
{valor}*9/5+32
Agora quando escrevermos na Tag, ela enviará um valor modificado de volta para a Tag
de origem.
©2019 Inductive Automation Página 110 de 397
Tags
Sistemas de Tags Client e Gateway
O Ignition vem com Tags de sistema predefinidos para fornecer mais informações sobre
o Cliente e o Gateway. No Tag Browser, na pasta Sistema, você pode ver vários Clientes
e Gateway Tags.
Para o Cliente, eles fornecem as seguintes informações:
• Endereço IP do cliente;
• Nome do host do cliente;
• Cliente OS;
• Quem está conectado e quais funções eles têm;
• Qual projeto está aberto;
• Endereço do gateway;
• e mais...
Para o Gateway, eles fornecem as seguintes informações:
• Informações de conexão do banco de dados;
• Estatísticas de desempenho do Ignition;
• Informações de redundância;
• Número de sessões do cliente abertas e mais…
©2019 Inductive Automation Página 111 de 397
Tags
Sistemas de Tags
Os sistemas de tags fornecem status sobre o sistema, como uso de memória, métricas de
desempenho e assim por diante. Eles existem para o Cliente e o Gateway. Você pode
modificar as Tags do sistema Gateway para realizar alarmes, histórico e dimensionamento,
mas não pode modificar as Tags do Cliente.
Tags do Cliente Vision
As Tags de Cliente, como o nome indica, estão disponíveis apenas para uso em Clientes
Vision. Isso significa que seus valores são isolados para um tempo de execução do cliente.
Apesar de serem criados no Designer, cada Cliente cria suas próprias instâncias. Isso os
torna muito úteis como variáveis no projeto, para passar informações entre telas e entre
outras partes dos Clientes, como scripts.
As tags de cliente são um híbrido de tags de memória, expressão e consulta SQL. No
entanto, elas não têm um Grupo de Tags. Quando configurado para ser executado como
uma expressão ou consulta, uma taxa de pesquisa é especificada, ditando a frequência
com que o valor é calculado.
©2019 Inductive Automation Página 112 de 397
Tags
Uma ótima maneira de usar tags de cliente é ter uma variável que é usada em várias
páginas quando você não pode usar uma tag de memória normal porque cada cliente em
execução deseja seu próprio valor. Por exemplo, você pode ter várias janelas reutilizadas
para todas as áreas ao redor de suas instalações. Se você está passando o nome da área
em cada tela, então você quer usar uma Tag para lembrar sem ter que passar variáveis
ao abrir as janelas. Se duas ou mais pessoas quiserem ver áreas diferentes ao mesmo
tempo, uma Tag de Memória não funcionará, mas uma Tag de Cliente sim.
Grupos de Tags
As Tags são executadas por Grupos de Tags dentro de um Provedor de Tags. Em um
sistema típico, há vários grupos de tags e um ou dois provedores de tags: o provedor de
tags interno e possivelmente um provedor de tags externo de outra instalação do Ignition.
Os Grupos de Tags ditam a taxa de execução das Tags e, portanto, desempenham um
papel crucial no projeto de sistemas grandes e de alto desempenho. Eles oferecem vários
modos de execução importantes para ajudar a criar projetos eficientes.
Os diferentes modos de execução são os seguintes:
● Direct - Executa com base em uma taxafixa.
● Driven - Executa em uma taxa lenta ou rápida com base em uma condição. Este
tipo pode ser configurado para executar uma vez quando a condição for True.
● Leased - Executa a uma taxa lenta ou rápida de acordo com a necessidade dos
valores da Tag.
Grupo de Tags Diretas
O Modo Direto é executado em uma taxa fixa, que é definida pela configuração de taxa
lenta. Toda Tag que usa o modo Direto irá fazer o polling do PLC na configuração de taxa
lenta 24x7x365 (sempre).
O Ignition vem com dois dois Grupos de Tags Diretas padrão chamados Default e Default
Historical. Você pode modificar as configurações desses Grupos de Tags padrão.
Edit um grupo de tags
1. Abra o Designer. No Tag Browser, clique no ícone Edit Tag Groups.
©2019 Inductive Automation Página 113 de 397
Tags
O Edit Tag Groups é exibido. À esquerda da janela, você pode ver os Grupos de Tags
padrão: Default e Defalt Historical. Ambos são grupos de tags diretas. O Grupo de
Tag Default é uma taxa de 1 segundo e o Default Historical é uma taxa de 10 segundos.
©2019 Inductive Automation Página 114 de 397
Tags
2. Selecione o Default Tag Group à esquerda. Agora você pode fazer alterações no Grupo
de tags, incluindo a alteração da taxa lenta para 30.000 ms. Para a aula, deixaremos a
taxa padrão em 1.000ms.
Como todas as novas Tags usam automaticamente esse grupo padrão, é uma boa ideia
alterá-lo para uma taxa muito mais lenta e criar uma nova taxa de 1 segundo com um
nome diferente.
Definindo a taxa de grupo de tags para uma tag
1. Clique com o botão direito do mouse em qualquer Tag e selecione Edit Tag.
A janela Editor de tags é exibida.
2. Em Propriedades básicas, localize a propriedade suspensa Grupo de Tags e defina-a
como um New Tag Group. Certifique-se de salvar seu projeto depois de criar um novo
Grupo de Tags.
3. Clique em OK para salvá-lo.
©2019 Inductive Automation Página 115 de 397
Tags
Você verá imediatamente a atualização da Tag em uma taxa diferente. A Tag também usa
o Grupo de Tags para determinar a velocidade de registro de dados para o histórico. O
Grupo de Tags de histórico não afeta a rapidez com que os valores são pesquisados do
PLC, mas afeta a rapidez com que os dados são registrados. Se você tiver o histórico
ativado em sua Tag, essa propriedade aparecerá na seção Histórico.
Grupo de Tags Alugadas
O Grupo de Tags alugadas é executado na Leased/Driven Rate (tarifa rápida) quando
qualquer uma das Tags que ele contém estiver inscrito e visível em uma janela do cliente.
Se não houver Tags inscritas, o Grupo de Tags é executado na taxa lenta.
Cada Tag que usa o Grupo de Tags alugado irá sondar o PLC na Leased/Driven Rate
(taxa rápida) quando um cliente ou seção precisa do valor, e na taxa lenta quando
nenhum dos Tags tiver um vínculo em uma janela ou visualização ativa.
Adicionar um grupo de tags alugado
Vamos adicionar um novo Grupo de Tags alugado que atualiza a Tag a uma taxa de 1
segundo quando um cliente precisa da Tag e 30 segundos quando o cliente é fechado.
1. No Tag Group Editor clique no ícone Add para adicionar um novo Grupo de Tags.
2. Defina o seguinte:
Tag Group Name: Leased
Mode: Leased
Rate: 30000
Leased/Driven Rate: 1000
©2019 Inductive Automation Página 116 de 397
Tags
3. Clique em OK para salvar.
4. Defina o Grupo de Tags nas Tags para usar este novo Grupo de Tags Alugado.
As Tags só serão pesquisadas quando um componente que está vinculado a ele estiver
aparecendo em um Cliente.
5. Para testar seu grupo de tags, edite uma tag do Ignition para usar este grupo e
arraste-a para uma janela.
Grupo de Tags Direcionadas
A taxa do Grupo de Tags Direcionadas é baseada em uma simples comparação entre um
valor de Tag e um número. Se a condição for True, o Grupo de Tags é executado em uma
taxa rápida. Se False, ele é executado em uma taxa lenta. Existem duas exceções para
isso:
● Qualquer Operador de Mudança;
● Modo de disparo único.
Usando qualquer um deles, o Grupo de Tags não é executado em uma taxa. Em vez disso,
será acionado por uma alteração no valor do Tag de condução. Qualquer alteração será
executada toda vez que o valor for alterado, e o disparo único será executado uma vez
quando a condição de comparação for True e não novamente até que a condição se torne
False e subsequentemente True.
É útil ter em mente que a Tag direcionada pode ser uma Tag de Expressão que realiza
cálculos complexos e referência outras Tags. Dessa forma, é possível criar um
acionamento robusto de Grupos de Tags.
Cada Tag que usa o Grupo de Tags acionado, fará o polling do PLC na taxa rápida quando
a condição for True e na taxa lenta quando a condição for False.
©2019 Inductive Automation Página 117 de 397
Tags
Adicionar um grupo de tags orientadas
Vamos adicionar um Grupo de Tags Direcionadas que atualiza as Tags com base na
temperatura externa da nossa Tag de Memória.
1. Clique no ícone Edit Tag Groups no Tag Browser para abrir o Editor de Grupos de
Tag.
2. Clique no ícone Add para adicionar um novo Grupo de Tags e defina o seguinte:
Tag Group Name: Driven
Mode: Driven
Rate (ms): 0, portanto, não pesquisamos quando a condição é False. Se você definir o
valor para 10 segundos, ele simplesmente pesquisará mais lentamente quando a
condição for False.
Leased/Driven Rate (ms): 1000
Driving Expression: {[default]TempF}
Driving Comparison:>
Comparison Value: 50
©2019 Inductive Automation Página 118 de 397
Tags
3. Clique em OK para salvar.
Defina o Grupo de Tags em qualquer Tag para atualizar nesta condição. Se você usar
este Grupo de Tags para o histórico, a Tag armazenará apenas o histórico durante esses
momentos.
Após configurar as Tags para usar este Grupo de Tags, altere a Tag TempF para ver se
funcionou.
©2019 Inductive Automation Página 119 de 397
Capítulo 8
Tags Complexas (UDTs)
Tags complexas, também conhecidas como Tag UDTs, permitem que você
aproveite os princípios de design de dados orientados a objetos no Ignition.
Usando Tags complexas, você pode reduzir drasticamente a quantidade de
trabalho necessário para criar sistemas robustos essencialmente criando
"templates de dados" parametrizados que você pode usar para gerar instâncias
de Tags.
Os principais recursos dos UDTs são os seguintes:
• Definição Central - Depois de definir seu tipo de dados, você pode criar
instâncias dele. Se posteriormente você quiser alterar algum aspecto do Tag,
basta editar a definição do tipo e todas as instâncias dele são atualizadas
automaticamente.
• Configurações parametrizadas - Defina parâmetros personalizados em seu
tipo de dados e, em seguida, faça referência a eles dentro de suas Tags de
membro. Quando for a hora de criar instâncias, você pode simplesmente modificar
seus valores de parâmetro para alterar a origem dos dados subjacentes.
• Extensível - Os tipos de dados podem herdar de outros tipos de dados para
adicionar membros adicionais ou substituir configurações. As instâncias também
podem substituir as configurações, permitindo flexibilidade para lidar com dados
irregulares e casos de canto.
©2019 Inductive Automation Página 120 de 397
Tags Complexas (UDTs)
Terminologia
Os seguintes termos são frequentemente usados ao discutir Tags complexas:
• UDT (User Defined Type) - A definição do tipo de dado: sua estrutura, Tags, atributos
e configurações. Este deve ser um tipo genérico, como Motor ou Tanque de Resfriamento.
• Instâncias - Executando cópias de um tipo de dados com dados específicos para todos
os membros. As instâncias são vinculadas a seus tipos familiares e são recarregadas
quando seu familiar é alterado. Além das configurações especificamentesubstituídas,
todas as configurações são herdadas da definição de tipo. Este deve ser um objeto
específico, como Motor 3 ou Tanque de Resfriamento 5.
• Parâmetros - Propriedades personalizadas em tipos de dados que você pode usar dentro
do tipo ou definição de instância para criar templates de dados parametrizados. Por
exemplo, se um tipo de dado for composto por três Tags OPC que diferem apenas por um
número no caminho, você pode utilizar um parâmetro para o "endereço base", permitindo
que instâncias sejam criadas com apenas uma configuração.
• Membros - Tags dentro de um tipo de dado ou instância. Os membros podem ser tipos
básicos de Tags ou outros UDTs.
Criando Tags Complexas (UDTs)
Até agora lidamos apenas com Tags simples. No Ignition, você pode criar tipos definidos
pelo usuário (UDTs) para tags. Esses tipos podem modelar UDTs em determinados PLCs,
por exemplo, um ControlLogix ou podem ser completamente novos. Você cria UDTs em
uma pasta especial no Tag Browser chamada Data Types.
©2019 Inductive Automation Página 121 de 397
Tags Complexas (UDTs)
Existem três maneiras de criar UDTs:
• Manualmente
• Do OPC através do navegador OPC
• De Tags existentes
Se o seu PLC suporta UDTs, a maneira mais fácil de criar um tipo é pelo OPC. Como
estamos conectados a um ControlLogix e ele suporta UDTs, usamos o segundo método
(do OPC) para criar os UDTs. Em nosso PLC ControlLogix, já temos uma configuração de
UDT do motor. Vamos criar o UDT no Ignition.
Crie o UDT do Navegador OPC
1. No Tag Browser clique no ícone OPC Browser.
2. Na pasta CLX, vá para a pasta Controller:Global e localize o arquivo M1.
M1 representa um motor que possui quatro Tags: AMPS, HOA, RUN_CMD e STATUS.
3. Arraste a pasta M1 para a pasta Data Types no Tag Browser.
©2019 Inductive Automation Página 122 de 397
Tags Complexas (UDTs)
4. Uma janela pergunta se você deseja criar um Tipo ou Tags. Clique em Create Type.
A janela Editor de tags é exibida. Observe que duas Tags, AMPS e HOA, são
automaticamente parte do UDT.
5. No Editor de Tag, altere o nome de M1 para MotorUDT para tornar o nome do tipo
mais genérico.
6. Clique com o botão direito do mouse na Tag RUN_CMD e selecione Delete. Em
seguida, exclua também a Tag STATUS.
7. Neste momento cada Tag está apontando para um endereço específico no PLC.
Selecione a Tag AMPS para ver que está apontando para M1 no PLC.
©2019 Inductive Automation Página 123 de 397
Tags Complexas (UDTs)
Como estamos criando um UDT, não queremos apontar para um conjunto específico de
Tags. Queremos que cada instância do UDT faça referência a um conjunto diferente de
Tags. Para fazer isso, precisamos adicionar um parâmetro ao UDT.
Os parâmetros são propriedades personalizadas em tipos de dados. Você pode usar os
parâmetros dentro do tipo ou definição de instância para criar templates de dados
parametrizados.
Por exemplo, se um tipo de dado for composto por três Tags OPC que diferem apenas por
um número no caminho, você pode utilizar um parâmetro para o "endereço base",
permitindo que instâncias sejam criadas com apenas uma configuração.
8. No Editor de Tags, clique duas vezes no tipo de dados MotorUDT e edite os parâmetros
clicando no ícone Edit.
9. Clique no ícone Add para adicionar um parâmetro. Altere o nome para MotorNumber e
clique em Commit.
©2019 Inductive Automation Página 124 de 397
Tags Complexas (UDTs)
10. Clique em Apply. Agora para cada Tag, podemos substituir o número do motor pelo
parâmetro MotorNumber.
11. Selecione a etiqueta AMPS. No Caminho do Item OPC, clique no ícone de vinculação
à direita e selecione a opção Edit....
©2019 Inductive Automation Página 125 de 397
Tags Complexas (UDTs)
12. Agora você verá seu Caminho de Item OPC original. Coloque o cursor após “M1”.
Clique no ícone de parâmetros à direita para abrir a lista de parâmetros.
13. Clique na opção MotorNumber para inserir {MotorNumber}. Exclua o "1" em "M1"
antes de prosseguir.
O OPC Item Path mostrará:
ns=1;s=[CLX]Global.M{MotorNumber}.AMPS
14. Faça o mesmo para a tag HOA. O OPC Item Path mostrará:
ns=1;s=[CLX]Global.M{MotorNumber}.HOA
15. Clique em OK para salvar o UDT. Você verá o MotorUDT na pasta Data Types.
Criando instâncias de UDT
Agora que temos o Motor UDT, podemos criar instâncias dele. As instâncias estão
executando cópias de um tipo de dados com dados concretos para todos os membros.
1. No Tag Browser, clique com o botão direito em Tags e selecione New Folder para criar
uma nova pasta. Nomeie a pasta como “Motors”.
©2019 Inductive Automation Página 126 de 397
Tags Complexas (UDTs)
Você pode criar uma única instância do motor ou usar o assistente de várias instâncias
para criar rapidamente todos os quatro ao mesmo tempo.
©2019 Inductive Automation Página 127 de 397
Tags Complexas (UDTs)
2. Clique com o botão direito do mouse na pasta Motors e selecione New Tag> Data
Type Instance> Multi-Instance Wizard.
O Assistente de Criação de Instância é exibido.
3. Na lista suspensa Step1 - Select the Data Type to Create, selecione Motor.
4. Defina o seguinte:
Base Tag Name: "Motor" (observe o espaço no final)
Tag Name Pattern: 1-10, isso cria 10 Tags Motor 1, Motor 2, etc.
Parameter: MotorNumber que é o que usamos para referenciar Tags específicas no
PLC.
Pattern: 1-10 para que a Tag Motor 1 tenha parâmetro 1 e Motor 2 tenha parâmetro 2 e
assim por diante.
Tags to create: 10 Este campo não será editável após o preenchimento do Pattern.
©2019 Inductive Automation Página 128 de 397
Tags Complexas (UDTs)
Basicamente, você tem o nome da Tag e o valor do parâmetro para definir.
5. Clique em Preview para ver o que o Ignition criará para o nome da Tag e o valor do
parâmetro.
©2019 Inductive Automation Página 129 de 397
Tags Complexas (UDTs)
6. Clique em OK para ver todas as quatro Tags criadas.
Se você expandir cada Tag, poderá ver todos os membros da UDT e seus respectivos
valores.
Agora, se você fizer uma alteração no UDT, todas as 10 instâncias serão atualizadas
automaticamente porque são desse tipo.
©2019 Inductive Automation Página 130 de 397
Tags Complexas (UDTs)
7. Edite seu Motor UDT clicando duas vezes nele no Tag Browser. O Editor de tags é
exibido.
8. Clique no ícone Add Tag no canto superior esquerdo da janela e selecione Memory
Tag.
9. Defina o seguinte:
Name: HighSP
Data Type: Integer
Value: 40
10. Clique em OK para salvar. Observe que cada instância obtém automaticamente a
nova Tag.
©2019 Inductive Automation Página 131 de 397
Tags Complexas (UDTs)
Substituindo Instâncias UDT
Todos sabemos que nem todos os motores são exatamente iguais, portanto, existe uma
maneira de fazer alterações em instâncias individuais de um UDT. Você pode substituir
qualquer propriedade de um UDT acessando o Editor de tags e selecionando o círculo cinza
ao lado de qualquer valor de propriedade. Isso significa que agora você pode alterar o
valor na instância para que seja diferente da definição do UDT. Isso também significa que
quaisquer atualizações na definição do UDT não substituirão esse valor.
Você pode usar isso para fazer muitas alterações em suas tags, mas se precisar substituir
todas as instâncias de um UDT, deverá tornar essa propriedade dinâmica.
Aninhamento de UDTs e Herança
Ao criar novos UDTs, você pode torná-los tão simples ou complexos quanto desejar. No
exemplo acima, temos um UDT simples com apenas três Tags. Você também pode incluir
outros UDTs dentro de um UDT. Por exemplo, você pode ter um UDT para um
transportador em que cada transportadortenha um motor conectado a ele. Você pode
reutilizar seu motor UDT como parte do transportador. Desta forma, ao atualizar o UDT
do Motor, todos os UDTs do Conveyor serão atualizados automaticamente.
UDTs também podem ter relacionamentos pai-filho. Você pode ter vários tipos de motores,
onde um é simples como o exemplo acima, e um é um VFD (variable frequency drive) que
tem nosso motor simples como pai e adiciona alguns outros Tags que controlam a
velocidade do motor. Desta forma, quando você atualizar o UDT do motor simples, todos
os UDTs do motor VFD serão automaticamente.
©2019 Inductive Automation Página 132 de 397
Capítulo 9
Templates
Os templates são um recurso simples, mas muito poderoso no Ignition, que você
pode usar com as janelas do Vision. O poder vem da capacidade de modificar
apenas o template em um local, afetando todas as instâncias usadas em todo o
projeto.
Os sistemas HMI e SCADA normalmente têm muitas repetições em suas telas.
Você pode usar um grupo dos mesmos componentes repetidamente em seu
projeto para representar motores diferentes. Os dados que conduzem cada
conjunto de gráficos são diferentes, mas os próprios gráficos são cópias uns dos
outros. No nosso exemplo, existem quatro motores iguais. Você pode criar um
único template e usar instâncias do template repetidamente.
Sem templates, a única maneira de fazer isso é copiar e colar os componentes
toda vez que você quiser representar um motor. Isso é simples e funciona, mas
pode causar grandes dores de cabeça e correções demoradas mais tarde. Se você
quiser fazer uma alteração na forma como os motores são representados, terá
que fazer a alteração em cada cópia do grupo.
©2019 Inductive Automation Página 133 de 397
templates
Template Principal e Instâncias de Template
Ao usar templates, você define os gráficos para exibir um motor em um local, chamado
de Template principal. Você pode usar esse template várias vezes em seu projeto em
várias janelas, elas são chamadas de instâncias de template.
Quaisquer alterações feitas no template mestre são refletidas instantaneamente em todas
as instâncias do template. Usando templates no início do desenvolvimento de seu projeto
para qualquer exibição repetida, você pode economizar uma quantidade significativa de
tempo posteriormente.
Parâmetros do Template
Como o principal uso dos templates é a facilidade de manutenção de elementos repetidos
da interface do usuário, o uso correto dos parâmetros é de grande importância. Os
parâmetros permitem que cada template de instância faça referência a diferentes
elementos de dados de configurações de dados repetidas.
Parâmetros e Propriedades Internas
Ao abrir o Personalizador de Propriedades Personalizadas para um template mestre, você
notará que ele é diferente de todos os outros componentes. Existem dois tipos de
propriedades personalizadas: propriedades de parâmetro e propriedades internas.
• A Propriedade de Parâmetro aparece em cada template de instância, permitindo que
cada template de instância seja configurado de forma diferente. Comumente, isso é algum
tipo de indireção. Por exemplo, se seu template é para representar motores, você pode
ter MotorNumber como uma propriedade de parâmetro. Em seguida, você pode usar essa
propriedade como uma variável de indireção em outras associações no template.
As propriedades de parâmetro não são vinculáveis de dentro do template de design
mestre. Quando você usa o template para criar uma instância de template, a propriedade
se torna vinculável. Isso garante que a propriedade tenha apenas uma única associação
configurada para ela.
• A Propriedade Interna não pode ser usada como parâmetro. Ele aparece ao projetar
o template principal, mas não aparece nas instâncias do template. As propriedades
internas são vinculáveis de dentro do template de design principal. Essas propriedades
devem ser usadas para o funcionamento interno do template.
©2019 Inductive Automation Página 134 de 397
templates
Indireção e Tags UDT
Existem duas maneiras principais de obter a indireção ao usar templates. Vamos continuar
usando o exemplo de um motor. Seu sistema possui muitos motores e seu template é
usado para exibir o status dos motores e controlar o modo de operação do motor. O
objetivo é poder soltar instâncias do template em suas janelas, e configurá-las em um
único passo para apontar para as Tags corretas do motor.
Se as Tags que representam os datapoints de cada motor estiverem organizadas de forma
ordenada em pastas ou com uma convenção de nomenclatura consistente, você pode usar
a indireção padrão para configurar seu template. Você pode adicionar um parâmetro como
MotorNum ao template. Em seguida, você configura o conteúdo do template usando a
vinculação indireta da Tag, onde o valor de MotorNum é usado para a indireção.
Se seus motores são representados por um tipo de dado de Tag personalizado, você pode
economizar algum esforço e usar uma propriedade desse tipo de Tag diretamente. Torne
sua propriedade de indireção do mesmo tipo que seu tipo de dados customizados. Em
seguida, você pode usar associações de propriedade simples para configurar os
componentes dentro do seu template. Ao criar uma instância de template, você pode
simplesmente vincular essa propriedade diretamente a Tag de Motor correta, e todas as
sub-Tags do motor são mapeadas corretamente por meio das vinculações de propriedade.
O parâmetro de Destino de Queda
Você pode escolher um de seus parâmetros como destino para soltar. Isso permite que
você solte Tags em suas janelas para facilitar a vinculação ainda mais rápida. Por exemplo,
digamos que você tenha um parâmetro que seja um número Integer e o tenha tornado o
destino de soltar. Se você soltar uma Tag inteira em uma janela, seu template aparecerá
na lista de componentes que ela sugere que você faça. Escolher seu template cria uma
instância de template e vincula esse parâmetro à Tag.
Isso também funciona para tags UDT. Digamos que você tenha um tipo de dados
personalizado chamado Motor e um template com um parâmetro do tipo Motor definido
como destino para soltar. Se você soltar uma Tag do motor em uma janela, ela cria uma
instância do seu template automaticamente. Se você tiver mais de um template
configurado com destinos de queda Motor, você deve escolher qual template usar.
©2019 Inductive Automation Página 135 de 397
templates
Criando um Template
Nós vamos fazer o seguinte:
• Criar um template para o Motor.
• Usar parâmetros em instâncias de template.
• Adicionar um componente ao template e vincular ao UDT.
• Usar o template na janela.
Criar um Template para o Motor
1. No Project Browser, vá para o item especial chamado Template.
2. Clique com o botão direito do mouse em Templates e selecione New Template.
Renomeie-o para Motor Template.
©2019 Inductive Automation Página 136 de 397
templates
Agora você pode ver uma caixa quadriculada no espaço de design onde você projeta seu
template. A caixa quadriculada informa que o template é completamente transparente.
Você pode definir uma cor de fundo, se quiser.
Usar Parâmetros em Instâncias de Template
Como o principal uso dos templates é a facilidade de manutenção de elementos
repetidores da interface do usuário, o uso apropriado dos parâmetros é de grande
importância.
Os parâmetros permitem que cada instância de template faça referência a elementos de
dados de diferentes estruturas de dados repetidos. O parâmetro pode ser um tipo de
dados simples (Integer, Float e assim por diante) ou um tipo complexo (UDT).
UDTs e templates combinam bem. Como já temos um UDT, vamos trabalhar com ele.
Primeiro, vamos usar o Motor UDT com o template Motor.
1. Clique com o botão direito do mouse na caixaquadriculada do template Motor e
selecione Customizers > Custom Properties.
Como mencionado anteriormente, existem dois tipos de propriedades: propriedade de
parâmetro e propriedade interna.
Vamos adicionar uma propriedade de parâmetro para que ela possa existir em todas as
instâncias que você colocar nas telas. Em seguida, cada instância pode vincular a
propriedade do parâmetro a uma Tag.
©2019 Inductive Automation Página 137 de 397
templates
2. Na janela Propriedades Personalizadas, clique no ícone Add para incluir os valores de
parâmetro do template.
Name: MotorData
Type: MotorUDT (Clique duas vezes para obter a lista suspensa e selecione User
Defined/Tags/MotorUDT)
Group Target: Check the Box (quando esta caixa está selecionada, você pode soltar
Tags em suas instâncias de template para facilitar a vinculação ainda mais rápida.)
3. Clique em OK.
Agora no Property Editor sob os Template Parameters, você pode ver a propriedade
MotorData.
©2019 Inductive Automation Página 138 de 397
templates
Adicionar um Componente ao Template e Vinculá-lo a Partes
do UDT
1. Adicione um componente LED Display e um componente Label ao template.
Usaremos isso para os AMPs.
2. Altere a propriedade texto da Label para "Amps".
Agora podemos vincular o Value do Painel de LED a Tag AMPS do MotorUDT.
3. Selecione o componente LED Display.
4. Na propriedade Value, clique no ícone de vinculação.
5. Selecione o tipo de vinculação de Propriedade.
6. Na árvore de propriedades, expanda MotorData e selecione a tag AMPS.
7. Clique em OK para concluir a vinculação.
Você notará que o Painel LED não atualiza seu valor. Isso porque o valor nesta definição
de template é NULL. Ainda não estamos vinculados a um Motor específico.
©2019 Inductive Automation Página 139 de 397
templates
8. Adicione uma Label na parte superior do motor para mostrar o nome do motor. Altere
a propriedade Fonte para tamanho 14 e negrito.
9. Defina a propriedade Horizontal Alignment como Center.
O Ignition exibe algumas informações meta para que você saiba exatamente para qual
Tag o UDT está apontando, nos ligamos a isso.
10. Na propriedade Text, clique no ícone de Vinculação.
11. Selecione o tipo de vinculação de Propriedade.
12. Na árvore de propriedades, expanda MotorData e Meta e selecione a propriedade
TagName.
13. Clique em OK para concluir a vinculação.
Você nota que a etiqueta fica em branco. Novamente, isso ocorre porque o valor nesta
definição de template é NULL. Ainda não estamos vinculados a um Motor específico.
©2019 Inductive Automation Página 140 de 397
templates
Agora precisamos de uma imagem. Podemos usar a Fábrica de Símbolos para obter um
SVG.
14. Abra a Symbol Factory.
15. Selecione qualquer motor na pasta Motors e arraste-o para o template.
Os componentes da fábrica de símbolos são compostos de vários sub componentes ou
caminhos que compõem um gráfico baseado em vetor. Se você expandir o componente
no Project Browser, poderá ver todos os caminhos.
©2019 Inductive Automation Página 141 de 397
templates
Você também pode clicar duas vezes no componente no espaço de design para
selecionar os sub componentes individuais. Queremos que o componente Integer seja de
uma cor com base no valor HOA, portanto, usamos um método especial, conforme
descrito aqui, para aplicar uma tonalidade.
16. Selecione o componente de imagem do motor e na barra de menu do Designer e
escolha Edit > Duplicate ou pressione Ctrl-D.
17. Com a nova imagem selecionada, clique no ícone Union na barra de ferramentas ou
selecione Shape > Union.
18. No Editor de Propriedade, clique no ícone Edit da propriedade Stroke Paint e
selecione o ícone No Paint. Isso remove o contorno.
©2019 Inductive Automation Página 142 de 397
templates
19. Em seguida, clique no ícone de vinculação ao lado da propriedade Fill Paint.
20. Selecione o tipo propriedade de vinculação e, em seguida, selecione a Tag HOA no
MotorData UDT.
Ao associar uma propriedade de cor a uma Tag, você pode definir uma cor para cada
estado da Tag na Number-to-Color Translation. Vamos definir três opções de cores.
21. Clique no ícone Add new row para que haja três linhas.
22. Clique duas vezes na área de cores para o valor 0 e selecione uma cor vermelha da
paleta. Defina o valor 1 para verde e o valor 2 para amarelo.
©2019 Inductive Automation Página 143 de 397
templates
23. Precisamos garantir que cada cor seja semitransparente para que você possa ver o
símbolo real por trás dela. Clique na roda de cores e defina o canal alfa na parte inferior
para 40. Pressione a tecla Enter se você digitar o valor.
24. Clique no ícone x no canto superior direito e clique em OK para enviar a alteração de
cor.
25. Podemos repetir este processo para os outros dois valores: 1=Verde, 2=Amarelo.
26. Clique em OK quando terminar com as cores. O template agora se parece com isso:
©2019 Inductive Automation Página 144 de 397
templates
Observe que quando você clicou em OK, o gráfico ficou preto. Isso ocorre porque a
propriedade MotorUDT não está vinculada. Nós o associamos a uma Tag quando criamos
uma instância do template. A definição do template aqui é genérica e não aponta para
nada. Você pode ver isso se visualizar a propriedade UDT do motor.
Para manter os dois componentes da imagem exatamente um em cima do outro,
podemos agrupá-los.
27. Selecione ambos os componentes no Project Browser.
28. Clique na opção Component > Group na barra de menu ou no ícone Combine na
barra de ferramentas.
Agora eles são um componente. Você pode verificar isso no Project Browser.
©2019 Inductive Automation Página 145 de 397
templates
Use o Template na Janela
Agora que o template foi criado, podemos usá-lo em uma janela. Existem duas maneiras
de trazer um template na janela:
• Arraste o template para a janela.
• Arraste a Tag para a janela e selecione o template (somente se o destino para soltar
estiver selecionado).
Como marcamos a caixa Soltar destino, vamos arrastar uma Tag para a janela.
1. A partir do Tag Browser, arraste o Tag Motor 1 para a janela Componentes.
O Ignition sabe que há apenas um template com esse tipo, então ele o cria
automaticamente para você. Se houver mais de um template, o Ignition permitirá que
você selecione o template em uma lista suspensa.
©2019 Inductive Automation Página 146 de 397
templates
2. Agora arraste mais motores na janela. Você pode arrastar o template do Project
Browser e então arrastar Tags para a instância do template.
©2019 Inductive Automation Página 147 de 397
templates
Agora que temos alguns Motores em uma janela, queremos poder controlar o estado
HOA de cada um. Vamos fazer uma alteração rápida no template.
1. Abra a definição do template novamente.
2. Para adicionar um botão HOA ao template, arraste um componente Multi-State
Button da Paleta de Componentes.
3. Defina a propriedade Display Style como Row.
4. Estique o componente para que fique longo e curto para que os botões fiquem
bonitos.
O Botão de Vários Estados tem algumas propriedades especiais para fazê-lo funcionar.
Precisamos vincular as propriedades Control Value e Indicator Value a HOA Tag da
propriedade UDT.
5. Clique no ícone de vinculação da propriedade Valor do indicador e selecione o tipo de
vinculação de Propriedade.
6. Selecione a tag MotorData -> HOA e clique no botão OK. Agora o Botão de Vários
Estados mostrará o valor atual do HOA.
7. Para que o escrever de volta funcione ao clicar em um botão, precisamos vincular a
propriedade Valor de Controle. Faça a mesma ligação na58
Anatomia de Uma Janela .............................................................................................................................................................. 60
Adicionando uma Janela à Navegação ................................................................................................................................... 62
CAPÍTULO 6 .................................................................................................................... 66
Propriedades e Veiculações do Componente Vision .......................................................................................... 66
Configurando Componentes ...................................................................................................................................................... 67
Arraste Componentes Para a Janela ....................................................................................................................................... 68
Entendendo o Layout do Componente .................................................................................................................................. 69
Ferramentas de Desenho............................................................................................................................................................. 77
Propriedades do Componente .................................................................................................................................................. 85
Noções Básicas Sobre Vinculação de Propriedade........................................................................................................... 86
CAPÍTULO 7 .................................................................................................................... 92
Tags....................................................................................................................................................................................... 92
Principais Benefícios das Tags .................................................................................................................................................. 93
Valores das Tags .............................................................................................................................................................................. 93
Criando Tags ..................................................................................................................................................................................... 94
Propriedades das Tags ................................................................................................................................................................. 96
Arrastando Tags para Janelas e Componentes .................................................................................................................. 98
Tipos de Tags .................................................................................................................................................................................. 104
Criando Tags de Memória ......................................................................................................................................................... 105
Criando uma Tag Derivada ....................................................................................................................................................... 106
Sistemas de Tags Client e Gateway ....................................................................................................................................... 110
Sistemas de Tags ........................................................................................................................................................................... 111
Tags do Cliente Vision ................................................................................................................................................................. 111
Grupos de Tags ............................................................................................................................................................................... 112
CAPÍTULO 8 .................................................................................................................. 119
Tags Complexas (UDTs) ............................................................................................................................................. 119
Terminologia ................................................................................................................................................................................... 120
Criando Tags Complexas (UDTs) ........................................................................................................................................... 120
Criando instâncias de UDT........................................................................................................................................................ 125
Substituindo Instâncias UDT ................................................................................................................................................... 131
Aninhamento de UDTs e Herança .......................................................................................................................................... 131
CAPÍTULO 9 .................................................................................................................. 132
Templates ........................................................................................................................................................................ 132
Template Principal e Instâncias de Template .................................................................................................................. 133
Parâmetros do Template ........................................................................................................................................................... 133
Criando um Template ................................................................................................................................................................. 135
Criando Vinculações de Tags Indiretas ............................................................................................................................... 149
©2019 Inductive Automation Página 4 de 397
CAPÍTULO 10 ................................................................................................................ 155
Histórico de tags ........................................................................................................................................................... 155
Registre os Dados ......................................................................................................................................................................... 156
Registro de Dados Para o Motor............................................................................................................................................. 159
Armazenamento de Dados ........................................................................................................................................................ 161
CAPÍTULO 11 ................................................................................................................ 162
Exibir Dados do Histórico.......................................................................................................................................... 162
Criar um Gráfico ............................................................................................................................................................................ 163
Adicionar Subplots ao Gráfico .................................................................................................................................................etapa anterior, mas antes de
clicar em OK, marque a caixa Bidirectional. Isso garante que, quando a propriedade
Valor de Controle for alterada, a vinculação será gravada de volta na Tag HOA.
©2019 Inductive Automation Página 148 de 397
templates
8. Clique OK. Você pode precisar mover os componentes um pouco para que todos se
encaixem.
Agora vamos voltar para a janela Componentes. Você notará que todos os templates
foram atualizados para incluir o botão HOA.
Agora você tem um template que pode controlar o motor.
©2019 Inductive Automation Página 149 de 397
templates
Criando Vinculações de Tags Indiretas
As Vinculações Indiretas de tags são uma parte importante do Ignition e do sistema de
vinculação. Isso significa que a Tag que está vinculada pode ser alterada com base no
valor de outra coisa. Por exemplo, você pode fazer uma seleção em uma lista suspensa
para escolher quais Tags serão exibidas na tela.
Temos várias Tags UDT de motor e um template de motor. Vamos criar uma lista
suspensa com um template de motor anexado. A lista suspensa oferece a opção de qual
motor observar. As tags do motor ficam assim:
Motors/Motor 1
Motors/Motor 2
Motors/Motor 3
Motors/Motor 4
A única diferença entre cada motor é o número.
Criar um Template de Motor Indireto
1. No Designer, abra a janela Componentes.
2. No Project Browser, em templates, arraste o template do Motor.
3. Na guia Input da Paleta de Componentes, arraste um componente Dropdown List.
Agora precisamos configurar as opções para a lista suspensa no Property Editor. O
componente suspenso tem a propriedade Data, que é um conjunto de dados. Existem
várias maneiras de configurar o conjunto de dados, mas o padrão é usar um integer e
uma coluna de string. O formato é o seguinte:
Duas Colunas [Integer, String] (Default)
201 maçãs
202 laranjas
203 bananas
• A Dropdown List exibe os valores da segunda coluna.
©2019 Inductive Automation Página 150 de 397
templates
• O Selected Value representa o valor da primeira coluna.
• O Selected String Value selecionado representa o valor da segunda coluna.
• A Selected Label representa o valor da segunda coluna.
4. Selecione o componente Dropdown List e clique no ícone de exibição Dataset View ao
lado da propriedade Data.
5. No lado direito da janela Dataset Viewer, clique no ícone Add Row quatro vezes
para adicionar quatro linhas.
6. Defina as linhas com os seguintes valores:
Value Label
1 Motor 1
2 Motor 2
3 Motor 3
4 Motor 4
7. Clique em OK para enviar suas alterações.
8. Defina a propriedade Selected Value como 1. Observe os valores para Selected
String Value e o Selected Label são preenchidos para você.
©2019 Inductive Automation Página 151 de 397
templates
Queremos usar o Valor Selecionado em uma ligação indireta no template para
selecionar dinamicamente qual motor observar.
9. Selecione o novo template de Motor na janela e vincule a propriedade MotorData UDT
usando um tipo de vinculação de Tag Indireta.
A maneira mais fácil de usar a vinculação indireta de Tags é selecionar uma Tag como
ponto de partida e torná-la dinâmica.
©2019 Inductive Automation Página 152 de 397
templates
10. Clique no ícone de Tag à direita do Caminho de Tag Indireta e selecione a Tag
Motor 1 como referência. Certifique-se de não selecionar uma das tags na instância
Motor 1 UDT.
A lista suspensa contém o número do motor a ser observado. Portanto, precisamos
vincular o número da Tag do Motor ao valor selecionado do menu suspenso.
11. Destaque o número 1 (em Motores/Motor1) no Caminho de Tag Indireta e exclua-o.
Em seguida, clique no ícone Insert Property à direita para trazer a propriedade
Selected Value do menu suspenso. Certifique-se de deixar o espaço entre Motor e 1.
©2019 Inductive Automation Página 153 de 397
templates
12. O Ignition insere {1} e o vincula ao menu suspenso. Isso significa que o Ignition
substitui {1} pelo valor da lista suspensa permitindo selecionar qual Tag do motor
observar.
©2019 Inductive Automation Página 154 de 397
templates
13. Defina a caixa de seleção Bidirecional na parte inferior e clique em OK.
Agora você pode experimentá-lo, e clicar no botão HOA mudará sua Tag valores.
14. Salve seu projeto e abra o Cliente.
Você pode alterar a lista suspensa e selecionar um motor diferente.
É tão fácil quanto configurar a indireção da Tag. Você pode aplicar isso a pop-ups ou em
qualquer lugar no Ignition.
©2019 Inductive Automation Página 155 de 397
Capítulo 10
Histórico de tags
Armazenar histórico no Ignition é poderoso e simples de usar. Existem duas
maneiras principais de armazenar o histórico: usando o Histórico de Tags ou
registrando dados com o módulo SQLBridge. Este capítulo se concentra no
Histórico de Tags.
O registro de dados é fácil de fazer com o Histórico de Tags. Uma vez que você
tenha uma conexão com o banco de dados, tudo que você faz é definir as Tags
para armazenar o histórico e o Ignition cuida do trabalho. O Ignition cria as
tabelas, registra os dados e mantém o banco de dados.
Os valores históricos de Tags passam pelo mecanismo de armazenamento e
encaminhamento antes de serem armazenados na conexão de banco de dados
associada ao provedor de histórico.
Os dados são armazenados de acordo com seu tipo de dados diretamente em uma
tabela no banco de dados SQL, juntamente com sua qualidade e um carimbo de
tempo de resolução de milissegundos. Os dados são armazenados apenas na
mudança, de acordo com o modo de valor e as configurações de banda morta em
cada Tag, evitando assim o armazenamento de dados duplicados e
desnecessários. O armazenamento das estatísticas de execução do Grupo de Tags
garante a integridade dos dados.
©2019 Inductive Automation Página 156 de 397
Histórico de Tags
Registre os Dados
Vamos registrar as Realistics Tags.
1. Selecione cada Tag na pasta Realistics, clique com o botão direito e selecione Edit
Tag.
A janela Editor de tags é exibida.
Nesta janela, você pode editar a Tag e alterar o nome, tipo de dados, opções de escala,
metadados, permissões, histórico e alarmes.
Na seção History das propriedades da Tag, defina a Propriedade de History Enabled
como true. Você verá mais propriedades aparecerem.
©2019 Inductive Automation Página 157 de 397
Histórico de Tags
3. Selecione sua conexão com o banco de dados no menu suspenso do provedor de
armazenamento.
A propriedade Modo de Amostra determina a frequência com que os valores da Tag são
armazenados no banco de dados. Usaremos a opção On Change, o que significa que o
Histórico de Tags corresponderá à taxa de execução do Grupo de Tags principal da Tag.
Nota: Geralmente em um projeto real, você deseja ver dados ao vivo em uma taxa rápida
e armazenar o histórico em uma taxa mais lenta. Para isso, você pode alterar o Modo de
Amostra para Grupo de Tags e selecionar Histórico de Grupo de Tags, ou Periódica e inserir
uma Taxa de Amostra estática. É preferível usar um Histórico de Grupo de Tags caso você
queira alterar várias Tags de uma vez, posteriormente.
©2019 Inductive Automation Página 158 de 397
Histórico de Tags
4. Clique em OK. Agora no Tag Browser, à direita de cada Tag Realistic que está
armazenando o histórico, um ícone de histórico de tags aparece informando que está
configurado.
©2019 Inductive Automation Página 159 de 397
Histórico de Tags
Se você olhar em seu banco de dados, verá todas as tabelas e dados que o Ignition criou
para você.
Vamos também registraros dados dos motores que criamos. Como criamos o motor a
partir de um UDT, só precisamos editar o UDT e não cada instância individual.
Registro de Dados Para o Motor
Vamos registrar dados para o Motor UDT.
1. Clique com o botão direito no Motor UDT e selecione Edit Tag.
2. No Editor de Tag, clique na Tag AMPS e, em Histórico, defina Permitir Histórico como
true.
3. Defina o seguinte no editor de tags e clique em Aplicar:
Provedor de Armazenamento: MSSQL
Modo de Amostra: On Change
4. Faça o mesmo para a etiqueta HOA.
©2019 Inductive Automation Página 160 de 397
Histórico de Tags
5. Clique em OK para salvar.
É isso. Agora, cada instância do motor inicia automaticamente o registro de dados.
©2019 Inductive Automation Página 161 de 397
Histórico de Tags
Armazenamento de Dados
O Ignition usa um algoritmo para pré-compactar os dados (cortando valores
desnecessários).
Enquanto os usuários avançados podem alterar a tabela de acordo com seu banco de
dados para ser mais eficiente (por exemplo, usando um mecanismo compactado), o
Ignition não realiza compactação binária nem criptografa os dados de forma alguma.
O Ignition usa o algoritmo Sliding Window para compactar dados. Há mais informações
sobre isso no manual do usuário, mas basicamente isso significa que o Ignition verificará
cada novo ponto de dados possível para ver se ele se encaixa na tendência dos últimos
pontos de dados (com base na Deadband). Se for adequado, o Ignition não armazena os
novos dados. Se o novo ponto de dados estiver fora da tendência recente, o ponto de
dados anterior será armazenado e uma nova tendência recente será iniciada.
©2019 Inductive Automation Página 162 de 397
Capítulo 11
Exibir Dados do Histórico
Agora veremos as informações que registramos com o Histórico de Tags. Para
isso iremos:
• Criar um gráfico
• Adicionar Subplots ao gráfico
• Permitir que os usuários alterem o modo gráfico (tempo real ou histórico) em
tempo de execução
• Permitir que os usuários adicionem e removam canetas em tempo de execução
©2019 Inductive Automation Página 163 de 397
Exibir Dados Históricos
Criar um Gráfico
Antes de criarmos um gráfico para dados históricos, precisamos de uma nova janela para
exibi-lo.
1. Crie uma janela chamada History duplicando sua Janela de Componentes e
renomeando-a.
2. Exclua todos os componentes da janela, exceto os componentes do cabeçalho.
3. Altere o text do rótulo do cabeçalho para History e defina uma nova imagem.
4. Adicione um link à sua janela History na tela Navigation como na janela anterior. Abra
a janela Navigation, clique com o botão direito do mouse no componente Tab Strip,
selecione o personalizador e adicione uma nova guia apontada para esta janela.
Agora podemos adicionar nosso gráfico.
1. Na guia Gharts da Paleta de componentes, arraste o componente Easy Chart.
2. Clique com o botão direito do mouse no gráfico e defina o layout como Anchored e
selecione todos os 4 lados. Desta forma, ele irá esticar quando o Cliente o fizer.
©2019 Inductive Automation Página 164 de 397
Exibir Dados Históricos
Podemos adicionar as Tags ao gráfico da mesma forma que criamos as janelas de status
e controle, ou seja, arrastando e soltando.
3. Arraste as primeiras cinco Realistics Tags do Tag Browser para o Easy Chart.
©2019 Inductive Automation Página 165 de 397
Exibir Dados Históricos
As Tags são exibidas na Janela de Histórico, mas como acabamos de começar a registrar
os dados, não aparecem muitos dados.
4. Para mostrar mais dados, vá ao Property Editor e altere a propriedade Modo Gráfico
do Easy Chart para Realtime. Isso mostrará os 5 minutos mais recentes em vez de um
intervalo de tempo.
Agora, vamos configurar o gráfico um pouco mais adicionando Subplots.
Adicionar Subplots ao Gráfico
1. Clique com o botão direito do mouse no gráfico e selecione Customizers > Easy
Chart Customizer.
©2019 Inductive Automation Página 166 de 397
Exibir Dados Históricos
A janela Easy Chart Customizer é exibida. Aqui você pode alterar as canetas, eixos,
Subplots e grupos dinâmicos.
2. Para adicionar outra Subplot, clique na guia Subplots e clique no ícone Add. Existem
dois gráficos agora e você pode atribuir um Peso Relativo para cada enredo.
3. Faça o Plot 1 três vezes maior que o Plot 2, definindo o peso relativo de Plot 1 para
um valor de 3 e Plot 2 para um valor de 1.
Em seguida, vamos tornar nossa Tag Realistic0 parte do Plot 2.
4. Vá para a guia Pens, selecione Realistic0 e clique no ícone Edit pen à direita.
5. Na janela Edit Caneta, altere o Subplot para 2 e clique em OK.
©2019 Inductive Automation Página 167 de 397
Exibir Dados Históricos
Personalize o Easy Chart
O componente Easy Chart tem muitas propriedades que alteram a forma como ele se
comporta e parece. Por exemplo, se você definir a propriedade Aplicação Automática como
verdadeiro, não precisará clicar no botão Aplicar sempre que selecionar ou desmarcar uma
caneta. O componente Easy Chart também possui muitas funções integradas, como salvar
os dados no Excel, imprimir e muito mais.
Você pode fazer alterações no componente Easy Chart em tempo de execução por meio
da associação. Por exemplo, você pode alterar o modo (entre Histórico e Tempo real) em
uma lista suspensa.
Alterar o Modo de Gráfico (tempo real ou histórico) em
Tempo de Execução
1. Arraste um componente Dropdown da guia Input da Paleta de componentes.
©2019 Inductive Automation Página 168 de 397
Exibir Dados Históricos
2. Defina o layout do componente suspenso como Anchored para que ele não se mova
sobre o Easy Chart no cliente.
3. Para definir os itens a serem selecionados, clique no ícone Dataset View à direita da
propriedade Dados.
4. Adicione duas linhas clicando no ícone Add Row.
5. Defina os dados com os seguintes valores:
1 Historical
2 Realtime
O valor é usado nos bastidores e o rótulo é exibido ao usuário em tempo de execução.
6. Clique no ícone Preview no Designer para interagir com a janela como se fosse um
cliente.
Você pode então ver as opções na lista suspensa.
©2019 Inductive Automation Página 169 de 397
Exibir Dados Históricos
Depois de selecionar uma opção, os valores são exibidos como propriedades na lista
suspensa.
7. A propriedade Valor Selecionado permite alterar o modo do Easy Chart. Coloque o
Designer de volta no modo Design e selecione o Easy Chart.
8. No Property Editor, clique no ícone de vinculação à direita da propriedade Modo de
Gráfico.
9. Selecione o tipo de vinculação de Propriedade.
10. Selecione a propriedade Dropdown -> Selected Value e clique em OK.
©2019 Inductive Automation Página 170 de 397
Exibir Dados Históricos
Agora, em tempo de execução, o usuário pode alterar o modo do gráfico em tempo real.
Usando uma Tag Browse Tree com o Easy Chart
O componente Tag Browse Tree permite ao usuário visualizar e interagir com os Tags do
Ignition de um Cliente. Por exemplo, o usuário pode selecionar e arrastar Tags Históricas
da Tag Browse Tree para o Easy Chart para exibir o histórico de Tags.
Adicionar um Componente de Tag Browse Tree
1. Na Paleta de Componentes, arraste o componente Tag Browse Tree para o lado
esquerdo da janela.
2. Defina o Layout neste componente como Ancorado e selecione apenas superior,
inferior e direito.
Como estamos usando a Tag Browse Tree em combinação com o Easy Chart, queremos
apenas mostrar as Tags que foram historiadas. Uma opção seria definir o Tag Tree Mode
para Historical Tag Tree,que usaria nossos Provedores de Tags Históricas para conduzir
a árvore. No entanto, temos uma maneira diferente em mente.
3. Para filtrar as Tags em tempo real, desmarque Include Realtime Tags no Property
Editor da Tag Browse Tree.
©2019 Inductive Automation Página 171 de 397
Exibir Dados Históricos
4. No Tag Browser, encontre a pasta Realistic dentro da pasta GenSim. Em seguida,
clique com o botão direito do mouse na pasta e selecione Copy Tag Path.
©2019 Inductive Automation Página 172 de 397
Exibir Dados Históricos
5. Cole este caminho de Tag na propriedade Root Node Path no componente árvore de
navegação de tag.
Isso filtra o componente para exibir apenas as Tags e subpastas dentro da pasta
Realistic.
©2019 Inductive Automation Página 173 de 397
Exibir Dados Históricos
As Tags dentro da pasta Realistic agora são exibidas e o ícone Histórico de Tags ao lado
das Tags mostra que são Tags Históricas.
6. Configure o Designer para o modo Preview e, em seguida, selecione e arraste as
Realistics Tags adicionais (5-9) da Tag Browse Tree para o Easy Chart.
As tags são adicionadas como canetas e os dados históricos são exibidos no Easy Chart.
©2019 Inductive Automation Página 174 de 397
Exibir Dados Históricos
Criando Tabelas
Além da exibição gráfica dos dados do histórico, também podemos mostrar os dados
registrados em tabelas.
Exibir Dados Históricos em Formato Tabular
1. Arraste o componente Table para a parte inferior da janela do Histórico.
2. Defina o Layout como Anchored e selecione apenas os botões esquerdo, direito e
inferior.
©2019 Inductive Automation Página 175 de 397
Exibir Dados Históricos
A tabela exibe informações por meio da propriedade Data Dataset. Uma propriedade de
conjunto de dados pode ter várias colunas e linhas de dados. Ao vincular a uma
propriedade de conjunto de dados, o Ignition fornece três tipos extras de vinculação:
• Histórico de tags
• Atualização de Células
• Funções
O tipo de vinculação do histórico de tags permite trazer de volta os dados do histórico
para qualquer componente de várias maneiras.
3. Vincule a propriedade Data usando o tipo de vinculação Histórico de Tags.
4. Na caixa Available Historical Tags, navegue até a pasta com as Tags que você está
registrando historicamente.
©2019 Inductive Automation Página 176 de 397
Exibir Dados Históricos
5. Selecione várias das Realistics Tags na caixa Available Historical Tags e arraste-
as para a caixa Selected Historical Tags à direita.
Isso permite que o Ignition saiba de quais Tags você deseja consultar.
©2019 Inductive Automation Página 177 de 397
Exibir Dados Históricos
6. Na janela Vinculação de Propriedade, defina as seguintes opções:
Date Range: Realtime
Most Recent: 30 sec (para trazer de volta os 30 segundos mais recentes de dados para
as Realistics Tags)
Aggregation Mode: Time-weighted Average
Return Format: Wide (o valor padrão)
Sample Size: Fixed - 15
Polling Mode: Off (para que seja executado apenas uma vez)
O intervalo de datas, o modo de agregação, o tamanho da amostra, o formato de
retorno e as opções de pesquisa permitem especificar como você deseja recuperar o
histórico das tags selecionadas. Segue uma descrição dessas configurações e suas
opções.
©2019 Inductive Automation Página 178 de 397
Exibir Dados Históricos
7. Clique em OK.
Agora você pode ver os dados brutos voltando para a tabela.
©2019 Inductive Automation Página 179 de 397
Exibir Dados Históricos
Configurações na Página de vinculação de Propriedade
Date Rage - O intervalo de datas permite que você escolha uma consulta histórica ou em
tempo real.
• As consultas históricas usam um intervalo de datas que deve ser vinculado a outros
componentes na tela, normalmente um intervalo de datas ou um par de componentes de
calendário.
• As consultas em tempo real sempre exibem um intervalo que termina com a hora atual,
portanto, tudo o que você especificou é uma duração, por exemplo, 30 segundos, que são
os últimos 30 segundos até a hora atual.
Aggregation Mode - você usa o modo de agregação quando os dados são mais densos
do que o solicitado. Isso acontece ao usar tamanhos de retorno fixos ou de intervalo, pois
geralmente há vários valores brutos para o intervalo de janela definido. Outra operação
comum é definir o tamanho do retorno como 1 para usar essas funções agregadas para
fins de cálculo.
• Min/Max retorna duas entradas por intervalo de tempo, as entradas min e max.
• Time-weighted Average retorna o valor médio ponderado no tempo de todas as
amostras nessa fatia de tempo.
• Closest Value retorna o valor real mais recente no final da janela.
• Basic Average retorna a média matemática simples ((V1+ V2+...+ Vn) /n) dos valores.
Return Format - O Formato de Retorno permite escolher o formato que os dados do
histórico de tags retornam em um conjunto de dados.
• Wide retorna as colunas do dataset na seguinte ordem: timestamp é a primeira coluna
e cada coluna subsequente é o nome da Tag. O formato Wide é compatível com os gráficos.
• Tall retorna as colunas do conjunto de dados na seguinte ordem: a primeira coluna é o
caminho para a Tag, seguida por uma coluna para valor, depois qualidade e, finalmente,
carimbo de data/hora. O formato Tall não é compatível com os gráficos.
Sample Size - O tamanho da amostra determina como os dados subjacentes são
agregados e/ou interpolados.
• Natural calcula um tamanho de retorno com base na taxa dos grupos de Tags históricas
de registro. Por exemplo, se você consultar 1 hora de dados para um log de classe de
varredura a cada minuto, o tamanho natural do retorno será 60.
©2019 Inductive Automation Página 180 de 397
Exibir Dados Históricos
• On Change significa que você receberá uma entrada sempre que qualquer uma das
Tags em consideração for alterada.
• Fixed especifica o número de linhas no conjunto de dados resultante.
• Interval permite definir um tamanho de janela em vez de definir um tamanho de retorno
fixo. Por exemplo, se você quiser trazer de volta um ponto de dados a cada 15 minutos,
poderá usar o tamanho da amostra do intervalo.
Polling Options - A pesquisa tem três opções de modo de binding.
• Off executa uma vez quando a janela é aberta e só executa novamente se for alterada.
O exemplo típico de uma vinculação que pode ser alterada é uma vinculação de consulta
SQL em que ela usa a notação de chave ({}) para incluir informações dinâmicas dentro
da consulta. Quando essas informações dinâmicas alteram a consulta, ela é executada
novamente.
• Relative é executada em uma taxa regular que é baseada em um delta da taxa de
pesquisa básica do projeto. Isso geralmente é uma boa ideia para que você possa acelerar
ou desacelerar o sistema de polling de um cliente Integer em um só lugar.
• Absolute é executada em uma taxa absoluta que você especifica em vez de uma
baseada na taxa relativa.
©2019 Inductive Automation Página 181 de 397
Capítulo 12
Transaction Groups
Transaction Groups é o coração do módulo Ignition SQL Bridge. Transaction
Groups são unidades de execução que executam uma variedade de ações, como
armazenar dados históricos, sincronizar valores de banco de dados com itens OPC
ou carregar valores de receita. Uma ampla variedade de tipos de grupos, tipos de
itens e opções significa que os Transaction Groups podem ser configurados para
realizar muitos tipos diferentes de tarefas.
©2019 Inductive Automation Página 182 de 397Transaction Groups
O Ciclo de Execução da Transação
Todos os Transaction Groups seguem um ciclo de execução semelhante. A avaliação básica
pode ser diferente, mas o ciclo geral é o mesmo. As ações principais estão em negrito,
mas os ciclos de execução realizam as seguintes etapas:
1. O timer é executado, o grupo entra em execução.
2. Está pausado? Quebre a execução.
3. O cluster é mestre? Se não, interrompa a execução.
Os Transaction Groups são executados apenas no mestre.
4. Avalie os itens "run always": itens OPC, referências de tags e itens de expressão
configurados para ignorar o acionador.
5. Avalie o trigger. Se houver um trigger definido, mas não estiver ativo, interrompa a
execução.
6. Avaliar itens "acionados": Itens de expressão não configurados para ignorar o
acionador.
7. Se aplicável, leia os valores do banco de dados.
8. Faça uma comparação entre os itens e seus destinos.
9. Efetuar qualquer escrita em outras Tags ou Banco de Dados que resultem da execução.
10. Reportar alarmes.
11. Reconheça o trigger, se aplicável.
12. Escreva o valor do handshake, se aplicável.
Tipos de Transaction Groups
Existem quatro tipos de Transaction Groups que você pode usar em seus projetos. Cada
tipo oferece uma funcionalidade diferente, são as seguintes:
• Histórico;
• Padrão;
• Bloquear dados;
• Procedimento armazenado.
©2019 Inductive Automation Página 183 de 397
Transaction Groups
Grupo Histórico
O grupo histórico facilita o registro rápido de dados históricos em um banco de dados SQL.
O grupo histórico insere registros de dados em um banco de dados SQL mapeando itens
para colunas. Com suporte total para acionamento, itens de expressão, medidores de
horas e eventos e muito mais, você pode configurar transações históricas complexas.
Ao contrário do grupo padrão, o grupo histórico não pode atualizar linhas, apenas inserir.
Além disso, ele não pode escrever de volta para itens, exceto para redefinições de gatilho
e handshakes.
Grupo Padrão
O grupo padrão é chamado assim porque é um grupo flexível e de uso geral que pode ser
adaptado a diversas situações. O template de dados é baseado em linhas, com
mapeamento de itens para colunas e os dados correspondentes a uma linha específica de
uma tabela.
O grupo padrão contém itens que podem ser mapeados para o banco de dados ou usados
internamente para recursos como acionamento ou handshakes. Os itens mapeados para
o banco de dados têm como destino uma coluna específica de uma única linha específica,
escolhida de acordo com as configurações do grupo. Os itens podem ser mapeados de
forma unidirecional ou bidirecional em que o valor do banco de dados e o item serão
sincronizados.
O grupo também pode inserir novas linhas em vez de atualizar uma linha específica. Desta
forma, os dados podem ser inseridos para fins históricos com base em um temporizador,
com um gatilho opcional.
Grupo de Dados do Bloco
O grupo de dados do bloco é assim chamado porque grava "blocos" de dados em uma
tabela, consistindo em várias linhas e colunas.
Um grupo de dados de bloco contém um ou mais itens de bloco. Cada item de bloco é
mapeado para uma coluna na tabela do grupo. Em seguida, define qualquer número de
valores (itens OPC ou Tag) que serão escritos verticalmente como linhas sob aquela
coluna.
Os grupos de blocos são muito eficientes e podem ser usados para armazenar grandes
quantidades de dados no banco de dados. Por exemplo, 100 colunas com 100 linhas cada,
ou seja, 100.000 pontos de dados que geralmente levam apenas algumas centenas de
milissegundos para serem gravados, dependendo do banco de dados.
©2019 Inductive Automation Página 184 de 397
Transaction Groups
Assim como o grupo padrão, o grupo de blocos pode inserir um novo bloco ou atualizar o
primeiro, o último ou um bloco personalizado. Além disso, o grupo pode ser definido para
inserir apenas as linhas que foram alteradas no bloco.
Grupo de Procedimentos Armazenados
O grupo de procedimentos armazenados é semelhante aos outros grupos em termos de
execução, acionamento e configuração de itens. A principal diferença é que,
diferentemente dos outros tipos de grupo, o destino não é uma tabela de banco de dados,
mas sim um procedimento armazenado.
Os itens do grupo podem ser mapeados para parâmetros de entrada ou saída do
procedimento. Eles também podem ser vinculados a parâmetros de saída, caso em que o
valor retornado do procedimento será gravado no item. Os itens podem ser vinculados a
uma entrada e uma saída ao mesmo tempo.
Configurações Comuns
A seguir estão as configurações comuns em Transaction Groups:
• Update Rate - É a frequência com que o grupo é avaliado. Por vários motivos, o grupo
pode não ser executado durante a avaliação, sendo o motivo mais comum o trigger.
• Data Source - É a conexão de dados a ser usada para o grupo. Pode ser "Padrão", que
usará a conexão padrão para o projeto.
• Update Mode - Para grupos que o suportam, define o padrão de como os dados se
movem em relação a seus destinos.
• Store Timestamp - Armazena um carimbo de data/hora junto com os dados sempre
que o grupo for executado.
• Store Quality Code - Armazena uma qualidade agregada para o grupo junto com os
dados regulares. A qualidade agregada é um bit-wise das qualidades dos itens no grupo.
Agrupar Itens
Os itens são os elementos principais de um grupo. Quando os itens são executados, os
valores são então usados pelo grupo (para fins lógicos), por outros itens e para gravar no
banco de dados.
Os itens podem ser gravados, do banco de dados ou de outros itens. A seguir estão os
tipos de itens de grupo:
©2019 Inductive Automation Página 185 de 397
Transaction Groups
• Item OPC
• Item de Expressão (Run-Always)
• Item de Expressão (On-Trigger)
• Referência de Tag
Item OPC
Um item OPC, se inscreve diretamente em um servidor OPC à taxa do grupo. Executado
pelo grupo, portanto os alarmes são avaliados quando o grupo é executado. Esses itens
são executados mesmo quando o trigger não está ativo.
Item de Expressão (Run-Always)
Itens de expressão Run-Always são muito parecidos com uma Tag de expressão, eles
podem ser um valor estático, uma expressão ou uma consulta de banco de dados. Os itens
de expressão Run-Always são avaliados em cada intervalo de grupo antes que o estado
do trigger seja avaliado.
Item de Expressão (On-Trigger)
Os itens de expressão On-Trigger são os mesmos que os itens de expressão Run-Always,
exceto que eles são executados somente após o trigger ter sido avaliado e estar ativo.
Referência da Tag
Esta é uma referência a uma Tag. Permite que uma Tag seja usada em um grupo como
qualquer outro tipo de item, exceto que a Tag é avaliada pelo seu Grupo de Tags e não
pelo grupo.
É fácil confundir a definição e a finalidade de Tags e itens OPC em Transaction Groups,
embora tenham benefícios distintos.
Tags podem ser referenciadas dentro de grupos, porém é fundamental lembrar que elas
são executadas pelo Ignition Gateway, de acordo com suas classes de scan e independente
do grupo. Adicionar uma Tag em um grupo é como criar um atalho para essa Tag.
Triggers
As configurações do trigger determinam quando um grupo será realmente executado. Eles
são examinados cada vez que o grupo avalia de acordo com a taxa de atualização do
grupo. Se passarem, o grupo correrá e realizará sua ação.
©2019 Inductive Automation Página 186 de 397
Transaction Groups
As configurações do trigger são as mesmas para todos os tipos de grupo. Eles estão
localizados no lado direito da área de trabalho do Grupo de Transações, na segunda guia,
rotulada Trigger.
Existem dois tipos de triggers:
• Executa o grupo apenas na mudança - Async Trigger
• Executa o grupo em um item específico do grupo
Handshake
Os handshakes do grupo também são definidosna guia Trigger. Você pode especificar um
handshake de sucesso e falha.
O handshake de sucesso gravará o valor especificado no item fornecido quando o grupo
tiver concluído todas as outras execuções acionadas sem erro.
O handshake de falha, por outro lado, será gravado quando a execução do grupo for
interrompida devido a um erro, como um erro de gravação no banco de dados ou em um
item.
Criando um Grupo Histórico Básico
O grupo histórico facilita o registro rápido de dados históricos em um banco de dados
SQL.
Criar um Grupo Histórico
Vamos criar um grupo histórico que registra algumas Tags no banco de dados a cada 10
segundos.
1. No Designer, no Project Browser, selecione o item Transaction Groups.
©2019 Inductive Automation Página 187 de 397
Transaction Groups
A área de trabalho é alterada para a visualização Transaction Groups.
2. No Project Browser, clique com o botão direito do mouse no item Transaction Groups
e selecione New Transaction Group > New Historical Group. Um novo grupo é
adicionado.
3. Nomeie o grupo como Basic History.
Agora precisamos arrastar as Tags que queremos registrar.
4. Arraste todas as Tags de Rampa do Tag Browser para a tabela OPC Básico/Grupo de
Itens.
©2019 Inductive Automation Página 188 de 397
Transaction Groups
Você notará que cada Tag é mapeado automaticamente para a tabela do banco de dados
na coluna Nome do destino. Assim, quando o grupo insere um novo registro, o Ignition
sabe onde colocar os valores.
Em seguida, precisamos configurar a taxa de grupo e em qual tabela de banco de dados
efetuar login.
5. Na guia Ação à direita, defina o seguinte:
Execution Scheduling: Timer e taxa de grupo de 10 segundos(s). Você pode executar o
grupo a partir de um temporizador ou de um agendamento.
Data source:
Table name: basic_history (O Ignition cria automaticamente a tabela se ela não
existir.)
Store timestamp to: marque a caixa
©2019 Inductive Automation Página 189 de 397
Transaction Groups
Delete records older than: marque a caixa e defina 90 dias.
Como os dados estão sendo registrados em uma única tabela, você não deseja que a
tabela cresça para sempre, portanto, marque a caixa para excluir registros anteriores a
um período de tempo.
Quase pronto. Precisamos habilitar o grupo e salvar o Designer.
6. Clique no botão Enabled acima da tabela Basic OPC/Group Items e salve o
projeto no Designer.
©2019 Inductive Automation Página 190 de 397
Transaction Groups
Você notará que o grupo terá uma seta verde no Project Browser informando que o
grupo está em execução.
Vamos olhar para o banco de dados para ver os dados.
7. Clique no ícone Database à direita da tabela na guia Action.
O Database Query Browser é exibido mostrando os dados registrados para distante.
8. Clique no botão Auto Refresh para ver os novos dados chegarem a cada 10
segundos.
©2019 Inductive Automation Página 191 de 397
Transaction Groups
Criando um Grupo de Receitas
Você pode usar Transaction Groups para registrar dados, bem como para carregar
receitas no PLC.
Vamos criar um exemplo completo de um sistema de gerenciamento de receitas.
Armazenamos todas as nossas receitas no banco de dados e criamos um grupo de
transações para carregar uma receita no PLC.
Para criar este sistema de gerenciamento de receitas, realizamos os seguintes passos:
• Criar uma tabela de banco de dados de todas as receitas.
• Criar algumas Tags para escrever o valor da receita.
• Criar um Grupo de Transações padrão para carregar os valores da receita no PLC.
• Configurar o grupo para gravar em Tags com base no ID da receita.
Criar Uma Tabela de Receitas no Banco de Dados
Primeiro, precisamos criar uma tabela de banco de dados de todas as receitas. Cada
receita tem um id exclusivo, um nome e dois pontos de ajuste (sp1, sp2). Como as
receitas são armazenadas no banco de dados, você pode ter quantas receitas desejar.
1. Antes de começarmos, verifique se o modo de comunicação do designer está definido
como leitura/gravação.
©2019 Inductive Automation Página 192 de 397
Transaction Groups
2. Em seguida, abra o menu Ferramentas na parte superior do Designer e selecione
Navegador de Consulta de Banco de Dados para abri-lo.
3. Na entrada da consulta no Navegador de Consulta de Banco de Dados, insira a
seguinte consulta e clique em Execute:
CREATE TABLE recipes (
id INT PRIMARY KEY,
recipe_name VARCHAR(50),
sp1 FLOAT,
sp2 FLOAT
)
Isso criará a tabela que abrigará nossa lista de receitas e pontos de ajuste.
©2019 Inductive Automation Página 193 de 397
Transaction Groups
4. Agora que nossa tabela foi criada, podemos adicionar registros à tabela. Cada linha em
nossa tabela corresponde a uma única receita. Insira a seguinte consulta no Navegador
de Consulta de Banco de Dados e clique em Executar:
INSERT INTO recipes (id, recipe_name, sp1, sp2)
VALUES (1, 'Recipe 1', 10, 0)
Sinta-se à vontade para usar quaisquer valores para os campos recipe_name, sp1 e sp2
que desejar. Depois de executar a consulta, você pode clicar duas vezes na tabela de
receitas no lado direito do Navegador de Consulta de Banco de Dados e clicar em Executar
para visualizar a tabela.
5. Agora que temos uma linha na tabela, podemos usar alguns recursos especiais do
Navegador de Consulta de Banco de Dados para preencher a tabela com mais registros.
Na parte inferior do Navegador de Consulta de Banco de Dados, clique no botão Edit.
©2019 Inductive Automation Página 194 de 397
Transaction Groups
6. Após clicar no botão Edit, clique com o botão direito do mouse na linha existente na
tabela e clique em Adicionar Linha. Faça isso algumas vezes, para adicionar 4-6 linhas à
tabela.
7. Depois que as linhas estiverem configuradas, você pode clicar duas vezes nas células
da tabela para alterar o valor dessa célula. Configure os valores na coluna id para serem
números sequenciais começando em 1 e insira qualquer nome de receita e pontos de
ajuste que você desejar.
©2019 Inductive Automation Página 195 de 397
Transaction Groups
8. Quando terminar, clique no botão Apply na parte inferior do Database Query Browser.
Isso confirmará as alterações que você fez na tabela.
Crie Algumas Tags Para Escrever o Valor da Receita
Em seguida, precisamos de algumas Tags para gravar esses valores de receita.
1. NoDatabase Query Browser, expanda a pasta Tags.
2. Clique com o botão direito do mouse na pasta de Tags, crie uma nova pasta e chame-
a de “Receitas”.
3. Abra o navegador OPC e navegue até a pasta Writeable dentro do dispositivo GenSim.
4. Arraste os itens OPC WriteableFloat1, WriteableFloat2, WriteableInteger1 e
WriteableString1 para a pasta Recipe no Tag Browser, para criar Tags correspondentes
para cada item.
©2019 Inductive Automation Página 196 de 397
Transaction Groups
5. Renomeie a Tag WriteableString1 para Nome da Receita.
6. Renomeie a Tag WriteableInteger1 para ID da Receita.
7. Renomeie a Tag WriteableFloat1 para SP1.
8. Renomeie a Tag WriteableFloat2 para SP2.
©2019 Inductive Automation Página 197 de 397
Transaction Groups
Criar um Transaction Group Padrão para Atualizar Tags
Agora que temos nossas Tags, a melhor maneira de carregar os valores da receita é com
um Standard Transaction Group.
1. No Designer, no Project Browser, selecione o item Transaction Groups. Seu
Designer mudará para o espaço de trabalho Transaction Groups.
2. Clique com o botão direito do mouse no item Transaction Groups e selecione New
Transaction Group > NewStandard Group
©2019 Inductive Automation Página 198 de 397
Transaction Groups
3. Dê ao grupo o nome de Receita. E clique em Criar Grupo.
4. A partir do Tag Browser no lado esquerdo, arraste todas as quatro Tags de receita
para a tabela OPC Básico/Grupo de Itens do grupo.
Estes são os itens com os quais o grupo precisa trabalhar.
Em seguida, precisamos configurar o mapeamento entre o banco de dados e os itens.
©2019 Inductive Automation Página 199 de 397
Transaction Groups
5. Vá para a tabela OPC Básico/Grupo de Itens e selecione o Target Name para cada
item. Clique uma vez no nome do destino para uma lista suspensa. Defina o seguinte:
Recipe ID: Read only
Recipe Name: Recipe_name
SP1: SP1
SP2: SP2
Observe que o item ID da Receita está definido como somente leitura, pois só
precisamos dele como trigger e para a cláusula where.
6. Na guia Action no lado direito da área de trabalho, defina o seguinte:
Update rate: 1 sec
Update mode: DB to OPC (muito importante!)
Data source:
Table name: recipes
Automatically create table: desmarque a caixa
Use custom index column: marque a caixa e insira id
Store timestamp to: desmarque a caixa
©2019 Inductive Automation Página 200 de 397
Transaction Groups
Table action: update/select e key/value pairs
Column: id
Value: ID da receita (use as listas suspensas para preencher os campos)
©2019 Inductive Automation Página 201 de 397
Transaction Groups
Aqui o grupo irá rodar a cada 1 segundo pegando os valores da tabela de receitas onde o
id é igual a Tag da receita atual para anotá-los nas Tags. Neste momento, o grupo é
executado a cada 1 segundo. No entanto, queremos que o grupo seja executado apenas
quando a Tag de receita atual for alterada. Para isso precisamos configurar a aba Trigger.
7. Vá para a guia Trigger e use os seguintes parâmetros:
Execute this group on a trigger: marque a caixa
Trigger on item: Recipe ID
Only Execute once while trigger is active: marque a caixa
Reset trigger after execution: desmarque a caixa
TRigger Conditions: Active on value change
©2019 Inductive Automation Página 202 de 397
Transaction Groups
8. Por fim, clique no botão Enable acima das tabelas e salve o projeto pressionando
Ctrl-S ou selecionando File> Save no menu.
O grupo já está funcionando.
Imediatamente SP 1-2 obterá os valores da receita 1 do banco de dados.
Consulte também o Status do grupo, observe o fato dele estar em execução e o número
total de execuções.
Agora precisamos alterar o valor da Receita Atual para carregar uma nova receita.
©2019 Inductive Automation Página 203 de 397
Transaction Groups
Teste o Grupo de Receitas
Agora que o trabalho básico está pronto, você pode adicionar janelas a uma interface que
altera o valor da receita e executa o grupo. Por exemplo:
1. Vá para o Tag Browser, clique duas vezes no valor para Recipe ID e altere-o para 2.
Agora o grupo será executado e os valores da receita 2 serão carregados.
Nota: O Designer precisa estar no modo Read/Write para editar o valor das Tags.
2. Volte para o espaço do Vision no Designer.
3. Abra a janela Main Widows -> Empty.
4. No Navegador de guias, arraste a tag Recipe ID para a janela e selecione um campo
de texto numérico.
5. Multi-Selecione as Tags SP1 e SP2 e arraste-as para a tela como componentes do
Display de LED.
6. Arraste a Tag do Recipe Name para a janela como uma etiqueta.
7. Coloque o Designer no modo de visualização e edite o valor no campo de texto numérico
para carregar uma nova receita. Você pode escolher qualquer valor que exista na coluna
ID na tabela do banco de dados.
©2019 Inductive Automation Página 204 de 397
Capítulo 13
Alarmes
O alarme é um recurso central da plataforma Ignition. Os alarmes são condições
avaliadas em relação a um ponto de dados numérico específico. Mais comumente,
os alarmes são configurados em um item de Tag ou Grupo de Transação.
Qualquer número de alarmes pode ser anexado a um ponto de dados. Quando a
condição de alarme se torna True, o alarme é considerado "ativo". Por exemplo,
em uma Tag analógica você pode adicionar um alarme de alto nível que fica ativo
quando o valor da Tag for superior a 50,0. Você pode adicionar outro alarme na
mesma Tag para um nível alto-alto quando o valor for superior a 75,0. Em uma
Tag discreta, você pode configurar um alarme para estar ativo quando o valor for
diferente de zero. Cada alarme tem seu próprio nome, prioridade e muitas outras
configurações.
Quando a condição de alarme se torna False depois de ter sido True, diz-se que o
alarme foi "apagado". Cada alarme possui uma zona morta numérica e bandas
mortas de atraso de tempo que podem afetar quando o alarme fica ativo e
apagado, isto é para evitar oscilações frequentes de um alarme entre ativo e
apagado quando o valor está pairando próximo ao setpoint. Em algum momento,
um operador pode reconhecer um alarme, informando que viu o evento.
©2019 Inductive Automation Página 205 de 397
Alarmes
O histórico de alarmes é armazenado em qualquer diário de alarme configurado. Eles
registrarão todas as alterações de estado em cada alarme, bem como reconhecimentos,
em um banco de dados SQL externo de sua escolha.
Diários de Alarmes
Um Diário de Alarmes armazena informações históricas sobre alarmes em um banco de
dados. Ele pode armazenar dados básicos sobre alarmes ocorridos, como sua origem e
carimbo de data/hora, juntamente com dados associados ao alarme e os valores das
propriedades do alarme no momento em que o evento ocorreu. O armazenamento é usado
pelo componente e também pode ser acessado por meio de funções de script e consultas
diretas ao banco de dados.
Notificações de Alarme
A notificação de alarme é o ato de enviar uma mensagem a um grupo de pessoas quando
um alarme se torna ativo ou claro. No Ignition, esta funcionalidade é habilitada com o
Módulo de Notificação de Alarme instalado.
Propriedades do Alarme
Cada alarme que você configura tem muitas propriedades que podem ser configuradas.
Essas propriedades podem alterar o comportamento do alarme. É importante entender o
que é cada propriedade.
Nome do Alarme
Cada alarme tem seu próprio nome. Por exemplo, se a Tag estiver representando um nível,
o nome do alarme pode ser "Alto Nível".
Habilitado
Este booleano determina se o alarme será avaliado ou não. A condição de um alarme
desabilitado não é avaliada e, portanto, não gera nenhum evento de alarme.
Prioridade
Pode afetar como ele aparece em uma tabela de status de alarme ou pode afetar como
ele é escalado por meio de um pipeline. A seguir estão as prioridades, que podem ser
referenciadas por seu equivalente Integer em scripts e expressões: Diagnóstico [0], Baixa
[1], Média [2], Alta [3], Crítica [4].
©2019 Inductive Automation Página 206 de 397
Alarmes
Origem do Timestamp
Escolhe de onde o timestamp para o evento de alarme deve vir: a hora do sistema de
quando o evento foi gerado, ou o carimbo de data e hora do valor que disparou o evento.
Rótulo
Este valor de string é usado para exibir informações de alarme para os operadores.
Caminho de Exibição
Este valor de string é usado para exibir o alarme para os operadores. Se este valor estiver
em branco, o operador verá o caminho para a Tag em vez disso. Use o caractere de barra
para separar os níveis de hierarquia no caminho, por exemplo: Área
Leste/Caldeiras/Caldeira5
Modo de Confirmação
Dita como o reconhecimento funciona para o alarme.
• Unused - A confirmação não é usada para esta Tag. Qualquer alarme gerado será
automaticamente marcado como reconhecido.
• Auto - O alarmeé reconhecido automaticamente quando o alarme fica limpo.
• Manual - O alarme nunca é definido para ser reconhecido pelo sistema, está ativado ao
usuário para confirmar manualmente os alarmes.
Notas
Um local para qualquer documentação de forma livre sobre o alarme que pode ser exibido
aos operadores.
Notas de Confirmação Necessárias
Se esta configuração for True, os operadores não podem reconhecer este alarme sem
digitar algumas notas.
Prateleiras Permitidas
Se esta configuração for True, o recurso de prateleiras está disponível para este alarme.
©2019 Inductive Automation Página 207 de 397
Alarmes
Modo
Define a condição que o alarme está avaliando. Seguem as diferentes opções de modo:
• Equal - Ativo quando o valor da Tag for igual ao setpoint do alarme.
• Not Equal - Ativo quando o valor da Tag não é igual ao setpoint do alarme.
• Above Setpoint - Ativo quando o valor da Tag está acima do setpoint do alarme.
• Below Setpoint - Ativo quando o valor da Tag está abaixo do setpoint do alarme.
• Between Setpoints - Ativo quando o valor da Tag está entre o menor e maior setpoint.
Se alguma mudança for True, um evento é gerado para cada mudança de valor entre os
setpoints.
• Outside Setpoints - Ativo quando o valor da Tag está fora do menor e maior setpoint.
Se alguma mudança for True, um evento é gerado para cada mudança de valor fora dos
setpoints.
• Out of Rage - Igual aos Setpoints Externos, mas usados Tags Engineering High e
Engineering Low como os pontos de ajuste alto e baixo.
• Bad Quality - Ativo se o valor da Tag se tornar uma qualidade ruim, por exemplo, na
perda de comunicação.
• Any Change - Gera um evento de alarme toda vez que o valor da Tag for alterado.
Observe que este alarme nunca estará "ativo" porque cada alarme ativo é emparelhado
com um evento claro correspondente, instantaneamente.
• Bit State - Ativo quando um bit específico de uma Tag inteira se torna Alto. Você deve
especificar qual posição de bit usar, com zero sendo o menor bit significativo. A
propriedade On Zero é usada para inverter a lógica e alarme quando o bit está baixo.
• On Condition - Use este modo de forma livre quando desejar especificar a condição
usando uma expressão ou outra Tag. Para fazer isso, vincule a Propriedade Is Active para
uma expressão ou Tag apropriada.
©2019 Inductive Automation Página 208 de 397
Alarmes
Setpoints / Low Setpoints / High Setpoints
As propriedades do Setpoint são usadas para muitos modos de alarme para especificar a
faixa para o qual o alarme se torna ativo.
Inclusive / Low Inclusive / High Inclusive
As propriedades inclusivas correspondem a um setpoint. Se for true, o intervalo será
ativado se o valor for exatamente igual ao setpoint, não apenas acima ou abaixo.
Modo de Deadband
A seguir estão os dois modos de Deadband:
• Absolute - A configuração de banda morta é considerada um valor absoluto.
• Percent - A banda morta real é calculada como uma porcentagem da tag da unidade de
engenharia.
Deadband
O valor de Deadband é interpretado de acordo com o modo. Observe que todos os alarmes
sejam avaliados somente após a alteração do valor da Tag, o que significa que a própria
deadband da Tag é considerada a primeira.
Quando a deadband é positiva, uma condição de alarme ativa precisa ser eliminada no
setpoint(s) pela quantidade da deadband para que o alarme seja apagado. Por exemplo,
suponha que você tenha um alarme Between Setpoints com setpoint de 50 e um setpoint
alto de 70, com uma deadband de 2. O alarme fica ativo se o valor estiver entre 50 e 70,
mas só será apagado se o valor cair abaixo de 48 ou sobe acima de 72.
Active Delay
O tempo, em segundos, antes que o alarme seja considerado ativo após a condição de
alarme se tornar True. Também conhecido como "deadband de tempo de borda
ascendente".
Clear Delay
O tempo, em segundos, antes de um alarme ativo ser considerado limpo após a condição
de alarme se tornar False. Também conhecido como "deadband de tempo de borda de
queda".
©2019 Inductive Automation Página 209 de 397
Alarmes
Ack Pipeline
O nome de um pipeline de notificação de alarme para colocar este alarme quando o alarme
é reconhecido.
Active Pipeline
O nome de um pipeline de notificação de alarme para colocar este alarme quando ele
torna-se ativo. Esta é a fonte primária para enviar mensagens de alarme. Muitos alarmes
podem compartilhar um único pipeline.
Clear Pipeline
O nome de um pipeline de notificação de alarme para colocar este alarme quando ele fica
claro.
Custom Subject
Uma string que é usada como a linha de assunto de uma mensagem de notificação por
email. Se em branco, as configurações de mensagem definidas no bloco de notificação que
enviou o email é usado em seu lugar.
Custom Message
Uma string que é usada como o corpo da mensagem de notificação por e-mail deste
alarme. Se estiver em branco, as configurações de mensagem definidas no bloco de
notificação que enviou o email é usado em seu lugar.
Configure um Digital Alarm
Primeiro vamos criar um alarme onde a Tag entra em alarme quando o valor é igual a
true. Uma vez que criamos as Tags, é fácil configurar alarmes nessas Tags.
1. Vá para o Designer.
2. No Tag Browser, clique com o botão direito do mouse na Tag WriteableBoolean1 na
Writeable Folder e selecione Edit Tag.
©2019 Inductive Automation Página 210 de 397
Alarmes
3. Role para baixo até a propriedade Alarms e clique no ícone Edit para configurar um
alarme.
©2019 Inductive Automation Página 211 de 397
Alarmes
Podemos configurar um ou mais alarmes em uma determinada Tag.
4. Para adicionar um alarme, clique duas vezes no link + New Alarm... ou clique no ícone
Add à direita da lista Alarms.
Quando você clica duas vezes no novo alarme, todas as definições de configuração são
exibidas no lado direito. Cada alarme deve ter um nome e uma prioridade. A prioridade é
uma forma de classificar a importância de um alarme. O nome simplesmente descreve o
que é esse alarme.
5. Quando o alarme ocorre, queremos que o operador veja "Test Alarm" e uma gravidade
"Medium". Defina as seguintes propriedades de alarme:
Nome: Test Alarm
Prioridade: Medium
Para selecionar a condição para quando o alarme estiver ativado, digite o seguinte:
Modo: Equal
Setpoint: 1
©2019 Inductive Automation Página 212 de 397
Alarmes
7. Deixe o restante das configurações em paz por enquanto e clique em Commit para
salvar as alterações.
8. Clique em OK para salvar a Tag.
Um ícone de alarme agora é exibido à direita da Tag para que você saiba um alarme está
configurado nele.
9. Defina o valor do Tag como true e a Tag ficará em alarme.
Resumo do alarme
Vejamos agora a exibição do status atual de nossos alarmes. Já existe uma tela de alarme
criada para você pelo modelo de projeto. Ele tem um cabeçalho e um componente Alarm
Status Table que mostra todos os alarmes. No Project Browser, selecione a pasta Main
Windows e abra a janela Alarms.
©2019 Inductive Automation Página 213 de 397
Alarmes
Adicionando Vários Alarmes Simultaneamente
Antes de falarmos mais sobre a Alarm Status Table, vamos adicionar mais alguns
alarmes para torná-la interessante.
Você pode selecionar várias Tags e adicionar o mesmo alarme a todos eles de uma vez.
Permite adicionar alarmes a todos as Realistics Tags.
1. No Tag Browser, expanda para a pasta GenSim/Realistic.
2. Selecione com a tecla Shift pressionada todas as Realistics Tags. Clique com o botão
direito em um deles e selecione Edit Tags.
3. Clique no ícone Edit da propriedade Alarms.
4. Clique no ícone + para adicionar um novo estado de alarme e preencha as seguintes
propriedades:
Nome: High Alarm
Priority: CriticalModo: Above Setpoint
Setpoint: 35
5. Clique em Commit no canto inferior esquerdo e clique em OK.
Resumos de Alarmes
A Alarm Status Table é um componente integrado que é altamente personalizável e
existe para exibir as informações de alarme atuais.
©2019 Inductive Automation Página 214 de 397
Alarmes
Basta soltar um em uma janela e ele começará a mostrar os dados imediatamente. Os
operadores também podem mostrar/ocultar informações sobre o componente de status
de alarme no tempo de execução.
Um operador pode selecionar um alarme e clicar no ícone Magnifying Glass para
visualizar os detalhes do alarme.
Você pode pressionar o botão Acknowledge para reconhecer o alarme. O Current
State mudará.
©2019 Inductive Automation Página 215 de 397
Alarmes
Você pode arquivar o alarme para silenciá-lo temporariamente. Para visualizar alarmes
arquivados, clique no ícone Shelve.
Um operador pode clicar com o botão direito do mouse no cabeçalho da tabela para
adicionar/remover colunas. Você também pode redimensionar as colunas e mudar a
ordem das colunas.
Por fim, uma vez que você tenha configurado um alarme e a Tag esteja armazenada no
histórico, você pode clicar no ícone Graph na Alarm Status Table para visualizar uma
tendência rápida.
©2019 Inductive Automation Página 216 de 397
Alarmes
Alterar o comportamento da Alarm Status Table
Também é possível alterar o comportamento da tabela. Por exemplo, todos os botões
expostos na tabela podem ser mostrados ou ocultados, com base nas propriedades
expostas da Alarm Status Table. São propriedades booleanas que podem ser ativadas ou
desativadas estaticamente, ou vinculadas à saída de Tags ou expressões. Por exemplo, é
fácil mostrar ou ocultar o botão Acknowledge com base no qual o usuário está
conectado.
Além disso, é possível alterar a aparência dos estados de alarme na tabela. Clique com o
botão direito do mouse na Alarm Status Table, localize Customizers e selecione Alarm
Row Styles.
©2019 Inductive Automation Página 217 de 397
Alarmes
Essa interface nos permite configurar uma lista de expressões – a primeira expressão que
retornar True para um determinado alarme decidirá como esse alarme será estilizado na
tabela.
Por exemplo, na configuração padrão, um alarme com prioridade de diagnóstico será
configurado para ter um fundo cinza escuro, enquanto todos os outros alarmes irão para
a segunda expressão, e assim por diante, até que suas propriedades permitam que
correspondam a uma das condições . É possível configurar condições personalizadas, bem
como alterar os estilos de linha em diferentes condições.
Mostrar ou Ocultar Alarmes
Existe um conjunto de propriedades para filtragem de alarmes. Usando as propriedades
Source Filter e Display Path Filter, você pode filtrar alarmes apagados, filtrar alarmes em
uma determinada pasta de Tags e filtrar alarmes que correspondam a um determinado
caminho de exibição. Este campo aceita curingas (* e ?) para ajudar a combinar grupos
de alarmes.
©2019 Inductive Automation Página 218 de 397
Alarmes
Por exemplo, se a Alarm Status Table estiver exibindo todos os nossos alarmes existentes
e você quiser exibir apenas o alarme booleano, poderá adicionar *Boolean* à propriedade
Display Path Filter da seguinte maneira:
©2019 Inductive Automation Página 219 de 397
Alarmes
E agora apenas o alarme WriteableBoolean é mostrado na Alarm Status Table.
Filtragem de Alarme Dinâmico
Você também pode permitir que seus usuários definam os filtros de alarme em tempo real,
adicionando um componente e uma simple binding.
1. Arraste um componente Text Field para a janela. Defina o nome do campo Text para
Search.
2. O layout da Alarm Status Table é definido como anchored em todos os 4 lados. Defina
o layout do seu campo de texto para anchored e ajuste-o para que nunca se
sobreponham.
3. Selecione a Alarm Status Table e clique no ícone de binding para a propriedade
Display Path Filter.
4. Selecione o tipo Expression binding e insira o seguinte:
"*" + {Root Container.Search.text} + "*"
©2019 Inductive Automation Página 220 de 397
Alarmes
5. Clique em OK.
Agora você pode colocar o designer no modo de visualização para testá-lo.
Alarmes em UDTs
Os Tipos Definidos por Usuários no Ignition são ótimos porque você pode especificar a
configuração do seu tipo em um único local. Cada instância da Tag herdará
automaticamente a configuração. Isso é ótimo ao configurar alarmes porque os alarmes
normalmente precisam ser configurados de uma determinada maneira. O desenvolvedor
pode configurar o alarme no UDT e cada instância terá automaticamente os alarmes.
Adicionar um Alarme a um UDT
Vamos editar o UDT do motor que criamos anteriormente e adicionar um alarme ao Tag
AMPS. Nosso alarme em nosso Tag AMPS irá olhar para o Tag AMPS High Setpoint que já
configuramos, e o alarme será acionado quando o valor de Amps exceder o setpoint
configurado.
1. Clique duas vezes em Motor UDT na pasta Data Types para editar o UDT.
©2019 Inductive Automation Página 221 de 397
Alarmes
2. Clique na etiqueta AMPS.
3. Role para baixo até a propriedade Alarmes e clique no ícone Edit para configurar um
alarme.
4. Adicione um alarme e configure as seguintes propriedades:
Nome: AMPS High Alarm
Prioridade: High
©2019 Inductive Automation Página 222 de 397
Alarmes
Agora há um problema aqui. O problema é que o nome do alarme é AMPS High Alarm.
Isso significa que cada instância do UDT terá um alarme com o mesmo nome e não
teremos como diferenciá-los.
Como a configuração está no UDT, precisamos garantir que alteram dinamicamente
qualquer propriedade que deva ser diferente para cada instância. Podemos usar os
parâmetros UDT para essa finalidade.
Em vez de definir o caminho de exibição, podemos vincular a propriedade a uma expressão
envolvendo o parâmetro UDT InstanceName e o nome da propriedade do alarme.
Observe que você pode vincular a propriedade a um parâmetro Tag, expressão e UDT.
Você também pode usar parâmetros UDT na expressão. Isso só está disponível em UDTs.
5. Associe o caminho de exibição à seguinte expressão (observe os espaços):
{InstanceName} + " " + {name}
6. Clique no link Voltar no canto superior esquerdo para salvar as alterações em sua
expressão.
7. Por último, queremos definir o modo de alarme. Altere a propriedade Mode para Above
Setpoint.
8. Podemos definir o ponto de ajuste dinamicamente com uma ligação. Clique no ícone de
ligação para a propriedade Setpoint.
©2019 Inductive Automation Página 223 de 397
Alarmes
9. Selecione o botão Tag para nosso tipo de binding.
10. Você notará que existem duas abas disponíveis, UDT e Tags. SelecioneUDT para ver
a lista de itens selecionáveis no UDT.
11. Selecione a Tag HighSP e clique no link Back logo acima. Isso significa que para cada
instância do UDT, o alarme será vinculado ao tag HighSP correspondente naquela
instância.
12. Clique em Commit no canto inferior direito para salvar o alarme.
13. Clique em OK para salvar a nova configuração de alarme no UDT.
Dê uma olhada no Tag Browser e cada instância de um motor terá automaticamente o
alarme configurado no Tag AMPS.
Dados associados
Às vezes, você pode querer ter mais dados do que apenas seus pontos de ajuste de
alarme e valores quando um alarme dispara. Os alarmes do Ignition podem transportar
quaisquer dados extras que você desejar como Associated Data. As Associated Data são
como propriedades personalizadas nos componentes do Vision; cada alarme pode ter
quantas Propriedades de Associated Data você desejar, e essas propriedades podem ser
vinculadas.©2019 Inductive Automation Página 224 de 397
Alarmes
Por exemplo, se o seu Motor Amps entrar em seu estado de alarme alto, você pode querer
saber qual era o valor HOA quando o alarme aconteceu. Em vez de ter que verificar o
histórico do Tag e esperar que o valor tenha sido registrado, você pode adicionar o valor
HOA diretamente ao alarme.
1. Clique duas vezes em Motor UDT na pasta Data Types para editar o UDT.
2. Clique na Tag AMPS.
3. Role para baixo até a propriedade Alarms e clique no ícone Edit para editar nosso
alarme.
4. Selecione Amps High Alarm.
5. No topo da lista de propriedades do alarme, clique na propriedade Add New Associated
Data na parte inferior da lista.
6. Role para baixo até a propriedade New Data e clique duas vezes nela para editar o
nome. Configure-o para HOA.
©2019 Inductive Automation Página 225 de 397
Alarmes
7. Clique no ícone de binding à direita.
8. Selecione o botão Tag e a guia UDT para selecionar um dos membros UDT.
9. Selecione a tag HOA.
10. Clique no link Back no canto superior esquerdo, clique no botão Commit e, em seguida,
no botão OK no canto inferior direito para salvar.
Agora, quaisquer novos alarmes de motor verificarão o valor de HOA quando estiverem
ativos ou limpos, e manterão os dados adicionais enquanto estiverem no sistema.
©2019 Inductive Automation Página 226 de 397
Capítulo 14
Histórico de Alarmes
Até agora, trabalhamos apenas com a Alarm Status Table, que está nos mostrando
uma lista ao vivo dos alarmes que nosso Gateway está armazenando na memória.
No entanto, esse sistema não acompanha as informações para sempre - se
quisermos manter um registro persistente dos eventos de alarme, precisaremos
configurar um Alarm Journal.
©2019 Inductive Automation Página 227 de 397
Histórico de Alarmes
Ver o Histórico de Alarmes
1. Faça login e vá para a guia Config da página da Web do Gateway.
2. Selecione Alarming > Journal no menu.
Aqui podemos criar um novo perfil para registrar alarmes no banco de dados.
3. Clique em Create New Alarm Journal Profile....
A janela New Alarm Journal Profile é exibida.
4. Defina o nome do perfil e a conexão do banco de dados da seguinte forma:
Nome: Journal
Banco de dados: MSSQL
©2019 Inductive Automation Página 228 de 397
Histórico de Alarmes
Você também pode especificar filtros e habilitar a remoção de dados para excluir
registros anteriores a um determinado período de tempo.
5. Clique em Create New Alarm Journal Profile para salvar o perfil.
Na próxima vez que o alarme ocorrer, o Ignition criará duas tabelas em nosso banco de
dados (alarm_events e alarm_event_data) e começará a registrar o histórico de alarmes.
O Ignition também possui um componente integrado que é altamente personalizável
para atender às suas necessidades, chamado Alarm Journal Table.
6. Arraste a tabela Alarm Journal da guia Alarming da Component Palette para nossa
janela Alarm Testing.
©2019 Inductive Automation Página 229 de 397
Histórico de Alarmes
Se algum alarme mudou de estado desde que o diário foi criado, imediatamente você
verá o histórico de todos os seus alarmes.
Assim como o componente Alarm Status, você pode mostrar/ocultar colunas, reorganizar
colunas e selecionar um alarme para visualizar mais informações sobre o alarme.
©2019 Inductive Automation Página 230 de 397
Histórico de Alarmes
A tabela Alarm Journal mostrará por padrão as últimas 8 horas de eventos de alarme e
será atualizada apenas quando a janela for aberta pela primeira vez. Em vez de usar esse
comportamento padrão, tornaremos o intervalo de datas selecionável pelo usuário.
7. Arraste o componente Data Rage da guia Calendar da Component Palette e coloque-
o acima da tabela de diário de alarmes.
Agora, precisamos vincular a tabela de diário de alarmes ao componente de intervalo de
datas.
8. Selecione o componente diário de alarmes e vincule a propriedade Start Date à
propriedade de data rages.
©2019 Inductive Automation Página 231 de 397
Histórico de Alarmes
9. Clique em OK para salvar a ligação.
10. Faça o mesmo para a propriedade End Data, vinculando-a à End Date
do componente Date Range.
11. Clique em OK para salvar a ligação.
Agora você pode alterar a data inicial e final para visualizar todos os eventos no período
de tempo.
Se você tiver mais de um perfil de diário adicionado ao Ignition, poderá definir o nome do
diário para o nome do perfil que deseja consultar.
Concentre-se em um alarme específico ou pesquise um
alarme
Existem dois recursos extras que a tabela de diário de alarmes oferece: foco em alarmes
e pesquisa.
O recurso de foco é muito útil. Normalmente, você está vendo o histórico de vários
alarmes. O recurso de foco permite que você se concentre em um alarme específico para
visualizar apenas o histórico desse alarme.
©2019 Inductive Automation Página 232 de 397
Histórico de Alarmes
Para usá-lo em tempo de execução, basta clicar no ícone Focus na parte inferior direita
e selecione Target Alarm Source.
Agora você verá apenas esses alarmes.
Quando terminar, basta clicar no ícone Focus novamente para remover o foco.
Além disso, o operador em tempo de execução pode procurar alarmes específicos
usando o Ícone de Filter no canto inferior direito. Quando você clica nele, uma caixa de
diálogo aparece com as opções de pesquisa.
©2019 Inductive Automation Página 233 de 397
Histórico de Alarmes
Alarms Status Table - Lançamentos Diários
Uma vez que você tenha um perfil de Alarm Journal configurado e a Tag armazenada no
histórico, você pode clicar no ícone Graph na Alarm Status Table para visualizar a
tendência com marcadores para quando o alarme se tornar ativo, apagado e
reconhecido.
©2019 Inductive Automation Página 234 de 397
Capítulo 15
Notificação de Alarme
Visão Geral da Notificação de Alarmes
A notificação de alarme é o ato de enviar uma mensagem a um grupo de pessoas
quando um alarme se torna ativo ou claro. No Ignition, esta funcionalidade é
habilitada com o Módulo de Notificação de Alarme instalado. Você também pode
adicionar os módulos de notificação de voz e SMS para formas adicionais de
notificar os usuários.
Perfis de Notificação de Alarme
Um perfil de notificação define um canal de entrega através do qual uma
mensagem de notificação de alarme pode ser enviada a um usuário. O Módulo de
Notificação de Alarme vem com perfis de notificação de e-mail unidirecionais e
bidirecionais.
O perfil de notificação de e-mail unidirecional simplesmente envia um e-mail
contendo a mensagem de notificação de alarme. O perfil de notificação de e-mail
bidirecional envia um e-mail que contém links que permitem que o usuário
reconheça o(s) alarme(s).
Módulos adicionais podem ser adicionados ao Ignition para permitir mais maneiras
de enviar mensagens de notificação de alarme. O Módulo de Notificação por
Telefone adiciona a capacidade de notificar os usuários ligando para eles no
telefone. O Módulo de Notificação por SMS adiciona a capacidade de enviar
mensagens de texto aos usuários para notificá-los sobre alarmes.
©2019 Inductive Automation Página 235 de 397
Notificação de Alarme
Horários
O sistema de notificação de alarme no Ignition usa o sistema de agendamento de usuário
integrado. As mensagens de notificação de alarme serão enviadas apenas para usuários
cuja agenda esteja ativa no momento. Quando uma mensagem de notificação de alarme
atinge um bloco de notificação em um pipeline, a listade plantão desse bloco será usada
para localizar os usuários a serem notificados. Dos usuários na lista, apenas aqueles
usuários cuja agenda está ativa no momento receberão a mensagem de notificação de
alarme.
Listas de Plantão
Uma lista de plantão é um agrupamento ordenado de usuários. Eles são usados como uma
forma de agrupar os usuários para que os alarmes possam ser enviados. Dependendo do
perfil de notificação de alarme utilizado, os usuários podem ser notificados um de cada
vez (sequencial), ou todos de uma vez (paralelo). Você pode criar e gerenciar escalas de
plantão na página de configuração do Gateway ou em um componente.
Pipelines de Notificação de Alarme
Esses pipelines definem a lógica do que deve acontecer entre um alarme se tornar ativo
(ou reconhecido ou claro) e as pessoas serem notificadas. Os pipelines são configurados
no Designer.
Notificação de Alarme - Informações do Usuário
A primeira parte do nosso sistema de notificação de alarmes em que trabalharemos são
nossos usuários. Precisamos fornecer aos usuários detalhes de contato, para que, quando
os vincularmos ao nosso esquema de notificação, o Ignition saiba como alcançá-los.
As configurações de usuário relevantes são armazenadas em perfis de autenticação no
Ignition.
Edite o perfil de autenticação do usuário no gateway
1. Faça login e vá para a guia Config da página da Web do Gateway.
2. Selecione SEcurity > Users, Roles no menu. A página User Sources é exibida.
Aqui podemos editar o perfil que vem com o Ignition, chamado default, ou adicionar um
novo perfil de autenticação. Vamos apenas usar o perfil padrão que vem com o Ignition.
3. Clique no botão manage users à direita do perfil de autenticação padrão.
Notificação de Alarme
©2019 Inductive Automation Página 236 de 397
4. Encontre o usuário administrador e clique em Edit no lado direito.
5. Clique em Add Contact na parte inferior da página, escolha um tipo de E-mail e um
valor de admin@mycompany.com.
6. Clique em Save à direita e clique em Save Changes na parte inferior da página.
©2019 Inductive Automation Página 237 de 397
Notificação de Alarme
Notificação de Alarme — Listas de Chamada
Uma lista de plantão é um agrupamento ordenado de usuários. Eles são usados como uma
forma de agrupar os usuários para que os alarmes possam ser enviados a eles.
Dependendo do perfil de notificação de alarme utilizado, os usuários podem ser notificados
um de cada vez (sequencial), ou todos de uma vez (paralelo). Você pode criar e gerenciar
escalas de plantão na página de configuração do Gateway.
Você deseja criar uma lista de plantão diferente para cada grupo de pessoas que recebe
alarmes. Normalmente os clientes criam grupos para Gerentes ou Operadores ou criam
grupos por área da planta. Não há limite para o número de listas que você pode criar.
As listas podem ser configuradas na configuração do Ignition Gateway e no tempo de
execução.
Criar Listas de Chamada no Gateway
1. Vá para a guia Config da página da Web do Gateway.
2. Selecione Alarming > On-Call Rosters no menu.
3. Clique em Create New On-Call Roster….
©2019 Inductive Automation Página 238 de 397
Notificação de Alarme
4. Defina o nome para Use Group 1.
5. Clique em Create New On-Call Roster.
Agora você precisa adicionar usuários à lista.
6. Clique no link manage à direita da lista.
©2019 Inductive Automation Página 239 de 397
Notificação de Alarme
Você pode adicionar usuários de qualquer perfil de autenticação e as listas podem ser
compostas por usuários de vários perfis.
7. Selecione o perfil default na lista suspensa.
8. Selecione o usuário admin e clique na seta para a direita para movê-lo para o On-
Call Roster. Clique em salvar.
Você notará o ícone de E-mail à direita dos usuários. Isso permite que você saiba quais
informações de contato o usuário possui.
©2019 Inductive Automation Página 240 de 397
Notificação de Alarme
Notificação de Alarme — Notificação por E-mail
Para enviar notificações por e-mail, precisamos adicionar um perfil de notificação por e-
mail ao Ignition.
Adicionar um Perfil de Notificação por E-mail
1. Na guia Config da página da Web do Gateway, selecione Alarming > Notification
no menu.
2. Para adicionar um perfil, clique no link Create New Alarm Notification Profile....
3. Escolha a opção Email Notification e clique em Next.
Você pode ter várias opções disponíveis aqui, elas dependem de quais módulos você
instalou.
©2019 Inductive Automation Página 241 de 397
Notificação de Alarme
Para enviar notificações por e-mail, você precisa especificar um servidor SMTP que o
Ignition possa usar. Você pode usar o servidor da sua empresa ou qualquer servidor SMTP
público como Gmail ou Yahoo.
Você também pode especificar um servidor de e-mail na seção Networking do Gateway.
Se fizer isso, você selecionaria Use SMTP Profile? aqui.
Dentro do perfil de notificação por email, defina as seguintes configurações:
Nome: Email
Nome do host: localhost
Bidirecional habilitado: True
Gateway (em configurações bidirecionais): localhost:8088
As configurações bidirecionais permitem que os usuários que recebem as notificações por
e-mail reconheçam o alarme da notificação. Ao usar essa funcionalidade, é importante
certificar-se de que a propriedade Gateway esteja configurada para um domínio ou
endereço IP que possa ser acessado de onde quer que as notificações de alarme estejam
sendo enviadas.
©2019 Inductive Automation Página 242 de 397
Notificação de Alarme
©2019 Inductive Automation Página 243 de 397
Notificação de Alarme
5. Clique em Create New Alarm Notification Profile para adicionar. É isso! Agora
você pode usar o perfil em pipelines de notificação.
Notificação de Alarme - Pipelines
Agora que configuramos nossas informações de contato do usuário, listas e perfis de
notificação de alarme, podemos criar um pipeline para reunir tudo.
Os pipelines são um mecanismo gráfico para criar lógica, fornecendo um mecanismo de
arrastar e soltar fácil de usar para criar cenários de notificação complexos. Usando
pipelines, é possível realizar muitas tarefas, como escalonamento de alarmes,
consolidação de notificações e despacho condicional.
Quando você cria um novo pipeline ou seleciona um para editar, o Designer alterna para
o espaço de trabalho do pipeline. A área de trabalho é efetivamente uma tela em branco,
na qual você organiza e conecta vários blocos de pipeline. Cada bloco de pipeline tem uma
entrada e potencialmente tem saídas. Usando o mouse, você pode desenhar conectores
entre a saída de um bloco e a entrada de outro. O bloco inicial é a única parte fixa da área
de trabalho. Ele representa o ponto de entrada para eventos de alarme no pipeline e é
tratado como um bloco de saída.
Várias saídas podem ser conectadas a uma única entrada. Além disso, é perfeitamente
aceitável escrever a saída de um bloco downstream de volta à entrada de um bloco
anterior, criando um loop. Claro, alguns cuidados devem ser tomados ao fazer isso, pois
pode facilmente resultar em comportamentos inesperados, como enviar muitos e-mails
para um evento!
©2019 Inductive Automation Página 244 de 397
Notificação de Alarme
Blocos de Pipeline
Os blocos são descritos individualmente na próxima seção, mas aqui está uma breve
visão geral.
• O bloco Notification fornece uma notificação por meio do perfil de notificação
selecionado.
• O bloco Delay bloqueia o evento de alarme pelo período de tempo especificado.
• O bloco Splitter encaminha um único evento simultaneamente para vários outros blocos.
• O bloco Switch avalia uma expressão não165
Personalize o Easy Chart ........................................................................................................................................................... 167
Usando uma Tag Browse Tree com o Easy Chart ........................................................................................................... 170
Criando Tabelas ............................................................................................................................................................................. 174
CAPÍTULO 12 ................................................................................................................ 181
Transaction Groups ..................................................................................................................................................... 181
O Ciclo de Execução da Transação ........................................................................................................................................ 182
Tipos de Transaction Groups................................................................................................................................................... 182
Configurações Comuns ............................................................................................................................................................... 184
Agrupar Itens .................................................................................................................................................................................. 184
Triggers ............................................................................................................................................................................................. 185
Handshake ....................................................................................................................................................................................... 186
Criando um Grupo Histórico Básico ..................................................................................................................................... 186
Criando um Grupo de Receitas ............................................................................................................................................... 191
CAPÍTULO 13 ................................................................................................................ 204
Alarmes ............................................................................................................................................................................ 204
Diários de Alarmes ....................................................................................................................................................................... 205
Notificações de Alarme ............................................................................................................................................................... 205
Propriedades do Alarme ............................................................................................................................................................ 205
Configure um Digital Alarm ...................................................................................................................................................... 209
Resumos de Alarmes ................................................................................................................................................................... 213
Alarmes em UDTs ......................................................................................................................................................................... 220
CAPÍTULO 14 ................................................................................................................ 226
Histórico de Alarmes ................................................................................................................................................... 226
Ver o Histórico de Alarmes ....................................................................................................................................................... 227
CAPÍTULO 15 ................................................................................................................ 234
Notificação de Alarme ................................................................................................................................................. 234
Visão Geral da Notificação de Alarmes ................................................................................................................................ 234
©2019 Inductive Automation Página 5 de 397
Notificação de Alarme - Informações do Usuário ........................................................................................................... 235
Notificação de Alarme — Listas de Chamada ................................................................................................................... 237
Notificação de Alarme — Notificação por E-mail ........................................................................................................... 240
Notificação de Alarme - Pipelines .......................................................................................................................................... 243
Notificação de Alarme - Pipeline de Escalação ................................................................................................................ 251
CAPÍTULO 16 ................................................................................................................ 256
Segurança ........................................................................................................................................................................ 256
Tipos de Autenticação ................................................................................................................................................................. 257
Configuração Básica de Segurança ........................................................................................................................................ 258
Segurança do Componente ....................................................................................................................................................... 263
Segurança do Gateway ................................................................................................................................................................ 269
CAPÍTULO 17 ................................................................................................................ 272
Janelas Pop-up ............................................................................................................................................................... 272
Criando uma Janela Pop-up ...................................................................................................................................................... 273
Abrindo Várias Instâncias de uma Janela Pop-up .......................................................................................................... 285
Criando um Easy Chart Indireto ............................................................................................................................................. 287
Criando um Display de Alarme Dinâmico .......................................................................................................................... 295
CAPÍTULO 18 ................................................................................................................ 298
Criação de Scripts ......................................................................................................................................................... 298
O que é Python? .............................................................................................................................................................................booleana e encaminha para uma saída com
base no resultado.
• O bloco Expression avalia uma expressão que resulta em true ou false e encaminha o
evento para essa saída.
• O bloco Set Property avalia uma expressão e define o resultado como uma propriedade
de tempo de execução no evento de alarme.
• O bloco Jump encaminha o evento de alarme para um pipeline diferente.
• O bloco Script executa uma tarefa fora do pipeline.
Propriedades do Pipeline
Os pipelines têm poucas configurações, mas são importantes. Você pode ver e modificar
as configurações no Pipeline BLock Editor ao clicar em qualquer lugar no espaço de
trabalho do pipeline que não seja um bloco.
©2019 Inductive Automation Página 245 de 397
Notificação de Alarme
• Condição de Desistência
Existem três condições possíveis: Acknowledged, Cleared, e Shelved. Eles ditam
quando os alarmes caem do pipeline. Se qualquer uma das condições selecionadas se
tornar true para um evento em um pipeline, ele "desaparecerá" totalmente, não importa
onde esteja. Nenhuma outra ação será tomada para esse evento.
• Pipeline Ativado
A configuração Enabled especifica se o pipeline tem permissão para receber eventos.
Fluxo de Eventos
Entender como os eventos fluem pelos pipelines é crucial para aproveitá-los totalmente.
Os alarmes são configurados em Tags individuais e cada alarme pode especificar um
pipeline de destino para condições ativas, limpas ou de confirmação. Quando a condição
para esse alarme é atendida, um novo evento de alarme é gerado e enviado para o ponto
de entrada do pipeline associado. O evento de alarme então se move pelos diferentes
elementos lógicos do pipeline até que finalmente atinja um ponto de extremidade do
pipeline ou até que o alarme corresponda à condição de dropout do pipeline, após a qual
ele sai do pipeline. Pode haver vários eventos de alarme em um pipeline em um
determinado momento e você pode visualizar o status atual do pipeline na tela de status
Alarm Pipelines no Ignition Gateway. É possível encaminhar eventos de um pipeline para
outro, possibilitando a criação de pipelines multifuncionais e reutilizáveis.
Cada evento de alarme progride sequencialmente pelos blocos de um pipeline. No entanto,
vários eventos de alarme podem existir em paralelo no pipeline e novos eventos podem
entrar no pipeline a qualquer momento. Algumas configurações de bloco podem resultar
na retenção de eventos de alarme, como notificação consolidada, mas um evento de
alarme não pode afetar outros eventos no pipeline. Nesse caso específico, quando vários
eventos são coletados juntos para notificação, os eventos que não forem eliminados do
pipeline após a notificação serão encaminhados individualmente para a saída do bloco.
A cada transição, e ocasionalmente também dentro da execução do bloco, as condições
de dropout serão avaliadas. Se o evento não atender mais às condições, ele sairá do
pipeline. É crucial entender como isso funciona para entender a execução do pipeline. Por
exemplo, um cenário comum é colocar um bloco Delay diretamente na frente de um bloco
Notification. Se o atraso for de 5 minutos e "Limpar" for uma das condições de desistência
do pipeline, isso significa que apenas os eventos que permanecerem ativos por mais de 5
minutos resultarão em notificações. Se reconhecer for uma das condições de dropout, isso
significaria que os operadores (ou qualquer pessoa visualizando o status do alarme) teriam
cinco minutos para reconhecê-los e só então as notificações seriam enviadas.
©2019 Inductive Automation Página 246 de 397
Notificação de Alarme
Crie um Pipeline Simples de Notificação por E-mail
1. Volte para o Ignition Designer.
Aqui você pode criar um ou mais pipelines. Vamos criar um pipeline simples para enviar
notificações por e-mail quando ocorrerem alarmes.
2. No Project Browser, clique com o botão direito do mouse na pasta Alarm Pipelines e
selecione New Alarm Pipeline.
3. Nomeie o pipeline “Basic Pipeline” e clique em Create Pipeline.
4. Arraste um bloco Notification para o pipeline.
Este bloco, na verdade, notifica uma escala de plantão por meio do perfil de notificação
quando um evento de alarme entra no bloco.
5. Arraste o pino de saída do bloco Start para IN do bloco Notification.
©2019 Inductive Automation Página 247 de 397
Notificação de Alarme
Estamos quase terminando. Agora precisamos definir qual perfil de notificação de alarme
o bloco usará e para quem enviaremos as notificações.
6. Clique no bloco Notification.
7. No Pipeline Block Editor, na guia de notificação, defina o bloco de notificação para
usar o perfil Email Notification.
Além disso, você pode definir o endereço do remetente, o assunto e a mensagem do e-
mail.
©2019 Inductive Automation Página 248 de 397
Notificação de Alarme
8. Selecione a guia Contacts e selecione o nome da lista que deseja notificar. No nosso
caso, usaremos o grupo de usuários 1. Você pode selecionar uma escalação diretamente
ou criar uma expressão que retorne um nome de escalação. Você também pode usar uma
Calculated Roster, que permite escrever um script Python para indicar quem notifica. Essa
terceira abordagem pode ser usada sem nenhuma lista de plantão configurada.
Observação: primeiro você deve salvar seu projeto no Designer para que o pipeline
funcione. Nosso pipeline básico está pronto. Quando ocorrer um alarme, o Ignition enviará
um e-mail para todos na lista do grupo de usuários 1.
©2019 Inductive Automation Página 249 de 397
Notificação de Alarme
Nosso pipeline finalizado fica assim:
No momento, esse pipeline não está sendo usado.
A última etapa é especificar quais alarmes usarão esse pipeline quando estiverem ativos.
Para isso basta editar os alarmes que já configuramos nas Tags.
9. Edite a Tag de alarme WriteableBoolean1.
10. Entre na interface de configuração de alarme para a Tag e encontre a propriedade
Active Pipeline.
11. Defina a propriedade Active Pipeline para o pipeline Basic Pipeline que acabamos de
criar.
12. Clique em OK para salvar o projeto. Agora, quando o alarme WriteableBoolean1 se
tornar ativo, irá para o bloco START do pipeline.
©2019 Inductive Automation Página 250 de 397
Notificação de Alarme
13. Como ainda não temos um servidor SMTP funcionando, usaremos um programa para
"capturar" os e-mails que o Ignition está enviando. No Windows Start Menu, localize e
abra a aplicação Papercut.
14. Com o Papercut aberto, tente ativar a Tag WriteableBoolean1. Você deverá ver um
e-mail chegando ao Papercut, completo com a mensagem configurada e o link de
confirmação.
15. Se você quiser ver o status de um pipeline, vá para a guia Status do Ignition Gateway.
Clique no link Alarm Pipelines no lado esquerdo.
16. Você verá uma lista de seus pipelines. Clique no botão Details para obter mais
informações. Se nada estiver ativo, a lista estará vazia.
©2019 Inductive Automation Página 251 de 397
Notificação de Alarme
17. Acione o alarme WriteableBoolean1 e você verá exatamente onde o alarme está no
pipeline.
Notificação de Alarme - Pipeline de Escalação
Os pipelines podem ter uma lógica bastante complexa para fazer loop e escalar alarmes
quando não estão sendo atendidos. Vamos criar um pipeline que chamará os usuários três
vezes e, se ninguém reconhecer o alarme, ele será escalado para outra lista.
Criar um pipeline de escalonamento
1. No Designer, criaremos um novo pipeline chamado Complex Pipeline.
©2019 Inductive Automation Página 252 de 397
Notificação de Alarme
2. Primeiro, precisamos introduzir um contador para registrar quantas vezes ligamos para
nossos usuários. Arraste o bloco Set Property para a janela do pipeline.Esse bloco cria uma variável com escopo apenas para esse pipeline.
3. Conecte o START ao IN do bloco Set Property.
4. No Pipeline Block Editor, defina o nome da propriedade como numCalls e inicialize o
valor da propriedade como 0.
Observe que o bloco Set Property tem uma configuração Scope. Uma configuração de local
limita o escopo da variável para a execução atual do pipeline, enquanto uma configuração
global fará com que o valor da variável persista em todos os eventos de alarme que
passam pelo pipeline.
Agora podemos notificar nossos usuários.
5. Arraste um bloco Notification para o pipeline.
6. Defina o bloco para usar o perfil de notificação por e-mail e defina a lista para o grupo
de usuários 1.
7. Conecte o OUT do bloco Set Property ao IN do bloco Notification.
©2019 Inductive Automation Página 253 de 397
Notificação de Alarme
Se ninguém reconhecer o alarme, o alarme atingirá o pino de saída do bloco de notificação.
Se nada estiver conectado ao OUT, o pipeline cairá. Não queremos que isso aconteça. Em
vez disso, gostaríamos de esperar alguns minutos para que os usuários respondam à
notificação e, em seguida, notifique-os novamente ou encaminhe o alarme.
8. Arraste um bloco Delay para o pipeline e conecte a saída do bloco Notification à entrada
do bloco Delay. Defina o valor de atraso para 300 segundos (5 minutos). Se nossos
usuários responderem ao e-mail dentro do intervalo de 5 minutos, nenhuma ação adicional
será tomada.
9. Dado que o tempo do bloco Delay já passou, queremos incrementar nosso contador e
decidir se notificamos novamente. Arraste em outro bloco Set Property e conecte o OUT
do bloco Delay ao IN do bloco Set Property.
Nota: Você pode inverter a orientação de IN e OUT clicando com o botão direito do mouse
no bloco.
10. No Pipeline Block Editor, defina o nome da propriedade como numCalls novamente.
Desta vez, defina o valor da propriedade (expressão) para o valor anterior mais um como:
{numCalls} + 1
©2019 Inductive Automation Página 254 de 397
Notificação de Alarme
Agora precisamos verificar quantas vezes faremos um loop por esse pipeline. Usaremos
uma expressão para verificar se o valor é menor que 3.
12. Arraste um bloco Expression para o pipeline.
13. No Pipeline Block Editor, defina a expressão como {numCalls} User, Roles.
3. Clique em manage users para editar o perfil padrão.
©2019 Inductive Automation Página 259 de 397
Segurança
Adicionar uma nova função
Vamos adicionar uma nova função chamada "Operator".
1. Clique na guia Roles e clique no link Add Role....
2. Defina o nome da função como Operator.
3. Clique no botão Add Role.
©2019 Inductive Automation Página 260 de 397
Segurança
Adicionando novos usuários
Agora, vamos criar um usuário chamado oper.
1. Na guia Users, clique em Add User.
2. Na janela Add User, defina o seguinte
Nome de usuário: oper
senha: password
Funções: marque a caixa Operator
3. Clique no botão Add User.
©2019 Inductive Automation Página 261 de 397
Segurança
4. Por fim, adicionaremos um usuário "convidado" sem funções. Clique na guia Users e
clique no link Add User.
5. Na janela Add User, defina o seguinte:
Nome de usuário: guest
senha: password
Funções: deixe ambas as caixas de funções desmarcadas.
©2019 Inductive Automation Página 262 de 397
Segurança
6. Clique no botão Add User.©2019 Inductive Automation Página 263 de 397
Segurança
Segurança do Componente
Agora que temos alguns usuários para trabalhar, vamos configurar alguma segurança em
uma janela.
1. Volte para o Ignition Designer.
2. Abra a janela Empty, que veio pré-criada em nosso Project Template.
3. Adicione quatro botões Multi-State à janela da guia Buttons. Qualquer outro
componente de entrada funcionará tão bem.
4. Clique com o botão direito do mouse em um dos botões e selecione Security. Um novo
painel de configurações de segurança é exibido.
©2019 Inductive Automation Página 264 de 397
Segurança
5. Desmarque Inherit Permissions para aplicar nossa própria segurança.
6. Na caixa de diálogo, você pode escolher quais restrições colocar no componente se o
requisito de função abaixo não for atendido. Deixe Disable e Disable Events marcados.
7. Na seção Exempt Role, verifique a função Administrator para conceder autorização
a essa função.
O usuário deve ter a função de administrador para usar o Button.
Um ícone de segurança é exibido ao lado do componente, indicando que a segurança
está configurada.
©2019 Inductive Automation Página 265 de 397
Segurança
Agora o componente será desabilitado se o usuário não tiver a função de administrador.
8. Configure as restrições de segurança nos outros três botões Multi-State da seguinte
forma:
Botão 2 - Hide - Operator
Botão 3 - Access Denied Overlay - Administrator and Operator
Botão 4 - Inherit Permissions (não configurar nada)
9. Salve o projeto e inicie o Cliente para testá-lo.
Se o usuário não tiver a função de administrador, o primeiro botão será desabilitado. Tente
mudar os usuários para um que não tenha a função. Também vale a pena notar que
apenas os operadores poderão ver o segundo botão - os administradores não. A função
Administrator não é mais poderosa que a função Operator, exceto nas formas que
configuramos explicitamente.
Por fim, entrar como usuário convidado produzirá a sobreposição de acesso negado no
terceiro botão, pois o usuário convidado não possui nenhuma das funções necessárias. Se
o convidado tiver qualquer uma das funções, ele poderá acessar o recurso.
©2019 Inductive Automation Página 266 de 397
Segurança
Colocando Segurança em uma Janela
Você também pode colocar segurança em janelas e contêineres. Se você colocar segurança
nos contêineres, ela se aplicará a todos os filhos dentro do contêiner. Os contêineres
podem ser uma ótima maneira de bloquear vários componentes sem precisar configurar a
segurança em cada um deles.
Vamos colocar segurança em nossa janela de histórico.
1. Clique com o botão direito do mouse na janela History e selecione Security.
2. Aqui você notará que a única restrição é Do Not Open. Se marcarmos a caixa de
seleção "Não abrir" e "Administrador", somente os administradores poderão acessar a
janela.
©2019 Inductive Automation Página 267 de 397
Segurança
3. Selecione File > Save.
4. Experimente no Cliente. Quando você não tem privilégios, você recebe essa mensagem:
©2019 Inductive Automation Página 268 de 397
Segurança
Aplicando Segurança em Todo o Projeto
Outro lugar para aplicar a segurança é no projeto como um todo.
1. Em Project > Properties no Designer, você pode definir as propriedades para que o
projeto exija determinadas funções para permitir o login:
2. Na janela de propriedades do projeto, selecione Project > General e você verá uma
configuração de Required Roles.
3. Defina a configuração de Required Roles para Operator. Agora você deve ter a função
Administrator ou Operator para efetuar login no tempo de execução.
©2019 Inductive Automation Página 269 de 397
Segurança
Segurança do Gateway
O último local em que a segurança é usada é no próprio Ignition Gateway. Na guia Ignition
Gateway Config, há configurações em Config > Gateway Settings que afetam como as
pessoas podem fazer login nas várias páginas da página da Web do Gateway, bem como
no Designer.
Um perfil de autenticação controla o acesso a todas essas áreas. Por padrão, o perfil de
autenticação chamado "default" é usado.
Se você alterasse a função(ões) da página inicial para Administrator, isso forçaria os
usuários a efetuar login para visualizar a página inicial do Gateway.
Configurando SSL/TLS
Por padrão, todas as solicitações feitas na página da Web do Ignition Gateway (incluindo
conexões de clientes e sessões) não são criptografadas, o que significa que qualquer
pessoa com acesso à rede do Gateway pode espionar a conexão. Para Gateways
hospedados na nuvem, isso pode constituir uma vulnerabilidade de segurança muito séria.
A configuração de conexões para usar a porta SSL do Gateway criptografa o tráfego e
impede que terceiros escutem.
O Gateway já está configurado para usar SSL, mas apenas em uma porta diferente daquela
com a qual estamos trabalhando, a porta SSL (que tem como padrão 8043). Em Config
> Networking > Web Server, é possível alterar esta porta. Há também uma opção
Force Secure Redirect, que envia todo o tráfego que atinge o Gateway Web Server para
a porta SSL, incluindo solicitações na página da Web do Gateway, bem como solicitações
feitas por clientes e sessões.
©2019 Inductive Automation Página 270 de 397
Segurança
Ao usar SSL, principalmente em um Gateway acessível publicamente, vale a pena importar
seu próprio certificado SSL, disponível de uma Autoridade de Certificação de terceiros
(CA). O certificado SSL integrado é auto-assinado, o que significa que os navegadores que
acessam a página da Web do Gateway não confiarão nele. Encontrar a propriedade
SSL/TLS Certificate na página Servidor Web e clicar em Details fornecerá uma interface
guiada para visualizar o certificado atual e criar e importar o seu próprio.
Zonas de Segurança
Uma zona de segurança é um grupo de gateways, computadores ou endereços IP que
compartilham configurações de segurança unificadas. Embora o Ignition dependa muito
de um modelo de segurança baseado em função, é possível configurar algumas restrições
de segurança de alto nível com base na zona de segurança, controlando assim o acesso
com base na origem de uma determinada solicitação de recurso, em vez de no usuário
que a está solicitando.
©2019 Inductive Automation Página 271 de 397
Segurança
As zonas de segurança podem ser configuradas em Config > Security > Security Zones
na página da Web do Gateway. A partir daí, basta clicar em Create New Security Zone...,
dar um nome à zona de segurança e adicionar endereços IP, nomes de host e/ou nomes
de gateway que devem corresponder à zona.
Quaisquer conexões que não correspondam a nenhuma zona de segurança serão
descartadas na zona Default.
Para configurar a segurança por zona, navegue até Config > Security > Service
Security. A partir desta página, você pode configurar uma política para cada zona,
restringindo o acesso de Alarmes, Provedores Históricos e Tags.
©2019 Inductive Automation Página 272 de 397
Capítulo 17
Janelas Pop-up
Nos capítulos anteriores, criamos um template para mostrar os dados de Tag para
nossos motores. Além disso, tornamos o modelo dinâmico, para que ele pudesse
analisar os dados de qualquer motor único, em vez de estar vinculado a um único
motor. Neste capítulo, exploraremos uma tarefa semelhante, usando uma janela
pop-up para mostrar dinamicamente informações mais detalhadas para um
determinado motor.
©2019 Inductive Automation Página 273 de 397
Janelas Pop-up
Criando uma Janela Pop-up
Neste exercício, estaremos configurando uma janela pop-up parametrizada. Ou seja, uma
janela pop-up querecebe um parâmetro e usa esse parâmetro para decidir para quais de
nossos itens (áreas, estações, motores, etc.) queremos mostrar os dados. Essa
abordagem, principalmente, eliminará a necessidade de criar uma nova janela pop-up para
cada motor.
Crie uma janela pop-up de motor detalhada
1. No Project Browser, expanda a pasta Windows/Popups e clique com o botão direito do
mouse na janela Popup. Selecione a opção Duplicate.
©2019 Inductive Automation Página 274 de 397
Janelas Pop-up
2. Clique com o botão direito do mouse na nova janela pop-up (1) e selecione Rename.
3. Dê à nova janela um nome de Motor Details e aperte enter.
4. Edite o componente Header Label para dizer Motor Details.
É importante saber que quando você passa um parâmetro para uma janela, o valor é
passado para as propriedades personalizadas do Root Container da janela de destino.
Por exemplo, se você passar um parâmetro de string chamado MotorName em uma
janela pop-up, a janela pop-up deverá ter uma propriedade de string chamada
MotorName como uma propriedade personalizada em seu Root Container. O Root
Container é onde o Ignition coloca todos os parâmetros de passagem.
5. Clique com o botão direito do mouse no Root Container da janela e selecione
Customizers> Custom Properties.
6. Na janela Custom Properties, clique no ícone Add para adicionar uma nova
propriedade personalizada.
7. Especifique MotorName como o nome da propriedade e String como o tipo.
©2019 Inductive Automation Página 275 de 397
Janelas Pop-up
8. Clique em OK.
Agora o MotorName é uma propriedade personalizada que aparece na janela Root
Container.
Nota: Nunca vincule a propriedade customizada na janela pop-up, pois passaremos o valor
para ela. Se estiver vinculado, ele substituirá o valor passado.
9. Arraste o template Motor para a janela.
O template Motor é um bom ponto de partida para mostrar informações detalhadas sobre
o Motor. Observe que precisamos vincular o parâmetro UDT que o modelo está esperando.
10. Clique no ícone de vinculação na propriedade Motor do template Motor. Precisamos
vincular o modelo à instância correta do Motor UDT com base no parâmetro MotorName
que a janela é passada. Podemos fazer uso de uma vinculação de Tag Indireta para
encontrar o motor certo.
©2019 Inductive Automation Página 276 de 397
Janelas Pop-up
11. Selecione a Indirect Tag no menu de Binding. A primeira parte da configuração da
vinculação será selecionar uma Tag de motor de amostra. Depois disso, faremos uma
única parte do caminho da Tag dinâmica, conforme nossa estrutura exige.
12. No lado direito da interface da Tag Indireta, clique no ícone Tag.
13. Expanda a pasta Tags e depois a pasta Motors. Selecione Motor 1 de dentro da pasta
e clique em OK.
©2019 Inductive Automation Página 277 de 397
Janelas Pop-up
14. A única coisa que resta a fazer é substituir dinamicamente "Motor 1" no caminho da
Tag pelo parâmetro MotorName passado na janela Popup.
15. Apague "Motor 1" do caminho da Tag, mas deixe o resto do caminho (incluindo o "/").
Em seguida, com o cursor ainda localizado onde o texto "Motor 1" estava, clique no ícone
Insert Property no lado direito. Na árvore Property, expanda o Root Container, selecione
a nova propriedade MotorName e clique em OK
Você verá um {1} inserido no Indirect Tag Path e uma nova entrada na tabela References.
16. Marque a caixa de seleção Bidirecional para permitir a gravação de volta na Tag e
clique em OK.
©2019 Inductive Automation Página 278 de 397
Janelas Pop-up
17. Arraste um campo de Numeric Text da guia Input da tabela Component Palette
abaixo do template.
©2019 Inductive Automation Página 279 de 397
Janelas Pop-up
18. Além dos dados em nosso template, queremos fornecer uma maneira de visualizar e
controlar a Tag de ponto de ajuste alto que configuramos em nosso UDT. Arraste um rótulo
da guia Display ao lado do campo de texto numérico.
19. Defina a propriedade Text como Amps High SP.
©2019 Inductive Automation Página 280 de 397
Janelas Pop-up
20. No Property Editor, defina a propriedade Number TYpe como Float.
21. Agora podemos vincular o valor do componente HighSP usando uma Indirect Tag
Binding assim como o template Motor. Clique na vinculação da propriedade Value (Float).
22. Selecione a Indirect Tag no menu de Binding.
23. No lado direito da interface da Indirect Tag clique no ícone Tag. Expanda a pasta Tags
e, em seguida, a pasta Motors.
24. Selecione o Tag HighSP do Motor 1 UDT e clique em OK.
©2019 Inductive Automation Página 281 de 397
Janelas Pop-up
25. Agora substitua o texto "Motor 1" no caminho do Tag pelo parâmetro MotorName
passado na janela Popup. Exclua "Motor 1" do caminho da Tag, mas deixe o restante do
caminho (incluindo os dois caracteres "/").
26. Em seguida, com o cursor ainda localizado onde estava o texto "Motor 1", clique no
ícone de inserir propriedade no lado direito.
27. Na árvore Property, expanda o Root Container, selecione a nova propriedade
MotorName e clique em OK.
28. Marque a caixa de seleção Bidirectional para permitir a gravação de volta na Tag e
Clique OK.
©2019 Inductive Automation Página 282 de 397
Janelas Pop-up
29. Finalmente, para nosso botão HOA no template Motor, adicionaremos segurança, para
que apenas os operadores possam fazer alterações no valor HOA de um Motor. Para fazer
isso, precisamos voltar para a definição do Template do Motor. Clique duas vezes no
Template do Motor para abri-lo.
30. Clique com o botão direito do mouse no botão Multi-State e selecione Security.
Desmarque Inherit Permissions e certifique-se de que as propriedades Disable e
Disable Events estejam marcadas em restrições. Em Exempt Roles, verifique a função
Operator para evitar que nossas restrições se apliquem aos usuários com a função.
31. Você também pode adicionar as mesmas restrições ao campo de texto numérico do
Amps HighSP no pop-up de detalhes do motor, para que apenas os operadores possam
modificar os pontos de ajuste.
32. Gostaríamos de abrir a janela pop-up quando um usuário clica em um modelo Motor.
Abra o template Motor novamente.
33. Para fazer com que o usuário clique na imagem de um motor, adicionaremos nosso
script pop-up aberto à imagem. Clique com o botão direito do mouse no componente
Union que está tingindo o motor e selecione Scripting....
©2019 Inductive Automation Página 283 de 397
Janelas Pop-up
34. Na janela Component Scripting [Motor], selecione mouseReleased no menu da
árvore Event Handlers.
35. Escolha a guia Navigation.
36. Selecione o botão de opção Open/Swap, certifique-se de que o botão de opção Open
e a caixa de seleção and Center estão selecionadas.
37. No menu suspenso Window, escolha Popups/Motor Details.
38. Marque a caixa Pass Parameters para passar o parâmetro MotorName necessário
para a janela Popup.
39. Clique no ícone Add à direita para adicionar um novo parâmetro.
40. A entrada do Parameter Name é um menu suspenso. Selecione o MotorName na
lista suspensa.
Nota: O nome deve corresponder exatamente ao parâmetro que adicionamos ao Root
Container da janela pop-up.
41. Em seguida, precisamos definir qual valor deve ser passado. Optamos por usar um
parâmetro MotorName (em oposição a, digamos, um parâmetro MotorNum) por um
motivo simples: o MotorName já é uma propriedade exposta em nosso modelo.
Com a linha de parâmetro selecionada, clique no ícone Insert Property no lado direito.
©2019 Inductive Automation Página 284 de 397
Janelas Pop-up
Na árvore de propriedades, localize o parâmetroMotor para o modelo e expanda-o.
Dentro, encontre e expanda a pasta Meta. Essa pasta foi criada automaticamente e contém
algumas informações básicas sobre a instância UDT. Selecione a propriedade TagName e
clique em OK.
42. Clique em OK na interface Component Scripting.
É isso! O Ignition agora passa o valor MotorName para a janela pop-up quando o usuário
clica no motor apropriado na janela de visão geral.
Salve seu projeto e experimente-o no cliente.
©2019 Inductive Automation Página 285 de 397
Janelas Pop-up
Abrindo Várias Instâncias de uma Janela Pop-up
Por padrão, você só pode ter uma instância da janela pop-up aberta por vez. Se a janela
já estiver aberta, o Ignition a reabrirá com um parâmetro diferente. Se você quiser abrir
várias instâncias de uma só vez, basta alterar o script.
Abrindo várias instâncias de uma janela pop-up
1. Volte para o Template do Motor, clique com o botão direito do mouse no componente
Union que está tingindo o motor e selecione Scripting....
2. Clique no evento mouseReleased.
3. Para alterar o script para abrir uma nova instância da janela em vez de apenas abrir a
janela, basta clicar na caixa de seleção Additional Instance.
Além disso, devemos desativar a caixa de seleção "and Center" para deixar as instâncias
abertas em paz.
©2019 Inductive Automation Página 286 de 397
Janelas Pop-up
Agora você pode abrir as janelas pop-up lado a lado.
©2019 Inductive Automation Página 287 de 397
Janelas Pop-up
Criando um Easy Chart Indireto
Nossa janela pop-up está funcionando bem. No entanto, seria bom mostrar alguns dados
históricos relacionados ao nosso Motor em um gráfico na janela pop-up. Como temos
apenas uma janela pop-up, temos que fazer com que o gráfico aponte indiretamente para
o histórico correto que corresponde ao motor selecionado anteriormente.
Fazendo o Easy Chart indireto
Vamos adicionar um Easy Chart indireto à janela pop-up.
1. Volte para a janela Motor Details e aumente-a para dar espaço para o gráfico.
2. Encontre o Easy Chart na seção Charts da Component Palette e arraste-o para a janela.
3. Começaremos adicionando algumas canetas de Tag ao gráfico. Na Tag Browser,
encontre a Tag AMPS do Motor 1 e arraste-a para o gráfico. Faça o mesmo para a Tag
HOA do Motor 1 e a Tag HighSP do Motor 1.
4. No Property Editor no Easy Chart, defina o modo do gráfico para Realtime.
©2019 Inductive Automation Página 288 de 397
Janelas Pop-up
Temos três canetas em nosso gráfico, uma Tag AMPS, uma Tag HOA e uma Tag HighSP.
No entanto, a maneira como eles estão sendo exibidos não é muito útil. A Tag HOA pode
ser 0, 1 ou 2, enquanto as Tags AMPS e HighSP podem ser potencialmente um número
analógico muito grande. Para exibir esses dados de forma significativa no mesmo gráfico
fácil, teremos que dividir nossas canetas Tag em Subplots separadas.
5. Clique com o botão direito do mouse no Easy Chart, expanda Customizers e selecione
Easy Chart Customizer.
6. Começaremos adicionando um Subplot para nossa caneta HOA usar. Selecione a guia
Subplots e clique no ícone Add para adicionar um subplot.
7. Defina o Peso Relativo do Gráfico 1 para 3, deixando o peso do Gráfico 2 em 1. Isso
fará com que o Subplot AMPS seja três vezes o tamanho do Subplot HOA.
8. Em seguida, adicionaremos um Eixo para nossa caneta HOA usar. Selecione a guia Axes
e clique no ícone Add para adicionar um eixo.
9. O valor HOA pode ser 0, 1 ou 2, mas exibir esses números no eixo pode confundir
nossos operadores. O que gostaríamos é uma maneira de mostrar "Hand", "Off" e "Auto"
no eixo. Vamos configurar nosso eixo para fazer isso.
©2019 Inductive Automation Página 289 de 397
Janelas Pop-up
Especifique as seguintes propriedades no eixo:
Nome: HOA
Etiqueta: HOA
Tipo: Symbol
Símbolos/Grid Bands: "Off, Auto, Hand"
10. Há mais uma mudança que podemos fazer no Eixo. Como o Auto Range está ativado,
o intervalo do eixo será de 0 a 2. No entanto, se o status do HOA for 0 ou 2, será difícil
ver a caneta no gráfico, pois ela ficará na borda superior ou inferior.
Para dar um pouco de preenchimento às canetas, desmarque Auto Range e configure
os seguintes limites:
Lower Bound: -0,1
Upper Bound: 2,1
©2019 Inductive Automation Página 290 de 397
Janelas Pop-up
11. Clique em OK para criar o Eixo.
12. Finalmente, temos que configurar a caneta da Tag HOA para usar o subplot e o eixo
que nós configuramos. Abra a guia Pens, selecione a caneta da Tag HOA em Tag History
Pens e clique no ícone Edit para modificar a caneta.
13. Defina o eixo como HOA e o subplot como 2. Clique em OK para confirmar as
alterações na caneta.
©2019 Inductive Automation Página 291 de 397
Janelas Pop-up
14. Clique em OK para confirmar as alterações no gráfico. Agora você deve ver as
canetas em diferentes subtramas em seu gráfico.
©2019 Inductive Automation Página 292 de 397
Janelas Pop-up
15. Agora que temos o gráfico bonito, queremos torná-lo dinâmico. Role para baixo até a
parte inferior do Property Editor para o componente Chart. Existem cinco propriedades
que armazenam a configuração do gráfico:
• Canetas DB (DB Pens)
• Tags de canetas (Tags Pens)
• Canetas Calculadas (Calculated Pens)
• Eixos (Axes)
• Subplots
Todas essas propriedades são conjuntos de dados, que permitem que toda a gama de
detalhes de configuração seja armazenada para cada caneta, eixo ou subplot.
Como arrastamos as canetas de marcação para o gráfico, o conjunto de dados de canetas
de marcação agora contém dados:
16. Clique no ícone Dataset View à direita da propriedade Tag Pens para ver as colunas
que podemos alterar.
17. Para desabilitar a capacidade do usuário de adicionar ou remover Tags históricos do
Easy Chart durante o tempo de execução, desmarque as caixas de seleção na última
coluna denominada USER_REMOVABLE.
©2019 Inductive Automation Página 293 de 397
Janelas Pop-up
18. Uma das colunas é TAG_PATH. Você notará que cada Tag_path tem o caminho
completo para a Tag assim: [~]Motors/Motor 1/Amps
Precisamos alterar dinamicamente o caminho da Tag para cada caneta. O único tipo de
ligação que nos permite fazer isso é a ligação de atualização de célula.
19. Agora, clique no ícone de vinculação à direita de Tag Pens e escolha o tipo de
vinculação Cell Update. Esse tipo de vinculação está disponível para nós porque estamos
em uma propriedade Dataset. As associações de atualização de célula nos permitem
vincular células individuais em um conjunto de dados a outras propriedades.
20. Selecione a célula TAG_PATH da linha AMPS e clique no ícone Add Row para
adicionar uma linha na tabela Cell Bindings apontando para essa célula. Selecionar uma
célula primeiro significa que os campos Row e Column serão preenchidos para nós.
©2019 Inductive Automation Página 294 de 397
Janelas Pop-up
21. Selecione a linha no conjunto de dados Cell Bindings, clique no ícone Insert Property
e selecione a propriedade MotorName no Root Container da janela.
©2019 Inductive Automation Página 295 de 397
Janelas Pop-up
Quase lá! O caminho da Tag não pode ser apenas a string Motor 1 ou Motor 2. Ele precisa
ser o caminho completo para a Tag histórica apropriada.
22. Clique duas vezes na célula para anexar ao campo Value. Adicione ao início e ao final
dele para que fique assim:
[~]Motors/{Root Container.MotorName}/AMPS
23. Clique em OK.
Agora o Ignition atualizará dinamicamente essa célula com base no parâmetro
MotorName. Queremos preencher apenas uma célula primeiro, para que seja fácil
encontrar erros se houver um erro.
24. Agora, abraa vinculação novamente para fazer a mesma coisa para a Tag HighSP.
Selecione a célula TAG_PATH para a Tag HOA e clique no ícone verde Add para adicionar
uma linha na tabela Cell Bindings para essa célula. Copie e cole o campo Value da
referência que já configuramos e altere o final da referência, para que fique assim:
[~]Motors/{Root Container.MotorName}/HighSP
25. Por último, faremos a Tag HOA. Selecione a célula TAG_PATH para a Tag HOA, e
clique no ícone Add para incluir uma linha na tabela Cell Bindings para essa célula. Copie
e cole o campo Value da referência que já configuramos e altere o final da referência,
para que fique assim:
[~]Motors/{Root Container.MotorName}/HOA
É isso! Agora você tem um Easy Chart indireto. Salve o projeto e inicie um cliente para
testá-lo. Abra cada pop-up do motor e veja a alteração do gráfico.
Criando um Display de Alarme Dinâmico
A última coisa que iremos adicionar à nossa janela pop-up é uma tela que mostrará os
alarmes ao vivo para o motor especificado. Para isso, utilizaremos a Alarm Status Table
com a qual trabalhamos nos capítulos anteriores.
©2019 Inductive Automation Página 296 de 397
Janelas Pop-up
Configurando a Alarm Status Table
1. Localize o componente Alarm Status Table na seção Alarming da Component Palette
e arraste-o para uma janela pop-up.
2. Antes de adicionarmos um filtro à Alarm Status Table, queremos torná-la mais bonita.
Coloque o Designer no modo de visualização para editar os cabeçalhos.
3. Você pode clicar com o botão direito do mouse no cabeçalho e selecionar cada coluna
ou desmarcar até ter apenas o que precisa. Mostre quatro estas colunas:
Active Time
Display Path
Current State
Priority
4. Por padrão, a tabela Alarm Status exibe todos os alarmes em nosso sistema. Precisamos
configurar um filtro que só permitirá a exibição de alarmes para o motor atual. No Property
Editor da Status Alarm Table, localize a propriedade Filter de associação de exibição e
clique no ícone de vinculação.
5. Queremos configurar um Display Path Filter que corresponda apenas aos alarmes do
motor especificado. A abordagem mais fácil é filtrar quaisquer alarmes que não tenham
nosso MotorName em algum lugar no caminho de exibição.
©2019 Inductive Automation Página 297 de 397
Janelas Pop-up
Selecione um tipo de Expression e use o ícone Insert Property no lado direito para
puxar a propriedade MotorName para a expressão. Em seguida, modifique a expressão
para ler:
"*" + {Root Container.MotorName} + " *"
Essa expressão está enviando caracteres de asterisco ao MotorName; sem eles, teríamos
que corresponder exatamente ao caminho de origem. Observe também que um espaço
extra foi adicionado antes do segundo asterisco - isso é para evitar que o Motor 1 mostre
os alarmes do Motor 10.
6. Clique em OK para salvar a expressão. Agora você deve ver apenas alarmes para o
motor atual na tabela Alarm Status.
©2019 Inductive Automation Página 298 de 397
Capítulo 18
Criação de Scripts
A criação de scripts oferece um grau significativo de flexibilidade e personalização
onde as opções padrão disponíveis são insuficientes. Existem duas linguagens de
script principais no Ignition: Python e Expression Language.
Vamos agora focar na linguagem Python no Ignition.
©2019 Inductive Automation Página 299 de 397
Criação de Scripts
O que é Python?
Na maioria das vezes, quando falamos de "scripts", estamos falando de scripts Python.
Python é uma linguagem de programação de propósito geral que foi desenvolvida no início
dos anos 90 e ganhou popularidade significativa nos anos 2000. Nós gostamos porque é
extremamente legível, elegante, poderoso e fácil de aprender.
Como um bônus adicional, ele interage graciosamente com Java, dando aos
programadores uma ferramenta extremamente poderosa quando combinada com o
Ignition, que é escrito em Java.
Python ou Jython? Você ouvirá frequentemente o Python ser chamado de "Jython" por
usuários avançados do Ignition. Python é a linguagem, Jython é a implementação da
linguagem que usamos.
Na criação de scripts, existem duas técnicas da seguinte forma:
• Criando e acessando variáveis
• Usando instruções de fluxo de controle
As duas formas mais comuns de fluxo de controle são instruções If e For Loops.
Aprendendo Python
Python é fácil de aprender porque sua sintaxe é intuitiva e fácil de ler.
Olá Mundo
Começaremos com o exemplo com o qual a maioria das linguagens de programação
modernas começa; exibindo as palavras "Hello World". Para fazer isso, precisamos de um
ambiente para escrever nosso código. O console de script permite criar código e executá-
lo dentro da ferramenta. Você o encontrará no menu Ferramentas.
©2019 Inductive Automation Página 300 de 397
Criação de Scripts
Uma vez aberto, queremos adicionar algum código ao lado esquerdo do console. O script
a seguir imprimirá "Hello World" no console de saída à direita.
print "Hello World"
A palavra-chave print é uma ferramenta útil em Python, permitindo que você coloque texto
no console de saída. Isso é útil para depurar seus scripts. Você pode imprimir várias coisas
separando-as com vírgulas.
©2019 Inductive Automation Página 301 de 397
Criação de Scripts
Comentários
Comentários são notas que você pode deixar em seu código. Embora não seja uma técnica
específica em Python, eles podem ser muito úteis para descrever o que o código faz e por
que você escolheu escrever o código da maneira que fez. Muitas vezes, seus comentários
o ajudarão a lembrar o que o script faz quando você não passa por ele há muito tempo.
Crie um comentário usando o sinal de hashtag antes de seu comentário. Após o sinal de
hash (#), tudo depois será um comentário. O comentário pode estar na sua própria linha
ou no final de uma linha de código existente.
# Este é um comentário
print "Testing" # Isso também é um comentário
Onde o Python é Usado?
Python é usado em muitos lugares no Ignition. O lugar mais aparente, está nos
manipuladores de eventos do componente. Scripts de evento de projeto e módulos de
script são dois outros lugares importantes onde o Python é usado.
Manipuladores de eventos
A manipulação de eventos permite que você use scripts para responder a uma ampla
variedade de eventos disparados por componentes. Isso permite configurar janelas que
são muito interativas e são uma parte importante do design do projeto nos módulos Vision
e Perspective.
Um evento pode ser muitas coisas, como um clique do mouse, um pressionamento de
tecla ou simplesmente uma alteração de propriedade. Sempre que esses eventos ocorrem,
um script pode ser chamado para "tratar" o evento. Diferentes componentes podem
disparar diferentes tipos de eventos.
Os eventos são organizados em conjuntos de eventos. Por exemplo, o conjunto ou tipo de
evento de mouse inclui mouseClicked, mousePressed e mouseReleased. Muitas vezes, os
eventos em um conjunto de eventos compartilham as mesmas propriedades de seu objeto
de evento.
©2019 Inductive Automation Página 302 de 397
Criação de Scripts
Construtores de scripts Vision
Ao criar um manipulador de eventos no Vision, você pode usar um dos práticos
"construtores de scripts" em vez de escrever o script manualmente. Na janela Component
Scripting, os construtores de scripts podem ser acessados como guias na parte superior.
A última guia, Script Editor, permite que você escreva manualmente um manipulador de
eventos. Você também pode usá-lo para visualizar o script que foi gerado pelo construtor
de scripts, o que é uma boa maneira de começar a aprender a escrever manipuladores de
eventos manualmente.
Criando e Acessando Variáveis
Você cria variáveis simplesmenteatribuindo um valor a elas. Você não precisa declarar as
variáveis, porque o Python tem um sistema do tipo dinâmico. Isso significa que o Python
descobre o tipo da variável em tempo real, quando o script é executado.
As variáveis são criadas simplesmente atribuindo um valor a elas. As variáveis não
precisam ser declaradas, pois o Python possui um sistema de tipos dinâmicos. Isso
significa que o Python descobre o tipo da variável rapidamente quando o script é
executado.
Acessar uma variável é tão simples quanto criá-la. Basta usar o nome da variável onde
você deseja usar seu valor.
Embora o console de script seja um ótimo lugar para testar um script, a desvantagem é
que ele não salva nosso trabalho em uma reinicialização do designer, nem pode interagir
com componentes em uma janela. Assim, podemos colocar um script em um componente
em uma janela para que possamos voltar a ele mais tarde. O componente mais fácil para
adicionar um script é o Button. Podemos usar o evento de ação executada do botão para
nosso script, que é quando o botão é pressionado.
©2019 Inductive Automation Página 303 de 397
Criação de Scripts
1. Crie uma nova janela principal. Não se esqueça de adicionar uma nova guia à sua janela
de navegação para que ela possa ser acessada a partir do cliente.
2. Adicione um componente Button à janela. Clique com o botão direito e selecione
Scripting para abrir o script do componente.
3. Selecione o manipulador de eventos actionPerformed e alterne para a guia Script
Editor.
4. Adicione o seguinte script:
var=6
print var
var="abc"
print var
©2019 Inductive Automation Página 304 de 397
Criação de Scripts
O código acima irá imprimir "6" e "abc" no console quando o botão for pressionado.
5. Clique em OK para salvar o script.
6. Experimente colocando o Designer no modo de visualização e clicando no componente
botão.
7. Ao contrário do Console de Script, onde a saída foi exibida dentro da ferramenta, não
temos um Output Console aberto para ver nossos valores impressos.
8. Para abrir um Output Console no Designer, selecione Console no menu Tools.
Existem funções exclusivas para cada objeto que podem ser usadas para manipular o
objeto de alguma forma. Por exemplo, objetos de string têm funções que podem alterar o
caso dos caracteres ou remover caracteres da string.
©2019 Inductive Automation Página 305 de 397
Criação de Scripts
var = "my string"
print var
print var.strip()
print var.upper()
print var
Strings literais podem ser digitadas usando aspas duplas ou aspas simples. Isso pode ser
útil quando sua string contém uma citação ou outra. Você também pode usar o caractere
de barra invertida para escapar de caracteres especiais.
Os números podem ser digitados normalmente, como 42 ou 3,14159.
Booleanos são True ou False (a primeira letra deve ser maiúscula).
x = "isn’t this grand" y = 5.56
cond = True
print x, y, cond
Python tem muitos operadores aritméticos que você pode usar para combinar valores:
adição (+), subtração (-), divisão (/), multiplicação (*) e módulo (%) apenas para citar
alguns.
Há muitos operadores de comparação que você pode usar para construir sua condição,
como: igual (==), diferente de (!=) maior que (>) e maior que ou igual (>=).
Há também operadores lógicos que você pode usar para combinar várias condições: (e),
(ou) e (não).
Usando Declarações de Fluxo de Controle
O fluxo de controle é outro conceito básico do Python que segue instruções lógicas para
executar código em uma determinada ordem ou quando determinadas condições são
atendidas. As duas formas mais comuns de fluxo de controle são instruções if e loops for.
Instruções If
As instruções If são bem conhecidas entre os programadores. As instruções if, fazem com
que seu script execute um bloco de instrução somente se uma determinada condição for
true.
©2019 Inductive Automation Página 306 de 397
Criação de Scripts
Existem muitas maneiras de criar uma condição, mas geralmente isso é feito com os
operadores de comparação. Existem muitos operadores de comparação que você pode
usar para construir sua condição: igual (==), diferente de (!=) maior que (>) e maior ou
igual (>=) para citar alguns.
Há também operadores lógicos que você pode usar para combinar várias condições: (e),
(ou) e (não). Vamos testar isso.
1. Adicione um novo componente Button à janela e abra o editor de script para o evento
actionPerformed.
2. Adicione o seguinte código, que você verá que não fará nada:
var = 10
if varde mais,
enquanto a formatação de strings permite que você insira valores em pontos específicos
na string. Nós passamos por ambos abaixo.
1. Crie um novo componente Button na janela e abra a janela de script.
2. Selecione o manipulador de eventos actionPerformed e vá para a guia Script Editor.
3. Digite o seguinte código que usa concatenação de strings:
temp = 65.8
city = "Folsom"
print "The temperature in " + city + " is
currently: " + str(round(temp, 1)) + " °F."
4. Teste o código. Depois de confirmar que funciona, adicione a seguinte linha para
formatação de string abaixo do script original:
print "The temperature in %s is currently: %.1f °F." %(city, temp)
Ambas as impressões exibirão a mesma frase no Console usando métodos diferentes para
criá-las.
©2019 Inductive Automation Página 310 de 397
Criação de Scripts
Embora a concatenação seja bastante direta e funcione apenas em stings, a formatação
de string tem muitos especificadores que você pode usar para inserir diferentes tipos de
valores na string.
Especificador de formato e Significado
%% - Insere um sinal % na string final
%c - Um único personagem. O valor deve ser uma string de comprimento 1 ou um número
inteiro
%d ou %i - Integer assinado
%f - Ponto Floating, formato decimal
%s - Uma String, converte o valor em uma string usando str()
%u - Decimal não assinado
%x ou %X - Hexadecimal não assinado
Python no Ignition
Funções do sistema
A API de script do Ignition, que está disponível sob o nome do módulo "system", está
repleta de funções que são úteis ao projetar projetos no Ignition. Essas funções não fazem
parte da linguagem Python padrão, mas são incorporadas ao Ignition para facilitar a
execução de certas tarefas comuns e interagir com vários sistemas no Ignition. No
exemplo abaixo, abordamos algumas das coisas que você pode fazer com as funções do
sistema.
©2019 Inductive Automation Página 311 de 397
Criação de Scripts
1. Adicione um componente Button na janela.
2. Abra o editor de script para o evento actionPerformed.
3. Adicione o script abaixo:
system.gui.messageBox("Hello World")
Podemos exibir mensagens simples usando a função de caixa de mensagem. Observe
como a caixa de mensagem mantém o foco na tela e não desaparece até que o usuário a
descarte. A caixa de mensagem, juntamente com algumas outras funções, bloqueará a
execução adicional do script enquanto estiver ativo. Eles normalmente aguardam a
entrada do usuário de alguma forma. Vamos tentar adicionar outra função do sistema que
irá capturar o endereço IP do Gateway.
4. Adicione o seguinte script na parte inferior do seu código:
print system.util.getGatewayAddress()
Observe como essa linha não será executada e imprimirá o endereço do Gateway no
console até que a caixa de mensagem seja descartada.
Você também pode obter informações de Tags ou manipulá-las de alguma forma a partir
de um script usando funções do sistema.
5. Adicione o seguinte script na parte inferior do seu código (como uma linha, sem
quebras):
print system.tag.readBlocking (["[default]_GenSim_/Ramp/Ramp1"])[0].value
©2019 Inductive Automation Página 312 de 397
Criação de Scripts
Script de Componentes
Em um manipulador de eventos, o objeto de evento fornece contexto ao evento que
disparou o script. Por exemplo, o objeto de evento para um clique do mouse terá as
coordenadas xey de onde ocorreu o clique. Um evento de pressionamento de tecla, por
outro lado, terá um código de tecla, mas não uma coordenada. Por meio desse objeto de
evento, podemos percorrer a hierarquia da janela para obter valores de diferentes
componentes. Para fazer isso, precisamos criar o que é conhecido como caminho de
componente. Dentro do Vision, você só pode subir ou descer na hierarquia, mas nunca de
um lado para o outro. Isso significa que, se você tiver dois componentes no mesmo root
container, não poderá pular diretamente de um para o outro, mas deverá viajar até o
ancestral comum e depois voltar para o outro componente. Vejamos como isso funciona
no próximo exemplo.
©2019 Inductive Automation Página 313 de 397
Criação de Scripts
Buscando uma entrada
1. Adicione outro botão à janela e adicione um campo de texto ao lado dele.
2. Abra a janela de script no Button e selecione o actionPerformed manipulador de
eventos. Alterne para a guia Script Editor.
3. Adicione o seguinte script:
input = event.source.parent.getComponent("Text Field").text
system.gui.messageBox(input)
Observe como o caminho do componente salta de objeto para objeto até chegar ao destino
do texto do campo de texto. Podemos então salvar isso em uma variável e usá-la em uma
função do sistema que exibe nossa mensagem.
Funções do componente
Além de obter os valores dos componentes na janela, muitos componentes também
possuem funções exclusivas que você pode usar. Um dos melhores exemplos é o Power
Table, que possui uma função especial que permite imprimir o conteúdo da tabela.
1. Adicione um Button à janela e adicione um componente Power Table ao lado dele.
2. Na Power Table, selecione a propriedade TestData para adicionar alguns dados de teste
à tabela.
©2019 Inductive Automation Página 314 de 397
Criação de Scripts
3. Abra a janela do editor de script para o evento actionPerformed no componente
Button.
4. Adicione o seguinte script:
# print the table
# get the table
table = event.source.parent.getComponent('Power Table')’
# print
table.print()
5. Clique em OK.
6. Coloque o Designer no modo de visualização e clique no componente Button.
Ao executar o script, uma caixa de diálogo de impressão aparece onde você pode
selecionar as opções de impressão antes de imprimir.
Essas funções de componente são exclusivas de cada componente e podem permitir que
você manipule os componentes de maneiras interessantes.
©2019 Inductive Automation Página 315 de 397
Criação de Scripts
Usando Funções de Extensão
Além de adicionar scripts a manipuladores de eventos existentes, você também pode
modificar componentes usando funções de extensão. Em vez de executar essas funções
com base em algum evento externo, essas são funções que o próprio componente chama
em determinados momentos. Você pode modificar o que essas funções fazem usando
scripts.
Muitos componentes têm várias Extension Functions que você pode usar para fazer
alterações comuns neles. Por exemplo, o componente Power Table tem Extension
Functions para configurar células individuais, responder a eventos de edição de células,
criar menus de clique com o botão direito e muito mais.
Vamos ver como colorir linhas inteiras no componente Power Table.
1. Podemos usar a Power Table que usamos no exemplo anterior, então selecione-a.
2. Clique com o botão direito do mouse no componente Power Table, selecione Scripting...
e selecione a função de extensão ConfigureCell.
3. Clique na opção Enabled na parte superior da janela para que você possa modificar
sua função personalizada.
©2019 Inductive Automation Página 316 de 397
Criação de Scripts
Todo o texto roxo entre aspas triplas (""") são notas sobre como essa função específica
funciona. Especificamente, essa função é chamada para cada célula para determinar como
ela se parece. Na parte inferior, há algumas linhas de código que vamos descomentar e
ver o que ele faz.
4. Selecione todo o texto comentado em cinza, exceto a primeira linha, que na verdade é
um comentário.
5. Pressione control + / para descomentar todo o código de uma vez.
6. Pressione OK para vê-lo em ação. Você notará que todas as outras linhas na Power
Table agora são cinza claro.
©2019 Inductive AutomationPágina 317 de 397
Criação de Scripts
7. Retorne ao script para fazer algumas modificações. Queremos alterar o script para que
ele também altere a cor da linha se o valor booleano estiver desmarcado.
8. Você notará que não temos mais o botão seletor de propriedades disponível para nós,
e isso é porque essas funções de extensão normalmente não têm um objeto de evento,
então precisaremos construir o caminho nós mesmos usando o objeto self fornecido.
Adicione o código abaixo:
if selected:
return {'background': self.selectionBackground}
elif self.data.getValueAt(rowView, "Boolean Column") ==
False:
return {'background': 'green'}
elif rowView % 2 == 0:
return {'background': 'white'}
else:
return {'background': '#DDDDDD'}
©2019 Inductive Automation Página 318 de 397
Criação de Scripts
Scripts de Eventos de Cliente e Gateway
Eventos de cliente e gateway são eventos especiais não baseados em componentes. Muitas
vezes, esses scripts podem ser acionados automaticamente, sem que o usuário execute
alguma ação para acioná-los. Esses eventos especiais também analisam o conceito de
escopo ou onde o script é executado.
Eventos do cliente
Há um punhado de eventos de cliente diferentes que são acionados por ações diferentes.
Como scripts em componentes, cada script pode ser acionado em cada cliente que está
executando este projeto no momento. Isso significa que para scripts executados
automaticamente como os scripts Timer, cada cliente executará o script em uma taxa
definida. Um script em execução no Cliente é considerado no Client Scope. Normalmente
você quer ter cuidado ao interagir com recursos globais como Tags desses scripts, pois
você pode ter vários scripts de Cliente gravando no mesmo Tag ao mesmo tempo!
Se você der uma olhada na seção Timer dos Client Events, você notará que já existe um
script lá. Isso foi criado para nós pelo modelo de projeto que selecionamos no início da
semana. Ele é executado a cada cinco segundos e verifica-se há quanto tempo o cliente
está ativo. Se estiver inativo por mais de cinco minutos, ele bloqueará o cliente. Podemos
desativá-lo clicando duas vezes no nome do script e desmarcando a caixa de seleção
Enabled.
©2019 Inductive Automation Página 319 de 397
Criação de Scripts
Eventos de Gateway
Os eventos de gateway funcionam de maneira um pouco diferente dos eventos de cliente,
embora muitos deles pareçam semelhantes. Enquanto os Eventos do Cliente são acionados
por coisas que acontecem no Cliente, os Eventos do Gateway são acionados por coisas
que estão sendo executadas no Gateway. Isso também significa que esses scripts são
executados no escopo do gateway. Ao serem executados no escopo do gateway, esses
scripts não podem afetar diretamente os objetos dentro do cliente, como janelas e
componentes.
Vejamos o Tag Change Event, que está presente tanto como Client Event quanto como
Gateway Event. Quando o Gateway Tag Change Script é acionado, ele é executado uma
vez no servidor Gateway. Quando essa mesma Tag aciona um Script de Alteração de Tag
de Cliente, esse script é executado em todos os Clientes atualmente abertos que estão
executando este projeto.
©2019 Inductive Automation Página 320 de 397
Criação de Scripts
Biblioteca de Scripts do Projeto
A Biblioteca de Scripts do Project é um local onde você pode criar suas próprias funções
de script. Pense em funções de script como modelos, onde você pode criá-lo uma vez e
usá-lo várias vezes. Abaixo, temos um exemplo simples para montar um.
1. No Project Browser, abra a pasta Scripting.
2. Clique com o botão direito do mouse na Project Library e selecione New Script. Dê-
lhe um nome de “myScripts”.
3. Copie o código abaixo no script.
def myMessage(message):
system.gui.messageBox(message)
©2019 Inductive Automation Página 321 de 397
Criação de Scripts
4. Volte para a janela de script e adicione um botão à tela e entre em seu script.
5. Chame a função referenciando primeiro o nome do script e depois o nome da função,
como no script abaixo:
myScripts.myMessage("This is my Project Script")
©2019 Inductive Automation Página 322 de 397
Capítulo 19
Perspective
O Perspective é um módulo que permite criar recursos que permitem que um
usuário faça a transição facilmente da visualização do projeto em um computador
para a visualização em um dispositivo móvel. Tudo é baseado em tecnologias da
Web, como HTML e CSS, que permitem criar telas que são exibidas no navegador
da Web e podem responder facilmente às mudanças no tamanho da tela.
Perspective é um sistema de visualização diferente do Vision, utilizando layouts
diferentes que determinam onde os componentes estão na tela e como eles são
redimensionados. Como o Perspective é iniciado no navegador da Web, você
basicamente cria páginas da Web para as quais o usuário pode navegar com um
URL. Essas páginas podem ter muitas visualizações, onde cada visualização possui
componentes que se movem de acordo com o layout da visualização.
©2019 Inductive Automation Página 323 de 397
Perspective
Criando uma View
A View nos permite visualizar componentes na tela e exibir dados semelhantes ao que
faríamos no sistema Vision. Podemos criar uma View e ver como podemos adicionar
componentes a ela.
1. Crie uma nova View clicando com o botão direito do mouse na pasta Views na seção
Perspective do Project Browser.
Nome: Coordinate
Disposição: Coordinate
URL da página: Enabled, com um URL de "/"
©2019 Inductive Automation Página 324 de 397
Perspective
2. Arraste um Cylindrical Talk para a View. Semelhante ao componente Vision Cylindrical
Tank, também tem muitas propriedades em comum.
3. Arraste um controle Slider para a View. Também é semelhante ao componente Vision
Slider e queremos unir os dois.
4. Selecione o Tank e configure uma vinculação na propriedade Value clicando no ícone
de vinculação à esquerda do nome da propriedade.
5. Na janela Edit Binding, selecione o tipo de propriedade e clique no botão Insert
Property de propriedade à direita. Localize slider.props.value e selecione-o para a
vinculação.
©2019 Inductive Automation Página 325 de 397
Perspective
6. Você pode colocar seu Designer no modo de visualização para mover o controle
deslizante e ver a alteração do valor do tanque.
Vinculações de Tags
As associações de tags funcionam da mesma maneira que no Vision, e podemos utilizar
muito da funcionalidade de arrastar e soltar com a qual estamos acostumados. Basta
adicionar um componente à View e arrastar e soltar um Tag nele para configurar
automaticamente a vinculação na propriedade.
Seleção Profunda
Com tantos tipos de contêineres diferentes para aninhar um no outro para obter o layout
desejado, é possível selecionar profundamente em componentes para interagir com
qualquer um de seus filhos. Para selecionar profundamente um componente, clique duas
vezes nele e algumas coisas mudarão.
No Navegador de projeto, o componente agora terá um ícone de cruz ao lado dele em vez
da raiz, indicando que é o componente selecionado em profundidade no momento.
O restante da visualização ficará esmaecido, enquanto o componente não ficará. Qualquer
filho do componente pode então interagir. Ao aninhar contêineres entre si, é uma
ferramenta muito útil, permitindo que você acesse o contêiner e configure seus
componentes filhos.
©2019 Inductive Automation Página 326 de 397
Perspective
Enquanto estiver profundamente selecionado dentro de um contêiner, se houver outro
contêiner aninhado dentro, você poderá selecionar mais profundamente simplesmente
clicando duas vezesno contêiner filho. A seleção profunda permite selecionar em
contêineres até onde você precisa ir.
Para sair da seleção profunda e subir um nível, basta clicar fora dos limites do contêiner
selecionado em profundidade.
Coordenar o Dimensionamento do Layout
O contêiner de coordenadas usa um sistema de layout que funciona como as janelas do
Vision. Por padrão, está no modo Fixo, que funciona de maneira semelhante ao modo
ancorado do Vision. O componente terá uma localização x e y definida com larguras e
alturas que não mudam, independentemente do tamanho da View.
No modo Porcentagem, o layout funciona de maneira semelhante ao modo relativo do
Vision. Os componentes receberão x, y, largura e altura que é uma porcentagem de sua
posição na visualização, o que permite que ela cresça e diminua com a visualização.
Configuração de Páginas
As páginas são abertas no navegador da Web quando você inicia um projeto Perspective.
As páginas têm um URL e visualizações que são exibidas na página.
Para configurar as Páginas, clique no ícone Settings (engrenagem) no canto inferior
esquerdo do Designer.
©2019 Inductive Automation Página 327 de 397
Perspective
Aqui na seção de configurações, você encontrará Configuration Page à esquerda. Você
notará que já existe uma Página configurada com a URL ‘/’, que foi criada para nós
automaticamente quando criamos a opção View com a opção URL da página habilitada.
Novas Páginas podem ser criadas manualmente clicando no ícone Add. Cada página
precisa receber um URL e uma visualização primária. Ele pode então ter visualizações
encaixadas na borda da página.
Iniciando Uma Sessão
Iniciar uma sessão envolve simplesmente navegar para qualquer uma das páginas
configuradas no Projeto. Isso envolve adicionar a URL da página ao final de uma URL base.
A URL base será mais ou menos assim:
GatewayIP:8088/data/perspective/client/projectName
Portanto, uma página com um URL de '/' simplesmente precisa colocá-lo no final do URL
base.
As Sessões do Perspective também podem ser iniciadas na página da Web do Gateway na
guia Home. Isso abrirá a sessão para a página definida com a URL de ‘/’. Isso significa que
você deseja ter uma página definida com um URL de '/'.
©2019 Inductive Automation Página 328 de 397
Perspective
Por fim, você também pode abrir a sessão no designer. Simplesmente vá para o menu de
ferramentas na Seção do Perspective, selecione Launch Perspective...>Launch
Session. Você também pode clicar com o botão direito do mouse em uma página na seção
Page Configuration e selecionar Launch URL para iniciar a URL dessa página específica.
©2019 Inductive Automation Página 329 de 397
Perspective
Templates no Perspective
Embora não haja uma seção no Perspective pára Templates como existe no Vision, as
Views podem ser incorporadas em outras Views da mesma forma que você colocaria um
template em uma janela.
Template do Motor
Vamos montar um Motor Template no Perspective como fizemos no Vision.
1. Crie uma nova View que usaremos para nosso template.
Name: MotorView
Layout: Flex
Page URL: false
2. No Property Editor, altere o tamanho da View para ter largura e altura de 200x200.
©2019 Inductive Automation Página 330 de 397
Perspective
3. No Navegador de projeto, selecione a raiz e certifique-se de que sua propriedade de
direção esteja definida como columm.
4. Adicione um componente Label à View e defina a base para 50px
5. Adicione um botão de vários estados. Edite as propriedades da seguinte forma:
orientation: row
grow: 1
basis: 70px
©2019 Inductive Automation Página 331 de 397
Perspective
6. Adicione um Flex Container. Edite as propriedades da seguinte forma:
name: Row Flex
direction: row
grow: 0
basis: 50px
7. Faça uma seleção profunda no novo contêiner para que possamos adicionar
componentes a ele. Adicione um rótulo ao contêiner Row Flex. Edite as propriedades da
seguinte forma:
text: Amps
alignVertical: center
grow: 1
©2019 Inductive Automation Página 332 de 397
Perspective
8. Adicione também um componente de exibição de LED ao contêiner Row Flex e defina
o grow para 1.
9. Adicione um componente Coordinate Container ao MotorView. Edite as propriedades
da seguinte forma:
name: SVG Container
mode: Percent
10. Faça uma seleção profunda no Container SVG para que possamos adicionar um
gráfico de motor a ele.
11. Vá para Tools > Symbol Factory. Na caixa de pesquisa, digite "motor".
12. Arraste o símbolo Simple motor 4 para o container.
13. Clique com o botão direito do mouse na imagem do motor e selecione Flatten. Isso
cria um contorno da imagem. Você verá no Project Browser que agora existem dois
componentes de motor simples.
©2019 Inductive Automation Página 333 de 397
Perspective
14. Selecione o Simple motor 5. No Property Editor, expanda a propriedade dos
elementos. Em seguida, expanda a propriedade 0 e a propriedade de preenchimento.
15. Ao lado da propriedade Paint, clique no quadrado Color Selector. Use a roda de cores
para escolher uma cor amarela ou defina o valor na paleta para FFFF0066.
©2019 Inductive Automation Página 334 de 397
Perspective
Styles
Os Styles no Perspective oferecem uma maneira de alterar como um componente é exibido
aplicando CSS. Eles são definidos em cada componente e qualquer combinação de
configurações de CSS pode ser aplicada. Coisas como alterar o tamanho ou a fonte do
texto ou definir cores de fundo ou margens.
Adicionando um Style a View do Motor
1. No MotorView, selecione profundamente o Flex Container e selecione o rótulo Amps.
2. Nas propriedades do componente, clique no ícone Modify Style ao lado da propriedade
Style.
3. Um editor do Style é aberto com várias seções. Expanda a seção Text para fazer
alterações nos estilos de texto. Aqui você pode alterar coisas como a cor do texto, fonte,
tamanho e muito mais.
4. Defina as seguintes propriedades na seção de texto:
Font Size: 18px
Font Family: Arial
Text Align: center
©2019 Inductive Automation Página 335 de 397
Perspective
5. Clique em OK. Salve seu projeto.
©2019 Inductive Automation Página 336 de 397
Perspective
Classes do Styles
As classes do Styles oferecem uma maneira de criar um conjunto reutilizável de regras de
estilo e aplicá-las em um grande conjunto de componentes. Assim como os modelos do
Vision, eles podem ser alterados e cada componente que usa esse estilo será atualizado
automaticamente. Ao desenvolver um projeto, queremos garantir que nossa aparência
seja consistente em todas as visualizações. É uma boa ideia iniciar seu projeto com uma
pequena lista das configurações de fonte que serão usadas em todos os lugares. Desta
forma, seu projeto será mais fácil de ler.
Criando uma classe de estilo de cabeçalho
1. No Project Browser sob o objeto Perspective, clique com o botão direito do mouse na
pasta Styles e selecione New Style....
2. Nomeie seu novo estilo Header.
3. Defina as seguintes propriedades na seção de texto:
Color: blue (#234077)
Font Size: 26px
Font Weight: bold
Text Align: center
©2019 Inductive Automation Página 337 de 397
Perspective
4. Clique em OK.
5. Selecione o componente Title Label do MotorView.
6. Nas propriedades do componente, expanda o estilo e clique no ícone Expand ao lado
da propriedade classes para ver todas as classes de estilo disponíveis.
Você pode selecionar quantas classes desejar e todas as configurações de CSS serão
usadas de cada classe selecionada, desde que não se sobreponham.
7. Selecione a classe Header.299
Aprendendo Python ..................................................................................................................................................................... 299
Python no Ignition ........................................................................................................................................................................ 310
CAPÍTULO 19 ................................................................................................................ 322
Perspective ..................................................................................................................................................................... 322
Criando uma View ........................................................................................................................................................................ 323
Vinculações de Tags ..................................................................................................................................................................... 325
Seleção Profunda ........................................................................................................................................................................... 325
Coordenar o Dimensionamento do Layout ....................................................................................................................... 326
Configuração de Páginas ............................................................................................................................................................ 326
Iniciando Uma Sessão ................................................................................................................................................................. 327
Templates no Perspective ......................................................................................................................................................... 329
Incorporando Views .................................................................................................................................................................... 350
Layout do Breakpoint ................................................................................................................................................................. 357
Segurança do Perspective ......................................................................................................................................................... 361
CAPÍTULO 20 ................................................................................................................ 367
Relatórios ........................................................................................................................................................................ 367
Criando um Relatório Básico em PDF .................................................................................................................................. 368
©2019 Inductive Automation Página 6 de 397
Adicionando Dados ao Seu Relatório ................................................................................................................................... 369
Criando seu Relatório ................................................................................................................................................................. 374
Cronograma ..................................................................................................................................................................................... 382
Relatórios de Clientes ................................................................................................................................................................. 385
CAPÍTULO 21 ................................................................................................................ 387
Rede Gateway................................................................................................................................................................. 387
Conecte-se a um Gateway ......................................................................................................................................................... 388
Configurar um Provedor de Tags Remoto ......................................................................................................................... 390
CAPÍTULO 22 ................................................................................................................ 392
Backups ............................................................................................................................................................................ 392
Backup/Restauração do Gateway ......................................................................................................................................... 393
Criando um Backup Agendado ................................................................................................................................................ 394
Backup/Restauração do Projeto ............................................................................................................................................ 395
©2019 Inductive Automation Página 7 de 397
Bem-vindo
Obrigado por escolher o Ignition by Induction Automation, um software
SCADA/HMI de automação industrial altamente configurável.
Sobre este treinamento
Usaremos uma abordagem passo a passo para ensinar a você os principais
recursos e capacidades oferecidos pelo Ignition. Focamos na plataforma Ignition
e seus principais módulos: Vision, Perspective, Ponte SQL, Histórico de Tags,
Relatórios e Alarmes.
Embora a arquitetura do Ignition seja modular, os módulos são perfeitamente
integrados para que você possa se concentrar nas tarefas que estão sendo
executadas.
Algumas das coisas que você aprenderá neste treinamento são: como instalar o
software, conectar-se a PLCs e Bancos de Dados SQL, criar seus próprios projetos,
criar Tags e armazenar histórico, iniciar Clientes e Sessões, definir alarmes e
notificações e gerar relatórios.
Vamos começar!
©2019 Inductive Automation Página 8 de 397
Capítulo 1
Introdução ao Software
Este capítulo apresenta você ao Ignition. Ele descreve o que é o Ignition, o que
ele pode fazer, quais são os módulos e como o Ignition pode ser usado em
diferentes situações, como redundância e segurança de rede.
O que é o Ignition?
O Ignition é uma plataforma de software para criar aplicações personalizadas de
interface homem-máquina (IHM), controle de supervisão e aquisição de dados
(SCADA), sistema de execução de fabricação (MES) e Internet das Coisas
Industrial (IIoT). O Ignition foi projetado desde o início para ser acessível e fácil
de começar, ao mesmo tempo em que é flexível e capaz de escalar até os
maiores projetos. O Ignition é instalado como software de servidor e baseia-se
fortemente nas tecnologias atuais da web.
Introdução ao software
©2019 Inductive Automation Página 9 de 397
Fluxo Básico do Ignition
O Ignition é único no espaço industrial porque é centrado no servidor. Você inicia um
Designer e extrai dados do Gateway. Então, quando você salva seu projeto, ele é
armazenado de volta no Gateway. Quando os clientes de tempo de execução são abertos,
eles também extraem do Gateway. Isso significa que qualquer computador que tenha uma
conexão com o Gateway estará sempre atualizado.
O Que o Ignition Pode Fazer?
O Ignition possui uma arquitetura unificada que fornece uma maneira de criar qualquer
coisa que você precise. Ele pode ser usado para SCADA, histórico, relatórios, aplicativos
de banco de dados, alarmes e muito mais. Você também pode misturar©2019 Inductive Automation Página 338 de 397
Perspective
8. Você verá a atualização do rótulo para o Header Style.
©2019 Inductive Automation Página 339 de 397
Perspective
9. Vamos fazer uma mudança na classe de estilo. Você pode adicionar estados de elemento
adicionais, como um mouseover, para mostrar algo diferente quando o mouse se move
sobre o componente. Abra a classe de estilo Header no Project Browser.
10. Em Styles Rules, clique no ícone Add à direita e selecione a opção Element State.
11. Selecione o novo Element State na lista à esquerda e altere o menu suspenso Element
State para pairar.
12. Agora você pode alterar qualquer um dos elementos CSS para estados diferentes.
Qualquer coisa não definida usará o Base Style. Para reverter as cores de teste e de fundo,
defina as seguintes propriedades:
Text color: white (#FCFCFC)
Background Color: blue (#234077)
©2019 Inductive Automation Página 340 de 397
Perspective
Parâmetros e Vinculações
Agora que temos o Motor View configurado para ficar bem, podemos adicionar vinculações
para tornar tudo dinâmico. Assim como no Vision, precisamos saber qual motor estamos
procurando para configurar nossas vinculações. Para fazer isso, temos parâmetros de
visualização para nos permitir passar valores para a visualização.
Criar um parâmetro
1. Selecione o MotorView no Project Browser.
2. Sob as propriedades na seção PARAMS, clique no link Add View Parameter... e
selecione a opção Value. Isso lhe dará um par key:value que podemos editar.
©2019 Inductive Automation Página 341 de 397
Perspective
3. À direita deste parâmetro há um ícone de seta que indica a direção do parâmetro. Você
pode clicar nesta seta para tornar o parâmetro um parâmetro Input, Output ou InOut.
Deixe-o apontando para a esquerda (Input). Isso nos permite passar informações para
essa visualização quando ela é incorporada em uma visualização maior.
4. Clique duas vezes na tecla PARAMS e digite "motorNum".
5. Clique no value e digite um número de motor válido como "2".
©2019 Inductive Automation Página 342 de 397
Perspective
Criando vinculações de Propriedade
Agora podemos usar esta propriedade para criar ligações indiretas em todos os
componentes do MotorView. As vinculações no Perspective são muito semelhantes às
ligações no Vision. Cada propriedade possui um ícone de vinculação e cada vinculação
possui vários tipos, como Tag, propriedade e assim por diante.
Encadernação do título
Para o Title Label, queremos apenas ver o nome do motor. Passamos apenas o número do
motor, mas podemos construir o nome usando uma ligação de expressão.
1. Selecione o componente Title Label.
2. Na propriedade de texto, clique no ícone de binding à esquerda.
3. Selecione o Expression Binding Type.
4. No campo Expression, clique no ícone Insert Property à direita.
5. Nessa caixa de diálogo, expanda as pastas view e params, selecione o parâmetro
motorNum e clique em OK.
©2019 Inductive Automation Página 343 de 397
Perspective
6. Para adicionar a palavra Motor ao início, atualize a expressão para o seguinte:
"Motor " + {view.params.motorNum}
7. Observe que há uma Binding Preview na parte inferior da tela. A partir daqui, sabemos
que nossa expressão está correta e podemos ver qual será o resultado quando
terminarmos. Clique no botão OK na parte inferior.
Encadernação HOA
O botão Multi-State precisa usar o motorNum PARAM para vincular a um valor de HOA
dinâmico. Usaremos uma vinculação de Tag Indireta.
1. Selecione o componente Multi-State Button e clique no ícone de binding da propriedade
controlValue.
2. Selecione o Tag Binding Type.
3. Selecione o Indirect Radio Button .
4. Você pode construir o Tag Path usando os botões Tag e Property Selector a direita.
Clique no ícone Browse Tags e selecione Motors/Motor 1/HOA Tag.
©2019 Inductive Automation Página 344 de 397
Perspective
5. Apague o "1" no Tag Path e, deixando o cursor ali, clique no ícone Insert Property.
6. Selecione a propriedade view -> params -> motorNum. Clique OK. Você verá uma
referência {motorNum} adicionada ao Tag Path.
7. Marque a caixa de seleção Bidirectional.
©2019 Inductive Automation Página 345 de 397
Perspective
8. Clique em OK.
9. No Property Editor, clique com o botão direito do mouse na propriedade controlValue
e escolha a opção Copy Binding.
10. Clique com o botão direito do mouse na propriedade IndicatorValue e escolha a
opção Paste Binding.
Amps Binding
Da mesma forma, queremos que o LED Amps seja vinculado indiretamente ao Tag
AMPS. Iremos vincular o LED Amps da mesma maneira.
1. Selecione profundamente o contêiner Flex e selecione o componente LED.
©2019 Inductive Automation Página 346 de 397
Perspective
2. No Property Editor, clique no ícone binding da propriedade value.
3. Na janela Edit binding, selecione o tipo Tag Binding e o Indirect radio button.
4. Clique no ícone Browse Tags à direita e selecione Motors/Motor 1/AMPS Tag. Clique
em OK.
5. Apague o "1" no Tag Path, e deixando o cursor ali, clique no ícone Insert Property.
6. Selecione a propriedade view -> params -> motorNum. Você verá uma referência
{motorNum} adicionada ao Tag Path.
7. Clique em OK para enviar.
Binding do Tom da Imagem
Iremos vincular a cor do Motor da mesma forma que o botão Multi-State, mas desta vez
mudamos o valor do HOA para uma cor usando as Binding Transforms.
©2019 Inductive Automation Página 347 de 397
Perspective
1. Selecione profundamente o container Coordinate e selecione o componente de
imagem do motor superior.
2. No Property Editor, expanda para a propriedade elements para localizar
elements[0].fill.paint.
3. Clique no ícone binding da propriedade de paint.
©2019 Inductive Automation Página 348 de 397
Perspective
4. Na tela Edit Binding, selecione o tipo Tag Binding e o Indirect radio button.
5. Clique no ícone Browse Tags à direita e selecione Motors/Motor 1/HOA Tag.
6. Apague o "1" no Tag Path e, deixando o cursor ali, clique no ícone Insert Property.
7. Selecione a propriedade view -> params -> motorNum. Clique OK. Você verá uma
referência {motorNum} adicionada ao Tag Path.
8. Agora que temos o valor, podemos alterá-lo com um Transform. Clique no botão Add
Transform + abaixo da vinculação.
9. Selecione o tipo de transformação Map e clique em Add Transform >. Isso nos
permite mapear entradas e saídas em uma tabela.
10. Na tabela Map, clique no ícone Add à direita três vezes para adicionar linhas à tabela
além da linha Fallback.
©2019 Inductive Automation Página 349 de 397
Perspective
11. Na coluna de tipo Input, digite um valor para cada linha: 0, 1 e 2.
12. As colunas Input e Output podem alterar os tipos, se necessário. No cabeçalho da
coluna Output, clique na palavra Value ou no triângulo à direita. Selecione Color para
mapear números para cores.
13. Clique na célula colorida da linha com valor 0 para alterar a cor. Selecione red.
14. Agora para a mesma linha, clique no color wheel. Na parte inferior, arraste o controle
slider horizontal (alpha ou transparency) para 40.
©2019 Inductive Automation Página 350 de 397
Perspective
15. Repita para as outras cores. 1 é verde e 2 é amarelo. Todos devem ter uma
transparência de 40.
16. Defina a cor Fallback da mesma forma para preto e 40 de transparência.
17. Clique em OK para enviar.
Agora você pode selecionar o MotorView e alterar o parâmetro motorNum para ver tudo
atualizado. Coloque o Designer no modo de visualização e altere o valor HOA para verificar.
Incorporando Views
Agora que temos uma visualizaçãoreutilizável, podemos adicioná-la a qualquer outra
visualização no projeto. Para adicioná-lo a uma view maior, precisamos incorporá-lo.
Existem algumas maneiras de incorporar views, e veremos duas maneiras de fazer isso
com componentes: o componente Embedded View e o componente Carousel.
Componente Embedded View
Quando queremos incluir uma pequena dentro de uma visão maior, podemos usar o
componente Embedded View. Este componente simples permite selecionar uma
visualização e exibi-la. Vamos usá-lo para adicionar alguns MotorViews à Coordinate View
grande.
1. Abra a Coordinated View.
2. Arraste um componente Embedded View para a Coordinate View.
3. Nas propriedades Embedded View, defina a propriedade path como MotorView. Você
pode selecioná-lo na lista suspensa.
4. Clique OK.
©2019 Inductive Automation Página 351 de 397
Perspective
Isso mostra os detalhes do MotorView, mas você pode notar que não há como selecionar
um motor. Para fazer isso, precisamos adicionar um parâmetro.
5. Expanda a propriedade params, clique no ícone Add Object Member e selecione
value.
©2019 Inductive Automation Página 352 de 397
Perspective
6. Clique duas vezes na key e digite "motorNum". Isso deve corresponder exatamente
ao nome do parâmetro MotorView.
7. Clique em value e digite um número de motor válido como "1". Agora você verá o
MotorView preenchido com os dados do Motor 1.
8. Você pode copiar/colar este componente várias vezes e alterar a propriedade motorNum
para mostrar vários motores em sua visualização.
©2019 Inductive Automation Página 353 de 397
Perspective
Componente Carousel
Outra maneira de exibir várias exibições dentro de outra exibição é usar os outros
componentes de incorporação. Um bom exemplo é o componente Carousel. Isso é focado
em uma experiência móvel e permite que os usuários passem por uma lista de
visualizações ou a definem para ser um letreiro de rotação automática. Vamos configurar
uma página que seja útil principalmente em um smartphone.
1. No Project Browser, clique com o botão direito do mouse na pasta Views e selecione
New View....
2. Insira os seguintes valores para a nova view, certifique-se de marcar a caixa de seleção
URL da página:
Name: Carousel
Layout: FlexPage
URL: /carousel
3. Clique no botão Create View.
Selecionamos a visualização Flex porque só precisamos de um componente e é a maneira
mais fácil de forçar um único componente a usar a visualização inteira.
4. Arraste um componente Carousel para a view.
5. Nas propriedades POSITION do componente Carousel, defina grow para 1.
©2019 Inductive Automation Página 354 de 397
Perspective
6. Agora podemos começar a adicionar views ao Carousel. Na propriedade views existe
um objeto 0 com parâmetros dentro dele. Expanda a propriedade views[0].
7. Defina a propriedade viewPath como MotorView. Clique OK.
Isso mostra o motor padrão, mas podemos alterá-lo da mesma maneira que a Embedded
View no exemplo anterior.
8. Expanda a propriedade viewParams, clique no botão + Add Object Member… e
selecione value.
9. Clique duas vezes na key e digite "motorNum". Isso deve corresponder exatamente
ao nome do parâmetro MotorView.
10. Clique em value e digite "1". Agora você verá o MotorView preenchido com os dados
do Motor 1.
11. Para adicionar outra vista do motor, clique no ícone Add ao lado da propriedade de
Views.
©2019 Inductive Automation Página 355 de 397
Perspective
Você terá que definir as propriedades viewPath e viewParams para cada elemento, mas
você pode copiá-las/colar, pois elas são muito semelhantes.
12. Clique com o botão direito do mouse no elemento view[0] que já configuramos e
selecione Copy.
©2019 Inductive Automation Página 356 de 397
Perspective
13. Clique com o botão direito do mouse no novo elemento view[1] e selecione Paste.
Você verá que viewPath e viewParams agora estão preenchidos.
14. Expanda a propriedade viewParams e altere o valor da propriedade motorNum para
2.
15. Coloque o Designer no modo de visualização e mova-se entre Motor 1 e Motor 2
clicando nas setas, pontos ou clicando e arrastando (deslizando) para a esquerda e para
a direita.
16. Agora repita os passos 12-15 para preencher o resto dos motores.
17. Agora você pode iniciar a página /carousel na configuração da página do Perspective
para testá-la.
©2019 Inductive Automation Página 357 de 397
Perspective
Layout do Breakpoint
Agora que temos views de tamanho grande e pequeno, podemos falar sobre outro tipo de
layout de visualização: Breakpoint. A ideia por trás do layout Breakpoint é que um usuário
verá diferentes visualizações com base no tamanho de seu dispositivo. Especificamente,
uma visualização quando a largura é pequena e outra quando a largura é grande. As
visualizações não precisam ser as mesmas, portanto, podem ter componentes ou layouts
completamente diferentes. Vamos criar uma página que mostre a visualização Coordinate
ao usar um dispositivo grande como um monitor de computador e a visualização Carousel
ao usar um dispositivo pequeno como um telefone.
Criando uma Página Breakpoint
1. No Project Browser, clique com o botão direito do mouse na pasta Views e selecione
New View....
2. Insira os seguintes valores para a nova visualização, certifique-se de marcar a caixa
de seleção URL da página:
Name: Breakpoint
Layout: Breakpoint
Page URL: false
3. Clique no botão Create View.
©2019 Inductive Automation Página 358 de 397
Perspective
4. A visualização Breakpoint será aberta e você poderá ver que não há nada nela. Na parte
superior do Property Editor, há uma única configuração de Breakpoint e a capacidade de
selecionar entre dois filhos: Small e Large. Selecione a opção Large clicando nela.
Você só pode ter um componente no Breakpoint Large e um no Small em uma visualização
de Breakpoint. Para nos permitir visualizar mais de uma coisa, vamos puxar uma
visualização Embedded.
5. Arraste um componente Embedded View para a visualização Breakpoint.
6. No Property Editor, defina a propriedade de caminho da Embedded View para
Coordinate. Ao contrário do MotorView, não temos parâmetros para definir.
©2019 Inductive Automation Página 359 de 397
Perspective
7. Clique em OK.
8. Selecione o filho small nas configurações do ponto de interrupção na parte superior do
Property Editor. Você notará que a visualização Breakpoint muda de volta para a tela vazia
original.
©2019 Inductive Automation Página 360 de 397
Perspective
9. Arraste outro componente Embedded View para a visualização Breakpoint.
10. No Property Editor, defina a propriedade path da Embedded View para Carousel. Não
há parâmetros a serem definidos para esta exibição.
11. Agora que nossa visualização Breakpoint está configurada, precisamos de uma
maneira de iniciá-la. Vamos para Perspective Page Configuration clicando no ícone Settings
(engrenagem) no canto inferior esquerdo do Designer.
12. Na lista de configuração da página, clique com o botão direito do mouse na página raiz
"/" e selecione Iniciar URL.
Esta página está atualmente usando a Coordinate View como sua Primary View.
13. De volta à página de configuração, altere o menu suspenso Primary View para nossa
nova visualização Breakpoint.
©2019 Inductive Automation Página 361 de 397
Perspective
Agora, quando você abrir o projeto, ele será padronizado para essa visualização.
14. Inicie uma sessão novamente. Altere o tamanho da sua janela para ver seu breakpoint
mudar quando a janela ficar abaixo de 640px ou acima de 640px.
Segurança do Perspective
Com o Perspective rodando no navegador da web, a segurançaé tratada de forma
diferente dos Vision Clients. Os Provedores de Identidade são usados para autenticar
usuários em uma Sessão do Perspective. Um provedor de identidade (IdP) é um sistema
que mantém informações do usuário e pode autenticar usuários em vários aplicativos.
Existem dois sistemas principais que os IdPs usam: OpenID e SAML. Cada IdP usa um
desses sistemas e o Ignition pode se conectar a qualquer tipo.
Enquanto o Ignition pode ser conectado a IdPs de terceiros, as User Sources do Ignition
também podem ser usadas como IdP. Se você entrar na página Identity Providers na
página da Web do Gateway, você notará que já existe um IdP chamado default. Esse IdP
está vinculado à origem do usuário chamada padrão e autenticará todos os usuários nessa
origem do usuário.
©2019 Inductive Automation Página 362 de 397
Perspective
Níveis de Segurança
Os Níveis de Segurança (Security Levels) são um novo sistema de segurança que funciona
com as informações do usuário fornecidas pelo IdP para conceder aos usuários
determinadas permissões que podem ser aplicadas posteriormente a um projeto do
Perspective. Uma vantagem dos Níveis de Segurança é que eles não são baseados apenas
em funções e podem, em vez disso, utilizar outras informações para determinar quais
permissões um usuário deve ter. No entanto, como os níveis de segurança não estão
conectados a um IdP, precisamos criar os diferentes níveis de segurança aos quais as
informações do usuário do IdP podem corresponder.
1. Vá para a guia Config da página da Web do Gateway. Role para baixo até a página
Security Levels na seção Security. Queremos adicionar níveis para as funções que nossos
usuários podem ter, para que possamos usar esses níveis para segurança.
2. Navegue até o nó Roles da árvore e clique no botão Add Security Levels no canto
inferior direito da tela. Dê ao nível um nome de Administrator.
3. Selecione o nó Roles novamente e adicione outro nível. Dê ao nível um nome de
Operator.
©2019 Inductive Automation Página 363 de 397
Perspective
4. Clique no botão Save na parte inferior da tela para salvar os novos níveis.
Segurança no Projeto do Perspective
Agora que temos os Níveis de Segurança configurados, podemos usá-los dentro do projeto.
Primeiro, o projeto precisa ter um conjunto de Provedores de Identidade.
1. Abra as Propriedades do Projeto.
2. Na seção Geral do Projeto (Project General), clique no ícone Expand e selecione um
Provedor de Identidade que o projeto usará.
©2019 Inductive Automation Página 364 de 397
Perspective
Agora que você escolheu um IdP, há três locais onde a segurança pode ser habilitada.
Protegendo o Projeto
Projetos no Perspective, por padrão, não exigem que um usuário efetue login, mas você
pode exigir determinados níveis de segurança. Nas Propriedades do Projeto (Project
Property), navegue até a seção Perspective Permissions e você pode escolher quais níveis
são necessários para usar o projeto.
Protegendo uma View
Cada visualização individual também pode ser protegida usando Níveis de Segurança.
Basta clicar com o botão direito do mouse na visualização e selecionar Configure View
Permissions. Aqui você pode configurar permissões para uma View como faria para todo
o projeto.
©2019 Inductive Automation Página 365 de 397
Perspective
Protegendo Scripts
Por fim, as ações de script que são acionadas com base em eventos de componentes
também podem ser protegidas. Para adicionar uma ação de script a um evento de
componente, basta clicar com o botão direito do mouse no componente e selecionar
Configure Events. Após selecionar um evento, clique no botão de adição para adicionar
uma ação de script. Depois de escrever um script, você pode clicar no botão Security
Settings na parte inferior da janela para exigir determinados níveis de segurança para
executar o script, da mesma forma que os níveis de segurança podem ser necessários
para acessar um projeto.
©2019 Inductive Automation Página 366 de 397
Perspective
©2019 Inductive Automation Página 367 de 397
Capítulo 20
Relatórios
O módulo Relatórios cria relatórios PDF ricos e dinâmicos a partir de qualquer
dado. O Ignition Reporting Module é uma solução de relatórios independente que
simplifica e aprimora o processo de geração de relatórios do início ao fim.
Você pode gerar relatórios a partir de arquivos existentes ou criá-los do zero.
Extraia dados de várias fontes e crie relatórios com uma interface simples de usar.
Adicione tabelas, gráficos, tabelas, crosstabs, formas e outros componentes para
um impacto visual. Salve seus relatórios nos formatos de arquivo PDF, HTML, CSV
e RTF e configure o agendamento e a entrega automáticos.
©2019 Inductive Automation Página 368 de 397
Relatórios
Criando um Relatório Básico em PDF
O Módulo de Relatórios permite criar relatórios dinâmicos em PDF.
Criando um Relatório
Vamos criar um relatório que exiba o histórico armazenado por um Transaction Group.
1. No Designer, no Project Browser, selecione o item Reports.
A área de trabalho mudará para a visualização de relatórios.
2. No Project Browser, clique com o botão direito do mouse no item Reports e
selecione New Report.
©2019 Inductive Automation Página 369 de 397
Relatórios
3. Clique com o botão direito do mouse em New Report, escolha Rename ou pressione
F2 e nomeie-o como Basic Report.
Você verá cinco seções no relatório: Report Overview, Data, Design, Preview, and
Schedule:
Report Overview: Esta página é uma coleção de informações úteis sobre seu relatório.
Ele será preenchido à medida que o relatório for gerado e usado.
Data: Esta página é onde você define os dados que entram no seu relatório. Você pode
adicionar tantos parâmetros de tipo de dados básicos e fontes de dados de tipo de conjunto
de dados para uso no relatório. Os dados podem ser dependentes de outros parâmetros,
bem como aninhados em conjuntos de dados.
Design: Crie seus relatórios adicionando gráficos e tabelas às suas páginas. Agrupe
tabelas e insira dados da maneira que desejar. Os cálculos em fontes de dados são gerados
automaticamente.
Preview: Visualize seu relatório em andamento. Exiba suas informações de dados e
design para visualizar dentro do designer. Há um limite de consulta aplicado
automaticamente para evitar a solicitação de muitos dados.
Schedule: Configure agendamentos em seu relatório para imprimir, salvar, enviar por e-
mail automaticamente e muito mais.
Adicionando Dados ao Seu Relatório
Vamos adicionar alguns dados do banco de dados ao nosso relatório com base nos horários
de início e término.
1. Clique na guia Data no Designer.
A StartDate e a EndDate já estão criadas para você. Por padrão, eles fazem um intervalo
de tempo começando 8 horas atrás e terminando agora.
2. Como nossos dados estão sendo armazenados em uma taxa muito rápida de 1 segundo,
altere a Expressão StartDate para mostrar 8 minutos em vez de 8 horas.
dateArithmetic (now (), -8, "min")
©2019 Inductive Automation Página 370 de 397
Relatórios
3. Clique no ícone Add para adicionar uma nova fonte de dados. Selecione SQL Query
para adicionar um novo tipo de origem de consulta.
Observação: esse tipo de consulta nos permite usar o construtor de consultas para
gerar consultas para nós.
4. Altere o nome da Data Key no canto superior direito para history.
5. Em SQL Query Builder, defina a lista suspensa para MSSQL, isso dirá ao construtor
qual sintaxe usar.
6. Clique no botão Show Builder para começar a projetar sua consulta.
7. Clique no nome da tabela history à direita e arraste-a para o painel SQL Query
Builder.Você pode ver uma consulta que está sendo gerada para você na parte inferior.
©2019 Inductive Automation Página 371 de 397
Relatórios
8. Clique nas caixas de seleção ao lado de cada uma das colunas Ramp e no t_stamp
para trazer cada uma para a consulta.
©2019 Inductive Automation Página 372 de 397
Relatórios
9. Você pode definir cada coluna para fazer parte da cláusula Where editando a tabela no
meio, mas precisamos de algo um pouco mais complexo para este relatório. Clique no
botão Apply para que possamos modificar nossa consulta para incluir os carimbos de data
e hora de início e término.
10. Modifique a consulta existente para selecionar em nossa tabela de histórico.
SELECT history.t_stamp,
history.Ramp1,
history.Ramp2,
history.Ramp3
FROM history
WHERE history.t_stamp BETWEEN ? AND ?
Você notará que as caixas de parâmetros aparecem na parte inferior quando você
adiciona os pontos de interrogação. Clicar em uma dessas caixas destaca o "?"
correspondente.
©2019 Inductive Automation Página 373 de 397
Relatórios
11. Na caixa Parameter 1, clique no botão Report Parameters e selecione StartDate.
12. Na caixa Parameter 2, clique no botão Report Parameters e selecione EndDate.
13. Clique na guia Preview para verificar se sua consulta está correta. Você notará um
erro na parte inferior se houver um problema.
Agora você tem dados em seu relatório! O próximo passo é Projetá-lo.
©2019 Inductive Automation Página 374 de 397
Relatórios
Criando seu Relatório
Vamos adicionar um display para mostrar os dados que coletamos do banco de dados.
Clique na guia Design no Designer. Essa tela é muito semelhante à seção Janelas do
Designer. O módulo relatório tem sua própria coleção de componentes e propriedades.
Adicione um Título
1. Clique no componente Text e, em seguida, clique e arraste na parte superior da
página.
No Property Inspector, digite "My First Report" e clique no ícone Text para alterar o
tamanho da fonte para 36 Bold.
3. Você pode alterar o tamanho e a localização da forma do texto selecionando-a (clique
para longe e para trás se o contorno estiver vermelho) e, em seguida, arrastando as
alças cinzas.
©2019 Inductive Automation Página 375 de 397
Relatórios
4. Arraste o componente para a borda cinza da página do relatório. Você vai vê-lo encaixar
no canto. Expanda o componente para ter toda a largura do relatório.
Adicionar um Intervalo de Datas
1. No Key Browser, expanda a pasta Parameters.
2. Arraste o StartDate para a tela sob o título.
3. Estique o componente em toda a largura do relatório.
4. Clique na guia Preview. Você verá sua StartDate, mas ela não inclui o carimbo de
data/hora.
5. Volte para a guia Design e selecione o componente StartDate.
6. No Property Inspector, clique na guia Propertys.
7. Altere a propriedade Date Format para adicionar um carimbo de data/hora. Para fazer
isso, você pode digitar um valor ou clicar no ícone Calendar à direita para abrir uma lista
de opções. Vamos inserir o nosso: "MMM d, y h:mm a"
©2019 Inductive Automation Página 376 de 397
Relatórios
8. Volte para a guia Preview para ver a alteração.
9. Na guia Design, agora podemos adicionar a EndDate ao relatório. Com o componente
StartDate ainda selecionado, clique na guia Edit Text no Property Inspector.
10. Você pode adicionar um texto diretamente ou arrastar as teclas do Key Browser.
Arraste o EndDate para a área Edit Text.
11. Agora podemos adicionar um texto entre as duas teclas, digite:
"@StartDate@ to @EndDate@"
©2019 Inductive Automation Página 377 de 397
Relatórios
Adicionar um Número de Página
1. O relatório tem várias chaves internas que podemos usar. No Key Browser, expanda a
pasta Built In.
2. Você notará várias opções de páginas nas Keys. Isso lhe dirá muito sobre a página do
relatório que você está visualizando no momento. Arraste a tecla Page of PageMax para
o relatório. Mova-o para o canto inferior direito do relatório.
3. Vá para a guia Preview para ver o valor da Page of PageMax. Você irá notar que não
está no canto inferior direito. Isso ocorre porque cada nova forma de texto é justificada à
esquerda por padrão.
4. Volte para a guia Design e selecione o componente Page of PageMax.
5. No Property Inspector, clique na guia Properties e defina a propriedade Horizontal
Alignment para a direita. Volte para a guia Preview para verificar suas alterações.
Adicionar um Gráfico
1. Clique no componente Timeseries Chart e arraste-o para a página. Você verá o
Property Inspector no canto inferior esquerdo mudar para mostrar informações sobre ele.
©2019 Inductive Automation Página 378 de 397
Relatórios
2. Arraste o conjunto de dados de histórico para a Timeseries Chart’s Data Key.
3. Arraste os Tags Ramp1, Ramp2 e Ramp3 do Key Browser para as três Pens no
Property Inspector.
©2019 Inductive Automation Página 379 de 397
Relatórios
4. Agora clique na guia Preview para ver seu gráfico!
Adicionar uma Tabela
1. Clique no componente Table e arraste-o para a página. Você verá o Property
Inspector no canto inferior esquerdo mudar para mostrar as informações da tabela.
2. No Key Browser, expanda a pasta Parameters e os objetos Datasources para ver
nossos dados.
3. Arraste o conjunto de dados do histórico para o campo Data Key da tabela.
©2019 Inductive Automation Página 380 de 397
Relatórios
4. Agora podemos arrastar colunas para a tabela. Arraste Ramp1, Ramp2, Ramp3 e
t_stamp para a tabela.
5. Clique no guia Preview para ver sua mesa! Você notará que sua coluna Timestamp
está mostrando apenas a data. Você pode alterar isso da mesma forma que o componente
StartDate no exemplo anterior.
Na guia Design, selecione a célula @t_stamp@ da tabela. No Property Inspector,
selecione a guia Properties e altere a propriedade Date Format clicando no ícone
Calendar. Escolha qualquer formato que você goste.
Agora vamos adicionar uma Header e Summary à tabela.
Relatórios
©2019 Inductive Automation Página 381 de 397
6. Selecione a tabela e vá para a parte inferior do Property Inspector. Clique nas
caixas de seleção Header e Summary para ativar essas linhas.
6. Digite nas colunas de cabeçalho para dar um nome a cada uma.
8. No Key Browser, clique na caixa de seleção Show Calculation. Agora, cada coluna no
conjunto de dados terá valor, total, etc.
9. Arraste cada um dos itens a seguir para a linha Summary de nossa tabela. Em seguida,
clique na célula e digite para adicionar texto a cada uma. Digite o seguinte:
©2019 Inductive Automation Página 382 de 397
Relatórios
Ramp 0: Total @total.Ramp1@
Ramp 1: Average @average.Ramp2@
Ramp 2: Max @max.Ramp3@
10. Clique no guia Preview para ver sua tabela!
Cronograma
Você pode adicionar quantos agendamentos desejar ao seu relatório. Os agendamentos
permitem que você salve seu relatório automaticamente, envie por e-mail e muito mais.
Vamos salvar nosso relatório todos os dias à 1h.
1. Clique na guia Schedule e clique no ícone Add no canto superior direito para adicionar
uma nova agenda à tabela.
2. Abaixo da nossa tabela estão três guias. Na guia Schedule inferior, você pode definir
a frequência com que o relatório é executado usando um sistema de agendamento
CRONTAB. Defina os campos de texto para o seguinte:
Minutes: 0
Hours: 1
Days: *
Months: *
Weekdays: *
Isso nos dá um tempo de 1am, todos os dias.
©2019 Inductive Automation Página 383 de 397
Relatórios
3. Na guia Parameters, você pode alterar os valores dos parâmetros para fora dos
padrões. Nesse caso, queremosque um relatório diário mostre o dia inteiro, não apenas
os últimos 8 minutos. Desmarque as caixas Default e digite o seguinte. Isso retorna de
meia-noite à meia-noite para o dia anterior.
StartDate:
addDays(midnight(now()), -1)
EndDate:
midnight(now())
©2019 Inductive Automation Página 384 de 397
Relatórios
4. Na guia Actions, você pode definir um número de ações para acontecer sempre que
esse agendamento for executado. Clique no ícone Add e selecione New Save File
Action.
5. No campo Folder Path, você pode inserir qualquer caminho (no computador Ignition
ou em uma unidade compartilhada). O Ignition criará esta pasta se ela não existir. Insira
o seguinte folder path e selecione PDF como o tipo de formato.
C: \Reports
6. Você pode alterar a expressão FileName para qualquer coisa que desejar. A função
dateFormat usa a mesma string de formato que vimos ao projetar o relatório. Se o seu
relatório for diário, você não precisará das horas no carimbo de data/hora, mas se ele
estiver sendo executado a cada 30 minutos, você deverá adicionar minutos ao nome do
arquivo para evitar que os arquivos sejam substituídos.
©2019 Inductive Automation Página 385 de 397
Relatórios
7. Tente clicar no botão Run Selected Action Immediately para testá-la.
Relatórios de Clientes
Você pode permitir que seus usuários visualizem relatórios dinamicamente em qualquer
janela do seu cliente. Adicionar um relatório é muito rápido e simples, vamos adicionar
uma nova janela de relatório.
1. Vá para a seção Janela do Designer e crie uma nova janela principal chamada Report.
2. Selecione o componente Report Viewer e adicione-o à sua janela.
3. Selecione seu relatório na propriedade Report Path. Você o verá preencher
imediatamente com 8 minutos de dados.
©2019 Inductive Automation Página 386 de 397
Relatórios
4. Para tornar o intervalo de tempo do relatório dinâmico, adicionaremos um componente
Data Rage à janela.
5. No componente Report Viewer, simplesmente vincule as propriedades StartDate e
EndDate às propriedades Start Date e End Date do componente Date Range.
©2019 Inductive Automation Página 387 de 397
Capítulo 21
Rede Gateway
A Rede Gateway permite conectar Gateways entre si para que possam
compartilhar dados como Tags, alarmes e histórico. Fazer uma conexão de rede
de gateway é fácil.
©2019 Inductive Automation Página 388 de 397
Rede Gateway
Conecte-se a um Gateway
Vamos configurar uma conexão com o Gateway do instrutor.
1. Vá para a seção Config da página da Web do Gateway e navegue até a página Gateway
Network da seção Networking em ambos os Gateways que estarão conectados.
Um Gateway fará uma conexão de saída, enquanto o outro Gateway aceitará a conexão
de entrada. Na aula, você fará a conexão de saída com o Gateway do instrutor enquanto
ele aceitará a conexão de entrada.
2. No Gateway que recebe a conexão de entrada (Gateway do Instrutor), na guia General,
defina Exigir SSL como false. O Instrutor fará isso em seu Gateway.
3. No Gateway que faz a conexão de saída (seu Gateway), selecione a guia Outgoing
Connections na parte superior.
4. Selecione Create new Outgoing Gateway Connection...
©2019 Inductive Automation Página 389 de 397
Rede Gateway
5. Defina o Host para o endereço IP do Gateway que aceita a conexão, Port para 8088 e
Use SSL para False.
6. Role até o final da página e clique no botão Create New Outgoing Gateway Connection.
7. A última etapa é aprovar a conexão de entrada no outro Gateway (instrutor).
Novamente, o instrutor fará isso. Assim que o instrutor aprovar a conexão, seu Gateway
deverá estar conectado.
E isso é tudo o que há para isso.
©2019 Inductive Automation Página 390 de 397
Rede Gateway
Configurar um Provedor de Tags Remoto
Agora que os Gateways estão conectados através da Rede Gateway, você pode verificar o
status da conexão na seção Status, bem como compartilhar dados configurando um
Remote Provider.
Um provedor de Tag Remoto permite que você puxe um provedor de Tag de um Gateway
para outro, desde que ambos estejam conectados através da Rede do Gateway.
1. Na seção Config da página da Web do Gateway, navegue até a página Realtime da
seção Tags.
2. Clique em Create New Realtime Tag Provider.
3. Selecione a opção Remote Tag Provider (Gateway Network).
4. Você deve ver uma opção para o Gateway do instrutor que está conectado através da
Rede Gateway.
©2019 Inductive Automation Página 391 de 397
Rede Gateway
5. Forneça um nome para o Tag Provider, e isso puxará as Tags do instrutor para seu
Gateway em um novo provedor remoto.
6. Entre no seu Designer e encontre o Tag Browser. Expanda a pasta All Providers e você
verá seu novo provedor de Tags.
©2019 Inductive Automation Página 392 de 397
Capítulo 22
Backups
Existem dois tipos de backups no Ignition. Os backups de gateway consistem em
tudo no Ignition, exceto no status de ativação. Isso significa todos os projetos,
Tags, configurações de conexão, configurações de notificações de alarme e muito
mais. Os Backups de Gateway consistem em todos os projetos, Tags,
configurações de conexão, configurações de notificações de alarme e muito mais.
Geralmente, os únicos itens não incluídos em um Gateway Backup são licenças,
módulos e arquivos armazenados externamente ao Ignition, como tabelas de
banco de dados ou programas PLC. Os backups de gateway são ideais ao transferir
uma instalação do Ignition de um servidor para outro. A restauração de um backup
do Gateway é considerada uma operação de substituição, pois a cópia de backup
substituirá todos os recursos no Gateway de destino.
Os backups de projetos são muito menos inclusivos. Eles contêm apenas recursos
no escopo do projeto, como modelos, janelas, Transaction Groups ou um projeto
inteiro. As tags não são incluídas em um backup do projeto, exceto as tags do
cliente, que são do escopo do projeto. Embora menores em escopo, os Backups
de Projetos podem ser mesclados em um projeto existente, permitindo que você
adicione facilmente recursos de um projeto em um projeto diferente.
©2019 Inductive Automation Página 393 de 397
Backups
Backup/Restauração do Gateway
Backup de Gateway
Os backups podem ser feitos acessando a seção Configure do Gateway e selecionando
System > Backup/Restore no Ignition Gateway. Clique no botão Download Backup
e salve o arquivo em algum lugar seguro, de preferência em algum lugar que NÃO resida
na mesma máquina que está executando o Gateway.
Os backups salvam os dados do usuário dentro do servidor Ignition Gateway. Isso inclui
todos os projetos, drivers, imagens e configuração, mas não os módulos.
Restauração do Gateway
A restauração de um backup é feita em System > Backup/Restore no Ignition Gateway.
Clique em Choose File, navegue até o arquivo de backup e clique em Restore. O Gateway
será reiniciado para aplicar as configurações restauradas.
©2019 Inductive Automation Página 394 de 397
Backups
Criando um Backup Agendado
Sempre que estiver desenvolvendo no Ignition, é uma boa ideia fazer backups regulares.
O Ignition pode até fazer isso automaticamente com as configurações de backup
agendadas.
1. Para ativar os backups agendados, na seção Config da página da Web do Gateway, vá
para a página Gateway Settings.
2. Role para baixo até a seção Scheduled Backup Settings.
3. Selecione a opção Enabled Scheduled Backups.
4. Preencha um caminho de pasta para a opção Backup Folder. Pode ser uma pasta local
comoC:\Backups ou uma unidade de rede compartilhada como:
\\StorageComputer\IgnitionBackups
©2019 Inductive Automation Página 395 de 397
Backups
É sempre recomendável armazenar backups longe do computador em que o Ignition está
instalado. Dessa forma, se o computador Ignition travar, você ainda terá acesso aos seus
backups. Em um piscar de olhos, você pode instalar o Ignition novamente e carregar o
backup mais recente para executar rapidamente.
Backup/Restauração do Projeto
Você também pode fazer backup de seus projetos individualmente. Ao fazer isso, lembre-
se de que os recursos com escopo do Gateway não fazem parte do projeto. Esses backups
não incluem Tags, conexões de dispositivos, conexões de banco de dados, etc.
Para fazer um backup do projeto, vá para System > Projects no Ignition Gateway. Clique
no botão mais e na opção de exportação. Isso produz um arquivo de backup *.zip que
pode ser importado diretamente para outro Gateway da mesma página.
Você também pode fazer um backup do projeto a partir do Designer. Clique em File >
Export e será aberta uma janela que permite selecionar quais recursos exportar.
©2019 Inductive Automation Página 396 de 397
Backups
A importação do Designer usa a mesma janela de seleção de recursos que a janela Export
e causará uma mesclagem diretamente no projeto aberto no momento.
©2019 Inductive Automation Página 397 de 397
Backups
Se você estiver fazendo um backup de projeto, provavelmente deseja fazer backup de
suas Tags também. No Designer, selecione a pasta Tags (ou qualquer outra combinação
de Tags/pastas) no Tag Browser. Em seguida, clique no botão Tag Export para exportar
todas as suas Tags.e combinar para
obter a funcionalidade desejada e deixar de fora o resto.
O Que Torna o Ignition Especial?
Existem alguns pontos-chave que diferenciam o Ignition de outros softwares HMI/SCADA.
O licenciamento é vendido pelo servidor e fornece Tags, Clientes, telas, conexões e
dispositivos ilimitados. Ele possui um pequeno instalador que baixa e instala em minutos
no Windows, Mac e Linux. O Designer está incluído e permite criar projetos rapidamente,
vincular valores, configurar expressões e adicionar scripts. É modular, por isso é flexível e
escalável. E é fácil começar e ver resultados reais em apenas alguns minutos.
O Que São Módulos?
Os módulos são aplicações construídas na plataforma Ignition, são semelhantes aos
aplicativos para um smartphone. Os módulos são perfeitamente integrados ao Ignition
para que você possa escolhê-los com base nos requisitos do seu sistema e da planta. Os
módulos incluem conexões e drivers OPC UA, sistemas de visualização, armazenamento
histórico, notificação de alarme e muito mais.
Ignition Software Stack
A arquitetura ou estrutura de alto nível do software Ignition possui várias camadas
distintas. A plataforma fica em Java, portanto, é independente do sistema operacional. Os
módulos estão na plataforma e podem acessar qualquer funcionalidade da plataforma.
Módulos adicionais são criados para funcionar usando a funcionalidade dos módulos
principais como ponto de partida.
Introdução ao software
©2019 Inductive Automation Página 10 de 397
Ignition Como um Hub de Comunicações
Você pode usar o Ignition como um hub de comunicação eficaz em sua rede. Essa
localização central é possível porque o Ignition se comunica com muitos tipos de
dispositivos e serviços.
As Várias Arquiteturas do Ignition
Ignition sendo um software e sistema moderno, combina servidores web, bancos de dados
e OPC UA. Essa combinação permite uma ampla variedade de configurações poderosas
com base no sistema do cliente e nas necessidades da planta. Existem vários tipos de
arquiteturas que podem ser construídas com o Ignition a partir de uma instalação
autônoma e indo até um sistema multi-site espalhado por diferentes países. O Ignition
pode ser usado na nuvem, se você quiser, e tem redundância de failover como recurso
principal.
Partes Principais do Ignition
O Ignition tem quatro partes principais: Gateway, Designer, Vision Clients e Perspective
Sessions. O Gateway é o principal serviço que impulsiona tudo. O Designer é uma aplicação
que permite configurar e construir seus projetos. Os Vision Clients são iniciados a partir
do Gateway, executados como aplicações completas e parecem clientes tradicionais
instalados sem a necessidade de instalar e sincronizar projetos manualmente. Os clientes
são os "tempos de execução" do Módulo Vision. As Sessões do Perspective são iniciadas a
partir do Gateway, executadas em um navegador da Web e parecem clientes tradicionais
instalados que são sincronizados automaticamente. As sessões são os "tempos de
execução" do Módulo Perspective.
Gateway
A arquitetura do Gateway contém muitas partes, cada uma realizando tarefas específicas
ou fornecendo informações para outros sistemas. O Gateway contém conexões de banco
de dados e dispositivos, Tags, alarmes, fontes de usuários, projetos e muito mais.
Projetos
Um projeto é a unidade central de configuração. Um projeto contém Windows, Views,
Transaction Groups e muito mais. Você usa o Ignition Designer para projetar e criar
projetos. Não há limite para o número de projetos que você pode criar no Gateway.
Introdução ao software
©2019 Inductive Automation Página 11 de 397
Configurações Compartilhadas Entre Todos os Projetos
É importante observar que muitos sistemas no Gateway são compartilhados entre todos
os projetos como Tags, conexões de banco de dados, perfis de autenticação, OPC e
conexões de dispositivos, armazenamento de alarmes e notificação.
©2019 Inductive Automation Página 12 de 397
Capítulo 2
Instalação e Ativação
O Ignition pode ser instalado em qualquer sistema operacional Windows, Linux ou
Mac OS X de 64 bits. O instalador pode ser baixado do nosso site ia.io e instalado
em qualquer computador moderno para teste. Ao usar o Ignition na produção, é
recomendado um computador de classe de servidor.
Os requisitos mínimos do sistema para o Ignition são extremamente baixos, mas
recomendamos pelo menos um processador dual core, 4GB de RAM e 10 GB de
espaço livre no HD.
Instalação e Ativação
©2019 Inductive Automation Página 13 de 397
Instale o Ignition no Windows
Antes de instalar o Ignition, certifique-se de ter privilégios de Administrador para
executar o instalador do Ignition. Existe um instalador já baixado e adicionado à sua área
de trabalho na aula. Se você não tiver um instalador, você pode baixá-lo do site
inductiveautomation.com.
1. Vá para a área de trabalho e encontre o arquivo do instalador. É um arquivo executável
chamado algo como: Ignition-X.X.X-windows-x64-installer.exe, onde X.X.X é o número da
versão.
2. Clique duas vezes no arquivo executável .exe para iniciar a instalação. A janela de
configuração dá as boas-vindas ao assistente de configuração do Ignition.
3. Clique em Next.
©2019 Inductive Automation Página 14 de 397
Instalação e Ativação
4. Clique no botão I have read and agree with the terms and conditions e clique
em Next.
A janela Diretório de Instalação é exibida. Por padrão, o Ignition é instalado no diretório
de Arquivos de Programas. Esta é geralmente uma boa escolha.
©2019 Inductive Automation Página 15 de 397
Instalação e Ativação
5. Deixe o diretório de instalação padrão e clique em Next.
6. A janela Installation Mode é exibida. Selecione o modo Typical. A instalação Típica
inclui todos os módulos Ignition que precisaremos.
©2019 Inductive Automation Página 16 de 397
Instalação e Ativação
7. O Assistente de Configuração mostra que o Ignition está pronto para ser instalado.
Clique em Next.
O Java também é instalado se você não o tiver instalado em sua máquina.
8. Depois que o instalador terminar de transferir os arquivos, clique em Next.
9. A instalação do Ignition está concluída, certifique-se de que a caixa de seleção para
Start Ignition Now esteja selecionado e clique em Finish.
©2019 Inductive Automation Página 17 de 397
Instalação e Ativação
Comissionamento
Assim que o Ignition for iniciado, um navegador da Web será aberto e você será solicitado
a iniciar o processo de comissionamento.
1. Clique no botão Get Started para continuar.
Digite um nome de usuário e senha para criar o usuário principal do Ignition.
Isso pode ser alterado posteriormente, mas será a principal maneira de acessarmos o
Gateway e o Designer em classe. Anote seu nome de usuário e senha aqui.
Usuário: ____________________
Senha: ____________________
©2019 Inductive Automation Página 18 de 397
Instalação e Ativação
3. Digite a senha novamente para confirmar e clique em Next.
©2019 Inductive Automation Página 19 de 397
Instalação e Ativação
4. A configuração agora está concluída. Clique no botão Start Gateway para iniciar o
Ignition. Levará um momento para ser concluído.
5. Clique no botão Gateway Homepage para iniciar o Gateway.
©2019 Inductive Automation Página 20 de 397
Instalação e Ativação
O Ignition se instala como um serviço de janela (Start > Control Panel >
Administrative Tools > Services > Ignition Gateway), portanto,ele é iniciado
automaticamente quando o computador é inicializado.
Instalando um Banco de Dados
Para aproveitar ao máximo o Ignition, convém instalar um banco de dados. Nossos
computadores de treinamento já possuem MySQL e Microsoft SQL Server instalados, então
não precisamos fazer mais nada.
Se você deseja instalar um banco de dados em outro computador, consulte o manual
online em docs.inductiveautomation.com.
Acessando o Gateway
O Ignition Gateway é acessado por meio de um navegador da Web e é o principal serviço
de software que impulsiona tudo no Ignition. É um aplicativo único que executa um
servidor da Web incorporado, conecta-se a dados, executa módulos, comunica-se com
Clientes e Sessões e muito mais.
Instalação e Ativação
©2019 Inductive Automation Página 21 de 397
O Gateway possui um servidor web e quando está em execução você pode acessá-lo
para fazer alterações e visualizar dados através de uma página web.
1. Após o comissionamento, seu navegador é redirecionado automaticamente para:
http://localhost:8088
Você pode abrir um navegador mais tarde e inserir este endereço para voltar.
Se estiver em uma máquina diferente, você acessa o Gateway usando o nome do
computador ou o endereço IP da seguinte forma:
http://NomedoComputador:8088 http://XXX.XXX.XXX.XXX:8088
Observação: para acessar a página inicial do Gateway de outra máquina, a porta 8088
deve estar aberta no firewall.
O Gateway é o local central no Ignition onde todos os serviços gerais são configurados.
O próximo passo é fazer login na seção de configuração.
Na página inicial do Gateway, clique no botão Config no canto superior esquerdo.
©2019 Inductive Automation Página 22 de 397
Instalação e Ativação
3. Faça login usando o nome de usuário e a senha que você criou durante a etapa de
Comissionamento da instalação.
Depois de fazer o login, você pode navegar para as várias áreas do Gateway usando a
árvore de menu no lado esquerdo da página.
Guias de Gateway
As guias no canto superior esquerdo do Gateway levam você às seções principais do
servidor.
Home
O guia Home leva você à página inicial que mostra uma lista de maneiras de começar a
usar o Ignition ou aprender sobre ele.
• Inicie o Designer.
• Iniciar um Cliente ou Sessão.
• Saiba mais sobre o Ignition.
Status
O guia Status fornece informações detalhadas sobre várias partes do sistema Ignition.
As subpáginas contêm informações sobre o seguinte e mais:
• O estado dos módulos instalados
• O mapa de redundância atual
• O status de todas as conexões do Banco de Dados, conexões do Servidor OPC e
Provedores de Tags
• O status do mecanismo de armazenamento e encaminhamento, incluindo desempenho
de
métricas e informações de cache de dados
• Designers, Clientes e Sessões Atuais conectados ao Gateway
Configuração
A guia Config leva você para a seção Config, onde você faz todas as operações do
Gateway e da plataforma, como fazer backup do sistema, restaurar e gerenciar projetos,
além de:
©2019 Inductive Automation Página 23 de 397
Instalação e Ativação
• Criar novos projetos.
• Criar conexões de banco de dados.
• Criar conexões com servidores OPC.
• Ajustar as configurações de desempenho.
• Modificar as configurações de dados do Histórico de Tags.
• Gerenciar usuários e funções.
Lançar Designer
O botão Get Designer no canto superior direito da página levará você a baixar o
instalador do Designer Launcher. Executando isso permitirá que você inicie um Designer
e comece a trabalhar em seu projeto.
Licenciamento e Ativação
O Ignition possui um modo de teste gratuito que funciona por duas horas de cada vez e
é infinitamente ajustável. Para esta aula, iremos ativar uma licença de uma semana para
podermos ver histórico ininterrupto e alarmes ao longo da semana. Com esta licença de
servidor Ignition, se pode:
• Iniciar clientes em tempo de execução ilimitados.
• Criar Tags ilimitadas de dispositivos, servidores OPC e outras Tags.
• Conectar-se a PLCs, bancos de dados SQL e dispositivos ilimitados.
Como Funciona o Licenciamento
Ignition é uma plataforma modular, portanto é licenciada com base em módulos.
Módulos licenciados e não licenciados podem operar lado a lado, de modo que alguns
módulos podem ser testados em modo de avaliação enquanto outros estão sendo
executados em um estado licenciado.
©2019 Inductive Automation Página 24 de 397
Instalação e Ativação
©2019 Inductive Automation Página 25 de 397
Instalação e Ativação
Quando um módulo individual está em estado de teste, o Ignition mostra o tempo de
teste restante na parte superior da página da Web do Gateway.
CD-Key e Arquivo de Licença
Apesar do licenciamento modular, geralmente há um CD-Key para cada servidor. Ou
seja, uma única licença que determina quais módulos estão ativados no momento.
Quando os módulos são adquiridos, você recebe uma CD-Key, um código de seis dígitos,
que identifica sua compra. Você então usa esse CD-Key para ativar o software através
do Ignition Gateway. Se você estiver adicionando um módulo adicional, sua conta será
atualizada e você poderá utilizar seu CD-Key existente para ativar os novos recursos.
Você pode desativar seu CD-Key a qualquer momento, liberando-o para ativação em
uma máquina diferente.
©2019 Inductive Automation Página 26 de 397
Instalação e Ativação
Como Funciona a Ativação
A ativação é o método pelo qual uma CD-Key é atribuída a um computador e os módulos
são notificados sobre seu estado de licença. A ativação pode ser feita de forma
automática (pela Internet) ou manualmente (por e-mail ou através do site da Inductive
Automation).
Vamos percorrer a ativação de nossa cópia do Ignition pela Internet.
Ativar o Ignition Online
1. Vá para a página inicial do Gateway e faça login na seção Configure.
2. No menu à esquerda, selecione System > Licensing.
3. Clique no botão Activate Online à direita.
A janela Activate online é exibida.
©2019 Inductive Automation Página 27 de 397
Instalação e Ativação
4. Digite sua CD-Key e clique em Activate.
Uma vez ativada, a Licença Atual é exibida e se você expandi-la, você pode ver todos os
módulos conectados ao seu CD-Key.
5. Vá para a seção Status do Gateway e selecione Systems>Modules.
A página de configuração do módulo é exibida. Observe que a coluna de licença para
alguns ou todos os módulos agora estão listados como ativados (dependendo do seu CD-
Key).
©2019 Inductive Automation Página 28 de 397
Instalação e Ativação
©2019 Inductive Automation Página 29 de 397
Capítulo 3
Conectando a PLCs e Bancos de Dados
Agora que você instalou o Ignition e fez login na seção Config do Gateway, você
pode adicionar ou conectar-se a dispositivos e bancos de dados. Um dispositivo é
uma conexão nomeada a um dispositivo industrial como um PLC. Se você não
possui um dispositivo real, o Ignition possui dispositivos simuladores que você
pode adicionar que agem como se fosse uma conexão com um dispositivo real.
Um banco de dados é um software que permite armazenar dados a longo prazo
para fins históricos ou outros.
Nesta seção, mostraremos como se conectar a dispositivos simuladores,
dispositivos PLC reais e um banco de dados.
©2019 Inductive Automation Página 30 de 397
Conectando a PLCs e Bancos de Dados
Conectando-se a Simuladores
Conectando a um dispositivo simulador
Precisamos nos conectar a alguns dispositivos para nos fornecer Tags para trabalhar
durante a semana. Eles serão usados posteriormente para valores, histórico e alarmes
em tempo real.1. Do Gateway, vá para a seção Config.
2. No menu à esquerda, selecione OPC UA > Device Connections. A página Devices é
exibida.
3. Clique em Create New Device....
4. Na página de seleção do tipo de dispositivo, selecione Programmable Device
Simulator e clique em Next.
©2019 Inductive Automation Página 31 de 397
Conectando a PLCs e Bancos de Dados
5. A página New Device para Programmable Device Simulator é exibida.
Digite GenSim como o Name e clique em Create New Device para adicionar seu
dispositivo.
©2019 Inductive Automation Página 32 de 397
Conectando a PLCs e Bancos de Dados
6. Seu dispositivo foi adicionado e a tabela a seguir é exibida. Se o Ignition for
conectado com sucesso, na coluna Status, ele mostrará Running.
7. Agora podemos definir o programa para o simulador. À direita, clique no menu
suspenso More e selecione edit program.
8. Na lista suspensa Load Program, selecione a opção Generic Program e clique no
botão Load Simulator Program.
©2019 Inductive Automation Página 33 de 397
Conectando a PLCs e Bancos de Dados
9. Você verá muitas instruções aparecerem. É assim que o simulador cria Tags e define
seus valores. Clique no botão Save Program.
©2019 Inductive Automation Página 34 de 397
Conectando a PLCs e Bancos de Dados
10. O simulador obtém seus valores de um arquivo de instruções. Cada arquivo de
instrução possui um conjunto de Intervalos de Tempo e Caminhos de Tags. Se houver
mais de um Intervalo de Tempo para um Tag, ele percorrerá esses valores em ordem.
Alternativamente, você pode ter um único intervalo de tempo e uma função no campo
Origem do valor. O Programa Genérico que carregamos usa este método para valores de
Tags. Isso faz com que os Tags percorrem valores gerados como Rampas, Sines e outros.
Você pode criar manualmente esses arquivos de instrução se quiser simular seu processo
em execução. É melhor exportar o arquivo (como um CSV), modificá-lo em outro programa
como o Excel e importar o arquivo.
Conectando-se a Dispositivos Allen Bradley
Agora vamos conectar a dois PLCs reais: um ControlLogix e um MicroLogix. Você ainda
deve estar na seção Config na página Device Connections.
11. Clique em Create New Device....
A página de seleção do tipo de dispositivo é exibida.
12. Selecione o driver Logix Allen-Bradley e clique em Next.
A página de detalhes do dispositivo é exibida mostrando as configurações disponíveis
para dispositivos AB Logix v21+.
Conectando a PLCs e Bancos de Dados
©2019 Inductive Automation Página 35 de 397
13. Insira as seguintes informações:
Name: CLX
Hostname: 172.16.3.103
Slot Number: 0
Nota: Deixe o connection path em branco.
©2019 Inductive Automation Página 36 de 397
Conectando a PLCs e Bancos de Dados
14. Clique em Create New Device.
Isso leva você de volta à página Devices e dirá que o novo dispositivo "CLX" foi criado
com sucesso. Após alguns segundos, o dispositivo CLX mostrará "Connected" na coluna
Status.
Agora vamos conectar a um segundo dispositivo MicroLogix.
15. Na página Devices, clique em Create New Device....
A página de seleção do tipo de dispositivo é exibida.
16. Selecione Allen-Bradley MicroLogix e clique em Next.
A página de detalhes do dispositivo é exibida mostrando a configuração disponível para o
AB MicroLogix.
17. Insira as seguintes informações:
Name: MLX
Hostname: 172.16.3.101 (ou 172.16.3.102)
©2019 Inductive Automation Página 37 de 397
Conectando a PLCs e Bancos de Dados
18. Clique em Create New Device.
A página Devices é exibida mostrando que você agora criou um novo dispositivo
"MLX".
Agora você instalou 3 dispositivos que estão todos conectados conforme mostrado
abaixo:
©2019 Inductive Automation Página 38 de 397
Conectando a PLCs e Bancos de Dados
Conectando-se a Um Banco de Dados
Muitos dos recursos avançados do Ignition, como Transaction Groups e Histórico de tags,
exigem uma conexão com um banco de dados externo.
Esta seção descreve como você pode se conectar a um banco de dados externo, como o
Microsoft SQL Server.
Conectando-se ao Microsoft SQL Server
1. Do Gateway, vá para a seção Config.
2. No menu à esquerda, selecione Databases > Connections.
3. Clique em Create new Database Connection....
4. Selecione Microsoft SQL Server e clique em Next.
©2019 Inductive Automation Página 39 de 397
Conectando a PLCs e Bancos de Dados
5. Na página New Database Connection, insira as seguintes informações:
Name: MSSQL
Connect URL: jdbc:sqlserver://localhost\SQLEXPRESS
Observação: estamos nos conectando à edição expressa do SQL Server. Se você tiver o
SQL Server completo, substitua SQLEXPRESS por MSSQLSERVER ou seja qual for o
nome da sua instância.
username: sa
password: sqlserver (a senha é o que você digitou durante a instalação do SQL Server,
para Treinamento, a senha é sqlserver)
Propriedades de conexão extras: databaseName=test (digite o nome do seu banco de
dados aqui se for diferente)
©2019 Inductive Automation Página 40 de 397
Conectando a PLCs e Bancos de Dados
©2019 Inductive Automation Página 41 de 397
Conectando a PLCs e Bancos de Dados
6. Na parte inferior do formulário, clique em Create New Database Connection.
Sua conexão agora está criada e a página Conexões do Banco de Dados é exibida
mostrando o Status de sua conexão como Valid.
7. Para exibir os detalhes sobre o status de sua conexão com o banco de dados, consulte
a guia Note na janela acima e clique no link Database Connection Status.
Guia de Conexão do Microsoft SQL Server
Existem várias maneiras diferentes de se conectar ao Microsoft SQL Server, mas na aula
já temos um tipo configurado. Se você quiser usar uma maneira diferente de se conectar,
você pode encontrar um guia de conexão completo na documentação online em
https://docs.inductivetautomation.com.
©2019 Inductive Automation Página 42 de 397
Capítulo 4
Inicie o Designer e Crie um Projeto
Agora que configuramos algumas conexões, iniciaremos o Designer e começaremos a criar
um projeto. O Ignition possui um programa inicializador especial disponível no Gateway
que nos permite usar o Designer sem primeiro instalar o Java em qualquer computador.
Assim que o Designer estiver aberto, iremos nos familiarizar com os painéis e espaços de
trabalho disponíveis. A configuração para quase todos os módulos está disponível através
do Designer, e é aqui que iremos passar a maior parte do nosso tempo durante a semana
trabalhando em nossos projetos.
©2019 Inductive Automation Página 43 de 397
Inicie o Designer e crie um projeto
Iniciando o Designer
1. Clique no botão Get Designer no canto superior direito de qualquer página Gateway.
Isso o levará à página de download do Designer Launcher.
2. Clique no botão Download para Windows na parte superior da página. Esta página
tentará detectar seu sistema operacional e fornecerá o instalador correto.
3. Quando o arquivo DesignerLauncher.exe for baixado, execute-o.
A primeira tela que se abre permite que você crie um atalho na área de trabalho. Clique
em Next para continuar.
Inicie o Designer e crie um projeto
©2019 Inductive Automation Página 44 de 397
4. O Designer Launcher está pronto para ser instalado. Clique no botão Install e
aguarde alguns segundos para concluir.
5. Quando o instalador estiver concluído, clique no botão Finish. O Launcher será
iniciado automaticamente.
6. O Launcher tentará primeiro detectaruma instalação do Ignition em sua rede. Se ele
perguntar se você deseja criar uma conexão com uma instalação específica do Ignition,
verifique o Nome e o Endereço IP e clique em OK se estiver correto. Isso adiciona o
Gateway por Endereço IP.
7. Se o seu Gateway não aparecer, clique no botão Add Designer para adicioná-lo
manualmente.
Aguarde um momento para que a lista seja preenchida e selecione sua instalação do
Ignition na lista. Aquele com um URL de http://localhost:8088 está correto.
Se você não vir seu Gateway, clique no botão Manually Add Gateway no canto
superior direito. Digite a URL http:// localhost:8088 e clique no botão Add Gateway.
©2019 Inductive Automation Página 45 de 397
Inicie o Designer e crie um projeto
8. Isso leva você de volta à lista de Designers. Adicionar o Designer só precisa ser feito
uma vez. Na próxima vez que você abrir o Designer Launcher, ele já terá esse link.
9. Clique no botão Launch para sua nova conexão de Gateway.
10. O Designer é inicializado e a janela de login é exibida.
©2019 Inductive Automation Página 46 de 397
Inicie o Designer e crie um projeto
11. Digite o nome de usuário e a senha que você criou ao instalar o Ignition.
©2019 Inductive Automation Página 47 de 397
Inicie o Designer e crie um projeto
Criando um Projeto
Agora, a janela Open/ Create Project é exibida. Inicialmente, não temos projetos,
portanto, devemos criar um.
1. Clique no botão + New Project para criar um novo projeto.
2. Em Project Name, insira um nome para seu novo projeto (sem espaços).
3. Em Project Title, dê ao seu projeto o título que desejar.
4. Para Project Template, selecione o template Vision Tab Nav na lista suspensa.
Em vez de começar a partir de um projeto em branco, os templates de Projeto permitem
que você comece a partir de um de nossos projetos básicos que já possuem a navegação
configurada. Esses projetos são projetados para ajudá-lo a começar mais rapidamente e
são totalmente personalizáveis.
5. Clique em Create New Project. É isso! O Designer está agora lançado e você pode
trabalhar no projeto!
©2019 Inductive Automation Página 48 de 397
Inicie o Designer e crie um projeto
©2019 Inductive Automation Página 49 de 397
Capítulo 5
Clientes Vision, Janelas e Navegação
Os Vision Clients são iniciados a partir do Client Launcher ou do Designer e
normalmente têm muitas janelas pelas quais o usuário pode navegar.
Aqui você aprenderá como iniciar um cliente e criar uma estrutura de navegação
para seu projeto.
Cada projeto é uma coleção de janelas, componentes e templates. Uma janela é
uma hierarquia de componentes e templates são componentes reutilizáveis.
Podemos criar uma estrutura de navegação para permitir que os usuários se
movam facilmente entre as páginas.
©2019 Inductive Automation Página 50 de 397
Clientes Vision, Janelas e Navegação
Tipos de Lançamento
• Standard - O modo Standard ou Windowed é o método usual de inicialização do
Cliente. O Cliente é iniciado com o Client Launcher e é executado como seu próprio
aplicativo totalmente independente que pode ser movido ou redimensionado em seu
computador.
• Full Screen - O modo de inicialização de Full Screen é semelhante ao modo Windowed
e também funciona como um aplicativo completo e independente. Porém, neste modo, o
Cliente ocupa a tela inteira, não possui barra de título ou bordas e cobre a barra de
tarefas do sistema operacional.
Baixando e Instalando
Os Client Launchers estão disponíveis na página inicial do Gateway e podem ser
instalados no Windows, Linux e Mac OS X.
Baixe e Instale o Client Launcher
1. Na página inicial do Gateway, clique no botão Download Vision Client Launcher.
Isso leva você à página de download do Client Launcher. Esta página tentará detectar
seu sistema operacional e fornecerá o instalador correto.
2. Clique no botão Download for Windows na parte superior da página.
3. Quando o arquivo VisionClientLauncher.exe for baixado, execute-o.
4. Primeiro, decida se deseja um atalho na área de trabalho e clique no botão Next.
©2019 Inductive Automation Página 51 de 397
Clientes Vision, Janelas e Navegação
5. O Client Launcher está pronto para ser instalado. Clique no botão Install e aguarde
alguns segundos para concluir.
6. Quando o instalador estiver concluído, clique no botão Finish. O Launcher será
iniciado automaticamente.
7. O Launcher tentará primeiro detectar uma instalação do Ignition em sua rede. Se ele
perguntar se você deseja criar uma conexão com uma instalação específica do Ignition,
verifique o Nome e o Endereço IP e clique em OK se estiver correto. Você deve ver o
nome inserido ao restaurar o Backup do Gateway anteriormente.
8. Se o seu Gateway não aparecer, clique no botão Add Vision Client para adicioná-lo
manualmente.
©2019 Inductive Automation Página 52 de 397
Clientes Vision, Janelas e Navegação
Aguarde um momento para que a lista seja preenchida e selecione sua instalação do
Ignition na lista. Aquele com um URL de http://localhost:8088 está correto. Clique no
botão Add Selected Gateway no canto inferior direito.
Se você não vir seu Gateway, clique no botão Manually Add Gateway no canto
superior direito. Digite a URL http://localhost:8088 e clique no botão Add Selected
Gateway.
©2019 Inductive Automation Página 53 de 397
Clientes Vision, Janelas e Navegação
9. Isso leva você a uma lista dos projetos do Vision nesse Gateway. Selecione o projeto
desejado e clique no botão Add Applications no canto superior direito. Isso adiciona o
projeto à sua lista de projetos disponíveis e o levará de volta à tela de inicialização.
©2019 Inductive Automation Página 54 de 397
Clientes Vision, Janelas e Navegação
10. Vá para o projeto e clique no botão Launch Windowed para seu projeto abri-lo.
11. Agora você pode usar o Cliente. Navegue pelas janelas clicando nas guias na parte
superior. Ainda não temos muitos componentes, mas em breve teremos.
©2019 Inductive Automation Página 55 de 397
Clientes Vision, Janelas e Navegação
Iniciador de Cliente e Redundância
O Client Launcher pode tirar proveito de uma configuração de Gateway redundante.
Sempre que uma conexão é estabelecida com um gateway principal, o endereço IP do
gateway de backup é armazenado automaticamente no arquivo de configuração do
ativador do cliente. Se o gateway principal não puder ser contatado na próxima vez que o
inicializador do cliente for executado, será feita uma tentativa de contatar o backup.
Janelas, Componentes e Templates
Janelas, componentes e templates são os blocos de construção fundamentais para projetos
que usam o módulo Ignition Vision. Um projeto Vision é uma coleção de Janelas. Essas
janelas são carregadas no Vision Client, onde qualquer número delas pode ser aberto ao
mesmo tempo.
Uma janela em si é uma hierarquia de componentes. Os componentes variam em
complexidade, desde o humilde Button e Label até os poderosos componentes Easy Chart
e Table. Formas como uma linha ou um retângulo também são considerados componentes,
mas possuem alguns recursos adicionais, como a capacidade de serem girados.
Os templates são componentes reutilizáveis em muitas janelas. Eles são projetados
separadamente, fora de qualquer janela. Depois de desenhados, você pode adicioná-los a
qualquer janela dentro de um projeto. O verdadeiro poder de um template é que, se você
alterar seu design, todos os usos desse template em todas as janelas refletirão essas
alterações. Esse recurso oferece aos templates uma grande vantagem sobreum estilo de
design de copiar e colar.
Janelas, componentes e templates são projetados visualmente com uma interface de
arrastar e soltar no Ignition Designer. Cada componente tem uma série de propriedades
que controlam a aparência e o comportamento do componente.
Nomes e Organização das Janelas
Para manter sua navegação de janela organizada, você tem muitas opções. Você pode
criar pastas para cada janela, renomear as pastas e adicionar notas informativas
relacionadas à janela.
Criando Pastas
Ao criar pastas, você pode organizar suas janelas. Cada janela deve ter um nome exclusivo
entre as janelas em sua pasta. O nome de uma janela e o caminho da pasta são muito
importantes, é como outras janelas fazem referência a ela.
©2019 Inductive Automation Página 56 de 397
Clientes Vision, Janelas e Navegação
Renomeando uma Janela
Para renomear uma janela, no painel Project Browser, clique com o botão direito do
mouse em uma janela e escolha Rename ou pressione F2.
Adicionando Notas a uma Janela
Para adicionar notas de janela no Project Browser, clique com o botão direito do mouse
em uma janela e escolha Notes. Este campo de texto de formato livre permite
documentar a finalidade e qualquer informação técnica sobre como a janela funciona.
Tipos de Janelas
Existem três tipos de janelas: Main, Popup e Docked. Você pode criá-los no menu File >
New, conforme mostrado abaixo.
Ao alterar as propriedades de uma janela, você pode transformar qualquer janela em
várias configurações. Você pode alterar as propriedades Dock Position, Border Display
Policy, Titlebar Display Policy, e Start Maximized de uma janela para alterá-la em uma
das três categorias.
©2019 Inductive Automation Página 57 de 397
Clientes Vision, Janelas e Navegação
Janelas Principais
Uma janela é chamada de "janela principal" quando está definida como Start Maximized
e tem suas políticas de exibição de borda e barra de título definidas como When Not
Maximized ou Never.
A janela principal ocupa todo o espaço disponível (menos o espaço usado por qualquer
janela "encaixada") e funciona como uma típica "tela HMI". Pode haver muitas janelas
principais em um projeto, mas você deve abrir apenas uma janela principal por vez.
Janelas Pop-up
Uma janela é chamada de "janela pop-up" quando sua Dock Position é definida como
Float e não está maximizada. Suas políticas de exibição de borda e barra de título
geralmente são definidas como When Not Maximized ou Always, para que possam ser
alteradas pelo usuário final.
As janelas pop-up geralmente são abertas por componentes em uma janela principal e
devem estar na parte superior da tela. Portanto, eles devem ter sua propriedade Layer
definida com um número maior que zero para que não se percam atrás da janela principal.
Para fazer uma janela aparecer em uma posição específica, edite a propriedade Starting
Location da janela.
As janelas pop-up geralmente são parametrizadas para que possam ser reutilizadas. Por
parametrizado, significa que você define parâmetros personalizados para a janela pop-up
e quando você cria instâncias dela para utilizá-la, você pode simplesmente passar seus
novos valores de parâmetro.
Janelas Ancoradas
Uma janela é chamada de "janela ancorada" cuja Dock Position é definida para qualquer
coisa, menos Float. Isso faz com que a janela fique em um lado da tela e nada possa
sobrepô-la. Ele também normalmente tem suas políticas de exibição de borda e barra de
título definidas como Never. Isso faz com que a janela "ancorada" pareça estar unida
perfeitamente com a janela atual da "tela principal".
Essas telas geralmente são altas e finas ou curtas e largas, dependendo da borda em que
estão encaixadas. A finalidade de uma janela ancorada é disponibilizar algumas
informações, normalmente controles de navegação e informações gerais de status. O uso
de janelas ancoradas pode ajudar a eliminar a cópia de elementos de design repetitivos
em cada tela, facilitando a manutenção.
©2019 Inductive Automation Página 58 de 397
Clientes Vision, Janelas e Navegação
Alterando as Propriedades da Janela
As Janelas tem várias propriedades que definem sua aparência e comportamento. Você
pode alterar essas propriedades no Property Editor. Há também algumas propriedades
adicionais que você pode alterar no Project Browser.
Alterando as Propriedades no Property Editor
1. Vá para o painel Property Editor no Designer.
2. Altere as propriedades nas seções Behavior, Appearence e Layout do painel.
©2019 Inductive Automation Página 59 de 397
Clientes Vision, Janelas e Navegação
Alterando Propriedades do Project Browser
1. No Project Browser, clique com o botão direito do mouse em uma janela.
2. No menu pop-up, você pode selecionar e editar as seguintes propriedades da janela:
Open on Startup, "About" Window, Notes..., Scripting..., e Security. Observe que
a janela deve estar aberta para editar algumas propriedades.
©2019 Inductive Automation Página 60 de 397
Clientes Vision, Janelas e Navegação
Anatomia de Uma Janela
Nome e Caminho
As janelas são a unidade de nível superior de um design para projetos do Vision. Uma
janela é identificada por seu caminho, que é o nome de todas as suas pastas familiares
mais seu nome com barras (/) entre cada uma. Por exemplo, o caminho para uma janela
no nível superior chamada MainWindow é simplesmente seu nome: MainWindow,
enquanto o caminho para uma janela chamada UserOptions em uma pasta chamada
OptionsWindows é: OptionWindows/UserOptions.
©2019 Inductive Automation Página 61 de 397
Clientes Vision, Janelas e Navegação
Barra de Título e Borda
Uma janela pode exibir uma barra de título e/ou uma borda. A barra de título permite que
você arraste a janela e aloja os botões fechar e maximizar/restaurar da janela. A borda
de uma janela permite redimensionar a janela quando ela está flutuando ou encaixada.
A exibição ou não da barra de título e da borda depende dos valores das propriedades da
política de exibição da barra de título e da borda da janela e seu estado atual.
Normalmente, uma janela exibe uma barra de título e uma borda quando está flutuando,
mas apenas uma barra de título quando maximizada. Muitas vezes, é desejável remover
barras de título e bordas em janelas maximizadas.
Root Container
Dentro de uma janela há sempre o Root Container. Este é um componente de contêiner
normal, exceto que não pode ser excluído ou redimensionado, seu tamanho é sempre
definido para preencher toda a janela. O Root Container é onde você coloca todos os seus
componentes na janela.
©2019 Inductive Automation Página 62 de 397
Clientes Vision, Janelas e Navegação
Adicionando uma Janela à Navegação
Como começamos com um dos projetos de esqueleto de template, é fácil adicionar
novas janelas à navegação. Se você olhar no Project Browser em Windows, poderá ver
várias pastas e janelas que foram criadas automaticamente para você.
Existem duas janelas com um ícone de quadrado e triângulo à direita delas: Janelas
principais/Visão geral e Navegação. Essas janelas são configuradas para abrir na
inicialização, portanto, são as primeiras janelas que o usuário verá no ambiente de
tempo de execução.
A janela de Navegação contém guias que permitem que você escolha a janela principal
que deseja visualizar. No momento, existem apenas três janelas principais. Vamos
adicionar outro.
Adicionar uma Janela Principal
1. Clique com o botão direito do mouse na Main Windows/ Overview e selecione
Duplicate Janela.
©2019 Inductive Automation Página 63 de 397
Clientes Vision, Janelas e Navegação
2. Clique com o botão direito do mouse na janela recém-criada, Overview(1), e selecione
Rename.
3. Renomeie