Recientemente he recibido una consulta acerca de cómo leer y gestionar las entradas analógicas 4-20mA en S7. Me pareció que podía ser interesante el compartir la duda y la posible solución con el resto de los lectores del blog, por lo que aquí tienes un resumen de la consulta:
Hola que tal,
(..) Es un transductor Danfoss de 4 a 20 mA 2 hilos. La idea es hacer que se dispare una alarma si la presión del aire disminuye a menos de 100 psi y si sube a mas de 120 psi, es decir la presión siempre debe estar entre 100 y 120 psi. (..) y también me gustaría que la podamos visualizar en WIN CC...
Aprovechando la duda en esta entrada vamos a ver los siguientes conceptos:
- Elegir y configurar la tarjeta de entradas analógicas
- Programar la alarma pertinente de alta y baja
- Graficar la presión en nuestro HMI usando WinCC
Entradas analógicas 4-20mA en S7
Hay diversos modelos de entradas analógicas. La que yo he elegido para este caso es 6ES7-331-7KF02-0AB0, o lo que viene siendo una tarjeta de entradas analógicas con aislamiento galvánico de 9/12/14bits.
Lo primero que vamos a hacer es configurar la tarjeta. Para ello, vamos a elegir como muestra en la figura: TM2H ya que es entrada en corriente 4..20mA a dos hilos, que son los requerimientos planteados.
Por otro lado, como bien indica la imagen adjunta, habrá que cambiar la posición del adaptador trasero de la tarjeta de tal forma que esté configurado en su posición D.
Por otro lado debemos saber, que la lectura de 4-20mA será una lectura que en el programa la vamos a ver como un valor entre 0 y 27648. Pero podría ser cualquier otro valor en función de la tarjeta que insertemos y el tipo de lectura.
Finalmente, el transductor nos dará 4mA cuando la señal esté al 0% de la escala y 20mA cuando esté al 100% de la escala (como supongo ya imaginabas). Por cómo plantea la consulta, vamos a elegir el modelo que da de 0 a 200psi.
En general, la fórmula que usaremos será: (Preal - Pmin) /(Pmax-Pmin) = (Señal_mA - 4mA) /(20mA - 4mA) que es la ecuación de una recta que pasa por dos puntos conocidos (Pmin, 4mA) y (Pmax, 20mA).
Esto es para que desempolves tus conocimientos de geometría de hace unos cuantos lustros ( ¿o no tanto?)
Por tanto, tendremos que nuestra recta vendrá dada: (Preal - 0psi)/(200psi - 0psi) = (Señal_mA - 4mA)/(20mA-4mA), o lo que es lo mismo:
Presión_Real (psi) = (Señal_mA-4mA)*(200psi)/(20mA - 0mA)
Es decir, en el PLC veremos:
Presion = (señal - 0) * 200psi /(27648-0) = Señal * 200/ 27648
Editado:
También se puede usar la función de escalado FC105 Scale Convert, que lo podéis encontrar en Standard Library->TI S7 Converting Blocks. La info que aporta la ayuda de siemens dice lo siguiente
Descripción La función "Escalar valores" (SCALE) toma un valor entero en la entrada IN y lo convierte en un valor real, convirtiéndolo a escala en un rango comprendido entre un límite inferior y un límite superior (LO_LIM y HI_LIM). El resultado se escribe en la salida OUT. La función SCALE aplica la fórmula siguiente: OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM Las constantes K1 y K2 se aplican de forma diferente, dependiendo de si el valor de entrada es BIPOLAR o UNIPOLAR. · BIPOLAR: Se supone que el valor entero de entrada debe estar entre -27648 y 27648, por lo tanto, K1 = -27648.0 y K2 = +27648.0 · UNIPOLAR: Se supone que el valor entero de entrada debe estar entre 0 y 27648, por lo tanto, K1 = 0.0 y K2 = +27648.0 Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a HI_LIM y se indica un error. Si el valor entero de entrada es menor que K1, la salida se une a LO_LIM y se indica un error. Se puede efectuar la conversión escalar inversa programando los límites de tal forma que el límite inferior sea mayor que el límite superior (LO_LIM > HI_LIM). En la conversión escalar inversa el valor de la salida disminuye cuando aumenta el valor de la entrada.Programación de la alarma
Para programar la alarma, simplemente vamos a leer la señal recibida y si es inferior al valor parametrizado dará alarma de baja y si se superior al valor superior establecido dará alarma de alta. Además, configuraremos una tercera alarma que es que la lectura debe estar entre 4000 y 20000 ya que de no ser así es que algo pasa en la instalación.
A la hora de programar las alarmas de alta y de baja, y aunque no sea el caso, es conveniente filtrar dichas alarmas, esto es, temporizarlas de tal forma que un pico bien por arriba o por abajo, no de alarma ya que podemos considerarlo como un transitorio o un pequeño ruido en la señal que hay que tratar como tal y por tanto que no nos de una falsa alarma.
Este tiempo ya es para gustos y necesidades y puede variar desde tiempos muy cortitos hasta de varios minutos en función de qué estemos hablando.




