Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip

Esta secção apresenta passo a passo um roteiro de elaboração de um projeto partindo da Aplicação Default.

Os tópicos a seguir apresentados são:

AnchorCriação_dos_DicionáriosCriação_dos_Dicionários Anchor_bookmark500_bookmark500

passo a passo um roteiro de elaboração de um projeto partindo da Aplicação Default. Para iniciar crie um projeto novo, escolhendo o template de projeto DefaultNewProject. Então entre no projeto e inicia a criação dos demais objetos como detalhado nestes próximos itens.

Criação dos Dicionários

Na criação de tags e tipos de usuário (templates), deve-se definir o dicionário que será usado para traduzir o valor de uma variável para seu estado. Este atributo chamado Parameter é usado nas listas de Alarme. Assim, se o tag de uma proteção vale "1", na lista de alarme será apresentado o texto "ATUADO".
Deve-se assim, criar os dicionários que serão usados para posteriormente criar os templates e tags.
Foram criados os dicionários:

  • SEL_CHAVE: Estados de chaves de 4 posições;

  • SEL_PROTECTION: Digitais com frase Normal / Atuado;

  • DNP_IIN_CMD: Resultado dos comandos DNP (Internal Indication); Se o usuário deseja manter a aplicação em duas línguas, deverá:

Image RemovedImage Added
  1. Incluir no dicionário Inglês, apresentado na figura abaixo, todos os termos em português que colocar em telas e objetos.

  2. Em todos os objetos com texto usar a propriedade Localization;

  3. Em dinâmicas com texto e em Scripts, no local de textos sempre usar

@Client.Locale("texto") e adicionar o texto ao dicionário Inglês;

AnchorCriação_dos_TemplatesCriação_dos_Templates Anchor_bookmark501_bookmark501

Criação dos Templates

Anchor_bookmark502_bookmark502

Introdução

Na organização de uma nova aplicação, o usuário deve planejar adequadamente os templates. Assim, a título de exemplo, vai-se criar uma aplicação de monitoração de uma subestação com:

  • Bay de linha;

  • Bay de transformador;

  • Bay de alimentador;

Como um bay pode ocorrer mais de uma vez, para cada bay será criado como um template.
Os pontos de cada bay são fornecidos, geralmente, em planilhas Excel e, a partir destas planilhas, deverão ser criados os templates, isto é, é mais fácil adequar à planilha Excel para o formato do ActionNET do que digitar ponto por ponto diretamente nos Tags e Templates.
Estudando os tags de um bay o usuário poderá observar sequências de pontos que se repetem em diferentes bays. Estas sequências, a título de facilitar o trabalho e padronizar tags, devem ser também criadas como templates. Assim, por exemplo, em diferentes bays se tem a mesma
sequência de variáveis analógicas e, para facilitar o trabalho, define-se esta sequência como um template, conforme a figura abaixo:
Image Removed

AnchorTemplate_dos_BaysTemplate_dos_Bays Anchor_bookmark503_bookmark503

como um template, conforme a figura abaixo:

Image Added

Template dos Bays

Para gerar o template de um bay, a partir de uma planilha Excel, basta organizar seus pontos de forma idêntica a da Aba de templates. Para criar uma planilha organizada de forma idêntica a Aba de Templates, basta copiar uma linha desta Aba e colá-la em uma planilha Excel, conforme a planilha abaixo gerada a partir do template ANA1.
Image Removed

Image Added


A partir desta planilha, esvaziam-se as linhas, mantendo o cabeçalho, e depois se deve organizar nossa planilha de pontos dos bays, no formato desta planilha, conforme mostrado na figura abaixo, onde foram colocados os pontos do bay de linha existentes em um relé SEL_311.
Image Removed

Image Added


Nesta planilha, as células em azul são os pontos originais da planilha de pontos do bay de linha e os pontos em branco correspondem a pontos criados pelo usuário, pelos seguintes motivos:

  1. ANA: corresponde aos pontos analógicos do bay que estão apresentados na figura do item 8.2.1.

  2. ALM_GROUP: é uma variável calculada que deve ser colocada em todos os bays onde se deseja ter um alarme de grupo identificando se este bay tem ou não pelo menos um alarme atuado. Observar que em

  3. Em Category se tem a variável AN_GRUALM_ALM associada.

  4. IIN_VAL e IIN_CMD: são variáveis associadas ao canal DNP3 que serão explicadas mais a frente, quando da criação dos pontos de Entrada e Saída da aplicação.

  5. CB (Circuit Break): foi criado um template para o disjuntor onde estão declaradas a variável de entrada com o estado do disjuntor e as duas variáveis de saída para ligar / desligar o disjuntor;

  6. SC_89-1: Foi criado um template para chaves seccionadoras onde estão declaradas a variável de entrada com o estado da chave e as duas variáveis de saída para ligar / desligar a chave;

Image RemovedImage Added


As colunas do template usadas são:

  • Type: Tipo do ponto que no caso são:

    • Digital (0 ou 1): variáveis digitais de entrada e saída;

    • AnalogInt: Variáveis digitais discretas são definidas como AnalogInt: estado de disjuntor e seccionadoras (assumem valores entre 0 e 3).

    • AnalogDouble: Variáveis analógicas são definidas como AnalogDouble.

    • ANA1: template com todas as variáveis analógicas de um bay.

  • Parameter: contém o nome do dicionário que converte o valor da variável em um texto;

  • Retentive: o texto properties indica que no início do programa tanto o valor do Tag como suas propriedades serão iguais aos seus valores quando do encerramento do programa.

  • Category: o item "7.3.2" trata as categorias existentes na aplicação default e, no caso, criou-se um único tag referente ao alarme de grupo associado a este bay.

  • Description: texto descritivo do tag.

Image Removed Image Added


Assim como se criou o bay associado ao relé SEL_311L (proteção de linha) se deve criar os pontos associados aos relés que coletam pontos dos alimentadores e do transformador.

AnchorCriação_de_Níveis_(Assets)Criação_de_Níveis_(Assets) Anchor_bookmark504_bookmark504

Criação de Níveis (Assets)

Os Assets (níveis) correspondem à organização dos agrupamentos de pontos da aplicação. Os tags tratados a partir da aplicação default devem ser diferentes de SysInternals que é o agrupamento dos tags usados nas rotinas internas da aplicação Default, para gerar as telas com os diversos relatórios disponibilizados automaticamente:

  • Histórico de Medidas;

  • Sumário de Tags;

  • Sumário de Alarmes;

  • Sumário de Eventos

    ;

  • Pesquisa a Eventos;

  • Log de Operação;

  • Tendência em Tempo Real e Histórica;

Usando NewLevel (botão direito do mouse sobre DefaultNewProject_DNP) definiu-se, conforme figura a seguir, três novos itens de segundo nível, conforme mostra a figura abaixo:

  • Alimentadores: terá os alimentadores.

  • Linhas: terá os bays de linha;

  • Trafos: terá os bays de trafo;

Image RemovedImage Added


Todos os tags criados deverão estar em um destes níveis.

AnchorCriação_dos_tags_de_BaysCriação_dos_tags_de_Bays Anchor_bookmark505_bookmark505

Criação dos tags de Bays

Para criar os bays da subestação, vai-se para a Aba de Objects e criam-se os bays associando- se seus tipos (Type) aos respectivos templates, conforme a figura abaixo.
Image Removed

Image Added


Observar que estes tags devem ser do tipo Server (estão no servidor) e não podem estar incluídos no nível SysInternal.

AnchorCriação_dos_DevicesCriação_dos_Devices Anchor_bookmark506_bookmark506

nível SysInternal.

Criação dos Devices

Nesta aplicação exemplo, considera-se que os relés estejam se comunicando com o SCADA através do protocolo DNP 3.0. Para cada protocolo existe um manual específico.

AnchorCriação_de_um_Canal_DNP3Criação_de_um_Canal_DNP3 Anchor_bookmark507_bookmark507

Criação de um Canal DNP3

Na Aba de canais (Channel) cria-se um novo canal chamado "DNP301" usando o protocolo DNP3 com comunicação TCP/IP, conforme figura abaixo:
Image Removed

Image Added


Neste canal se usa os atributos default, conforme abaixo:
Image Removed

AnchorCriação_do_NodoCriação_do_Nodo Anchor_bookmark508_bookmark508

Image Added

Criação do Nodo

O nodo corresponde ao IED (relé, CLP, UTR, etc.).
Na ABA Node deve-se criar um novo nodo conforme a figura abaixo:

Após, deve-se acertar os atributos do node, clicando na coluna Primary Station.

AnchorCriação_dos_Pontos_do_Canal_/_NodoCriação_dos_Pontos_do_Canal_/_Nodoanchor

_bookmark509_bookmark509

Criação dos Pontos do Canal / Nodo

A criação dos pontos é feita de forma similar a criação dos templates, isto é, a maneira mais fácil é criar um ponto qualquer na ABA de pontos, exporta-lo para uma planilha Excel e após, a partir da planilha de pontos da aplicação criar uma planilha Excel mantendo a organização da planilha exportada:

TagName

Node

Address

DataTyp

DataType

eModifier

Modifiers

s

AccessType

Label

Scaling

Tag.SEL_LINHA_01.DJ


_52A

Node.SEL_311L_


01


Native


AccessType.

Re

Read

ad


None

No manual do protocolo DNP 3 existem estão as informações sobre como preencher cada coluna de um ponto. Os pontos BI são de entrada digital (Binary Input), os pontos AI são entradas analógicas, os pontos CRO são saídas digitais (Control Relay Output) e os pontos IIN são entradas do tipo Internal Indication do DNP3.
Observações:

  1. Para criar um ponto duplo como no caso das seccionadoras, definiu-se a seccionadora como uma variável AnalogInt, e criou-se dois pontos digitais que correspondem ao Bit0 e Bit1 da seccionadora (linhas 10 e 11 da planilha acima);

  2. As variáveis do tipo IIN (linhas 40 e 41) tem endereço fixo, conforme apresentado no manual do DNP3;

  3. Para executar uma saída deve-se chamar a rotina (Class) AN_TAG com método de inverter o valor da variável de saída:

@Script.Class.AN_Tags.ToggleDigOutput(<tag de saída>);

  1. Sempre que enviar um comando, é interessante colocar uma mensagem no Sumário de Eventos registrando este comando. Para tal execute a ação:

@Alarm.SystemEvents.AddCustomMessage("Mensagem" + txtNome) onde txtNome é o string com o nome da variável comandada.

anchor

Criação

_

dos

_

Alarmes

Criação_dos_Alarmes Anchor_bookmark510_bookmark510Criação dos Alarmes

A criação de alarmes, a partir da Aplicação Default, exige que se crie na tabela de Itens de Alarmes uma entrada (Linha) para cada comportamento que deve ser sinalizado. A tabela abaixo mostra o número de entradas que serão criadas em função da situação:

DESCRIÇÃO

LINHAS

CONDITIO
N

CONDITION

GROUPS

OBSERVAÇÕES

Sinalizar qualquer mudança

1

Changed

EVENTOS_BIP


Sinalizar diferentemente 0/1
(0)

2

Equal 0

NOACK_BIP


Sinalizar diferentemente 0/1
(1)

2

Equal 1

NOACK_BIP


Analógica com 1 Limite
(anormal)

1

HI / LO

HI_NOACK_BIP ou
LO_NOAC K_BIP

Quando normal – Hora
Normalização

Analógica com 2 Limite (HI)

2

HI

HI_NOACK_BIP

Quando normal – Hora
Normalização

Analógica com 2 Limite
(LOW)

2

LO

LO_NOACK_BIP

Quando normal – Hora
Normalização

Analógica com 4 Limites

4

HI

HI_NOACK_BIP


Analógica com 4 Limites

4

LO

LO_NOACK_BIP


Analógica com 4 Limites

4

HIHI

HIHI_NOACK_BIP


Analógica com 4 Limites

4

LOLO

LOLO_NOACK_BIP


Observações:

  1. Pode-se colocar alarmes de Tags analógicos com dois limites superiores e 2 inferiores.

    • Quando um dos alarmes está atuado, os Tags são mantidos no Sumário de Alarmes e no de Eventos. Quando os Tags são normalizados, eles saem do Sumário de Alarmes e, no Sumário de Eventos é colocado o horário de sua normalização.

    • No ActionNET, quando da definição do Sumário de Alarmes, é selecionado o parâmetro "Merge Hi e HIHI" que mantém na lista o alarme de mais importância quando dois alarmes deste tipo estão atuados, isto é, se HIHI está atuado, a linha de HI é inibida e o mesmo ocorre com LO e LOLO.

  2. Há eventos que são armazenados no histórico sempre que ocorre uma mudança de valor. Estes eventos são usados em manobras de equipamentos tais como seccionadora, tap de transformador, etc.

Em tempo de execução, o Sumário de Alarmes apresenta os alarmes que estão atuados no momento.
Já o Sumário de Eventos tem os eventos apresentados em ordem cronológica Eventos analógicos tem seu horário de atuação e normalização sinalizados. Assim, quando um alarme analógico inicia, ele possui apenas o horário de atuação e quando ele encerra, possui os dois horários.

AnchorCriação_do_Histórico_de_Medidas

Criação

_

do

_

Histórico

_

de

_

Medidas

Anchor_bookmark511_bookmark511Criação do Histórico de Medidas

Conforme apresentado, na Aplicação Default existe uma tabela (Table1) que é gravada no mínimo a cada minuto e sempre que o tag for alterado. Abaixo é mostrada esta tabela preenchida com todas as variáveis analógicas do bay de linha 01.

Para cada Bay, deve ser repetido procedimento semelhante.

anchor

Criação

_

das

_

Telas

_da_AplicaçãoCriação_das_Telas_da_Aplicação Anchor_bookmark512_bookmark512Criação das Telas da Aplicação

Conforme apresentado no capítulo referente a Aplicação Default, já existem nove telas onde oito já estão prontas, ver em "Telas Disponibilizadas" na página 288.

AnchorTela_Principal_(AN_MainPage)Tela_Principal_(AN_MainPage) Anchor_bookmark513_bookmark513Tela Principal (AN_MainPage)

Na tela principal foram colocadas informações da Linha 01, conforme mostra a figura abaixo:
Image Removed
As quatro retas e o texto Proteções são retângulos e TextOutput, respectivamente, que após serem criados foram agrupados, sem nenhum vínculo à tags;
Image Removed Os valores das três variáveis analógicas a direita são TextBox associados aos tags das variáveis: potência ativa, reativa e tensão.
As proteções são checkBox, sendo cada uma associada a um tag do bay de linha. Elas são tipo Output (Binding: Outputonly) o que quer dizer que o usuário nunca faz uma entrada no checkbox;
Image Removed
O desenho do bay de linha foi feito com objetos retângulos, círculos e polígonos (seta) que ao final foram agrupados tornando-se um único objeto:
Image Removed
O disjuntor e a seccionadora são Símbolos criados para a aplicação. A seccionadora apresenta a figura de fechado (retângulo vermelho), aberto (reta verde inclinada) e inválido (# assume letra
?).
Image Removed
Image Removed O disjuntor fica vermelho quando fechado, verde quando aberto e com a bandeirola vermelha ao lado quando impedido. Um clique tanto sobre o disjuntor como a seccionadora abre a tela de comando:
A bandeirola do símbolo DISJ só é visível quando o tag do disjuntor está Disable, conforme mostra a dinâmica abaixo:
Image Removed
O Disjuntor é um botão com quatro dinâmicas: Um clique sobre ele faz duas ações:

  1. Faz que a variável global AN_DISJ_SELECTED seja o disjuntor selecionado:

Tag.AN_DISJ_SELECTED.Link=#TagDJ:(Tag.SEL_LINHA_01.CB.DJ).GetName(
)

  1. Chama a janela de comando:

Display.AN_Command.Open()
Image Removed

  • O mouse sobre o objeto aumenta seu tamanho de 20% e sua opacidade é 0%.

Image Removed
  • Quando a variável é "0", a cor é verde e quando é "1" a cor é vermelha:

Image Removed
  • O "X" são duas linhas agrupadas e possuem uma dinâmica que é só aparecer quando a qualidade do tag é diferente de 192 (192 = qualidade OK).

Image Removed AnchorJanela_de_Comando_(AN_Command)Janela_de_Comando_(AN_Command) Anchor_bookmark514_bookmark514Janela de Comando (AN_Command)

Nesta janela existem três TextOutputs com os textos:

  • Estado

  • Condição

  • Comando Alarme

Os botões de ligar e desligar possuem a dinâmica de Mouse clique (MouseLeftButtonDown) associadas aos Scripts MouseLeftButtonDown1 e MouseLeftButtonDown2, respectivamente, que enviam o comando de Ligar e Desligar para o campo:
Image Removed
AnchorUtilizando_ferramentas_de_diagnoseUtilizando_ferramentas_de_diagnose Anchor_bookmark515_bookmark515

da Aplicação

Conforme apresentado no capítulo referente a Aplicação Default, já existem nove telas onde oito já estão prontas, ver em "Telas Disponibilizadas".

Anchor
_bookmark513
_bookmark513
Tela Principal (AN_MainPage)

Na tela principal foram colocadas informações da Linha 01, conforme mostra a figura abaixo:
Image Added
As quatro retas e o texto Proteções são retângulos e TextOutput, respectivamente, que após serem criados foram agrupados, sem nenhum vínculo à tags;
Image Added Os valores das três variáveis analógicas a direita são TextBox associados aos tags das variáveis: potência ativa, reativa e tensão.
As proteções são checkBox, sendo cada uma associada a um tag do bay de linha. Elas são tipo Output (Binding: Outputonly) o que quer dizer que o usuário nunca faz uma entrada no checkbox;
Image Added
O desenho do bay de linha foi feito com objetos retângulos, círculos e polígonos (seta) que ao final foram agrupados tornando-se um único objeto:
Image Added

Image Added

O disjuntor e a seccionadora são Símbolos criados para a aplicação. A seccionadora apresenta a figura de fechado (retângulo vermelho), aberto (reta verde inclinada) e inválido (# assume letra ?).

Image Added

O disjuntor fica vermelho quando fechado, verde quando aberto e com a bandeirola vermelha ao lado quando impedido. Um clique tanto sobre o disjuntor como a seccionadora abre a tela de comando:
A bandeirola do símbolo DISJ só é visível quando o tag do disjuntor está Disable, conforme mostra a dinâmica abaixo:
Image Added
O Disjuntor é um botão com quatro dinâmicas: Um clique sobre ele faz duas ações:

  • Faz que a variável global AN_DISJ_SELECTED seja o disjuntor selecionado:

Tag.AN_DISJ_SELECTED.Link=#TagDJ:(Tag.SEL_LINHA_01.CB.DJ).GetName( )

  • Chama a janela de comando:

Display.AN_Command.Open()
Image Added

  • O mouse sobre o objeto aumenta seu tamanho de 20% e sua opacidade é 0%.

Image Added
  • Quando a variável é "0", a cor é verde e quando é "1" a cor é vermelha:

Image Added
  • O "X" são duas linhas agrupadas e possuem uma dinâmica que é só aparecer quando a qualidade do tag é diferente de 192 (192 = qualidade OK).

Image Added

Anchor
Janela_de_Comando_(AN_Command)
Janela_de_Comando_(AN_Command)
Janela de Comando (AN_Command)

Nesta janela existem três TextOutputs com os textos:

  • Estado

  • Condição

  • Comando Alarme

Os botões de ligar e desligar possuem a dinâmica de Mouse clique (MouseLeftButtonDown) associadas aos Scripts MouseLeftButtonDown1 e MouseLeftButtonDown2, respectivamente, que enviam o comando de Ligar e Desligar para o campo:
Image Added

Anchor
Utilizando_ferramentas_de_diagnose
Utilizando_ferramentas_de_diagnose
Anchor
_bookmark515
_bookmark515

Scroll ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-htmltrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue

Nesta página:

12false