You are on page 1of 24

UNIVERSIDAD TECNOLOGICA DE QERÉTARO

Nombre de proyecto:

Desarrollo de subrutinas en Python para comunicación bidireccional entre una HMI y un PLC

Nombre de la organización:

Memoria que como parte de los requisitos para obtener el título de:

INGENIERO EN TECNOLOGÍAS DE LA AUTOMATIZACIÓN

Presenta

Matricula:

Santiago de Querétaro. QRO. Julio 2018

Índice
Agradecimientos
Principalmente quiero agradecer a mis padres por la oportunidad que me
dieron de estudiar y el apoyo en toda mi trayectoria, a mi hermano que siempre
está dispuesto ayudarme a su alcance.
Quiero agradecer a mi tutor y profesores quienes me impulsaron a lograr mis
objetivos, siempre estuvieron dispuestos compartir experiencia y conocimientos.
Sobre todo, quiero agradecer a la Universidad Tecnológica de Querétaro y a
todas las personas que la conforman, son quienes hacen que se mueva sin sus
servicios y contribuciones no hubiese sido posible lograr esta meta.
I. Introducción Commented [A1]: La introducción es muy pobre.
Commented [jj2R1]:
Commented [jj3R1]:
Los avances en la industria han tenido un efecto en los últimos años,
modificando el modo de trabajo en un proceso industrial, podemos ver que a lo
largo del tiempo la introducción de nuevas tecnologías en la industria traen
enormes beneficios, una referencia puede ser la introducción de la producción
en línea de HENRRY FORD, creo una revolución puesto agilizo y mejoro
exponencialmente la producción de automóviles, con la automatización de
procesos sucede lo mismo los índices de desperdicio o piezas no funcionales
bajaron, la automatización se conforma de varios componentes, aquí es donde
entraron los panes de control que poco a poco se fueron haciendo más pequeños
y con más capacidad, pasando de un panel con lámparas de colores e
interruptores paso a ser una pantalla con gráficos, final mente esto migro a lo
que hoy en día conocemos como interfaz hombre maquina (HMI) capas de
encajar en cualquier proceso. Hoy en día su uso se ha hecho indispensable por
su gran flexibilidad y alta capacidad para controlar un proceso, la importancia
que se les da a estos dispositivos no es de extrañarse puesto que controlan
procesos que se cotizan en millones de pesos, gracias a los (HMI) tanto el
operario, el técnico de mantenimiento y el gerente pueden conocer a detalle el
estado de la maquina como horas trabajo piezas o en dado caso si ha falla.
La marca ROCKWEL es una de las importantes el mundo de la
automatización, por su innovación constante y su fiabilidad, sin embargo, es la
que maneja un sistema más cerrado con las interfaces hombre máquina, esto
nos abrió un área de oportunidad. Se buscó una alternativa para hacer un interfaz
hombre maquina totalmente genérica, para cualquier PLC de la marca
ROCKWEL. Con este proyecto se abren aún más áreas de oportunidad para la
implementación de los conocimientos y competencias potenciadas.

Una de las áreas de oportunidad o tareas que conforman el proyecto final


es la creación de una librería con las características de leer o escribir datos sobre
variables en cualquier PLC de la marca ROCKWEL, la librería la crearemos en
lenguaje PYTHON y final mente se implementara en una RASPBERRY.
II. Antecedentes Commented [A4]: En esta sección se presentan
situaciones previas que dan lugar al proyecto esto
permite que el lector se integre en el contexto en el
La manufactura esbelta es una poderosa herramienta probada que que se desarrolla el mismo

aumenta la eficiencia en los procesos de producción. Conceptos y prácticas


similares que eliminan "desperdicios" (equipo innecesario y los pasos para el
proceso) se pueden aplicar al diseño, construcción, y el apoyo de los sistemas
de automatización. La automatización esbelta permite una mayor productividad
y confiabilidad, e impulsar soluciones mejores en su clase dando una ventaja
competitiva real. Una combinación HMI-PLC desempeña un papel fundamental
en el diseño de una solución de automatización verdaderamente esbelta,
proporcionando una serie de beneficios durante toda la vida de la automatización
de máquinas. Combinando visualización y control de los medios.

2.1 Costos de HMI


Los costos del interfaz hombre maquina son muy elevados estos costos varían
con forme a su funcionalidad podemos tener varios ejemplos, como referencia
tomamos algunos modelos de HMI de la página oficial de ROCKWELL tomaos
el más costoso y el más económico para tener una referencia. La interfaz más
económica que conseguimos fue el ANEL VIEW Allen-Bradley con un costo de
$20000
2.2 Tipos de HMI
Descontando el método tradicional, podemos distinguir básicamente dos
tipos de HMIs:
 Terminal de Operador: consistente en un dispositivo, generalmente
construido para ser instalado en ambientes agresivos, donde pueden ser
solamente de despliegues numéricos, o alfanuméricos o gráficos. Pueden
ser además con pantalla sensible al tacto (touch scre en)
 PC + Software: esto constituye otra alternativa basada en un PC en donde
se carga un software apropiado para la aplicación. Como PC se puede
utilizar cualquiera según lo exija el proyecto, en donde existen los
llamados Industriales (para ambientes agresivos), los de panel (Panel PC)
que se instalan en gabinetes dando una apariencia de terminal de
operador, y en general veremos muchas formas de hacer un PC, pasando
por el tradicional PC de escritorio.
(Cobo)
2.3 Aplicaciones de los HMI

Tradicionalmente estos sistemas consistían en paneles compuestos por


indicadores y comandos, tales como luces piloto indicadores digitales y
análogos, etc. En la actualidad es posible contar con sistemas de HMI bastante
más poderosos y eficaces, además de permitir una conexión más sencilla y
económica con el proceso o maquinas.
Hoy en día es imposible imaginar un proceso sin un interfaz hombre maquina ya
que es una herramienta sumamente necesaria para el control de procesos
adquisición de datos entre otras. En los años 90 las computadoras personales y
softwares migraron del cuarto de controlo a piso de producción con la finalidad
de que el operario tenga control sobre su estación en tiempo real, esta
modificación en la arquitectura de procesos tuvo un fuerte impacto puesto que
ahora las estaciones tienen el 100% de la atención de los obreros.
Con la tecnología actual nos está permitiendo realizar casi cualquier tipo de
aplicación de forma muy rápida y de fácil mantenimiento
III. Justificación
HMI significa “Human Machine Interface”, es decir es el dispositivo o sistema que
permite el interfaz entre la persona y la máquina. Tradicionalmente estos
sistemas consistían en paneles compuestos por indicadores y comandos, tales
como luces pilotos, indicadores digitales y análogos, registradores, pulsadores,
selectores y otros que se interconectaban con la máquina o proceso.
En la actualidad, dado que las máquinas y procesos en general están
implementadas con controladores y otros dispositivos electrónicos que dejan
disponibles puertas de comunicación, es posible contar con sistemas de HMI
bastantes más poderosos y eficaces, además de permitir una conexión más
sencilla y económica con el proceso o máquinas.
El inconveniente de usar una terminal grafica (HMI) es su alto costo en un
mercado que es altamente creciente. La necesidad requiere desarrollar una
interfaz hombre maquina genérica con las mismas o mayores capacidades y con
la certeza de leer datos certeros, pero con la condición de que el HMI tenga un
costo de una fracción del valor de la HMI industrial alguna de una marca de
renombre como ROCKWELL. Una solución para esto es la creación de
subrutinas para la creación de librerías que nos permitan fácilmente la
comunicación bidireccional con un PLC, traduciéndolo a otras palabras seria
poder leer y escribir sobre una variable de un PLC desde una plataforma como
Python. Para la implementación del proyecto se usará un RASPBERRY PI 3 y
una pantalla lcd touch creen de 7 pulgadas.
La decisión de usar la raspberry pi 3 y la pantalla táctil se tomó
considerando que los costos de estos dos representan el 10% del costo de panel
VIEW 500, es el VIEW 500 es el interfaz más económico que maneja Allen
Bradley la cual se puede adquirir por $20,000.
IV. Objetivos

4.1 Objetivo general


El objetivo general del proyecto es la creación de una librería creada en
lenguaje python para la comunicación bidireccional por medio del protocolo TCP,
esta sería empleada para una HMI genérico compatible con cualquier PLC de la
marca ROCKWELL, usando una RASPBERRY y una pantalla de 7in.

4.2 Objetivo especifico


Dentro del objetivo específico se establecieron n puntos, el primer punto
fue el planteamiento del problema he identificar las necesidades a tratar, dentro
del primer punto las primeras dos necesidades fueron: estudiar el protocolo TCP,
con la finalidad de entender cómo funcionan los puertos TCP, la segunda
necesidad fue aprender el lenguaje PYTHON ya que es el leguaje requerido para
la programación.
Teniendo identificado el objetivo y haber culminado con el primer punto,
el segundo punto será comenzar con la programación en LabView, se eligió
LabView para hacer pruebas, ya que es una plataforma visual y de fácil su
interpretación, cuenta con muchas herramientas que facilitan la programación.

El cierre de los objetivos es la integración de las competencias


obtenidas, se comienza con la migración del código funcional echo en LabView
hacia el lenguaje PYTHON el cual se hizo por medio de la plataforma GENY,
para hacer pruebas. Una vez que el código en PYTHON sea funcional y este
avalado por las pruebas requeridas, seguiríamos con el último punto el cual
consiste en la creación de una función lectura y una de escritura para
integrarlas en una librería y sea de fácil implementación.
V. Alcance
Las fechas límite para el inicio y culminación del proyecto fueron de mayo
2 a agosto 31 prácticamente 3 meses, definimos el alcance hasta la creación de
una librería con la particularidad de la comunicación bidireccional por medio de
un puerto TCP. También se definió que la librería tiene que ser creada en
lenguaje PYTHON.
Para la primera etapa que fue la investigación así que asignamos dos
semanas ya que era mucha información para digerí, como protocolos de
comunicación, redes industriales., procedimos con implementar y poner a prueba
lo aprendió con ayuda de LabView ya que es muy visual y podemos ver que es
lo que está sucediendo paso a paso, a esta parte le asignamos cuatro semanas,
cabe mencionar que fue el paso con más importancia ya que es donde se
definiría si funcionar o no.(En la imagen 1.0 podemos observar parte del código
en LabView que sirvió en las pruebas)

Imagen 1.0
Otro factor por el cual se asignó tanto tiempo fue porque es una etapa
experimental. Finalmente se unen las primeras dos etapas, la tercera fue la
creación de un programa donde pasamos del código a bloques de LabView a
código escrito en Python, como ya se podía leer y escribir en la variable desde
LabView a esta última etapa se le asigno únicamente una semana ya que solo
era interpretarlo de la lógica a bloques, el único inconveniente fue que se tuvieron
que programar en Python algunos sub VI hechos por national instruments esto
le dio un grado más de dificultad.
Final mente teniendo el programa funcionando en PYTHON se creó una
función de lectura y una de escritura, para hacer una librería con estas dos
funciones, ampliando su rango de uso.
VI. Análisis de riesgo
En este apartado se pude decir que no se tuvieron riesgos puesto antes
de iniciar con el proyecto se contaba con todos los recursos, también el tiempo
era bastante holgado para cumplir con todas las tareas que se establecieron en
la planeación. Gracias a estos puntos el proyecto se pudo culminar con dos
semanas antes de que terminara el tiempo límite.
VII. Fundamentación teórica
Para hacer la recopilación de información se usaron fuentes como
manuales de usuario, protocolos entre otros, los conceptos que vamos a
presentar a continuación son con los que se trabajó de una manera resumida

7.1 Protocolo Ethernet/IP


Es un sistema de comunicación adecuado para su uso en entornos
industriales. EtherNet / IP permite que los dispositivos industriales intercambien
información de aplicaciones de tiempo crítico. Estos dispositivos incluyen
dispositivos de E / S simples como sensores / actuadores, así como dispositivos
de control complejos como robots, controladores lógicos programables,
soldadores y controladores de proceso.
EtherNet / IP utiliza CIP (Protocolo de control e información), la red común,
el transporte y las capas de aplicaciones también compartidas por ControlNet y
DeviceNet. Luego, EtherNet / IP hace uso de la tecnología Ethernet y TCP / IP
estándar para transportar paquetes de comunicaciones CIP. El resultado es una
capa de aplicación abierta y común sobre protocolos abiertos y muy populares
de Ethernet y TCP / IP.
EtherNet / IP proporciona un modelo de productor / consumidor para el
intercambio de datos de control de tiempo crítico. El modelo de productor /
consumidor permite el intercambio de información de aplicación entre un
dispositivo de envío (por ejemplo, el productor) y muchos dispositivos de
recepción (por ejemplo, los consumidores) sin la necesidad de enviar los datos
múltiples veces a múltiples destinos. Para EtherNet / IP, esto se logra haciendo
uso de la red CIP y las capas de transporte junto con la tecnología IP. Muchos
dispositivos EtherNet / IP pueden recibir la misma información de aplicación
producida desde un solo dispositivo productor.
(CIP Common Specificaction volumen 1, 2001)
7.2 Protocolo CIP
El Protocolo Industrial Común, CIP (del inglés Common Industrial
Protocolo), desarrollado por las asociaciones ODVA y ControlNet International,
tiene como objetivo proveer una capa de aplicación, de acuerdo con el modelo
OSI, común para diferentes redes. Actualmente, tres son las redes que lo han
implementado, a saber, DeviceNet, ControlNet y EtherNet/IP. En el presente
capítulo se estudia la relación que existe entre el protocolo CIP con el objetivo
de sentar las bases del estudio de las redes DeviceNet y ControlNet en particular.
(CIP Common Specificaction volumen 1, 2001)

7.3 Protocolo TCP


TCP es un protocolo basado en flujo. Está permitido enviar casi cualquier
paquete IP de longitud que elija. Por ejemplo, si dos mensajes encapsulados
consecutivos pasan a una pila TCP / IP, la pila TCP / IP puede elegir colocar
ambos mensajes encapsulados en una trama Ethernet. Alternativamente, puede
optar por colocar la mitad del primer mensaje en la primera trama Ethernet y todo
el resto en la siguiente trama Ethernet.

(EtherNet/IP Adaptation of CIP Specification, 2005)


7.4 PLC

Un autómata programable industrial (API) o Programable logic


controller (PLC), es un equipo electrónico, programable en lenguaje no
informático, diseñado para controlar en tiempo real y en ambiente de
tipo industrial, procesos secuenciales. Un PLC trabaja en base a la
información recibida por los captadores y el programa lógico interno,
actuando sobre los accionadores de la instalación.

El PLC por sus especiales características de diseño tiene un campo de


aplicación muy extenso. La constante evolución del hardware y software amplía
constantemente este campo para poder satisfacer las necesidades que se
detectan en el espectro de sus posibilidades reales. Su utilización se da
fundamentalmente en aquellas instalaciones en donde es necesario un proceso
de maniobra, control, señalización, etc., por tanto, su aplicación abarca desde
procesos de fabricación industriales de cualquier tipo a transformaciones
industriales, control de instalaciones, etc.
7.5 Raspberry PI 3

Raspberry Pi, es un «es un ordenador de tamaño de tarjeta de crédito


que se conecta a su televisor y un teclado». Es una placa que soporta varios
componentes necesarios en un ordenador común. Es un pequeño ordenador
capaz, que puede ser utilizado por muchas de las cosas que su PC de
escritorio hace, como hojas de cálculo, procesadores de texto y juegos.
También reproduce vídeo de alta definición, apuntan en la página web del
producto.

La placa, que antes era más pequeña que una tarjeta de crédito
tiene varios puertos y entradas, dos USD, uno de Ethernet y salida HDMI.
Estos puertos permiten conectar el miniordenador a otros dispositivos,
teclados, ratones y pantallas. También posee un System on Chip que
contiene un procesador ARM que corre a 700 MHz, un procesador gráfico
VideoCore IV y hasta 512 MG de memoria RAM. Es posible instalar
sistema operativo libres a través de una tarjeta SD.
Actividades Inicio Final semanas 1 semanas 2 semanas 3 semanas 4 semanas 5 semanas 6 semanas 7 semanas 8 semanas 9 semanas 10 semanas 11 semanas 12
investigacion protocolo IP 02/05/2018 09/05/2018
investigacion protocolo CIP 09/05/2018 16/05/2018
VIII. Plan de actividades

investigacion protocolo TCP 16/05/2018 20/05/2018


Comunicarse con el PLC desde LabView 20/05/2018 31/05/2018
Interpretar respuesta del PLC 31/05/2018 10/06/2018
Leer la variable del PLC desde LabView 10/06/2018 13/06/2018
Escribir sobre la varieble desde Labview 13/06/2018 16/06/2018
Instalar maquina virtual con python 16/06/2018 17/06/2018
Aprender el lenguaje 17/06/2018 05/07/2018
Trasncribir el programa en python 05/07/2018 25/07/2018
hacer pruebas 25/07/2018 31/07/2018
IX. Recursos materiales y humanos
Dentro de los recursos humanos se encuentra el DR. Jorge Alberto Soto
quien es el jefe de proyecto y se encarga de facilitar materiales y autorizaciones
del proyecto, también esta Luis Alberto Carmona quien es un estudiante de
posgrado (Maestría) y es quien inicial mente comenzó con el proyecto y por
ultimo Omero Nicolás Olalde Mendoza un practicante de la Universidad
Tecnológica de Querétaro que viene de la carreara de Automatización y a quien
fue asignado el proyecto de la creación de una librería que permita la
comunicación vía TPC con cualquier PLC de rockwell.

Recursos Humanos Puesto


DR. Jorge Alberto Soto Jefe de Proyecto
Luis Alberto Carmona Estudiante de maestría
Omero Nicolás Olalde Mendoza Practicante

En los recursos materiales podemos notar que es una lista muy pequeña
puesto que el proyecto de basa en programación y pruebas en primera instancia
podemos ver que es una laptop, fue con la que se realizó la programación
después las Raspberry que fue la tarjeta donde se cargó el código y se conectó
la pantalla y por ultimo un PLC de la marca Allen Bradley que nos ayudó con las
pruebas de comunicación.

Recursos Materiales Función


Laptop Sirvió para escribir código
Raspberry Fue en la placa que se cargó el código
PLC Allen Bradley Sirvió para hacer pruebas de comunicación
X. Desarrollo del proyecto
Se comenzó con la programación del proyecto el cual consiste primera
mente en establecer la comunicación con el PLC vía TCP esto lo hicimos
mandando la dirección IP al puerto TCP que ya se había establecido, una vez
establecida la comunicación lo primero que el programa ara es mandar un saludo
el cual corresponde a una trama de datos de 32 bits, esto para saber si el PLC
está en condicione de leer y escribir sobre una variable. (como se muestra en la
imagen 1.1)

Imagen 1.1
Una vez estado en línea con el PLC y a ver mandado el primer mensaje
lo que sigue es esperar la primera respuesta, teniendo la primera respuesta la
convertimos en una cadena tipo lista para poder identificar la respuesta y saber
qué es lo que está sucediendo en la comunicación, para esto comparamos la
respuesta del PLC con la que el manual EIP-CIP-V1-1.0 nos dice que debe ser.
Ahora podemos mandar nueva mente una cadena de datos con el nombre de la
variable, con esto nos referimos al nombre de variable que se le dio en el plc en
este caso la variable se llamó nico por cuestiones prácticas. (Esto lo podemos
observar en la imagen 1.2)

Imagen 1.2

En esta parte del programa es cuando podemos decidir qué es lo que queremos
hacer si leer una variable o escribir sobre ella. para hacer cualquiera de estas
dos tenemos que mandar una trama de datos según nos lo indique el protocolo
si de comunicación en este caso daremos el ejemplo de lectura. Como podemos
ver en la (imagen 1.3) es que concatenamos una serie de números los cuales
los sacamos del manual, al mandar esta trama el plc sabe que es una petición
de lectura por consecuencia el mismo responderá con una cadena en la cual
viene oculta la respuesta.

Imagen 1.3
10.1 Diagrama de flujo
En la (imagen 1.4) representamos en un diagrama de flujo, nos sirvió de guía en
la cual nos basamos para realizar la programación, con base en el diagrama
programamos paso a paso ya que en este especifica los requisitos para hacer o
no hacer o tomar deserciones si las respuestas son ciertas o falsas.

Imagen 1.4
XI. Resultados obtenidos
(Creación de un programa en Python con la capacidad de leer y escribir
sobre una variable vía TCP con cualquier PLC de la marca ROCKWELL) fue el
alcance que se estableció en el proyecto y la usamos como un parámetro para
evaluar el resultado, en este caso el resultado final únicamente podía tener dos
resultados funcionaba o no funcionaba.
Los resultados fueron más que satisfactorios, se logró completar el
proyecto en su totalidad, aunque tuvo sus dificultades.
Nos orgullece decir que no hubo resultados negativos puesto que salió muy bien
sin embargo si hay puntos donde puede haber habido mejoras para hacer más
óptimo el proceso por el cual se sometió el proyecto.
En las siguientes dos imágenes podemos apreciar que el valor que se escribió
en el PLC se puedo leer con facilidad y exactitud en PYTHON esto hace que
nuestros resultados sean favorables contundentemente.

Control de etiquetas el PLC


Respuesta final modo lectura en python
XII. Conclusiones
La diferencia entre el objetivo y el resultado es nula, ya que se cumplió en tiempo
y forma. Sin embargo, hay algunos puntos que se pudieron hacer diferentes o se
pueden hacer diferentes a futuro ya teniendo esta información como por ejemplo
es programando por método de máquinas de estado ya que la lógica se presta
puesto es muy metódica la programación. Siguiendo este consejo el programa
se aria más fácil de leer y de fácil comprendimiento.
Bibliografía

(Bradley)
(CIP Common Specificaction volumen 1, 2001)
(Cobo)
(EtherNet/IP Adaptation of CIP Specification, 2005)