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



- 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:
| Temperatura | Resistencia de la PT100 |
|---|---|
| -50 °C | 80,31 Ω |
| 0 °C | 100,00 Ω |
| 25 °C | 109,73 Ω |
| 50 °C | 119,40 Ω |
| 100 °C | 138,51 Ω |
| 150 °C | 157,33 Ω |
| 200 °C | 175,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.
| Tipo | Cómo trata la resistencia de los cables | Uso típico |
|---|---|---|
| 2 hilos | Sin compensar. La resistencia de los cables se suma a la lectura | Cables cortos, o cuando un error de un grado es aceptable |
| 3 hilos | El tercer hilo permite al transmisor restar la resistencia de los cables, si los tres hilos son iguales | La opción habitual en plantas industriales |
| 4 hilos | Dos hilos llevan la corriente y dos miden la tensión, así que la resistencia de los cables no cuenta | Laboratorio, 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.

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

- Alimentación. Conecta 24 Vdc a los dos bornes superiores del transmisor, + y -.
- 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.
- 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 PLC | Resolución | Cuenta máxima | °C por cuenta con un rango de 150 °C |
|---|---|---|---|
| M-Duino y Ardbox | 10 bits | 1023 | 0,15 °C |
| ESP32 PLC | 11 bits | 2047 | 0,07 °C |
| Raspberry PLC | 12 bits | 4095 | 0,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íntoma | Qué comprobar |
|---|---|
| La lectura sale unos grados alta con una sonda de 2 hilos | Resistencia 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 cuentas | Ruido 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 rango | Sonda 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 factor | Cuenta 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.
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.