• Nenhum resultado encontrado

O desenvolvimento de uma aplicação para se comunicar com o RTDS ocorreu a partir de exemplo de conexão deste simulador com o mundo externo. Com o passar dos tempos, usuários do RTDS apresentaram diferentes necessidades por comunicações, normalmente sendo suficiente o envio de pequeno número de comandos assim como capturar resultados

de simulação em tempo real a partir de aplicações externas como o MATLABTM. Tais

capacidades de comunicação são realizadas no RSCAD/Runtime, que oferece uma função “script” para automatizar a operação do RTDS. Alguns dos comandos desenvolvidos visam facilidades de comunicação e uma destas é o comando ‘ListenOnPort()’, que estabelece uma comunicação socket entre o RSCAD/Runtime e uma aplicação externa. O computador que esteja rodando o RSCAD/Runtime se comporta como um servidor TCP, que escuta uma porta específica esperando por requisições externas. O número da porta para o estabelecimento do socket é passado pelo comando ‘ListenOnPort()’ como um parâmetro de função de linguagens de programação. O cliente socket, ou programa externo pode se conectar à porta, quando aberta no servidor e uma vez estabelecida uma conexão um fluxo TCP se inicia.

Uma comunicação socket usual assume que um único servidor pode manipular múltiplas conexões com os clientes, mas somente um cliente por vez é tratado no servidor RSCAD/Runtime. O RSCAD/Runtime recebe os dados, interpreta e executa da mesma forma quando lê um script de comandos de um arquivo. Algumas literaturas consideram e tratam um socket TCP como um objeto de arquivo. Conforme mencionado no início da teses para objetivos para a aplicação CERIn Monit, são coletados valores de tensão eficaz trifásica em três pontos da rede elétrica: VrmsBT, VrmsMT, e VrmsSE. Medidores da aplicação RSCAD/Runtime devem ser criados e seguir os mesmos nomes que a aplicação externa utiliza, ou vice versa para possibilitar coleta de dados sem erros. O script escrito no RTDS é descrito na Figura 19

Figura 19 – Linhas de Código para estabelecimento de conexão TCP com o

RTDS/Runtime.

As primeiras duas linhas do programa declaram as variáveis utilizadas, sendo a linha 1 declarante de um valor “float” “temp float” utilizada como um container para o medidor de valores "VALOUT ” no Runtime, variável esta composta por 32 bits. A segunda variável declarada na linha 2 do programa é uma “temp string”, que suporta um

token gerado pelo RSCAD/Runtime, é transmitido para a aplicação externa utilizando o

comando "ListenOnPortHandshake()’ em que transporta o nome da variável e respectivo valor no instante da simulação que foi solicitado ao Runtime. Ao mesmo tempo que este comando é enviado, os parâmetros deste token são passados para a aplicação externa, que manipula (parse) o token e deriva a informação ou dados de interesse. As linhas 3 e 5 são para apresentar um texto na área de mensagens do RSCAD/Runtime. O comando presente na linha 6 “ListenOnPort()”, com o número da porta como parâmetro é quem determina

para o Runtime iniciar operação de servidor. Muitas aplicações conhecidas empregam números de portas pré-definidas. Este valor da porta a ser utilizado como parâmetro do comando “ListenOnPort()” deve evitar as ditas portas conhecidas e reservadas. O segundo parâmetro determina se a execução da função deve continuar ou não quando acontecer um erro sendo que a configuração “TRUE ” significa que o script continua enquanto uma mensagem de erro é transferida para o cliente. A menos que a porta seja fechada a conexão entre o RSCAD/Runtime e a aplicação externa é mantida indefinidamente. O comando ‘ListenOnPort()” bloqueia qualquer execução do script do arquivo e uma vez fechado o

socket a próxima linha de comando é executado. Para a aplicação desenvolvida que coleta

três valores de tensão eficaz, foi necessário a definição de três variáveis no script RTDS, que após adaptação para a aplicação desenvolvida se apresenta conforme linhas de código seguintes na descrição do programa script do RSCAD/Runtime. Neste primeira variável declarada, "float temp float"serve para receber valores do RSCAD/Runtime da variável VrmsBT. A variável "float temp float2 ", recebe VrmsSE e "float temp float3 ", recebe a variável de medidor VrmsMT. O comando da linha 10 serve para fechar o número da porta caso esteja aberta para evitar problemas na execução do próximo comando que habilita a função de servidor (ListenOnPort(4575,true)) para o número de porta 4595 no RSCAD/Runtime.

3.6.1

Aplicação CERIn Monit

Inicialmente, havia a intenção de se adaptar o programa disponível no MATLAB para a realização dos testes propostos. Dado que o MATLAB é um programa oneroso financeiramente, consome considerável carga de processamento e no exemplo disponível no RTDS simplesmente foi empregada a função jtcp que abre uma conexão socket padrão, se optou por desenvolver uma aplicação externa que segue programação disponível como exemplo em manual específico do RTDS. Como resultado, se obteve uma ferramenta leve e que pode ser executada em qualquer computador em rede e praticamente não interfere na carga de processamento de nenhum computador na atualidade. A Figura 20 apresenta a interface com o usuário da aplicação CERin Monit, que apresenta alguns campos que devem ser configurados. O primeiro destes é o endereço IP de destino ou máquina que estiver executando o RSCAD/Runtime com o script que o torna um servidor verificando uma porta específica. Esta porta também deve ser definida pelo usuário do CERIn Monit. O campo “Interações” define o número de vezes que um teste específico irá requisitar dados do servidor. Tempo de pooling define de quanto em quanto tempo devem ser feitas as requisições ou qual é a frequência entre requisições.

Após configurar o endereço de destino o usuário pode clica em “conectar” e uma vez preparado o RSCAD/Runtime para funcionar como um servidor, este deve estar esperando por conexão da aplicação CERin Monit. Se esquecido este fato, é apresentado na janela

Figura 20 – Interface com usuário da aplicação Cerin monit.

intitulada de “Console”, da Figura 26, uma mensagem de erro informando que a máquina de destino não respondeu à conexão. Em caso de conexão bem sucedida, a mensagem informa que a simulação no equipamento está sendo iniciada e caso nenhum erro aconteça, o console continuamente apresenta o RTT para coleta de valores de tensão. Ao fim de um ciclo definido pelo número de interações, o console apresenta a mensagem “finalizado”, conforme percebível na Figura 26. Os valores para a tensão são apresentados pelos três números em pu (por unidade). Na parte inferior da Figura 26 é apresentado um perfil de tensão eficaz ao longo do tempo dos três pontos de coleta. Do lado direito, é criada uma tabela com os valores de tensão coletados e o RTT de todas as requisições. Um fato relevante é o tempo de conexão calculado segundo modelo de conexão de referência que emprega o MATLAB. Testes realizados em uma mesma máquina apontaram tempo de conexão sempre maiores que 0,5 segundos e a aplicação desenvolvida quando operando em uma mesma máquina que o RSCAD/Runtime apresentou tempo médio de conexão de 0,03 segundos.

4 Testes e Resultados

4.1

Considerações Iniciais

Com objetivo de ilustrar a influência da rede de computadores no tempo de propagação de dados entre duas aplicações, RSCAD/Runtime e CERIn Monit conforme diferentes topologias, alguns testes foram realizados na rede interna da Unifei e também a partir de acesso externo. Os testes foram realizados de forma que o servidor sempre esteve presente em um computador específico, com especial atenção quanto a testes de segurança e definição do endereço IP da maquina, não anunciado neste trabalho. Os testes podem ser agrupados em cenários que são: mesmo computador, rede puramente Ethernet dentro do CERIn, Ethernet/Wifi também dentro do CERIn, Ethernet/Wifi dentro do campus UNIFEI, e a partir de redes de acesso a internet e externas à infraestrutura Ethernet UNIFEI/CERIN que abrigam o servidor de dados, foi empregada a Rede Nacional de Pacotes a partir do campus do Instituto Federal do Sul de Minas Gerais, campus Poços de Caldas, acesso ADSL a partir de santa rita do Sapucaí e rede móvel celular a partir de Itajubá, Santa Rita do Sapucaí e Poços de Caldas, MG. Estes grupos de testes foram agrupados em em redes privadas e redes públicas para comparação.