January 7, 2015 Manuel Martinez

Enviar Datos a EXCEL desde un PLC Allen Bradley

En el siguiente tutorial veremos una sencilla manera de almacenar datos en una celda de Microsoft Excel, utilizando un MACRO para desplazar un nuevo valor hacia abajo, enviando los datos desde un PLC de la Marca Allen Bradley mediante Tópicos DDE. En este caso utilizaremos el software de simulación de PLC de la marca antes mencionada.

Los software’s que utilizaremos durante el desarrollo de este tutorial son:

  • RSLogix 500 10.00 (CPR 9) (Allen Bradley)
  • RsLinx Classic Gateway V2.57.00.14 (CPR9) (Allen Bradley)
  • RsLogix 500 Emulate V6.00.00.07 (CPR9) (Allen Bradley)
  • Excel 2007 (Microsoft)

Lo primero que tenemos que hacer es crear un nuevo programa en el software RSLogix 500, en este caso seleccionaremos un PLC Micrologix 1400, las siguientes figuras ilustran la manera de crear un nuevo programa.

Imagen1

Abrimos el software RSLogix500, en la ventana de File, Seleccionamos la opción de NEW, al seleccionar la opción new aparecerá una nueva ventana.

Para este ejemplo seleccionamos un micrologix 1400, y en el nombre del procesador lo nombramos D_EXCEL, presionamos el botón OK.

Imagen2

Una vez creado nuestro proyecto le damos guardar como.

En este ejemplo el proyecto se guardara en la unidad C:

Imagen3

Una vez guardado el proyecto procedemos ahora a hacer la conexión con el simulador de Allen Bradley.

Abrimos el software RSLogix Emulate 500

Imagen4

Seleccionamos la ventana de File después aparecerá una ventana donde buscaremos el proyecto guardado anteriormente con nombre D_EXCEL y presionamos botón abrir.

Imagen5

En la siguiente ventana asignamos un numero de estación a nuestro PLC virtual, en este caso se seleccionara 1 y presionamos el botón OK.

Imagen6

 

Imagen7

Para finalizar presionamos el botón RUN y presionamos minimizar el software RSLogix Emulate 500

Después de efectuar esos pasos abrimos el software RSLinx Classic Gateway y presionamos Boton RSWho

Imagen8

Se abrirá la siguiente ventana, después presionamos botón CONFIGURE DRIVERS

Imagen9

Se abrirá una ventana en la cual seleccionaremos la opción SLC 500 (DH485) Emulator driver, presionamos posteriormente botón Add New…

Imagen10

En la siguiente ventana se le puede cambiar el nombre no excediendo de 16 caracteres pero en este caso así le dejaremos el nombre al tipo de Driver que estamos configurando y presionamos botón OK.

Imagen11

Aparecerá la siguiente ventana en la cual podemos asignarle un numero de estación diferente a nuestra PC, o lo podemos dejar como nodo 00 y asignarle un nombre a la estación, en este caso así se dejara la configuración, presionamos solamente el botón OK.

Imagen12

Presionamos el botón + del driver que acabamos de configurar y vemos que aparece la conexión con el PLC virtual que hemos creado.

Imagen13

Completando los pasos anteriores ahora si podemos hacer la conexión hacia el PLC virtual con el programa que creamos al principio en el software RSLogix 500.

Abrimos el programa, seleccionamos la ventana COMMS y Presionamos La Sub-Ventana System Comms…

Imagen14

Seleccionamos el driver que configuramos en el RSLinx y presionamos botón ONLINE

Imagen15

Al presionar botón ONLINE nuestro programa del RSLogix 500 se pondrá en Línea con nuestro PLC virtual

Imagen17

A continuación se creara una serie de valores que serán los que exportaremos a Excel, en este ejemplo exportaremos una cadena que contenga la Fecha, Hora, Día, Minuto y Segundos.

Para actualizar la fecha y hora del procesador que seleccionamos la opción Function Files, le damos doble click (solo aplica para controladores Micrologix).

Seleccionamos la ventana RTC

Imagen18

Presionamos el botón Set Date & Time, y se actualizara la fecha y hora actuales

Imagen19

Después nos salimos de línea del programa, ya que se requerirá incrementar algunas tablas de valoras y  para incrementar la tabla de valores o agregar otro tipo de datos se tiene que hacer fuera de línea y posteriormente descargar.

Para salirnos de línea nos vamos a la parte superior izquierda donde dice Remote Run y seleccionamos el botón que aparece a un lado y se abrirá una ventana con unos sub-menus , seleccionamos al opción Go Offline.

Imagen20

Una vez estando fuera de línea incrementaremos la tabla de datos de los enteros y crearemos un nuevo tipo de datos tipo STRING para poder crear la cadena de caracteres que enviaremos a EXCEL.

 

Primero incrementaremos la tabla de datos tipo INTEGER (enteros)

Imagen21

Nos vamos a la carpeta Data Files y seleccionamos N7-INTEGER, le damos click derecho y seleccionamos Properties….

Imagen22

Aparecerá una ventana en la que contiene las propiedades del tipo de dato que deseamos modificar, en la cual extenderemos la tabla a 20 elementos, y presionamos botón aceptar

Imagen23

Ahora procederemos a crear un nuevo tipo de datos, del tipo STRING, seleccionamos la carpeta DATA FILES y le damos click derecho y seleccionamos la opción New….

Imagen24

Seleccionamos el tipo de datos, tipo STRING

Imagen25

Seleccionamos 100 elementos del tipo de dato STRING y presionamos botón OK

Imagen26

Una vez incrementando los enteros y creando nuestro nuevo tipo de datos , procederemos a iniciar con la programación de la estructura de caracteres que se enviaran a la hoja de EXCEL.

Primeramente obtendremos la fecha y hora, la almacenaremos en unas variables tipo entero, las que incrementamos en pasos anteriores. Para mover el registro de fecha y hora del MICROLOGIX utilizaremos la instrucción MOV (Cuando las condiciones de renglón precedentes esta instrucción son verdaderas, la instrucción MOV mueve una copia de la fuente al destino de cada exploración. El valor original se mantiene intacto y sin cambios en su ubicación de origen.) La cual nos servirá para almacenar en la variable que utilizaremos.

En la barra de instrucciones buscamos la ventana Move/Logical y seleccionamos la instrucción MOV

Imagen27

En el renglón 000 enviamos a las variables  fecha (año, mes y día)

Imagen28

En el renglón 001 movemos las variables hora (hora, minutos y segundos)

Imagen29

Como la cadena que vamos a enviar es tipo CARÁCTER y los valores que estamos almacenando son tipo ENTERO, no podemos formar directamente la cadena, entonces utilizaremos la instrucción AIC(Convierte un tipo de dato ENTERO a un tipo ASCII STRING). El cual localizamos en la barra de instrucciones ASCII String

Imagen30

En el renglón 002 convertimos la fecha de tipo ENTERO a tipo STRING

Imagen3q

En el renglón 003 convertimos la hora de tipo ENTERO a tipo STRING

Imagen3w

Convirtiendo la fecha y hora a tipo STRING ahora formaremos la cadena que enviaremos a EXCEL, la instrucción que utilizaremos es ACN la cual nos sirve para concatenar variables tipo ASCII y la guardaremos en la variable tipo STRING ST9:6 la cual nos servirá para almacenar la cadena que enviaremos a EXCEL.

La instrucción ACN la localizamos en la barra de instrucciones Ascii String

Imagen33

En el renglón 004 Concatenamos todos los STRINGS de los datos que deseamos enviar a la celda de EXCEL y lo guardamos en el STRING ST9:6

Imagen34

En el renglón 005 para finalizar creamos un bit el cual nos servirá para decidir en qué momento transferir los datos de la cadena a EXCEL, y lo guardamos en el STRING final ST9:7 el cual enlazaremos a la celda de EXCEL por medio de un tópico DDE.

Imagen35

Ahora procederemos a descargar el programa al PLC virtual, seleccionamos la opción DOWNLOAD… que está localizada en la parte superior izquierda en nuestra barra de herramientas.

Imagen36

Nos preguntara si deseamos proceder con la descarga, presionamos botón SI

Imagen37

Al descargar el programa, el procesador estará en el modo REMOTE PROGRAM, seleccionamos la opción RUN.

Imagen38

Para ver la cadena que formamos seleccionamos nuestro tipo de datos de archivos ST9, y le damos doble click, se abrirá una ventana en la cual nos muestra los valores obtenidos del procesador del PLC.

Imagen39

Si vemos en el ST9:0 tenemos el año 2015, en el string ST9:1 el mes y así sucesivamente, notamos que en el ST9:7 no hay ningún dato, esto debido a que no hemos activado el bit para copiar la información del ST9:6 al ST9:7.

 

Abrimos una hoja de Excel nueva, seleccionamos la ventana VISTA y ahí entramos a la ventana de MACROS

Imagen40

Seleccionamos la opción ver macros

Imagen41

Escribimos el nombre de la macro datos y presionamos el botón CREAR

Imagen42

Seleccionamos la Hoja1 que es en la que vamos a estar enviando la información

Imagen43

En la siguiente ventana seleccionamos la opción Worksheet

Imagen44

Automáticamente se seleccionara la opción SelectionChange

Imagen45

Escribimos la siguiente macro para hacer el desplazamiento de los valores que enviaremos, al finalizar presionamos el botón ejecutar Imagen46

Imagen47

Regresamos al programa RSLinx, seleccionamos el procesador MICROLOGIX, le damos click derecho y seleccionamos la opción Configure New DDE/OPC Topic.

Imagen48

Podemos cambiarle el nombre al tópico pero por defecto así lo dejaremos, presionamos botón DONE nos aparecerá un mensaje y presionamos SI

Imagen49

Ahora seleccionamos el menú DDE/OPC, Seleccionamos la opción Active Topics/Items

Imagen50

Aparecerá esta ventana, la minimizamos

Imagen51

Regresamos al procesador, lo seleccionamos y le damos click derecho, y seleccionamos la opción Data Monitor

Imagen52

Nos abrirá esta ventana en la cual seleccionaremos ST9 y le damos doble click que es la variable que nos interesa para enviar a EXCEL

Imagen53

Seleccionamos el string ST9:7, le damos click derecho y seleccionamos Copy To Clipboard

Imagen54

Aparecerá esta ventana y presionamos OK

Imagen55

En la hoja de Excel en el macro seleccionamos la celda B2 para recibir los datos y almacenarlos en la celda D2.

Seleccionamos la celda B2 le damos click derecho y seleccionamos la opción Pegado especial…..

Imagen56

Seleccionamos Pegar vínculos y le damos aceptar

Imagen57

En la celda nos aparecerá el tópico del rslinx

Imagen58

Ahora enviamos los datos desde el simulador y ahora vemos el desplazamiento de los valores desde el PLC hacia EXCEL mediante tópicos DDE.

Imagen59

 

 

Tagged: , , , ,

Comments (2)

  1. Felipe

    Muy buena información, no podrías pasar el código del macro es que no se ve muy bien

    • Ivan Martinez

      Hola, en este momento no tengo el codigo disponible, pero si da click en la imagen se abre con mejor calidad. Y puede ver el texto.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">