Protocolo de comunicación Modbus TCP/IP mediantearduino y factory IO
1. REDES INDUSTRIALES
CARRERA : MECATRÓNICA
ESTUDIANTE :
ANDRES CASTRO
KATERINE SANGOVALIN
MARLON TORRES
TEMA : IMPLEMENTACION Y SIMULACION DEL
PORTOCOLO DE COMUNICACIÓN MODBUS
TCP/IP MEDIANTE ARDUINO Y FACTORY IO.
NIVEL : OCTAVO
DOCENTE : ING. WILSON SANCHEZ
LATACUNGA-ECUADOR 2021
2. 1. Tema.
Implementación y Simulación del protocolo de comunicación Modbus TCP/IP
mediante Arduino y Factory IO.
2. Abstract.
En el presente documento se realiza la implementación de una red TCP/IP
usando Arduino como controlador de la escena Pick and Place (Basic) del
software Factory I/O, junto con el Shield Ethernet W5100 que proporciona la
capacidad de conectar un Arduino a una red ethernet. Es la parte física que
implementa la pila de protocolos TCP/IP. El Shield está basado en el chip
ethernet Wiznet W5100 que provee de una pila de red IP capaz de soportar TCP
y UDP. De este modo usando la librería ‘‘MgsModbus’’ de Arduino da al
programa la posibilidad de ser maestro, esclavo o ambos en una red TCP. El
puerto 502 se utiliza de serie.
3. Introducción
El modelo TCP/IP es una descripción de protocolos de red creado por Vinton
Cerf y Robert E. Kahn, en la década de 1970. Fue implantado en la red
ARPANET, la primera red de área amplia (WAN), desarrollada por encargo de
DARPA, una agencia del Departamento de Defensa de los Estados Unidos, y
predecesora de Internet; por esta razón, a veces también se le llama modelo
DoD o modelo DARPA (Gallo & Herrera, 2016).
Permite distribuir geográficamente un grupo de ordenadores interconectados
entre sí. Esta red debía de mantenerse operativa aun sufriendo grandes daños
en sus componentes, garantizando las comunicaciones entre las máquinas no
afectadas. De esta manera, la información, al estar localizada en varios lugares,
no sería destruida fácilmente (Rodríguez, Aquilino & Penin, 2009).
Este nuevo método de interconexión recibió su nombre de su proveedor, Red de
la Agencia de Proyectos de Investigación Avanzada, o ARPANET (Advance
Research Projects Agency Net). Los doss primeros ordenadores en conectarse
a ARPANET, en 1969, estaban en la UCLA o Universidad de California, y en el
Stanford Research Institute (Andreu & Joaqu’in 2011).
En esta primera red de comunicaciones informáticas, los ordenadores
conectados usaban diferentes sistemas operativos, pero tenían la habilidad de
3. intercambiar información entre ellos gracias a unos procesadores de
comunicaciones especiales.
La red fue creciendo y en 1971 ARPANET tenía 23 puntos conectados.
Figura 1. Ordenadores conectados a ARPANET durante 1971. (UCA EDU, 2021)
En 1972 ARPANET se presentó en la First International Conference on
Computers and Communication en Washington DC. Los científicos de ARPANET
demostraron que el sistema era operativo creando una red de 40 puntos
conectados en diferentes localizaciones. Esto estimuló la búsqueda en este
campo y se crearon otras redes. (UCA EDU, 2021)
Entre 1974 y 1982 se crearon gran cantidad de redes entre las que destacaron:
Telenet (1974): Versión comercial de ARPANET.
Usenet (1979): Sistema abierto centrado en el e-mail y que aun funciona.
Bitnet (1981): Unía las universidades americanas usando sistemas IBM.
Eunet (1982): Unía Reino Unido, Escandinavia y Holanda.
En aquél momento el mundo de las redes era un poco caótico, a pesar de que
ARPANET seguía siendo el “estándar”. EN 1982, ARPANET adoptó el protocolo
TCP/IP y en aquel momento se creó Internet (International Net) (Douglas, 2006).
Actualmente la mayoría de ordenadores están conectados a alguna red (internet,
intranet, etc.) y casi todos lo hacen utilizando el modelo TCP/IP. Este modelo es
un protocolo para comunicación en redes que permite que un equipo pueda
comunicarse dentro de una red (FEIT S, 2004).
4. Se va a desarrollar un enlace servido–cliente, mediante el protocolo Modbus
TCP/IP y Arduino, generando el movimiento de una escena de un proceso
industrial en Factory IO. (FEIT S, 2004).
Figura 2. Comunicación Modbus TCP/IP mediante Arduino y Factory IO. (Autores,2021)
4. Marco Teórico
4.1. Protocolo Modbus.
“Modbus’’ es un protocolo de comunicación serie desarrollado y publicado por
Modicon en 1979, el más utilizado en entornos industriales, sistemas de
telecontrol y monitorización” (Lucio & Gordillo Orquera).
La transmisión con el protocolo Modbus es sencilla, ya que se conectan distintos
equipos electrónicos a un solo bus, en este bus de comunicación existe un
maestro (Master) y varios equipos que trabajan como esclavos (Slaves). El
funcionamiento posee una base muy sencilla: el maestro pregunta y los esclavos
responden, cabe recalcar que solo uno de los esclavos puede hacerlo. (Lucio &
Gordillo Orquera)
4.2. Topología de la Red
La topología que se utiliza en el desarrollo de la RED MODBUS es la
recomendada por ROCKWELL AUTOMATION denomina Daisy Chain mostrada
en la ilustración 1 esta configuración es la más sencilla ya que el final de un
dispositivo es el inicio del siguiente. (Perez & Javier., 2007)
5. Figura 3. Topología de Red Modbus Daisy Chain. (Autores, 2021)
4.3. Modbus TCP/IP
Además, la unidad completa de datos de aplicación Modbus TCP / IP está
integrada en campo de datos de una trama TCP estándar y enviado a través de
TCP a un sistema conocido puerto 502, que está específicamente reservado
para aplicaciones Modbus.
Podemos ver que la operación de Modbus sobre Ethernet está casi transparente
a la estructura de registro / comando de Modbus. Por lo tanto, si eres ya
familiarizado con el funcionamiento de Modbus tradicional, entonces usted está
ya muy con la operación de Modbus TCP / IP.
La transmisión Ethernet forma un poderoso estándar de comunicación industrial
en Modbus TCP / IP. Y porque Modbus TCP / IP comparte el mismo físico y
capas de enlace de datos de Ethernet tradicional IEEE 802.3 y utiliza el mismo
conjunto de protocolos TCP / IP, sigue siendo totalmente compatible con la
infraestructura Ethernet instalada de cables, conectores, interfaz de red tarjetas,
concentradores e interruptores. (Acromag, 2005)
Figura 4. Topología de red Modbus TCP/IP. (FEIT S, 2021)
6. 4.4. Modelo de Arquitectura Del Protocolo TCP/IP
El modelo OSI describe las comunicaciones de red ideales con una familia de
protocolos. TCP/IP no se corresponde directamente con este modelo. TCP/IP
combina varias capas OSI en una única capa, o no utiliza determinadas capas.
La tabla siguiente muestra las capas de la implementación de Oracle Solaris de
TCP/IP. La tabla enumera las capas desde la capa superior (aplicación) hasta la
capa inferior (red física).
Tabla 1. Capas de protocolo TCP/IP
La tabla muestra las capas de protocolo TCP/IP y los equivalentes del modelo
OSI. También se muestran ejemplos de los protocolos disponibles en cada nivel
de la pila del protocolo TCP/IP. Cada sistema que participa en una transacción
de comunicación ejecuta una única implementación de la pila del protocolo.
(Oracle Corporation and/or its affiliates, 2010)
4.5. FACTORY IO
Factory I/O es un software para automatización en tiempo real donde se puede
construir y simular sistemas industriales y utilizarlos con las tecnologías de
automatización más comunes. Esta simulación es totalmente interactiva e
incluye gráficos de alta calidad y sonido, proporcionando un entorno realista
industrial.
Factory I/O utiliza una tecnología innovadora que permite una creación fácil y
rápida de los sistemas industriales en 3D con solo arrastrar y soltar.
7. Figura 5. Escenario de Factory IO. (Autores,2021)
El software Factory IO integra una simulación de fábrica 3D con prácticamente
cualquier tecnología de automatización. Use FACTORY I/O con PLC, SoftPLC,
SCADA y más, a través de Modbus TCP/IP y el cliente OPC DA/UA.
Integra una fábrica virtual con una amplia gama de tecnologías usando un
servidor y cliente Modbus TCP/IP y de cliente OPC DA/UA.
Figura 6. Configuración software Factory IO. (Autores, 2021)
8. Tabla 2. Opciones de Configuraciones software Factory IO. (Autores,2021)
Autoconectar Intenta conectarse periódicamente al PLC.
Anfitrión Dirección IP del servidor (solo lectura).
Puerto Número de puerto TCP (el predeterminado es 502).
ID de esclavo ID de esclavo.
Adaptador de red Adaptador de red para usar.
Escribir digital Dónde escribir los valores de los sensores digitales
(Entradas o Bobinas).
Leer digital Desde donde leer los valores de los actuadores
digitales (Bobinas o Entradas).
Escribir registro Dónde escribir valores de sensores analógicos
(registros de entrada o registros de retención).
Leer registro Desde donde leer los valores del actuador analógico
(Holding Registers o Input Registers).
Escala Los valores de los sensores flotantes se multiplican
por este valor; los valores del actuador se dividen
por él. Con este enfoque, el valor de un sensor
flotante puede convertirse en un número entero,
enviarse al cliente y volver a convertirse en un
número real dividiéndolo por el factor de escala (por
ejemplo, un valor de entrada de 3,14 con 100
cuando la escala se envía como 314, luego se puede
dividir por la misma escala para obtener el valor real
de 3,14).
Entradas digitales Desplazamiento de dirección y número de entradas
digitales a utilizar (máximo 256).
Salidas digitales Desplazamiento de dirección y número de salidas
digitales a utilizar (máximo 256).
Registrar entradas Desplazamiento de dirección y número de entradas
de registro a utilizar (máx. 64).
Registrar salidas Desplazamiento de dirección y número de salidas de
registro a utilizar (máximo 64).
9. 5. Desarrollo
5.1. Materiales y Equipos
Tabla 3. Materiales y Equipos (Autores, 2021)
Material Características Cantidad Imagen
Arduino
MEGA 2560
Microcontrolador:
ATmega2560.
Voltaje salida: 5 V.
Voltaje entrada: 7-12 V.
Pines de E/S digital: 54
(15 son salida PWM)
Pines analógicos: 16.
Corriente CC E/S: 20 mA.
1 unidad
Cable de red
UTP directo
Cable Ethernet con
conectores RJ45 y norma
TIA/EIA 568A
1 metro
Arduino
Shield
Ethernet
W5100
Voltaje: 5V DC.
Chip: Wiznet W5100.
Velocidad: 10/100Mbps.
Conector RJ45.
Interface: SPI.
Lector MicroSD Card.
1 Unidad
Laptop Puerto RJ45 como
interfaz física
comúnmente utilizada
para conectar redes de
computadoras con
cableado estructurado
(categorías 4, 5, 5e, 6, 6a,
7, 7a y 8). Posee ocho
pines.
1 Unidad
10. 5.2. Comunicación Modbus
5.2.1 Capa Física
i. Cable USB 2.0 tipo A/B para cargar el programa a Arduino
USB 2.0 Tasa de transferencia de hasta 480 Mbit/s (60 MB/s), pero con
una tasa real práctica máxima de 280 Mbit/s (35 MB/s). El cable USB 2.0
dispone de cuatro líneas, un par para datos, y otro par de alimentación.
Las señales del USB se transmiten en un cable de par trenzado con
impedancia característica de 90 Ω ± 15%, cuyos hilos se denominan D+ y
D-. Estos, conjuntamente, utilizan señal diferencial en half dúplex.
A diferencia de otros cables de datos (Ethernet, HDMI, etc), cada extremo
de un cable USB utiliza un tipo de conector diferente; una de tipo A o de
tipo B. Este tipo de diseño fue elegido para evitar las sobrecargas
eléctricas y no dañar el equipo, ya que solo la hembra de tipo A se
presenta la carga eléctrica. (Kim,Kwon,Park & Kim, 2008).
Puerto USB 2.0, este puerto solo admite la conexión de dispositivos de
bajo consumo, es decir, que tengan un consumo máximo de 100 mA por
cada puerto; sin embargo, en caso de que estuviese conectado un
dispositivo que permite 4 puertos por cada salida USB (extensiones de
máximo 4 puertos), entonces la energía del USB se asignará en unidades
de 100 mA hasta un máximo de 500 mA por puerto.
Tabla 4 Cacracteríesticas cable USB 2.0 (Autores, 2021)
Pin Nombre Color de cable Descripción
1 VCC Rojo +5 V
2 D− Blanco Data −
3 D+ Verde Data +
4 GND Negro Tierra
ii. Cablede red UTP con conectores macho RJ45
Cable categoría 5e no apantallado. Este tipo de cable, que son los que
vienen normalmente en los routers que ofrecen los operadores, cuentan
con una velocidad máxima de transmisión de 1000 Mbps a distancias de
hasta 100 metros. Norma EIA/TIA 568, lo más distintivo de esta norma, es
la asignación de pines/pares para cable de par trenzado equilibrado de
100 Ω y 8 conductores (Stallings, 2004).
11. Tabla 5. Características Mecánicas y Eléctricas. (Autores, 2021)
Características Mecánicas y Eléctricas
Temperatura de Operación: -20°C a 80°C
Inductancia nominal: 24.5 μH/ft.
Capacitancia Nominal a 1Khz: 15 pF/ft
Voltaje Operación máximo: 300 V RMS
Voltaje típico de operación: 12/24 VDC.
Corriente recomendada Max: 2.2 Amp. por conductor a 25°C
Tensión max Recomendada: 35 Lbs
iii. Arduino Mega
El Arduino Mega es probablemente el micro controlador más capaz de la
familia Arduino. Posee 54 pines digitales que funcionan como
entrada/salida; 16 entradas análogas, un cristal oscilador de 16 MHz, una
conexión USB, un botón de reset y una entrada para la alimentación de la
placa. (AprendiendoArduino, 2021)
Microcontrolador: ATmega2560, voltaje Operativo: 5V, voltaje de Entrada:
7-12V y voltaje de Entrada (límites): 6-20V. Pines digitales de
Entrada/Salida: 54 (de los cuales 15 proveen salida PWM) con 16 pines
análogos de entrada.
Corriente DC por cada pin E/S: 40 mA, corriente DC entregada en el Pin
3.3V: 50 mA (AprendiendoArduino, 2021).
Memoria Flash: 256 KB (8KB usados por el bootloader), SRAM: 8KB,
EEPROM: 4KB y Clock Speed: 16 MHz
El micro controlador Atmel Atmega 2560-16 está fabricado con tecnología
CMOS de 8 bits y baja potencia, basado en arquitectura RISC mejorada
de AVR. Mediante la ejecución depotentes instrucciones en un solo ciclo
de reloj, consigue lograr rendimientos que se aproximan al 1 MIPS por
MHz. (AprendiendoArduino, 2021)
12. Shield Ethernet W5100
Voltaje de Operación: 5V DC.
Chip Ethernet: Wiznet W5100.
Velocidad Ethernet: 10/100 Mbps.
Conector RJ45.
Interface: SPI.
Soporta en Hardware los protocolos TCP, UDP, ICMP, IPv4 ARP,
IGMP, Ethernet
Capa física de ethernet 10 BaseT/100 BaseTX
Soporta Auto MDI/MDIX
16 KB de memoria SRAM para buffers de transmisión y recepción
Escribe aplicaciones que utilizan protocolos TCP y UDP
Hasta 4 conexiones (sockets) simultáneos
Figura 7. Arduino Mega y Shield Ethernet W5100 (Comer, 1996)
13. 5.2.2 Capa de Enlace
A. Comunicación Serie Arduino
begin() – estable la velocidad de la UART en baudios para la transmisión
serie, también es posible configurar el número de bits de datos, la paridad
y los bits de stop, por defecto es 8 bits de datos, sin paridad y un bit de stop.
available() – da el número de bytes (caracteres) disponibles para leer en el
puerto serie, son datos que han llegado y se almacenan en el buffer serie
que tiene un tamaño de 64 bytes (Estrada,2011).
Figura 8. Señal Asincrónica Básica (Estrada,2011).
La figura muestra una comunicación Serial asincrónica Unipolar (un solo
nivel de tensión), los 8 bits de datos (1 Byte) se delimitan con un bit de Start
que es un flanco de bajada de la línea de 1 a 0 y un bit de paro o Stop que
es la línea en estado alto. El noveno bit ya no se usa y es el de paridad. Es
común en las configuraciones de puerto serial o conversores de USB a
Serial utilizar la palabra 8N1 que significa 8 bits de datos, No paridad y 1
Bit de Stop.
Otro parámetro es la velocidad de comunicación que va desde 1200 bps
hasta 64kbps. Una velocidad de por ejemplo 9600 Baudios significa que el
tiempo de duración de cada bit de datos es de 1/9600 = 104 Micro segundos
(us). El receptor lo que debe hacer es escuchar el flanco de bajada del
Start y desde allí sabiendo la velocidad de comunicación en Baudios, debe
muestrear la línea de recepción en la mitad de cada bit.
14. B. Comunicación Modbus
Suele ir sobre RS485. Modbus un protocolo de comunicaciones situado en
el nivel 7 del Modelo OSI, basado en la arquitectura maestro/esclavo (RTU)
o cliente/servidor (TCP/IP)
Por lo tanto, al ser Modbus con protocolo de capa 7, su implementación se
deba hacer en el software de Arduino ya sea hecha por uno mismo o
usando una librería como:
MgsModbus, la biblioteca le da al programa la posibilidad de ser maestro,
esclavo o ambos en una red TCP. Se implementan las funciones Modbus
1, 2, 3, 4, 5, 6 15 y 16. El puerto 502 se utiliza de serie (Douglas, 2006).
Configurar Arduino con el ethernet shield de forma que le asignamos una
IP fija con la siguiente configuración:
IP: 192.168.0.XX
Subnet: 255.255.255.0
Gateway: 192.168.6.1
DNS: 8.8.8.8
Figura 9. Clases de direcciones IP (Estrada,2011).
Las direcciones IPv4 tienen una longitud de 32 bits, que permite un
máximo de 4 294 967 296 (232) direcciones únicas.
15. Clase C: En una red de clase C, los dos primeros bits están puestos a 1 y el
tercero a 0. Eso hace que los primeros 24 bits de la dirección sean la parte de la
red, y el resto, la del host. Las direcciones de red de clase C van desde 192.0.0.0
a 223.255.255.0. Hay más de 2 millones de redes de clase C posibles.
Las direcciones clase C tienen 21 bits para la red (2 097 150 redes) y 8 bits para
el host (254 máquinas)
Sub máscaras y máscaras de subred:
El número de bits correspondientes a la subred y al número de host son elegidos
libremente por el administrador. Esta es un número binario de 32 bits. Los bits
que estén a 1 indicaran el campo de a dirección IP dedicada a la red y los bits
puestos a 0 indican la parte dedicada al host.
5.2.3 Capa de Aplicación
Figura 10. Administrador de librerías y tablero de control (Autores,2021)
A. Programación del Arduino como Servidor Modbus TCP/IP
i. Es necesario tener conectado a la placa Arduino la Wiznet 5100 Ethernet
shield, este módulo permitirá que la placa se comunique por ethernet con
el computador
ii. Inicializamos el ID de Arduino, no dirigimos la parte superior y buscamos
Programa, buscamos Incluir Librería, damos clic en Administrar como se
muestra en la figura 10.
16. iii. Se desplegará la siguiente pantalla, en la cual debemos colocar Modbus
para encontrar la librería para establecer la comunicación, como se
muestra en la figura 11.
Figura 11. Instalación de la librería Modbus. (Autores,2021)
iv. Dentro del ID de Arduino inicializamos el programa con las librerías para
Modbus y Ethernet, en la cual debemos establecer la dirección Mac y la
IP para establecer la comunicación con el Pc.
#include <SPI.h>
#include <Ethernet.h>
#include "MgsModbus.h"
MgsModbus Mb;
byte mac[] = {0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
IPAddress ip(192, 168, 0, 100);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
v. Dentro de ‘‘void setup’’, definimos la velocidad de la comunicación y el
modo de trabajo de los pines digitales de la placa Arduino, de igual forma
con los parámetros de ethernet los inicializamos para mantener la
comunicación contante.
17. void setup(){
Serial.begin(9600);
// Pines de salidad digitales tarjeta Arduino
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
// inicialización comunicación puerto ethernet
Ethernet.begin(mac, ip, gateway, subnet);
}
vi. Dentro de ‘‘void loop’’, se debe inicializar la toma de los datos de entrada
y las salidas para la activación de los actuadores existentes en la escena
Factory IO, para lo cual para leer el datos se utiliza el comando
‘‘Mb.GetBit’’, conjunto con la dirección a ser leída, de igual forma para dar
la señal de activación se usa ‘‘Mb.SetBit’’, conjunto con la dirección de a
ser escrita. Como se observa en la siguiente tabla.
// Varibles de Entrada
digitalWrite(6,bitRead( Mb.GetBit(0x00),0));//start
digitalWrite(7,bitRead( Mb.GetBit(0x01),0));//stop
digitalWrite(5,bitRead( Mb.GetBit(0x02),0));//Item at entry
digitalWrite(8,bitRead( Mb.GetBit(0x03),0));//Item at exit
digitalWrite(9,bitRead( Mb.GetBit(0x04),0));//Item detected
// Señales de Activacion
Mb.SetBit(0x05,false); // 0x05 entry conveyor
Mb.SetBit(0x06,false); // 0x06 move z
Mb.SetBit(0x07,false); // 0x07 grab
Mb.SetBit(0x08,false); // 0x08 move x
Mb.SetBit(0x09,false); // 0x09 exit conveyor
vii. Además, se debe agregar la secuencia de control de la escena
considerando los direccionamientos anteriormente descritos, es decir
lavanda de entrad de las cajas deberá activarse al pulsar ‘‘star’’, luego la
18. caja será detectada hasta el brazo neumático el cual posee una ventosa
se detendrá la banda y bajará el brazo y se activará la ventosa generando
que se eleve la caja llevando la a la banda de salida, una vez colocad la
caja en la salida la banda se activara y finalizara el proceso, además se
ha colocado un pulsador de stop para detener el proceso en cualquier
punto.
if(digitalRead(6)==1){
m=1;
}
if(digitalRead(7)==1){
m=0;
con=0;
}
if(digitalRead(5)==0 && digitalRead(8)==0 && digitalRead(9)==0
&& m==1 ){
Mb.SetBit(0x05,true);
if (con==0){
Mb.SetBit(0x09,false);
}else{
Mb.SetBit(0x09,true);
}
}else if(digitalRead(5)==1 && digitalRead(9)==0 &&
digitalRead(8)==0 && m==1 ){
Mb.SetBit(0x05,false);
Mb.SetBit(0x09,false);
Mb.SetBit(0x06,true);
Mb.SetBit(0x07,true);
}else if(digitalRead(5)==1 && digitalRead(9)==1 &&
digitalRead(8)==0 && m==1 ){
Mb.SetBit(0x05,false);
Mb.SetBit(0x09,false);
for(int i=0;i<(tp/2);i++){
Mb.SetBit(0x06,false);
Mb.SetBit(0x07,true);
Mb.MbsRun();
}
}else if(digitalRead(5)==0 && digitalRead(9)==1 &&
digitalRead(8)==0 && m==1 ){
Mb.SetBit(0x05,false);
Mb.SetBit(0x09,false);
for(int i=0;i<(tp/2);i++){
Mb.SetBit(0x06,false);
Mb.SetBit(0x07,true);
19. Mb.MbsRun();
}
for(int i=0;i<tp;i++){
Mb.SetBit(0x07,true);
Mb.SetBit(0x08,true);
Mb.MbsRun();
B. Modificación de la escena Factory IO ‘‘Pick & Place’’.
i. Inicializamos el programa, buscamos en escena ‘‘Pick & Place’’.
Figura 12. Escena ‘‘Pick & Place’’. (Autores,2021)
ii. Dentro de la escena seleccionada nos dirigimos a Archivo, en la cual
seleccionamos ‘’Drivers’’ y seleccionamos ‘‘Modbus TCP/IP Client’’,
desplegándose la siguiente pantalla:
Figura 13. Drivers. (Autores,2021)
20. iii. En la pantalla anterior limpiamos la tarjeta para colocar nuestras entradas
y salida acorde al programa definido en ID de Arduino, en configuraciones
colocamos la IP definida, al igual que el puerto de enlace Modbus 502,
como se muestra en la siguiente figura:
Figura 14. Configuración de la IP y puerto Modbus. (Autores,2021)
iv. Una vez establecido las configuraciones del Driver se obtiene la siguiente
pantalla.
Figura 14. Configuración de entradas y salidas. (Autores,2021)
C. Comunicación Arduino y Factory IO
Cargado el programa generado en el ID de Arduino y configurado la escena del
Factory IO, conectamos el cable de Ethernet a la tarjeta y al computador, el cual
permitirá que la placa se comunique con el software Factory IO.
21. Figura 15. conexión física entre el Arduino y la computadora con Factory IO. (Autores,2021)
6. Resultados
Una vez establecida las capas del modelo OSI para la simulación, se debe
visualizar si existe comunicación entre el computador y la tarjeta Arduino,
ingresamos al CMD y colocamos el comando ping con la dirección IP
192.168.0.50
Figura 16. Prueba de Comunicación. (Autores,2021)
Dentro del Factory IO en ‘‘Drivers’’, pulsamos en conectar y automáticamente se
establece la comunicación colocando se una alerta en verde como se muestra
en la siguiente figura
22. Figura 17. Comunicación activada en Factory IO. (Autores,2021)
Si el enlace entre Arduino y factor es correcto al pulsar el botón ‘‘start’’el sistema
iniciara el proceso.
Figura 18. Proceso en funcionamiento en Factory IO. (Autores,2021)
7. Conclusiones
Una vez finalizada la práctica, se comprueba que, TCP/IP puede transmitir a
través de cualquier medio, lo que significa que es independiente de la capa
física y la capa de enlace. Define solamente tres capas que funcionarán en
los niveles superiores a las capas físicas y de enlace para hacerlo así un
modelo independiente del hardware en que se implemente, en este caso a
través de Arduino por medio del uso de un Shield Ethernet.
23. A través de la investigación, se denoto que para el protocolo Modbus TCP/IP
se debe definir un servidor y cliente para generar una comunicación
bidireccional, el cliente recibe las instrucciones del servidor para que el
proceso de la planta tenga un funcionamiento correcto y estable, esto es
gracias a los direccionamientos Modbus programados dentro de la tarjeta
Arduino.
En redes con bajo volumen de tráfico puede llegar a ser más lento (en redes
con mayor volumen de tráfico, que necesiten gran cantidad de enrutamiento,
puede ser mucho más rápido).
Referencias
Barry M., Vinton G., David D., Robert E., Kleinrock L., Una breve historia de Internet,
Asociación de Técnicos en Informática, 1997
Defense Advanced Research Projects Agency (DARPA), Transmition Control
Protocol, Protocol Specification, September 1981.
Rodríguez, Aquilino and Penin, Comunicaciones industriales, 1st ed. España:
Marcombo, 2009.
“TUTORIAL FAMILIA DE PROTOCOLOS TCP/IP", Www2.uca.edu.sv, 2021.
[Online]. Available: http://www2.uca.edu.sv/investigacion/tutoriales/tcp-ip.html.
[Accessed: 13- Feb- 2021].
"Serial Arduino: Introducción", Panama Hitek, 2021. [Online]. Available:
http://panamahitek.com/serial-arduino-introduccion/. [Accessed: 13- Feb- 2021].
V. Guerrero, R. Yuste and L. Martínez, Comunicaciones industriales, 1st ed. España:
Marcombo, 2009.
"Introducción al conjunto de protocolos TCP/IP - Guía de administración del sistema:
servicios IP", Docs.oracle.com, 2021. [Online]. Available:
https://docs.oracle.com/cd/E24842_01/html/820-2981/ipov-6.html. [Accessed: 13-
Feb- 2021].
Corletti Estrada, Alejandro (2011). Seguridad por Niveles (2011). España: DarFe.
ISBN 978-84-615-3814-0
24. Andreu, Joaquín (7 de octubre de 2011). Instalación de equipos de red.
Configuración (Redes locales). Editex. ISBN 978-84-9003-062-2. Consultado el 13
de febrero de 2021.
"TCP/IP – Aprendiendo Arduino", Aprendiendo Arduino, 2021. [Online]. Available:
https://aprendiendoarduino.wordpress.com/category/tcpip/. [Accessed: 13- Feb-
2021].
D. Kim, W. Kwon, K. Park y S. Kim, «Internet Protocol Engine in TCP/IP offloading
Engine,» Advanced Communication Technology, 2008. ICACT 2008. 10th
International Conference on, vol. 1, pp. 270-275, 2008.
Douglas E. Comer. Internetworking with TCP/IP Volume 1: Principles Protocols,
and Architecture, 5th edition, 2006. ISBN 0-13-187671-6
FEIT, S.: TCP/IP: Arquitectura, Protocolos e Implementación. Ed. McGraw-Hill,
2004.
COMER, D.: Redes Globales de Información con Internet y TCP/IP, vol. 1: Principios
Básicos, Protocolos y Arquitectura. Ed. Prentice-Hall, 1996.
W. Stallings, Redes e internet de alta velocidad: rendimiento y calidad de servicio,
2nd ed. Madrid: Pearson Educación, 2004.
Anexos
Link del video:
https://youtu.be/1LBd0bP0i2s
Link de los archivos:
https://drive.google.com/drive/folders/1qfmMRXKCT7fmTR0WXc9hv-
HV_3PmozjA?usp=sharing