1. Kommunikationskanal
- Kanaltyp: TCP/IP
- Fysiskt gränssnitt: RJ45-anslutning via Ethernet-kabel / Wi-Fi-anslutning
2. TCP/IP-kommunikation
2.1 Nätverkskonfiguration
- Nätverksläge: Dynamisk IP-adressfördelning via DHCP
- Reservläge: Statisk IP-adress konfigurerad i appen
I DHCP-läge begär enheten automatiskt en IP-adress från DHCP-servern efter att den har startats. När en adress har erhållits sänder enheten ut sin information via mDNS. Tjänstens sändningsnamn är:
_nexblue_modbus._tcp.local
Detta kan upptäckas automatiskt av EMS-system som stöder mDNS, till exempel Home Assistant och Tibber.
2.2 Kommunikationsport
2.3 Enhets-ID
- Standardvärde: 200
- Inställningsområde: 1–247
I Modbus TCP är enhets-ID:t en logisk identifierare som behålls för att säkerställa kompatibilitet med RTU. Den använder samma konfigurationsparameter som slavadressen i RTU-läget.
2.4 Registerdefinitioner
2.4.1 Registertyper
| Registreringstyp | Funktion | Funktionskod | Beskrivning |
| Ingångsregister | Läs inmatningsregister | 0x04 | Skrivskyddade register som återger mätvärden eller statusinformation, såsom spänning, ström, effekt, temperatur, ackumulerad energi osv. |
| Ägarregister | Läs register för innehav | 0x03 | Läs-/skrivregister. Masteren kan läsa aktuell konfiguration, strömgränser, lägestatus m.m. |
| Ägarregister | Skriv till ett enskilt hållregister | 0x06 | Styrenheten skriver en enskild konfigurationsparameter eller ett kommando, till exempel inställning av maxström eller start/stopp av laddning. |
| Ägarregister | Skriv till flera hållregister | 0x10 | Masteren skriver flera på varandra följande register samtidigt, vilket används för batchuppdateringar av konfigurationen eller strukturerade parametergrupper. |
Dessa fyra är de grundläggande funktionskoderna som erkänns enligt IEC 61131-3, EN 61107 och ISO Modbus-specifikationen, och stöds som standard av nästan alla masterenheter, PLC:er och EMS-system.
2.4.2 Planering av registeradresser (adresskarta)
| Princip | Beskrivning |
| Längd | Adressfältet i en Modbus-ram är ett 16-bitars heltal utan tecken. |
| Skiktad uppdelning | Indelning efter funktion: Identifiering → Stationsnivå → Per anslutning. Se till att logiken är tydlig och lätt att utöka. |
| En gemensam utgångspunkt | Alla register använder logiska adresser. Den logiska adresseringen börjar vanligtvis vid 0. Dokumentet visar både decimal- och hexadecimalt format. |
| Justeringsregel | 32-bitarsdata måste börja på en jämn adress för att undvika att överskrida registergränser. |
| Plats reserverad för utbyggnad | Varje område har reserverade platser så att fält kan läggas till i framtida versioner utan att kompatibiliteten påverkas. |
| Teckenkodning | Varje register är 2 byte stort. Strängarna har fast längd och fylls inte ut med 0x00 för outnyttjade byte. |
| Byte-/ordordning | Byteordningen för enkelregister är Big-Endian. Data med flera register använder Little-Endian-ordordningen DCBA. |
| Åtkomstmetoder | Inmatning sker med 0x04. Lagringsregister läses med 0x03 och skrivs med 0x06 (enkel) eller 0x10 (flera). |
2.4.3 Identifiering, version och tid (inmatning, 0x04)
| Adress | Namn | Typ | Enhet | Åtkomst | Beskrivning |
| 0000–0007 / 0x0000–0x0007 | Varumärke | STRING(16) | — | RO | 2 byte per register, UTF-8/ASCII. |
| 0008–0015 / 0x0008–0x000F | Modell | STRING(16) | — | RO | Enhetsmodell. |
| 0016–0027 / 0x0010–0x001B | Serienummer | STRING(24) | — | RO | Enhetens serienummer. |
| 0028–0035 / 0x001C–0x0023 | Firmwareversion | STRING(16) | — | RO | Till exempel: 04.00.19. |
| 0036 / 0x0024 | Modbus-tabellversion | UINT16 | — | RO | Mappningsversionsnummer, till exempel 0x0100. |
| 0037 / 0x0025 | Antal anslutningar | UINT16 | — | RO | Antal anslutningar: 1 eller 2. |
| 0038–0039 / 0x0026–0x0027 | Datum | UINT32 | ÅÅÅÅMMDD | RO | 32-bitars jämn justering. Exempel: 20251202. |
| 0040–0041 / 0x0028–0x0029 | Tid | UINT32 | TTMMDD | RO | Exempel: 155630 betyder 15:56:30. |
| 0042 / 0x002A | Tidszon | UINT16 | protokoll | RO | Exempel: UTC+2 → +120. |
| 0044 | Hårdvaruversion | STRING(16) | — | RO | Hårdvaruversion. |
| 0043–0099 | Reserverat | — | — | — | Reserverat för framtida identifiering, certifikat, tillverkningsinformation m.m. |
2.4.4 Status och mätning i realtid (Ingång, 0x04)
| Adress | Namn | Typ | Enhet | Åtkomst | Beskrivning |
| 0100 / 0x0064 | Chargepoint-status | UINT16 | — | RO | - 0: Finns
- 1: Förberedelser
- 2: Laddning
- 3: Hängande EVSE
- 4: Avstängd EV
- 5: Avslutning
- 6: Reserverat
- 7: Ej tillgänglig
- 8: Fel
|
| 0102–0103 / 0x0066–0x0067 | Nuvarande L1 | FLOAT32 | A | RO | 32-bitars jämn justering. |
| 0104–0105 / 0x0068–0x0069 | Nuvarande L2 | FLOAT32 | A | RO | — |
| 0106–0107 / 0x006A–0x006B | Nuvarande L3 | FLOAT32 | A | RO | — |
| 0108–0109 / 0x006C–0x006D | Spänning L1–N | FLOAT32 | V | RO | — |
| 0110–0111 / 0x006E–0x006F | Spänning L2-N | FLOAT32 | V | RO | — |
| 0112–0113 / 0x0070–0x0071 | Spänning L3–N | FLOAT32 | V | RO | — |
| 0114–0115 / 0x0072–0x0073 | Fasvinkel L1 | FLOAT32 | ° | RO | Fasvinkel i förhållande till L1-N. |
| 0116–0117 / 0x0074–0x0075 | Fasvinkel L2 | FLOAT32 | ° | RO | Fasvinkel i förhållande till L1-N. |
| 0118–0119 / 0x0076–0x0077 | Fasvinkel L3 | FLOAT32 | ° | RO | Fasvinkel i förhållande till L1-N. |
| 0120–0121 / 0x0078–0x0079 | Aktiv effekt L1 | FLOAT32 | W | RO | — |
| 0122–0123 / 0x007A–0x007B | Aktiv effekt L2 | FLOAT32 | W | RO | — |
| 0124–0125 / 0x007C–0x007D | Aktiv effekt L3 | FLOAT32 | W | RO | — |
| 0126–0127 / 0x007E–0x007F | Total aktiv effekt | FLOAT32 | W | RO | — |
| 0128–0129 / 0x0080–0x0081 | Energiförbrukning per session | FLOAT32 | kWh | RO | Aktuell session. |
| 0130–0133 / 0x0082–0x0085 | Lifetime Energy | UINT64 | Vem | RO | Ackumulerad energi. 64-bitars, 4 register. |
| 0134–0135 / 0x0086–0x0087 | Reservström | FLOAT32 | A | RO | Reservström som ställs in via NexBlue eller molntjänsten. |
| 0136–0137 / 0x0088–0x0089 | Maximal laddningsström | FLOAT32 | A | RO | Maximal laddningsström ställs in via NexBlue eller molntjänsten. |
| 0138 / 0x008A | Fasladdning | UINT16 | — | RO | - 0: Anpassningsbar
- 1: Tvinga enfas
- 2: Tvinga trefas
|
| 0137–0399 / 0x0088–0x018F | Reserverat | — | — | — | Avsatt för spänning, effektfaktor, frekvens, effekt per fas m.m. |
2.4.5 Styrning och säkerhet (Holding, läsning 0x03 / skrivning 0x06 eller 0x10)
Anmärkningar: Om strömmen till laddaren bryts återgår den automatiskt till standardinställningarna och måste ställas in på nytt.
| Adress | Namn | Typ | Enhet | Åtkomst | Beskrivning |
| 1000–1001 / 0x03E8–0x03E9 | Strömgräns | FLOAT32 | A | RW | Strömgräns på stationsnivå. Standardvärde 16 A. Intervall 0–32 A. |
| 1002–1003 / 0x03EA–0x03EB | Reservgräns | FLOAT32 | A | RW | Strömvärdet för frånkopplingsreserven kan endast ställas in mellan 0 och 16. Värden under 6 betraktas som 0. |
| 1004–1005 / 0x03EC–0x03ED | Tidsgräns för reservalternativ | UINT32 | s | RW | Tröskelvärde för timeout vid hjärtslag. Standardvärde: 5 minuter. Minsta värde: 30 sekunder. Högsta värde: 30 minuter. |
| 1006 / 0x03EE | IF_START | UINT16 | — | RW | - Start-/stoppreglage
- 0: STOPP
- 1: START
|
| 1007 / 0x03EF | Körningsfasläge | UINT16 | — | RW | Värden: - 0: Anpassningsbar
- 1: Tvinga enfas
- 2: Tvinga trefas
Omkopplingsbegränsningar: - Rekommenderat minsta intervall mellan fasväxlingar: 10 minuter
- Högst två fasväxlingar under en timme
- Högst 6 fasväxlingar under en och samma laddningsomgång
|
| 1008–1999 | Reserverat | — | — | — | Reserverat för tillägg. |
2.4.6 Larm och fel (Fel / Varning)
| Adress | Namn | Typ | Enhet | Åtkomst | Beskrivning |
| 0400 / 0x0190 | Felbituppsättning | UINT16 | — | RO | - Bit 0: Fel på CP-spänningen
- Bit 1: Läckage i fasledningen
- Bit 2: fel i ström / överström
- Bit 3: onormal spänning / överspänning eller underspänning
- Bit 4: onormal temperatur / för hög eller för låg
- Bit 5: relä fastnat
- Bit 6: RCD-självtest misslyckades
- Bit 7: Kortslutning i CP-dioden
- Bit8: PEN öppet
- Bit9: Läckage av privatnyckel
- Bit10: PE öppen
- Bit11: PP onormalt
- Bit 12–15: reserverade
|
| 0401 / 0x0191 | Varningsbitmängd | UINT16 | — | RO | - Bit 0: Fel på mätarkretsen
- Bit 1: Fel i kommunikationen mellan kretskort
- Bit 2: Onormal RFID-signal
- Bit 3: 868 RF onormalt
- Bit 4: Fel på 4G-modulen
- Bit 5: lock öppet – fel
- Bit 6: reserverad
- Bit 7: Fel i fasförlust i TN-systemet
- Bit 8: IT-neutral överström
- Bit9: fel i nätet
- Bit10: MID-läge
- Bit 11–15: reserverade
|
| 0402 / 0x0192 | Väntande bitset | UINT16 | — | RO | - Bit 0: reservlösning på grund av att CT är offline
- Bit 1: reservlösning på grund av att huvudenheten är frånkopplad
- Bit 2: pausad på grund av ett mindre allvarligt fel / laddningsprofilens ström är 0 via OCPP
- Bit 3: Värden minskar strömmen under laddning
- Bit 4: den första förfrågan har skickats men värden har inte svarat
- Bit 5: Skydd mot lastavlastning aktiverat
- Bit 6: reservfunktion utlöst av Modbus
- Bit 6–15: reserverade
|
Bilaga
Funktionskoder
En funktionskod i Modbus anger vilken åtgärd mastern vill utföra på slaven. Varje ram innehåller en funktionskod på 1 byte.
| Hex | Betydelse | Mål |
| 0x01 | Lässpolar | Bitutgångar |
| 0x02 | Läs diskreta ingångar | Bitar |
| 0x03 | Läs register över innehav | 16-bitars |
| 0x04 | Läs inmatningsregister | 16-bitars |
| 0x05 | Skriv Single Coil | Bit |
| 0x06 | Skriv till registret för enskilda innehav | 16-bitars |
| 0x0F | Skriv flera spolar | Bit |
| 0x10 | Skriv till flera hållarregister | 16-bitars |
Sammanfattning av vanliga Modbus-datatyper
| Datatyp | Använda register | Bittbredd | Typ C | Betydelse och användning | Typiska exempel |
| UINT16 | 1 | 16-bitars | uint16_t | Osignerat heltal | Statuskoder, uppräkningslistor, räknare, antal anslutningar. |
| INT16 | 1 | 16-bitars | int16_t | Tecknat heltal | Temperatur, justeringsvärden, tidszon. |
| UINT32 | 2 | 32-bitars | uint32_t | Osignerat långt heltal | Tidsstämplar, energimätning, sekundräknare. |
| INT32 | 2 | 32-bitars | int32_t | Tecknat långt heltal | Effekt, riktningsvärden. |
| FLOAT32 | 2 | 32-bitars | flyta | Flyttal med enkel precision, IEEE 754. | Ström, spänning, effekt, energi osv. |
| UINT64 | 4 | 64-bitars | uint64_t | Mycket stort heltal | Total energiförbrukning, ackumulerad mätning. |
| STRING[n] | n/2 | n × 8-bitars | char[] | Textinformation | Märke, modell, serienummer, versionsnummer. |