W&T verbindet
Interfaces für TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA, Glas- und Kunststoff-LWL, http, SNMP, OPC, Modbus TCP, I/O digital, I/O analog, ISA, PCI

Applikation zum Web-IO Digital:

Web-IO Digital visualisieren & steuern


Outputs

Die Inputs, Counter und Outputs des Web-IO Digital können mit Hilfe von JavaScript und einigen Bildern recht einfach auf einer Webseite visualisiert werden. Für die laufende Aktualisierung der Anzeige sorgt die Einbindung des Web-IO-Applets.

Mit dem folgenden copy&paste-Beispiel können Sie Ihr Web-IO Digital mit seinen Inputs und Outputs auf einer Webseite abbilden. Darüber hinaus können Sie die Outputs des Web-IOs von der Webseite aus auch schalten.

Vorbereitungen

Sie haben Ihr Web-IO Digital bereits

  • mit Strom versorgt,
  • an Ihr Netzwerk angeschlossen,
  • mit einer IP-Adresse versehen - mit WuTility kein Problem.
1. JavaScript in Webseite einbinden

Kopieren Sie aus dem folgenden Beispiel das JavaScript (blau unterlegt) in den <head>-Bereich Ihrer Webseite.

<html>
<head>
	<title>Web-IO Digital: Inputs/Outputs</title>
	<script language="JavaScript" type="text/javascript">
	<!--
	var ypositopn = 175;
	var xposition = 87;
	var xdifferenc = 24;
	ledinput = new Array(12);
	ledoutput = new Array(12);
	switchoutput = new Array(12);
	outputvalue = new Array(12);
	for (i=0; i<12; i++)
		{
		outputvalue[i] = false;
		}
	for (i=0; i<4; i++)
		{
		ledinput[i] = new multipic(100+i,"led_","gif",1,ypositopn,xposition + i*xdifferenc,"nolink");
		status=i;
		}
	for (i=4; i<8; i++)
		{
		ledinput[i] = new multipic(100+i,"led_","gif",1,ypositopn,xposition + 26 + i*xdifferenc,"nolink");
		}
	for (i=8; i<12; i++)
		{
		ledinput[i] = new multipic(100+i,"led_","gif",1,ypositopn,xposition + 56 + i*xdifferenc,"nolink");
		}
		ypositopn = 327;
	for (i=0; i<4; i++)
		{
		ledoutput[i] = new multipic(200+i,"led_","gif",1,ypositopn,xposition + i*xdifferenc,"nolink");
		}
	for (i=4; i<8; i++)
		{
		ledoutput[i] = new multipic(200+i,"led_","gif",1,ypositopn,xposition + 3 + i*xdifferenc,"nolink");
		}
	for (i=8; i<12; i++)
		{
		ledoutput[i] = new multipic(200+i,"led_","gif",1,ypositopn,xposition + 5 + i*xdifferenc,"nolink");
		}
	document.write("<img border='0' src='stickersmall.gif' style='position:absolute; top:160px; left:10px'>");
	ypositopn = 380;
	xposition = 80;
	xdifferenc = 25;
	for (i=0; i<12; i++)
		{
		switchoutput[i] = new multipic(i,"switch_","gif",1,ypositopn,xposition + i*xdifferenc, "setOutput");
		}
	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 (ii=0; ii<img_count; ii++)
			{
			this.multipics[ii] = new Image();
			this.multipics[ii].src = img_name+ii+'.'+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 (ii=0; ii<this.multipic_count; ii++)
			{
			if(iCount==ii)
				{
				document.getElementById(this.multipic_id).src = this.multipics[ii].src;
					}
				}
		}
	function inputChanged( iDevice, iNr, iVal )
		{
		ledinput[iNr].Set(iVal);
		}
	function outputChanged( iDevice, iNr, iVal )
		{
		ledoutput[iNr].Set(iVal);
		switchoutput[iNr].Set(iVal);
		outputvalue[iNr] = iVal;
		}
	function setOutput(iNr)
		{
		if (outputvalue[iNr]==false)
			{
			document.applets["dio"].outputAccess( Math.pow( 2, iNr ), 0x0FFF );
			}
		else
			{
			document.applets["dio"].outputAccess( Math.pow( 2, iNr ), 0x0000 );
			}
		}
	function setPassword()
		{
		document.applets["dio"].setPassword( document.forms[0].tfPassword.value );
		document.forms[0].tfPassword.value = '';
		}
	</script>
</head>
...
2. Applet in Webseite einbinden
  • Kopieren Sie die Applet-Angaben (blau unterlegt) in den <body>-Bereich Ihrer Webseite.
  • Fügen Sie die IP-Adresse Ihres Web-IO Analog ein.
...
<body style="background-color: #0099CC; font-family: Arial, Helvetica, sans-serif;">
	<applet name="dio" archive="dio.jar" code="dio.class" codebase="http://10.40.50.5" height="0" width="0" mayscript>
		<param name="device" value="0">
		<param name="showerrors" value="off">
		<param name="inputpolling" value="on">
		<param name="outputpolling" value="on">
		<param name="counterpolling" value="off">
		<param name="pollingrate" value="1000">
		Java ist nicht aktiviert oder wird nicht unterstützt
	</applet>
...
3. Passwort-Formular

Wenn Sie Ihr Web-IO durch ein Passwort geschützt haben, kopieren Sie das Passwort-Formular (blau unterlegt) ebenfalls in den <body>-Bereich Ihrer Webseite. Die Webseite kann in diesem Fall erst nach dem Senden des Passwortes mit dem Web-IO kommunizieren.

...
	<form>
		<p>Passwort:
			<input type="password" name="tfPassword" maxlength="31" size="20">
			<input type="button" value="senden" onclick="setPassword()">
		</p>
	</form>
</body>
</html>
4. Bilder downloaden + ablegen

Nun benötigen Sie nur noch die zum Anzeigeobjekt gehörigen Bilder, die wir hier zum Download bereitgestellt haben: .zip (ca. 12 KB). Bitte legen Sie die Bilder in dem Verzeichnis ab, in dem sich auch die Webseite mit den JavaScript- und Applet-Angaben befindet.

Programmbeispiel herunterladen

Sie haben noch kein Web-IO und möchten das vorgestellte Beispiel einfach mal ausprobieren?

Kein Problem: Wir stellen Ihnen das Web-IO Digital 2xInput, 2xOutput PoE gerne kostenlos für 30 Tage zur Verfügung. Einfach Musterbestellung ausfüllen, wir liefern das Web-IO zum Test auf offene Rechnung. Wenn Sie das Gerät innerhalb von 30 Tagen zurück schicken, schreiben wir die Rechnung komplett gut.

Zur Musterbestellung