meta data for this page
lamaPLC: PTA8C04 4-channel PT100 Modbus Modul
PTA8C04 is a specific model of 4-Channel PT100 RTD Temperature Sensor Module that uses RS485 communication for industrial monitoring, enabling it to read temperatures from multiple PT100 resistance temperature detectors (RTDs) and transmit data via the Modbus RTU protocol for PLCs and other controllers, often mounted on DIN rails.
PTA8C04 Description
- Operating Temperature: -40 to 85°C
- Working Voltage: DC 12V/24V
- Working Current: 14-18 mA
- Compatible Sensor: PT100 3-wire or 2-wire
- PT100 Sensor Range: Version A -40℃ to +220℃, Version B -40℃ to +500℃
- Temperature Measurement Accuracy: 1%
- DIN Rail: PCB board width UM72 (72mm) for DIN35 / C45 rail
If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.
Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.
PTA8C04 Probe wiring mode
PT100 / PT1000 sensors
RTDs (Resistance Temperature Detectors) are straightforward devices: simply a small strip of platinum that measures precisely 100 Ω or 1000 Ω at 0°C. Bonded to the PT100/PT1000 are two, three, or four wires.
Thus, the 4-wire RTD has two wires attached to each side of the sensor. Each wire has about 1Ω of resistance. When connected to the amplifier, the innovative amp measures the voltage across the RTD and across the wire pairs.
For example, the approximate resistances of a 4-wire PT100 RTD at 0 °C are as follows. (For a PT1000, the middle resistance would be about 1002Ω rather than 102Ω).
Connect the two ends of the PT100/PT1000 resistor to the RTD+ and RTD- terminals on the sensor module. For example, a resistance of 102 Ohms can be measured. In a 3-wire or 4-wire setup, the wire connections go to the F+ and F- terminals. These connections might differ from the resistance values of the respective sides by only a few Ohms, meaning the resistance between F+ and RTD+ or F- and RTD- may vary slightly, just a few Ohms.
Basic resistance values in Ohm PT100 sensors according to DIN/IEC 751
PTA8C04 Modbus settings
Default settings: SlaveID: 1, 9600 baud, parity: N,8,1
| holding register addresses | Number of registers | Description | Unit | Note |
|---|---|---|---|---|
| 0 .. 3 | 4 | CH0 .. CH03 Temperature values | 0.1 °C | read-only, 182 → 18.2 °C |
| 32 .. 35 | 4 | CH0 .. CH03 Resistance values | 0.1 Ω | read-only, 1081 → 108.1 Ω |
| 64 .. 67 | 4 | CH0 .. CH03 Temperature correction values | 0.1 °C | r/w; read 0xFFFF |
| 96 .. 99 | 4 | CH0 .. CH03 Resistance correction values | 0.1 Ω | r/w; read 0xFFFF |
| 250 | 1 | Automatic upload of temperature | Second | 0: by query (default), 1..255 sec raster |
| 251 | 1 | Factory data reset | - | Feedback by reset: FF 06 00 FB 00 00 ED E5 |
| 252 | 1 | Data return delay | ms | 0..1000 |
| 253 | 1 | RS 485 Modbus RTU Address | Read: 0xFFFF, write 0..254 | |
| 254 | 1 | Baudrate | 0..8; 0: 1200, 1: 2400, 2: 4800, 3: 9600 (default), 4: 19200, 5: 38400, 6: 57600, 7: 115200, 8: Factory reset | |
| 255 | 1 | Parity | 0: none (default), 1: even, 2: odd | |
Arduino
The PTA8C04 is a 4-channel PT100 RTD acquisition module that communicates via RS485 Modbus RTU, which is fundamentally different from the SPI-based MAX31865. To use it with an Arduino, you typically need an RS485 to TTL converter (like a MAX485 module) and a Modbus library.
Hardware Connections
Connect your Arduino to the PTA8C04 through an RS485 converter:
- VCC/GND: 12V–24V DC to PTA8C04; 5V/GND to RS485 converter.
- A/B Pins: Connect A to A and B to B between the PTA8C04 and the RS485 converter.
- RO (Receive): Arduino Pin 2 (if using SoftwareSerial).
- DI (Driver Input): Arduino Pin 3.
- DE/RE (Enable): Arduino Pins 4 & 5 (tied together to control direction).
Arduino Example Code
This code uses the ModbusMaster library to read temperatures from the first two channels.
#include <ModbusMaster.h> #include <SoftwareSerial.h> #define MAX485_RE_DE 4 // Pins for RE and DE SoftwareSerial rs485(2, 3); // RX, TX ModbusMaster node; void preTransmission() { digitalWrite(MAX485_RE_DE, 1); } void postTransmission() { digitalWrite(MAX485_RE_DE, 0); } void setup() { pinMode(MAX485_RE_DE, OUTPUT); digitalWrite(MAX485_RE_DE, 0); // Start in receive mode Serial.begin(9600); rs485.begin(9600); // PTA8C04 default baud is 9600 node.begin(1, rs485); // Default slave ID is 1 node.preTransmission(preTransmission); node.postTransmission(postTransmission); } void loop() { // Read 4 registers starting at 0x0000 (Channels 1-4) uint8_t result = node.readHoldingRegisters(0x0000, 4); if (result == node.ku8MBSuccess) { for (int i = 0; i < 4; i++) { int16_t rawTemp = node.getResponseBuffer(i); // PTA8C04 provides temperature x10. Divide by 10.0 for Celsius float celsius = rawTemp / 10.0; Serial.print("CH"); Serial.print(i+1); Serial.print(": "); Serial.print(celsius); Serial.println(" C"); } } else { Serial.print("Modbus Error: "); Serial.println(result, HEX); } delay(2000); }
Modbus topics on lamaPLC
This page has been accessed for: Today: 2, Until now: 37







