upm
0.8.0
Sensor/Actuator repository for libmraa (v1.1.1)
|
UPM API for the Veris H803X Energy Meter. More...
This module implements support for the Veris H8035 and H8036 Energy Meters.
The H8036 is similar to the H8035, but provides much more data.
The Enercept H8035/H8036 is an innovative three-phase networked (Modbus RTU) power transducer that combines electronics and high accuracy industrial grade CTs in a single package. The need for external electrical enclosures is eliminated, greatly reducing installation time and cost. Color-coordination between voltage leads and CTs makes phase matching easy. Additionally, these transducers automatically detect and compensate for phase reversal, eliminating the concern of CT load orientation. Up to 63 Transducers can be daisy-chained on a single RS-485 network.
This module was developed using libmodbus 3.1.2, and the H8035. The H8036 has not been tested. libmodbus 3.1.2 must be present for this module to build.
It was developed using an RS232->RS485 interface. You cannot use the built in MCU TTL UART pins for accessing this device – you must use a full Serial RS232->RS485 or USB-RS485 interface connected via USB.
Protected Member Functions | |
int | readHoldingRegs (HOLDING_REGS_T reg, int len, uint16_t *buf) |
void | writeHoldingReg (HOLDING_REGS_T reg, int value) |
void | clearData () |
void | testH8036 () |
Protected Attributes | |
modbus_t * | m_mbContext |
bool | m_isH8036 |
H803X | ( | std::string | device, |
int | address, | ||
int | baud = 9600 , |
||
int | bits = 8 , |
||
char | parity = 'N' , |
||
int | stopBits = 2 |
||
) |
H803X constructor
device | Path to the serial device |
address | The MODBUS slave address |
baud | The baudrate of the device. Default: 9600 |
bits | The number of bits per byte. Default: 8 |
parity | The parity of the connection, 'N' for None, 'E' for Even, 'O' for Odd. Default: 'N' |
stopBits | The number of stop bits. Default: 2 |
void update | ( | void | ) |
Read current values from the sensor and update internal stored values. This method must be called prior to querying any values.
string getSlaveID | ( | ) |
Return a string corresponding the the device's MODBUS slave ID.
void setSlaveAddress | ( | int | addr | ) |
Set a new MODBUS slave address. This is useful if you have multiple H803X devices on a single bus. When this method is called, the current stored data is cleared, and a new attempt is made to determine whether the target device is an H8035 or H8036.
addr | The new slave address to set |
void presetConsumption | ( | float | value, |
MULTIPLIERS_T | multiplier | ||
) |
Preset the kWh accumulated Consumption registers to a predefined value. This is generally not advised, but is provided for those installations that might require it. The multiplier depends on the current range of your device. Be sure to select the right multiplier for your devices' supported current capacity.
value | The desired value for the consumption accumulator registers in kWh. |
multiplier | The correct MULTIPLIERS_T value for your device. |
|
inline |
Return the accumulated consumption value, in kWh. update() must have been called prior to calling this method.
|
inline |
Return the real power value in kW. update() must have been called prior to calling this method.
|
inline |
Return the reactive power value in kVAR (kilo-volt Amperes Reactive). update() must have been called prior to calling this method.
|
inline |
Return the apparent power value in kVA. update() must have been called prior to calling this method.
|
inline |
Return the power factor value. update() must have been called prior to calling this method.
|
inline |
Return the voltage line to line value. update() must have been called prior to calling this method.
|
inline |
Return the voltage line to neutral. update() must have been called prior to calling this method.
|
inline |
Return the current value in amps. update() must have been called prior to calling this method.
|
inline |
Return the real power for phase A. update() must have been called prior to calling this method.
|
inline |
Return the real power for phase B. update() must have been called prior to calling this method.
|
inline |
Return the real power for phase C. update() must have been called prior to calling this method.
|
inline |
Return the power factor for phase A. update() must have been called prior to calling this method.
|
inline |
Return the power factor for phase B. update() must have been called prior to calling this method.
|
inline |
Return the power factor for phase C. update() must have been called prior to calling this method.
|
inline |
Return the voltage for phase A to B. update() must have been called prior to calling this method.
|
inline |
Return the voltage for phase B to C. update() must have been called prior to calling this method.
|
inline |
Return the voltage for phase A to B. update() must have been called prior to calling this method.
|
inline |
Return the voltage for phase A to neutral. update() must have been called prior to calling this method.
|
inline |
Return the voltage for phase B to neutral. update() must have been called prior to calling this method.
|
inline |
Return the voltage for phase C to neutral. update() must have been called prior to calling this method.
|
inline |
Return the current for phase A. update() must have been called prior to calling this method.
|
inline |
Return the current for phase B. update() must have been called prior to calling this method.
|
inline |
Return the current for phase C. update() must have been called prior to calling this method.
|
inline |
Return the average real power. update() must have been called prior to calling this method.
|
inline |
Return the minimum real power. update() must have been called prior to calling this method.
|
inline |
Return the maximum real power. update() must have been called prior to calling this method.
void setDebug | ( | bool | enable | ) |
Enable or disable debugging output. This primarily enables and disables libmodbus debugging output.
enable | true to enable debugging, false otherwise |
|
inline |
Indicate whether the connected device is an H8035 or an H8036. The H8036 provides many more data registers.