Applicazione relativa al Web-IO input analogico:
Indicatore dei valori di misura (volt & ampere)
Il valore misurato dal Web-IO analogico può essere visualizzato piuttosto facilmente su una pagina web per mezzo di JavaScript e di alcune immagini. L’integrazione dell’Applet Web-IO garantisce l’aggiornamento costante della visualizzazione dei valori di misura.
Con il seguente esempio copy&paste potete visualizzare i due valori (volt e/o ampere) misurati dal vostro Web-IO input analogico su una pagina web sotto forma di indicatore. Sono disponibili corrispondenti pagine web d’esempio e immagini anche per la visualizzazione di un valore in volt e per la visualizzazione di un valore in ampere.
L’esempio parte innanzitutto dalla visualizzazione di un valore in volt e di un valore in ampere. Alla fine vi mostriamo anche i parametri che dovete elaborare, se devono essere visualizzati due valori in volt o due valori in ampere.
Preparativi
Avete già alimentato con corrente
- il vostro Web-IO analogico,
- effettuato il collegamento alla vostra rete,
- e assegnato un indirizzo IP: con WuTility è facile!
1. Integrazione di JavaScript nella pagina web
Copiate dal seguente esempio il JavaScript (con sfondo blu)
nell’area <head> della vostra pagina web.
<html>
<head>
<title>Zeiger</title>
<script language="JavaScript" type="text/javascript">
<!--
var voltmeter = new multipic(101,"volt_400_","gif",20,10,10,"showvolt");
var amperemeter = new multipic(102,"ampere_400_","gif",20,10,420,"showampere");
var valuevolt;
var valueampere;
function multipic(id, img_name, img_ext, img_count, ypos, xpos, link)
{
img_count++;
this.multipics = new Array( img_count );
this.multipic_count = img_count;
this.multipic_id = id; // class variables
for (i=0; i<img_count; i++)
{
this.multipics[i] = new Image();
this.multipics[i].src = img_name+i+’.’+img_ext;
}
this.Set = picSet; // class method
if (link == "nolink")
{
document.write("<img id=’"+this.multipic_id+"’ style=position:absolute;top:"+ypos+"px;left:"+xpos+"px src="+this.multipics[0].src+" border=0>");
}
else
{
document.write("<a href=’javascript:" + link + "(" + id + ");’><img id=’"+this.multipic_id+"’ style=position:absolute;top:"+ypos+"px;left:"+xpos+"px src="+this.multipics[0].src+" border=0></a>");
}
}
function picSet(iCount)
{
for (i=0; i<this.multipic_count; i++)
{
if(iCount==i)
{
document.getElementById(this.multipic_id).src = this.multipics[i].src;
}
}
}
function showvolt()
{
alert("Aktueller Wert: "+valuevolt+"V");
}
function showampere()
{
alert("Aktueller Wert: "+valueampere+"mA");
}
function sensorChanged( iDevice, iSensor, iVal )
{
if (iSensor==0)
{
valueampere = iVal;
amperemeter.Set(Math.round(iVal));
}
else
{
valuevolt = iVal;
voltmeter.Set(Math.round(iVal*2));
}
}
</script>
</head>
...
2. Integrazione di Applet nella pagina web
- Copiate le indicazioni Applet (con sfondo blu) nell’area <body> della vostra pagina web.
- Inserite l’indirizzo IP del vostro Web-IO analogico.
...
<body>
<applet name="Analog" archive="A.jar" code="A.class" codebase="http://10.40.22.27" height="0" width="0" mayscript>
<param name="device" value="0">
<param name="showerrors" value="off">
<param name="sensorpolling" value="on">
<param name="pollingrate" value="500">Java ist nicht aktiviert oder wird nicht unterstützt
</applet>
</body>
</html>
3. Download + archiviazione delle immagini
Ora necessitate soltanto delle immagini relative all’oggetto della visualizzazione che vi mettiamo a disposizione qui per il download: .zip (ca. 583 KB). Archiviate le immagini nella directory nella quale si trova anche la pagina web con le indicazioni JavaScript e Applet.
Digressione: visualizzazione di due valori in volt o di due valori in ampere
Se volete visualizzare due valori in volt o due valori in ampere, dovete soltanto adattare corrispondentemente i parametri contrassegnati in rosso.
<html>
<head>
<title>Zeiger</title>
<script language="JavaScript" type="text/javascript">
<!--
var voltmeter = new multipic(101,"volt_400_","gif",20,10,10,"showvolt");
var amperemeter = new multipic(102,"ampere_400_","gif",20,10,420,"showampere");
var valuevolt;
var valueampere;
function multipic(id, img_name, img_ext, img_count, ypos, xpos, link)
{
img_count++;
this.multipics = new Array( img_count );
this.multipic_count = img_count;
this.multipic_id = id; // class variables
for (i=0; i<img_count; i++)
{
this.multipics[i] = new Image();
this.multipics[i].src = img_name+i+’.’+img_ext;
}
this.Set = picSet; // class method
if (link == "nolink")
{
document.write("<img id=’"+this.multipic_id+"’ style=position:absolute;top:"+ypos+"px;left:"+xpos+"px src="+this.multipics[0].src+" border=0>");
}
else
{
document.write("<a href=’javascript:" + link + "(" + id + ");’><img id=’"+this.multipic_id+"’ style=position:absolute;top:"+ypos+"px;left:"+xpos+"px src="+this.multipics[0].src+" border=0></a>");
}
}
function picSet(iCount)
{
for (i=0; i<this.multipic_count; i++)
{
if(iCount==i)
{
document.getElementById(this.multipic_id).src = this.multipics[i].src;
}
}
}
function showvolt()
{
alert("Aktueller Wert: "+valuevolt+"V");
}
function showampere()
{
alert("Aktueller Wert: "+valueampere+"mA");
}
function sensorChanged( iDevice, iSensor, iVal )
{
if (iSensor==0)
{
valueampere = iVal;
amperemeter.Set(Math.round(iVal));
}
else
{
valuevolt = iVal;
voltmeter.Set(Math.round(iVal*2));
}
}
</script>
</head>
...