Skip to main content

Documentation Index

Fetch the complete documentation index at: https://fop-50527c4b.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Two logs form the backbone of day-to-day SUN2000 monitoring: his_inv_rd, which records detailed electrical measurements at 5-minute intervals, and perfmg_data, which accumulates energy yield over time. Together they give you the data you need to catch underperforming strings, identify connector problems, and compare actual generation against forecast.

his_inv_rd — History Inverter Read

his_inv_rd is the inverter’s main operational journal. The ARM processor aggregates DSP samples into 5-minute averages and commits each record to Flash as a binary EMAP entry. Contents:
  • DC voltage and current per MPPT string
  • Heatsink temperature
  • Insulation resistance (Rin) between PV panels and ground
O&M use cases:
  • Finding lazy strings — if one string’s voltage is consistently lower than adjacent strings under identical irradiance, investigate shading, soiling, or a faulty MC4 connector.
  • MC4 connector degradation — a string voltage that swings 10–20 V more than its neighbors under the same sunlight is a strong indicator of a burning contact in an MC4 connector or a panel junction box. This is a direct fire risk.
  • Insulation resistance monitoring — a Rin reading below 100 kΩ is a warning that cable or panel insulation is compromised. This fault is recorded as error code 313 on older 8–42 KTL series and as 2062 on newer series.
During every planned site visit, pull his_inv_rd and filter for Rin values below 100 kΩ. Faults often appear during rain when moisture bridges damaged insulation, so reviewing logs from wet-weather days is especially informative.

Reading his_inv_rd via Modbus FC 0x41

The standard Modbus read functions (FC 03, FC 04) cap payloads at 252 bytes and cannot transfer a multi-hundred-kilobyte EMAP file efficiently. Huawei’s proprietary FC 0x41 (User Defined Function) handles this by opening a file transfer session with three sub-functions:
# Step 1 — Initiate session (Sub-function 0x05)
Master → Inverter: "Request file type 0x04 (Logs)"
Inverter → Master: "Total size: 512,000 bytes. Chunk size: 240 bytes."

# Step 2 — Transfer chunks (Sub-function 0x06)
Master → Inverter: "Send chunk #1"
Inverter → Master: [240 bytes of binary EMAP data + CRC]
Master → Inverter: "Send chunk #2"
... (repeat until final chunk)

# Step 3 — Close session (Sub-function 0x07)
Master → Inverter: "Transfer complete, session closed."
Each 240-byte chunk fits within a 256-byte Modbus packet, which ensures reliable transfer even on older RS485 lines used by V2 inverters. Every packet carries a CRC checksum and a frame sequence number so the master can detect and re-request any dropped packet.
When reading large logs over RS485 on V2 inverters (9600 or 19200 baud), set your response timeout to 5–10 seconds. The ARM processor needs time to lift data from Flash into its send buffer before it can respond.

perfmg_data — Performance Data

perfmg_data is the inverter’s energy accounting log. Where his_inv_rd records instantaneous electrical state, perfmg_data accumulates energy in kWh over three time horizons. Contents:
  • Cumulative energy yield in kWh, broken down by hour, day, and month
O&M use cases:
  • Forecast comparison — export monthly totals and compare them against your PVsyst simulation. A deviation greater than 10% is a trigger to inspect the site: clean the panels, check for new shading sources, or re-run IV curve scans.
  • Revenue verification — monthly figures from perfmg_data can be cross-checked against smart meter readings and FusionSolar cloud data to confirm that no generation is being lost undetected.
A deviation of more than 10% between perfmg_data totals and your PVsyst forecast is a reliable indicator that panels need cleaning. Soiling losses of this magnitude are common in dry or agricultural environments after several months without rain.

Reading perfmg_data via Modbus FC 0x41

The same FC 0x41 session protocol used for his_inv_rd applies to perfmg_data. The file is referenced by its type ID in the Start Upload sub-function (0x05). Before initiating any file transfer, your script should first read the AD.bin meta-file to discover the current file list, IDs, and sizes available in the inverter’s Flash:
# Discover available log files (AD.bin)
Master → Inverter: FC 0x41, Sub-function 0x05, file type = AD.bin
Inverter → Master: [Directory listing with file names, IDs, sizes]

# Then request perfmg_data by its file ID
Master → Inverter: FC 0x41, Sub-function 0x05, file ID = <perfmg_data ID>
Inverter → Master: "Size: N bytes. Chunk size: 240 bytes."
... (transfer proceeds as above)