SunSaver MPPT MODBUS® Specification v10 14 July 2010 Morningstar Corporation 1098 Washington Crossing RD Washington Crossing, PA 18977 www.morningstarcorp.com info@morningstarcorp.
SunSaver MPPT MODBUS Specification v08 Contents CONTENTS......................................................................................................................................................... 2 GENERAL INFORMATION ............................................................................................................................ 3 PARAMETERS.............................................................................................................................................
General Information The SunSaver MPPT supports the industry standard MODBUS® application protocol via its Meter RJ-11 interface. A Meterbus to Serial Converter (MSC) is required to adapt the Meter interface to an isolated RS-232 interface**. This document assumes the user is familiar with the MODBUS® protocol and its terminology. Please refer to the documents listed in the References section for more information. ** The MSC adapter is a Morningstar accessory. Contact your dealer for more information.
1 0x0011 0x0012 0x0013 0x0014 18 19 20 21 charge_state array_fault Vb_f Vb_ref 0x0015 0x0016 0x0017 0x0018 0x0019 0x001A 0x001B 0x001C 0x001D 0x001E 0x001F 0x0020 0x0021 0x0022 0x0023 0x0024 0x0025 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Ahc_r_HI Ahc_r_LO Ahc_t_HI Ahc_t_LO kWhc load_state load_fault V_lvd Ahl_r_HI Ahl_r_LO Ahl_t_HI Ahl_t_LO hourmeter_HI hourmeter_LO alarm_HI alarm_LO dip_switch 0x0026 0x0027 39 40 0x0028 0x0029 connected) Charge state Array fault bitfield Battery voltag
Read Coils (0x01), Read Discrete Inputs (0x02), Write Single Coil (0x05) PDU Addr 0x0000 0x0001 0x0002 ... 0x0010 0x0011 0x0012 0x0013 0x0014 0x0015 0x0016 0x0018 0x0019 0x0020 Logical Addr 1 2 3 4-16 17 18 19 20 21 22 23 25 - 26 ...
EEPROM PDU Addr Logical Addr Variable name 0xE000 0xE001 57345 57346 EV_reg EV_float 0xE002 0xE003 0xE004 0xE005 0xE006 0xE007 57347 57348 57349 57350 57351 57352 Et_float Et_floatlb EV_floatlb_trip EV_float_cancel Et_float_exit_cum EV_eq 0xE008 0xE009 0xE00A 0xE00B 0xE00C 57353 57354 57355 57356 57357 Et_eqcalendar Et_eq_above Et_eq_reg 0xE00D 0xE00E 57558 57359 EV_reg2 EV_float2 0xE00F 0xE010 0xE011 0xE012 0xE013 0xE014 57360 57361 57362 57363 57364 57365 Et_float2 Et_floatlb2 EV_floatlb_
0xE026 0xE027 57383 57384 ER_icomp Et_lvd_warn 0xE030 0xE031 0xE032 0xE033 0xE034 0xE035 57393 57394 57395 57396 57397 57398 EV_soc_y2g EV_soc_g2y EV_soc_y2r0 EV_soc_r2y Emodbus_id Emeter_id 0xE036 0xE037 0xE038 0xE039 0xE03A 57399 57400 57401 57402 57403 EVa_ref_fixed EVa_ref_fixed_pct Eic_lim 0xE040 0xE041 0xE042 0xE043 0xE044 0xE045 0xE046 0xE047 0xE048 0xE049 0xE04A 0xE04B 0xE04C 0xE04D 0xE04F 57409 57410 57411 57412 57413 57414 57415 57416 57417 57418 57419 57420 57421 57422 57424 Ehourmeter
Logged Data The SS-MPPT stores approximately 32 days of data. This data is stored in a circular buffer where the oldest data is over-written by the newest data. The log data must be requested and sorted into correct order before the data will be useful. The logged data is mapped from 0x8000-0x81FF (1kB) The data consists of up to 32 blocks of data. (One block is generally one day w/ some exceptions) Each block is 32bytes (16 modbus variables) It is written in a circular buffer format.
16 18 19 20 21 22-31 load_fault_daily Va_max_daily time_ab_daily time_eq_daily time_fl_daily 2 2 2 2 2 Load fault bitfield – daily Va maximum voltage – daily (v0.
Write Single Register (0x06) Any write to EEPROM will set an “EEPROM changed” fault. The control must be reset to clear this fault. Note: No verify is performed on the write. See EEPROM table in Read Input Registers(0x04). Read Device Identification (0x2B, subcode 0x0E) Only supports “basic device identification (stream access)” (ID code 0x01) Object Id Object Name/Description Typical Value 0x00 VendorName “Morningstar Corp.” 0x01 Product Code “SS-MPPT” 0x02 MajorMinorRevision “v01.01.01” (hardware major.
Variables and Definitions Variable_name [Logical Address][PDU Address] (Units). Short description. Definition. Read Holding and Read Input Registers Located in processor RAM, updated continuously. Adc_vb_f [09][0x0008] (V). battery voltage, filtered. Voltage measured directly at the battery connection on the SunSaver MPPT. Adc_va_f [10][0x0009] (V). solar input voltage. Va is the terminal voltage of the solar input connection. Adc_vl_f [11][0x000A] (V). load voltage.
T_rts [17][0x0010] (C). RTS Temperature. Temperature as measured by the optional Remote Temperature Sensor(RTS). Reported in degrees C. Charge_state [18][0x0011] ( ). Reports the charge state. Value 0 1 2 3 4 5 6 7 8 Charge State START NIGHT_CHECK DISCONNECT NIGHT FAULT BULK_CHARGE ABSORPTION FLOAT EQUALIZE Array_fault [19][0x0012] (bit-field). Solar input self-diagnostic faults. Reports faults identified by self diagnostics. Each bit corresponds to a specific fault.
Vb_ref [21][0x0014] (V). Reference Voltage. Target voltage to which the battery will be charged. This value is temperature compensated. Ahc_r_HI / Ahc_r_LO [22, 23][0x0015, 0x0016] (ah).Charge amp-hours (reset-able counter). Reports total solar amp-hours since last ah reset. Ahc_t_HI / Ahc_t_LO [24, 25][0x0017, 0x0018] (ah).Charge amp-hours (Total cumulative counter). Reports total solar amp-hours since last ah reset. kWhc [26][0x0019] (kWh).Charge kilowatt-hours (reset-able counter).
V_lvd [29][0x001C] (V). LVD voltage. Low voltage disconnect setpoint, current compensated. Ahl_r_HI / Ahl_r_LO [30, 31][0x001D, 0x001E] (ah).Load amp-hours (reset-able counter). Reports total load amp-hours since last ah reset. Ahl_t_HI / Ahl_t_LO [32, 33][0x001F, 0x0020] (ah).Load amp-hours (Total cumulative counter). Reports total load amp-hours since last ah reset. hourmeter_HI / hourmeter_LO [34, 35][0x0021, 0x0022] (hrs).hour meter counter. Reports total hours of operation since installed.
dip_switch [38][0x0025] (bit-field). dip switch positions. Each bit in the bit-field corresponds to an individual DIP switch setting. Useful for remote applications where access to SunSaver MPPT to verify DIP positions is not feasible. Bit 0 1 2 3 Function Battery Type LVD / LVR Equalize Comm. Select “0” value User Select jumper 11.5 V / 12.
Sweep_Vmp [41][0x0028] (V). Solar array Vmp. Maximum power voltage of the solar array found during last sweep. Sweep_Pmax [42][0x0029] (W). Maximum array power. Maximum power output of the solar array found during last sweep. Sweep_Voc [43][0x002A] (V). Solar array Voc. Open circuit voltage of the solar array found during last sweep. Vb_min_daily [44][0x002B] (V). Today’s minimum battery voltage. Minimum battery voltage measured today (value resets after dark). Vb_max_daily [45][0x002C] (V).
Reports alarms identified by self diagnostics that occurred today. Each bit corresponds to a specific alarm. If a bit is set, that alarm occurred at least once today. Bit order is identical to the alarm_hi/alarm_lo bitfield. Vb_min [52][0x0033] (V). Minimum battery voltage Tracks the minimum battery voltage over time. This value is set equal to the present battery voltage when a Ah / kWh reset is requested through the meter or Modbus Coil. Vb_max [53][0x0034] (V).
EEPROM Values EEPROM values that require updating are done so once every 24 hours. Charging Settings (bank 1 & bank 2) Diagram A Charging stages and defining variables. EV_reg [57345][0xE000](V). Regulation voltage (absorption), bank 1 @ 25ºC. EV_reg2 [57558][0xE00D](V). Regulation voltage (absorption), bank 2 @ 25ºC. The battery will charge at 100% charge current until battery voltage reaches this setpoint.
EV_float [57346][0xE001](V). Float voltage, bank 1 @ 25ºC EV_float2 [57359][0xE00E](V). Float voltage, bank 2 @ 25ºC After Et_float seconds in absorption, when the battery is fully charged, the battery will transition to this lower voltage charge setting to reduce gassing. See diagram A.
EV_eq [57352][0xE007](V). Equalize voltage @ 25ºC, bank 1 EV_eq2 [57365][0xE014](V). Equalize voltage @ 25ºC, bank 2 Battery equalize voltage. Periodic equalization equalizes cell voltages, bubbles the electrolyte, and helps prevent sulfation of the battery. See diagram A. Set to zero to disable equalization Et_eqcalendar [57353][0xE008](days). days between eq cycles, bank 1 Et_eqcalendar2 [57366][0xE015](days). days between eq cycles, bank 2 Specify the number of days between equalizations.
EV_hvr [57373][0xE01C](V) High Voltage Reconnect The HVD fault/alarm will be cleared once the battery voltage drops below this setpoint. Evb_ref_lim [57374][0xE01D](V) Maximum regulation limit An absolute limit on the battery regulation voltage. This is not a temperature compensated value. Protects high voltage sensitive system loads. Set to zero to disable. ETb_max [57375][0xE01E](C) Maximum temperature compensation limit Maximum temperature to clamp temperature compensation.
Setpoint at which the loads will reconnect after a high voltage condition. ER_icomp [57383][0xE026](V/A). LVD Load current compensation The LVD setpoint can be compensated in proportion to load current, lowering the disconnect value when the battery is under load. Note that the LED setpoints are also compensated accordingly. Et_lvd_warn [57384][0xE027](sec).
LED transition setpoint. Specifies the battery threshold voltage at which the LEDs will change from Red to Yellow indication. Emodbus _id [57397][0xE034](). MODBUS ID MODBUS address which uniquely identifies the controller on the MODBUS network. Emeter _id [57398][0xE035](). MeterBus ID Address which uniquely identifies the controller on the Morningstar proprietary Meter Bus network. Devices are daisy-chained on the Meter Bus network via the RJ-11 connections.
Read-Only Variables Ehourmeter_LO / Ehourmeter_HI [57409,57410][0xE040,0xE041](hours). Hourmeter Cumulative hours the controller has been running. Non-volatile, written every 24hrs. EAhl_r_LO / EAhl_r_HI [57411,57412][0xE042,0xE043](amp-hours). Load resetable Ah Cumulative amp-hours typically used for short-term logging. Resetable. EAhl_t_LO / EAhl_t_HI [57413,57414][0xE044,0xE045](amp-hours). Load total Ah Cumulative amp-hours for long term logging. Can be reset if needed.
EVa_max [57422][0xE04D](V). Maximum array voltage Maximum array voltage over last 24 hours. Written once every 24hrs. Etmr_eqcalendar [57424][0xE04F](V). Equalize calendar timer Number of days since last equalize. Coils Equalize Triggered [01] [0x0000] Trigger an equalize charge. Controller must be configured to a battery type that has equalization stage and the equalize DIP switch must not be set to “disabled”. After the equalize charge has been administered, the equalize calendar will be reset.
Clear kWh [19] [0x0012] Resets solar kilowatt-hour counter back to 0. (set only, will always read 0) Force EEPROM update [23] [0x0016] Force the controller to update EEPROM with RAM values. (set only, will always read 0) Reset control [256] [0x00FF] Reset control will force a reboot of the processor software.
Examples Read Holding Register, Scaling Variable (RAM): Register Address: Scaling for this variable: Battery Voltage 0x0008 n·100·2-15 1. read Register value(hex): 2. Convert to decimal: 3. Scale decimal value: 0x0F96 3990 (3990 * 100) / 32768 Read Holding Register, 2 Word values Variable (RAM): LO Register Address: HI Register Address: Scaling for this variable: 1. 2. 3. 4.
References MODBUS® Protocol Reference Guide, Modicon, June 1996, PI-MODBUS-300 Rev.J MODBUS® Application Protocol Specification, modbus.org, 8May02, Modbus_application_protocol_v1 Document Revision History V05: V06: V07: V08: V09: V10: Public Release MSC meterbus adapter available through your local dealer EEPROM register [0xE04A] kWhr scaling was incorrect. Correct scaling is n·0.