Você está na página 1de 101

SAGE

SISTEMA ABERTO DE GERENCIAMENTO DE ENERGIA

Manual

Administração do SAGE

SAGE_ManAdm.doc

Janeiro de 2010
Quadro de Revisão

Nº Data Descrição Versão


00 22/01/2010 Revisão de Formato

Preparado por:

21.941-911 • Av. Horácio de Macedo, 354 • Rio de Janeiro - RJ


Tel.: (021) 2598-6000 • Fax: (021) 2260-1340

A informação contida neste documento é de propriedade do CEPEL, tendo se originado de trabalho desenvolvido nesta empresa para consulta e
referência dos usuários do sistema SAGE, e não poderá ser reproduzida ou utilizada para quaisquer outros fins sem autorização prévia e
expressa do CEPEL. Este documento baseia-se em informação disponível na data de sua publicação. Embora sejam feitos esforços para
torná-lo preciso, este não se propõe a cobrir todos os detalhes ou particularidades apresentadas pelo sistema. O CEPEL não se responsabiliza
por notificar os usuários deste documento de possíveis alterações feitas posteriormente.
Conteúdo
1 INTRODUÇÃO.......................................................................................................1

2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD).................................................3


2.1 INTRODUÇÃO............................................................................................................................ 3
2.2 FUNCIONAMENTO ..................................................................................................................... 3
2.3 CONFIGURAÇÃO DO DUMPBD NA BASE FONTE........................................................................... 2
2.3.1 Entidade Classe de Processos (Tabela PRO) .................................................................. 2
2.3.2 Relacionamento de Severidade X Classe de Processos (Tabela SXP) ........................... 2
2.3.3 Entidade Instância de Processo (Tabela INP) .................................................................. 3
2.3.4 Entidade Preservação de Dados (Tabela PSV) ................................................................ 3
2.4 CONFIGURAÇÃO DO DUMPBD.................................................................................................... 4
2.5 UTILIZANDO O PROCESSO DUMPBD .......................................................................................... 6
2.5.1 Selecionando uma Classe de MCD para DUMP............................................................... 7
2.5.1.1 Seqüência de operações para marcar/desmarcar MCDs para Dump .................................... 8
2.5.2 Tabela A – MCD’S Comuns aos Modelos SCADA e EMS.............................................. 10
2.5.3 Tabela B - MCD’S Exclusivas do Modelo SCADA .......................................................... 10
2.5.4 Tabela C – MCD’S Exclusivas do Modelo EMS.............................................................. 10
2.5.5 Alterando a Periodicidade para DUMP Automático ........................................................ 11
2.5.5.1 Seqüência de operações para alterar a periodicidade do DumpBd...................................... 12
2.5.6 Executando o DUMPBD Manualmente ........................................................................... 13
2.5.6.1 Seqüência de operações para executar o DumpBd a qualquer momento ........................... 14

3 MANUAL DA BASE HISTÓRICA..........................................................................15


3.1 INTRODUÇÃO.......................................................................................................................... 15
3.2 BASES DO SAGE ................................................................................................................... 15
3.2.1 Base FONTE ................................................................................................................... 16
3.2.2 Base REFERÊNCIA ........................................................................................................ 16
3.2.3 Base ON-LINE ................................................................................................................. 16
3.2.4 Base HISTÓRICA ............................................................................................................ 17
3.3 SISTEMA DE GERENCIAMENTO DA BASE HISTÓRICA GBH......................................................... 17
3.4 ENTIDADE TEMPO REAL X TABELA BASE HISTÓRICA ................................................................ 18
3.5 TABELAS DE REFERÊNCIA ....................................................................................................... 19
3.6 TABELAS DINÂMICAS .............................................................................................................. 20
3.6.1 Esquemas de Gravação .................................................................................................. 22
3.6.1.1 Esquema Síncrono ............................................................................................................... 22
3.6.1.2 Esquema Assíncrono ........................................................................................................... 23
3.6.2 Particionamento............................................................................................................... 23
3.6.2.1 Nomenclatura das Tabelas Dinâmicas ................................................................................. 24
3.6.2.2 Tabelas de Controle ............................................................................................................. 24
3.6.2.3 Arquivamento ....................................................................................................................... 25
3.7 CONFIGURANDO A BASE HISTÓRICA DO SAGE ........................................................................ 25
3.7.1 Configurando Entidades e Atributos da Base HISTÓRICA............................................. 26
3.7.1.1 Configurando Tabelas de Referência ................................................................................... 26
3.7.1.2 Atributos HISTPER & HISTSLC ........................................................................................... 26
3.7.1.3 Configurando Tabelas Dinâmicas......................................................................................... 26
3.7.1.3.1 Exemplo de uso de máscara ........................................................................................... 27
3.8 PROGRAMA STI_DCATBH........................................................................................................ 28
3.9 CONSOLIDAÇÃO ..................................................................................................................... 29
3.9.1 Configuração da Consolidação ....................................................................................... 29
3.9.2 Consolidação de Medidas Analógicas............................................................................. 30
3.9.3 Consolidação de Valores Digitais.................................................................................... 31
3.9.4 Instalação da Consolidação ............................................................................................ 32
3.10 ESQUEMA EXEMPLO ............................................................................................................... 32
3.10.1 Cálculo Tamanho da Base de Dados HISTÓRICA..................................................... 33

i
CONTEÚDO

3.10.2 Tamanho de Tabelas DINÂMICAS ............................................................................. 34


3.11 PARÂMETROS DE ATIVAÇÃO DO STI_CARGBH .......................................................................... 35
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR) ...37
4.1 SINTAXE DE ATIVAÇÃO............................................................................................................ 37
4.2 CONSTRUÇÃO DE CENÁRIOS DE SIMULAÇÃO............................................................................ 38
4.2.1 Subcomandos.................................................................................................................. 39
4.2.2 Comandos ....................................................................................................................... 40
4.2.3 Simulação de Controle Supervisório ............................................................................... 44
5 MONITOR DE MENSAGENS FÍSICAS (MMF) ......................................................47

6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG) .........................49


6.1 EXECUÇÃO DA FUNÇÃO .......................................................................................................... 49
6.2 CONFIGURAÇÃO DA FUNÇÃO NA BASE FONTE........................................................................ 51
6.3 AUTO-CONFIGURAÇÃO DA FUNÇÃO NA BASE REFERÊNCIA ................................................... 54
6.4 OPERAÇÃO EM TEMPO REAL – TELAS DA FUNÇÃO.................................................................... 54
7 SCRIPTS DE MANUTENÇÃO DO SAGE ..............................................................59
7.1 INTRODUÇÃO.......................................................................................................................... 59
7.2 RELAÇÃO DOS SCRIPTS .......................................................................................................... 59
7.3 DESCRIÇÃO DOS SCRIPTS ....................................................................................................... 60
7.3.1 sincconfig......................................................................................................................... 60
7.3.2 AtualizaBD ....................................................................................................................... 61
7.3.3 ativasage ......................................................................................................................... 64
7.3.4 rligador ............................................................................................................................. 64
7.3.5 rvisoracesso..................................................................................................................... 65
7.3.6 geralog ............................................................................................................................. 65
7.3.7 cria_base ......................................................................................................................... 66
7.3.8 remove_base ................................................................................................................... 67
7.3.9 habilita_base.................................................................................................................... 67
7.3.10 instala_sage ................................................................................................................ 68
7.3.11 instala_update ............................................................................................................. 68
7.3.12 remove_update ........................................................................................................... 69
7.3.13 zipconfig ...................................................................................................................... 69
7.3.14 criasagecnf .................................................................................................................. 71
7.3.15 criasageexe ................................................................................................................. 71
7.3.16 habilita_postgres ......................................................................................................... 72
7.3.17 habilita_gbh ................................................................................................................. 73
7.3.18 TrocaIdentTelas .......................................................................................................... 73
8 PLANILHA DE LEITURAS PERIÓDICAS..............................................................75

9 CONTROLE DE PROCESSO VIA LINHA DE COMANDO (GCD_SHELL) ...............77


9.1 SINTAXE DE ATIVAÇÃO............................................................................................................ 77
9.1.1 Comandos ....................................................................................................................... 78
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)..............................79
10.1 FUNCIONAMENTO ................................................................................................................... 79
10.2 CONFIGURAÇÃO PARA UTILIZAÇÃO ADS .................................................................................. 80
10.2.1 SSC_AMB – Variáveis de Ambiente ........................................................................... 80
10.2.2 Base de Dados ............................................................................................................ 82
10.2.2.1 Tabela PRO - Classe de Processos ..................................................................................... 82
10.2.2.2 Tabela SXP - Relacionamento Severidade x Classe de Processos ..................................... 82
10.2.2.3 Entidade Instância de Processo ........................................................................................... 82
10.2.3 Script de Ativação: ...................................................................................................... 83
10.2.4 Configuração de Ativação do Servidor ADSL no Boot................................................ 84
10.3 ARQUIVOS CL.REF , PA.REF, PA.DAT E CL.DAT................................................................. 85
10.3.1 CL.REF e PA.REF (codificação ASCII)....................................................................... 85
10.3.2 PA.DAT (codificação binária) ...................................................................................... 86

ii
CONTEÚDO

10.3.3 CL.DAT (codificação binária) ...................................................................................... 86


10.3.4 Codificação do Estado e dos Flags............................................................................. 87
11 SUPERVISÃO VIA LINHA DE COMANDO ( INFO-TR) ......................................89

12 FAILOVER DE GATEWAYS .............................................................................93

iii
CONTEÚDO

iv
Capítulo

1
1 Introdução
Este manual tem por objetivo reunir informações que são utilizadas pelo usuário do SAGE em
diversas tarefas de administração do sistema, tanto para aquelas realizadas no ambiente de tempo-
real quanto para as realizadas em ambiente off-line. É composto pelos seguintes módulos:
▪ Capítulo 2 - Manual do DumpBd: apresenta o funcionamento e a configuração deste módulo,
obtendo através deste uma cópia quente da base de dados tempo real.

▪ Capítulo 3 - Manual da Base Histórica: é descrito o sistema de Gerenciamento da Base


Histórica do SAGE, GBH-SAGE, que permite o armazenamento de informações de tempo-
real previamente selecionadas pelo usuário em um banco de dados relacional
possibilitando a recuperação de séries temporais representativas do comportamento do
sistema elétrico monitorado.

▪ Capítulo 4 - Simulador do Tráfego de Mensagens de Tempo Real (SIM-TR): é descrito o


processo que permite o envio de mensagens ao SAC, simulando a atividade dos
conversores de protocolo, na aquisição.

▪ Capítulo 5 - Ajuste de Limites por Patamares de Carga: trata de uma função de ajuste
automático de limites operativos de medidas analógicas por monitoração de patamares de
carga, também chamada no SAGE de PCARG.

▪ Capítulo 6 - Monitor de Mensagens Físicas MMF: utilitário que monitora o tráfego de


mensagens transmitidas e recebidas pelas linhas de comunicação ligadas ao SAGE em
qualquer protocolo utilizado.

▪ Capítulo 7 Ajustes de Limites por Patamares de Carga: descreve a função de ajuste


automático de limites operativos de medidas analógicas por monitoração de patamares de
carga

▪ Capítulo 8 – Scripts de Manutenção do SAGE: lista os scripts desenvolvidos a fim de facilitar


as tarefas relacionadas à manutenção da configuração do SAGE.

▪ Capítulo 9 Planilha Excel gerada pelo Módulo HIST: descreve uma funcionalidade que gera
arquivos contendo um histórico de valores de pontos analógicos.

1
1 INTRODUÇÃO

▪ Capítulo 10 - ADS: descreve o módulo ADS (Aquisição de Dados de Sistemas Externos) que
funciona como um conversor de protocolo, aquisitando os dados analógicos e digitais
vindos de outros sistemas ou de um outro SAGE.

▪ Capítulo 11 – INFO-TR: descreve o utilitário INFO_TR para consulta interativa de dados de


tempo real.

▪ Capítulo 12 – Failover de Gateways: descreve a funcionalidade de failover de gateways


apresentada pelo SAC.

2
Capítulo

2
2 Preservação da Base de Dados
(DumpBD)

2.1 Introdução
O módulo DumpBd foi desenvolvido de modo a permitir ao usuário ter uma cópia quente de sua
base de dados tempo real preservando assim informações como por exemplo listas de alarmes,
pontos alterados manualmente pelo operador, cálculos dinâmicos etc.
Tais informações serão preservadas, a partir da introdução deste módulo na configuração do
usuário, por meio de especificação na base de dados fonte. É importante lembrar que os dados
ficarão retidos na base de dados de tempo real, mesmo após uma nova ativação do sistema.

2.2 Funcionamento
O DumpBd é executado de duas formas distintas: automaticamente, segundo um ciclo mínimo de
10 minutos ou de forma manual por meio de um botão de execução na IHM do SAGE. O tempo
mínimo de execução automática poderá ser mudado pelo usuário, alterando-o para um tempo maior.
O DumpBd grava periodicamente, em $BD, arquivos XDR com as informações de Tempo real em
memória. Isso permitirá que o usuário possa preservar informações por ocasião da desativação e
nova ativação do SAGE ou no carregamento de uma nova base de dados.
O usuário tem a opção de ativar o sistema utilizando a base de dados fria ou quente. A base fria é
gerada pelo procedimento de carregamento da base referência do SAGE, feito pelo STI. Esta base de
dados é gerada em branco, ou seja, com as informações de Tempo real não inicializadas, e fica em
$BD/fria. A base quente, localizada em $BD, é a base preenchida com valores de Tempo real, gerada
pelo DumpBd a cada ciclo, através do dump das informações da base residente em memória.
No carregamento da base fria o STI sobrescreve os arquivos XDR em $BD pelos arquivos XDR
em branco de $BD/fria. No carregamento da base quente o STI faz um merge dos arquivos XDR
salvos pelo DumpBd em $BD, com os arquivos XDR da base fria, gerada pelo STI em $BD/fria e
coloca os arquivos XDR resultantes em $BD, sobrescrevendo os anteriores.
A preservação salva um backup da base anterior em $BD/old antes de fazer o merge. Em caso de
problemas com a nova base é possível voltar com a base anterior através da opção Retoceder Base
do Visor Base ou ativar o sistema com a base fria.

3
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

2.3 Configuração do DumpBd na Base Fonte


Para utilizar o processo DumpBd, é necessária sua inclusão na base de dados fonte do SAGE,
mediante o preenchimento das tabelas PRO, SXP, INP, bem como a configuração da preservação
através da tabela PSV. A seguir veremos um exemplo, que assume uma configuração com dois nós
na rede SAGE (sage1 e sage2) funcionando como gateway e IHM.

2.3.1 Entidade Classe de Processos (Tabela PRO)

Esta tabela configura os processos do SAGE. O seguinte registro deve ser acrescentado em
pro.dat:

PRO
ATIVA= CAD ou PRS*
ATVAT= AUT
ESSEN= NES
HORAA= 0
ID= DumpBd
MONIT= MON
NOME= Dump da Base Tempo Real
NUATV= 4
SCRAT= DumpBd_on.rc
SCRDE= DumpBd_off.rc
TINIC= nn**
TIPPR= INSP

* Use CAD para configuração padrão e PRS para cluster.


** O ideal é que o DumpBd seja o último processo a ser lançado. Para tanto, este deve ter o maior
TINIC configurado, somando a ele 10 segundos a mais no caso de configuração por tempo, e 1 a
mais no caso de configuração por ordem.
Obs.: Para obter o significado dos demais atributos, consulte o Guia de Configuração da base de
dados do SAGE.

2.3.2 Relacionamento de Severidade X Classe de Processos (Tabela


SXP)

Esta tabela define para cada processo um limite tolerado de erros e eventos que ele pode gerar,
classificados por severidade. Os seguintes registros devem ser acrescentados em sxp.dat:

SXP
NFALS= 4
PRO= DumpBd
SEV= SNULA
SXP
NFALS= 4
PRO= DumpBd
SEV= NORML
SXP
NFALS= 4
PRO= DumpBd

2
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

SEV= ADVER
SXP
NFALS= 4
PRO= DumpBd
SEV= URGEN
SXP
NFALS= 4
PRO= DumpBd
SEV= FATAL
SXP
NFALS= 4
PRO= DumpBd
SEV= PANIC

Obs.: Para obter o significado dos atributos, consulte o Guia de Configuração da base de dados
do SAGE.

2.3.3 Entidade Instância de Processo (Tabela INP)

Um processo pode ser ativado em vários nós e cada uma dessas ativações define uma instância
do processo. Esta entidade configura as instâncias de todos os processos do SAGE.
O DumpBd deve ser cadastrados para os nós da rede em que irá rodar. Segue o exemplo de
preenchimento de inp.dat para os nós sage1 e sage2 :
Ao fim da configuração do no sage1:

INP
NOH= sage1
ORDEM= 1
PRO= DumpBd
...
... Demais Processos no sage2
...

Ao fim da configuração do no sage1:

INP
NOH= sage2
ORDEM= 2
PRO= DumpBd

Obs.: Para obter o significado dos atributos, consulte o Guia de Configuração da base de dados
do SAGE.

2.3.4 Entidade Preservação de Dados (Tabela PSV)

Esta entidade configura a informações para dump e/ou preservação dos dados de tempo real.
Em psv.dat é feita a selação do grupo de informação que deseja dumpear/através da edição do
atributo PRESERV. Se o atributo for definido com o valor SIM, será feito o dump e/ou a preservação
daquelas informações, se for definido como NÃO, não será feito o dump e/ou a preservação daquela
informação.

3
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

Em casos onde mais de uma informação esteja contida em uma única MCD, basta que uma delas
esteja marcada para que toda MCD seja dumpeada, mas só será feita a preservação das
informações que estiverem marcadas, conforme o exemplo abaixo:

PSV
GRUPO= LIM_URG
PRESERV= SIM
PSV
GRUPO= LIM_ADV
PRESERV= NAO

No caso acima, os dois grupos de informação estão na mesma MCD, portanto toda a MCD
(SCD_ClasSac - Dados do serviço de aquisição e controle) será dumpeada, mas somente a
informação de limite de urgência será preservada, os limites de advertência não serão preservados,
pois o atributo PRESERV desta informação este como NAO.

PSV
GRUPO= ALARME
PRESERV= SIM

Neste segundo caso, toda a MCD SSC_ClasAlr (Dados do serviço de tratamento de alarmes)
será dumpeada, e todas as informações serão preservadas. Caso seja colocado NAO em PRESERV,
a MCD não será dumpeada e portanto nenhuma informação de alarme poderá ser preservada.

2.4 Configuração do DumpBd


A configuração do DumpBd na IHM do SAGE é bem simples e requer apenas três passos.
O primeiro é a confecção de uma tela que permita configurar alguns parâmetros de funcionamento
do DumpBd. A seguir, vemos um modelo de tela contemplando tais funcionalidades (mais tarde
serão abordados detalhadamente). Esta tela está disponível na base DEMO do SAGE, distribuída no
CD de instalação.
O segundo passo é a criação de uma licença especifica para esta tela a fim de se criar uma
política de acesso a esta ferramenta. Isto é feito através da edição do arquivo Licencas.dat em $IHM
(\home\sage\sage\config\$BASE\ihm) acrescentando as seguintes linhas:
LIC_Conv_Dump {
{ ACAO_EntrarDadoTempoReal_Valor 1 PRIV_Supervisor }
{ ACAO_EntrarDadoNaoTempoReal 1 PRIV_Supervisor }
{ ACAO_VerTela 1 PRIV_Operador }
{ ACAO_EntradaGenerica 1 PRIV_Supervisor }
{ ACAO_EntrarDadoPorClick 1 PRIV_Supervisor }
}

Como podemos observar, os usuários com privilégio de “Supervisor” poderão executar as


operações avançadas nesta tela, cabendo aos usuários com privilégio de “Operador”, somente
visualizar a mesma. Vale lembrar que a tela em questão deverá estar associada a esta licença para
tanto. Está associação é feita no editor de telas, o SigDraw utilizando a opção Licença do menu Tela,

4
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

selecionando na Lista a LIC_Conv_Dump (para maiores informações sobre privilégio e licenças,


consulte o Guia de Configuração do SAGE).
O terceiro passo (opcional), está relacionado à alteração do período de ativação default do
DumpBd, que pode ser modificado através do script de ativação $SAGE/bin/scripts/DumpBd_on.rc. O
tempo do ciclo em minutos deve ser inserido após o parâmetro $CONTEXTO na linha de ativação do
processo, como no exemplo a seguir:

Script de Ativação Original (DumpBd_on.rc)


#*
# Ativação do Serviço de dump da base
#
echo “SAGE: Ativando o Serviço de Dump da Base de Dados
(DumpBd)...”
mv $LOG/DumBd.log $LOG/DumpBd.old
nohup $SAGE/bin/$SAGE_SO/$MODELO/DumpBd $CONTEXTO >
$LOG/DumpBd.log &
sleep 5
echo “SAGE: Serviço DumpBd ativado.”
exit

Para ciclo de 30 minutos a linha deverá ser alterada para:


nohup $SAGE/bin/$SAGE_SO/$MODELO/DumpBd $CONTEXTO 30
>$LOG/DumpBd.log &

Feita esta alteração, o Dump será executado a cada 30 minutos na próxima ativação.

5
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

Figura 2 - 1 - Tela Exemplo Encontrada na Base Demo.

2.5 Utilizando o Processo DumpBd


As operações básicas possíveis através da tela do DumpBd são as seguintes:
▪ Alteração da periodicidade de execução;

▪ Seleção das classes de MCD para dump;

▪ Execução imediata (manual) do processo.

Estas operações são descritas passo a passo abaixo:

6
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

Figura 2 - 2 -

2.5.1 Selecionando uma Classe de MCD para DUMP

Para administrar a seleção das classes de MCD para dump, siga a seqüência de operações
apresentada abaixo.
Logo após, veremos três tabelas que contêm o nome, descrição e uma indicação de pre-seleção
para dump (feita pelo Sub-Sistema de Tratamento da Informação – STI veja tabela PSV.DAT) de
todas as MCD`s do sistema SAGE nos modelos SCADA e EMS. Lembre-se, antes da decisão de
retirar ou colocar uma MCD para dump, consulte estas tabelas para se certificar de que os dados que
serão ou não preservados realmente são necessários.

7
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

2.5.1.1 Seqüência de operações para marcar/desmarcar MCDs para


Dump

8
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

Figura 2 - 3 - Sequência de operações para marcar/desmarcar MCDs para Dump

Em seguida, veremos três tabelas contendo nome, descrição e indicação de pre-seleção para
dump, feita pelo STI, de todas as MCD`s do sistema SAGE nos modelos SCADA e EMS. Estas
tabelas deverão ser consultadas, antes da selecionar ou cancelar seleção de uma MCD para dump,
de modo que a seleção não seja incoerente ou desnecessária.

9
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

2.5.2 Tabela A – MCD’S Comuns aos Modelos SCADA e EMS

Classe de MCD Descrição da Classe DUMP


STI_ClasPrsv Dados auxiliares na preservação da base de dados NÃO
SCD_ClasIdf Identificadores dos pontos físicos SCADA NÃO
SCD_ClasIds Identificadores do serviço de aquisição e controle NÃO
SCD_ClasSac Dados do serviço de aquisição e controle SIM
SSC_ClasAlr Dados do serviço de tratamento de alarmes SIM
SSC_ClasCat Catálogo da base referência SIM
SSC_ClasEve Dados do serviço de controle de eventos NÃO
SSC_ClasSsc Dados do serviço de suporte computacional NÃO **
SSC_ClasTbm Dados de instancias de MCD`s NÃO **
SSC_ClasTbv Dados de vistas de MCD`s NÃO **
SSC_ClasTnd Dados de tendências de medidas SIM

** IMPORTANTE ! Estas classes de MCD nunca devem ser marcadas para Dump pois isso pode
gerar mal funcionamento do sistema.

2.5.3 Tabela B - MCD’S Exclusivas do Modelo SCADA

Classe de MCD Descrição da Classe DUMP


SIG_ClasGeral Dados utilizados pelo Subsistema de Interface Gráfica SIM
SCD_ClasCod Dados de comunicação do SCADA NÃO
SCD_ClasFis Dados da configuração física do SCADA NÃO
SCD_ClasIdd Identificadores das entidades do SDD NÃO
SCD_ClasSdd Dados do serviço de distribuição de dados NÃO

2.5.4 Tabela C – MCD’S Exclusivas do Modelo EMS

Classe de MCD Descrição da Classe DUMP


SAR_ClasAnacon Dados do Análise de Contingências SIM
SAR_ClasCad Dados de cadastro exclusivos do SAR NÃO
SAR_ClasConfig Dados do Configurador da Rede SIM
SAR_ClasContem Dados do Controle de Emergência SIM
SAR_ClasDinamico Dados dinâmicos de uso exclusivo do SAR NÃO
SAR_ClasEstado Dados relacionados com o estado do sistema SIM
SAR_ClasEstmon Dados do Estimador de Estado SIM
SAR_ClasFluxop Dados do Fluxo de Potência NÃO
SAR_ClasIhm Dados do SAR para IHM SIM
SAR_ClasSavecase Área de armazenamento dos casos de estudo SIM
SAR_ClasVeCad Dados de cadastro associados à mensagem de vetor NÃO
de estado
SAR_ClasVeDim Dados dinâmicos associados à mensagem de vetor de NÃO
estado
SAR_ClasLimite Limites dos equipamentos SIM
STI_ClasCadastro Dados de cadastro de uso geral NÃO
STI_ClasIdent Dados de cadastro de uso geral - identificadores e NÃO
nomes

Definição das Classes de MCD do CAG


SCG_ClasCagT Tunning e Interface IHM do Controle Automático de SIM
Geração
SCG_ClasCagC Configuração do Controle Automático de Geração NÃO

10
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

Classe de MCD Descrição da Classe DUMP


SCG_ClasCagI Interface CAG com a Programação de Intercambio e SIM
Analise da Reserva de Geração
SCG_ClasCagD Saída Dinâmica e Performance do Controle Automático SIM
de Geração

2.5.5 Alterando a Periodicidade para DUMP Automático

Para alterar a periodicidade de execução do DumpBd, siga a seqüência que se segue. É


importante ressaltar que a periodicidade mínima de execução é de 10 minutos. Mesmo quando é
definido um valor inferior, o processo assume automaticamente o valor mínimo de 10 minutos.

11
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

2.5.5.1 Seqüência de operações para alterar a periodicidade do DumpBd

12
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

Figura 2 - 4 - Seqüência de operações para alterar a periodicidade do DumpBd

2.5.6 Executando o DUMPBD Manualmente

Para executar o DumpBd a qualquer momento, siga a seqüência que se segue. É importante
lembrar que qualquer tentativa de execução imediata, quando já existe uma execução automática de
dump em andamento, será descartada.

13
2 PRESERVAÇÃO DA BASE DE DADOS (DUMPBD)

2.5.6.1 Seqüência de operações para executar o DumpBd a qualquer


momento

Figura 2 - 5 -Seqüência de operações para executar o DumpBd a qualquer momento

14
Capítulo

3
3 Manual da Base Histórica

3.1 Introdução
informação no SAGE flui a partir de duas fontes específicas. A primeira é feita através da
configuração do sistema, é feita de forma off-line através do carregamento da base fonte. A segunda
é proveniente da monitoração do sistema elétrico pelas aplicações do SAGE, ou seja, são
informações de tempo real que variam durante o processo de supervisão e controle, de forma on-line.
A Figura 3 - 1 descreve o fluxo da informação do SAGE.

Figura 3 - 1 - Fluxo da informação no SAGE.

3.2 Bases do SAGE


A informação no SAGE está organizada em bases de dados, cada qual com características
próprias para atender a uma etapa do processo de supervisão e controle de sistemas elétricos em
tempo real.
As bases de dados do SAGE são as seguintes:
▪ Base Fonte

15
3 MANUAL DA BASE HISTÓRICA

▪ Base Referência

▪ Base On–line

▪ Base Histórica

3.2.1 Base FONTE

A base fonte é responsável pela configuração do SAGE. É preenchida a partir de arquivos texto
(.dat) ou interface gráfica. Nela são descritas todas as características do sistema de supervisão e
controle.
Suas principais características são:
▪ Configuração do SAGE

▪ Cadastro do sistema monitorado

▪ Residente em bancos de dados relacional

▪ Preenchida manualmente pelo usuário

3.2.2 Base REFERÊNCIA

A base referência é um estágio intermediário entre as bases fonte e on-line. É residente em disco,
organizada em MDC’s, Memória Compartilhada e Distribuída. E gerada durante o processo de
configuração do SAGE pelo programa STI_cargbf, e atualizada durante a operação em tempo real
pelo processo do SAGE, DumpBd.
Suas principais características são:
▪ Interface entre a Base Fonte e a Base On-line

▪ Contêm dados cadastrais e provenientes do tempo real.

▪ Utilizada durante a ativação do SAGE

▪ Armazenada em disco

▪ Distribuída, entidades organizadas em classes de MCD’s (Memória Compartilhada


Distribuída).

▪ Base fria x Base quente

3.2.3 Base ON-LINE

É a instância em memória da base de referência. É gerenciada pelo GMCD que inicializa a partir
da base referência durante a ativação do SAGE. Através da base on-line as aplicações do SAGE
trocam informações em tempo real.

16
3 MANUAL DA BASE HISTÓRICA

Suas principais características são:


▪ Base de Operação do SAGE

▪ Residente em memória

▪ Distribuída, organizada em MCD´s.

▪ Informação em tempo real.

▪ Arquitetura proprietária

3.2.4 Base HISTÓRICA

A base histórica do SAGE é responsável pelo armazenamento histórico sobre a operação do


sistema elétrico monitorado. Armazena tanto informações provenientes da operação do sistema
monitorado, quanto provenientes da evolução deste. Suas estruturas basicamente armazenam séries
temporais e são gerenciadas pelo GBH, sistema de Gerenciamento da Base Histórica. O GBH é
configurável e permite que qualquer atributo da base on-line seja historiado como veremos a seguir.
Suas principais características são:
▪ Histórico do sistema monitorado

▪ Armazena a evolução da topologia e informações de tempo real

▪ Preenchida a partir da base de dados on-line

▪ Residente em bancos de dados relacional

▪ Objeto deste trabalho

3.3 Sistema de Gerenciamento da Base Histórica


GBH
O sistema de Gerenciamento da Base Histórica do SAGE, GBH-SAGE, é formado por um conjunto
de aplicativos que permite o armazenamento de informações de tempo-real previamente
selecionadas pelo usuário em um banco de dados relacional de forma a possibilitar a recuperação de
séries temporais representativas do comportamento do sistema elétrico monitorado.
O procedimento de carga da base histórica é feito através de uma aplicação, STI_cargbh, que se
conecta simultaneamente à base on-line do SAGE e a um banco de dados relacional, e que grava no
banco relacional os dados provenientes do tempo real.

17
3 MANUAL DA BASE HISTÓRICA

Figura 3 - 2 - Processo de Carga da Base Histórica.

Como veremos adiante o programa STI_cargbh é gerado automaticamente a partir da seleção de


que entidades do tempo real serão armazenadas na base histórica. Sua ativação é feita junto com os
outros processos que compõe o SAGE.
No caso de falha na conexão com o banco de dados relacional, o programa passa
automaticamente a armazenar os dados do tempo real em arquivos locais localizados em diretório
predeterminado. Após a correção do problema ocorrido na conexão com o banco de dados, o
programa detecta a disponibilidade e imediatamente inicia a recuperação das informações para o
banco de dados relacional.

3.4 Entidade Tempo Real x Tabela Base Histórica


Os recursos do sistema elétrico monitorado são representados no SAGE através de entidades que
agregam atributos que descrevem as características e o comportamento em tempo real do referido
recurso. Por exemplo, o recurso ponto de medição analógica é representado no SAGE através da
entidade PAS, que contém atributos que descrevem suas características com unidade da medida,
equipamento associado, identificador, etc. Outros atributos da entidade PAS representam o
comportamento em tempo real do ponto de medição, por exemplo, valor medido, indicador de
qualidade da medida, etc. Outros exemplos de recursos representados através de entidades no
SAGE são: PDS, ponto digital do SAGE; EQP, Equipamento elétrico. As entidades do SAGE são
todas descritas catalogo de definição da base de dados referência que pode ser encontrado no
arquivo: $SAGE/config/demo_ems/sti/gbr/lis/STI_dcatbr.lis
Na base histórica, as entidades são organizadas em dois tipos de tabela: referência e dinâmica.
As tabelas de referência têm como função manter um histórico da configuração do sistema
elétrico. Ela armazena a informações cadastrais. Seus atributos representam uma determinada
característica do sistema tal como unidade medida, tipo de equipamento, identificador, etc. As
entidades da base on-line só podem ter uma e somente uma tabela de referência.

18
3 MANUAL DA BASE HISTÓRICA

Figura 3 - 3 - Relação entre as entidades da base on-line e as tabelas da base histórica

Tabelas dinâmicas armazenam as informações provenientes do processamento do sistema como,


por exemplo, valores medidos, estados digitais, etc. Seus atributos representam valores do sistema
que variam em tempo real. Uma importante característica das tabelas dinâmicas é que elas crescem
continuamente, o que leva a necessidade, por questão de desempenho, de estabelecer políticas de
particionamento em várias tabelas físicas cada uma representando um período de tempo (dia,
semana, mês). Outra característica importante é a forma com que são gravados os dados nas tabelas
dinâmicas que denominamos esquema de gravação. Os esquemas de gravação podem ser
classificados em dois grupos: síncrono e assíncrono. No esquema síncrono os valores do tempo real
são varridos periodicamente e no esquema assíncrono a varredura se dá sempre que a base tempo-
real identifica que ocorreram mudanças nos dados relacionados.
A configuração das entidades e atributos da base histórica do SAGE é feita através dos arquivos
de configuração localizados em $SAGE/config/$BASE/sti/gbh/dados, no arquivo entidade.bh
descrevemos as entidades da base histórica. No arquivo atributo.bh descrevemos os atributos.

3.5 Tabelas de Referência


Responsáveis pelo armazenamento das informações cadastrais do sistema de supervisão e
controle, as tabelas de referência evoluem a cada geração de uma nova “base” do SAGE. Toda vez
que um novo recurso é inserido no sistema é gerada uma nova chave de ligação com as tabelas
dinâmicas, associada ao recurso por toda sua vida útil.
Principais características das tabelas de Referência:
▪ Formam um histórico da evolução do sistema monitorado

▪ Atualizadas durante a ativação do programa STI_cargbh

19
3 MANUAL DA BASE HISTÓRICA

▪ Crescimento lento, só cresce quando é gerada uma nova configuração do SAGE

▪ Contém dois atributos indicando inicio e fim de operação do recurso

▪ Armazena identificadores das tabelas dinâmicas

▪ São ligadas às tabelas dinâmicas através do atributo bh_chave

As tabelas de referência são constituídas de pelo menos seis atributos, as data/hora de inicio e fim
de operação do recurso, chave de ligação com as tabelas dinâmicas, o índice do recurso na base on-
line, o identificador do recurso na base on-line, e um atributo auxiliarem para manutenção de
alterações nas características do recurso e rastreamento.

Campo Tipo Descrição


BH_CHAVE INT Chave de ligação com a tabela de dinâmica
BH_DTHR_INI DATA Data/hora de início de operação do recurso.
BH_DTHR_FIM DATA Data/hora de fim de operação do recurso. Assume valor
NULO se o recurso está em operação.
BH_INDTR INT Índice do recurso na base on-line do SAGE. Alterado toda
vez que é gerada uma nova “base” do SAGE. Uso interno
do programa STI_cargbh.
BH_SINONIMO INT Utilizado para indicar alterações nas características
ID CHAR Identificador do recurso na base on-line do SAGE.
PROP1 XXX Propriedade um .do recurso
PROP2 XXX Propriedade dois .do recurso
. . .
. . .
. . .
PROPN XXX Propriedade N .do recurso
Tabela 3- 1

Exemplo de tabela de referência:

PAS_R : Ponto Analógico do SAGE


Campo Tipo Descrição
BH_CHAVE INT Chave de ligação com a tabela de dinâmica
BH_DTHR_INI DATA Data/hora de início de operação.
BH_DTHR_FIM DATA Data/hora de fim de operação.
BH_INDTR INT Índice do recurso na base on-line do SAGE.
BH_SINONIMO INT Utilizado para indicar alterações nas características
ID CHAR Identificador do ponto analógico.
IDEQP CHAR Equipamento associado.
ESTACAO CHAR Estação associada à medida.
HISTPER INT Período de exportação para base histórica.
NOME CHAR Nome do ponto.
TIPOE INT Tipo de grandeza.
TPEQP INT Tipo do equipamento.
EQP CHAR Equipamento associado.
TAC CHAR TAC do ponto.
Tabela 3- 2

20
3 MANUAL DA BASE HISTÓRICA

3.6 Tabelas Dinâmicas


Armazena os dados históricos. O número de registros vai sempre crescendo. Cada registro
contém, além dos valores históricos, a data e hora de inserção na tabela e a chave de acesso ao
registro.
Estas tabelas podem crescer muito rapidamente, dependendo do período de exportação e da
quantidade de dados exportados. Desta forma, o sistema dispõe de mecanismos para particionar este
tipo de tabela em tabelas menores para facilitar sua manutenção. A política de particionamento é
definida pelo usuário em tempo de configuração do ambiente de exportação. Esta política pode ser
diária, semanal ou mensal.
▪ Principais características das tabelas Dinâmicas:

▪ Grande volume de dados, crescimento continuo

▪ Esquemas de gravação conforme natureza dos dados

▪ Particionadas em várias tabelas.

▪ Armazenam séries temporais.

▪ Possuem dois tipos de registros: integridade e variação.

Uma tabela dinâmica armazena séries temporais, composta de pelo menos três atributos básicos,
um identificador, uma data/hora e um ou mais valores associados.
A tabela a seguir mostra a estrutura básica de uma tabela dinâmica:

Campo Tipo Descrição


BH_CHAVE INT Chave de ligação com a tabela de referência que possui o
identificador do recurso.
BH_DTHR DATA Data/hora da medida e/ou evento relacionado ao recurso
monitorado.
BH_VARIACAO INT Indica se o registro foi inserido devido a uma integridade
(bh_variacao=0) ou variação (bh_variacao=1).
(OPCIONAL)
VALOR1 XXX Valor medido ou estado digital.
VALOR2 XXX Valor medido ou estado digital.
. . .
. . .
. . .
VALORN XXX Valor medido ou estado digital.
Tabela 3- 3 - Estrutura básica de uma tabela histórica dinâmica.

Exemplo de tabela dinâmica:

PAS_H : Ponto Analógico do SAGE


Campo Tipo Descrição
BH_DTHR DATA/HORA Data e hora de gravação da ocorrência
BH_CHAVE DATA/HORA Chave de ligação com a tabela de referência

21
3 MANUAL DA BASE HISTÓRICA

BH_VARIACAO INT*2 Indica se a ocorrência foi gravada devido à integridade (0)


ou variação (1)
FLAG INT*4 Indicadores do ponto
FLAGEST INT*2 Indicadores do ponto para valor estimado
RESNORM REAL*4 Resíduo normalizado
RGALR UINT*1 Região de alarme
VALEST REAL*4 Valor estimado da medida
VALOR REAL*4 Valor medido
Tabela 3- 4

3.6.1 Esquemas de Gravação

Os esquemas de gravação de tabelas dinâmicas podem ser classificados em três grupos.


Síncronos, Assíncronos e Customizados. O esquema de gravação é definido para cada tabela
dinâmica através do atributo ESQGRV no arquivo de configuração de entidades da base histórica
entidade.bh.

3.6.1.1 Esquema Síncrono

O esquema síncrono é utilizado para historiar valores analógicos, isto é, que variam de forma
continua, por exemplo, medidas de tensão, potência, etc. Nesse esquema todos os valores
monitorados são varridos periodicamente e armazenados ou não no histórico conforme a modalidade
de gravação como veremos a seguir.
O período entre duas varreduras é denominado de tempo de varredura, que é um valor constante
a ser aplicado a todas as tabelas dinâmicas de esquema de gravação síncrono, que é configurado no
script de ativação do programa STI_cargbh.
O esquema está organizado em três modalidades de gravação de dados:
▪ INTEGRIDADE: Nessa modalidade todas as medidas são armazenadas a cada varredura. É
configurada através do mnemônico INTGR no campo ESQGRV de entidade.bh.

▪ INTEGRIDADE COM VARIAÇÃO: A cada varredura são testados todos os atributos da


entidade, configurados com NOTIF=SIM em atributo.bh. E caso tenham variado em relação
à última varredura são gravados no banco. Em períodos predeterminados são gravados
todos os valores medidos independentemente de terem variado ou não, essas gravações
são denominadas integridades e são configuradas através do campo PEREXP da definição
da entidade. O esquema pode ser configurado através do mnemônico INTVAR. Tabelas
dessa modalidade de gravação possuem um campo denominado bh_variacao que indica se
o registro foi armazenado devido a uma integridade (bh_variacao) ou a uma variação
(bh_variacao=1).

▪ INTEGRIDADE EXTERNA: Esse modelo permite a criação de lógicas de carregamento de


dados históricos definidas pelo usuário através da função filtra_<nom entidade>.cxx, que é
“acordada” periodicamente. O esquema pode ser configurado através do mnemônico
EXTINT.

22
3 MANUAL DA BASE HISTÓRICA

3.6.1.2 Esquema Assíncrono

No esquema de gravação assíncrono, eventos predeterminados disparam uma varredura das


informações. Os eventos são definidos especificando atributos da base on-line, através do parâmetro
NOTIF=SIM, que quando alterados, disparam uma varredura. É o esquema típico utilizados para
historiar estados digitais como ,por exemplo, de equipamentos (ligado/desligado), chaves e
disjuntores (aberto/fechado).
O esquema está organizado em duas principais modalidades de gravação:
▪ VARIAÇÃO: Toda a vez que o atributo especificado com NOTIF=SIM variar na base de
tempo real, e iniciada uma varredura onde são gravados todos os estados que variaram em
relação à varredura anterior. os Em períodos predeterminados são gravados todos os
estados digitais independentemente de terem variado ou não, essas gravações são
denominadas integridades e são configuradas através do campo PEREXP da definição da
entidade. Tabelas dessa modalidade de gravação possuem um campo denominado
bh_variacao que indica se o registro foi armazenado devido a uma integridade
(bh_variacao) ou a uma variação (bh_variacao=1). O esquema pode ser configurado
através do mnemônico VARIAC.

▪ VARIAÇÃO EXTERNA: Esse modelo permite a criação de lógicas de carregamento de


dados históricos definidas pelo usuário através da função filtra_<nom entidade>.cxx, que é
“acordada” toda vez que o atributo configurado com NOTIF=SIM variar na base on-line do
SAGE. O esquema pode ser configurado através do mnemônico EXTVAR.

3.6.2 Particionamento

Devido ao grande volume de dados históricos o sistema possibilita o particionamento em várias


tabelas conforme a necessidade do usuário. A política de particionamento é feita em função do
período que se deseje armazenar em cada tabela, um dia, uma semana ou um mês. No caso de não
ser definida uma política de particionamento todos os dados serão armazenado em uma única tabela.
A política de particionamento é definida através do atributo PART do arquivo entidade.bh que pode
assumir os valores DIA,SEM e MES que especificam particionamento diário, semanal e mensal
respectivamente.
A gerência das tabelas históricas é feita através de tabelas de controle como mostra a Figura 3 -
4.

23
3 MANUAL DA BASE HISTÓRICA

Figura 3 - 4 - Organização dos dados históricos com política de particionamento.

3.6.2.1 Nomenclatura das Tabelas Dinâmicas

O nome das tabelas históricas depende da política de particionamento definida conforme tabela a
seguir:

Partição Nome
Diária BH_<nome da entidade>_aaaa_mm_dd
Onde aaaa = Ano, mm = Mês, dd = Dia
Semanal BH_<nome da entidade>_aaaa_ss
Onde aaaa = Ano, ss = s1 a s53
Mensal BH_<nome da entidade>_aaaa_mm
Onde aaaa = Ano, mm = Mês
Tabela 3- 5

3.6.2.2 Tabelas de Controle

As tabelas de controle têm a seguinte regra para formação do nome:


BH_<nome da entidade>_CTL
Por exemplo, a tabela de controle da entidade histórica PAS_H que representa os dados de PAS
na base tempo real irá se chamar BH_PAS_H_CTL.
As tabelas de controle têm a seguinte estrutura:

Campo Tipo Descrição


BH_NOME CHAR Nome da tabela que armazena a partição
BH_ESTADO CHAR Estado da partição. Pode assumir os seguintes valores:
▪ CARGA – Tabela em carga de dados.

▪ INDEX – Tabela carregada.

▪ ONLINE – Tabela carregada e disponível.

24
3 MANUAL DA BASE HISTÓRICA

▪ OFFLINE – Tabela arquivada.

BH_DTHR DATA Data/hora de criação ou restauração da partição.


BH_DTHR_INICIO DATA Data/hora de inicio da partição.
BH_DTHR_FIM DATA Data/hora de fim da partição.
BH_ARQUIVO CHAR Estado de arquivamento da partição.
Tabela 3- 6

3.6.2.3 Arquivamento

Sempre que uma partição é fechada ao fim de seu período, sua tabela é exportada para um
arquivo do texto junto com os scripts SQL necessários para sua recuperação. O arquivo é gerado no
diretório especificado através da variável de ambientes $BHARQS que é definida no script do SAGE
SSC_Amb localizado em $SAGE/config/<base>/sys. Toda vez que uma partição atingir a idade
especificada pelo campo HORIZONTE definido em entidade.bh, em partições, a tabela é excluída da
base histórica e colocada do estado OFFLINE.

3.7 Configurando a Base Histórica do SAGE


Como vimos anteriormente o programa de carga e a estrutura da base histórica são configuráveis
através dos arquivos texto entidade.bh e atributo.bh, onde são descritas as entidades e atributos da
base histórica.
O processo de configuração da base histórica é composto de duas etapas, a carga do catálogo da
base histórica e a geração da base histórica e configuração do programa STI_cargbh.
Na primeira etapa os arquivos texto contendo a descrição da base histórica são lidos e criticados,
gerando o catálogo da base histórica.
Na segunda etapa a partir do catálogo da base histórica são gerados o programa de carga,
STI_cargbh e as estruturas da base histórica. Caso já exista uma base histórica preexistente
nenhuma alteração é feita nesta, sendo o programa de STI_cargbh responsável por eventuais
alterações necessárias na base de dados no momento de sua ativação.

Figura 3 - 5 Processo de configuração da base histórica do SAGE.

25
3 MANUAL DA BASE HISTÓRICA

3.7.1 Configurando Entidades e Atributos da Base HISTÓRICA

3.7.1.1 Configurando Tabelas de Referência

Como já vimos, as tabelas de referência armazenam informações cadastrais do ambiente de


tempo real. A lista com as entidades e atributos da base on-line pode ser encontrada em
$SAGE/config/$BASE/sti/gbr/lis/STI_Dcatbr.lis. Inicialmente devemos cadastrar a entidade no
arquivo entidade.bh, mostrado a seguir.

ENT
NOME= <nome da tabela na base histórica>
IDEN = <atributos chave da tabela. Permite chave múltipla. Campos devem
ser separados por espaço>
ENTBD = <entidade da base on-line associada>
LCLTABL = <nome da tablespace onde será criada a tabela. O valor default é
SAGEBHREF>
LCLINDX= <nome da tablespace onde serão criados os índices. O valor
default é SAGEBHIND>
DESCR = <descrição da tabela>

Em seguida devemos editar o arquivo atributo.bh para cadastrar os atributos das entidades que
desejamos que sejam armazenados na base histórica. Devem ser cadastrados pelo menos os
atributos indicados como chave no campo IDEN da definição da tabela.

ATR
NOME= <nome do atributo na base histórica>
ENT = <nome da tabela na base histórica>
ATRBD = <nome do atributo da base on-line associado>

3.7.1.2 Atributos HISTPER & HISTSLC

O atributo HISTPER que tem seu valor definido na entidade PAS da base fonte do SAGE indica o
período, em segundos, que o ponto será verificado. Esse valor deve ser múltiplo do período de
varredura determinado ou preenchido com zero para o ponto ser verificado a cada varredura ou com -
1 para excluir o ponto do histórico.
O atributo HISTSLC definido na base fonte pode assumir os valores SIM e NAO o que indica se o
ponto digital deve ser gravado no histórico ou não.

3.7.1.3 Configurando Tabelas Dinâmicas

As tabelas dinâmicas que contêm dados que variam durante o funcionamento do SAGE, da
mesma forma que as tabelas de referência, são configuradas nos arquivos entidade.bh e atributo.bh.
Então para inserir uma entidade dinâmica devemos inicialmente cadastrá-la no arquivo entidade.bh
da seguinte forma:

ENT
NOME= <nome do atributo na base histórica>
PEREXP = <período de integridade em segundos>
ENTID = <tabela de referência associada>

26
3 MANUAL DA BASE HISTÓRICA

DESCR = <descrição da entidade>


PART = <política de particionamento pode ser DIA (diária), SEM (semanal),
MÊS (mensal) ou sem particionamento caso o campo não seja
definido.>
ESQGRV= <esquema de gravação, pode ser: VARIAC, INTVAR ou CUSTOM.
Ver seção referente a esquema de gravação para descrição
detalhada de cada esquema.>
LCLTABL= <nome da tablespace onde será criada a tabela. O valor default é
SAGEBHREF>
LCLINDX= <nome da tablespace onde serão criados os índices. O valor default
é SAGEBHIND
TXVAR= <taxa de variação. É a razão entre o total de medidas gravadas
devido à variação e o total de medidas gravadas na tabela. O valor
default para entidades com esquema de gravação síncrono é 0,5 e
para as de esquema assíncrono o default é 0,000007. Ver cálculo do
tamanho de tabelas dinâmicas.>

Os atributos das tabelas dinâmicas são definidos no arquivo atributo.bh da seguinte forma:

ATR
NOME= <nome do atributo na base histórica>
ENT = <nome da entidade>
ATRBD = <nome do atributo na base on-line do SAGE>
NOTIF = <se igual a SIM indica que o atributo deverá ser verificado a cada
varredura e caso tenha seu valor alterado gravar o registro na base
histórica. No esquema assíncrono funciona também como gatilho
para dispara varredura>
MASCARA = <máscara a ser aplicada ao atributo antes de ser feita a
verificação de alteração. Essa máscara é utilizada no caso de
atributos do tipo WORD onde cada bit tem um significado específico
e somente desejamos gravar no banco o registro quando algum
determinado bit variar.Ver exemplo a seguir>

3.7.1.3.1 Exemplo de uso de máscara

Como exemplo de uso de máscara temos o atributo a1_flags da entidade PDS da base de tempo
real. O atributo é do tipo WORD de 16 bits onde cada bit é representado por um nome simbólico e
informa uma característica do estado do ponto digital monitorado, conforme mostrado na tabela
abaixo que pode ser obtida a partir do arquivo $SAGE/config/$BASE/sti/gbh/lis/STI_dcatbh.html.

Simbólico Significado
K_PDS_FLG_ESTAD Estado considerado do ponto digital
K_PDS_FLG_FOVAR Fora de varredura
K_PDS_FLG_FALHA Falha de aquisição local
K_PDS_FLG_IVORG Inválido na origem
K_PDS_FLG_MAORG Manual na origem
K_PDS_FLG_MANUA Manual local
K_PDS_FLG_NINCI Não inicializado local
K_PDS_FLG_ANREC Evento de alarme não reconhecido
K_PDS_FLG_NOSUP Ponto não supervisionado
K_PDS_FLG_AINIB Alarme inibido
K_PDS_FLG_SECAL Selecionado para cálculos
K_PDS_FLG_SACOK SAC operacional neste nó
K_PDS_FLG_INVAL Inválido local
K_PDS_FLG_FVORG Fora de varredura na origem

27
3 MANUAL DA BASE HISTÓRICA

K_PDS_FLG_ALINT Gera alarme na iniciação e na integridade


K_PDS_FLG_SELAR Selecionado para análise de redes
K_PDS_FLG_SELSD Selecionado para distribuição
K_PDS_FLG_AUREC Habilitação de auto-reconhecimento
K_PDS_FLG_APLUS Selecionado para aplic. do usuário
K_PDS_FLG_ESTAQ Estado aquisitado
K_PDS_FLG_ESINI Estado inicial do ponto
K_PDS_FLG_ESREF Estado de referência do ponto - IHM
K_PDS_FLG_TRANS Indicador de trânsito /dupla transição
K_PDS_FLG_EVCAL Indicador de evento para cálculo
Tabela 3- 7

Caso desejemos gravar no histórico, somente às mudanças de estado digital do ponto, devemos
definir o atributo com o seguinte valor para o campo MASCARA:

MASCARA= K_PDS_FLG_ESTAD

Caso desejemos, além das mudanças de estado, gravar no histórico sempre que houver uma
falha de aquisição local, o campo MASCARA deverá ser definido da seguinte forma:

MASCARA= K_PDS_FLG_ESTAD K_PDS_FLG_FALHA

Qualquer combinação de valores pode ser utilizada na especificação da máscara de forma a filtrar
os eventos de gravação dos dados de PDS na base histórica.

3.8 Programa STI_dcatbh


O programa STI_dcatbh é a ferramenta utilizada para manutenção da base histórica do SAGE. O
aplicativo implementa três operações:
▪ Carga do catálogo da base histórica, os arquivos de configuração (entidade.bh e atributo.bh)
são lidos, criticados e, caso estejam corretos, armazenados no catálogo da base histórica.

▪ Configurar Base Histórica, nesse passo são geradas as estruturas da base histórica e o
programa STI_cargbh para carregamento dessas estruturas.

▪ Listar Catálogo Base Histórica, gera o dicionário de dados da base histórica em:
$SAGE/config/$BASE/sti/ghh/lis/STI_dcatbh.html

O programa pode ser ativado através de linha de comando na conta em que foi instalado o SAGE.
Uso:
> STI_dcatbh <operação> [opções]

Onde operação inclui:


C -> Carga do catalogo da base histórica.
B -> Gera base histórica e configura programa de carga.
L -> Gera dicionário de dados da base histórica
Opções:

28
3 MANUAL DA BASE HISTÓRICA

-senha <senha> : Senha do catalogo da base histórica.


-server_bh <servidor> : Nome do servidor da base histórica.
-user_bh <usuário> : Nome do usuário da base histórica.
-senha_bh <senha> : Senha da base histórica.
-bashist <b. histórica> : Nome da base histórica
-local: Quando especificado assume que a validação para base
histórica será feita via sistema operacional, assume o
servidor especificado na variável de ambiente
SGBD_SERVER e o nome da base na variável
BASE.Caso a operação seja de configuração (B) e não
forem fornecidos o nome do servidor, nome da base,
usuário e senha da base histórica e também não for
especificado o parâmetro -local, os valores serão pedidos
pelo programa.

3.9 Consolidação
Orientada principalmente para a aquisição e armazenamento de dados com precisão e robustez a
base histórica do SAGE por si só carece de uma estrutura orientada a consultas, tornado árdua a
tarefa de desenvolvimento de relatórios. Além do grande volume de informações nela contida outros
aspectos contribuem para essa dificuldade. O primeiro aspecto é que como é um retrato fiel do que
ocorreu em tempo real a base histórica está sujeita a armazenar valores inválidos decorrentes de
diversas situações corriqueiras no processo de supervisão e controle, tais como falhas de
comunicação na origem etc.
A fim de facilitar o acesso às informações da base histórica foi desenvolvido um processo de
consolidação, onde são filtradas as medidas com erro de aquisição, e também são efetuados cálculos
de forma a obter valores médios mínimos e máximos em períodos predefinidos. O resultado deste
processo é armazenado em uma base de dados consolidada. O processo de consolidação
normalmente é configurado para executar no mesmo servidor da base histórica de forma a evitar
trafego desnecessário de dados pela rede. Nada impede porém que essas configurações sejam
alteradas para atender melhor às necessidade/disponibilidades da instalação. As tabelas de
referência da base histórica são acessadas diretamente na base consolidada através de vistas e/ou
sinônimos sem que haja necessidade de duplicação dessas tabelas.

3.9.1 Configuração da Consolidação

Apesar de não ter uma configuração tão flexível quanto à da base histórica, alguns aspectos do
funcionamento da base consolidada podem ser configurados através da tabela
TABELAS_CONSOLIDACAO que é descrita a seguir.

NOME TIPO TAM DESCRIÇÃO


nome char 30 Nome da tabela consolidada.
precisão int 2 Precisao dos dados em unidades.
unidade char 30 Unidade da precisão pode ser: segundo , minuto,
hora , dia, mês ou ano.
horizonte int 2 Horizonte em dias mantido no histórico, não
preenchimento significa que os dados nunca serão
excluídos automaticamente.

29
3 MANUAL DA BASE HISTÓRICA

origem char 30 Tabela histórica de origem pode ser: pas_h, pds_h,


eqp_h ou lia_h.
ultima_varredura data - Data da última atualização.
Tabela 3- 8

Através da tabela TABELAS_CONSOLIDACAO é possível configurar a partir das tabelas


históricas pas_h, pds_h, eqp_h ou lia_h tabelas contendo informações consolidadas e livres de
valores com inválidos com várias precisões e horizontes.

3.9.2 Consolidação de Medidas Analógicas

O processo de consolidação de medidas analógicas além de eliminar valores inválidos existentes


da base histórica, determina os valores instantâneos em instantes pré-determinados no tempo,
definidos através da combinação dos campos precisão e unidade da tabela
TABELAS_DE_CONSOLIDACAO. Também são calculados os valores máximo, médio e mínimo no
período e para os valores máximos e mínimos são armazenadas as datas e horas de suas
ocorrências. Também é armazenado o número de medidas válidas no período. No caso de não existir
nenhuma medida válida no período, o ultimo valor válido é repetido e o campo total medidas é
zerado.
A Figura 3 - 6 mostra um exemplo de configuração consolidação de medidas analógicas onde
foram definidas três tabelas de medidas analógicas com precisões horária, diária e mensal.

Figura 3 - 6 -

A estrutura das tabelas consolidadas é mostrada a seguir:

30
3 MANUAL DA BASE HISTÓRICA

Atributo Descrição
BH_CHAVE Chave ligação com tabela de referência
BH_DTHR Data
VALOR Valor instantâneo
MAX Valor máximo no período
MAX_DTHR Data de ocorrência do máximo do período com
precisão de segundos
MIN Valor mínimo no período
MIN_DTHR Data de ocorrência do mínimo do período com
precisão de segundos
MED Valor médio no período
TOTAL_MEDIDAS Total de medidas válidas no período
Tabela 3- 9

3.9.3 Consolidação de Valores Digitais

A consolidação de valores digitais na qual se incluem PDS_H, EQP_H e LIA_H, além de eliminar
os valores inválidos gera tabelas que indicam os estados dos recursos historiados por períodos,
diferentemente da base histórica onde são armazenados os eventos de mudança de estado dos
referidos recursos. A estrutura típica desse tipo de consolidação e constituída de dois campos do tipo
data/hora indicando os momentos de início e fim do estado como mostra a tabela abaixo. A precisão
dessas tabelas é sempre de um segundo.

Atributo Descrição
BH_CHAVE Chave ligação com tabela de referência
BH_INICIO Data da transição para estado com precisão de
segundos
BH_FIM Data de transição para outro do estado com
precisão de segundos
ESTADO Estado digital.
Tabela 3- 10

Além de conseguir uma grande compactação nos dados a consolidação de valores digitais permite
através de consultas simples obter-se o estado de um recurso e um determinado momento, ou
quanto tempo o recurso permaneceu ligado ou desligado. A consolidação transforma um conjunto de
registros de eventos esparsos no tempo em uma estrutura mais amigável conforme mostrada na
Figura 3 - 7.

Figura 3 - 7 -

31
3 MANUAL DA BASE HISTÓRICA

3.9.4 Instalação da Consolidação

A base de dados histórica consolidada atualmente está disponível para os bancos de dados
Postgresql e Oracle. Como deve ser executada junto com o servidor de banco de dados, sua
distribuição é feita através dos fontes para que possam ser compiladas em qualquer ambiente
independe do sistema operacional utilizado. Os pré-requisitos para sua instalação além da base
histórica estar operacional, são necessários estar instalados no servidor um compilador C, um
utilitário de construção de sistemas semelhante ao GMAKE e o pré-compilador SQL Embutido do
banco (Proc para o Oracle e ECPG para Postgresql). Para instalar siga os seguintes passos:
1. Criar uma conta sage no servidor, tanto faz os shell utilizado.

2. Verificar se o compilador C e o MAKE estão acessíveis na conta sage, talvez seja necessário
configurar variáveis de ambiente PATH, LD_LIBRARY_PATH entre outras, verifique a
documentação do sistema operacional.

3. Verificar se os utilitários do banco de dados estão acessíveis na conta sage, talvez seja
necessário configurar variáveis de ambiente PATH, LD_LIBRARY_PATH entre outras,
verifique a documentação do banco de dados.

4. Expandir/descompactar na conta recém criada o arquivo com os arquivos fonte da


consolidação, fornecido pelo CEPEL.

5. Entrar no subdiretório consbh criado no passo anterior e executar o comando make para
gerar os binários da consolidação. Se tudo correr bem terá sido criado o binário consolida_bh
no subdiretório ~sage/consbh/bin.

6. Editar o arquivo gera_base.sql para alterar a base do sage no default que é demo_ems para a
base desejada, instruções no próprio script.

7. Criar estruturas da base consolidadas, executando o script gera_base.sql modificado no passo


anterior.

8. Uma vez criada a estrutura da base consolidada, alterar a tabela TABELAS_CONSOLIDACAO


definindo os horizontes e precisões desejados.

9. Programar o crontab para executar o script ~sage/consbh/executa_consolida_bh a cada hora


ou período desejado, instruções no próprio script.

3.10 Esquema Exemplo


A Figura 3 - 8 ilustra o esquema de histórico sugerido pelo CEPEL.

32
3 MANUAL DA BASE HISTÓRICA

Figura 3 - 8 -

3.10.1 Cálculo Tamanho da Base de Dados HISTÓRICA

Uma questão muito importante na implementação de uma base de dados histórica é a definição do
espaço em disco necessário para armazenar os dados no período desejado.
Como já vimos anteriormente, a base de dados histórica do SAGE é constituída basicamente de
dois tipos de tabelas, as de referência e as dinâmicas.
As tabelas de referência crescem somente quando uma nova versão de base on-line é gerada, ou
seja, a sua expansão acompanha o crescimento do sistema elétrico monitorado. Já as tabelas
dinâmicas crescem continuamente, pois armazenam os valores medidos em um determinado
instante.
De uma forma geral podemos dizer que o tamanho total da base histórica do SAGE é igual à soma
do espaço necessário para o armazenamento das tabelas dinâmicas e seus índices com o espaço
necessário para as tabelas de referência e seus índices.
Tamanho total = Tabelas de Referência + Tabelas Dinâmicas
Como o tamanho das tabelas de referência é insignificante em relação ao tamanho das tabelas
dinâmicas, e pouco influencia no tamanho total da base histórica, podemos estipular um espaço de
100MB para seu armazenamento. Donde temos:
Tamanho total = 100 + Tabelas Dinâmicas

33
3 MANUAL DA BASE HISTÓRICA

3.10.2 Tamanho de Tabelas DINÂMICAS

O espaço total requerido para o armazenamento das tabelas dinâmicas é composto do somatório
dos tamanhos das tabelas dinâmicas no período que desejamos manter disponível no banco de
dados.

Tamanho Total Tabelas Dinâmicas = ∑ TTD


Onde:
▪ TTD: Tamanho Tabela Dinâmica

Anteriormente vimos que uma tabela dinâmica, na verdade, é composta por várias tabelas que
armazenam os dados de um determinado período ao qual chamamos de partição. Então para
determinar o espaço necessário para o armazenamento dos dados de uma determinada tabela
dinâmica devemos multiplicar o tamanho de uma partição pelo número de partições contidas no
período disponível no banco. Ou seja:

TTD = (Período / Período Partição) * Tamanho Partição


Onde:
▪ Período: Período que desejamos manter disponível no banco de dados em segundos.

▪ Período Partição: Período em segundos da partição que pode ser diária, semanal ou mensal.

▪ Tamanho Partição: É o espaço em disco necessário para armazenamento dos dados no


período de partição definido. O tamanho de uma partição é calculado baseado na seguinte
fórmula:

Tamanho Partição = Integridade + Variação


Onde:
▪ Integridade: Espaço necessário para gravar registros de integridade. É calculado pela
fórmula:

Integridade = (Período Partição / Período Integr.) * npontos * tamreg


e
▪ Variação: Espaço necessário para armazenamento dos registros gravados devido à
variação de valor ou estado. O seu valor é obtido conforme o esquema de gravação
definido para a tabela histórica.

Para esquemas de gravação baseados em varreduras periódicas temos a seguinte fórmula:

Variação = (Período Partição / varredura) * npontos * tamreg * txvar

Para esquemas de gravação baseados em eventos temos a fórmula:

Variação = (Período Partição) * npontos * tamreg * txvar

Onde:
▪ npontos: Número de registros na tabela de referência relativa à tabela histórica.

34
3 MANUAL DA BASE HISTÓRICA

▪ txvar: Taxa de variação. É a razão entre o total de medidas gravadas devido à variação e o
total de medidas gravadas na tabela. O valor inicial default para entidades com esquema
de gravação por varredura é 0,5 e para as de esquema baseado em eventos é 0,000007.
Esse valor é atualizado automaticamente pelo STI_cargbh baseado no comportamento do
sistema elétrico monitorado.

▪ varredura: Período de varredura em segundos.

▪ tamreg: Tamanho do registro da tabela histórica em bytes. O tamanho do registro é


calculado através da soma dos tamanhos dos seus campos que são obtidos através da
seguinte tabela:

Tipo Campo Tamanho no Oracle Tamanho no Informix


CHAR Número de caracteres Número de caracteres
INT 4 4
FLOAT 4 4
DATE 7 8
Tabela 3- 11

3.11 Parâmetros de Ativação do STI_cargbh


Alguns comportamentos do programa de carga da base histórica são definidos como parâmetros
de ativação do programa. Para alterá-los basta editar o arquivo
$SAGE/bin/scripts/STI_cargbh_on.rc e modificar a linha de ativação do programa.

Parâmetro Descrição
-tmsgalr Período, em segundos, para reenvio de mensagens de alarme. Valor
default 1800 segundos.
-dadv <valor> Percentual de ocupação do disco de salvaguarda a partir do qual será
emitido alarme de advertência. Valor default 85%.
-dmin <valor> Percentual de ocupação do disco de salvaguarda a partir do qual será
emitido alarme de urgência, e a salvaguarda será interrompida. Valor
default 95%.
-varred <período> Período de varredura em segundos. Valor default 60 segundos. Valor
mínimo 60 segundos.
-debug Ativa o programa no modo de depuração.
-stat <período> Período em horas para atualização de estatísticas do banco de
dados. Valor default 6 horas.
-não_busca_rede Desabilita busca de arquivos de salvaguarda na rede do SAGE
-nao_arquiva Desabilita arquivamento
-caractere_separador ‘,’ Caractere separador utilizado no arquivamento
Tabela 3- 12

35
3 MANUAL DA BASE HISTÓRICA

36
Capítulo

4
4 Simulação do Tráfego de Dados de
Tempo Real no SAGE (sim-tr)

O Simulador do Tráfego de Mensagens de Tempo Real (SIM-TR) permite o envio de mensagens


ao SAC, simulando a atividade dos conversores de protocolo, na aquisição.
O SIM-TR trabalha a partir de um arquivo de simulação no formato ASCII, construído sob regras
pré-definidas, para um determinado “noh” da base de dados do SAGE, podendo-se escolher a opção
de execução contínua ou passo a passo das instruções deste arquivo.
Logo, ao ser executado, o SIM-TR interpreta o arquivo de simulação e envia ao SAC as
mensagens no formato preconizado pelo protocolo TAC do SAC (protocolo de terminais virtuais de
aquisição e controle).
Outra função do SIM-TR, associada à simulação do comportamento dos conversores de
protocolos, é responder ao SAC os pedidos de controle supervisório originados na interface homem-
máquina do Subsistema de Interface Gráfica (SIG).

4.1 Sintaxe de Ativação


O utilitário é ativado pela seguinte sintaxe:
sim-tr <arq_de_sim> <nome_nó> [passo] [usaMm]

Onde:
▪ arq_de_sim → é o nome do arquivo de simulação que contém os comandos a serem
enviados para o SAC em protocolo TAC;

▪ nome_nó → é o nome do nó da base de dados cuja configuração será considerada para


efeito de validação dos nomes e índices utilizados e para geração automática de tráfego;

▪ [passo] → keyword usada para executar o programa de simulação passo a passo.

▪ [usaMm] → opção que admite o uso de letras maiúsculas e minúsculas nos identificadores
usados no script, utilizada para simulações do protocolo 61850. Quando esta opção é
usada é preciso escrever todos os comando e subcomandos do script utilizando letras
maiúsculas. Exemplo: substituir VAR méd i1 por VAR MED i1.

37
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

Ao ser ativado o utilitário exibe a tela mostrada a seguir:

Figura 4- 1 - Simulação em andamento.

4.2 Construção de Cenários de Simulação


Toda simulação é feita considerando a configuração do banco de dados de tempo real que
determina uma relação hierárquica entre as entidades:
▪ NÓ - Estações da rede de difusão confiável do banco de dados de tempo real.

▪ LIG - Ligações de dados existentes entre o sistema SAGE e outros Centros de Controle,
Unidades Terminais Remotas ou Controladores Lógicos Programáveis, vinculadas à
operacionalização de um NÓ.

▪ TAC - Terminais Virtuais de Aquisição e Controle que agrupam logicamente pontos de


aquisição e controle vinculados a uma Ligação LIG.

▪ DIG - Ponto de aquisição digital pertencente a uma TAC.

38
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

▪ MED - Ponto de aquisição de medida analógica, pertencente a uma TAC.

▪ TOT - Ponto de aquisição de medida totalizada, pertencente a uma TAC.

Na análise sintática das linhas do arquivo de simulação, o SIM-TR procura pelo símbolo > (menor
que). Após esse símbolo deve existir um comando que pode ser acompanhado de um ou mais
parâmetros e um ou mais subcomandos. Cada subcomando também pode ser acompanhado de um
parâmetro.
A seguir serão descritas as diretivas para arquivos de simulação do SIM_TR:

4.2.1 Subcomandos

TAC(s) - Requer o parâmetro ind que especifica o índice da TAC (1 a "n") para a qual a
mensagem será simulada. Só serão considerados válidos os números que indicam as TACs
configuradas no nó que se está simulando. É aconselhável a utilização de nomes de TACs ao invés
desse comando, para que uma reconfiguração do banco de dados não afete a validade do arquivo de
simulação.
Sintaxe: > TAC ind

PTO(s) - Requer o parâmetro ipt que especifica o índice relativo do ponto (1 a "n") na TAC. Tanto
o índice ipt do ponto, quanto o índice ind da TAC, podem ser informados pelo INFO-TR a partir do
nome do ponto. É aconselhável a utilização de nomes de pontos ao invés desse comando, para que
uma reconfiguração do banco de dados não afete a validade do arquivo de simulação.
Sintaxe: > PTO ipt

VAL(s) - Requer o parâmetro val que especifica o novo valor de uma medida ou totalizador, ou o
novo estado de um ponto digital.
Sintaxe: > VAL val

REL(s) - Requer o parâmetro val que especifica o valor que será somado (ou subtraído se
precedido do sinal "menos") ao valor corrente de uma medida, totalizador ou estado digital.
Sintaxe: > REL val

PCT(s) - Requer o parâmetro val que especifica o valor percentual sobre a escala que será
somado (ou subtraído se precedido do sinal "menos") ao valor corrente de uma medida ou totalizador.
Sintaxe: > PCT val

INI(s) - Requer o parâmetro val que especifica o valor que será somado (ou subtraído se
precedido do sinal "menos") ao valor médio dos limites de advertência de uma medida ou totalizador.
Sintaxe: > INI val

39
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

INV(s) - Requer o parâmetro stat que especifica a nova condição de validade (valor zero) ou
invalidade (valor diferente de zero) do ponto aquisitado.
Sintaxe: > INV stat

MAN(s) - Requer o parâmetro val que especifica o novo valor de uma medida ou totalizador, ou o
novo estado de um ponto digital que será recebido pelo SAC como inserido manualmente na origem.
Sintaxe: > MAN val

QNT(s) Requer o parâmetro nptos que especifica o número de pontos que serão assinalados
como pontos que sofreram variação.
Sintaxe: > QNT nptos

SEG(s) - Requer o parâmetro sg que especifica a quantos segundos passados da hora corrente
ocorreu o evento reportado no comando SDE.
Sintaxe: > SEG sg

MIL(s) - Requer o parâmetro ml que especifica qual o milisegundo relativo ao segundo definido
pelo subcomando SEG em que ocorreu o evento especificado no comando SDE.
Sintaxe: > MIL ml

4.2.2 Comandos

PER(c) - Requer o parâmetro tmp que especifica a periodicidade, em segundos, que o simulador
usará para efetuar o envio automático de mensagens de varredura de integridade digital, analógica e
de pontos totalizadores. Nessas mensagens são atualizados todos os pontos de todas as TACs de
todas as ligações atendidas pelo nó que se está simulando. Esse comando não requer subcomandos.
Sintaxe: > PER tmp

ESP(c) - Requer o parâmetro tmp que especifica o tempo em segundos que o simulador
aguardará para prosseguir com a simulação. Caso esse valor seja zero, o SIM-TR aguardará a
digitação da tecla <ENTER> para continuar com a execução do programa de simulação. Esse
comando não requer subcomandos.
Sintaxe: > ESP tmp

LGN(c) - Requer o subcomando TAC ou o parâmetro nome_tac que especifica o nome de uma
TAC pertencente a uma ligação do nó que se está simulando. Esse comando é usado para
especificar qual das TACs atendidas nesse nó ficou com a ligação de dados inoperante.
Sintaxe: > LGN TAC ind
> LGN nome_tac

40
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

LGO(c) - Requer o subcomando TAC ou o parâmetro nome_tac que especifica o nome de uma
TAC pertencente a uma ligação do nó que se está simulando. Esse comando é usado para
especificar qual das TACs teve a ligação de dados restabelecida.
Sintaxe: > LGO TAC ind
> LGO nome_tac

INT(c) - Requer o parâmetro tip e o parâmetro nome_tac. O parâmetro tip especifica o tipo dos
pontos reportados na mensagem de integridade que será enviada. Uma das keywords dig, med ou tot
deve ser usada para especificar se os dados são respectivamente relativos aos pontos digitais,
analógicos ou totalizadores da TAC. O parâmetro nome_tac especifica o nome da TAC a ser
simulada e pode ser substituído pelo comando TAC. Na mensagem de integridade são atualizados
todos os dados do tipo e TAC especificados.
Sintaxe: > INT tip TAC ind
> INT tip nome_tac

VAR(c) - Requer os parâmetros tip, nome_ponto, e um dos subcomandos dentre VAL, REL, INV,
PCT, INI ou MAN. O parâmetro tip é idêntico ao usado no comando INT. O parâmetro nome_ponto
especifica o nome do ponto para o qual é simulada uma variação e pode ser substituído pelos
subcomandos TAC e PTO. Os subcomandos especificam qual será o valor da variação e a alteração
ou não dos atributos de qualidade do ponto.
Sintaxe: > VAR tip nome_ponto VAL val
> VAR tip PTO ipt VAL val
> VAR tip nome_ponto REL val
> VAR tip nome_ponto INV val
> VAR tip nome_ponto PCT val
> VAR tip nome_ponto INI val
> VAR tip nome_ponto MAN val

NVR(c) - Requer os mesmos parâmetros e subcomandos do comando VAR e mais o subcomando


QNT para especificar a quantidade de pontos, a partir do ponto especificado no comando, para os
quais serão simuladas as variações.
Sintaxe: > NVR tip nome_ponto VAL val QNT nptos
> NVR tip PTO ipt VAL val QNT nptos
> NVR tip nome_ponto INV val QNT nptos

Obs.: O comando NVR baseia-se na ordem e na quantidade dos pontos dentro da TAC, logo,
nptos deve ser determinado de forma coerente com estas informações.

41
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

SDE(c) - Requer parâmetro nome_ponto ou o subcomando PTO e os subcomandos VAL, SEG e


MIL, para especificar a transição para o estado especificado em VAL de um evento da seqüência de
eventos, no instante especificado pelos subcomandos SEG e MIL.
Sintaxe: > SDE nome_ponto VAL val SEG sg MIL ml
> SDE PTO ipt VAL val SEG sg MIL ml

CIC(c) - Requer o parâmetro pc que marca uma linha do arquivo de simulação como início de um
ciclo.
Sintaxe: > CIC pc l

LOP(c) - Requer os parâmetros num e pc que determinam a execução de num ciclos do código de
simulação a partir do ponto de ciclo pc previamente marcado até o comando LOP.
Sintaxe: > LOP num pc

GRV(c) - Requer o parâmetro 'nome_do_arquivo' que especifica em que arquivo será gravado o
conteúdo traduzido do cenário de simulação. A tradução efetuada nesse arquivo é a substituição dos
nomes de pontos e TAC existentes por seus respectivos índices. Essa tradução aumenta o
desempenho do simulador já que evita pesquisas sobre nome dos pontos.
Sintaxe: > GRV nome_do_arquivo

Obs.: Caso um arquivo de simulação tenha um número muito grande de nomes de pontos ou
TAC, é preferível criar uma versão traduzida colocando-se o comando GRV antes do comando FIM.
Para isso o usuário deverá deixar sempre depois de um nome de TAC ou de ponto, um espaço em
branco a ser utilizado por ocasião da substituição dos nomes pelos índices.

FIM(c) - Não requer parâmetro ou subcomandos, e é usado para encerrar o programa de


simulação.
Sintaxe: > FIM

A seguir é apresentado um exemplo de arquivo de simulação.


No exemplo, o usuário define um cenário onde o valor de duas medidas de potencia aumenta,
diminui e retorna ao valor inicial, num formato dente-de-serra de 40 MW pico-a-pico em passos de 2
MW a cada 1 segundo, quando uma variação de estado digital com SOE associado a um
desligamento altera o valor da mesma para zero. Em seguida, 20 segundos depois, um religamento
daquele estado digital faz com que o valor retorne novamente ao estado inicial. Esse cenário se
repete 1000 vezes.
#
*************************************************************
# * Programa 1 de Simulacao do Trafego de Aquisicao
*

42
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

# * Simulacao de Pontos da Base demo_ems


*
#
*************************************************************
#
> LGO US01 ; coloca TAC
operacional
> INT med US01 ; coloca
dados como validos
> INT dig US01 ;
> VAR dig C2E02ADB1B VAL 1 ; (disjuntor
fechado)
> VAR med C2E02AE03ALT1MW VAL 500.0 ; coloca
valores iniciais
> VAR med C2E02AE03ALT1MR VAL 200.0 ;
> ESP 0 ; aguarda
<ENTER>
> CIC 1 ; marca
ponto 1 de ciclo
#
> CIC 2 ; marca
ponto 2 de ciclo
> VAR med C2E02AE03ALT1MW REL 2.0 ; rampa de
mais 20 MW ...
> VAR med C2E02AE03ALT1MR REL 2.0 ; ... em
steps de 2.0 MW
> ESP 1 ; espera 1
seg
> LOP 10 2 ; cicla 10
vezes em 2
#
> CIC 3 ; marca
ponto 3 de ciclo
> VAR med C2E02AE03ALT1MW REL -2.0 ; rampa de
menos 40 MW ...
> VAR med C2E02AE03ALT1MR REL -2.0 ; ... em
steps de 2.0 MW
> ESP 1 ; espera 1
seg
> LOP 20 3 ; cicla 20
vezes em 3

43
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

#
> CIC 4 ; marca
ponto 4 de ciclo
> VAR med C2E02AE03ALT1MW REL 2.0 ; rampa de
mais 20 MW ...
> VAR med C2E02AE03ALT1MR REL 2.0 ; ... em
steps de 2.0 MW
> ESP 1 ; espera 1
seg
> LOP 10 4 ; cicla 10
vezes em 4
#
> SDE C2E02ADB1B VAL 0 SEG 1 MIL 123 ; disjuntor
abriu !
> VAR med C2E02AE03ALT1MW VAL 0.0 ; medidas
zeraram
> VAR med C2E02AE03ALT1MR VAL 0.0 ;
> ESP 20 ; aguarda 20
seg
> SDE C2E02ADB1B VAL 0 SEG 1 MIL 345 ; disjuntor
fechou
> VAR med C2E02AE03ALT1MW VAL 500.0 ; recoloca
valores iniciais
> VAR med C2E02AE03ALT1MR VAL 200.0 ;
> ESP 1 ; espera 1
seg
> LOP 1000 1 ; cicla 1000
vezes em 1
> FIM

Caso um arquivo de simulação tenha um número muito grande de nomes de pontos ou TAC,
sugere-se criar uma versão traduzida colocando-se o comando GRV antes do comando FIM.
Na versão traduzida os nomes serão substituídos por índices o que aumentará o desempenho da
simulação. Para isso o usuário deverá deixar sempre depois de um nome de tac ou de ponto um
espaço em branco a ser utilizado por ocasião da substituição dos nomes pelos índices.

4.2.3 Simulação de Controle Supervisório

Para utilizar comandos de controle supervisório da IHM do SAGE no ambiente de teste onde é
utilizado o SIM-TR, deve-se criar um script-shell de simulação residente no diretório
$SAGE/config/$BASE/simul com o nome exec_ctrl_<identificador_do_ponto_CGS>.

44
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

Esse script-shell será ativado com o parâmetro 'trip', 'close' ou o valor de um set-point sempre que
o controle do ponto <nome_do_ponto_CGS> for acionado, e a variável de ambiente
TREINAMENTO tiver sido carregada com o valor 'sim' no arquivo SSC_Amb.
O script poderá conter qualquer comando shell (ex: execução de um fluxo de potência) e,
principalmente, comandos sim-tr para arquivos que simulem cenários compatíveis com o ponto de
controle acionado.
A seguir é apresentado um exemplo de script-shell acionado por comando de controle
supervisório da IHM do SAGE no ambiente do SIM-TR.
No exemplo, o script testa o valor do comando e, baseado nele vai ativar um ou outro cenário de
simulação.
#!/bin/sh
#
# Simulacao de controle Raise Lower
#
sagelog sim-tr "Ativacao de simulacao com parametro $1"
cd $BD/../simul
##if [ $1 -gt 0 ]
if [ "$1" == "0.00" ]
then
sim-tr sim_uge_lower srv1
else
sim-tr sim_uge_raise srv1
fi
exit

45
4 SIMULAÇÃO DO TRÁFEGO DE DADOS DE TEMPO REAL NO SAGE (SIM-TR)

46
Capítulo

5
5 Monitor de Mensagens Físicas
(MMF)

O utilitário MMF é um Monitor de Mensagens Físicas transmitidas/recebidas pelos Conversores de


Protocolo, o qual permite monitorar o tráfego de mensagens transmitidas e recebidas pelas linhas de
comunicação ligadas ao SAGE em qualquer protocolo utilizado. Na chamada deste monitor passam-
se como parâmetros: o conversor a ser monitorado, se é desejado monitorar tanto transmissão (tx)
como recepção (rx) ou apenas uma delas, e a partir de que índice de ponto reportado na mensagem
se deseja que a monitoração seja iniciada.
O utilitário é ativado pela seguinte sintaxe: mmf conv [[tx][rx] [índice]]
Onde:
conv indica o conversor de protocolo cujas mensagens serão monitoradas, e
- pode assumir os seguintes valores:
▪ cno para o Conversor SINSC Modo Mestre;

▪ cos para o Conversor SINSC Modo Escravo;

▪ c32 para o Conversor do Protocolo Conitel;

▪ rdac para o Conversor de Protocolo Redac 70F da Westinghouse;

▪ ln57 para o Conversor de Protocolo LN57 da Leeds & Northrup;

▪ i101 para o Conversor de Protocolo IEC 870-5-101;

▪ dnp3 para o Conversor de Protocolo DNP 3.0 da Harris;

▪ modb para o Conversor de Protocolo MODBUS.

Para qualquer protocolo monitorado, o MMF apresenta a hora da transmissão ou recepção da


mensagem e uma seta para direita se a mensagem é de transmissão ou uma seta para esquerda se
a mensagem foi recebida. A partir daí é exteriorizada a mensagem cujo formato varia de acordo com
o protocolo sendo monitorado.
A exteriorização das mensagens é feita em um terminal (xterm do sistema operacional), mas
também pode ser gravada em disco. Por exemplo, a chamada para monitoração de mensagens

47
5 MONITOR DE MENSAGENS FÍSICAS (MMF)

apenas de transmissão, a partir do índice 100, para o protocolo IEC 870-5-101, sendo gravada no
arquivo i101.log, a ser localizado no diretório $LOG, ficaria assim:
\mmf i101 tx 100 | tee $LOG/i101.log
O arquivo gerado pela monitoração pode ser posteriormente manipulado através do Visor de Logs
do SIG, podendo, portanto, ser utilizadas todas as facilidades fornecidas por este módulo para
procura, seleção, compactação, impressão etc.

48
Capítulo

6
6 Ajustes de Limites por Patamares
de Carga (Pcarg)

A função de ajuste automático de limites operativos de medidas analógicas por monitoração de


patamares de carga, também chamada no SAGE de PCARG, tem por objetivo alterar
automaticamente os limites de advertência e de urgência de medidas analógicas - PAS, a partir da
determinação de condições monitoradas para uma ou mais ocorrências da entidade patamar de
carga – PTC.

6.1 Execução da Função


A função PCARG é executada internamente pelo próprio Serviço de Aquisição e Controle - SAC
como uma de suas funções nativas, visando obter assim um melhor desempenho na realização da
função.
A Figura 6- 1 mostra um diagrama geral da função configurada no âmbito do Subsistema de
Tratamento de Informação - STI e executada em tempo-real pelo SAC.

49
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

Figura 6- 1 - Diagrama Geral da função PCARG

No diagrama estão identificadas as entidades PTC, CLM e PAS que são utilizadas para
implementação da função, a entidade TGL utilizada para a configuração dos critérios de
relacionamento entre PTC/CLM e CLM/PAS para medidas de equipamentos, e a entidade TEMPO
usada para definir uma tabela de horários e de feriados.
A entidade PTC contém itens (ocorrências de PTC) que são usados para agrupar, indiretamente
via CLM, pontos analógicos PAS que terão os seus limites alterados automaticamente pela função.
Ao determinar que uma ocorrência de PTC migrou de um patamar para outro, o SAC atualiza em
todos os pontos analógicos PAS vinculados aquele PTC os quatro limites (dois de advertência e dois
de urgência) definidos para o novo patamar nas ocorrências correspondentes da entidade CLM.
Deve-se ressaltar que uma ocorrência da entidade PTC é exclusivamente associada à alteração de
limites de tensão (nesse caso é definido um PAS de monitoração cujo valor é utilizado para verificar a
migração de patamar) ou à alteração de limites de equipamento (MW, MVAR, MVA, AMP).
Hipoteticamente, suponha que a configuração do SAGE indica que o sistema tem 4 ocorrências de
PTC, relacionadas com a atualização automática de limites de tensão. Suponha ainda que as
instalações (ou estações) foram agrupadas em PTCs segundo as regiões do sistema (norte, sul, leste
e oeste). O SAC, ao determinar que um desses PTCs mudou de patamar, por exemplo, o PAS de
monitoração do PTC das instalações da região norte migrou do patamar de carga leve para o de
carga média, as ocorrências de CLM vinculadas ao PTC das instalações da região norte serão
pesquisadas, e os quatro limites definidos nessas CLM para a carga média serão carregados em
todos os pontos analógicos associados a essas CLM, nesse caso pontos analógicos de tensão dessa
região.

50
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

Para determinar a mudança de patamar de um PTC, as três seguintes condições são monitoradas
na ordem inversa de prioridade apresentada abaixo:
▪ Monitoração do valor corrente de medidas analógicas PAS, designadas como ‘medidas
monitoradas’ dos PTC (geralmente, medidas calculadas configuradas para esta finalidade
de monitoração do PTC), onde o valor corrente de uma ‘medida monitorada’ determina em
que patamar de carga o seu PTC associado será considerado naquele momento;

▪ Atendimento da data-hora corrente a uma das entradas da tabela de tempo, onde cada
entrada define uma faixa de tempo designando um PTC associado e o patamar de carga
que será considerado para o PTC naquela faixa horária;

▪ Imposição manual do operador que determinará em que patamar de carga o PTC será
considerado naquele momento.

Por exemplo, segundo a ordem de prioridade mencionada acima, caso o operador imponha
manualmente a um determinado PTC que as medidas vinculadas a ele deverão estar operando em
carga leve, mesmo que a tabela de tempo esteja determinando que, naquele momento, esse PTC
deveria estar operando em carga pesada, os limites dos pontos analógicos vinculados a este PTC
serão ajustados para a carga leve.
Igualmente, mesmo que o valor corrente de uma ‘medida monitorada’ de um PTC esteja indicando
para esse PTC a operação em carga média, caso exista uma entrada da tabela de tempo sendo
atendida, indicando que naquele horário o PTC deve operar em carga pesada esta será a condição
que prevalecerá fazendo com que os limites dos pontos analógicos deste PTC sejam ajustados para
a carga pesada.

6.2 Configuração da Função na Base FONTE


Para configurar a função PCARG o usuário deve preencher as seguintes entidades da base fonte
do SAGE:
PTC – Patamar de carga para atualização automática de limites. Através desta tabela o usuário
definirá quantos e quais os conjuntos independentes de pontos analógicos existirão para serem
submetidos à avaliação do patamar de carga. Nessa entidade o usuário configura a identificação do
PTC. O atributo PAS dessa tabela deve ser obrigatoriamente preenchido (medida monitorada) para
os PTCs associados à atualização automática de limites de tensão. A existência de uma ‘medida
monitorada’ vinculada ao PTC implica que ele será monitorado podendo ser ajustado para as cargas
‘mínima’, ‘leve’, ‘média’, ‘pesada’ ou ‘máxima’ segundo qualquer um dos três critérios listados no item
anterior.
Para os PTCs associados à atualização automática de limites de equipamento, o atributo PAS não
pode ser preenchido. Nesse caso, o ajuste de limites será definido em função do horário ‘diurno’ e
‘noturno’, por dois dos três critérios listados acima; o critério da tabela de tempo e o de imposição
manual. Além disso, as medidas analógicas que terão os limites ajustados segundo esses PTC

51
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

poderão ser de diferentes tipos (MW, MVAR, MVA e AMP) de equipamentos (LTR, CAR, TR2 etc) em
agrupamentos (SIS, REG, ACO, CIA) do sistema elétrico.
INS – Instalação. É utilizada para agrupar os pontos analógicos de tensão cujos limites serão
ajustados automaticamente. Esse agrupamento é realizado associando um conjunto de instalações a
um mesmo PTC. Os PTC’s relacionados com o ajuste automático de limites de tensão necessitam da
definição de um ponto analógico, cujo valor será monitorado para verificar a migração de patamar de
carga.
EST – Estação. Também é utilizada para agrupar os pontos analógicos de tensão cujos limites
serão ajustados automaticamente. Esse agrupamento é realizado associando um conjunto de
instalações a um mesmo PTC. Permite uma configuração mais refinada do que a configuração por
Instalação. Nesse caso estações de uma mesma instalação podem ser associadas à PTC’s
diferentes. O usuário pode configurar uma parte do sistema por instalação, quando todas as estações
da instalação devem estar associadas a um mesmo PTC; e outra parte do sistema por estação, no
caso em que as estações de uma instalação devem ser associadas à PTC’s diferentes.
TGL – Tipo de grandeza para atualização automática de limites de equipamentos. Nesta tabela
serão definidos os critérios que permitirão associar os PTC (indiretamente através da entidade CLM)
aos pontos analógicos em PAS que terão os seus limites gerenciados pelo PTC.
Essa configuração é feita através de três atributos que definem [1] o tipo de grandeza do ponto
(GRAND= AMP, MVA, MVAR, MW), [2] o tipo de equipamento ao qual ela pertence (TPEQP= LTR,
CAR, UGE, TR2 etc) e [3] o agrupamento ou grupo em que ela reside (GRUPO= SIS, REG, ACO,
CIA).
O usuário pode, por exemplo, projetar que os itens definidos na entidade PTC se relacionarão com
os pontos analógicos que eles vão controlar segundo três critérios, sendo um para controlar limites de
medidas de potência ativa (GRAND=MW) de linhas de transmissão (TPEQP=LTR) em companhias
(GRUPO=CIA), outro para controlar limites de medidas de potência reativa (GRAND=MVA) de
transformadores (TPEQP=TR2/TR3) em áreas de controle (GRUPO=ACO).
Deve ser observado ainda, que na tabela PAS, os atributos TIPO e TPEQP devem ser
preenchidos corretamente para que a configuração dos CLM’s e PAS’s que terão os limites alterados
automaticamente possa ser realizada.
SIS/REG/ACO/CIA – Na base de dados fonte do SAGE as entidades Sistema Interligado (SIS),
Região (REG), Área de Controle (ACO) e Companhia (CIA) definem agrupamentos de dados que
podem ser relacionados a um PTC, quando se deseja que as medidas (MW, MVAR, MVA ou AMP)
daquele agrupamento tenham os limites definidos por aquele PTC relacionado. Esse relacionamento
é estabelecido pela utilização do atributo opcional ‘PTC’ presente em cada uma dessas entidades. As
medidas que serão controladas pelo PTC serão aquelas que atenderem aos critérios definidos
anteriormente em TGL, conforme descrito acima. Um mesmo PTC pode ser referenciado por vários
agrupamentos que podem ser do mesmo tipo (ex: várias Companhias) ou de tipos diferentes (ex:
algumas Companhias e algumas Regiões). Deve-se observar, entretanto, que não é permitido que as
tabelas SIS, REG, ACO ou CIA (utilizadas para configurar a atualização de limites de equipamentos)

52
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

referenciem um PTC que também é referenciado pela tabela INS ou EST (utilizadas para configurar a
atualização de limites de tensão) e vice-versa.
TEMPO – Nessa entidade o usuário especifica faixas de tempo, associa cada faixa a um PTC, e
determina qual o patamar será assumido por aquele PTC quando a data-hora corrente se encontrar
naquela faixa de tempo.
As sintaxes detalhadas para especificar a faixa de tempo, o PTC associado e o patamar para o
qual ele será forçado estão listadas na tabela 1 abaixo.
Para descrever a faixa de tempo podem ser integralmente especificadas as data-horas de início e
fim com dia, mês, ano, hora e minuto, ou com o ano genérico ao se utilizar o caractere ‘*’ para
especificá-lo. Também se pode descrever a faixa de tempo especificando um dia genérico da
semana (domingo=1, segunda=2, ..., sábado=7) ou ainda utilizar o caractere ‘u’ para os ‘dias-úteis-
de-semana’ ou o caractere ‘f’ para os ‘dias-do-fim-de-semana’. A definição de quais dias são
considerados ‘dias-úteis-de-semana’ e quais são considerados ‘dias-do-fim-de-semana’ é feita na
entidade DTS descrita abaixo.
FRD – Essa entidade permite configurar os dias que serão considerados feriados. Ao considerar
um determinado dia como feriado, o SAC ignora a sua identificação de dia da semana e passa a
tratá-lo como ‘domingo’.
DTS – Essa entidade permite configurar os dias que serão considerados ‘dias-úteis-de-semana’ e
os que serão considerados ‘dias-do-fim-de-semana’.
O CEPEL recomenda a utilização do exemplo distribuído com a base ‘demo_ems’ como base para
a configuração inicial dessas entidades.
T_xxx_yy
Define a ordenação de pesquisa nas entradas da tabela de
ID
tempo onde ‘xxx’ está no formato 001 a 999 e ‘yy’ no formato
01 a 99
Dia Típico: DXv HH:MM HH:MM
Para especificar uma faixa de tempo genérica baseada em
hora e minuto de início e fim em qualquer ano, mês e dia de
um determinado dia da semana, onde ‘X’ é 1 para o domingo,
2 para segunda ... até 7 para o sábado, ou a letra ‘u’ para os
dias úteis, ou a letra ‘f’ para os dias do fim de semana, e ‘v’ é
HORÁRIO uma letra opcional para especificar que a entrada só é válida
em horário de verão.
Dia Especial: DD/MM/AA-HH:MM DD/MM/AA-HH:MM
Para especificar uma faixa de tempo específica baseada em
dia, mês, ano, hora e minuto para início e fim. Pode ser usado
o caractere ‘*’ para especificar o ano, significando assim que
o dia e mês serão considerados em qualquer ano.
Identificação do PTC associado ou o caractere ‘*’ indicando
PTC que a entrada da tabela de tempo está associada a todos os
PTC.
Define o valor do patamar de carga dentre as palavras chave
MIN, LEV, MED, PES, MAX para os patamares de carga
PATAMAR mínima, leve, média, pesada e máxima, respectivamente ou
DIA e NOT para os patamares de carga diurna e noturna
respectivamente.
Tabela 6- 1 - Especificação da Tabela de Tempo.

53
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

6.3 Auto-Configuração da função na Base


REFERÊNCIA
É importante observar que a entidade CLM não é configurada na base fonte. O complemento da
configuração da função PCARG com o carregamento de CLM é realizado automaticamente pelo STI
durante a execução da lógica de carregamento da base referência.
Quando carrega a base referência o STI cria as CLM necessárias e estabelece os
relacionamentos PTC/CLM e CLM/PAS com base nos critérios definidos na entidade TGL da base
fonte e das informações preenchidas na entidade PTC e nos atributos PTC das entidades SIS, REG,
ACO, CIA , INS e EST.
A configuração é completada com o carregamento dos conjuntos de limites iniciais de CLM para
todos os cinco patamares, baseando-se na média dos limites dos pontos PAS associados ao CLM.
Durante a operação em tempo-real o despachante pode ajustar diferentes valores para os limites
desses patamares através de entrada de dados nas telas de conjuntos de limites mostradas no
próximo item. Essas entradas de dados deverão ser preservadas durante o procedimento de carga
das próximas versões da base de dados optando-se pelo carregamento com preservação
disponibilizado pelo STI. A escolha de quais limites devem ser preservados é definida na entidade
PSV.

6.4 Operação em Tempo Real – Telas da função


A função é operada através das seguintes telas:
▪ Tela de Patamares de Carga;

▪ Tela com as Tabelas de Tempo e Feriados;

▪ Tela com os Conjuntos de Limites;

▪ Lista de Alarmes de ‘Ações do Despachante’ e de ‘Suporte Computacional’.

A Figura 6- 2 mostra a tela Patamares de Carga - PTC. Essa tela permite ao operador ativar ou
desativar a função e monitorar o estado da cada um dos PTCs definidos na base de dados.
Na coluna ‘Status’ o operador é informado em qual patamar de carga o PTC se encontra com as
palavras-chave ‘MIN’, ‘LEV’, ‘MED’, ‘PES’, ‘MAX’ ou ‘DIA’, ‘NOT’, seguidas de uma letra minúscula ‘m’
para indicar se a causa da escolha foi à imposição manual feita pelo operador (através de entrada de
dados nessa coluna), ‘t’ para indicar se a causa foi o atendimento a uma entrada da tabela de tempo,
ou ‘c’ para indicar se a causa foi o valor de carga verificada pela ‘medida monitorada’, cuja
identificação é mostrada na coluna ‘Identificador Ponto Analógico’ e o valor corrente é mostrado na
coluna ‘Valor’.
Nas quatro colunas de limites que se seguem são mostrados e/ou entrados manualmente os
valores dos limites que são comparados ao valor da ‘medida monitorada’ (coluna “Valor") para

54
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

determinar o patamar no qual o PTC se encontra, nos casos onde ele não é atendido pela tabela de
tempo ou forçado por imposição manual.

Figura 6- 2 - Patamares de Carga.

A Figura 6- 3 mostra a tela com as tabelas de tempo (horária e feriados). Essa tela permite ao
operador visualizar na coluna ‘Status’ da tabela horária, através da palavra-chave ‘OPER’, quais das
suas entradas estão sendo atendidas e, conseqüentemente, qual o PTC teve o patamar
reprogramado e para que carga.

55
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

Figura 6- 3 - Tabela de Tempo.

Como todas as outras colunas da tabela horária permitem a entrada de dados para alterar linhas
existentes ou inserir novas, a palavra-chave ‘OK’ na coluna “Status" indica que as sintaxes estão
corretas e o PTC escolhido existe, caso contrário será exibida a palavra-chave "ERRO".
A tela permite também visualizar e efetuar entradas de dados na tabela de feriados.
A Figura 6- 4 mostra uma das telas Conjuntos de Limites - CLM, nesse caso os conjuntos de
limites para a carga pesada. Essa tela permite ao operador visualizar e alterar com entrada de dados
os limites que serão aplicados aos pontos analógicos quando o PTC relacionado estiver em carga
pesada. A coluna ‘Status’ informa se os limites são coerentes com a palavra-chave ‘OK’ ou se existe
algum erro com a palavra-chave ‘ERRO’.
Outras seis telas equivalentes são utilizadas para os patamares de carga mínima, leve, média,
máxima, diurna e noturna.

56
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

Figura 6- 4 - Conjunto de Medidas para Alteração de Limites.

A Figura 6- 5 mostra a lista de alarmes de ações do despachante onde são registradas as


ocorrências de entradas de dados e validação das telas apresentadas anteriormente.
A Figura 6- 6 mostra a lista de alarmes de processos e suporte computacional onde são
registrados os eventos de migração de patamar feitos em tempo-real pelo processo SAC.

Figura 6- 5 - Lista de Alarmes de Ações do Despachante.

Figura 6- 6 - Lista de Alarmes de Processos e Suporte Computacional.

57
6 AJUSTES DE LIMITES POR PATAMARES DE CARGA (PCARG)

58
Capítulo

7
7 Scripts de Manutenção do SAGE

7.1 Introdução
Os scripts descritos a seguir foram desenvolvidos a fim de facilitar as tarefas relacionadas à
manutenção da configuração do SAGE.
Os scripts (rligador, rvisoracesso, convbase, sincconfig, ativasage e desativasage) são baseados
nos comandos rsh (remote shell) e rcp (remote file copy) e para seu funcionamento é necessário que
o arquivo $HOME/.rhosts das máquinas envolvidas no processo, estejam devidamente configurado.
O comando habilita_base se encarregará de criar e/ou atualizar este arquivo a partir do arquivo
$BD/sti_hosts que contém a relação de sites configurados na tabela NOH da base de dados (com
exceção das máquinas transportadoras de protocolo). Os scripts estão disponibilizados no diretório
$SAGE/bin/sys e poderão ser executados a partir de qualquer sub-diretório da conta SAGE.
Utilizaremos a seguinte convenção para os parâmetros dos scripts:
Convenção: <xxx> - parâmetros obrigatórios;
[xxx] - parâmetros opcionais.

7.2 Relação dos scripts


1. sincconfig <arq> [-x] [-h host | -s arq] [-d dir] [-u user]

2. AtualizaBD [] [fonte] [fria] [fria fonte] [user <nome user>] [user <nome user> fonte] [path <path
arq xdr] [path <path arq xdr> fonte]

3. ativasage [-h host | -s arq]

4. rligador [-h host | -s arq]

5. rvisoracesso <-h host>

6. geralog [-l lin] [-gz|-bz2]

7. cria_base <base> [padrao]

8. remove_base [base]

9. habilita_base [base]

10. instala_sage <base> [src]

59
7 SCRIPTS DE MANUTENÇÃO DO SAGE

11. instala_update <num_updI> [num_updF] [-h host | -s arq] [-u user]

12. remove_update <num_upd>

13. zipconfig < base| [-x arq] > [-b] [-i] [-t] [-s] [-c] [-m] [-gz | -bz2]

14. criasagecnf [base]

15. criasageexe [sage_so] [modelo]

16. habilita_postgres [servidor] [porta]

17. habilita_gbh

18. TrocaIdentTelas <planilha_x.csv> <planilha_z.csv> <tela1> <tela2> <tela3> ....

7.3 Descrição dos scripts

7.3.1 sincconfig

Este procedimento faz a cópia de arquivos para computadores remotos, possibilitando a expansão
de arquivo nos formatos .tar.Z, .tar.gz e .tar.bz2. A expansão vale apenas para um único arquivo
copiado. A cópia de vários arquivos se dá por meio da máscara * aplicada com aspas junto ao nome
do arquivo <arq>. Sua forma de uso e os opcionais estão descritos abaixo.
Uso: sincconfig <arq> <-h host | -s [arq]> [-d dir] [-u user] [-x]
Onde:
arq Nome do arquivo para copia e/ou expansão, é permitido o uso da mascara “*”
para cópia de múltiplos arquivos.
-h host Sincroniza o site especificado em host.
-s Sincroniza os sites configurados no arquivo $BD/sti_hosts.
-s arq Sincroniza os sites configurados no arquivo “arq”.
-d dir Diretório destino do arquivo copiado. Default:($SAGE).
-u user Faz a sincronização do arquivo na conta do usuário user.
-x Expande o arquivo copiado (formatos: tar.Z, tar.gz, tar.bz2).
-h Para exibir as opções de uso.

Exemplos:

sincconfig SSC_Amb –h piracicaba


→ Copia o arquivo SSC_Amb para o diretório $SAGE da máquina piracicaba

sincconfig “$TELAS/SB*” –s –d $TELAS


→ Copia todos os arquivos iniciados com SB do diretório $TELAS para o diretório $TELAS de
todas as máquinas configuradas em $BD/sti_hosts.

sincconfig $TELAS/telas.tar.Z –h piracicaba –d $TELAS -x


→ Copia o arquivo telas.tar.Z para o diretório $TELAS da máquina piracicaba e faz a expansão.

sincconfig $TELAS/telas.tar.Z –s $BD/arq_sites –d $TELAS

60
7 SCRIPTS DE MANUTENÇÃO DO SAGE

→ Copia o arquivo telas.tar.Z para o diretório $TELAS da(s) máquina(s) relacionadas no arquivo
$BD/arq_sites.

sincconfig sagecnf_demo_ems.tar.Z -s –x
→ Copia o arquivo ./sagecnf_demo_ems.tar.Z para o diretório $SAGE da(s) máquina(s)
relacionadas no arquivo $BD/sti_hosts e faz a expansão.

sincconfig SSC_Amb –h piracicaba –u xpto


→ Copia o arquivo SSC_Amb para o diretório $SAGE da máquina piracicaba na conta do usuário
xpto.

7.3.2 AtualizaBD

Este script faz a atualização da base de dados do SAGE preparando-a para que possa ser
utilizada no ambiente de tempo-real. Os procedimentos realizados pelo script serão descritos para
cada uma das formas de utilização.

Formas de Uso:

AtualizaBD : Nesta forma o script executa os seguintes procedimentos:


▪ Verifica se existem arquivos TXT mais novos que os correspondentes arquivos XDR no
diretório $BD/fria. Se for o caso realiza a conversão TXT-> XDR;

▪ Executa o procedimento de preservação da versão anterior da base. Nesse caso é


pressuposto que a versão anterior se encontra no diretório $BD da mesma árvore do SAGE
onde se encontra a base nova (fria). Para efeito de salvaguarda a base anterior é copiada
para o diretório $BD/old.

AtualizaBD fonte : Esta forma pressupõem a existência de um servidor de base de dados


relacional configurado no ambiente Unix (Postgresql, Informix ou Oracle). Nesta forma o script
executa os seguintes procedimentos:
▪ Carrega a base fonte a partir dos arquivos de configuração localizados em
$SAGE/config/$BASE/bd/dados ($BD/dados) localizados na árvore do SAGE no ambiente
Unix.

▪ Carrega a base referência (base fria) no diretório $BD/fria já no formato XDR.

▪ Executa o procedimento de preservação da versão anterior da base. Nesse caso é


pressuposto que a versão anterior se encontra no diretório $BD da mesma árvore do SAGE
onde se encontra a base nova (fria). Para efeito de salvaguarda a base anterior é copiada
para o diretório $BD/old.

AtualizaBD fria : Nesta forma o script executa os seguintes procedimentos:

61
7 SCRIPTS DE MANUTENÇÃO DO SAGE

▪ Verifica se existem arquivos TXT mais novos que os correspondentes arquivos XDR no
diretório $BD/fria. Se for o caso realiza a conversão TXT-> XDR;

▪ Copia os arquivos XDR do diretório $BD/fria para o diretório $BD. Nesse caso não é
executado o procedimento de preservação.

AtualizaBD fria fonte : Esta forma pressupõem a existência de um servidor de base de dados
relacional configurado no ambiente Unix (Postgresql, Informix ou Oracle). Nesta forma o script
executa os seguintes procedimentos:
▪ Carrega a base fonte a partir dos arquivos de configuração localizados em
$SAGE/config/$BASE/bd/dados ($BD/dados) localizados na árvore do SAGE no ambiente
Unix.

▪ Carrega a base referência (base fria) no diretório $BD/fria já no formato XDR.

▪ Copia os arquivos XDR do diretório $BD/fria para o diretório $BD. Nesse caso não é
executado o procedimento de preservação.

AtualizaBD user <nome user> : Nesta forma o script executa os seguintes procedimentos:
▪ Verifica se existem arquivos TXT mais novos que os correspondentes arquivos XDR no
diretório $BD/fria. Se for o caso realiza a conversão TXT-> XDR;

▪ Executa o procedimento de preservação da versão anterior da base. Nesse caso é


pressuposto que a versão anterior se encontra no diretório $BD da árvore do SAGE
associada ao usuário <nome do user> (preservação remota). Sendo assim os arquivos
XDR da versão anterior deverão estar localizados em ~<nome
user>/sage/config/$BASE/bd. Para efeito de salvaguarda a base anterior é copiada para o
diretório $BD/old.

AtualizaBD user <nome user> fonte : Esta forma pressupõem a existência de um servidor de
base de dados relacional configurado no ambiente Unix (Postgresql, Informix ou Oracle). Nesta forma
o script executa os seguintes procedimentos:
▪ Carrega a base fonte a partir dos arquivos de configuração localizados em
$SAGE/config/$BASE/bd/dados ($BD/dados) localizados na árvore do SAGE no ambiente
Unix.

▪ Carrega a base referência (base fria) no diretório $BD/fria já no formato XDR.

▪ Executa o procedimento de preservação da versão anterior da base. Nesse caso é


pressuposto que a versão anterior se encontra no diretório $BD da árvore do SAGE
associada ao usuário <nome do user> (preservação remota). Sendo assim os arquivos
XDR da versão anterior deverão estar localizados em ~<nome
user>/sage/config/$BASE/bd. Para efeito de salvaguarda a base anterior é copiada para o
diretório $BD/old.

62
7 SCRIPTS DE MANUTENÇÃO DO SAGE

AtualizaBD path <path arq xdr> : Nesta forma o script executa os seguintes procedimentos:
▪ Verifica se existem arquivos TXT mais novos que os correspondentes arquivos XDR no
diretório $BD/fria. Se for o caso realiza a conversão TXT-> XDR;

▪ Executa o procedimento de preservação da versão anterior da base. Nesse caso é


pressuposto que os arquivos XDR da versão anterior se encontram no diretório <path arq
xdr>. Esse diretório pode ser local ou remoto. Para efeito de salvaguarda a base anterior é
copiada para o diretório $BD/old.

AtualizaBD path <path arq xdr> fonte : Esta forma pressupõem a existência de um servidor de
base de dados relacional configurado no ambiente Unix (Postgresql, Informix ou Oracle). Nesta forma
o script executa os seguintes procedimentos:
▪ Carrega a base fonte a partir dos arquivos de configuração localizados em
$SAGE/config/$BASE/bd/dados ($BD/dados) localizados na árvore do SAGE no ambiente
Unix.

▪ Carrega a base referência (base fria) no diretório $BD/fria já no formato XDR.

▪ Executa o procedimento de preservação da versão anterior da base. Nesse caso é


pressuposto que os arquivos XDR da versão anterior se encontram no diretório <path arq
xdr>. Esse diretório pode ser local ou remoto. Para efeito de salvaguarda a base anterior é
copiada para o diretório $BD/old.

Exemplos:

AtualizaBD
→ Atualiza os arquivos XDR e faz a preservação a partir de $BD da conta local.

AtualizaBD fria fonte


→ Carrega a Base Fonte, Carrega a Base Referência e copia os arquivos XDR de $BD/fria para
$BD.

AtualizaBD user sageold


→ Atualiza os arquivos XDR e faz a preservação a partir da conta sageold.

AtualizaBD path /home/sage/tmp fonte


→ Carrega a Base Fonte, Carrega a Base Referência e faz a preservação a partir dos arquivos
XDR localizados no diretório /home/sage/tmp.

63
7 SCRIPTS DE MANUTENÇÃO DO SAGE

7.3.3 ativasage

Este procedimento ativa o SAGE seqüencialmente na rede e/ou localmente (com intervalos de 30
segundos entre as ativações), com a exibição dos resultados em janelas independentes na máquina
local (syslog). Se nenhum parâmetro for utilizado, a ativação será na maquina local, para o parâmetro
–s, a seqüência de ativação será determinada pela ordem das máquinas no arquivo $BD/sti_hosts ou
no arquivo informado no parâmetro opcional –s arq. Sua forma de uso e os opcionais estão descritos
abaixo.
Uso: ativasage [-h host | -s [arq]]

Onde:
-h host Ativa o SAGE no site especificado em host.
-s Ativa o SAGE nos sites configurados no arquivo $BD/sti_hosts.
-s arq Ativa o SAGE nos sites configurados no arquivo "arq".
-h Para exibir as opções de uso.

Exemplos:

ativasage
→ Ativa o SAGE na máquina local ($HOST).

ativasage -s
→ Ativa o SAGE na(s) máquina(s) relacionada(s) no arquivo $BD/sti_hosts.

ativasage –h piracicaba
→ Ativa o SAGE na máquina piracicaba.

ativasage –s $BD/arq_sites
→ Ativa o SAGE na(s) máquina(s) relacionadas no arquivo $BD/arq_sites.

7.3.4 rligador

Este procedimento executa o Ligador de telas em computadores remotos (ou localmente) com a
exibição dos resultados na máquina local. Se nenhum parâmetro for utilizado, a ligação de telas se
dará somente na maquina local. Para o parâmetro –s, a seqüência de ligação será determinada pela
ordem das máquinas no arquivo $BD/sti_hosts ou no arquivo informado no parâmetro opcional –s
arq. Sua forma de uso e os opcionais estão descritos abaixo.
Uso: rligador [-h host | -s [arq]]

Onde:
-h host Executa o Ligador no site especificado em host.
-s Executa o Ligador nos sites configurados no arquivo $BD/sti_hosts.
-s arq Executa o Ligador nos sites configurados no arquivo “arq”.

64
7 SCRIPTS DE MANUTENÇÃO DO SAGE

-h Para exibir as opções de uso.

Exemplos:

rligador
→ Executa o ligador de telas na máquina local.

rligador -s
→ Executa o ligador de telas na(s) máquina(s) relacionada(s) no arquivo $BD/sti_hosts.

rligador –h piracicaba
→ Executa o ligador de telas na máquina piracicaba.

rligador –s arq_sites
→ Executa o ligador de telas na(s) máquina(s) relacionada(s) no arquivo ./arq_sites.

7.3.5 rvisoracesso

Este procedimento executa o visor de acesso em um computador remoto com exibição na


máquina local. Sua forma de uso e os opcionais estão descritos abaixo.
Uso: rvisoracesso <-h host>

Onde:
-h host Executa o visor no site especificado em host.

Exemplo:

rvisoracesso –h piracicaba
→ Executa o visor acesso na máquina piracicaba, com display local.

7.3.6 geralog

Cria 3 arquivos de log, em $SAGE, com os seguintes formatos e conteúdo:


logS_$HOST_ddmmaahhmm.tar.? $LOG/*.log
$SAGE/SSC_Amb
$BD/dc.conf

logSo_$HOST_ddmmaahhmm.tar.? $LOG/*.old
logSy_$HOST_ddmmaahhmm.tar.? /var/??/messages

Uso: geralog [-l lin] [-gz|-bz2]

Onde:
-l lin Seleciona as n linhas finais do arquivo messages

65
7 SCRIPTS DE MANUTENÇÃO DO SAGE

-gz|bz2 Seleciona o comando de compactação. Default:compress


-h Para exibir as opções de uso.

Exemplos:

geralog –l 1000
→ Captura os arquivos de log, e as 1000 linhas finais do arquivo de log do sistema operacional
(messages) no formato messages1000l, gerando os arquivos:
▪ logS_srv1_dd_mm_aa_hhmm.tar.Z ($LOG/*.log + dc.conf + SSC_Amb)

▪ logSo_srv1_dd_mm_aa_hhmm.tar.Z ($LOG/*.old)

▪ logSy_srv1_dd_mm_aa_hhmm.tar.Z (arquivo messages ou syslog)

geralog –bz2 –l 500


→ Captura os arquivos de log, utilizando o comando de compactação bzip2 e seleciona as 500
linhas finais do arquivo de log do sistema operacional (messages) no formato messages500l.
▪ logS_srv1_dd_mm_aa_hhmm.tar.bz2

▪ logSo_srv1_dd_mm_aa_hhmm.tar.bz2

▪ logSy_srv1_dd_mm_aa_hhmm.tar.bz2

geralog –gz
→ Captura os arquivos de log, utilizando o comando de compactação gzip.
▪ logS_srv1_dd_mm_aa_hhmm.tar.gz

▪ logSo_srv1_dd_mm_aa_hhmm.tar.gz

▪ logSy_srv1_dd_mm_aa_hhmm.tar.gz

7.3.7 cria_base

Este procedimento cria os diretórios e arquivos necessários para uma nova configuração do
SAGE, a partir de uma configuração padrão. Sua forma de uso e os opcionais estão descritos
abaixo.
Uso: cria_base <base> [padrao]

Onde:
base É o nome da base a ser criada.
padrao É o nome da base origem (configuração) que será utilizada como referencia para
a criação da nova base, caso não seja especificado, será utilizado o conteúdo da
variável de ambiente $PADRAO.

66
7 SCRIPTS DE MANUTENÇÃO DO SAGE

Exemplos:

cria_base uhett

→ Cria a estrutura de diretórios para a base uhett, baseada em $PADRAO.

cria_base uhett xpto


→ Cria a estrutura de diretórios para a base uhett, baseada na estrutura da base xpto

7.3.8 remove_base

Este procedimento remove os diretórios e arquivos pertencentes a uma configuração do SAGE.


Sua forma de uso e os opcionais estão descritos abaixo.
Uso: remove_base [base]

Onde:
base É o nome da base que será removida.
ATENÇÃO: caso não seja especificado, será utilizado o conteúdo da variável de
ambiente $BASE, portanto a base que está atualmente habilitada será removida.

Exemplos:
remove_base
→ Remove a estrutura de diretórios da configuração indicada em $BASE

remove_base uhett
→ Remove a estrutura de diretórios da configuração uhett.

7.3.9 habilita_base

Este procedimento permite colocar qualquer base de dados do SAGE (instalada) como default.
Ele prepara todo o ambiente com as características da nova configuração. Sua forma de uso e os
opcionais estão descritos abaixo.
Uso: habilita_base [base]

Onde:
base É o nome da base que será habilitada como default. Caso não seja especificado,
será utilizado o conteúdo da variável de ambiente $BASE.

Exemplos:

habilita_base
→ Coloca como default a configuração indicada em $BASE

67
7 SCRIPTS DE MANUTENÇÃO DO SAGE

habilita_base uhett
→ Coloca como default a configuração indicada em uhett

Obs.: As modificações feitas pelo script habilita_base só terão efeito após efetuar logout e login.

7.3.10 instala_sage

Este procedimento permite instalar o SAGE de forma simples e interativa. Com ele, podemos
instalar uma base, os binários, os fontes e também configurar todo o ambiente operacional, no que
diz respeito a variáveis de ambiente e parametrização do sistema operacional. Sua forma de uso e
os opcionais estão descritos abaixo.
Uso: instala_sage <base> [src]

Onde:
base É o nome da base que será instalada e habilitada a partir do arquivo
sagecnf_$BASE.tar.Z;
src É um mnemônico que indica que os fontes do SAGE também devem ser
instalados, esta instalação é feita a partir do arquivo sagesrc.tar.Z.

Exemplos:
instala_sage demo_ems
→ Instala os binários do sistema SAGE e expande o arquivo sagecnf_demo_ems.tar.Z que
contem toda a configuração da base demo_ems, colocando-a como default.

instala_sage demo_ems src


→ Instala os binários e os fontes do sistema SAGE e expande o arquivo sagecnf_demo_ems.tar.Z
que contem toda a configuração da base demo_ems, colocando-a como default.

7.3.11 instala_update

Este procedimento permite instalar os updates do SAGE localmente ou em rede de forma simples
e com algumas vantagens, como por exemplo, a criação de um arquivo de log ($LOG/update.log) que
registra as datas de todas as atualizações efetuadas no sistema. Além disto, uma cópia dos arquivos
alterados é salva no arquivo antes_updnnn_$CPU_$MODELO.tar.Z, (em $SAGE/updates),
permitindo-se, assim, que se retorne a uma situação anterior aos updates, usando o comando
“remove_update <num_upd>”, que irá expandir os arquivos antes_updnnn_$CPU_$MODELO.tar.Z,
na ordem inversa em que foram instalados,
Sua forma de uso e os opcionais estão descritos abaixo.
Uso: instala_update <num_updI> [num_updF] [-h host | -s [arq]] [-u user]

Onde:
-num_updI Número inicial do update a ser instalado.
-num_updF Número final do update a ser instalado.

68
7 SCRIPTS DE MANUTENÇÃO DO SAGE

-h host Instala o(s) update(s) no site especificado em host.


-s Instala o(s) update(s) nos sites configurados no arquivo $BD/sti_hosts.
-s arq Instala o(s) update(s) nos sites configurados no arquivo “arq”.
-u user Instala o(s) update(s) na conta do usuário user.
-h Para exibir as opções de uso.

Exemplos:
instala_update 001
→ Instala o update de nome upd001_$SAGE_SO_ems.tar.Z na máquina local

instala_update 001 010


→ Instala do update 1 ao update 10 na máquina local.

instala_update 010 –s arq_sites


→ Instala o update 10 na(s) máquina(s) relacionada(s) no arquivo ./arq_sites

instala_update 010 –h piracicba


→ Instala o update 10 na máquina piracicaba.

instala_update 010 –s piracicaba –u xpto


→ Instala o update 10 na máquina piracicaba na conta do usuário xpto.

7.3.12 remove_update

Este procedimento permite remover os updates do SAGE e restaurar a versão anterior a partir do
arquivo antes_updnnn_$CPU_$MODELO.tar.Z. Sua forma de uso e os opcionais estão descritos
abaixo.
Uso: remove_update <num_upd>
Onde:
Num_upd é o número do update a ser removido.

Exemplo:

remove_update 10
→remove o update número 10 e restaura o arquivo de backup
antes_upd010_Linux_x86_ems.tar.Z .

7.3.13 zipconfig

Para criar backups da configuração, devemos utilizar o script zipconfig. Este script criará
arquivo(s) de backup nos formatos .tar.Z, .tar.gz ou .tar.bz2 para uma configuração. Se nenhum
parâmetro opcional for selecionado, será criado o arquivo cnf_”$BASE”_ddmmaa.tar.?, com a
configuração completa da base (idem ao criasagecnf).

69
7 SCRIPTS DE MANUTENÇÃO DO SAGE

Veja abaixo os exemplos:


Uso: zipconfig < base| [-x arq] > [-b] [-i] [-t] [-s] [-c] [-m] [-gz | -bz2]
Onde:
base Nome da configuração para a execução do processo.
-x arq Faz a expansão de arq no diretório local a execução.
-b Faz a compactação do diretório $BD.
-i Faz a compactação do diretório de ihm.
-t Faz a compactação do diretório de telas.
-s Faz a compactação do diretório sys.
-c Faz a compactação do diretório de cálculos.
-m Cria múltiplos arquivos (valido para -b,-i,-t,-s e -c).
-gz|bz2 Seleciona o comando de compactação. Default:compress
gz = gzip Compacta mais que o compress.
bz2 = bzip2 Compacta mais que o gz mas é mais lento.
-h Para exibir as opções de uso.

Exemplos:
zipconfig
→ Cria em $SAGE o arquivo cnf_$BASE_ddmmaa.tar.Z (da base habilitada)

zipconfig demo_ems
→ Cria em $SAGE o arquivo cnf_demo_ems_ddmmaa.tar.Z

zipconfig demo_ems -i
→ Cria em $SAGE o arquivo ihm_demo_ems_ddmmaa.tar.Z

zipconfig demo_ems –i -gz


→ Cria em $SAGE o arquivo ihm_demo_ems_ddmmaa.tar.gz

zipconfig demo_ems –i –t -b
→ Cria em $SAGE o arquivo bd_ihm_tel_demo_ems_ddmmaa.tar.Z

zipconfig demo_ems –i –t –b –m
→ Cria em $SAGE os bd_demo_ems_ddmmaa.tar.Z
arquivos:
ihm_demo_ems_ddmmaa.tar.Z
tel_demo_ems_ddmmaa.tar.Z

zipconfig -x xpto.tar.gz
→ Expande o arquivo xpto, nos formatos .Z, .gz e bz2, no local de execução do comando.

70
7 SCRIPTS DE MANUTENÇÃO DO SAGE

7.3.14 criasagecnf

Para criar backup da configuração completa, podemos utilizar o script criasagecnf. Este script
criará um arquivo de backup no formato .tar.Z para uma configuração. Será criado o arquivo
sagecnf_“$BASE”.tar.Z.
Uso: criasagecnf [base]
Onde
:
base É o nome da configuração para a execução do processo
-h Para exibir as opções de uso

Exemplos:
criasagecnf
→ Cria em $SAGE o arquivo sage_cnf_$BASE.tar.Z (base habilitada)

criasagecnf demo_ems
→ Cria em $SAGE o arquivo sage_cnf_demo_ems.tar.Z

7.3.15 criasageexe

Este procedimento cria em $SAGE, um arquivo binário de distribuição do SAGE e tem o seguinte
formato: sageexe_$SAGE_SO_$MODELO.tar.Z. Sua forma de uso e os opcionais estão descritos
abaixo.
Uso: criasageexe [sage_so] [modelo]

Onde:
sage_so É o nome da variável de ambiente que indica para qual sistema
operacional e hardware será criado o binário do SAGE (ex.: Linux_x86,
SunOs_sparc). Caso não seja especificado, será utilizado o conteúdo da
variável de ambiente $SAGE_SO;
modelo É o nome da variável de ambiente que indica qual modelo será utilizado
para criar o binário do SAGE. Caso não seja especificado, será utilizado
o conteúdo da variável de ambiente $MODELO.

Exemplos:

criasageexe
→ Cria o arquivo sageexe_$SAGE_SO_$MODELO.tar.Z em $SAGE

criasageexe Linux_x86
→ Cria o arquivo sageexe_ Linux_x86_$MODELO.tar.Z em $SAGE

criasageexe Linux_x86 ems


→ Cria o arquivo sageexe_ Linux_x86_ems.tar.Z em $SAGE

71
7 SCRIPTS DE MANUTENÇÃO DO SAGE

7.3.16 habilita_postgres

Este script cria as bases de dados utilizadas pelo SAGE, no servidor de base de dados relacional
postgresql.
O nome das bases de dados depende do valor das variáveis de ambiente $MODELO (nome do
modelo de dados), $BASE(nome da base de dados de tempo real do SAGE) e $USER (conta do Unix
que será a proprietária das bases).
Na lista abaixo os nomes entre parênteses referem-se às bases criadas para o modelo “ems”,
base “demo_ems” e usuário “sage”, que correspondem a distribuição Padrão do CEPEL.
cf$MODELO_$USER (cfems_sage): Catálogo da Base Fonte;
cr$MODELO_$USER (crems_sage): Catálogo da Base Referência;
ch$MODELO_$USER (crems_sage): Catálogo da Base Histórica;
bf$BASE_$USER (bfdemo_ems_sage): Base Fonte;
bh$BASE_$USER (bhdemo_ems_sage): Base Histórica;
bc$BASE_$USER (bcdemo_ems_sage): Base Histórica Consolidada);
sapre: Base para o Ambiente de Estudos do SAGE.

O script cria ainda as tabelas e atributos para a base histórica consolidada e para a base sapre.
Obs.: Este script só deve ser utilizado se o servidor de base de dados relacional, a ser utilizado
pelo SAGE, for o Postgresql. Para os outros servidores de bancos de dados suportados pelo SAGE
(Informix e Oracle) o procedimento executado por este script deverá ser realizado manualmente pelo
usuário.

Uso : habilita_postgres [-h <hostname> ] [-p <porta>] [-f] [-m] [-help]

Onde:
-h<hostname> Nome ou endereço IP do servidor postgresql na rede.
Valor default = localhost
-p <porta> Porta de serviço do servidor postgresql na rede.
Valor default = 5432.
-f Força a criação das estruturas das bases de dados do SAGE (default)
-m Para a execução do comando sem a recriação das estruturas das bases
de dados do SAGE.
- help Exibe ajuda.

Obs.: A opção –f apaga todas as informações pré-existentes. Não apaga a Base Histórica.

Exemplos:

habilita_postgres
→ Cria as bases utilizando o servidor postgresql instalado em localhost utilizando a porta 5432.

habilita_postgres serv1
→ Cria as bases utilizando o servidor postgresql instalado na máquina serv1 utilizando a porta
5432.

72
7 SCRIPTS DE MANUTENÇÃO DO SAGE

habilita_postgres -f
→ Faz com que as estruturas das bases de dados do SAGE sejam recriadas. Esta opção deve ser
utilizada quando há mudança da estrutura de dados da Base Fonte e/ou da Base de Tempo-Real do
SAGE. A partir do update 16 passou a ser a opção default.

habilita_postgres -m
→ Deve ser utilizada caso usuário desejar executar o comando habilita_postgres sem recriar as
estruturas das bases de dados.

7.3.17 habilita_gbh

Este script cria as tabelas e atributos da base histórica a partir dos arquivos de configuração
preparados pelo usuário. Os arquivos de configuração (entidade.bh e atributo.bh) estão localizados
no diretório $SAGE/config/$BASE/sti/gbh/dados. Caso o usuário deseje utilizar a configuração padrão
do CEPEL, esses arquivos já estão preparados no diretório $SAGE/config/demo_ems/sti/gbh/dados.
Ao fazer a criação de uma nova base através do script cria_base (veja referência neste manual) os
arquivos de configuração da base histórica são automaticamente copiados da base PADRAO para o
diretório correspondente na nova árvore do SAGE.
Antes de executar o script habilita_bh, o usuário deve fazer as alterações que desejar nos
arquivos de configuração relacionados com a estrutura da base histórica fornecida pelo CEPEL. Para
maiores detalhes sobre esse procedimento consulte o Manual de Configuração da Base Histórica.
Uso : habilita_gbh

7.3.18 TrocaIdentTelas

Este script executa a troca dos identificadores de pontos analógicos e digitais nas telas segundo
orientação dada em planilhas csv. Estas planilhas são a conversão de-para que se pretende fazer,
tendo na primeira coluna os identificadores “de” e na segunda coluna os identificadores “para”.

Uso: TrocaIdentTelas <planilha_pas.csv> <planilha_pds.csv> <tela1> <tela2>

Como resultado, o script gera no diretório corrente as novas telas, tendo o nome do arquivo
seguido de _ID.
Onde:
planilha_pas.csv Planilha com pontos analógicos
planilha_pds.csv Planilha com pontos digitais
tela1 Tela utilizada
tela2 Tela utilizada

Os seguintes cuidados devem ser tomados ao construir as planilhas CSV necessárias ao uso do
script:

73
7 SCRIPTS DE MANUTENÇÃO DO SAGE

▪ Não pode haver espaços entre as duas colunas, apenas o caractere “ponto-e-vírgula”;

▪ Um identificador não pode aparecer duas vezes na mesma planilha.

Exemplos:
TrocaIdentTelas <planilha_pas.csv> <planilha_pds.csv> <tela1> <tela2>
→ Troca nas telas 1 e 2 os identificadores dos pontos analógicos contidos na primeira planilha
pelos identificadores dos pontos digitais contidos na segunda planilha. Como resultado no diretório
corrente, temos:
<tela1>_ID <tela2>_ID

74
Capítulo

8
8 Planilha de Leituras Periódicas

O SAGE oferece uma funcionalidade provida pelo processo hist, através da qual são gerados
arquivos em formato CSV do MicroSoft-EXCEL, contendo um histórico de valores de pontos
analógicos pertencentes à entidade PAS do SAGE.
Esses pontos analógicos podem ser selecionados estaticamente na entidade PAS da Base Fonte
atribuindo o valor SIM ao atributo UAPL, ou dinamicamente através do diálogo desse tipo de ponto no
VisorTelas com o botão ‘seleção para exportação’. O número máximo de pontos que podem ser
selecionados é de 256.
A periodicidade de gravação de XX segundos é determinada com:

“setenv TMP_PLAN XX”

no SSC_Amb, onde o valor mínimo de XX é 2 segundos.


No SAGE, a periodicidade de aquisição analógica pode variar segundo os protocolos utilizados
(IEC/60870-5-104, DNP V3.0, IEC/61850, TASE.2 etc.), os parâmetros utilizados na base de dados
para ajuste desses protocolos, e a própria velocidade das linhas de comunicação. Sendo assim, a
periodicidade de gravação escolhida em TMP_PLAN deverá estar compatível com a taxa de
aquisição analógica possível de se obter no 0sistema configurado.
São gerados quatro arquivos diários "mmmddaa-p.csv" onde:
"mmm” é o mês
"dd" é o dia
"aa" é o ano
"p" é o período
para 00:00/06:00 p=1
06:00/12:00 p=2
12:00/18:00 p=3
18:00/24:00 p=4

Os arquivos "csv" são lidos diretamente no EXCEL, e ficam em $ARQS pelo período definido na
variável de ambiente $NDIAS, assim como todos os outros desse diretório.
Ao lado de cada valor de medida registrado, pode existir um caracter de atributo de qualidade,
indicando medição inválida ("@") ou medição manual ("%").
No Windows deve ser configurado:
- o separador ";" em ControlPanel-RegionalSetings-Number-ListSeparator

75
8 PLANILHA DE LEITURAS PERIÓDICAS

- símbolo "." em ControlPanel-RegionalSetings-Number-DecimalSimbol

Na Figura 8- 1 pode ser visto um exemplo da planilha gerada:

Figura 8- 1 - Arquivo out2606-3.csv.

Observações:
1. Quando um ponto é selecionado ou tem sua seleção cancelada dinamicamente, ou seja,
através do VisorTelas, suas medidas só são incluídas ou excluídas no arquivo csv do próximo
período a ser gerado.

2. A aquisição dos valores é feita de acordo com a periodicidade de gravação estipulada, porém,
os registros só aparecerão na tabela caso ocorra variação no valor de pelo menos uma
medida.

3. No caso de queda do sistema, este evento ficará registrado na tabela apresentando os valores
da suas medidas zerados e acompanhados do caracter “ #”, como pode ser visto na linha 19
na planilha do exemplo acima.

76
Capítulo

9
9 Controle de Processo via linha de
comando (gcd_shell)

O GCD_SHELL é um utilitário que permite a interação com o módulo do GCD (gerente de controle
distribuído) para habilitar/desabilitar processos em um nó da rede para fins de manutenção. Esta
funcionalidade também está presente no Visor de Processos.

9.1 Sintaxe de Ativação


O utilitário é ativado pela seguinte sintaxe: gcd_shell [ação] [processo] [noh]
Onde:
ação é um número ou mnemônico que indica qual ação será realizada sobre o
processo;
processo é o nome do processo (castrado na base de dados) sobre o qual será realizada
a “ação”;
noh é o nome do nó (cadastrado na base de dados) onde será realizada a “ação”.
comando Le possibilita a leitura do valor ou estado corrente e atributos diversos
de qualquer ponto de tempo real dos tipos digital, analógico, totalizado ou ponto
de controle supervisório.
Caso não seja especificado, nenhum parâmetro, será exibida a janela abaixo, para a seleção dos
comandos:

Figura 9- 1 –

77
9 CONTROLE DE PROCESSO VIA LINHA DE COMANDO (GCD_SHELL)

Após a exibição desta tela, o usuário deverá informar a função desejada digitando um dos
comandos acima listados.

9.1.1 Comandos

O GCD-Shell possui os seguintes comandos:

INPR_NO Inibição de um processo em um nó. Após esta chamada o processo será


desativado neste nó.
Exemplo:
gcd_shell INPR_NO calc srv1
INPR_GLO Inibição de um processo globalmente. Após esta chamada o processo
será desativado em toda a rede de tempo real. Este procedimento é
equivalente a usar a funcionalidade INPR_NO para todos os nós em que
o processo está cadastrado para rodar.
Exemplo:
gcd_shell INPR_GLO calc
INIB_NO Inibição de um nó. Após esta chamada o nó será desativado (apenas o
SAGE, não inclui o sistema operacional).
Exemplo:
gcd_shell INIB_NO srv2
DEPR_NO Habilitação de um processo em um nó. Após esta chamada o processo
será ativado neste nó. É o procedimento contrário ao item INPR_NO.
Exemplo:
gcd_shell DEPR_NO alr ihm3
DEPR_GLO Habilitação de um processo globalmente. Após esta chamada o processo
será ativado em toda a rede de tempo real. É o procedimento contrário ao
INPR_GLO.
Exemplo:
gcd_shell DEPR_GLO hist
DESI_NO Habilitação um nó. Após esta chamada o nó será ativado (apenas o
SAGE, não inclui o sistema operacional). É o procedimento contrário ao
INIB_NO.
Exemplo:
gcd_shell DESI_NO srv1
MOSTRA_NO Mostra ordem do processo nos nós. Após esta chamada é exibida uma
linha com a ordem dos processos nos nós em que o mesmo está
cadastrado para rodar.
Exemplo:
gcd_shell MOSTRA_NO sac
MOSTRA_PRO Mostra processos no nó. Após esta chamada é exibida uma linha com a
lista dos processos cadastrados para rodar no nó.
Exemplo:
gcd_shell MOSTRA_PRO ihm2
ALTERA Altera ordem do processo nos nós. Após esta chamada o processo passa
a obedecer à ordem definida no comando.
Exemplo:
gcd_shell ALTERA alr ihm1 ihm2
FIM Sai do utilitário. Após esta chamada o gcd_shell é encerrado.

Para executar as ações acima, o usuário pode utilizar o nome da ação ou seu número,
respeitando a sintaxe de cada uma destas.
Obs.: O gcd_shell funciona somente quando a ativação do SAGE é automática, visto que na
ativação manual o GCD não é lançado e os processos são ativados um a um pelo usuário.

78
Capítulo

10
10 Aquisição de Dados de Sistemas
externos (ADS)

O módulo ADS (Aquisição de Dados de Sistemas Externos) foi desenvolvido originalmente para
que o SAGE recebesse dados do primeiro sistema EMS instalado no CNOS (fornecido pela empresa
francesa SODETEG TAI.) criando dessa forma um ambiente de supervisão paralela com esse
sistema. Posteriormente foram acrescentadas funcionalidades que permitiram colocar dois SAGEs
em paralelo.
O ADS funciona no SAGE como um conversor de protocolo para comunicação com outros
sistemas ou com um outro SAGE, aquisitando os dados analógicos e digitais e executando controles
supervisórios.
O ADS tem sido amplamente utilizado na migração de sistemas antigos para o SAGE, também
para a disponibilização de plataformas de Tempo Real para fins corporativos e para disponibilização
de dados reais para ambientes de simulação e testes de bases de dados e aplicativos, sem
interferência no sistema e riscos operacionais.

Figura 10- 1 - Aplicação do ADS.

10.1 Funcionamento
O módulo ADS é constituído de 2 processos, cliente e servidor.

79
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

O processo cliente é o ads e o processo servidor, quando os sistemas paralelos são dois SAGEs,
é o ads_loc, o primeiro disponível na distribuição do SAGE em $SAGE/bin/$SAGE_SO/$MODELO, e
o segundo em $SAGE/bin/$SAGE_SO.
Quando o ADS é utilizado para colocar o SAGE em paralelo com outros sistemas, o processo
servidor é específico, modificado e alterado de acordo com a plataforma local, não disponibilizado na
distribuição do SAGE.
Os dados do SAGE de Tempo-Real são disponibilizados para o Servidor ADS (asd_loc) pelo
processo hist que roda nos servidores de tempo-real. Estes arquivos são lidos pelo asd_loc (servidor)
e transferidos para o ads (cliente) no SAGE paralelo via TCP/IP. São eles:cl.ref e cl.dat, para pontos
digitais e pa.ref e pa.dat para pontos 0analógicos.
Os arquivos com extensão .ref são arquivos contendo a lista de pontos da base de dados do
SAGE de Tempo-Real e são enviados para o SAGE paralelo sempre que ele entra no ar com uma
nova base de dados. Esta lista é utilizada pelo SAGE paralelo para verificar quais pontos serão
disponibilizados pelo servidor e em que referência de ordem os valores dos mesmos serão listados
nos arquivos .dat. Isso permite que o ADS funcione mesmo quando há inconsistência de bases entre
os SAGEs.
Os arquivos com extensão .dat contém os valores de Tempo-Real dos pontos listados nos
arquivos de referência (.ref) e são enviados periodicamente para o SAGE paralelo.
Como são produzidos pelo módulo ‘hist’ esses arquivos residem no diretório $ARQS do SAGE de
Tempo-Real e o comando de lançamento do servidor (ads_loc) deve apontar para este diretório.
O ADS espera que os arquivos .dat sejam constantemente atualizados. O cliente ADS detecta a
perda de comunicação com o SAGE paralelo através do envelhecimento dos arquivos .dat.
A melhor forma de produzir arquivos .dat é a que usa este arquivo como um link, e a cada ciclo
grava uma cópia (operação não atômica), "alterando o link" da cópia anterior em outro arquivo para a
cópia recém gravada no novo arquivo, já que a operação de recriação do link é atômica.
Os controles supervisórios executados no sistema remoto são repassados pelos ads cliente para o
ads_loc, que tenta a execução do mesmo caso esta função esteja habilitada no script de lançamento
do servidor. O servidor ads_loc repassará ao ads cliente a informação de sucesso ou fracasso do
controle e estas serão repassadas ao operador normalmente como com qualquer outro conversor.
O log do processo cliente fica em $LOG junto com os logs de outros processos do SAGE. Já o log
do processo servidor fica em /tmp, visto que este não necessariamente vai estar rodando em uma
plataforma SAGE.
Para que o cliente ADS funcione, é necessário que o SAC esteja no ar e não pode haver nenhum
protocolo concorrendo com ele, ou seja, o SAGE paralelo pode ter outros protocolos rodando
simultaneamente ao ADS desde que não estejam aquisitando um mesmo ponto da base de dados.

10.2 Configuração para utilização ADS

10.2.1 SSC_AMB – Variáveis de Ambiente

TMP_INTGR - Utilizada pelo cliente ADS no SAGE paralelo, define de quanto em quanto

80
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

tempo deverá ser feita a integridade dos dados.


Os arquivos .dat são lidos do servidor com a periodicidade definida no
script de ativação (ads_on.rc) e são repassadas para o SAC apenas as
variações, mas, de tempos em tempos o ADS repassa os valores de
todos os pontos. Este tempo é definido em TMP_INTGR.
ATLZINV - Utilizada pelo SAC no SAGE paralelo, define se os valores de pontos
analógicos e digitais na base de dados do SAGE local devem ser
atualizados mesmo que estes estejam inválidos no SAGE remoto,
garantindo assim coerência de valor de dados inválidos entre eles. Os
valores possíveis são sim e nao, sendo o default nao.
Nas contas em que o SAGE é alimentado com dados via ADS essa
variável deve ser criada com o valor sim. Para as contas de tempo-real
essa variável de ambiente não deve existir ou deve estar com o valor
default (nao).
TMP_ADAT – Utilizada pelo hist no SAGE de Tempo-Real, define a periodicidade de
gravação dos arquivos .dat, em segundos. Esse valor deve ser menor ou
igual ao tempo de varredura configurado no Cliente ADS.
Estas variáveis devem ser definidas no arquivo $BASE/sys/SSC_Amb.

Figura 10- 2 - Funcionamento do ADS.

81
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

10.2.2 Base de Dados

Para utilizar o processo ADS cliente, é necessária sua configuração na base de dados fonte do
SAGE, mediante o preenchimento das tabelas PRO, SXP e INP. A seguir veremos um exemplo de
configuração do ADS em dois servidores da rede SAGE (sage1 e sage2).

10.2.2.1 Tabela PRO - Classe de Processos

Esta tabela configura os processos do SAGE. Deve ser adicionado o seguinte registro:

PRO
ATIVA = PRS
ATVAT = AUT
ESSEN = NES
ID = ads
NOME = Aquisição de Dados de Sistemas Externos
SCRAT = ads_on.rc
SCRDE = ads_off.rc
TIPPR = INSP

10.2.2.2 Tabela SXP - Relacionamento Severidade x Classe de Processos

Esta tabela define para cada processo um limite tolerado de erros e eventos que ele pode gerar,
classificados por severidade. Devem ser adicionados os seguintes registros:

SXP
PRO = ads
SEV = ADVER
SPX
PRO = ads
SEV = FATAL
SPX
PRO = ads
SEV = NORML
SPX
PRO = ads
SEV = PANIC
SPX
PRO = ads
SEV = SNULA
SPX
PRO = ads
SEV = URGEN

10.2.2.3 Entidade Instância de Processo

Um processo pode ser ativado em vários nós e cada uma dessas ativações define uma instância
do processo. Esta entidade configura as instâncias de todos os processos do SAGE.
Devem ser adicionados os seguintes registros:

INP

82
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

NOH = sage1
ORDEM = 1
PRO = ads
INP
NOH = sage2
ORDEM = 2
PRO = ads

10.2.3 Script de Ativação:

O script de ativação do cliente ADS (ads_on.rc) contém o comando de lançamento do processo.


Este script faz parte da distribuição do SAGE e pode ser customizado. A seguir são descritos dois
exemplos de comando de ativação do cliente ADS:
nohup $SAGE/bin/$SAGE_SO/$MODELO/ads $CONTEXTO srv_remoto_1 srv_remoto_2 ref 2 di
> $LOG/ads.log &

Onde:
▪ nohup é o comando de lançamento

▪ $SAGE/bin/$SAGE_SO/$MODELO/ads é o caminho onde se encontra o executável do


processo

▪ $CONTEXTO é a variável de ambiente que define o contexto em que o ADS vai rodar

▪ srv_remoto_1 e srv_remoto_2 é a declaração das máquinas onde roda o servidor ADS

▪ ref é a string que habilita o pedido dos arquivos .ref na inicialização

▪ 2 é o tempo de varredura dos dats em segundos

▪ di é a string que define que a varredura será integral (todas as TACs atualizadas de uma só
vez)

▪ > $LOG/ads.log é o comando de escrita do log de ativação

nohup $SAGE/bin/$SAGE_SO/$MODELO/ads $CONTEXTO 161.79.56.14 161.79.56.14


nref 600 dp CS > $LOG/ads.log &

Onde
▪ nohup é o comando de lançamento

▪ $SAGE/bin/$SAGE_SO/$MODELO/ads é o caminho onde se encontra o executável do


processo

▪ $CONTEXTO é a variável de ambiente que define o contexto em que o ADS vai rodar

▪ 161.79.56.14 e 161.79.56.14 é a declaração das máquinas onde roda o servidor ADS

83
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

▪ nref é a string que desabilita o pedido dos arquivos .ref na inicialização

▪ 600 é o tempo de varredura em segundos

▪ dp é a string que define que a varredura será parcial (o ADS dividirá o tempo de varredura
entre as TACs e fará a atualização das mesmas gradativamente)

▪ CS string de filtro (o ADS fará leitura somente dos pontos cujo ID comece com CS)

▪ > $LOG/ads.log é o comando de escrita do log de ativação

Obs.: Configurar o script de ativação do ADS cliente de forma que os dois IPs especificados
apontem para as duas máquinas (principal e backup) do SAGE de tempo-real, onde será feita a
instalação do Servidor ADSL.

10.2.4 Configuração de Ativação do Servidor ADSL no Boot

Como o servidor ADS (ads_loc) não é controlado pelo SAGE, o ideal é que este seja ativado
durante o boot das máquinas de tempo-real. O procedimento para automatizar a ativação do servidor
ADSL no boot é descrito abaixo:
1. No $HOME da conta SAGE das máquinas onde vai ser instalado o ADSL, criar um sub-
diretório de nome 'adsl'. Por exemplo, se $SAGE for '/export/home/sage/sage' esse diretório
será '/export/home/sage/adsl'

> cd $HOME
> mkdir adsl

2. Copiar o arquivo executável ads_loc para o diretório recém criado adsl:

> cp $BIN/../ads_loc $HOME/adsl

3. Criar, dentro do diretório $HOME/adsl, o script executável S99adsl, com o seguinte conteúdo:

#ident "@(#)/etc/rc3.d/S99adsl 14/05/97 CEPEL"


case "$1" in
'start')
if [ -x /export/home/sage/adsl/ads_loc ]
then
/export/home/sage/adsl/ads_loc /tmp/sage/arqs &
fi
;;
'stop')
exit
;;
esac

84
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

Obs1.: Através do comando ls –l, verificar se o script tem permissões de execução. Caso não
tenha, executar o comando:
> chmod a+x S99adsl

Obs2.: É importante que os caminhos absolutos dos diretórios adsl e $ARQS definidos no script
estejam corretos.
Obs.3: Para habilitar a execução de controles supervisórios no servidor ads_loc a linha:
/export/home/sage/adsl/ads_loc /tmp/sage/arqs &

Deve ser alterada para:


/export/home/sage/adsl/ads_loc /tmp/sage/arqs xx CRTL_HAB &

Onde:
▪ CTRL_HAB é o parâmetro opcional de habilitação de execução de controles;

▪ xx é o tempo de time-out de controle em segundos.

4. Como super-usuário, copie esse S99adsl editado para o diretório:

/etc/rc3.d, se a plataforma for SUN;


/etc/rc5.d, se a plataforma for Linux;
/sbin/rc3.d se a plataforma for Alpha;
/etc/rc5.d. se a plataforma for Itanium, mesmo do Linux.

5. Reiniciar a máquina.

Para verificar se o servidor ADSL está funcionando corretamente utilizar o seguinte comando:
>tail -f /tmp/adsl.log

10.3 Arquivos CL.REF , PA.REF, PA.DAT e CL.DAT


Os arquivos planos descritos abaixo, encontram-se em $ARQS e são usados pelo módulo ADS do
SAGE para a interface de Dados entre Sistemas.

10.3.1 CL.REF e PA.REF (codificação ASCII)

dd-mmm-aaaa hh:mm:ss.ms
<id-ponto-1>
.
.
.
<id-ponto-n>

Onde ’dd-mmm-aaaa hh:mm:ss.ms’ é a data-hora da criação do arquivo REF que será


referenciada nos arquivos DAT. O arquivo ‘cl.ref’ possui os identificadores dos pontos digitais de PDS
e o arquivo ‘pa.ref’ os identificadores dos pontos analógicos de PAS.

85
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

10.3.2 PA.DAT (codificação binária)

Figura 10- 3 -

onde os valores das medidas e as datas-hora do cabeçalho são gravados em formato VAX. O
tamanho total do arquivo é de [18 + (n*6)] bytes.

10.3.3 CL.DAT (codificação binária)

Figura 10- 4 -

86
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

10.3.4 Codificação do Estado e dos Flags

87
10 AQUISIÇÃO DE DADOS DE SISTEMAS EXTERNOS (ADS)

88
Capítulo

11
11 Supervisão via linha de comando (
info-tr)

O utilitário INFO_TR é um programa de consulta interativa de dados de tempo real. Ele permite a
leitura de estados e valores da base de dados e a atuação sobre pontos do sistema elétrico.
O utilitário é ativado pela seguinte sintaxe: info-tr
Ao ser ativado o utilitário exibe a tela mostrada abaixo.

Figura 11- 1 - Tela de Apresentação do Utilitário INFO-TR.

Após a exibição desta tela, o usuário digita um dos comandos acima listados, seguido de
<ENTER>.
O comando Le possibilita a leitura do valor ou estado corrente e atributos diversos de qualquer
ponto de tempo real dos tipos digital, analógico, totalizado ou ponto de controle supervisório.
No exemplo abaixo o usuário solicita as informações sobre o ponto PA_FPOT_DJ2054_AZ, e
recebe o seguinte reporte:

89
11 SUPERVISÃO VIA LINHA DE COMANDO ( INFO-TR)

Comando (L,C,A,U,E,H,R,T,I,N,F) → le PA_FPOT_DJ2054_AZ


Informacoes da medida analogica PA_FPOT_DJ2054_AZ (indice 33):
[ Fator de Potencia Fase AZ do DJ2054 de PA ]
Considerado → 700.50
Aquisitado → 700.50
Limites Inf. → 0.00 0.00 0.00
Limites Sup. → 689.00 750.00 760.00
Regiao → normal
Flags → -FOVAR -FALHA -IVORG -MAORG +SACOK
-MANUA -NINCI +ANREC -AINIB -NOSUP

Através do qual são obtidas as seguintes informações:


▪ Índice - Índice absoluto no banco de dados (1-n) para o tipo de ponto escolhido, no caso
uma medida analógica, igual a 33.

▪ Descrição - Descrição do ponto obtida da base de dados, no caso [Fator .de Potência …].

▪ Considerado - Valor considerado do ponto, ou seja aquele que é reportado para os


sistemas externos (centros de controle que recebem esse dado). O valor considerado pode
ser inserido manualmente pelo Subsistema de Interface Gráfica (SIG) ou substituído
automaticamente pela estimação de estado do Subsistema de Análise de Redes (SAR).

▪ Aquisitado - O valor efetivamente aquisitado do sistema ou equipamento que o enviou.


Será diferente do valor considerado se o atributo de inserção manual feita pelo SIG estiver
assinalado.

▪ Limites Inferiores - Informa os valores do limites inferiores que determinam as regiões


inferiores de advertência, urgência e escala, nessa ordem.

▪ Limites Superiores - Informa os valores do limites superiores que determinam as regiões


superiores de advertência, urgência e escala, nessa ordem.

▪ Região - Informa a região de operação corrente de uma medição analógica ou de um


totalizador, dentre as regiões: normal, inferior de advertência inferior de urgência, superior
de advertência, superior de urgência, inferior de escala ou superior de escala. Para os
totalizadores somente a região normal e as regiões superiores são possíveis de serem
atingidas.

▪ Flags - Informa os estados dos atributos: "fora de varredura" (FOVAR), "em falha de
aquisição" (FALHA), "inválido na origem" (IVORG), "manual na origem" (MAORG),
"manualmente inserido pelo operador local" (MANUA), "serviço de aquisição e controle ok"
(SACOK), "não inicializado após o estabelecimento da comunicação de dados" (NINCI),
"presença de evento de alarme não reconhecido para o ponto nas listas de alarme"

90
11 SUPERVISÃO VIA LINHA DE COMANDO ( INFO-TR)

(ANREC), "geração de alarmes inibida para o ponto" (AINIB) e "ponto não supervisionado
pelo SAC" (NOSUP). Cada keyword acima listada é acompanhada de um sinal (+),
indicando que o atributo está assinalado ou (-) para indicar que ele está desassinalado.

O comando Controla permite enviar ao SAC um pedido de controle supervisório para close
(valor=1) ou trip (valor=0), um set-point ou um conjunto de pulsos de raise (valor=+n) ou lower
(valor=-n).
O comando Adv permite enviar ao SAC um pedido para alteração dos limites inferior e superior de
advertência.
O comando Urg permite enviar ao SAC um pedido para alteração dos limites inferior e superior de
urgência.
O comando Entra permite fazer uma inserção manual sobre o ponto escolhido da mesma forma
que é feita pelo SIG. Após a execução desse comando o ponto ficará "fora de varredura" e "inserido
manualmente", ou seja, o valor aquisitado não será transferido para o campo de valor considerado.
O comando Habilita permite a restauração do ponto a condição normal de aquisição após uma
inserção manual ou retirada de varredura ou inibição de alarme.
O comando Reconhece possibilita reconhecer um alarme inserido nas listas de alarmes sem ser
necessário o acesso a essas listas, mas apenas referenciando o nome do ponto.
O comando Tipo permite que seja indicado sobre que tipo de dado se pretende atuar. Os tipos
válidos e keywords equivalentes são:
▪ dig - para pontos de aquisição de estados digitais (chaves, disjuntores, etc.. );

▪ med - para pontos de aquisição de medidas analógicas (MW, MVAR, KV, etc..);

▪ tot - para pontos de aquisição de totalizadores (dados hidro-meteorológicos, dados de


MWh, etc.. );

▪ ctl - para pontos de controle supervisório.

O comando Inibe permite a inibição de alarme de um ponto.


O comando Índice permite obter o endereço da TAC a qual pertence o ponto e o seu índice
relativo dentro dela. Essa informação pode ser usada no arquivo de programa de simulação que o
simulador sim-tr processa para simular um cenário dinâmico de tráfego de mensagens para o sac.
O comando Fim termina o programa.

91
11 SUPERVISÃO VIA LINHA DE COMANDO ( INFO-TR)

92
Capítulo

12
12 Failover de Gateways

O SAGE implementa a filosofia de pares de máquinas (gateways) redundantes entre si em hot


standby, ou seja, uma das máquinas assume a posição de nó primário e gerencia as comunicações
com UTRs, IEDs, CLPs etc, e o nó chamado secundário fica online, pronto para tornar-se primário em
casa de falha do nó que desempenha este papel. Esta migração da gerência das comunicações é
chamada failover de gateways.
Visto que o failover de gateways só acontece caso haja uma queda no nó primário, foi
implementado um esquema de failover automático, executado pelo SAC, para as situações em que o
sistema no nó primário permanece no ar mas com todas as ligações inoperantes.
A habilitação deste esquema é feita através da definição da variável de ambiente TMP_FAIL_GSD
no arquivo $BASE/sys/SSC_Amb conforme segue:
setenv TMP_FAIL_GSD xxx

onde xxx é o tempo em segundos para a ativação do failover.

O failover somente ocorrerá se:


1. o nó é primário no gateway e existe um nó secundário ativo;

2. estão inoperantes todas as ligações vinculadas a protocolos (exceto CNVD e NLCN), cujo
atributo "verbd" da entidade LSC não seja igual a "LOCAL", e que já tenham passado pelo
estado operacional nesse nó pelo menos uma vez desde que o estado primário foi assumido.

Existe ainda a possibilidade de se provocar o failover de gateways a partir de um controle


supervisório. Para tanto é preciso implementar no código da aplicação do usuário uma rotina que
execute o script de restart do gateway primário ($SAGE/bin/scripts/gcd_off_cgs.rc) a partir da
ativação de um controle lógico (CGS). Neste caso o failover será ativado pelo processador de
cálculos (CALC).
Uma terceira maneira de se provocar um failover de gateways é através do protocolo SNMP. O
script de restart do gateway primário poderá ser executado pelo agente SAGE SNMP quando
solicitado por um gerente SAGE SNMP ou por um outro software de gerenciamento SNMP.
Obs.: Para mais informações consultar a documentação do SNMP.

93

Você também pode gostar