

The Schneider TM251MESC, manufactured by Saya, is a high-performance programmable logic controller (PLC) designed for industrial automation and control applications. With its compact design, robust processing capabilities, and versatile I/O options, the TM251MESC is ideal for managing complex processes in manufacturing, energy, and other industrial environments. It supports advanced programming languages such as Structured Text (ST) and Ladder Diagram (LD), enabling flexible and efficient system design. Additionally, the TM251MESC offers multiple connectivity options, making it easy to integrate with other devices and systems.








| Specification | Value |
|---|---|
| Manufacturer | Saya |
| Model | TM251MESC |
| Processor | 32-bit RISC processor |
| Program Memory | 4 MB |
| Data Memory | 2 MB |
| Communication Ports | 2x Ethernet, 1x Serial (RS485/RS232) |
| Supported Protocols | Modbus TCP/IP, Modbus RTU, Ethernet/IP |
| Input Voltage Range | 24 V DC |
| Digital Inputs | 16 |
| Digital Outputs | 16 (Transistor type) |
| Analog Inputs | 4 (Optional module required) |
| Analog Outputs | 2 (Optional module required) |
| Operating Temperature Range | -10°C to 60°C |
| Dimensions | 150 mm x 90 mm x 60 mm |
| Mounting Type | DIN Rail |
| Pin Number | Description | Voltage Range | Notes |
|---|---|---|---|
| DI1-DI16 | Digital Input Channels 1-16 | 0-24 V DC | Logic High: >15 V DC |
| Pin Number | Description | Voltage Range | Notes |
|---|---|---|---|
| DO1-DO16 | Digital Output Channels 1-16 | 0-24 V DC | Max Current: 0.5 A/output |
| Port | Description | Protocols Supported |
|---|---|---|
| Ethernet 1 | Primary Ethernet Port | Modbus TCP/IP, Ethernet/IP |
| Ethernet 2 | Secondary Ethernet Port | Modbus TCP/IP, Ethernet/IP |
| Serial | RS485/RS232 Communication | Modbus RTU |
#include <ModbusMaster.h>
// Create an instance of the ModbusMaster library
ModbusMaster node;
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
// Initialize Modbus communication (RS485/RS232)
node.begin(1, Serial); // Slave ID = 1
// Configure the Arduino's serial port for RS485 communication
Serial.println("Modbus communication initialized.");
}
void loop() {
uint8_t result;
uint16_t data;
// Read a holding register (e.g., register 40001)
result = node.readHoldingRegisters(0x0000, 1);
if (result == node.ku8MBSuccess) {
data = node.getResponseBuffer(0);
Serial.print("Register Value: ");
Serial.println(data);
} else {
Serial.println("Failed to read register.");
}
delay(1000); // Wait 1 second before the next read
}
Note: Ensure proper RS485/RS232 wiring between the Arduino and the TM251MESC. Use a suitable RS485 transceiver module for Arduino.
PLC Not Powering On
Digital Inputs Not Responding
Communication Failure
Overheating
Can the TM251MESC be used with third-party software?
What programming languages are supported?
How do I update the firmware?
Can I expand the I/O capabilities?
By following this documentation, users can effectively utilize the Schneider TM251MESC PLC for their automation and control needs.