Está en la página 1de 20
Instituto Tecnológico de Estudios Superiores de Monterrey Campus Tampico Asignatura: REDES INDUSTRIALES LABORATORIO DE REDES Profesores:

Instituto Tecnológico de Estudios Superiores de Monterrey Campus Tampico

Asignatura:

REDES INDUSTRIALES LABORATORIO DE REDES
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

5

Etapa

LabVIEW

14

Etapa PLC

18

 

Conclusión y resultados

20

Trabajos

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”.

Desarrollo Etapa OPC Para abrir el Programa OPC server, hay que entrar al icono de inicio

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 2. Página principal de NI OPC Servers.

Imagen 3. Selección de CHANEL en 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

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 4. Selección del puerto de comunicación en NI OPC Servers En la página principal del

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.

Imagen 6. Selección del modelo de PLC en el menú de “Add a Devise”

Imagen 6. Selección del modelo de PLC en el menú de “Add a Devise” Imagen 7.

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.

Una vez dado de alta el dispositivo, tenemos que agregar las TAG´s o Variables que deseamos

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.”

Una vez dado de alta el dispositivo, tenemos que agregar las TAG´s o Variables que deseamos

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.

Una vez teniendo el TAG se procede con abrir LabVIEW y se le especifica la información

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.

Se abre un nuevo Proyecto, al cual se le va a agregar una nueva biblioteca I/0

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

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 12. Propiedades de Variables en LabVIEW Una vez dado de alta la variable esa se

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.

Etapa LabVIEW En esta etapa se captura y procesa el código de barras para luego enviar

Imagen 14. Diagrama de bloques del VI de lectura de código de barras

Etapa LabVIEW En esta etapa se captura y procesa el código de barras para luego enviar

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.

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

Imagen 16. Diagrama de bloques del VI que lee el código de barras y se comunica con el PLC.

Imagen 16. Diagrama de bloques del VI que lee el código de barras y se comunica

Imagen 17. Botones para control manual vía OPC en el diagrama de bloques

Imagen 16. Diagrama de bloques del VI que lee el código de barras y se comunica

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.

  • 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.

21. Indicadores booleanos, tipo LED que indican en el panel frontal el estado de las salidas

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.

En la siguiente imagen se muestra la programación en lenguaje escalera, que se realizó para controlar

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.

En la siguiente imagen se muestra la programación en lenguaje escalera, que se realizó para controlar

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.