Variáveis de Escrita

<< Clique para Mostrar o Sumário >>

 

Variáveis de Escrita

Quando comandos precisam ser enviados a um equipamento pelo sistema externo, é preciso criar scripts que interpretem este comando e repassem-no ao Driver Mestre. Este é caso de um sistema externo configurado para enviar o valor 65 em uma determinada variável para indicar que um Disjuntor deve ser fechado, mas o equipamento em campo espera pelo valor 1 (um) para executar o comando de fechamento. Deste modo, o Elipse Power Gateway precisa converter este valor antes que seja enviado ao equipamento de campo.

Este script deve ser criado segundo as informações contidas no manual do Driver Escravo em uso. Isto pode ser realizado de forma centralizada ou distribuída, isto é, o script pode ser criado em um único lugar ou diretamente em cada Driver. Além disto, é preciso desabilitar a propriedade EnableDeadBand nos Tags que recebem os comandos externos, de forma que toda escrita recebida pelo Driver Escravo seja tratada pelo próprio Driver.

 

Script Centralizado

Neste cenário, cria-se apenas um script para atender a todos os envios de comando. O Driver possui um evento OnTagRead que é disparado sempre que qualquer Tag recebe uma nova leitura. Neste caso, a propriedade EnableDriverEvent do Tag deve estar configurada em Verdadeiro. Este evento recebe como parâmetro o Tag que recebeu a leitura, permitindo verificar em qual variável deve-se prosseguir com o envio do comandos. Com isto, é possível definir neste evento o tratamento dos comandos recebidos, todos em um único lugar.

 

DICA

O ideal é que o script seja gerado de forma mais genérica possível, para que não possua muitas condições If ou Select Case. Pode-se definir uma regra para o nome dos Tags de comunicação, e assim criar um script que simplesmente aplique esta regra para chegar ao Tag do Driver Mestre.

 

O exemplo a seguir mostra uma forma simplificada deste script. O exemplo tem a função de repassar ao Driver Mestre, cujos Tags possuem os mesmos nomes dos Tags no Driver Escravo, o mesmo valor recebido pelo Driver Escravo.

Sub DriverEscravo_OnTagRead(Tag)
  TagDriverMestreName = Replace(Tag.PathName, "DriverEscravo", "DriverMestre")
  Set TagDriverMestre = Application.GetObject(TagDriverMestreName)
  TagDriverMestre.WriteEx Tag.Value
End Sub

 

Script Distribuído

Neste cenário, cria-se um script em cada um dos Tags que recebem os comandos externos. No evento OnRead de cada Tag está o script responsável por interpretar a solicitação de comando e enviá-la para o Tag no Driver Mestre. No exemplo a seguir, uma escrita é gerada no Driver Mestre a cada novo comando recebido pelo Driver Escravo, ambos com o mesmo valor.

Sub PosicaoDisjuntor_Abre_Operate_OnRead
  Application.GetObject("DriverMestre.DJ5201.Comandos.PosicaoDisjuntor_Abre_Operate").WriteEx Value
End Sub

Esta página foi útil?