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 de pure.box:

Enlazar Web-IOs lógicamente entre sí


motherbox php data request

El ejemplo presentado aquí ilustra las siguientes características funcionales de pure.box:

  • Ejecución temporizada de un script PHP
  • Comunicación de red vía PHP

Los estados y valores de medición recogidos por varios Web-IOs (digital, analógico, termógrafo, etc.) deben ser utilizados como base de decisión para la conexión de las salidas digitales.

Ejemplo de aplicación

Para realizar el control de la temperatura en la sala de servidores de una empresa se ha instalado un Web-Termo-Higrobarografo PoE. El estado de funcionamiento de la instalación de climatización puede ser recogido a través de un contacto de relé. Ese contacto está ejecutado en un Web-IO 2x Digital Input, 2x Digital Output PoE. La instalación de climatización dispone además de un control propio de temperatura ambiental y se activa automáticamente cuando es necesario.

Si la climatización no se activa, a pesar de excederse el límite de temperatura, se deberá encender un piloto de aviso en el panel de indicaciones del conserje. El piloto de aviso también está conectado con un Web-IO 2x Digital Input, 2x Digital Output PoE y por lo tanto puede ser activado o desactivado a través de la red.

Realización

Para realizar esta sencilla tarea de supervisión es necesario conocer la temperatura en la sala de servidores y el estado de funcionamiento de la climatización. La señal del piloto de aviso será configurada en base al resultado asociado.

Como inteligencia central se ha utilizado una pure.box de W&T. El soporte de PHP y la ejecución de la función script PHP vía CRON bastan para cumplir los requisitos. Alternativamente se puede utilizar cualquier ordenador que tenga esas propiedades en lugar de pure.box. Los scripts de ejemplo para esa aplicación pueden ser descargados aquí.

El archivo webio_raw.php incluye funciones estándar que Ud. puede activar desde su script PHP. Con esas funciones puede acceder a los estados y valores de medición de las Web-IOs y procesarlos por separado. A continuación se exponen las funciones disponibles, con los parámetros de obtención necesarios y los valores de retorno:

  • getDigitalIn(IP, puerto, canal, contraseña): obtiene el estado actual de un canal de un Web-IO digital. Para la obtención es necesario transmitir la dirección IP, el puerto HTTP, el número de canal a consultar y la contraseña. El valor de retorno es 0 ó 1 y equivale al estado actual de la entrada. Ejemplo (sin contraseña adjudicada): getDigitalIn('10.4.27.10', 80, 2, '');
  • getDigitalOut(IP, puerto, canal, contraseña): como getDigitalIn(), pero suministra la información sobre el estado de la salida consultada de los Web-IOs.
  • getCounter(IP, puerto, canal, contraseña): obtiene el estado actual del contador para un canal de una Web-IO digital o de un Web-Contador. Los parámetros de obtención son: dirección IP, número del puerto HTTP, número de canal y contraseña. Retorna el estado del contador. Ejemplo: getCounter('10.40.27.10', 80, 4, 'mein_passwort');
  • setDigitalOut(IP, puerto, canal, contraseña, estado): aplica el estado de una salida única a un Web-IO digital. Además de la dirección IP, el puerto HTTP, el número de canal y la contraseña hay que transmitir también el estado del destino de la salida. Éste debe ser indicado con 0 (= salida off) o bien 1 (= salida on). El valor de retorno es el nuevo estado de conmutación. El siguiente ejemplo activa la salida n° 6 en el Web-IO con la dirección IP 10.40.27.10: setDigitalOut('10.40.27.10', 80, 6, 'mein_passwort', 1);
  • getAnalogIO(IP, puerto, canal): Consulta de entradas y salidas de Web-IOs y Web-Termógrafos analógicos. Suministra de vuelta un valor float. Ejemplo: getAnalogIO('10.40.27.11', 80, 1);
  • setAnalogOut(IP, puerto, canal, contraseña, estado): aplica el estado de una salida única a un Web-IO analógico. Además de la dirección IP, el puerto HTTP, el número de canal y la contraseña hay que transmitir también el estado final de la salida. Éste debe ser indicado en forma numérica (p. ej. 2.54 o bien 7.23). El valor de retorno es el anterior valor analógico durante el proceso de regulación sobre el valor final. El siguiente ejemplo aplica el n° de salida 1 en el Web-IO con la dirección IP 10.40.27.11 a 3,5: setDigitalOut('10.40.27.10', 80, 1, 'mein_passwort', 3.5);

Partiendo de una constelación de equipos como en el ejemplo:

  • Web-Termógrafo en la sala de servidores con IP: 10.40.27.11, puerto HTTP: 80, mide la temperatura en canal 1
  • Web-IO en la sala de servidores con IP: 10.40.27.10, puerto HTTP: 80, contacto de aviso de la instalación de climatización en entrada 0, sin contraseña adjudicada
  • Web-IO en sala del conserje con IP: 10.40.27.12, puerto HTTP: 80, piloto de aviso en salida 1, contraseña: ’mein_passwort’

El piloto de aviso debe encenderse cuando la temperatura supere los 30°C y el contacto de aviso de la climatización esté inactivo. El script PHP asociado es el siguiente:


						<?php
							include '../webio_raw.php';
							$state = getDigitalIn('10.40.27.10', 80, 0, '');
							$temperature = getAnalogIO('10.40.27.11', 80, 0);
							$output = $state == 0 && $temperature > 30 ? 1 : 0;
							setDigitalOut('10.40.27.12', 80, 1, 'mein_passwort', $output);
						?>
					
				

Primero se integra, con el comando include, la función de biblioteca con las funciones estándar desde el directorio raíz. Sólo después de integrar se puede utilizar las funciones descritas más arriba. En las variables $state y $temperature se lee el contacto de aviso de la climatizaciión y la temperatura actual en la sala de servidores. Si el estado es OFF y la temperatura superior a 30 °C, entonces se pone $output a 1, en caso contrario a 0. A continuación cambia la salida digital, a la que está conectado el piloto de aviso del conserje, al estado especificado.

Mediante la ejecución de ese script PHP temporizado con CRON se puede efectuar un control por minutos.

Configuración de pure.box

Guarde el archivo webio_raw.php vía FTP o bien directamente en el directorio raíz a través del recurso compartido SMB userfiles de pure.box, el archivo webio_network.php, tras adaptación a su situación, en la carpeta programs. A continuación son necesarios los siguientes pasos de configuración para que el sistema ejecute el script cada minuto:

  • Entre en la página de inicio de pure.box introduciendo la dirección IP en el campo de dirección de su navegador.
    Página Web de Motherbox
  • Seleccione Registrar en los menús y regístrese a través de la ventana de diálogo abierta con derechos de administrador (nombre de usuario: admin y su contraseña).
    Ventana de login de Motherbox
  • Navegue por la página Home >> Configuración >> Mis documentos. Dentro del listado general de archivos pulse en la carpeta programs. El archivo webio_network.php está ahora visible.
    Navegador de archivos Motherbox
  • Un clic sobre el icono Editar propiedades de archivos (arriba a la izquierda webio_network.php) abre la ventana de editar.
    Editar propiedades de archivos
  • Active en tiempos definidos y asegúrese de que en cada uno de los campos de texto siguientes está * anotado. Conforme a esta definición de CRON el script será activado cada minuto.

    Confirme la nueva configuración guardando... ¡Listo!

    Control de sucesos

 

Resumen

De este modo se pueden realizar sencillas tareas de supervisión, siempre que el cliclo mínimo de control de un minuto sea suficiente. La ventaja es que se puede distribuir las señales por la red y anular así la atadura a un lugar.