Script para dar play no Driver

Alguém conhece um script que der play/pause na leitura de um driver DNP3 Master quando solicitado? Usei o metódo Activate porém não funcionou.

@Isabela, boa tarde.

Pode-se utilizar o IO.WorkOnline.

Dá uma olhada neste tópico.

Boa tarde @Fernando , minha intenção é exatamente esse “Ligar/Desligar” o driver DNP em Runtime, não entendi como poderia usar o tag IO.WorkOnline…

@Isabela,

No tópico indicado anteriormente tem um exemplo. Você pode criar um ToggleButton na tela e inserir o seguinte script nele, por exemplo:

Sub ToggleButton1_Change()
' Cria o tag IO.WorkOnline
Application.GetObject("Driver1").Write -1, 0, 0, 4, Value
End Sub

Certo, eu vi esse script mas não entendi como ele pode estar ativando o driver.

@Isabela,

Entendi. Irei explicar:

  • A Tag IO.WorkOnline:

Segundo o manual do IOKIT, a tag "Work Online (-1, 0, 0, 4) informa o estado atual do driver, e permite iniciar ou parar a camada física.

0 - Driver OFFLINE: A camada física está fechada (parada). Este modo permite uma configuração dinâmica dos parâmetros o driver através do tag Set Configuration Parameters.

1 - Driver ONLINE: A camada física está aberta (sendo executada). Enquanto estiver ONLINE, a camada física pode ser conectada ou desconectada (seu estado atual pode ser conferido com o tag Physical Layer Status)."

  • O método Write:

Segundo o manual de Referência e Scripts, o método "Write(N1, N2, N3, N4, Value[, WriteSyncMode]), executa a escrita de um dado no equipamento. Este método retorna um Booleano que indica o sucesso ou não da operação.

Os parâmetros N1 a N4 correspondem aos parâmetros N do Driver. O parâmetro Value define o valor a ser escrito no Driver. O parâmetro WriteSyncMode permite utilizar um modo de escrita diferente do utilizado pelo Driver."

  • Ao utilizar os valores do IO.WorkOnline com o método Write do Driver, estou criando esta função de “Ligar/Desligar” a camada física:

’ Write(N1, N2, N3, N4, Value[,WriteSyncMode])
Application.GetObject(“Driver1”).Write -1, 0, 0, 4, Value

Qualquer dúvida, só avisar.

@Fernando

Está explicado, agora entendi. Muito obrigada.