Ir al contenido

Leer la temperatura con un sensor PT100 y un PLC industrial

Cómo funciona una PT100, sondas de 2, 3 y 4 hilos, conexión del transmisor y código
19 de julio de 2024 por
Leer la temperatura con un sensor PT100 y un PLC industrial
Boot & Work Corp. S.L, Bernat Brunet Pedra

Cómo leer una PT100 con un PLC: una PT100 es una RTD de platino con 100 Ω a 0 °C que aumenta unos 0,385 Ω por °C. Una entrada analógica de PLC no puede medir esa resistencia directamente, así que conecta la sonda a un transmisor PT100 que la convierta a 0-10 V o 4-20 mA. Después lee la entrada analógica y escálala linealmente sobre el rango del transmisor: con un transmisor de -50 a 100 °C y una entrada de 0-10 V, temperatura = 15 × tensión - 50.

Esta guía explica cómo funciona una PT100, la diferencia entre sondas de 2, 3 y 4 hilos, cómo conectar un transmisor de cabezal a un PLC de Industrial Shields y el código para convertir la lectura analógica a °C.

Qué necesitas

Controlador industrial Raspberry PLC, uno de los PLC de Industrial Shields con entradas analógicas de 0-10 V
Fuente de alimentación de 24 Vdc para carril DIN, para el PLC y el transmisor PT100
Transmisor PT100 de cabezal con salida de 0-10 V
  • Un PLC de Industrial Shields con una entrada analógica de 0-10 V: PLC basado en Arduino (M-Duino, Ardbox), ESP32 PLC o Raspberry PLC
  • Una fuente de alimentación de 24 Vdc para el PLC y el transmisor
  • Una sonda PT100 (de 2, 3 o 4 hilos)
  • Un transmisor PT100 con salida de 0-10 V. En esta guía: alimentación de 24 Vdc, rango de -50 a 100 °C y precisión del 0,2 % del fondo de escala, según su etiqueta

¿Cómo funciona un sensor PT100?

Una PT100 es un detector de temperatura por resistencia (RTD). En su interior hay un elemento de platino cuya resistencia aumenta con la temperatura. "PT" significa platino y "100" es su resistencia a 0 °C: 100 Ω. La curva estándar de la IEC 60751 da una pendiente media de 0,00385 Ω/Ω/°C entre 0 y 100 °C, unos 0,385 Ω por °C.

La curva es casi lineal, pero no del todo. La IEC 60751 la describe con la ecuación de Callendar-Van Dusen. Estos valores salen de esa ecuación:

TemperaturaResistencia de la PT100
-50 °C80,31 Ω
0 °C100,00 Ω
25 °C109,73 Ω
50 °C119,40 Ω
100 °C138,51 Ω
150 °C157,33 Ω
200 °C175,86 Ω

Una PT1000 funciona igual con 1000 Ω a 0 °C. Su mayor cambio por grado hace que la resistencia de los cables pese menos, pero el transmisor debe ser para PT1000.

PT100 de 2, 3 y 4 hilos: cuál usar

Los cables entre la sonda y el transmisor añaden su propia resistencia, y el transmisor la lee como temperatura. Un ohmio de más equivale a unos 2,6 °C de error. Por ejemplo, 10 m de cable de cobre de 0,5 mm² tienen unos 0,69 Ω en el bucle de una sonda de 2 hilos, cerca de 1,8 °C de error.

TipoCómo trata la resistencia de los cablesUso típico
2 hilosSin compensar. La resistencia de los cables se suma a la lecturaCables cortos, o cuando un error de un grado es aceptable
3 hilosEl tercer hilo permite al transmisor restar la resistencia de los cables, si los tres hilos son igualesLa opción habitual en plantas industriales
4 hilosDos hilos llevan la corriente y dos miden la tensión, así que la resistencia de los cables no cuentaLaboratorio, calibración y máxima precisión

La sonda también tiene su propia clase de tolerancia. Según la IEC 60751, la clase B admite ±(0,3 + 0,005 × |t|) °C y la clase A ±(0,15 + 0,002 × |t|) °C, así que a 100 °C una sonda de clase B puede desviarse hasta ±0,8 °C.

De resistencia a señal analógica: el transmisor PT100

Las entradas analógicas del PLC miden 0-10 V, no resistencia. Un transmisor PT100 hace pasar una pequeña corriente por la sonda, mide la tensión en ella y da una salida proporcional a la temperatura en su rango. El transmisor de esta guía es una unidad de cabezal con alimentación de 24 Vdc, entrada PT100, rango de -50 a 100 °C y salida de 0-10 V.

Etiqueta del transmisor PT100: entrada Pt100, alimentación 24 VDC, salida 0-10 V, rango -50 a 100 °C, 0,2 % FS
Transmisor PT100 de cabezal: alimentación de 24 Vdc, rango de -50 a 100 °C, salida de 0-10 V, 0,2 % FS.

Hay otros rangos y salidas, por ejemplo de 0 a 300 °C, o con salida de 4-20 mA. Un lazo de 4-20 mA es mejor para cables largos y plantas con ruido. Para leerlo con una entrada de 0-10 V, consulta cómo convertir una señal de 4-20 mA a 0-10 V en un PLC Arduino.

Conexión de la PT100 y el transmisor al PLC

Sonda PT100 de 3 hilos conectada al transmisor: dos hilos rojos y uno blanco en los bornes de la sonda, alimentación de 24 Vdc y cable de salida de 0-10 V
Conexión de una PT100 de 3 hilos: 24 Vdc en los dos bornes superiores, salida de 0-10 V al PLC y la sonda en los bornes inferiores.
  1. Alimentación. Conecta 24 Vdc a los dos bornes superiores del transmisor, + y -.
  2. Salida. Conecta el borne de salida de 0-10 V a una entrada analógica del PLC, aquí I0.7, y une el 0 V de la alimentación del transmisor con el GND del PLC.
  3. Sonda. Conecta la PT100 a los bornes que hay bajo el símbolo de la resistencia. En una sonda de 3 hilos, los dos hilos del mismo color (rojos en esta sonda) van al mismo extremo del elemento; conéctalos a los bornes emparejados, y el hilo solo (blanco) al otro. En una sonda de 2 hilos, puentea los bornes emparejados. Sigue el dibujo de tu propio transmisor.

Comprueba la sonda antes de alimentar. Mide la sonda con un multímetro entre el hilo solo y uno de los hilos emparejados: a unos 20 °C debe marcar cerca de 108 Ω. Entre los dos hilos emparejados debe marcar casi 0 Ω.

Convertir la lectura analógica a temperatura

Las entradas analógicas de los PLC de Industrial Shields miden 0-10 V, con una resolución distinta en cada familia. Las fichas técnicas dan estos valores:

Familia de PLCResoluciónCuenta máxima°C por cuenta con un rango de 150 °C
M-Duino y Ardbox10 bits10230,15 °C
ESP32 PLC11 bits20470,07 °C
Raspberry PLC12 bits40950,04 °C

La salida del transmisor es lineal en su rango, así que dos pasos dan la temperatura:

tensión     = valor × 10 / cuenta máxima
temperatura = (T_max - T_min) / 10 × tensión + T_min

Para -50 a 100 °C, (100 - (-50)) / 10 = 15 °C por voltio, así que temperatura = 15 × tensión - 50. Por ejemplo, 5 V dan 25 °C.

Este sketch lee I0.7 una vez por segundo sin bloquear el bucle e imprime el valor en bruto, la tensión y la temperatura:

// PT100 transmitter -50 to 100 C, output 0-10 V, on analog input I0.7
// ADC_MAX: M-Duino and Ardbox 1023 (10 bit), ESP32 PLC 2047 (11 bit), Raspberry PLC 4095 (12 bit)
const float ADC_MAX = 1023.0;
const float V_MAX = 10.0;      // full scale of the PLC input, V
const float T_MIN = -50.0;     // transmitter range, C
const float T_MAX = 100.0;
const unsigned long PERIOD = 1000;  // ms between readings
unsigned long lastRead = 0;

void setup() {
  Serial.begin(115200);
  pinMode(I0_7, INPUT);
}

void loop() {
  unsigned long now = millis();
  if (now - lastRead >= PERIOD) {
    lastRead = now;
    int raw = analogRead(I0_7);
    float volt = raw * V_MAX / ADC_MAX;
    float temp = (T_MAX - T_MIN) / V_MAX * volt + T_MIN;  // 15 C per volt for -50 to 100 C
    Serial.print("Raw: ");
    Serial.print(raw);
    Serial.print("  Voltage: ");
    Serial.print(volt, 2);
    Serial.print(" V  Temperature: ");
    Serial.print(temp, 1);
    Serial.println(" C");
  }
}

Lo hemos compilado para el M-Duino 21+ con avr-gcc y el paquete de placas AVR de Industrial Shields 1.2.1, sin errores ni avisos. No lo hemos ejecutado con una sonda para esta edición. Para un ESP32 PLC, pon ADC_MAX a 2047, como hacía la primera versión de este post. Para otro rango de transmisor, cambia T_MIN y T_MAX.

Solución de problemas en la lectura de una PT100

SíntomaQué comprobar
La lectura sale unos grados alta con una sonda de 2 hilosResistencia de los cables. Usa una sonda de 3 hilos, un cable más corto o más grueso, o resta un offset fijo medido a una temperatura conocida.
El valor salta varias cuentasRuido en la línea de 0-10 V. Separa el cable de señal de los cables de potencia, usa cable apantallado con la pantalla a tierra en un extremo y promedia varias lecturas.
La lectura se queda arriba o abajo del rangoSonda cortada o en cortocircuito, o conectada en los bornes equivocados. Mide la resistencia de la sonda.
La temperatura siempre se desvía en el mismo factorCuenta máxima equivocada para tu familia de PLC, o rango equivocado en el código.

Sensores de temperatura en un PLC, con código que funciona. La PLC Solution Library tiene un ejemplo que lee transmisores de presión y temperatura de 4-20 mA en un ESP32 PLC. Para ver sensores de temperatura leídos por Modbus RTU y TCP, lee el caso de la red de temperatura Modbus.

Ver el ejemplo de sensores 4-20 mALeer el caso

Preguntas frecuentes sobre sensores PT100 y PLC

¿Puedo conectar una PT100 directamente a una entrada analógica del PLC?

No a una entrada de 0-10 V o 4-20 mA. La PT100 cambia su resistencia, no una tensión ni una corriente, así que necesitas un transmisor o un módulo de entrada RTD entre ambos.

¿Qué resistencia tiene una PT100 a 0 °C y a 100 °C?

100,00 Ω a 0 °C y 138,51 Ω a 100 °C, según la curva de la IEC 60751.

¿PT100 de 2 hilos o de 3 hilos?

Usa 3 hilos en la mayoría de instalaciones industriales. Compensa la resistencia del cable si los tres hilos son iguales. Una sonda de 2 hilos solo sirve con cables cortos o cuando un error de un grado es aceptable.

¿Transmisor de 0-10 V o de 4-20 mA?

El de 0-10 V es más sencillo de leer con las entradas analógicas de los PLC de Industrial Shields. El de 4-20 mA resiste mejor el ruido en cables largos y muestra un lazo cortado como 0 mA.

¿Por qué la fórmula es lineal si la curva de la PT100 no lo es?

Porque el transmisor da una salida proporcional a la temperatura en su rango. El PLC solo escala la tensión. Si mides la resistencia tú mismo, usa la ecuación de Callendar-Van Dusen.

Buscar en nuestro blog

Leer la temperatura con un sensor PT100 y un PLC industrial
Boot & Work Corp. S.L, Bernat Brunet Pedra 19 de julio de 2024
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs