Seg√ļn altos est√°ndares industriales

Busca en nuestro Blog. Encontrar√°s m√ļltiples aplicaciones, soluciones, ejemplos de c√≥digo. Navega utilizando la nube de etiquetas o busca utilizando criterios espec√≠ficos

Implementación del Servidor Web Arduino para aplicaciones de automatización industrial

Cómo implementar un servidor web Arduino

Introduction Arduino web server


En este blog se muestra c√≥mo implementar una implementaci√≥n de Arduino Web Server en PLC basados ‚Äč‚Äčen Arduino Automation. El requisito para este ejemplo es solo una programaci√≥n de PLC basada en Ardunio con una conexi√≥n Ethernet (escudo ethernet del servidor web Arduino)

 .

Requirements to implement an Arduino Web Server


Ethernet PLC Arduino:          Productos de la familia MDuino

Librería Ethernet2:             Librería Arduino Ethernet2.h


Configuración


M-Duino requiere una fuente de alimentación para hacer funcionar la placa Ethernet y el cable Ethernet. 

Debe seleccionar la dirección IP y Mac. En este ejemplo son: IP = 192.168.1.219 and Mac = 0xDE, 0xAB, 0xBE, 0x15, 0x00, 0x01.

Este servidor web es un servidor web Arduino simple que permite alternar el Pin Q0.0 de M-Duino. Usando el puerto TCP 80 y el protocolo HTTP, nuestro servidor web estará escuchando a través de este puerto esperando un cliente. Una vez que hay una solicitud del cliente, se llama a la función togglePin () y se activa Q0.0. De lo contrario, el servidor mostrará un mensaje de error apropiado al cliente. 

Once you upload the sketch, open the Serial Monitor on Arduino IDE to know if the setUp has succeeded:

Serial Monitor on Arduino IDE setUp

How to connect to the server? Just open your browser and type the server IP. In this example is 192.168.1.219.
See next arduino web server image:

How to connect to Web Server

A continuación, puede hacer clic en BAJO para cambiar el Pin Q0.0 a ALTO:

How to connect to Web Server

Software


El código para implementar este servidor web de Industrial Shields Arduino HTML CSS se muestra a continuación:

/*
   Copyright (c) 2017 Boot&Work Corp., S.L. All rights reserved

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
//If using V7 versions you have to include instead the following library: #include <Ethernet.h> 
#include <Ethernet2.h> #define TCP_PORT 80 // Digital output int pin = Q0_0; int value = LOW; int _numDigitalOutputs = 1; uint8_t _mac[] = {0xDE, 0xAB, 0xBE, 0x15, 0x00, 0x01}; byte IP[] = {192, 168, 1, 219}; EthernetServer _server(TCP_PORT); //////////////////////////////////////////////////////////////////////////////////////////////////// void setup() { Serial.begin(9600L); Serial.println("ISWeb started"); pinMode(pin, OUTPUT); digitalWrite(pin, value); Ethernet.begin(_mac, IP); Serial.print("IP address: "); Serial.println(Ethernet.localIP()); _server.begin(); Serial.print("Listening on port "); Serial.println(TCP_PORT); } //////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { EthernetClient client = _server.available(); if (client) { String requestType = client.readStringUntil(' '); String requestUrl = client.readStringUntil(' '); String requestVersion = client.readStringUntil('\n'); String response; if (requestType == "GET") { Serial.println("process GET"); Serial.print("Request URL: "); Serial.println(requestUrl); if (requestUrl == "/") { response = createResponse(); } else if (requestUrl.startsWith("/toggle")) { togglePin(); response = createResponse(); } else { response = create404(); } } else { response = create404(); } sendResponse(response, client); client.stop(); } } //////////////////////////////////////////////////////////////////////////////////////////////////// String createResponse() { String content = "<!DOCTYPE html>" "<html>" "<head>" "<title>ISWeb</title>" "</head>" "<body>" "Arduino web server IS<br>"; content += "Q0.0: <a href=\"/toggle\">"; content += value == HIGH ? "HIGH" : "LOW"; // if value = HIGH print HIGH, else print LOW content += "</a>"; content += "</body>" "</html>"; return createResponse(200, content); } //////////////////////////////////////////////////////////////////////////////////////////////////// String create404() { return createResponse(404, "404 Not Found"); } //////////////////////////////////////////////////////////////////////////////////////////////////// String createResponse(int statusCode, const String &content) { String response; switch (statusCode) { case 200: response = "HTTP/1.1 200 OK\r\n"; break; case 404: response = "HTTP/1.1 404 Not found\r\n"; break; default: response = "HTTP/1.1 500 Internal server error\r\n"; break; } response += "Server: ISWeb\r\n" "Content-Type: text/html\r\n" "Connection: closed\r\n" "Content-Length: "; response.concat(content.length()); response += "\r\n" "\r\n"; response += content; return response; } //////////////////////////////////////////////////////////////////////////////////////////////////// void sendResponse(const String &response, EthernetClient &client) { client.print(response); } //////////////////////////////////////////////////////////////////////////////////////////////////// void togglePin() { if (value == HIGH) { value = LOW; } else { value = HIGH; } digitalWrite(pin, value); }

 

Mira también:

Prueba de Ethernet en versiones M-Duino PLUS >>

Cómo restablecer un PLC usando el escudo de Ethernet >>

Cómo conectar un PLC basado en Arduino con un PLC Siemens con Ethernet >>


 

¬ŅEst√°s buscando tu PLC ideal?

Mira esta comparativa con otros controladores industriales

Comparamos entradas, salidas, comunicaciones y otras características con las de algunas de las marcas relevantes


Comparación de controladores PLC industriales >>

¬ŅQuieres m√°s informaci√≥n? 

¬°Solo llena el formulario! 

¬°Quiero saber m√°s!  Por favor, llene el formulario correctamente.