1+ # MIC Series - Micro Inverters (V3.05 Protocol)
2+ # Single-phase micro inverters, 600W-3300W
3+ # Register range: 0-179 (compact legacy protocol)
4+ # Protocol version: V3.05 (2013)
5+
6+ MIC_600_3300TL_X = {
7+ 'name' : 'MIC 600-3300TL-X' ,
8+ 'description' : 'Single-phase micro inverter (0.6-3.3kW) - Legacy V3.05 protocol' ,
9+ 'notes' : 'Uses legacy 0-179 register range. Single PV string only. Simple monitoring features. Protocol V3.05 from 2013.' ,
10+ 'input_registers' : {
11+ # ============================================================================
12+ # RANGE 0-179: Complete register map for MIC series
13+ # ============================================================================
14+
15+ # System Status
16+ 0 : {'name' : 'inverter_status' , 'scale' : 1 , 'unit' : '' , 'desc' : '0=Waiting, 1=Normal, 3=Fault' },
17+
18+ # PV Input Total Power (32-bit)
19+ 1 : {'name' : 'pv_total_power_high' , 'scale' : 1 , 'unit' : '' , 'pair' : 2 },
20+ 2 : {'name' : 'pv_total_power_low' , 'scale' : 1 , 'unit' : '' , 'pair' : 1 , 'combined_scale' : 0.1 , 'combined_unit' : 'W' },
21+
22+ # PV String 1 (Only string for MIC series)
23+ 3 : {'name' : 'pv1_voltage' , 'scale' : 0.1 , 'unit' : 'V' },
24+ 4 : {'name' : 'pv1_current' , 'scale' : 0.1 , 'unit' : 'A' },
25+ 5 : {'name' : 'pv1_power_high' , 'scale' : 1 , 'unit' : '' , 'pair' : 6 },
26+ 6 : {'name' : 'pv1_power_low' , 'scale' : 1 , 'unit' : '' , 'pair' : 5 , 'combined_scale' : 0.1 , 'combined_unit' : 'W' },
27+
28+ # AC Output Total Power (32-bit)
29+ 11 : {'name' : 'ac_power_high' , 'scale' : 1 , 'unit' : '' , 'pair' : 12 },
30+ 12 : {'name' : 'ac_power_low' , 'scale' : 1 , 'unit' : '' , 'pair' : 11 , 'combined_scale' : 0.1 , 'combined_unit' : 'W' },
31+
32+ # AC Output
33+ 13 : {'name' : 'ac_frequency' , 'scale' : 0.01 , 'unit' : 'Hz' },
34+ 14 : {'name' : 'ac_voltage' , 'scale' : 0.1 , 'unit' : 'V' },
35+ 15 : {'name' : 'ac_current' , 'scale' : 0.1 , 'unit' : 'A' },
36+ 16 : {'name' : 'ac_power_single_high' , 'scale' : 1 , 'unit' : '' , 'pair' : 17 },
37+ 17 : {'name' : 'ac_power_single_low' , 'scale' : 1 , 'unit' : '' , 'pair' : 16 , 'combined_scale' : 0.1 , 'combined_unit' : 'VA' },
38+
39+ # Energy
40+ 26 : {'name' : 'energy_today_high' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Today energy HIGH' , 'pair' : 27 },
41+ 27 : {'name' : 'energy_today_low' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Today energy LOW' , 'pair' : 26 , 'combined_scale' : 0.1 , 'combined_unit' : 'kWh' },
42+ 28 : {'name' : 'energy_total_high' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Total energy HIGH' , 'pair' : 29 },
43+ 29 : {'name' : 'energy_total_low' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Total energy LOW' , 'pair' : 28 , 'combined_scale' : 0.1 , 'combined_unit' : 'kWh' },
44+ 30 : {'name' : 'time_total_high' , 'scale' : 1 , 'unit' : '' , 'pair' : 31 },
45+ 31 : {'name' : 'time_total_low' , 'scale' : 1 , 'unit' : '' , 'pair' : 30 , 'combined_scale' : 0.5 , 'combined_unit' : 'h' },
46+
47+ # Temperatures
48+ 32 : {'name' : 'inverter_temp' , 'scale' : 0.1 , 'unit' : '°C' },
49+ 41 : {'name' : 'ipm_temp' , 'scale' : 0.1 , 'unit' : '°C' , 'desc' : 'Internal power module temperature' },
50+
51+ # Diagnostics
52+ 40 : {'name' : 'fault_code' , 'scale' : 1 , 'unit' : '' },
53+ 64 : {'name' : 'warning_code' , 'scale' : 1 , 'unit' : '' },
54+
55+ # Grid Fault Records (90-114 for fault history)
56+ 90 : {'name' : 'grid_fault_1_code' , 'scale' : 1 , 'unit' : '' },
57+ 91 : {'name' : 'grid_fault_1_date' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Year/Month (year offset 2000)' },
58+ 92 : {'name' : 'grid_fault_1_time' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Day/Hour' },
59+ 93 : {'name' : 'grid_fault_1_time_ms' , 'scale' : 1 , 'unit' : '' , 'desc' : 'Min/Sec' },
60+ 94 : {'name' : 'grid_fault_1_value' , 'scale' : 1 , 'unit' : '' , 'desc' : '0.1V for voltage faults, 0.01Hz for frequency' },
61+
62+ # Auto test diagnostics (135-144)
63+ 135 : {'name' : 'auto_test_process' , 'scale' : 1 , 'unit' : '' },
64+ 136 : {'name' : 'auto_test_result' , 'scale' : 1 , 'unit' : '' },
65+ 137 : {'name' : 'test_step_stop' , 'scale' : 1 , 'unit' : '' },
66+ 138 : {'name' : 'reserved_0' , 'scale' : 1 , 'unit' : '' },
67+ 139 : {'name' : 'safety_voltage_limit' , 'scale' : 0.1 , 'unit' : 'V' },
68+ 140 : {'name' : 'safety_time_limit' , 'scale' : 1 , 'unit' : 'ms' },
69+ 141 : {'name' : 'real_value' , 'scale' : 0.1 , 'unit' : 'V' },
70+ 142 : {'name' : 'test_value' , 'scale' : 0.1 , 'unit' : 'V' },
71+ 143 : {'name' : 'test_treat_value' , 'scale' : 0.1 , 'unit' : 'V' },
72+ 144 : {'name' : 'test_treat_time' , 'scale' : 1 , 'unit' : 'ms' },
73+ },
74+ 'holding_registers' : {
75+ 0 : {'name' : 'on_off' , 'scale' : 1 , 'unit' : '' , 'access' : 'RW' , 'desc' : 'Low byte: on/off (1/0), High byte: auto start (1/0)' },
76+ 2 : {'name' : 'pf_cmd_memory' , 'scale' : 1 , 'unit' : '' , 'access' : 'RW' , 'desc' : 'Power factor memory state (0/1)' },
77+ 3 : {'name' : 'active_power_rate' , 'scale' : 1 , 'unit' : '%' , 'access' : 'RW' , 'desc' : 'Max output active power percent (0-100)' },
78+ 4 : {'name' : 'reactive_power_rate' , 'scale' : 1 , 'unit' : '%' , 'access' : 'RW' , 'desc' : 'Max output reactive power percent (0-100)' },
79+ 5 : {'name' : 'power_factor' , 'scale' : 1 , 'unit' : '' , 'access' : 'RW' , 'desc' : 'Power factor x10000 (0-20000)' },
80+ 30 : {'name' : 'com_address' , 'scale' : 1 , 'unit' : '' , 'access' : 'RW' , 'desc' : 'Modbus communication address' },
81+ }
82+ }
83+
84+ # Export all MIC profiles
85+ MIC_REGISTER_MAPS = {
86+ 'MIC_600_3300TL_X' : MIC_600_3300TL_X ,
87+ }
0 commit comments