1) Introdução
Algumas vezes, é necessário acompanhar os valores de dados de uma aplicação detalhadamente: verificar se um determinado dado está com o valor esperado ou quando um trecho de um script não está a contento, saber até onde o script chegou ou onde está o erro, conferir o valor de retorno de uma determinada função, etc. Gerando nossos próprios logs, podemos facilmente monitorar esses itens. Para a criação desses logs, a melhor ferramenta é a utilização das funções de criação e acesso a arquivos texto, que são suportados pelo VBScript, disponível no E3.Para ilustrar o funcionamento desse item, será gerado um log de uma comunicação OPC, onde o E3 atuará como servidor e como cliente, ao mesmo tempo.
2) Desenvolvimento
Criação do Projeto
Ao iniciar o E3 Studio, escolha a opção Criar um projeto novo, e em seguida Aplicação Padrão. Nomeie este projeto como TreinamentoTXT e escolha uma pasta para salvar o aplicativo. Crie um novo domínio com o mesmo nome do projeto. Responda Não para as perguntas das três próximas telas.
Na pasta Dados, crie um tag interno e um tag demo, que servirão como os dados a serem transferidos via OPC. Aumente o Scan do tag demo para 10000. Inicie o domínio para inicializar o OPC Server.
Para configurar a aplicação como OPC Client, insira no projeto um driver de comunicação OPC. Nas propriedades do driver, acesse a aba OPC Driver e procure, através do botão Selecionar, por E3 OPC Server (Elipse.OPCSvr.1) em Servidores locais. Para que seja possível importar os tags criados no projeto, ative a comunicação.
Figura 1: Selecionar Servidor OPC
Retorne ao Organizer, clique com o botão direito no objeto DriverOPC e escolha a opção Importar Tags. O E3 perguntará se você deseja criar um grupo para continuar a importação, e em seguida se gostaria de detectar os tags OPC disponíveis; escolha Sim para as duas perguntas.
Será aberta a tela de Importação de Tags OPC. Selecione à direita, dentro da pasta Dados, o TagDemo1 e arraste-o ao GrupoOPC1 à esquerda. Faça o mesmo com o TagInterno1.
Figura 2: Importação de tags
Configure a TelaInicial associando os dois displays à esquerda a propriedade Value dos Tags OPC e o setpoint à direita à propriedade Value do TagInterno. Habilite a propriedade MultiLine do TextBox (TRUE).
Figura 3: Tela Inicial
Para verificar o funcionamento do aplicativo, execute o projeto antes de partir para a implementação dos scripts de escrita em arquivo. Na TelaInicial, os valores do tag interno e do tag interno via OPC devem ser iguais. Modifique os valores em um setpoint, e repita estes valores em outro setpoint.
Scripts
Feita a confirmação de que os dados estão sendo corretamente enviados e recebidos através do protocolo OPC, será feita a implementação dos scripts de escrita e leitura em arquivos texto.
O primeiro item a ser logado para arquivos é a identificação do servidor OPC, assim que este for iniciado. Isso acontece após o domínio ter sido executado. As propriedades ID e Name do Servidor, assim como o nome do objeto DriverOPC no E3, aparecerão no início do arquivo.
Para isso, adicione o seguinte script no evento OnStartRunning do DriverOPC:
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\LogOPC.txt", ForWriting, True)
f.WriteLine Name
f.WriteLine CStr( "ServerID: " & ServerId )
f.WriteLine CStr( "ServerName: " & ServerName )
f.WriteLine
f.Close
Para que a cada variação de valor dos tags OPC seja adicionada uma nova linha no arquivo de log, crie um novo evento chamado Change em cada um dos tags OPC e associe-o à propriedade Value.
Figura 4: Criando novos eventos
Depois de criados os novos eventos, insira o código abaixo em cada um deles. Como o script foi desenvolvido, pode-se apenas copiar o código de um evento para outro, sem a necessidade de modificações.
set Valor = Item(1) 'Aponta para a propriedade Value do tag.
DateTime = Valor.TimeStamp
Grupo = Parent.Name
' Adiciona linhas no arquivo de log.
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\LogOPC.txt", ForAppending, False)
' Hora do Evento Grupo Nome da variável Valor
f.WriteLine DateTime & " " & Grupo & " " & Name & " " & Valor
f.Close
Para permitir a visualização do arquivo gerado, será criado um script para sua leitura. Para isso, insira o código abaixo no evento Click do botão da TelaInicial:
Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\LogOPC.txt", ForReading)
Screen.Item("TextBox1").Value = f.ReadAll
f.Close
Execute a aplicação e verifique o resultado dessas implementações.
3) Considerações Finais
Frequentemente, o uso de arquivos de log auxilia na localização de erros em aplicativos desenvolvidos, principalmente no que se refere a objetos que são executados no servidor, como tags, históricos, etc. Para isso, uma interessante ferramenta disponível na linguagem VBScript é o acesso a esses arquivos através de objetos FileSystemObject, que têm um poderoso conjunto de métodos para leitura e escrita em arquivos. A documentação completa desse objeto, assim como outros exemplos de uso, estão no tutorial sobre VBScript que acompanha a instalação do E3.