Nuvation Energy Communication Protocol Reference - 2.2 2
Nuvation Energy Communication Protocol Reference - 2.2 2
Nuvation Energy Communication Protocol Reference - 2.2 2
Reference Manual
Document ID: NE-RM-005 | Revision: 2.2, 2020-05-06
1. Introduction
Thank you for choosing Nuvation Energy BMS.
Nuvation Energy BMS is an enterprise-grade battery management system with support for various
external communication protocols like Modbus RTU, Modbus TCP, and CANBus.
Nuvation Energy BMS is conformant with the MESA-Device/Sunspec Energy Storage Model (Draft 3).
MESA (http://mesastandards.org) conformant products share a common communications interface
that exposes all the data and control points required for operating an energy storage system. This
enables Nuvation Energy BMS to be integrated with other MESA-conformant energy storage hardware
or software without the need for custom middleware.
This Communication Protocol: Reference Manual provides instructions on how to setup and configure
Nuvation Energy BMS to communicate over Modbus RTU, Modbus TCP, or CANBus.
We thrive on your feedback and what we build is driven by your input. Please submit support
tickets to support@nuvationenergy.com.
1.2. Units
A standard set of types/units has been adopted for use within Nuvation Energy BMS for the
measurements and configuration settings. Unless otherwise noted, the units used within the firmware
should be assumed as defined below.
Every register within the firmware has an associated type that defines the expected units for that
register.
A negative value for Current and Charge represents a charge direction while a
positive value represents a discharge direction with respect to the cell/stack.
MESA Draft 3 is currently implemented on Nuvation Energy BMS. Be sure to
download the correct draft of the standard from the MESA website.
A good introduction to the benefits of the Open MESA standards is summarized here:
http://mesastandards.org/why-mesa.
A system-level summary of all of the MESA standards can be found here: http://mesastandards.org/
mesa-standards.
Nuvation Energy BMS supports both Modbus RTU and Modbus TCP in the following products:
The Modbus RTU slave address must be set through software configuration. The default slave address
value is 1.
A slave address of zero is used as a broadcast address and should not be used as the
Modbus RTU slave address.
This protocol is used for communications over TCP/IP networks. Stack Controller, Battery Controller,
and Grid Battery Controller support a single Modbus TCP connection over port 502 for read and write
access. Additionally, Grid Battery Controller supports as many as 16 read-only Modbus TCP
connections on port 11503.
Detailed register maps for all Draft 3 models are found in the document MESA-Energy-Storage-
Information-Models_Draft_3.xlsx found at the Nuvation Energy technical resources located at
https://www.nuvationenergy.com/technical-resources.
This model primarily contains information to identify the device (e.g. manufacturer, model, serial
number) as well as the version of software running on the device. A full description of the Common
Model can be found in the SunSpec specification bundle.
2.2.2. S801
This model describes an energy storage device at the highest possible level. State of charge and
overall alarm and warning states are found here. All mandatory points are implemented. The Modbus
address of this model is 40070.
2.2.3. S802
This model describes a battery storage device. At this level, the critical operational information
includes the charge and discharge current limits. All mandatory points are implemented. The Modbus
address of this model is 40094.
2.2.4. S803
This model describes a lithium-ion battery in detail. Voltage, temperature, and current statistics are
available at the pack and stack level within this model. All mandatory and most optional points are
implemented. The Modbus address of this model is 40116.
This model marks the end of the implemented Modbus address space.
2.3.1. Points
All MESA models are a collection of points (i.e. Modbus registers). These points can be one or more
Modbus registers in length. By definition, each Modbus register is 16 bits wide. For points that are
larger than 16 bits, partial read accesses are not allowed. A Modbus read/write error is returned on
such an access.
MESA models are described as collections of Fixed and Repeating blocks of points. A Fixed block is a
set of points that is always defined and never changes in its size. A Repeating block describes a set of
related points (i.e. usually for a string of batteries) of which there could be multiple instances of the
Repeating blocks. The points within a repeating block are the same but these sets of blocks are
concatenated sequentially.
For example in the 803 model, there is a set of repeating blocks that describe data for a particular
stack/string of batteries. Accessing the 803 repeating block corresponds to using a stack/string index
(0, 1, 2, …) to access the desired repeating block.
For a single-stack Nuvation Energy BMS there is only one 803 repeating block. For a multi-stack
Nuvation Energy BMS there are 36 stack/string repeating blocks. If a stack/string is configured in
Nuvation Energy BMS software to be installed, then accessing its 803 repeating block will provide a
valid Modbus response.
For stacks or strings that are not installed, accessing the corresponding repeating block will result in
an unimplemented point response. Repeating blocks are taken into account in the length indicated in
the model header.
Any MESA point that is not implemented by a vendor will generate an unimplemented response. The
response will be a valid Modbus read response but all point data returned will report unimplemented
values. The unimplemented values vary by type as listed in the following table.
A write to a writeable MESA point that is unimplemented will generate a Modbus write error.
The MESA implementation on Nuvation Energy BMS has unimplemented points as follows:
All MESA points are integer values (signed or unsigned). To account for different range values beyond
the data size (i.e. greater than 65535 for an unsigned 16 bit value) or some fractional value (i.e.
1.1), some MESA points have scale factors associated with them. The scale factor is another point
within the model which contains a signed integer exponent of base 10 that scales a corresponding
point value. For example a scale factor of 2 would result in multiplying the corresponding point by
100. Likewise a scale factor of -3 would result in a scale factor of 0.001. Refer to the prior MESA Draft
3 spreadsheet for the relationship between MESA points and their scale factors. All scale factors are
fixed for a model and do not change in value.
1. An external controller (sometimes called "Energy Storage Controller") is used to coordinate power
control functions of the BMS in conjunction with some other equipment (such as an inverter). This
controller requires periodic and rapid responses of MESA point reads as well as some control over
the operation of the BMS (such as stack connectivity). If there is a loss of communication between
this controller and the BMS, the BMS will disconnect the stack(s) as a safety precaution.
2. An owner/operator of a battery system requires control of the BMS to monitor the activity of the
batteries and track battery usage and its charge/discharge activities. This information can then be
used to characterize the usage of the battery management system and to validate battery
warranties of a vendor.
Read and write Modbus TCP operations can be performed over the standard Modbus port 502 (only a
single connection is supported on this port). In the scenario where the MESA interface must be
accessed by multiple devices, Grid Battery Controller provides a secondary port (11503) for read-only
Modbus TCP operations.
These two operational cases will be discussed in detail in the following sections.
An external controller typically polls Nuvation Energy BMS battery control points at a rate of 2-4Hz.
This controller reads data points required to manage current flow in the system. The following table
summarizes the most important points an external controller may want to read from the BMS.
A controller may also want to command Nuvation Energy BMS to perform certain actions, such as
connecting/disconnecting all stacks/strings. The following table provides the different writeable points
in the MESA interface for different control functions:
When configured, the heartbeat controller can be used to update the watchdog timer of Nuvation
Energy BMS on single-stack and multi-stack implementations. If the heartbeat point is not updated
within the watchdog timer period, a fault will be generated on the BMS stack(s) and their
corresponding contactors will be opened. The value written to the heartbeat point must increase in
value and roll over to zero when the 16 bit range limit is reached.
The clearing of alarms of Nuvation Energy BMS is accomplished by writing a value of 1 to the
DERAlarmReset point. This point is erroneously identified as read only in the Mesa Draft 3 spreadsheet
referenced earlier. Note that alarm will not be cleared if the alarm condition is still present.
An external data logger may want to access a variety of data from the BMS. In general, a data logger
will not actively manage Nuvation Energy BMS; normally, it will not initiate actions such as connecting
a battery stack to the DC voltage bus or clearing faults. A data logger should connect to one of the
read-only Modbus connections (if available) to allow the writable Modbus connection to be available
for separate external control functions. The following table contains the MESA data points exposed by
the BMS that could be collected for logging purposes.
The term Index in the Repeating block addresses used in the above table refers to a
calculation of Index = Stack Index * Length of Repeating block. By definition, the 803
Repeating block is 16 Modbus registers in length.
Using modpoll.exe, the Common Model can be polled from a Stack Controller or Grid Battery Controller
using the following command (assuming the device has an IP address of 192.168.1.21)
As another example, the complete S802 model for a system with one stack could be polled using the
following command:
To access the common model using Modbus RTU (assuming Nuvation Energy BMS is connected to
serial port COM1 and its address is 0x1):
These capabilites are described in detail within the CAN Bus configuration section of the Software
Reference Manual.
From time to time Nuvation Energy will make updates to Nuvation Energy BMS in response to
changes in available technologies, client requests, emerging energy storage standards, and other
industry requirements. The product specifications in this document, therefore, are subject to change
without notice.