Escalar una señal analógica en TIA Portal (paso a paso)

Escalar una señal analógica en TIA Portal (paso a paso)

El escalado de una señal analógica en TIA Portal es una cosa bastante habitual. Estoy seguro que en tu empresa, tienes más de un  sensor o actuador analógico conectado a un PLC.

Es normal, el escalado de una señal analógica es bastante habitual, también en los PLC Siemens, y cómo no, en las automatizaciones en TIA Portal.

Por tanto, y si aún no sabes cómo hacerlo, te voy a enseñar dos formas de realizar este escalado de señales analógico para que lo implantes en tus proyectos con autómatas Siemens bajo TIA Portal.

Escalado de una señal analógica en TIA Portal de forma calculada

Para realizar un escalado, sea cual sea, tampoco deberías tener muchos problemas. Si desempolvas tus apuntes de cuando eras más joven, no más que calcular una recta que pasa por dos puntos.

Para empezar, imaginemos que tenemos un valor analógico de una sonda de presión entre 0 y 6bar que nos da la medida en 4-20mA.

Necesitaremos dos parejas de puntos para poder calcular la relación:

  • El valor mínimo del la entrada analógica (para los 4mA) y el valor ingenieril que toma (0 bares)
  • El valor máximo de la entrada analógica (para los 20mA) y el valor asociado (6 bares)

Las tarjetas de las CPU 1200

Aquí debemos tener una consideración.

Las tarjetas de entradas analógicas para las CPU 1200 sólo están disponibles en 0-20mA.

Actualizado: ya existen tarjetas en 4-20mA, si bien el ejemplo en 0-20mA es totalmente válido igualmente.

¿Es esto un problema?

En absoluto. Sólo que lo tienes que tener en cuenta.

El PLC lee valores entre [0 ; 27648] como valores dentro de rango. Una lectura fuera de este rango es que hay algún problema (rotura de hilo, por ejemplo)

Ahora bien, puede que la tarjeta solo admita 0-20mA o esté configurada entre 0-20mA (cosa que vamos a suponer para darle más interés).  El "0", por tanto, está pensado para 0mA, y nosotros vamos a tener un rango de 4-20mA como entrada.

Pues bien, los 4mA se corresponden con 5530. Lógicamente si la configuración de la tarjeta estuviera en vez de 0-20mA en 4-20mA, esto desaparece, y el límite inferior será un 0.

Pero como hay tarjetas aún por ahí que sólo tienen 0-20mA, vamos a suponer este caso, ya que es un poco más especial, y a la vez, más genérico.

Por tanto, nuestro valor mínimo va a ser 5530 (4mA) para 0 Bar ¿sí?

Ahora aplicaremos la famosa fórmula de recta que pasa por dos puntos:

escalado de una señal analógica

Y ahora, usaremos la función CALCULATE de TIA Portal:

escalado de una señal analógica-2

La fórmula que usaremos será: IN1 +(IN2-IN1)*(IN3-IN4)/(IN5-IN4)

En el valor mínimo de la escala meteremos 0 Bar en este caso, y 6 Bar en el Valor máximo escalado.

Lógicamente en #Valor_analógico introduciremos la lectura del sensor, y en #"Valor escalado" obtendremos un valor entre 0 y 6 bares.

Escalado usando SCALE_X y NORM_X

Dentro del amplísimo curso de TIA Portal sobre programación de TIA Portal, he revisado junto a mis alumnos  que no existe una función que escale las señales analógicas directamente para CPU de la serie 1200, como lo hay para las CPU 300 y 400.

Pero lo que sí podemos usar las funciones que aporta de serie TIA Portal, Scale_X y Norm_X para realizar el escalado de la señal.

Para que se entienda bien, se usan estas dos herramientas ya que el escalado se hace en dos pasos:

  • Pasamos nuestro valor entre 5530 y 27648 a un valor real entre 0 y 1.
  • Tomamos este valor entre 0 y 1 y que nos de un valor proporcional en nuestro ejemplo entre 0 y 6 bares.

NORM_X: Normalizar

La instrucción "Normalizar" normaliza el valor de la variable de la entrada VALUE representándolo en una escala lineal. Los parámetros MIN y MAX sirven para definir los límites de un rango de valores que se refleja en la escala.

En función de la posición del valor que se debe normalizar en este rango de valores, se calcula el resultado y se deposita como número en coma flotante en la salida OUT.

Si el valor que se debe normalizar es igual al valor de la entrada MIN, la salida OUT devuelve el valor "0.0". Si el valor que se debe normalizar es igual al valor de la entrada MAX, la salida OUT devuelve el valor "1.0".

La figura siguiente muestra un ejemplo de cómo pueden normalizarse los valores:

escalado de una señal analógica-4

SCALE_X: Escalar

La instrucción "Escalar" escala el valor de la entrada VALUE mapeándolo en un determinado rango de valores. Al ejecutar la instrucción "Escalar", el número en coma flotante de la entrada VALUE se escala al rango de valores definido por los parámetros MIN y MAX. El resultado de la escala es un número entero que se deposita en la salida OUT.

escalado de una señal analógica-3

Con lo cual, combinando estas dos operaciones vamos a poder escalar una señal analógica en TIA Portal sin ningún problema:escalado de una señal analógica-7

Escalar una salida analógica

Evidentemente, al revés ambos casos son válidos: podremos escalar una señal analógica pasando de un valor físico a la señal que hay que mandar a la tarjeta analógica.

A continuación, tienes el ejemplo de cómo realizar el escalado inverso:

escalado de una señal analógica-5

Tienes más información en: FAQ Siemens

Curso de TIA Portal

Si necesitas ayuda para dominar la programación en TIA Portal, recuerda que puedes echarle un vistazo al curso de TIA Portal de la serie S7-1200 de Siemens

Relacionado: un uso típico del escalado es alimentar un lazo de control. Por ejemplo, un control PID de temperatura con S7-1200 (PID_Compact).

Comentarios (50)
javier emilio
hoa Iñigo, ya tuve antes la oportunidad de poner en practica esta tarea, me parece muy atinado el tip, la explicacion es excelente. Espero mas adelante tambien poder aportar. gracias
Iñigo Gútiez
Muchas gracias Javier. Sí, siempre está bien tener estas cosas a mano :) Saludos!
Jose
En este mío ejemplo.como pu do hacer para que cuando el sensor me dé una lectura de 4.5 bares active una alarma, una sirena, ??
Iñigo Gútiez
Pues simplemente comparar la señal con 4.5 una vez tengas la señal, lógicamente. No entiendo muy bien la pregunta.
Rogerio Cardoso
Parabèns ingo, estas information auxiliaries muito em projects !!
victor valenzuela
Hola saludos, quisiera pedir de su ayuda para aclarar una duda, ¿que sucede con las cuentas del plc min-max, en s7-300 en un contol pid?
Iñigo Gútiez
Lo siento, pero no entiendo qué quieres decir. Saludos
Alfonso
Hola, tengo un módulo de IA ( SIMATIC S7-1200, módulo de entradas analógicas, SM 1231, 8 AI, +/-10V, +/-5V, +/-2,5V, o 0-20 mA/4-20 mA, 12 bits + signo o (13 bits ADC)) https://mall.industry.siemens.com/mall/es/WW/Catalog/Product/6ES7231-4HF32-0XB0 Pues el problema que tengo es que cuando lo alimento y lo configuro en 4-20 mA sin tener nada conectado ya me esta dando las máximas cuentas posibles, que en este caso es 32767, por lo que no me mide ninguna señal analógica que le conecto. No se si se ha podido romper con alguna configuración que se haya hecho mal, pero no se me ocurre otra idea. Alguna solución o le ha pasado algo parecido? Muchas gracias.
Iñigo Gútiez
Si lees el manual de la tarjeta comprobarás que es completamente normal que indique ese valor cuando no hay nada conectado ya que te está indicando precisamente que el hilo está roto (en este caso, que no lo tienes conectado). Saludos
PAblo Arroyo
Buenas noches: Hemos revisado este hilo porque tenemos un poblema curioso. En una tarjeta de 8 entradas tenemos conectados 4 sensores (dos de una marca y dos de otra) todos ellos 4-20 ma. Cuando no hay nada conectado la lectura en todos es -32767, y al conectarlos dos nos marcan correctamente, y los dos de la otra marca nos marcan 32767 (sin el signo menos). Hemos medido con el polímetro y los sensores nos envían la intensidad que deben, pero la tarjeta se va de rango. ¿os ha pasado alguna vez?. Muchas gracias y un saludo
Iñigo Gútiez
Y están bien configurados? 2hilos? 4 hilos? u otro tipo de configuración, tensión... depende de la tarjeta.
PAblo Arroyo
En un principio son 2 hilos, porque los analizadores llevan alimentación 230 VAC y únicamente nos saca dos hilos de medida en intensidad, como os digo medida con polímetro y es correcta. He visto en la documentación Siemens que en los 2 hilos hacen un puente con la tierra, y hemos probado con y sin ese puente. La tarjeta es 4-20 ó 0-20, no tiene configuración de tensión. Estaba pensando en probar con las entradas analógicas de la CPU, a ver si reacciona diferente. Si se os ocurre algo...
Alfonso Jodar
Hola Iñigo buenos días, tengo un problema con unos módulos de AI (SM 1231 AI8) El problema que tengo es que todas las entradas analógicas me dan el máximo de unidades (32767) sin tener siquiera los sensores conectados. El modulo en el programa esta bien configurado y la conexión del modulo también esta correcta, la alimentación y todos los negativos unidos entre si. Tiene todos los pilotos del módulo en verde. No se si me podrías echar una mano. Muchas gracias.
Iñigo Gútiez
Te recomiendo que leas la documentación de las tarjetas. Verás como no es raro que marque 32767 si no hay nada conectado. Es lo normal ya que indica que el circuito está abierto. Saludos
Alfonso Jódar
Hola, tengo un módulo de IA ( SIMATIC S7-1200, módulo de entradas analógicas, SM 1231, 8 AI, +/-10V, +/-5V, +/-2,5V, o 0-20 mA/4-20 mA, 12 bits + signo o (13 bits ADC)) https://mall.industry.siemens.com/mall/es/WW/Catalog/Product/6ES7231-4HF32-0XB0 Pues el problema que tengo es que cuando lo alimento y lo configuro en 4-20 mA sin tener nada conectado ya me esta dando las máximas cuentas posibles, que en este caso es 32767, por lo que no me mide ninguna señal analógica que le conecto. No se si se ha podido romper con alguna configuración que se haya hecho mal, pero no se me ocurre otra idea. Alguna solución o le ha pasado algo parecido? Muchas gracias.
Oscar García
Muy aceptada su explicación sobre el escalamiento. Seguire al tanto de todas las publicaciones suyas. Gracias por todo.
jose manuel
me pareció excelente tu aporte.... quisiera utilizarlo para que un sensor de presión al marcar una presión mínima accione una válvula solenoide para recuperar la presión perdida... podrías ayudarme porfaaa, me urge para titularme
Iñigo Gútiez
Tienes que darle al rosco. Tan solo tendrás que escalar la señal analógica, y compararla con esa presión mínima. Si es inferior, que active la EV para recuperar la presión. Pero tienes que resolverlo por tu cuenta, ya que es de lo que se trata para titularte.
Jeancarlo
La función scale del s7-300 solo sirve para entradas analógicas de 0-20 mA ? Ya que cuando la pongo para una entrada de 4-20 mA y lo escaló de 0 a 100 cuando el sensor marca 4 mA me da 20 y debería dar 0 ? Esa es mi duda
Iñigo Gútiez
Y que es lo que dice la ayuda de esa función?
JOSÉ ANAYA
Hola Iñigo, mi problema es un tanto extraño, manejamos una maquina de pesajes que mandan señales de 4-20mA al modulo de 8 ENTRADAS analogicas, en algunas ocasiones los valores se mantienen bien pero cuando le damos ciclo en automático inmediatamente los valores comienzan a dar lecturas en negativo y se empiezan a volver locos. Nos comentaban que posiblemente hubiera ruido en las señales, sin embargo cuando checamos corrientes en las entradas del módulo sin problemas da los mA que son proporcionales a las señales de peso, pero cuando esas mismas señales las hemos escalado y normalizado para mandarlas a una HMI y poder trabajar con ellas para realizar los cilcos de mezclado, simplemente se muestran inestables. Conoces alguna causa que origine este problema???
Iñigo Gútiez
Difícil de saber. Si es una máquina vieja que ha funcionado bien y súbitamente empieza a trabajar mal sin que nadie haya tocado el programa, tiraría por algo físico como la tarjeta analógica, ruidos, alimentaciones ... si son todos , tiene que ser algo común a ellos. Tendrás que ir descartando cosas y sustituir elementos hasta descubrir el problema. Si es un programa nuevo o que no ha funcionado bien nunca, puede que no esté bien programado.
Luis Roberto
Quisiera aprender está parte emos bloques no me quedó MUI clara pero se que es por mi y me cuesta pero en la linealidad no tengo problema quisiera aprender a escalar en estos bloques por qué me interesa Gracias igual es un excelente material
Iñigo Gútiez
Para eso tienes los cursos :)
Eduardo Antonio Amaya Garcia
Buenaa tardes es posible analogicamente convertir una señal 0 a 10V y escalarla 4 a 20mA si me ayuda como seria el proceso ces decir a 5V iw64 me de qw 64 16ma con resitencia 820 ohms
Franco
Muy buena explicación, ambas la realice una en s7-200 por ecuación de la recta y en S7-300 similar en tia portal.
Diana Valeria
Hola, Disculpa quiero configurar una señal de lectura de 5V, en mi programa he configurado la entrada a a 5VDC, pero mi duda es la siguente, para el normalizado de una señal de 5V en el Max. Valor se configura en 27648?
Emilio Santizo
Tengo un problema con una señal análoga de lectura de una termocopla (termopar), es un PLC S7-300 al cual le tengo un módulo de entradas para termocoplas, solo tengo dos señales conectadas a él, hay ocaciones en las que deja de recibir señal del canal 1, al desconectar y reconectar el termopar vuelvo a tener señal de ese canal y pasado un tiempo unos 15 minutos vuelvo a perder la señal. Si cambio de posición la señal, es decir del canal 1 al canal 2, vuelvo a perder señal del canal 1. Ya se cambió el módulo, ya se revisó el cableado, también el voltaje que genera el termopar y no hay oscilaciones pero sigue dando el mismo problema. Alguien que me pueda ayudar.
Iñigo Gútiez
Lo siento Emilio, pero no sabría decirte de dónde puede venir el problema.
Juan Jimenez
Quisiera pasar un valor 4...20ma a 0-10 voltios, que debería de hacer?
Iñigo Gútiez
Qué significa pasar un valor de 4..20 a 0-10? Con esos datos, lo siento, pero no te puedo ayudar.
Jimy
Buenas tardes, he creado mi función para escalar y otra para normalizar una señal ya que he tenido problemas con usar las funciones del TIA portal, y me ha ido bien.
Daniel
Muy bueno, gracias
Luis
Buenas tardes. Todavía me he liado más, no por la explicación si o por mi... Si tarjeta entradas analógicas está configurada de 0-20ma y sonda es de 0-20ma los valores a utilizar en Norm son 0 min y 27648 en Max. Si la tarjeta está configurada como 4-20ma y la sonda también es 4-20ma los valores también serían 0 y 27648 en min y Max? Solo usaríamos 5530 si la tarjeta es de 0-20ma y la sonda de 4-20ma correcto? Muchas gracias por la ayuda. Un saludo
Iñigo Gútiez
Correcto. Al final depende de los márgenes de uno y otro y ajustarlo si es necesario.
Miguel Castillo
Hola Íñigo, gracias por este tutorial. Tengo esta misma duda que el compañero Luis. Lo que no me queda claro es si el hardware está configurado de 4-20mA y la sonda también, por qué normalizamos el valor entero de 0-27648? De esa manera no sabremos cuando se ha roto la sonda al medir 0mA. Qué valor tendría "Real" a la salida del bloque NORM-X? Gracias de antemano.
Iñigo Gútiez
Echa un vistazo a la documentación de la tarjeta porque los límites de corto y lazo abierto te los marca Siemens. Cuando estés en rotura te enteras porque los valores se salen del 0-27648, y si estas en corto, también.
Miguel Castillo
Gracias por responder tan rápido. Le echo un vistazo.
Luis Miguel farias risco
Buenas, como puedo hacer para escalar una señal de peso.. desde una bascula a un PLC??
Iñigo Gútiez
Lo siento, pero la información es insuficiente, y por otro lado, tendrás que escalarlo si es un 4-20 o similar, pues básicamente como se indica en el post. Más no se puede aportar.
Carolina
Buenas tardes Tengo una duda de como es que declarastes los valores que se introducen en las entradas de la funcion , si el valor minimo escalado es 0 como lo declaras?
Iñigo Gútiez
No sé si te refieres a crear la constantes en el interfaz del bloque.
Wolfgang Petit
Muy buena explicación, de donde salen el 5530 y el 27648? Entiendo que es la resolucion del procesador en cuestion
Iñigo Gútiez
Revisa la documentación de Siemens. Son valores que da la tarjeta de Siemens. Actualmente se usa de 4-20mA que va de 0 a 27648.
MARLON TANQUINO
L EW36 ITD DTR L 218.0 /R T VALUE REAL sabes por que el valor de una entrada analogica hay que dividir para 218 ? nota: es una entrada de analogica de termocupla tipo k gracias..
Iñigo Gútiez
No le encuentro sentido alguno ya que una temperatura se mide con tarjetas específicas que dan directamente la temperatura.
wilson elian
disculpa tengo una pregunta si quiero saber los valores que da un censor de caudal de una turbina pelton como lo haria
Iñigo Gútiez
Tienes que revisar la documentación del sensor y aplicar el escalado. No tiene mayor misterio, pero hay que leer la documentación del aparato, que cada uno tiene lo suyo.
Antonio Jesús
Tengo Una Pt100 Entrada iw176 y Quiero Segun Temperatura que salida analogica me varie de hercios a 0-10v en Mi Salida qw80
Antonio Jesús
Tengo Una Pt100 Entrada iw176 y Quiero Segun Temperatura que salida analogica me cambie de hercios a 0-10v en Mi Salida qw80 Saludos