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.
Contenido
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:
Y ahora, usaremos la función CALCULATE de TIA Portal:
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:
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.
Con lo cual, combinando estas dos operaciones vamos a poder escalar una señal analógica en TIA Portal sin ningún problema:
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:
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
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
37 Comentarios
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
Muchas gracias Javier. Sí, siempre está bien tener estas cosas a mano 🙂
Saludos!
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, ??
Pues simplemente comparar la señal con 4.5 una vez tengas la señal, lógicamente. No entiendo muy bien la pregunta.
Parabèns ingo, estas information auxiliaries muito em projects !!
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?
Lo siento, pero no entiendo qué quieres decir.
Saludos
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.
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
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
Y están bien configurados? 2hilos? 4 hilos? u otro tipo de configuración, tensión… depende de la tarjeta.
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…
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.
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
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.
Muy aceptada su explicación sobre el escalamiento. Seguire al tanto de todas las publicaciones suyas.
Gracias por todo.
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
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.
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
Y que es lo que dice la ayuda de esa función?
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???
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.
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
Para eso tienes los cursos 🙂
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
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.
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?
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.
Lo siento Emilio, pero no sabría decirte de dónde puede venir el problema.
Quisiera pasar un valor 4…20ma a 0-10 voltios, que debería de hacer?
Qué significa pasar un valor de 4..20 a 0-10? Con esos datos, lo siento, pero no te puedo ayudar.
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.
Muy bueno, gracias
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
Correcto. Al final depende de los márgenes de uno y otro y ajustarlo si es necesario.
Buenas, como puedo hacer para escalar una señal de peso.. desde una bascula a un PLC??
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.