Pesquisei na internet para entender como funciona o JOG e acho que agora compreendi melhor o que você deseja fazer. Você quer “simular” o comportamento do botão JOG no ScadaBR, fazendo que haja um botão na tela gráfica que ative o JOG apenas enquanto o usuário estiver com o botão do mouse apertado sobre o botão. Além disso, você quer que a frequência de rotação seja diferente dependendo do sentido de rotação do motor (horário ou anti-horário).
Então, vamos lá. Não é algo bem documentado, mas na Representação Gráfica do ScadaBR você pode executar qualquer script da página de Scripting através da função Javascript mango.view.executeScript("SC_XXXXXX")
(na qual “SC_XXXXXX” corresponde ao XID do seu script).
Sabendo disso, você pode criar um componente HTML
que invoque dois scripts diferentes: um que ative o JOG (quando o botão for pressionado) e outro que desative o JOG (quando o botão for solto). Primeiramente, crie os scripts para ativar e desativar o JOG:
Ativar JOG
// Substitua "DP_000000" pelo XID do data point que controla a frequência
// do JOG, e 10 pela frequência desejada:
dp.writeDataPoint("DP_000000", 10);
// Substitua "DP_111111" pelo XID do data point que habilita a função JOG
// (se não for binário, troque o 1 pelo valor que ativa o parâmetro)
dp.writeDataPoint("DP_111111", 1);
Desativar JOG
// Substitua "DP_111111" pelo XID do data point que habilita a função JOG
// (se não for binário, troque o 0 pelo valor que desativa o parâmetro)
dp.writeDataPoint("DP_111111", 0);
Criados os scripts, crie um componente HTML com um botão. Precisaremos usar os eventos onmousedown
(botão do mouse pressionado) e onmouseup
(botão do mouse solto) para invocar nossa função mango.view.executeScript() nos momentos adequados (mais informações sobre eventos DOM podem ser encontradas aqui e aqui).
Botão HTML
<button onmousedown="mango.view.executeScript('SC_111111');" onmouseup="mango.view.executeScript('SC_000000');">
Clique em mim!
</button>
Substitua ‘SC_111111’ pelo XID correspondente ao script que ativa o JOG e substitua ‘SC_000000’ pelo XID correspondente ao script que desativa o JOG.
Espero ter ajudado, abraços!
PS.: Há sempre um pequeno delay entre pressionar/soltar o botão na Representação Gráfica e o sinal para ativar/desativar o JOG ser enviado ao seu inversor, algo entre 0,5s e 2s. Ainda sim, esta é a solução que mais se aproxima da experiência de usar um botão físico para ativar o JOG.