Update README: add UsbGpib adapter, auto-ranging, CSV range columns, display-select docs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
64
README.md
64
README.md
@@ -1,18 +1,25 @@
|
|||||||
# HIOKI 3193-10 Power Analyzer Tools
|
# HIOKI 3193-10 Power Analyzer Tools
|
||||||
|
|
||||||
GPIB/USB control tools for the HIOKI 3193-10 power analyzer, built for solar MPPT converter efficiency testing.
|
GPIB control tools for the HIOKI 3193-10 power analyzer, built for solar MPPT converter efficiency testing.
|
||||||
|
|
||||||
|
## Hardware Setup
|
||||||
|
|
||||||
|
- **HIOKI 3193-10** power analyzer with 9600 input units
|
||||||
|
- **GPIB-USB adapter**: [UsbGpib](https://github.com/xyphro/UsbGpib) — open-source USB-GPIB adapter
|
||||||
|
- **NI-VISA runtime** — provides the VISA layer (`visa32.dll`)
|
||||||
|
|
||||||
|
The UsbGpib adapter connects to the HIOKI's rear GPIB port and appears as a USB-TMC device. NI-VISA handles the communication.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Python 3.12+
|
- Python 3.12+
|
||||||
- [uv](https://docs.astral.sh/uv/) package manager
|
- [uv](https://docs.astral.sh/uv/) package manager
|
||||||
- NI-VISA runtime (already installed if `visa32.dll` exists)
|
- NI-VISA runtime (already installed if `visa32.dll` exists)
|
||||||
- HIOKI 3193-10 connected via USB
|
- UsbGpib adapter connected between PC and HIOKI 3193-10
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd C:\dev\hioki_3193-10
|
|
||||||
uv sync
|
uv sync
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -44,9 +51,12 @@ Show instrument identity, installed options, clock, wiring mode, and response sp
|
|||||||
### `hioki setup-mppt`
|
### `hioki setup-mppt`
|
||||||
|
|
||||||
One-command setup for MPPT efficiency testing:
|
One-command setup for MPPT efficiency testing:
|
||||||
- Ch5: 150V, 10A, DC coupling, SLOW (solar panel input)
|
- Ch5: V-auto, I-auto, DC coupling, SLOW (solar panel input)
|
||||||
- Ch6: 30V, 50A, DC coupling, SLOW (MPPT converter output)
|
- Ch6: V-auto, I-auto, DC coupling, SLOW (MPPT converter output)
|
||||||
- EFF1 = P6/P5 x 100%
|
- EFF1 = P6/P5 x 100%
|
||||||
|
- Display: Ch5 items on left, Ch6 items on right, with EFF1
|
||||||
|
|
||||||
|
Both voltage and current auto-range for best accuracy across the full sweep range.
|
||||||
|
|
||||||
### `hioki measure [items...]`
|
### `hioki measure [items...]`
|
||||||
|
|
||||||
@@ -65,7 +75,7 @@ uv run hioki measure U1 I1 P1 U2 I2 P2 U3 I3 P3 U4 I4 P4 U5 I5 P5 U6 I6 P6
|
|||||||
|
|
||||||
### `hioki monitor [items...]`
|
### `hioki monitor [items...]`
|
||||||
|
|
||||||
Continuous text-based monitoring with optional CSV logging.
|
Continuous text-based monitoring with optional CSV logging. When logging to CSV, voltage and current ranges are recorded per sample.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Default 1-second interval
|
# Default 1-second interval
|
||||||
@@ -81,7 +91,7 @@ uv run hioki monitor P5 P6 EFF1
|
|||||||
Options:
|
Options:
|
||||||
- `-i, --interval` - Seconds between readings (default: 1.0)
|
- `-i, --interval` - Seconds between readings (default: 1.0)
|
||||||
- `-n, --count` - Number of readings, 0 = infinite (default: 0)
|
- `-n, --count` - Number of readings, 0 = infinite (default: 0)
|
||||||
- `-o, --output` - CSV output file path
|
- `-o, --output` - CSV output file path (includes U/I range columns)
|
||||||
|
|
||||||
### `hioki live [items...]`
|
### `hioki live [items...]`
|
||||||
|
|
||||||
@@ -100,9 +110,25 @@ uv run hioki live -i 0.5 --history 100 U5 U6 P5 P6 EFF1
|
|||||||
|
|
||||||
Options:
|
Options:
|
||||||
- `-i, --interval` - Seconds between readings (default: 1.0)
|
- `-i, --interval` - Seconds between readings (default: 1.0)
|
||||||
- `-o, --output` - CSV output file path
|
- `-o, --output` - CSV output file path (includes U/I range columns)
|
||||||
- `--history` - Max data points on graph (default: 300)
|
- `--history` - Max data points on graph (default: 300)
|
||||||
|
|
||||||
|
### `hioki display-select [items...]`
|
||||||
|
|
||||||
|
Configure the instrument's front panel display.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# MPPT preset: Ch5 left, Ch6 right, EFF1
|
||||||
|
uv run hioki display-select --mppt
|
||||||
|
|
||||||
|
# Custom 16-item layout
|
||||||
|
uv run hioki display-select U5 I5 P5 U6 I6 P6 EFF1
|
||||||
|
```
|
||||||
|
|
||||||
|
Options:
|
||||||
|
- `-c, --count` - Number of display slots: 4, 8, or 16 (default: 16)
|
||||||
|
- `--mppt` - Preset: Ch5 on left, Ch6 on right, with EFF1
|
||||||
|
|
||||||
### `hioki efficiency`
|
### `hioki efficiency`
|
||||||
|
|
||||||
Configure efficiency calculation formula.
|
Configure efficiency calculation formula.
|
||||||
@@ -139,9 +165,19 @@ uv run hioki send *RST
|
|||||||
|
|
||||||
## Global Options
|
## Global Options
|
||||||
|
|
||||||
- `-a, --address` - VISA address (auto-detects HIOKI USB if omitted)
|
- `-a, --address` - VISA address (auto-detects HIOKI if omitted)
|
||||||
- `--timeout` - Communication timeout in ms (default: 5000)
|
- `--timeout` - Communication timeout in ms (default: 5000)
|
||||||
|
|
||||||
|
## CSV Output Format
|
||||||
|
|
||||||
|
When using `-o` with `monitor` or `live`, the CSV includes:
|
||||||
|
- `timestamp` - Date and time of each reading
|
||||||
|
- Measurement values (e.g., `U5`, `I5`, `P5`, `EFF1`)
|
||||||
|
- `U<ch>_range` - Active voltage range per channel (e.g., 150, 300)
|
||||||
|
- `I<ch>_range` - Active current range per channel (e.g., 0.2, 5, 50)
|
||||||
|
|
||||||
|
Range columns help identify auto-range transitions and assess measurement accuracy.
|
||||||
|
|
||||||
## Python API
|
## Python API
|
||||||
|
|
||||||
Use the driver directly in your own scripts:
|
Use the driver directly in your own scripts:
|
||||||
@@ -149,17 +185,17 @@ Use the driver directly in your own scripts:
|
|||||||
```python
|
```python
|
||||||
from hioki3193 import Hioki3193
|
from hioki3193 import Hioki3193
|
||||||
|
|
||||||
with Hioki3193("USB0::0x03EB::0x2065::HIOKI_3193-10_140110825_V1.50::INSTR") as meter:
|
with Hioki3193("GPIB0::1::INSTR") as meter:
|
||||||
print(meter.idn())
|
print(meter.idn())
|
||||||
|
|
||||||
# Configure
|
# Configure
|
||||||
meter.set_wiring_mode("1P2W")
|
meter.set_wiring_mode("1P2W")
|
||||||
meter.set_coupling(5, "DC")
|
meter.set_coupling(5, "DC")
|
||||||
meter.set_voltage_range(5, 150)
|
meter.set_voltage_auto(5, True)
|
||||||
meter.set_current_range(5, 10)
|
meter.set_current_auto(5, True)
|
||||||
meter.set_coupling(6, "DC")
|
meter.set_coupling(6, "DC")
|
||||||
meter.set_voltage_range(6, 30)
|
meter.set_voltage_auto(6, True)
|
||||||
meter.set_current_range(6, 50)
|
meter.set_current_auto(6, True)
|
||||||
meter.set_response_speed("SLOW")
|
meter.set_response_speed("SLOW")
|
||||||
meter.set_efficiency(1, "P6", "P5")
|
meter.set_efficiency(1, "P6", "P5")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user