W&T conecta
Interfaces para TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA, fibra óptica de vidrio y de plástico, http, SNMP, OPC, Modbus TCP, I/O digital, I/O analógico, ISA, PCI

Aplicación al Web-IO digital:

Web-IO digital - visualizar con JavaScript y Java-Applet en el Browser


El Internet Browser es hoy día parte componente de todos los modernos sistemas operativos y se aprecia como un instrumento versátil de indicación al navegar por Internet.

Visualizar IOs digitales con Java-Applet en el Browser

Junto con los W&T Web-IOs el Browser se puede utilizar ahora también como elemento de indicación y de mando para aplicaciones dinámicas, técnicas.

El motor para la dinámica es aquí un Java-Applet, que se carga sencillamente del Web-IO en el Browser y que asume aquí el intercambio de datos de proceso con el Web-IO. Rutinas sencillas JavaScript cogen el estado actual de los IOs del Java-Applet en los cambios y adaptan la indicación en el Browser a las circunstancias en el campo.

Comparación entre Java Script y HTTP

La aplicación descrita a continuación muestra ejemplarmente el juego entre Browser, Java-Applet y Web-IO.

¿No tiene todavía un Web-IO y quiere probar el ejemplo presentado?

No hay problema: Le ponemos a disposición el Web-IO Digital 2xInput, 2xOutput PoE gratis durante 30 días. Rellene sencillamente un pedido muestra y le enviaremos el Web-IO para probar a cuenta abierta. Si nos devuelve el aparato dentro de los 30 días, le abonamos la factura completa.

Al pedido muestra

Preparativos

Recopilación de los diferentes elementos de manejo y objetos de visualización de la página web

Elementos de manejo

Al denominar cada uno de los objetos o de las funciones a llamar es de gran ayuda usar nombres con sentido.

1. Estructura base HTML de la página web

Colocar los elementos de mando y de indicación

Para una mejor estructuración se mete cada uno de los elementos en tablas y se declara todo como formulario. El Tag <user.htm> no pertenece a la sintaxis estándar HTML y sirve al Web-IO para identificar la página web. El Tag se filtra antes de cargar en el Browser.


				<user.htm>
				<html>
					<head>
						<title>Web-IO mit Java-Aplett</title>
						<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1">
						<STYLE type=text/css>
							TD {COLOR: #000000; FONT-FAMILY:Verdana,Arial,Helvetica; FONT-SIZE: 10pt; }
						</STYLE>
					</head>
					<body bgcolor="#FFFFFF">
						<form name="ioform">
							<table width="500" border="1" height="144" bgcolor="#CCCCCC">
								<tr>
									<td>
										<table width="500">
											<tr>
												<td colspan="5">
													<b>Input/Output Control </b>
												</td>
											</tr>
											<tr>
												<td width="100">
													<input type="checkbox" name="cb_output" onclick="setOutput(0)"> Output 0
												</td>
												<td width="100">
													<input type="checkbox" name="cb_input"> Input 0
												</td>
												<td width="100">
													<div align="right">Counter 0 </div>
												</td>
													<td width="*" bgcolor="#FFFFFF" id="counter0">
												</td>
												<td width="55">
													<input type="button" value="Clear" onclick="clearCounter(0)">
												</td>
											</tr>
											<tr>
												<td width="100">
													<input type="checkbox" name="cb_output" onclick="setOutput(1)"> Output 1
												</td>
												<td width="100">
													<input type="checkbox" name="cb_input"> Input 1
												</td>
												<td width="100">
													<div align="right">Counter 1 </div>
												</td>
												<td width="*" bgcolor="#FFFFFF" id="counter1">
												</td>
												<td width="55">
													<input type="button" value="Clear" onclick="clearCounter(1)">
												</td>
											</tr>
											<tr>
												<td width="100" height="29">&nbsp;
												</td>
												<td width="100" height="29">&nbsp;
												</td>
												<td width="100" height="29">
													<div align="right">Counter all </div>
												</td>
												<td width="*" height="29">
												</td>
												<td width="55" height="29">
													<input type="button" value="Clear" onclick="clearCounter()">
												</td>
											</tr>
										</table>
									</td>
								</tr>
							</table>
							<table width="500" border="1" bgcolor="#CCCCCC" >
								<tr>
									<td height="35">
										<table width="500">
											<tr>
												<td width="77">Password
												</td>
												<td width="141">
													<input type="text" name="ed_password">
												</td>
												<td width="266">
													<div align="right">
														<input type="button" value="Send" onclick="setPassword()">
													</div>
												</td>
											</tr>
										</table>
									</td>
								</tr>
							</table>
						</form>
				.....

2. Integrar Java-Applet en la página Web

La etiqueta <applet> y la entrega de parámetros
Al integrara el Java-Applet tiene que indicarse el nombre dentro de la etiqueta <applet>, a través de la cual se debe activar el Applet dentro de la página web. Además tiene que indicarse qué Applet se debe cargar. Cada vez que el Applet no se deba cargar por el mismo servidor, se debe indicar además mediante codebase la dirección del servidor tal como la página web misma. Si la página web y el Applet son cargados por el mismo servidor, este parámetro puede no ser necesario.

Entre las dos etiquetas <applet> se entregan parámetros que afectan y dirigen la comunicación con el Web-IO.


							.......
							<applet name="dio" archive="dio.jar" code="dio.class" codebase="http://10.40.22.21" width="0" height="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="on">
								<param name="pollingrate" value="200">
							</applet>
							.......

3. Procesar el manejo por el usuario

Dependiendo de qué elemento de manejo de la página web ha chasqueado o cambiado el usuario, se llaman determinadas funciones JavaSchript. Las funciones JavaScript llaman entonces por su parte rutinas del Java-Applet y entrega si es precios los parámetros necesarios.

  • Entrega de la contraseña

    Esta función sólo se necesita, si se dio una contraseña para el acceso al Web-IO

    
    											function setPassword()
    											{
    												document.applets["dio"].setPassword( ioform.ed_password.value);
    												ioform.ed_password.value = '';
    											}
  • Poner Outputs

    El usuario puede poner los Outputs a través de dos casillas de verificación cb_output. Al llamar la función se entrega el n° del Output.

    
    										<script language="JavaScript" type="text/javascript">
    										<!--
    										function setOutput(OutputNr)
    										{
    											var Out = 0;
    											Out |= Math.pow( 2, OutputNr );
    											if (ioform.cb_output[OutputNr].checked==true)
    											{
    												document.applets["dio"].outputAccess( Out,Out );
    											}
    											else
    											{
    												document.applets["dio"].outputAccess( Out,0 );
    											}
    										}
  • Borrar contadores

    Se pueden borrar los estados de cotnador del contador Input. Como parámetro se entrega el n° del contador que se debe leer o borrar. Si no se entrega ningún parámetro, el Web-IO borra todos los contadores.

    
    										function clearCounter(CounterNr)
    										{
    											if (CounterNr==undefined)
    											{
    												document.applets["dio"].counterClear(0xf);
    											}
    											else
    											{
    												var Counters = 0;
    												Counters |= Math.pow( 2, CounterNr );
    												document.applets["dio"].counterClear( Counters);
    											}
    										}

4. Actualizar los estados IO y los estados de contador

El Java-Applet asume la supervisión de los Inputs, Outputs y contadores del Web-IO. Si se reconoce un cambio, el Applet llama una función JavaScript correspondiente dentro de la página web.

  • Cambio en los Outputs

    Si se reconoce un cambio, se llama la función siguiente. Se entrega de qué Web-IO se anunció el cambio, qué Output se ha cambiado y en qué estado se encuentra actualmente el Output.

    
    								function outputChanged( Device, OutputNr, OutputVal )
    								{
    									ioform.cb_output[OutputNr].checked=OutputVal;
    								}
  • Cambio en los Inputs

    Si se reconoce un cambio, se llama la función siguiente. Se entrega de qué Web-IO se anunció el cambio, qué Input se ha cambiado y en qué estado se encuentra actualmente el Input.

    
    								function inputChanged( Device, InputNr, InputVal)
    								{
    									ioform.cb_input[InputNr].checked=InputVal;
    								}
  • Cambio en los Contadores

    Si se reconoce un cambio, se llama la función siguiente. Se entrega de qué Web-IO se anunció el cambio, qué contador se ha cambiado y en qué estado se encuentra actualmente el contador.

    
    								function counterChanged( Device, CounterNr, CounterVal )
    								{
    									document.getElementById('counter'+CounterNr).innerHTML = '<a>'+CounterVal+'<\/a>';
    								}
    								//-->
    								</script>
    								</body>
    								</html>
    								

Para poder trabajar con el ejemplo mostrado, el Browser tiene que permitir trabajar con Java-Applets. Si no se tiene el apoyo Java, se pueden descargar gratis los Plugins necesarios en www.java.com.

El ejemplo asiste todas las funciones corrientes del Web-IO optimado para el Web-IO 2x Digital Input, 2x Digital Output PoE. Para los otros modelos Web-IO tienen que realizarse en caso necesario adaptaciones en la página web ejemplo. Otros ejemplos de programa para la programación del zócalo los encontrarán en las páginas de herramientas al Web-IO. Una descripción detallada sobre los comandos de los modelos Web-IO digitales la encontrará en el manual de referencia.

Descargar el programa ejemplo

¿No tiene todavía un Web-IO y quiere probar el ejemplo presentado?

No hay problema: Le ponemos a disposición el Web-IO Digital 2xInput, 2xOutput gratis durante 30 días. Rellene sencillamente un pedido muestra y le enviaremos el Web-IO para probar a cuenta abierta. Si nos devuelve el aparato dentro de los 30 días, le abonamos la factura completa.

Al pedido muestra