Escalado Analógica en Logix con instrucción CPT Capítulo 2

logo2dominios


En la anterior entrada, hicimos una introducción y realizamos los pasos para crear una aplicación y la configuración de hardware:

Escalado Analógica en Logix con instrucción CPT Capítulo 1

Siendo el montaje del controlador y la tarjeta de EA el siguiente:

Fuente de alimentación 24VCC, Compact Logix L16 y módulo EA.

Detalle de tarjeta de entrada analógica 1734-IE4C

Antes de seguir, os aconsejo que leáis la serie de entradas sobre Señales Analógicas:

Señales Analógicas

Y si ya lo habéis hecho, vamos a repasar unos conceptos en los siguientes párrafos, éstos están extraídos de la siguiente entrada:

Señales Analógicas Cap.11 (Práctica-Parte 7)

1. Escalado de Señal Analógica.

Trabajar en unidades de ingeniería (m, mca, rpm, %, ppm….) es más intuitivo para los integradores que hacerlo con las unidades internas de los PLC o PAC, las llamadas “números de cuentas”, además éstas últimas presentan el problema que dependen de la resolución de la tarjeta y de cada tipo y marca, por lo que se suele convertir a unidades de ingeniería. Además es necesario hacer esta conversión, para representar estos valores en los HMI’s, de esta manera, explotación-producción podrá interpretar más fácilmente los valores de proceso.

Podemos realizar el escalado de tres formas diferentes:

  • En PAC’s de alta gama como es el Control Logix de Allen Bradley, el escalado se realiza en la propia tarjeta de analógicas, por lo que obtenemos directamente el valor en unidades de ingeniería, sin tener que realizar ningún tipo de programación adicional.
  • Realizar el escalado mediante funciones y librerias propias de los PLC’s-PAC’s.
  • Mediante un algoritmo que realice el cálculo.

En nuestro caso, disponemos de un PAC que no dispone de escalado en la tarjeta, por lo que el escalado lo tenemos que realizar mediante una función interna o un algoritmo, esta segunda opción la dejamos para entradas posteriores.

 

Una vez que conocemos el hardware con el que realizaremos las prácticas y hemos repasado algunos conceptos, comenzamos:

1 – Declarar una estructura de datos de usuario (UDT User Defined Data Types).

Para declararla, debemos desplegar en el “Controller Organizer” la carpeta Data Types” y tras pulsar en botón derecho seleccionamos “New Data Type”.

Nos aparecerá la siguiente ventana emergente.

Le asignamos el nombre que deseemos para nuestra estructura de datos, recordad que debe ser un nombre descriptivo de su uso, en nuestro caso le asignamos el nombre “ESCALADO”.

Rellenamos la estructura con los datos que necesitemos para la UDT. Cabe recordar, que una UDT puede estar formada por variables que sean datos predefinidos y/o por matrices de éstos. En nuestro ejemplo, introducimos los siguientes datos:

  • ENTRADA_ANALOGICA, dato que usaremos para almacenar la variable que nos da la variable con los datos de la entrada analógica. Elegimos un dato tipo DINT, no obstante podría ser de tipo INT, ya que el dato que nos entrega la tarjeta de EA es de tipo INT.

  • NUMERO_CUENTAS_BAJO, dato que usaremos para fijar el extremo inferior del número de cuentas, este dato depende de la resolución de la tarjeta (número de bits) que equipemos. Veremos esto con más detalle más adelante.
  • NUMERO_CUENTAS_ALTO, dato que usaremos para fijar el extremo superior del número de cuentas, este dato depende de la resolución de la tarjeta (número de bits) que equipemos. Veremos esto con más detalle más adelante. De tipo DINT, podríamos usar
  • UDS_INGENIERIA_BAJO, dato que usaremos para fijar el extremo inferior de las unidades de ingeniería de nuestro instrumento.
  • UDS_INGENIERIA_ALTO, dato que usaremos para fijar el extremo superior de las unidades de ingeniería de nuestro instrumento.
  • RESULTADO, variable para almacenar la salida de la instrucción con el la EA ya escalada.

En los tres últimos datos elegimos datos de tipo REAL para disponer de decimales.

De momento, estos son los datos que declaramos en la UDT y que iremos ampliando a medida que introduzcamos más funcionalidades.

Una vez que tenemos definida nuestra estructura, declaramos en “Controller Tags” una variable que llamaremos “TEMPERATURA” y será de tipo “ESCALADO” (UDT declarada en el paso anterior).

Ya tenemos una estructura que nos facilitará el escalado de una señal analógica con la instrucción CPT.

En la siguiente entrada, usaremos la instrucción CPT y la función de escalado que implementaremos en ella.

¡Saludos!.

favicon

12 thoughts on “Escalado Analógica en Logix con instrucción CPT Capítulo 2

  1. La parte 1y2 se dio la explicación de como crear la función CPT desde cero el dar de alta esta función se puede hacer en línea o tiene que ser forzosamente fuera de linea, al crear esta función se colocaría como instrucción o función en nuestra barra de herramientas y cada que se ocupara únicamente la jalaríamos hacia nuestro programa y la re direccionaríamos según el canal de la tarjeta que se fuera a ocupar o se tendría que crear una función por canal, si en un programa ya existe una función de escalamiento definida por algún otro programador y yo diera de alta la instrucción CPT para utilizar un canal disponible tendría algún conflicto, si colocara el mismo canal CH1 en la instrucción ya definida que tengo en el programa y colocara el CH1 en la nueva instrucción CPT para hacer una comparativa de resolución de una instrucción a otra los valores de resultado pueden ser iguales o variarían tomando en cuenta los mismo valores dados de alta en la CPT.

    1. Daniel, creo que no he entendido muy bien las preguntas, no obstante voy a intentar responderte. Primero es aclararte que vamos a ir realizando entradas y a medida que avancemos, iremos implementando funcionalidades, una de ellas será el encapsulado de la programación de escalado en una AOI (Add on-intruction), de manera que será más fácil reutilizar el código. Respecto a la edición en linea, depende de lo que cambies deberás descargar o no. ¿Por favor dime si me dejo algo atrás?.

      Saludos!!

      1. Que tal Juan Alberto gracias por contestarme y aclarar mis dudas creo que en el comentario anterior no me explique bien, pero sin duda me respondiste y me aclaraste la duda y esa es la reutilización del código encapsulado en una instrucción AOI.

        La otra pregunta era que si en el programa del plc ya existiera una función de escalado y esta fue creada con texto estructurado y esta encapsulada en una AOI y yo quisiera crear una nueva función de escalado por lenguaje lader así como nos estas enseñando a crearla, puedo llegar a tener algún conflicto ya que usaría la misma tarjeta de entradas analógicas con la que esta creada la función de escalado por texto estructurado.

        1. Hasta donde llego a entender por lo que me indicas, puedes tener varias funciones de escalado, con AOI o sin ella……….en varios lenguajes que actuen sobre una misma tarjeta, eso sí canales diferentes. Si quieres mándame un correo a juanalberto@noeju.com con más detalle o un programa y lo revisaría y comentaría contigo.

          Saludos.

      1. Que tal juan Alberto te preguntaba si era compatible por que en la foto que tu publicas estas usando un compalogix L16ER y este plc es de la familia 1769, que se parece al modelo; 1769-L16ER-BB1B, y pues tu estas usando la tarjeta de análogas 1734-IE4C. con este plc.

          1. Que tal Juan Alberto Muchas gracias por compartir la información, nada mas faltaría poder continuar con la siguiente parte del ejemplo de como usaremos la instrucción CPT y la función de escalado que implementaremos en ella

          2. Estoy de vacaciones unos días, a la vuelta continuaré, además tengo un colaborador que va a profundizar en este tema, si tienes prisa te adelanto una aplicación con la instrucción CPT y la función, si tienes prisa dímelo por correo que lo miro más a menudo.

            juanalberto@noeju.com

            Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *