Conversiones analógico digitales en Codesys

En (casi) todos los proyectos en los que vayas a programar una automatización, te vas a encontrar con la necesidad de leer valores analógicos. ¿Cómo escalarlos para poder leer su valor? En este post te lo explico:

Contenidos

¿Escalar?

Empecemos con lo más basico. ¿Por qué tendría que escalar un valor?
Si lo pensamos, muchos de los instrumentos analógicos que conectamos a nuestros PLC’s vienen con fichas técnicas que nos indican un doble rango: el de medición, y el de salida eléctrica. A esto, hay que agregar todavía un tercer rango, que es el que nos da el conversor analógico digital. Veamos un diagrama de bloques:

Pasos en la conversión A/D

Para el ejemplo que vamos a tratar, imaginemos que intentamos conectar un sensor de presión que mide de 0 – 5 bar, con una salida de 4 – 20 mA.
Nuestro reto por lo tanto, será que en el PLC podamos leer realmente los 0 – 5 bar. Tenemos que hacer 3 conversiones de unidades.

¿Y cómo lo hago?

Uno de los elementos que influyen es el conversor analógico digital. El PLC es en definitiva una máquina de unos y ceros. Esto significa que los valores analógicos necesitan ser codificados en un vector de 1/0 consecutivos. Estas conversiones se pueden interpretar en definitva como «cuentas», que van entre un valor minimo «Val_m» y un valor máximo «Val_M». Cuantas más cuentas, mayor será el valor analógico.
La clave de esto es leerse el datasheet de la tarjeta de entrada analógica e interpretarlo para poder hacer la conversión correspondiente.
Un ejemplo puede ser por ejemplo el de esta tarjeta de Wago:

Correspondencia entre corriente y cuentas

Leyendo la hoja de características podemos hacer una correlación «cuentas» y mA. Claro, nos falta tener la otra relación, que es la de bar – mA. Pero en este caso, suponemos que es simplemente una línea recta, donde 0 bar corresponde a 4 mA, y 5 bar corresponde a 20 mA.

Valor medido (bar) Valor medido (mA) Valor en A/D
0 4 0
1 7,2 6552
2,5 12 16384
3,5 15,2 22936
5 20 32760

Dentro Vídeo

Vistas estas notas, vamos a ver el vídeo donde os presento la instrucción LIN_TRAFO. Este método os será valido siempre que las señales sean lineales:

Más información

¿Qué te ha parecido? En realidad hay más formas de hacer conversiones en Codesys. ¿Cuál usas?
Para seguir aprendiendo te recomiendo que te suscribas al blog de Opiron, o que le eches un vistazo a los cursos disponibles.
Saludos 🙂

Soluciones Codesys

Workshop Nivel 1 y 2
Soluciones System Partner
Consultoría y Soporte

4 comentarios

  1. Hola Buenas tardes, muy interesante la explicación, de la conversión, dos preguntas: si la conversión no es lineal hay otra forma o comando, y lo que no encontré como ir al vídeo que comentas, saludos muchas gracias.

    • Buenas Pablo,
      Buena pregunta! En ese caso la conversión la tendrás que ajustar en función de la ecuación con la que tengas que convertir. Así que tendrías que implementarla en tu propio PLC…
      Saludos 🙂

  2. Hola buenas, genial el video y me ha venido de perlas para el proyecto que estoy haciendo. Pero tengo una pregunta, en codesys como puedo crear una salida digital cuándo la señal sea menor a un valor en concreto, /I</????
    Un saludo y buen trabajo

    • Hola Diego!
      Muy buen comentario… Pues seguramente tendrías que crear una condicional para hacer esto!
      Saludos y gracias 🙂

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.