meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| sensor:eastron_sdm_630 [2026/06/05 13:18] – vamsan | sensor:eastron_sdm_630 [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ==== LamaPLC: Eastron SDM 630 Energy Meter with Modbus communication ==== | ||
| - | {{ : | ||
| - | The Eastron SDM630 is a series of three-phase, | ||
| - | **Key Features** | ||
| - | |||
| - | * **Multifunctional Measurement: | ||
| - | * **Direct Connection: | ||
| - | * **Communication: | ||
| - | * **Display and Usability: | ||
| - | * Certification: | ||
| - | * **Versatility: | ||
| - | |||
| - | ==== Technical Specifications ==== | ||
| - | |||
| - | According to Eastron Europe datasheets and user manuals, the specifications for the standard SDM630 models are as follows: | ||
| - | |||
| - | ^Parameter^Specification| | ||
| - | |Nominal Voltage (Un)|3x230/ | ||
| - | |Maximum Current (Imax)|100 A (direct measurement)| | ||
| - | |Accuracy Class|Class 1 (IEC 62053-21) / Class B (EN50470-3)| | ||
| - | |Frequency Range|50 or 60 Hz| | ||
| - | |Communication|RS485 Modbus RTU, two pulsed outputs| | ||
| - | |Display|Backlit LCD| | ||
| - | |Mounting|35mm DIN rail| | ||
| - | |Protection Degree|IP51 (indoor use)| | ||
| - | |Operating Temperature|-25°C to +55°C| | ||
| - | |||
| - | ==== Eastron SDM630 Version V1, V2, and V3 ==== | ||
| - | The primary difference among the Eastron SDM630 V1, V2, and V3 versions lies in the firmware and specific energy calculation methods, particularly how the meters handle imported and exported energy. | ||
| - | |||
| - | **Key Differences Summary** | ||
| - | |||
| - | * **V1 (Legacy):** The initial version with basic functionality and limited register addresses. It is supported only by certain software configurations at baud rates of 9600 or higher. | ||
| - | * **V2 (Standard/ | ||
| - | * **V3 (Enhanced Functionality/ | ||
| - | |||
| - | **Detailed Comparison Points** | ||
| - | |||
| - | ^Feature^SDM630 V1^SDM630 V2^SDM630 V3| | ||
| - | ^Energy Calculation|Basic Import/ | ||
| - | ^Resettable Energy|Limited options|Includes second resettable total energy counter|Same as V2, possibly enhanced options| | ||
| - | ^Firmware Date|Older builds|Typically prior to 2022|Typically 2022 or later| | ||
| - | ^Modbus Registers|Limited set|More extensive, with added registers|Largely consistent with V2 core registers| | ||
| - | ^Certifications|Standard|Standard, | ||
| - | |||
| - | **Modbus Protocol Consistency** | ||
| - | |||
| - | Crucially, the core Modbus register addresses for real-time measurements (//voltage, current, power, frequency// | ||
| - | |||
| - | The default Modbus communication settings (Address 1, 9600 baud, 8N1) are generally consistent across all three versions, though supplier customizations exist. | ||
| - | |||
| - | |||
| - | {{page> | ||
| - | |||
| - | |||
| - | |||
| - | ==== Arduino & Eastron SDM 630 ==== | ||
| - | The Eastron SDM630 communicates via Modbus RTU over an RS-485 interface, requiring an RS-485 converter module and a dedicated library to read data on an Arduino. The **SDM_Energy_Meter library** simplifies this process. | ||
| - | |||
| - | **Hardware Required** | ||
| - | |||
| - | * **Arduino Board:** Any compatible board (Uno, Nano, Mega, ESP32). | ||
| - | * **RS485 to TTL Converter: | ||
| - | * **Eastron SDM630:** Configured with default settings: Modbus address 1, baud rate 9600, 8 data bits, no parity, 1 stop bit (8N1). | ||
| - | |||
| - | **Wiring Schematic ([[ttl_to_rs485|MAX485 Module]])** | ||
| - | |||
| - | * MAX485 VCC → Arduino 5V | ||
| - | * MAX485 GND → Arduino GND | ||
| - | * MAX485 DI (Driver Input) → Arduino Pin 4 (TX for SoftwareSerial) | ||
| - | * MAX485 RO (Receiver Output) → Arduino Pin 3 (RX for SoftwareSerial) | ||
| - | * MAX485 DE (Driver Enable) → Arduino Pin 2 (Control pin) | ||
| - | * MAX485 RE (Receiver Enable) → Arduino Pin 2 (Connect DE and RE together as you only need one-way communication at a time) | ||
| - | * MAX485 A (RS485+ / Data+) → SDM630 A terminal | ||
| - | * MAX485 B (RS485- / Data-) → SDM630 B terminal | ||
| - | |||
| - | **Arduino Example Code** | ||
| - | |||
| - | This example uses the S**DM_Energy_Meter** library by reaper7 and the standard **SoftwareSerial** library. | ||
| - | |||
| - | <code c> | ||
| - | #include < | ||
| - | #include < | ||
| - | |||
| - | // Pins for the SoftwareSerial communication | ||
| - | // RX pin: 3, TX pin: 4 | ||
| - | SoftwareSerial sdmSerial(3, | ||
| - | |||
| - | // Pin 2 is used to control the DE/RE pins of the MAX485 converter | ||
| - | #define RS485_EN | ||
| - | |||
| - | // Create an SDM object (SoftwareSerial instance, Enable Pin) | ||
| - | SDM sdm(& | ||
| - | |||
| - | void setup() { | ||
| - | Serial.begin(115200); | ||
| - | sdmSerial.begin(9600); | ||
| - | |||
| - | Serial.println(" | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | // Read Voltage (Register 0x0000) | ||
| - | float voltage = sdm.readVal(SDM_PHASE_1_VOLTAGE); | ||
| - | if (!isnan(voltage)) { | ||
| - | Serial.print(" | ||
| - | Serial.print(voltage); | ||
| - | Serial.println(" | ||
| - | } else { | ||
| - | Serial.println(" | ||
| - | } | ||
| - | |||
| - | // Read Total System Power (Register 0x0034 or 0x0052 depending on V1/V2/V3 meter version) | ||
| - | // Check documentation for the specific register address | ||
| - | float power = sdm.readVal(SDM_TOTAL_SYSTEM_POWER); | ||
| - | if (!isnan(power)) { | ||
| - | Serial.print(" | ||
| - | Serial.print(power); | ||
| - | Serial.println(" | ||
| - | } else { | ||
| - | Serial.println(" | ||
| - | } | ||
| - | |||
| - | // Read Total Import Energy (Register 0x0048 or 0x0072 depending on version) | ||
| - | float energy = sdm.readVal(SDM_TOTAL_IMPORT_ENERGY); | ||
| - | if (!isnan(energy)) { | ||
| - | Serial.print(" | ||
| - | Serial.print(energy); | ||
| - | Serial.println(" | ||
| - | } else { | ||
| - | Serial.println(" | ||
| - | } | ||
| - | | ||
| - | delay(3000); | ||
| - | } | ||
| - | |||
| - | </ | ||
| - | |||
| - | {{tag> | ||
| - | \\ | ||
| - | This page has been accessed for: Today: {{counter|today}}, | ||