Naar de inhoud

Docs

Modbus-registeroverzicht (EVSE-C-3x32A)

Volledig Modbus RTU-registeroverzicht van de Edge-laadmodule, firmware 2.10.17. Adres, naam, grootte, eenheid en betekenis van elk register; tabellen voor state en fouten; de twee registers die een controller van een andere fabrikant nodig heeft.

Bekijk als MarkdownBijgewerkt 2026-10-13

Geldt voor EVSE-C-3x32A met firmware 2.10.17 en later. Modbus RTU via RS485, 9600 baud 8N1 (19200 als een EVSE-SC-02 de module aanstuurt), fabrieksadres 0x01.

Adres 0x01. De laadpaal verlaat de fabriek met adres 0x01. Dit is een bijzonder adres: na het opstarten antwoordt de laadpaal daar niet, pas na een state-verandering (bijvoorbeeld de knop op de print, of een auto aansluiten). Een EdgeTech-wifi-module zet elke nieuwe laadpaal op een eigen adres, zodat alle laadpalen op de bus bereikbaar zijn. Doe met je eigen controller hetzelfde: schrijf na een state-verandering een nieuw adres van 0x02 of hoger naar register 0x0200 en sla het op.

Eenheden. Alle analoge waarden gebruiken eenheden van 1/256: spanning in 1/256 V, stroom in 1/256 A, energie in 1/256 kWh. Deel door 256.

Timing. De print verwacht een antwoordvenster van 40 ms. Gebruik een bedrade RS485-bus. Modbus via ethernet (een RS485-naar-ethernet-gateway, Modbus TCP) werkt in principe, maar de reactie is trager: prima om vanaf een pc te testen, maar niet met EdgeTech-wifi-modules, die snelle antwoorden van de laadpaal nodig hebben. Draadloze Modbus werkt niet.

De twee registers die je nodig hebt

Register fc Betekenis
0x0103 4 Lage byte: IEC 61851-state (1 = A, 2 = B, 3 = C, 4 = D). Hoge byte: foutbitmasker.
0x0201 lage byte 6 RemoteMaxCurrent in ampère. Minstens één keer per seconde schrijven. 0 stopt het laden.

Al het andere is monitoring en configuratie.

Alleen-lezen-registers (fc 4)

Systeemregisters 0x0000–0x0017

Adres Naam Grootte Beschrijving
0x0000 SerialNumber 5 Serienummer van het apparaat, 5 opeenvolgende registers
0x0005 FirmwareVersion 1 Versie van de applicatiefirmware
0x0006 MsSinceBoot 4 Milliseconden sinds het opstarten, 64-bit
0x000A SaveEEPROM 1 Instellingen opslaan in EEPROM. Beveiligd
0x000B FactoryDefaults 1 Alle instellingen resetten. Beveiligd
0x000C Reset 1 De applicatie herstarten. Beveiligd
0x000D EnterBootloader 1 Naar de bootloader gaan. Beveiligd
0x000E ChallengeResponse 1 Magische code controleren
0x000F EnableTestMode 1 Niet gebruikt
0x0010 ExternalLock 1 Kabelvergrendeling: 0 ontgrendeld, 1 vergrendeld, 0xFFFF vergrendelingspoort gebruikt als CP disconnect
0x0011 I2cErrors 1 Intern aantal I²C-fouten lezen en resetten
0x0012 QuietReset 1 Resetten zonder CP-glitch
0x0013 ConditionalAnswer 1 Voorwaardelijk antwoord
0x0014 ConditionalAddress 1 Voorwaardelijk antwoord
0x0015 LockLock 1 Kabelvergrendeling inschakelen. Geeft 1 terug, of 0xFFFF als de poort als CP disconnect wordt gebruikt
0x0016 UnlockLock 1 Kabelvergrendeling uitschakelen. Geeft 0 terug, of 0xFFFF
0x0017 DisconnectCP 1 Kortstondige CP disconnect (EV wake-up). Geeft 1 terug, of 0xFFFF als dit niet is geconfigureerd

Voor beveiligde registers moet eerst de magische code (standaard 0x1234) naar 0x0202 worden geschreven.

Statusregisters 0x0100–0x0113

Adres Naam Grootte Eenheid Beschrijving
0x0100 MinPilot 1 ruw Minimaal gemeten pilotniveau
0x0101 MaxPilot 1 ruw Maximaal gemeten pilotniveau
0x0102 L MaxCableCurrent ½ A Belastbaarheid van de kabel volgens de PP-weerstand
0x0102 H MaxCurrent ½ A Laadstroom die nu wordt doorgegeven
0x0103 L State ½ enum IEC 61851-state, zie hieronder
0x0103 H Error ½ bitmasker Foutbits, zie hieronder
0x0104 Temperature 1 °C Temperatuur van de print
0x0105 CurrentL1 1 1/256 A Stroom op L1
0x0106 CurrentL2 1 1/256 A Stroom op L2
0x0107 CurrentL3 1 1/256 A Stroom op L3
0x0108 EnergySession 1 1/256 kWh Energie van de laadsessie, alle fasen
0x0109 VoltageL1 1 1/256 V Uitgangsspanning L1, alleen ongelijk aan nul in state C/D
0x010A VoltageL2 1 1/256 V Uitgangsspanning L2
0x010B VoltageL3 1 1/256 V Uitgangsspanning L3
0x010C Options 1 bits Bit 0: DC-aardlekdetector ingeschakeld. Bit 1: 32 A-modus (0 = 16 A)
0x010D Energy 2 1/256 kWh Totale energie over de levensduur, 32-bit: (reg[0x010E] << 16) | reg[0x010D]
0x010F EnergySessionL1 1 1/256 kWh Energie van de laadsessie L1
0x0110 EnergySessionL2 1 1/256 kWh Energie van de laadsessie L2
0x0111 EnergySessionL3 1 1/256 kWh Energie van de laadsessie L3
0x0112 EarthQuality 1 ruw Kwaliteit van de aarde, experimenteel
0x0113 UBRR 1 ruw Huidige waarde van het baudrateregister

Omrekening: reg × 1000 / 256 geeft millivolt of milliampère. 0x086A = 2154 → 8414 mA.

State (0x0103 lage byte)

Waarde IEC-state CP-spanning Relais Betekenis
1 A +12 V open Geen voertuig
2 B +9 V open Voertuig aangesloten, laadt niet
3 C +6 V gesloten Laden
4 D +3 V gesloten Laden, ventilatie vereist

Het state-register begint bij 1. Spannings- en stroomregisters zijn alleen zinvol in state C of D.

Foutbits (0x0103 hoge byte)

Bit Waarde Fout Ernst
0 1 Temperatuur te hoog Kritiek
1 2 Vastzittend relais Kritiek
2 4 Aardfout Kritiek
3 8 Max CP te laag Waarschuwing, pilot buiten bereik
4 16 Min CP te hoog Waarschuwing, pilot buiten bereik
5 32 DC-aardlekstroom gedetecteerd door de DC-aardlekdetector op de print (EVSE-X-DCD) Laden geblokkeerd
6 64 I²C-initialisatie mislukt Intern
7 128 I²C-communicatiefout Intern

0 betekent geen fout. Bits kunnen gecombineerd voorkomen.

Lees-/schrijfregisters (fc 3 lezen, fc 6 schrijven)

Configuratie 0x0200–0x020A

Adres Naam Grootte Beschrijving
0x0200 L ModbusAddress ½ Slave-adres. Beveiligd. Fabriek 0x01 (antwoordt alleen na een state-verandering); wifi-modules zetten elke laadpaal op een eigen adres
0x0200 H Discovery ½ Niet gebruikt
0x0201 L RemoteMaxCurrent ½ Doorgegeven laadstroomlimiet in ampère. 0 schakelt laden uit. Het stuurregister.
0x0201 H RemoteMaxCurrentNextSecond ½ Failsafe-limiet van één seconde; valt terug op RemoteMaxCurrent als hij niet binnen 1 s opnieuw wordt geschreven. Niet voor normale aansturing.
0x0202 MagicResetCode 1 De magische code wijzigen
0x0203 Challenge 1 Challenge-response voor beveiligde schrijfopdrachten
0x0204 Settings 1 Bitveld, zie hieronder
0x0205 Led 1 0 GRB-led op de print, 1 adresseerbare ledstrip (36 leds)
0x0206 Condition 1 Voorwaardelijk antwoord
0x0207 UBRR 1 Baudrateregister (0x33 = 19200)
0x0208 CPDisconnectTime 1 Duur van de CP disconnect, ms
0x0209 TimeBeforeCPDisconnect 1 Wachttijd na het doorgeven van stroom voordat op state C wordt gecontroleerd, ms
0x020A L CPType ½ 0 normaal, 1 A1/B1-pilotniveaus
0x020A H CPDisconnectType ½ 0 EV40, 1 uitgebreide EV40

Settings-bitveld (0x0204)

Bit Naam Betekenis
0 PHASES 1-fase (0) of 3-fase (1)
1 LOCK_STATE Gedrag van de kabelvergrendeling
2 DCL_MUST_BE_PRESENT Laden blokkeren als de DC-aardlekdetector ontbreekt
3 MISUSE_LOCK_PORT_AS_CP_DISCONNECT De vergrendelingspoort gebruiken voor CP disconnect
4 AUTO_CP_DISCONNECT Automatische CP disconnect na een pauze (EV wake-up)
5 EV40_CP_DISCONNECT CP disconnect in EV40-stijl

Bootloader (adres 0xF0)

Adres fc Naam Beschrijving
0x0500 4 BootloaderVersion Versie van de bootloader, 0 als je hem op het applicatieadres leest
variabel 0x10 FlashPage Firmwarepagina’s van 64 registers schrijven; lage adresbyte = pagina, hoge byte gezet = laatste pagina

De wifi-module gebruikt dit om de firmware van de laadmodule in het veld bij te werken.

Minimale regellus voor een controller

every 1 s:
    state, error = read fc4 0x0103           # lage byte state, hoge byte fout
    if error & 0b111: limit = 0              # temperatuur, vastzittend relais, aardfout
    else:            limit = min(site_headroom_A, cable_A, 32)
    write fc6 0x0201 = limit                 # ampère; 0 stopt

Mis je twee schrijfopdrachten achter elkaar, dan valt de print terug op zijn vaste limiet.