> ## Documentation Index
> Fetch the complete documentation index at: https://fop-50527c4b.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Daily Monitoring Logs: his_inv_rd and perfmg_data

> Use his_inv_rd and perfmg_data to track string performance, heatsink temperature, insulation resistance, and cumulative energy yield daily.

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.

<Tip>
  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.
</Tip>

### 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:

```text theme={null}
# 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.

<Tip>
  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.
</Tip>

## `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.

<Tip>
  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.
</Tip>

### 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:

```text theme={null}
# 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)
```
