Reconhecer eventos com botão físico


#1

Boa noite,

Gostaria de saber se existe a possibilidade de reconhecer todos os eventos do ScadaBR utilizando um botão externo/físico.

O botão esta conectado a uma entrada do CLP e o CLP envia as informações para o Scada via BACNET.

Ao acionar esse botão, gostaria que todos os eventos fossem reconhecidos, assim como acontece quando clicamos em “reconhecer todos os eventos”.

Agradeço desde já, até mais.


#2

Boa tarde.
Se você der uma olhada na página, irá encontrar o código abaixo:

<img class="ptr" src="images/tick.png" alt="Reconhecer todos" title="Reconhecer todos" onclick="MiscDwr.acknowledgeAllPendingEvents()" border="0">

Você pode utilizar e modificar o código acima para alcançar o que procura de diversas maneiras, vai da imaginação.
A parte que te interessa está dentro do evento “onclick”


#3

Desculpa colocar areia na farofa, mas a função: MiscDwr.acknowledgeAllPendingEvents() só funciona na interface gráfica, ela não iria funcionar num meta ou via script JS.

No caso, o usuário deseja um botão no CLP para reconhecer as condições. Para isso, teria que ter uma especie de Meta DataSource que pudesse chamar MiscDwr.acknowledgeAllPendingEvents()

Estou pensando em soluções para isso. A priori, estou pensando na possibilidade de um http Publisher e criar uma pagina jsp que faça isso. assim toda vez que a variavel binaria mudar pelo pressionar do botão do CLP, o Scada iria abrir o jsp…

Tipo: A página ack,jsp ser algo assim:

<!DOCTYPE html>
<html>
<script type="text/javascript" src="dwr/interface/MiscDwr.js"></script>

<body onload="myFunction()">

<h1>ACK</h1>

<script>
function myFunction() {
MiscDwr.acknowledgeAllPendingEvents();
MiscDwr.MiscDwr.toggleUserMuted();
document.write("MiscDwr.toggleUserMuted()");
 }
</script>

</body>
</html>

#4

Não sei se é possível invocar as classes DWR diretamente pelos scripts internos do ScadaBR, mas se for possível provavelmente será invocando o código de forma parecida com essa daqui:

var miscDwr = new com.serotonin.mango.web.dwr.MiscDwr();
miscDwr.acknowledgeAllPendingEvents();