Sunteți pe pagina 1din 6

BRAZO ROBÓTICO CON TRES GRADOS DE LIBERTAD, CONTROLADO

MEDIANTE ARDUINO Y SCADA INFILINK CON COMUNICACIÓN MODBUS


TCP/IP UTILIZANDO OPC KEPSERVER
Romero Isamar, Custodio Ángel.
isamarromero1108@gmail.com, acustodio@unexpo.edu.ve
Departamento de Ingeniería Electrónica
UNEXPO – Vicerrectorado Puerto Ordaz, Ciudad Guayana, Venezuela

Resumen— Esta investigación tiene como objetivo la comunicación entre componentes de software
desarrollar un brazo robótico de tres grados de libertad y distintos.
ejercer control directo sobre el mismo a través del sistema En base a lo anterior se propone para el presente
SCADA Infilink utilizando los controladores del servidor
OPC KEPServer para estandarizar la comunicación entre
trabajo desarrollar un brazo robótico de tres
ambas partes. El proyecto está basado en el shield Arduino grados de libertad y ejercer control sobre el
nano y emplea el entorno de programación de Arduino, mismo empleando las herramientas SCADA y
haciendo uso de las múltiples librerías disponibles gracias a OPC.
su condición de software libre. Para la estructura del brazo II. DESARROLLO
robótico se realizó el diseño de las piezas individuales que
lo conforman, se procedió a fabricarlas en madera balsa y
Se requiere el diseño y ensamblado de un brazo
posteriormente se ensamblaron junto a los servomotores robótico con tres grados de libertad controlado
que dan movimiento a las articulaciones del brazo robótico. mediante un Arduino nano. El usuario debe poder
Para la comunicación entre el OPC y el arduino nano se ejercer control sobre el brazo a través del
implementó Modbus TCP/IP en el arduino y se configuró el ordenador mediante una HMI en el SCADA
OPC con los drivers de dicho protocolo.
Infilink. Para la comunicación entre el Arduino
Palabras claves— brazo robótico, Modbus TCP/IP, nano y el SCADA se utilizará el OPC KEPServer,
OPC, SCADA. empleando uno de los muchos drivers que este
soporta, para la transmisión de los datos. En la
I. INTRODUCCIÓN fig. 1 se observa el diagrama general según lo
descrito anteriormente.
Desde sus inicios la humanidad ha buscado
controlar todo lo que la rodea, dando pie a las
primeras formas de control, las cuales eran
totalmente manuales y donde el factor humano
Figura 1: Diagrama general del sistema.
estaba casi siempre presente durante el proceso,
ya que era parte indispensable del sistema de Se seleccionó el protocolo Modbus TCP/IP para
control. Con el pasar de los años y el cada vez ser implementado en el diseño basado en su
más acelerado avance de la tecnología, no solo se popularidad en la industria y en la existencia de
han mejorado las técnicas que permiten ejercer librerías que facilitan su trabajo en la plataforma
control sobre los distintos procesos o plantas, sino Arduino.
también las herramientas que sirven de apoyo
para dichos sistemas y para el ingeniero que desee 1. Propuesta de hardware:
implementarlos..
Dos herramientas fundamentales para el apoyo Arduino nano: el arduino nano será el encargado
del ingeniero son los sistemas SCADA de controlar los servomotores, según lo
(Adquisición de Datos y Control Supervisorio), especifique el usuario desde la HMI. La elección
que permiten no solo la visualización de datos de este shield está basada en su bajo costo y en
provenientes del proceso sino también que la cantidad de I/O y pines de PWM que posee
proporcionan la posibilidad de modificar sus son más que suficientes para los requerimientos
parámetros a través de una interfaz de usuario. La del proyecto.
segunda herramienta está constituida por los
drivers o servidores OPC (Plataforma Abierta de Placa de Ethernet ENC28J60: ya que el
Comunicaciones), los cuales simplifican la Arduino nano no posee puerto RJ45, se utilizará
adquisición de datos del proceso estandarizando
una placa de Ethernet la cual irá acoplada al utilizará un router TP-LINK modelo TL-
arduino, haciendo posible conectarlo al router MR3420.
mediante un cable UTP y de esta forma trabajar
con Modbus TCP/IP.

Servomotores: el movimiento de las


articulaciones y pinza del brazo robótico serán
efectuados por tres servomotores SG-90 y un
MG995, conectados a las salidas PWM del
Arduino nano y ensamblados en el brazo
robótico.

Figura 3. Esquema de comunicaciones del sistema

Como se puede observar en el esquema de


comunicaciones de la fig. anterior, los comandos
suministrados por el usuario desde la HMI del
SCADA se enviarán por medio del servidor OPC,
para lograr esto es imprescindible que la
computadora esté conectada a la red de área local
inalámbrica (WLAN) creada anteriormente con el
router, asignándole al ordenador la IP:
192.168.1.10. Luego el Arduino nano,
configurado con la IP: 192.168.1.120 y mediante
Figura 2. Conexiones de los servomotores.
el shield ENC28J60 recibirá los datos
conectándose directamente de la red vía Modbus
En la fig. 2 se puede apreciar el diagrama de TCP/IP.
conexiones de cada uno de los servomotores al
Arduino nano. 2. Propuesta de software:

Alimentación: el diseño requerirá de dos fuentes, En la propuesta de software se detallarán las


una de 5 Vdc y 200 mA para alimentar el Arduino configuraciones utilizadas para el funcionamiento
y otra de 7 Vdc y 2 A para los servomotores, del servidor OPC y del SCADA según los
debido a que el consumo de corriente de estos requerimientos del presente trabajo, así como
últimos es elevado. La conexión de la fuente del también el funcionamiento del código utilizado
Arduino nano puede realizarse mediante los pines para el arduino nano.
de 5 V y Gnd o a través del puerto micro USB del
arduino. Es importante resaltar que el arduino y OPC:
los servomotores deben estar conectados al Se propone el uso del controlador para
mismo punto de tierra para el correcto dispositivos que trabajen con Modbus TCP/IP,
funcionamiento del diseño. para lo cual es necesario crear un canal, para
configurar la forma en la que llegará la
Router: se requerirá también un router para crear información al servidor, un dispositivo, para
una WLAN y así permitir la comunicación del configurar las características de la unidad que se
arduino con el servidor OPC mediante el conectará al OPC y los tags, que son las variables
protocolo Modbus TCP/IP. Para el proyecto se a tratar.
 Tags:
En la siguiente tabla se pueden observar las
 Canal: etiquetas creadas en el servidor OPC, cada una de
La primera configuración esencial es la de estas representa el valor de un servomotor. Como
seleccionar un nombre identificativo para el canal se tratan de holding registers se les asignó una
a crear, de tal manera que si se está trabajando dirección a partir de 400001 porque según el
con varios canales, se puede identificar direccionamiento de Modbus, todas las variables
rápidamente con que driver está configurado cada con direcciones a partir de esta pueden ser leídas
uno. Las configuraciones restantes se pueden y modificadas por el cliente, lo cual es de suma
observar en la tabla I. importancia ya que se busca ejercer control sobre
los servomotores a través de la modificación de
TABLA I los tags, no solo la lectura del valor.
CONFIGURACIONES DEL CANAL
Virtual Network None TABLA III
Transaction per cycle 1 TAGS DE KEPSERVER
Network Mode Load Balanced Nombre Dirección Tipo Descripción
Netword Adapter Atheros 192.168.1.10 s1 400101 Word Base del brazo robótico
Optimization Method Write only latest s2 400105 Word Codo del brazo robótico
value for all tags s3 400109 Word Muñeca del brazo
Duty Cycle 10 robótico
Non-normalized Replaced w s4 400113 Word Pinza del brazo robótico
values ith zero
Socket Usage Use one or more Algoritmo:
sockets per device
Para la implementación de Modbus TCP/IP en
Max sockets per 1
device al dispositivo se utilizó la librería Modbus
Port number 502 (Sarmento, 2015), la cual permite trabajar vía
IP Protocol TCP/IP Ethernet o Wi-Fi. Por otra parte se empleó la
librería EtherCard, la cual permite la conexión
 Dispositivo: por Ethernet del shield ENC28J60.
A continuación se presentan las configuraciones Inicialmente en el código se realizan la inclusión
requeridas para crear un dispositivo que emplee de las librerías y las configuraciones iniciales de
Modbus TCP/IP conectado a un canal puertos y variables, finalizado este proceso se
previamente establecido dentro del servidor OPC inicia un bucle infinito que constantemente recibe
Kepserver. Es importante destacar que al crear un los valores enviados desde la HMI mediante
dispositivo dentro de un canal, el primero deberá Modbus y actualiza la posición de cada uno de los
trabajar con el protocolo establecido del segundo. servomotores, añadiendo un retardo para que el
cambio no se produzca de manera violenta.
TABLA II
CONFIGURACIONES DEL DISPOSITIVO
Device model Modbus SCADA:
Device ID 192.168.1.120 Se diseñó utilizando el SCADA Infilink una
Scan Mode Respect client specified HMI que permite el control independiente de
scan rate
Connect timeout 3 seconds
cada uno de los servomotores que conforman las
Request timeout 1000 milliseconds articulaciones del brazo robótico. El movimiento
Fail afer 3 successive timeouts se controla mediante el puntero de los sliders, el
Inter-request delay 0 milliseconds valor seleccionado se envía mediante el servidor
Port Number 502 OPC y este a su lo envía al Arduino nano
IP Protocol TCP/IP mediante Modbus TCP/IP.
Output coils 32
Input coils 32
Internal registers 32
Holding registers 32
Arduino nano y el servidor OPC, como se
muestra en la fig. 5.

Figura 4. HMI diseñada en Infilink. Figura 5. Herramienta “Quick client” del servidor OPC.

En la fig 4. se puede observar la HMI diseñada. Segunda prueba:


Para lograr que el movimiento de los sliders El objetivo de esta prueba es comprobar la
modifique el valor de los servomotores es funcionalidad de las piezas previamente
necesario vincular cada uno de los sliders con uno diseñadas.
de los tags o etiquetas creados e importados desde
el servidor OPC, tal como se puede observar en la Procedimiento:
siguiente figura.  Construir las piezas en madera balsa
según el diseño elaborado.
III. RESULTADOS  Acoplar los servomotores a las piezas
fabricadas.
Una vez finalizada la etapa de diseño se da
 Unir todas las piezas para conformar el
inicio a la obtención de resultados mediante
brazo robótico.
pruebas experimentales que permitan evaluar el
 Probar la movilidad de la estructura.
desempeño del sistema propuesto anteriormente,
esto incluye la comunicación entre el arduino y el
Resultados:
OPC, el ensamblado y puesta en marcha del brazo
Se obtuvieron resultados satisfactorios ya que la
robótico y por último la manipulación de la planta
estructura conformada por las piezas previamente
desde la HMI del SCADA.
diseñadas, permite la movilidad de las tres
articulaciones y de la pinza sin problemas. La
Primera prueba
estructura realizada se puede observar en la fig. 6.
El objetivo de esta prueba es verificar la
conexión entre el Arduino nano y el servidor
OPC.

Procedimiento:
 Conectar el arduino nano al router donde
se creó la WLAN.
 Conectar la computadora a la misma
WLAN del paso anterior.
 Dar inicio al funcionamiento del servidor
OPC.
 Realizar peticiones mediante la
herramienta “Quick client” de KEPServer. Figura 6. Brazo robótico terminado.

Resultados: realizando las conexiones de la fig. Tercera prueba


Finalmente, la última prueba tiene el fin de
2 junto a las configuraciones del OPC
comprobar el funcionamiento del sistema
previamente establecidas en la etapa de diseño completo, similar a la primera prueba, pero ahora
fue posible establecer una comunicación entre el con el brazo robótico completamente instalado y
realizando las peticiones desde la HMI del
SCADA y no mediante la herramienta “Quick Cuarta prueba
client”. Se realiza con la finalidad de comprobar que la
posición de cada una de las articulaciones del
Procedimiento: brazo robótico corresponda con la seleccionada
 Conectar el brazo robótico al Arduino en el sistema SCADA.
nano.
 Conectar el Arduino nano al router donde Procedimiento:
se creó la WLAN.  Ubicar la posición de la pinza en 0 %, 50
 Vincular la computadora a la misma % y 100 % desde Infilink y medir el
WLAN del paso anterior. ángulo de la articulación para cada uno de
 Dar inicio al funcionamiento del servidor los porcentajes.
OPC.  Ubicar la posición de la muñeca en 0 %,
 Iniciar la HMI en el SCADA Infilink. 50 % y 100 % desde Infilink y medir el
 Realizar peticiones mediante la HMI. ángulo de la articulación para cada uno de
los porcentajes.
Resultados:  Ubicar la posición del codo en 0 %, 50 %
Al igual que en la primera prueba se observaron y 100 % desde Infilink y medir el ángulo
resultados favorables con respecto a la de la articulación para cada uno de los
comunicación entre el Arduino y el OPC, ahora porcentajes.
realizando modificaciones directamente sobre la  Ubicar la posición de la base en 0 %, 50
posición de los servomotores acoplados al brazo % y 100 % desde Infilink y medir el
robótico, el cual de manera similar a la segunda ángulo de la articulación para cada uno de
prueba presentó un comportamiento adecuado. los porcentajes.
Adicionalmente se pudo comprobar el correcto
funcionamiento de la interfaz hombre-máquina Resultados:
diseñada en el SCADA Infilink, la cual provee al Mediante la realización de la cuarta prueba se
usuario una forma más cómoda de interactuar con pudo comprobar que los valores de posición
el brazo robótico, permitiendo variar la posición angular de cada una de las articulaciones del
de los servomotores a través de unos sliders brazo robótico corresponden con las
interactivos y visualizar los valores de los mismos seleccionadas desde la HMI del SCADA Infilink.
según vayan variando por acción del usuario. En la fig. 8 se observa el slider que controla la
base del brazo robótico, este está ubicado en 0 %
lo cual representa 0 ° en la articulación como se
muestra en la fig 9.

Figura 8. Slider de control de la base ajustado al 0 %.

Figura 7. Montaje de la tercera prueba.

En la fig. 7 se puede observar el montaje del


sistema completo realizado para la tercera prueba.
24 de Diciembre de 2018, de
http://www.etitudela.com/entrenadorcomunicaciones/d
ownloads/labvie wintroduccionopcserver.pdf
[4] Cisco. (2018). Cisco. Recuperado el 26 de
Diciembre de 2018, de
https://www.cisco.com/c/en/us/tech/lan-
switching/ethernet/index.html
[5] ElectroniLab. (s.f.). Recuperado el 8 de Diciembre de
2018, de https://electronilab.co/tienda/micro-servo-9g-
towerpro/
[6] Gómez, E. (19 de Diciembre de 2017). Rincón
Figura 9. Posición angular de la base al 0 %. Ingenieríl. Recuperado el 24 de Noviembre de 2018, de
Qué es PWM y para que sirve:
IV. CONCLUSIONES https://www.rinconingenieril.es/que-es-pwm-y-para-
que-sirve/
1. Mediante el SCADA Infilink fue posible [7] Hurtado de Barrera, J. (2015). EL PROYECTO DE
crear una HMI intuitiva y fácil de manejar INVESTIGACIÓN HURTADO (Octava ed.). Caracas,
Venezuela: Ediciones Quirón.
para el usuario gracias a los objetos
[8] IPC2U. (s.f.). Recuperado el 24 de Diciembre de 2018,
interactivos como sliders y botones que el de https://ipc2u.com/articles/knowledge-base/detailed-
software ofrece. description-of-the-modbus-tcp-protocol-with-
2. Gracias a la recopilación de información y command-examples/
mediante el software AutoCAD fue posible [9] Kominek, D. (2009). InfoPLC. Recuperado el 26 de
Diciembre de 2018, de
diseñar las piezas necesarias para la
http://www.infoplc.net/files/documentacion/comunicac
construcción del brazo robótico. iones/infoplc_net
3. Utilizando como material madera balsa, se _guia_para_entender_la_tecnologia_opc.pdf
hizo posible la construcción de las piezas [10] Mecatrónica LATAM. (s.f.). Recuperado el 24 de
diseñadas en AutoCAD. Noviembre de 2018, de
https://www.mecatronicalatam.com/motores/servomoto
4. Empleando el controlador para Modbus
r
TCP/IP que ofrece el OPC KepServerEx fue [11] National Instruments. (2018). National Instruments.
posible establecer una comunicación eficiente Recuperado el 22 de Diciembre de 2018, de
entre el Arduino nano y el SCADA Infilink. http://www.ni.com/white-paper/52134/es/
5. Al ensamblar las piezas fabricadas junto a [12] OPC FOUNDATION. (2018). Recuperado el 24 de
Noviembre de 2018, de OPC FOUNDATION:
los servomotores se comprobó que gracias a
https://opcfoundation.org/
la baja densidad de la madera las piezas no [13] Remache Coyago, J. C. (2002). CONTROL DE
representaron un peso excesivo para los TEMPERATURA DE UN CALENTADOR DE
servomotores, permitiendo el buen LIQUIDOS USANDO INTOUCH Y UN PLC. Quito:
funcionamiento de la estructura. Escuela Politécnica Nacional.
[14] Saad Khalil, J. (2015). ENTORNO DE
6. Finalmente, al ejecutar las pruebas finales
PROGRAMACIÓN PARA SIMULAR Y
se comprobó en base a los resultados el CONTROLAR UN BRAZO ROBÓTICO
correcto funcionamiento de todo el sistema, ANTROPOMÓRFICO DE 5 GRADOS DE
desde la comunicación entre los diferentes LIBERTAD. Ciudad Guayana: UCAB.
componentes hasta el desplazamiento angular [15] Sánchez, A. (Mayo de 2011). Diseño y Construcción
de un Brazo Robot Articulado de Seis Grados de
de cada una de las articulaciones del brazo
libertad. Tec-Magazine, 14.
robótico. [16] Sarmento, A. (10 de Noviembre de 2015). Librería
Modbus TCP/IP. Recuperado el 22 de Marzo de 2019,
V. REFERENCIAS de Git hub: https://github.com/andresarmento/modbus-
arduino
[1] Acromag. (2005). ProSoft Technology. Recuperado el [17] Stallings, W. (2004). Comunicaciones y Redes de
22 de Diciembre de2018, de https://www.prosoft- Computadoras (Séptima ed.). Madrid: Prentice Hall.
technology.com/kb/assets/intro_modbustcp.pdf [18] Tomasi, W. (2003). Sistemas de comunicaciones
[2] Arduino. Recuperado el 24 de Noviembre de 2018, de electrónicas (Cuarta ed.).
https://www.arduino.cc/ [19] Phoenix, Arizona, Estados Unidos: Prentice Hall.
[3] C.I.P Etitudela. (s.f.). Entrenador comunicaciones
industriales. Recuperado el

S-ar putea să vă placă și