<< 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.
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.
Este byte indica quantas vezes a operação é executada. Este valor é mantido fixo em 1 (um) por este Driver.
Tempo On-time, em milissegundos, definido na janela de configurações extras deste Driver e fixo para todos os comandos.
Tempo Off-time, em milissegundos, definido na janela de configurações extras deste Driver e fixo para todos os comandos.
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.
//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()
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