Morningstar TriStar MPPT 60

Solar battery charge controller

The 150V TriStar MPPT 60 combines solar battery charging with a built-in Ethernet interface. Its Modbus measurements use fixed-point scaling constants read from the controller, not one universal volts-per-count multiplier. This makes an initial scaling read as important as the battery-voltage address itself.

Morningstar TriStar MPPT 60 solar charge controller
  • Modbus TCP

Solar battery charge controller

Compatibility

Documented local Modbus TCP interface

The manufacturer documents the read interface. Edge requires an explicitly configured client and verified point definitions; this guide is not a ready-made device template.

TS-MPPT-60, 150V family, using MS-002582 Modbus specification v11. Not the TriStar PWM controller or TriStar MPPT 600V. The 30A and 45A versions do not inherit the 60A Ethernet interface. Read-only monitoring; charging setpoints remain under the established battery commissioning process.

Connect it with

For the TS-MPPT-60 local Ethernet interface

  • Modbus
  • Edge
  • Platforms
Solar battery charge controller
Interface
Gateway
Edge
Output
TriStar MPPT 60TS-MPPT-60 Ethernet port
Protected EthernetSegmented LAN
ZGW-20 GatewayHosts Edge locally
EpiSensor EdgeModbus client + register map
Customer platformMQTT · API · files
Modbus TCP
Protected Ethernet
Runs locally
Optional onward data
The documented defaults are DHCP, TCP port 502 and unit ID 1. Confirm the actual address before use. The v11 specification notes that the controller closes the TCP socket after each response; the client must reconnect cleanly where that behavior applies. The customer-platform output is optional; Edge remains the local system of record.

Models

Download
ModelsInterfaceRoute into Edge
TS-MPPT-60, 150VBuilt-in Ethernet plus serial interfacesUse the 150V TriStar MPPT map and read its scaling constants.
TS-MPPT-30 / TS-MPPT-45Different current ratings and communication-port availabilityDo not assume the 60A model’s Ethernet path.
TriStar MPPT 600V and TriStar PWMDifferent controller families and protocol definitionsObtain their own register specifications rather than copying this point map.

Specifications

Map
MS-002582 v11; addresses explicitly identify request PDU offsets1
Ethernet defaults
DHCP, TCP 502, Modbus ID 11
Voltage scaling
V_PU = whole + fraction / 65536; measurement = signed raw × V_PU / 327681
Serial defaults
9600 baud, no parity, 8 data bits; the controller sends 2 stop bits and accepts 1 or 21
Read functions
FC03 holding or FC04 input-register reads as documented1
Installation envelope
IP20 / Type 1 indoor vented enclosure and -40 to +45 °C ambient range are documented; the housing is not an outdoor weatherproof enclosure.3

Interface

Documented measurements and integration boundaries for TriStar MPPT 60.

  • V_PU at PDU addresses 0 and 1: whole and fractional parts of the voltage scaling constant.
  • I_PU at addresses 2 and 3: the corresponding current scaling constant.
  • Battery voltage at 0x0018 and battery terminal/sense measurements at 0x0019/0x001A.
  • Array voltage and current, battery charging current and charge state from the named RAM variables.
  • Controller faults and alarms alongside energy and daily-log quantities.
  • Remote temperature-sensor disconnection has a specific sentinel; it must not appear as a real temperature.

Assessment

TS-MPPT-60 150V Ethernet monitoring using MS-002582 v11.

InteroperabilityWell supported
The public protocol defines functions, PDU addresses and fixed-point scaling with a complete voltage example.1
AccuracySupported with conditions
Voltage/current scalers and distinct terminal/sense points are documented. The hourmeter word-order inconsistency requires separate verification.1
SecuritySupported with conditions
The local interface includes writable charging and network parameters. The cited protocol does not establish encrypted or authenticated Modbus transport.1
ReliabilitySupported with conditions
Documented TCP socket behavior and status/fault points allow deliberate reconnect and stale-data handling.1
RuggednessSupported with conditions
IP20 / Type 1 indoor vented enclosure and -40 to +45 °C ambient range are documented; the housing is not an outdoor weatherproof enclosure.3
ScalabilitySupported with conditions
The networking guide covers routed/bridged arrangements, but the endpoint and unit ID must identify the intended controller rather than assume every model has Ethernet.12
LifecycleSupported with conditions
The protocol carries a version and date; retain it with controller firmware and revalidate scaling after equipment changes.1

Setup

Scale a battery-voltage read

The manufacturer’s worked voltage example, decoded without rounding the stored scaling fraction first.

Scaling request
FC03, address 0, length 2; PDU 03 00 00 00 02
Scaling data
00 7B E0 41: V_PU = 123 + 57409/65536 = 123.87599182128906
Voltage request
FC03, PDU address 24, length 1; 03 00 18 00 01
Voltage data
0D B0 = signed 16-bit 3504
Decode
3504 × 123.87599182128906 / 32768 = 13.246504984796047 V
Display comparison
Approximately 13.25 V after rounding; compare the corresponding local measurement

Acceptance: This example verifies the fixed-point method, not a permanent device-wide multiplier. Read the scaling constants from the actual controller; replacing them with the example values can produce plausible but incorrect readings.

  1. Identify the 150V controller

    Record TS-MPPT-60 from the nameplate and note firmware. The 600V product and PWM TriStar use different maps. Verify that the chosen network endpoint is the controller rather than an unrelated bridge.

  2. Establish the protected Ethernet connection

    Find its DHCP lease or documented network configuration. Use the configured unit ID and TCP port, normally 1 and 502. Keep the local monitoring interface off the public internet; network reachability does not make write commands safe.

  3. Read scaling before measurements

    Read holding registers 0 and 1 together for V_PU, then 2 and 3 for I_PU. Decode each whole-plus-fraction constant using denominator 65536. Retain those values with the device configuration and refresh them after replacement or firmware changes.

  4. Verify one battery-voltage point

    Read one register at PDU address 24 (0x0018). Decode its signed 16-bit raw value and multiply by V_PU/32768. Compare with the controller display or an appropriate reference at the same electrical boundary.

  5. Make polling resilient

    Use the documented RAM regions, avoid reserved gaps and preserve faults, unavailable sensor states and stale timestamps. Check reconnect behavior because the v11 document describes a socket close after each response. Do not include charge-setting registers in a read-only polling configuration.