Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
TipEsta secção apresenta passo a passo um
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

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á:

  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_Templates

Criação

_

dos

_

Templates

Anchor_bookmark501

_bookmark501Criaçã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_Bays

Criação

_

dos

_

tags

_

de

_

Bays

anchor

_bookmark505_bookmark505Criaçã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

no 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_DNP3

Criação

_

de

_

um

_

Canal

_

DNP3

anchor

_bookmark507_bookmark507Criaçã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:

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

AnchorCriação_do_NodoCriação_do_Nodo Anchor_bookmark508_bookmark508

abaixo:

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_/_Nodo

Criação

_

dos

_

Pontos

_

do

_

Canal

_

/

_

Nodo

Anchor_bookmark509_bookmark509Criaçã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
e

Modifier
sDataType

Modifiers

AccessType

Label

Scaling

Tag.SEL_LINHA_01.DJ
_52A

Node.SEL_311L_
01


Native


AccessType.Re
adRead


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.

AnchorCriação_dos_AlarmesCriação_dos_Alarmes Anchor_bookmark510

_bookmark510

Criaçã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 CONDITIONN

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_MedidasCriação_do_Histórico_de_Medidas Anchor_bookmark511_bookmark511

horário de atuação e quando ele encerra, possui os dois horários.

Criaçã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.
Image Removed
Para cada Bay, deve ser repetido procedimento semelhante.

AnchorCriação_das_Telas_da_AplicaçãoCriação_das_Telas_da_Aplicação Anchor_bookmark512_bookmark512

.
Image Added
Para cada Bay, deve ser repetido procedimento semelhante.

Criaçã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.

Anchor

Tela

_

Principal_(AN_MainPage)Tela_Principal_(AN_MainPage) Anchor_

bookmark513
_bookmark513
Tela Principal (AN_MainPage)

Na tela principal foram colocadas informações da Linha 01, conforme mostra a figura abaixo:

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;
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;

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:

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
?).

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:

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()

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

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

Image RemovedImage 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 RemovedImage Added

Anchor
Janela_de_Comando_(AN_Command)
Janela_de_Comando_(AN_Command)

Anchor_bookmark514_bookmark514

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:

Anchor
Utilizando_ferramentas_de_diagnose
Utilizando_ferramentas_de_diagnose
Anchor
_bookmark515
_bookmark515

Panel

Nesta pagina:

Table of Contents
maxLevel2