W&T collega
Adattatori per TCP/IP, Ethernet, RS-232, RS-485, USB, 20 mA, Fibra ottica di vetro e plastica, http, SNMP, OPC, Modbus TCP, I/O digitale, I/O analogico, ISA, PCI

Applicazione relativa al Web-IO input analogico:

Indicatore dei valori di misura (volt & ampere)


Indicatore dei valori di misura (volt) Indicatore dei valori di misura (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>
...