Instituto Tecnológico de Estudios Superiores de Monterrey
Campus Tampico
Asignatura:
REDES INDUSTRIALES
LABORATORIO DE REDES
Profesores: Dr. Virgilio Vásquez López
Ing. Juan Gabino Díaz
Proyecto Final “Comunicación OPC-Siemens-LabVIEW”
Mario Mariño Chaix 508024
Omar A. Flores 510484
Carlos Zepeda 509914
Armando Vázquez 508371
Fecha de entrega: 14 / mayo / 11
Tabla de Contenido
Introducción ........................................................................................................................... 3
Objetivo .................................................................................................................................. 3
Marco Teórico ......................................................................................................................... 3
OPC ...................................................................................................................................... 3
Requerimientos ...................................................................................................................... 4
Desarrollo ............................................................................................................................... 5
Etapa OPC............................................................................................................................ 5
Etapa LabVIEW .................................................................................................................. 14
Etapa PLC .......................................................................................................................... 18
Conclusión y resultados ........................................................................................................ 20
Trabajos futuros.................................................................................................................... 20
Introducción
El siguiente trabajo pretende ser una guía paso a paso en la que se explica la configuración
de software y hardware del trabajo realizado en el semestre, que consiste en un programa
en LabVIEW que procesa un código de barras adquirido como imagen por cámara web
USB que envía órdenes a un PLC a través de un cliente OPC.
Las implicaciones de este trabajo son que al tener la comunicación por OPC entre
computadora y PLC se pueden lograr procesamientos de información relativamente
complejos e incluso vincular la parte administrativa con la operativa.
Objetivo
El objetivo del proyecto es hacer una conexión vía Ethernet usando el protocolo OPC
como comunicación entre LabVIEW y el PLC Siemens S7-300. La conexión se hará con el
objetivo de hacer reaccionar el PLC simulando un proceso industrial real manipulándolo
desde una interface del LabVIEW, que será representado por el encendido de un motor de
CA. La interface de LabVIEW lee un determinado código de barras adquirido mediante el
módulo de Vision Acquisition del programa LabVIEW y dependiendo del código leído es la
instrucción enviada al PLC.
Marco Teórico
OPC
El OPC es un protocolo de comunicación, con el cual es posible tener comunicación con
diversos tipos de fabricantes tanto de software así como hardware. Este tiene la
capacidad de obtener y enviar datos en tiempo real
Una red que está ligada a un OPC posee una arquitectura con tres partes:
1. Aplicación que genera y contiene los datos que deseamos, este puede ser un PLC,
una Base de Datos, fichero Excel, etc.
2. Servidor OPC específico el cual se encargue de reconocer los datos de la aplicación
este Hardware o Software. Estos existen de diferentes marcas en el mercado, pues
cada tipo de aplicación puede tener su propio OPC, o incluso existen empresas que
se dedican a la realización de estos OPC para cualquier tipo de software o
hardware.
3. Un Cliente OPC el cual tenga la comunicación con un servidor OPC. Este puede ser
una aplicación tal como Lab View, un sistema SCADA o Visual Basic.
Cualquiera puede ser un programador de OPC ya que algunos son software libre, el cual
puede ser descargado de diversos medios.
Requerimientos
Hardware Software
PLC S7-200 LabVIEW con módulo vission assitant y driver DAQ para cámaras web y con módulo Datalogging and Supervisory Control (DSC) y NI OPC servers.
Computadora SIMATIC
Cámara web USB
Desarrollo
Etapa OPC
Para abrir el Programa OPC server, hay que entrar al icono de inicio y buscar el programa
“NI OPC Servers”.
Imagen 1. Acceso a NI OPC Servers
Una vez abierto el programa, uno se encuentra con la siguiente página principal:
Imagen 2. Página principal de NI OPC Servers.
Imagen 3. Selección de CHANEL en NI OPC Servers
Imagen 4. Selección del puerto de comunicación en NI OPC Servers
En la página principal del programa, en la parte de CHANEL ahí se habré y se escoge el
protocolo de comunicación. Existen muchos en este caso se escogerá SIEMENS Ethernet
esto hará que el OPC server pueda entender el lenguaje siemens. Posterior mente
seleccionas el puerto de comunicación en este caso es la tarjeta de red de la PC.
Una vez dado de alta el protocolo de comunicación se procede con agregar un dispositivo.
Se hace clic la sección “Add a Device”, se procede con especificar el modelo de PLC que se
va a ocupa, en seguida se especifica la dirección IP del Dispositivo en el siguiente menú.
Imagen 5. Ubicación de “Add a Device” en NI OPC Servers
Imagen 6. Selección del modelo de PLC en el menú de “Add a Devise”
Imagen 7. Selección de dirección IP del PLC en el menú de “Add a Devise”
Una vez dado de alta el dispositivo, tenemos que agregar las TAG´s o Variables que
deseamos leer o manipular. El TAG puede ser un BIT, WORD, Etc. Cuando un TAG está
dado de alta, LabVIEW ya puede leer el dato y procesarlo.
Imagen 8. Ubicación del Menú para Seleccionar una TAG
Al darle clic en una “New TAG”, se abre un menú de propiedades en donde hay que
especificarle el nombre de la TAG y su dirección. La dirección que se le da a la TAG es la
misma que utiliza el PLC, por ejemplo “I0.0 , M0.3, Etc.”
Imagen 9. Propiedades de la TAG.
Una vez teniendo el TAG se procede con abrir LabVIEW y se le especifica la información
que queremos jalar desde el OPC Server.
Imagen 10. Página Principal de LabVIEW.
Se abre un nuevo Proyecto, al cual se le va a agregar una nueva biblioteca I/0 (entradas y
salidas). Para esto es necesario hacer clic derecho en “My Computer” y seleccionar OPC
server. Ya teniendo OPC server se especifica el archivo con el que se desea trabajar.
Imagen 11. Selección de Biblioteca OPC en el nuevo proyecto.
Una vez dado de alta la biblioteca con la información del OPC, será necesario buscar las
variables que se desean manipular las cuales están en la biblioteca del OPC. Para ello se da
clic derecho en la “nueva biblioteca”, y selecciona “New Variable”. Inmediatamente se
abre una nueva página de propiedades de variable, aquí hay que especificar el nombre de
la variable, su tipo, y la dirección. La dirección es la de la biblioteca del OPC que ya se
había dado de alta.
Imagen 12. Propiedades de Variables en LabVIEW
Una vez dado de alta la variable esa se arrastra con el mouse al “Front Panel”, ya estando
ahí la variable es manipulada por el programa que se desee.
Imagen 13. Variable arrastrada al Front Panel para ser Controlada.
Etapa LabVIEW
En esta etapa se captura y procesa el código de barras para luego enviar una órden al PLC.
A continuación se muestra el programa que solamente realiza la captura de la imagen a
través de una cámara web USB y despliega el código leído, posteriormente se muestra
cómo se vincula este VI con el cliente OPC.
Imagen 14. Diagrama de bloques del VI de lectura de código de barras
Imagen 15. Panel frontal del VI de lectura de código de barras.
A continuación se describe a detalle el funcionamiento del VI de lectura de código de
barras.
1. IMAQ Create. Crea un espacio de memora temporal para alojar la imagen capturada en buffer y poder trabajar con ella.
Entradas: constante tipo string con la que se da nombre a esta imagen. Salidas: nueva imagen creada.
2. IMAQ USB Init. Crea una sesión con la que se puede trabajar con una cámara web por usb.
Entradas: constante string en la que se indica el nombre la cámara usb con la
que se va a trabajar. Este nombre es el que le da Windows una vez que se ha instalado de manera correcta. Salidas: sesión IMAQ USB creada. Error.
3. IMAQ USB Snap. Toma una fotografía con la cámara web indicada en el (2) y la guarda en el espacio reservado especificado en (1).
Entradas: constante string en la que se indica el nombre la cámara usb con la que se va a trabajar. Este nombre es el que le da Windows una vez que se ha instalado de manera correcta. Error. Salidas: sesión IMAQ USB creada. Error.
4. IMAQ USB Close. Finaliza la sesión creada en (2). Entradas: la sesión creada en (2). Salidas: sesión IMAQ USB creada; error.
5. IMAQ Write File 2. Guarda la imagen en un archivo especificado en la constante File Path en el formato especificado en Image.
Entradas: Image. Constante que especifica el formato en que se guardará la imagen capturada. ROI. Constante que especifica la ubicación y nombre donde se guarda el archivo capturado. Barcode Type. Aviso de error de los demás VI relacionados con la función de captura de imagen.
6. IMAQ Create. Crea un espacio de memora temporal para alojar la imagen capturada en buffer y poder trabajar con ella.
Entradas: constante tipo string con la que se da nombre a esta imagen. Salidas: nueva imagen creada.
7. IMAQ ReadFile. Abre y carga la imagen del archivo especificado en la constante File Path con formato especificado en Image en el espacio indicado en (6).
Entradas: Image. Constante que especifica el formato en que se guardará en buffer la imagen leíada. File Path. Constante que especifica la ubicación y nombre del archivo a leer. Error. Aviso de error de los demás VI relacionados con la función de lectura de la imagen
8. Nodo de propiedad de Imagen. En este nodo se da de alta la región de interés (ROI). Entradas: ROI. Matriz de definición.
Error. Aviso de error de los demás VI relacionados con la función de lectura de la imagen
9. Nodo de propiedad de Imagen. En este nodo se definen las coordenadas y color de la ROI.
Entradas: Matriz de definición de color y matriz de definición de coordenadas. 10. Lector de código de barras. Decodifica la información en el código de barras en la
imagen y entrega el código, información adicional (depende del código, no todos tienen implementada esta particularidad) y checksum que califica la calidad de la información decodificada (depende del código el algoritmo con el que se genera este número).
Entradas: Image. Imagen de 8 bits capturada en el buffer donde está el código de barras. ROI. Constante que especifica las coordenadas y color de la región de interés donde contiene el código de barras. Barcode Type. Constante Integer32 que define el tipo de código de barras a leer. Error. Aviso de error de los demás VI relacionados con la función de captura de imagen.
Salidas: Código. String que contiene la información decodificada. Información extra. String que, dependiendo del tipo de código, contiene la información extra incluida. En el código usado (2 de 5) no hay información extra. Checksum. String con un número que representa la calidad de la información decodificada.
11. Indicador tipo string. Indicador en el panel frontal que despliega el código leído 12. Convierte el array a escalar la información extra. 13. Indicador tipo string. Indicador en el panel frontal que despliega el checksum 14. Concatenador de array. Une todos los string en uno solo, desplegando la información
en conjunto. 15. Indicador tipo string. Indicador en el panel frontal que despliega el código,
concatenado con la información extra y el checksum. 16. Delete buffer image. Borra el espacio de memoria reservada en (6) en la que se
manipuló la imagen. 17. Image indicator. Indicador de imagen, es una pantalla donde se despliega la imagen
procesada y la ROI.
Ahora se muestra el VI que utiliza la información leída del código de barra para enviar
órdenes al PLC. Básicamente se compara el valor del código de barras con constantes que
representan acciones definidas previamente, en este caso el encendido y sentido de giro
del motor, y que el valor booleano obtenido se envía a las TAG definidas en el cliente OPC.
En las siguientes imágenes solamente se explican los VI’s agregados al programa anterior,
por lo que se continua con la numeración de arriba.
Imagen 16. Diagrama de bloques del VI que lee el código de barras y se comunica con el PLC.
Imagen 17. Botones para control manual vía OPC en el diagrama de bloques
Imagen 18. Panel frontal que muestra el código de barras, la ROI y el estado de los TAG con indicadores booleanos.
18. Variable de entrada direccionada a la variable inicio en el PLC 19. Retraso de tiempo necesario para evitar que se envíen 2 instrucciones
simultáneas al PLC. 20. Etapa de Comparación, en ella se toma la decisión de acción tomar dependiendo
del código leído y la variable del PLC cableado. Es decir, que cada comparador está cableado a una variable específica y solo se activa ésta si el valor leído en el código de barras concuerda con la constante cableada al comparador.
21. Indicadores booleanos, tipo LED que indican en el panel frontal el estado de las salidas de los comparadores.
22. Variables del PLC dadas de alta en el cliente OPC. 23. Botones que gobiernan las variables dadas de alta en el OPC, con el fin de tener
control manual de las mismas por si se llegara a necesitar.
Etapa PLC
Se programó en el STEP-7 una secuencia de un Esclavo Micromaster 420. Este esclavo se
conectó al PLC mediante una red PROFIBUS como puede verse en la siguiente imagen.
Imagen 19. Configuración del hardware del proyecto, que incluye una conexión PROFIBUS con el MICROMASTER.
Aquí se puede observar el Micromaster anclado a la línea que indica la red PROFIBUS,
posteriormente se añade a la configuración del Micromaster el PPO tipo 3 para poder leer
y escribir parámetros, pues solo se usan 2 palabras para la comunicación.
En la siguiente imagen se muestra la programación en lenguaje escalera, que se realizó
para controlar nuestro esclavo Micromaster, además de la programación de los bloques
que hacen que se encienda y gire en ambos sentidos.
Imagen 20. Diagrama escalera empleado
Aquí se muestra el uso de memorias, que son las que se utilizaran para la comunicación a
labview mediante el OPC.
Imagen 21. Tabla de símbolos del programa
Conclusión y resultados Se logró el intercambio de datos entre software de diferentes compañías que con
diferentes protocolos gracias al uso de OPC que fungió como mediador para lograr la
comunicación entre LabVIEW y el PLC Siemens. La intención de hacer este proyecto es la
de experimentar con soluciones que sirvan en el ámbito industrial donde existen
dispositivos de diferentes marcas o de diferentes tipos de comunicación que no se pueden
comunicar directamente. El uso de OPC puede significar reducción de costos de software y
enlazar bases de datos de fuentes diversas que no se hayan considerado. Por ejemplo,
bases de datos de almacén con ingeniería y producción con el fin de que las órdenes de
trabajo y el seguimiento a las mismas ocurran de manera continua.
Para apreciar el funcionamiento del proyecto refiérase al video anexo.
Trabajos futuros Se propone que el trabajo aquí realizado se continúe a futuro para convertirse en un
sistema que automáticamente ejecute procesos de producción completos. La idea es que
se impriman órdenes de trabajo con códigos de barras que al ser escaneadas inicien
rutinas de producción en una celda de manufactura y entreguen piezas terminadas.
Sería conveniente analizar la manera en que actualmente opera la celda y buscar la
manera de aprovechar el escáner de códigos de barras con que ya cuenta actualmente.
Aunque se especula que los códigos de barras unidimensionales, como el empleado en
este trabajo, no sean aptos para el desarrollo futuro por la poca cantidad que se puede
guardar en ellos. Por eso se recomienda buscar emplear códigos de barra bidimensionales,
que por cierto también reconoce LabVIEW.
Además, se recomienda investigar integrar en este proyecto dispositivos móviles con
cámara como los Smartphone en los que se pueden bajar apps de lectura de códigos de
barra. Así se amplía el uso práctico de esta aplicación a personal en campo. Faltaría ver la
manera de lograr esta integración, si por SMS, wifi, bluetooth o algún otro canal.
Top Related