CONTACT INFORMATION
University: UNIVERSIDAD DE ANTIOQUIA / ANTIOQUIA UNIVERSITY
Team Members James Duque (2013) Email address: jamexzduque@gmail.com
Cesar Brito (2013) Email address: celbrive1@gamil.com
Faculty Advisers: Orlando Carrillo Email address: Carrillo@udea.edu.co
Submission Language español
PROJECT INFORMATION
Titulo / Title
Implementación de un sistema SCADA para un laboratorio de electrónica industrial / Implementation of SCADA system for industrial electronics lab
Descripción / Description
Se ha desarrollado un sistema SCADA para la Supervisión, Control de los dispositivos de campo que existen en un laboratorio de electrónica industrial. Nuestro sistema esta compuesto de dos PLC's Siemens S7-1200, dos variadores de velocidad Danfoss FC300, un Altivar serie 5 45-2, y un Altivar 31 para operar cuatro motores asincronos, y de un PLC siemens de la misma referencia y un sensor de flujo másico para controlar la apertura de una válcula para maniobrar el flujo de un compresor de aire.
Products
NI Software: LabVIEW 2012
Datalogging and Supervisory Control Module
NI OPC Servers
Data Dashboard NI for Ipad
Other Hardware: rs232 to rs485 converter (bidirectional)
PLC Siemens S7-1200 (3)
Altivar 31, Variable Speed Controllers for asynchronous motors.
Altivar 5 series 45-2, Variable Speed Controllers for asynchronous motors.
Danfoss FC300 (2)
Dwyer, Sensor de flujo másico.
Profesional Discover, Compresor de aire.
Asynchronous motors Siemens (4)
Laptop
Structure of System
.
The Challenge
Hoy en día se ha hecho demasiado vital la existencia de una aplicación que abarque la mayor parte del control en un proceso, y para conveniencia de este, que aporte significantes ventajas a la operación del elemento final en cuestión. Saciando el nivel de tecnología que existe en la actualidad, es importante implementar este sistema por los menesteres del laboratorio de electrónica industrial, como símbolo de vanguardia. Con base a esta idea queriamos desarrollar una aplicación la cual prestara el control de todos los dispositivos a distancia sobre una misma interfaz de tres maneras diferentes: desde cualquier Laptop con la aplicación ejecutandose, desde cualquier laptop conectada a una red lan, accediendo a la interfaz por medio de un navegador web aprovechando la herramienta de labview WEB SERVER, y desde un Ipad con la aplicación data dashboard creando una nueva interfaz.
The Solution
Para realizar la interfaz de control y supervisión del proceso utilizamos como herramienta Labview debido a la versatilidad que ofrece en las funciones implementadas.
El control del proceso se puede realizar de diferentes maneras tales como son desde el PC servidor, un pc que se conecte a la misma red del pc servidor o mediante un IPAD que también se conecte en la misma red.
El proyecto general creado en LabView esta conformado por cuatro VIs que comprenden las tres redes y el menú principal, dos SubVIs en donde uno es para armar las tramas de los Danfoss y tres librerías para las variables compartidas que permiten la comunicación con el Ipad y con los distintos PLCs mediante el Servidor OPC.
Archivos del proyecto en LabVIEW
La intensión de este menú es poder acceder al control de cada una de las subredes (Red de variadores Danfoss, red de variadores altivar o red de control para flujo másico) con solo accionar uno de los botones correspondiente a la subred deseada.
Menú principal del proyecto
Se tiene una estructura Flat Sequence, en donde el primer frame tiene como objetivo poner a correr cada uno de los otros programas que comprenden el proyecto y minimizarlos hasta que posteriormente sean llamados. El segundo frame contiene un While Loop el cual tiene la tarea de maximizar el programa que sea invocado y minimizar el del menú principal. Este control tiene la alternativa de parar la marcha cuando se presiona el botón de Stop.
Programación del Menú principal
En el archivo main_danfoss.vi se hace uso de la estructura Flat Sequence dividido en tres frames. En el primer frame se inicializa todos los valores requeridos para el funcionamiento deseado del proyecto, como por ejemplo volver invisibles algunos botones y la configuración para generar User Events sobre la variable Text, esto último con el fin de reconocer la acción requerida tanto por los botones del panel como por el control desde el IPad.
Inicialización de las Variables
Dentro del segundo frame se encuentra un While loop donde se realiza todo el procedimiento necesario para cumplir con las actividades solicitadas. Todo el control de las acciones se realiza por medio de un Even Structure compuesto por varios case, donde se reconocen todos los eventos generados cuando se producen accionamientos sobre los botones del panel local y otro tipo de evento que ocurre cada cierto tiempo llamado Timeout Event. Dentro de este case se genera la trama para realizar la petición de la velocidad actual al variador, este hecho se realiza cada 150ms debido a que se tiene en cuanta el tiempo al que está configurada la actualización de las variables con el PLC y el tiempo que tarda el variador en responder.
Caso Timeout de la Estructura Evento
Dentro de este también se realiza la tarea de generar user envents cuando se detecta un cambio en las variables compartidas, gracias a estas se puede realizar la comunicación con el IPad, ya que al cambiar el valor desde una dispositivo exterior no se genera ningún evento dentro del programa como sucede en el caso de realizar la misma acción dentro del panel local.
En el case “Text: User event” es donde se define el valor de los parámetros que van a componer la trama a enviar, dependiendo del variador que se haya seleccionado y el tipo de control que se desea realizar. Los parámetros que aquí se modifican son: la dirección del variador dentro de la red (ADR), la función que realizará el variador (PCD2) y el valor referencia de la frecuencia que debe alcanzar (PCD2), estos valores son llevados al SubVI en donde se armara la trama con todos los parámetros en el orden adecuado.
Caso para eventos usuarios de la variable Text
Las entradas configuradas para dicho SubVI son: La dirección del variador (ADR), El parámetro de petición (PKE)(en este caso solo será la velocidad), la función a realizar (PCD1) y la referencia de la frecuencia que debe alcanzar (PCD2). La salida de este bloque es la trama final a enviar, este bloque solo se ejecuta en caso de que se haya solicitado un tipo de control o petición sobre los variadores.
Configuración de salidas y entradas de las tramas del Danfoss
La comunicación de las tramas entre LabVIEW y el PLC se realiza almacenando o leyendo los sectores de la cadena de caracteres en variables tipo DWord debido a que al realizar este procedimiento con variable tipo String, si se tiene al menos un campo con un valor 0x00, se presentan conflictos y la trama no es enviada o recibida en su totalidad.
Partición y concatenado de las tramas Danfoss
Con la respuesta de los variadores Danfoss se genera una visualización del estado y la velocidad de dicho variador en la interfaz grafica. Este proceso se realiza extrayendo los bytes correspondientes de la trama respuesta a dichos parámetros (PCD1 y PCD2 respectivamente) y el valor obtenido de cada respuesta es llevado al indicador que le corresponde.
Configuración para la respuesta del Danfoss
Por ultimo en el tercer frame solo se encuentra la configuración necesaria para finalizar la secuencia del User Events.
Finalización del programa
Implementación del formato de tramas de control y/o lectura/escritura en Labview para el variador Danfoss FC300
En LabVIEW se diseñó un bloque destinado únicamente a la creación de las tramas para el control y el sensado de los variadores Danfoss. Cuando se desea realizar una acción sobre el motor se almacena el valor del parámetro correspondiente en el campo PCD1 y la referencia a la cual se desea mover el motor en PCD2. Adicional a esto se están enviando tramas de lectura periódicamente, preguntando por la velocidad actual del motor, en estos requerimientos PCD1 y PCD2 serán iguales a 0.
Un pantallazo del bloque diseñado y la creación del Checksum BCC se muestran a continuación:
Armado de tramas en LabVIEW para Danfoss
La trama está conformada por los bytes STX, LGE, ADR, PKE, IND, PKEalto, PKEbajo, PCD1, PCD2 y BCC donde los valores de ADR, PCD1 y PCD2 son extraídos desde la parte exterior a este bloque, los cuales varían dependiendo del variador el cuál se desee controlar y de la función Arrancar, Invertir o Parar que se elija.
En el ciclo For que se encuentra en la parte inferior se calcula el checksum de la trama, en él se aplica una operación XOR iterativa hasta llegar al último byte de la trama, para esto se hace uso de shift registers de la programación de LabVIEW con el fin de acumular los resultados del ciclo actual y usarlos en el siguiente ciclo. Al final se concatena el resultado del checksum al resto de la trama, convirtiéndolo primero al formato hexadecimal, y se almacena la trama completa en una variable la cual está conectada a una salida de este SubVI.
Para llevar a cabo el control requerido por el usuario en este menú, se trabaja bajo la misma distribución de código del Menú Danfoss, contando con una estructura Flat Sequence compuesta de tres frames, el primero para las acciones de inicialización, el segundo donde se atiende las solicitudes, y por último en el tercer frame se realiza todo el proceso y los cálculos para obtener el control correspondiente que se aplicará sobre los variadores.
Programa para control de los Altivar
La diferencia con mayor importancia radica en el procedimiento seguido al crear las tramas de control, debido a que los protocolos usados son diferentes.
La comunicación establecida con el variador Altivar 45-2 es vía RS232, y en la trama no se hace uso de un byte de dirección ni de control de errores a diferencia de la comunicación con el Altivar 31 que se realiza por medio de RS485 y si hace uso de estos bytes, razón por la cual cambia la distribución en la trama.
Armado de trama para la frecuencia, Altivar 31
Armado de trama para el arranque, Altivar 5 45-2
Generar los bytes de control de error CRC16 para tramas de Altivar 31
Para obtener los bytes de control de error CRC16 se hace uso del SubVI Trama_Altivar.vi en LabVIEW, en el cual ingresa la trama a enviar con los parámetros de control ya establecidos correspondientes a la solicitud realizada. EL cálculo del valor de CRC16 se obtiene de la siguiente manera:
Programa para calcular el CRC16
Menú MAF
Este programa es mucho más simple a diferencia de los otros, debido a que solo se lleva el control de cuatro variables las cuales son: Iniciar, parar, setpoint y control en la cual se determina el tipo de lazo sea abierto o cerrado. Aun así la dimensión del programa se creció debido a la necesidad de agregar un Time loop, el cual es el responsable de la cómoda visualización de la variable que nos brinda el sensor de flujo másico, y dentro de este también hay propiedades de las clases de Vis, en donde se minimiza si es presionado el botón home.
Programa del menú MAF
Publicación de la Interfaz de Control en una página Web
LabVIEW permite la posibilidad de acceder a la interfaz de control desde otros dispositivos que se encuentren en la red, para esto se hace uso de un servidor web con la interfaz de control creada y se agregan a un listado los host o direcciones IP a las cuales se les asigna la posibilidad de ver y controlar la interfaz[11].
A modo de tutorial se muestra a continuación los pasos que se deben seguir:
Paso 1:
Ubicados en el proyecto de LabVIEW diseñado, vamos a la pestaña Tools y en ella se presiona Options...
Publicación del proyecto en una página Web paso 1
Paso 2:
Dentro de Options… se elige la opción Web server y se seleccionan los parámetros que se muestran en la siguiente imagen.
Publicación del proyecto en una página Web paso 2
Paso 3:
En Web server se agrega el archivo .vi del proyecto que se desea publicar y se agregan las direcciones IP de los usuarios que podrán observar, observar y controlar o denegar el acceso, al respectivo .vi, según se seleccione. La siguiente imagen ilustra mejor lo dicho.
Publicación del proyecto en una página Web paso 3
Paso 4:
Luego de haber configurado el Web server, vamos a la pestaña Tools nuevamente y seleccionamos la opción Web Publishing Tool…
Publicación del proyecto en una página Web paso 4
Paso 5:
En la ventana desplegada seleccionamos el VI que se desea publicar y presionamos next.
Publicación del proyecto en una página Web paso 5
Paso 6:
Luego aparece una opción para ponerle un título, una cabecera y una frase abajo a la página Web.
Publicación del proyecto en una página Web paso 6
Paso 7:
En la siguiente ventana aparece la opción de darle un filename, que dará la dirección URL de la página web, luego se presiona Save to Disk y se acepta la opción que aparezca.
Publicación del proyecto en una página Web paso 7
Paso 8:
En la última ventana que se despliega se presiona connect para abrir la página web. A partir de la dirección URL se accede a la interfaz desde un navegador web (google, mozila, internet explorer). Es importante mencionar que para controlar la interfaz desde otros computadores dentro de la red, no es necesario tener instalado LabVIEW, pero si se necesitan una serie de Plugins asociados a LabVIEW para poder acceder a la interfaz desde cada navegador. Se recomienda desactivar el firewall de Windows y el antivirus si se presentan inconvenientes para acceder a la interfaz de la página web.
Publicación del proyecto en una página Web paso 8
INTERFACE IMAGES (ipad)
LEVEL OF COMPLETION fully functional
TIME TO BUILD 3 MONTHS
Attach VI code (included)
VIDEO
https://plus.google.com/u/0/105567134737274372202/posts/58MKvbos3cK
Benefit of using LabVIEW and NI tools
Por que Labview es un software: fácil de aprender, fácil de usar, y fácil de implementar, en este se pueden desarrollar un sin fin de aplicaciones las cuales gracias a su basto número de módulos, se pueden asociar a muchos dispositivos debido a su programación, y a que se pueden conectar a estos de manera transparente. Gracias a que la programación es de manera gráfica, Labview hace que la experiencia de programar sea muy agradable.
Nota: Se debe redefinir la ruta del proyecto para la interactividad entres los main principales