Comandos

<< Clique para Mostrar o Sumário >>

 

Comandos

Ao utilizar um objeto Control Relay Output Block (Objeto 12, Variação 1), uma série de dados é enviada por este Driver, como descrito a seguir.

 

Byte 0: Control Code

O valor do Tag atribuído na aplicação é copiado para este byte, que especifica detalhes sobre a operação do comando. Este campo é subdividido da maneira indicada a seguir.

 

Bit

7

6

5

4

3

2

1

0

Significado

Trip ou Close

Clear

Queue

Code

 

Trip ou Close: Este campo determina qual relé de controle é ativado em um sistema onde um par de relés Trip e Close é usado para energizar e desenergizar os pontos no campo. Os valor possíveis são, em formato binário, 00: NUL, 01: Close e 10: Trip. O valor NUL pode ser usado para ativar o relé de seleção sem ativar os relés de Trip ou Close. Em um sistema sem relés de seleção, o valor NUL não realiza nenhuma operação. Já em um sistema sem relés Trip ou Close, este campo deve ser sempre NUL para indicar uma operação normal de controle digital, onde o ponto exato de controle é implícito ou totalmente conhecido. Este campo não suporta os comandos de Trip e Close simultaneamente, operação esta considerada ilegal

Clear: Se o comando possui este campo em 1 (um, ligado), todas as operações de controle são removidas da fila, incluindo o comando que estiver sendo executado, e esta operação de controle é realizada

Queue: Indica a colocação do comando em uma fila de comandos no equipamento. Se este campo é 0 (zero, NUL) então nenhuma operação é colocada na fila e a fila é limpa de todos os controles, incluindo o comando que estiver sendo executado se o campo Clear estiver ligado. Quando a função de controle é executada e completada, esta é removida da fila. Se o comando em questão tem o atributo Queue ligado, então a operação é colocada na fila novamente (posicionada no fim da fila) para aquele ponto

Code: Este campo especifica o tipo de operação propriamente dito. Este comando pode ser usado com equipamentos que suportam enfileiramento de comandos (queuing), ponto a ponto ou outros mecanismos de controle. No primeiro tipo, qualquer comando de controle deve ser enfileirado para o ponto em questão. No segundo tipo, cada controle é realizado até ser completado antes do próximo comando ser aceito para aquele ponto

 

Valores possíveis para Code (em formato binário)

Valor

Operação

Descrição

0000

NUL

Nenhuma operação é realizada

0001

PULSE ON

Os pontos são ligados pelo tempo especificado em On-Time, desligados pelo tempo especificado em Off-Time e deixados no estado OFF

0010

PULSE OFF

Os pontos são desligados pelo tempo especificado em Off-Time, ligados pelo tempo especificado em On-Time e deixados no estado ON

0011

LATCH ON

Mantém os pontos no estado ON

0100

LATCH OFF

Mantém os pontos no estado OFF

 

Outros valores fora desta tabela não são definidos.

 

Byte 1: Count

Este byte indica quantas vezes a operação é executada. Este valor é mantido fixo em 1 (um) por este Driver.

 

Bytes 2 a 5: On-Time

Tempo On-time, em milissegundos, definido na janela de configurações extras deste Driver e fixo para todos os comandos.

 

Bytes 6 a 9: Off-Time

Tempo Off-time, em milissegundos, definido na janela de configurações extras deste Driver e fixo para todos os comandos.

 

Byte 10: Status

Status da operação retornado por este Driver se a operação foi concluída com sucesso. O status só é interpretado na resposta, e pode ser usado por uma aplicação para verificar se o comando foi executado com sucesso. Os códigos disponíveis são os seguintes:

0: Comando executado corretamente, incluindo as operações Select e Operate

1: Comando Operate enviado após o tempo máximo de Select definido no Escravo

2: O comando Operate foi enviado sem um comando Select prévio

3: Erros de formatação na mensagem

4: Operação não suportada para o ponto em questão

5: Fila cheia ou ponto já está ativo

6: Problemas de hardware

Outros: Códigos de erro não padronizados

 

O valor do campo Status pode ser obtido em uma aplicação E3 ou Elipse Power através do parâmetro WStatus do método WriteEx dos Tags ou Blocos, conforme o exemplo a seguir.

Para envio dos comandos, pode ser utilizado tanto um Tag PLC (IOTag) quanto um Tag Bloco. Ao usar um Tag PLC, deve ser atribuído ao Tag um número entre 0 (zero) e 255, que corresponde ao Control Code (byte zero da mensagem). Os bytes restantes são obtidos das configurações padrão deste Driver, definidas na janela de configurações extras.

Para um Tag Bloco deve ser usado um script que execute o método Write deste Tag Bloco. Para isto, o Tag Bloco deve possuir apenas quatro Elementos, que devem possuir a propriedade de escrita individual desabilitada:

Elemento 0: Control Code

Elemento 1: Count

Elemento 2: Relay On-Time

Elemento 3: Relay Off-Time

 

Este recurso pode ser utilizado caso sejam necessárias programações individuais de comandos para cada ponto, desprezando as configurações padrão de temporização On-time e Off-time.

 

Exemplo de script no Elipse SCADA usando um Bloco com quatro Elementos

//Configurações: B2=5 (DIRECT OPERATE), B3 = 1201
Block1.Element0 = 65  // Operation Code
Block1.Element1 = 1   // Count
Block1.Element2 = 500 // On-Time
Block1.Element3 = 500 // Off-Time
Block1.Write()

 

Exemplo de script no E3 ou Elipse Power usando um Tag de comando simples

Valor = 65 // Código da Operação
msg = MsgBox("Deseja enviar um comando?", 292, "Comando")
If msg = 7 Then
  MsgBox "Comando abortado", 48, "Desistência"
ElseIf msg = 6 Then
  If MsgBox("Confirma o envio do comando?", 292, "Atenção") = 6 Then
    Set Tag = Application.GetObject("DriverDNP.NomedoTag")
    If Tag.WriteEx(Valor, , , WStatus) = False Then
      MsgBox "Erro no envio do comando", 48, "Erro"
    Else
      If WStatus <> 0 Then
        MsgTrack = "Comando não executado,"
        EndText = ""
        Select Case WStatus
          Case 1
            EndText = " Operate recebido depois do time-out de Seleção"
          Case 2
            EndText = " Sem mensagem de Seleção anterior"
          Case 3
            EndText = " Erro de formatação no Comando"
          Case 4
            EndText = " Operação não suportada para este ponto"
          Case 5
            EndText = " Fila está cheia ou ponto já está ativo"
          Case 6
            EndText = " Problemas de hardware"
          Case Else
            EndText = " Problema não definido"
        End Select
        MsgBox MsgTrack & EndText, 48, "Erro"
    End If
  End If
End If

Esta página foi útil?