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.
Script para dar play no Driver
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…
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.
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.