Boa noite.
O sistema do SCADABR não prevê tabelas de histórico nas telas de IHM. Como isso é muito útil em praticamente todas as aplicações de sistemas supervisórios. Desta forma me dediquei para criar uma forma de tornar esta função possível.
Primeiro precisamos do banco de dados mySQL já que não conhecia ninguém que trabalha-se com Derbi.kkk
Precisamos criar um arquivo de texto com o nome de historico.jsp. o código para o arquivo esta abaixo.
<%@ page import = “java.io.,java.util.,java.sql."%>
<%@ page import = "javax.servlet.http.,javax.servlet.*” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix = “c”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/sql” prefix = “sql”%>
<sql:query dataSource = "${snapshot}" var = "result">
Select pointvalueannotations.textPointValueShort from pointvalueannotations
left Join pointvalues ON pointvalueannotations.pointValueID=pointValues.id where pointValues.dataPointId = 29 order by id desc limit 10;
</sql:query>
<sql:query dataSource = "${snapshot}" var = "result1">
Select pointvalueannotations.textPointValueShort from pointvalueannotations
left Join pointvalues ON pointvalueannotations.pointValueID=pointValues.id where pointValues.dataPointId = 30 order by id desc limit 10;
</sql:query>
<sql:query dataSource = "${snapshot}" var = "result2">
Select pointvalueannotations.textPointValueShort from pointvalueannotations
left Join pointvalues ON pointvalueannotations.pointValueID=pointValues.id where pointValues.dataPointId = 31 order by id desc limit 10;
</sql:query>
<sql:query dataSource = "${snapshot}" var = "result3">
Select DATE_FORMAT(from_unixtime(ROUND(ts/1000)),'%d/%m/%Y - %H:%i:%s') as tempo from pointValues where dataPointId = 31 order by id desc limit 10;
</sql:query>
<table border = "1" width = "100%">
<col width = "25%">
<col width = "25%">
<col width = "25%">
<col width = "25%">
<tr>
<th>Data-hora</th>
<th>Moldagem</th>
<th>Resfriamento</th>
<th>Carregamento</th>
</tr>
</table>
<table border = "1" width = "25%" style="float: left">
<c:forEach var = "row" items = "${result3.rows}">
<tr>
<td><c:out value = "${row.tempo}"/></td>
</tr>
</c:forEach>
</table>
<table border = "1" width = "25%" style="float: left">
<c:forEach var = "row" items = "${result.rows}">
<tr>
<td><c:out value = "${row.textPointValueShort}"/></td>
</tr>
</c:forEach>
</table>
<table border = "1" width = "25%" style="float: left">
<c:forEach var = "row" items = "${result1.rows}">
<tr>
<td><c:out value = "${row.textPointValueShort}"/></td>
</tr>
</c:forEach>
</table>
<table border = "1" width = "25%" style="float: left">
<c:forEach var = "row" items = "${result2.rows}">
<tr>
<td><c:out value = "${row.textPointValueShort}"/></td>
</tr>
</c:forEach>
</table>
Este arquivo precisa ser colocado dentro da pasta C:\Program Files\ScadaBR\webapps\ScadaBR
Para chamar a tabela dentro do SCADABR vamos utilizar um componente HTML com o código:
O resultado é uma tabela com 10 linhas e 4 colunas que através do arquivo jsp pode facilmente ser alterada.
Como antes do SCADABR nunca havia trabalhado com banco de dados ou javascript meu socorro foram dois professores maravilhosos, que na verdade criaram a função e eu apenas dei ideias de como queria.
Nosso amigo Luciano Topolniak Professor do IFRO.
Meu irmão Lauan que é programador para infraestrutura.
O credito desta maravilhosa ferramenta é deles.
Espero que sirva a todos.