Mine põhisisu juurde

Modbus TCP VOOL LMC-l

LMC peaühenduse voolude ja pingete lugemine Modbus TCP kaudu: aktiveerimine toe kaudu, ühenduse seaded, täielik registrikaart, voolupiirangu kirjutamine ja tõrkeotsing.

J
Autorilt Juhan Harm

VOOL LMC-l on kohalike integratsioonide jaoks Modbus TCP server. Hoone haldussüsteem (BMS), energiahaldussüsteem (EMS), Home Assistant või mõni muu Modbusi klient saab lugeda objekti peaühenduse voolusid ja pingeid faaside kaupa ning kirjutamisõiguse korral määrata koormushalduse kasutatava võrguühenduse voolupiirangu. Saadaval alates LMC tarkvarast v6.4.0.

See on eraldi laadija enda Modbusi liidesest (vaata laadija Modbusi juhendis). LMC registrikaart ei sisalda üksikute laadijate mõõtmisi, energiaarvesteid ega laadijate käivitamise/peatamise registreid — nende jaoks kasuta laadija liidest.

Alustamine

Modbus TCP on LMC-l vaikimisi välja lülitatud ja selle lülitab sisse VOOL-i tugi. Kirjuta aadressile [email protected], lisa LMC seerianumber ja ütle, kas vajad ainult lugemisõigust (monitooring) või ka kirjutamisõigust. Kirjutamisõigus on samuti vaikimisi väljas ja selle lülitab sisse tugi. Aktiveerimist ja pordi seadeid ei saa Modbusi kaudu muuta.

  1. Lepi aktiveerimine toega kokku — LMC seerianumber, ainult lugemine või lugemine ja kirjutamine.

  2. Kontrolli kohaliku ühenduse andmeid. Küsi LMC kohalik IPv4-aadress oma paigaldajalt või võrguadministraatorilt (või vaata ruuteri ühendatud seadmete loendist). Kasuta LMC Etherneti- või Wi-Fi-ühendust; kui mõlemad on ühendatud, kontrolli, milline aadress Modbusit teenindab — server kuulab korraga ühte aadressi.

  3. Seadista oma Modbusi klient allolevate seadetega ja loe esimene mõõtmine.

Seade

Väärtus

Protokoll

Modbus TCP — LMC on server, sinu süsteem on klient

Serveri aadress

LMC kohalik IPv4-aadress

TCP port

Vaikimisi 502 (kasuta toe kinnitatud porti)

Unit ID / seadme ID

Kasuta väärtust 1, kui klient nõuab väärtust. LMC eirab seda — see ei vali alluvat laadijat.

Numbrivorming

Float32, kaks registrit väärtuse kohta, kõrgem sõna ja kõrgem bait ees (ABCD, „big-endian, no word swap“)

Aadresside tähistus

Nullist algavad kümnendaadressid (vaata „Aadressid ja kodeering“)

Modbus TCP-l puudub autentimine ja krüpteerimine. Iga seade, mis pordini jõuab, saab liidest lugeda. Piira juurdepääs usaldusväärsete süsteemidega ja ära kunagi ava porti internetti. Kirjutamisõigus kehtib kõigile kirjutatavatele registritele — sealhulgas seadme- ja loendikäskudele — ning seda ei saa piirata ainult voolupiirangu seadega.

Sinu esimene mõõtmine

Loe faasi L1 voolu: funktsioon 03 (Read Holding Registers), algusaadress 600 (kümnendsüsteemis, nullist algav), kogus 2 registrit, dekodeeri kui float32 ABCD. Ühik: amprid.

Näide: kui kaks registrit tagastavad 0x41A4 ja 0x0000, on väärtus 20,5 A. Ühenda mõlemad registrid üheks 32-bitiseks ujukomaarvuks — ära käsitle kumbagi registrit eraldi väärtusena ja ära rakenda skaleerimistegurit.

Mõõtmisregistrid (ainult lugemiseks)

Loe funktsiooniga FC03 (holding registers) või FC04 (input registers) samadelt nullist algavatelt aadressidelt.

Registrid

Mõõtmine

Ühik

Asukoht 26-registrilises vastuses

600–601

Peaühenduse vool L1

A

0–1

602–603

Peaühenduse vool L2

A

2–3

604–605

Peaühenduse vool L3

A

4–5

606–619

Reserveeritud — lugemine tagastab nulli

—

6–19 (eira)

620–621

Peaühenduse pinge L1

V

20–21

622–623

Peaühenduse pinge L2

V

22–23

624–625

Peaühenduse pinge L3

V

24–25

Loe kõik korraga: algus 600, kogus 26. Või loe ainult voolud (algus 600, kogus 6) või ainult pinged (algus 620, kogus 6). Veerg „asukoht“ loeb tagastatud massiivis nullist — see ei ole registri aadress.

Mida „peaühenduse vool“ tähendab: see on LMC arvutatud koguvool faasi kohta. Kui arvesti (voolutrafod) on peaühenduses, tuleb väärtus arvestilt. Kui arvesti mõõdab ainult hoone muid koormusi, liidab LMC juurde laadijate voolud. Seepärast on teise süsteemi näitudega võrdlemisel oluline, kuidas paigaldaja mõõtmise seadistas. Null või muutumatu näit üksi ei tõesta, et arvesti töötab.

Võrguühenduse voolupiirangu seadmine (kirjutamisõigus)

Vajab VOOL-i toe sisse lülitatud kirjutamisõigust. Vale voolupiirang võib lubada paigaldise võimsust ületavaid koormusi ja rakendada kaitseseadmed. Kasuta ainult paigaldaja kinnitatud piiranguid ja ära kunagi ületa paigaldise nimivõimsust.

Võrguühenduse voolupiirang on faasipõhine voolueelarve, millega koormushaldus töötab. See kehtib kogu võrguühendusele, sealhulgas hoone muudele koormustele — see ei ole üksiku laadija vool.

Registrid

Seade

Ühik

Vorming / juurdepääs

104–105

Võrguühenduse voolupiirang

A

Float32 / lugemine-kirjutamine

  1. Loe olemasolev väärtus — FC03, algus 104, kogus 2. Hoia see alles juhuks, kui pead selle taastama.

  2. Kirjuta kokkulepitud piirang ühe float32-väärtusena funktsiooniga FC16 (Write Multiple Registers), kaks registrit ühes päringus. Näide 32 A jaoks: register 104 = 0x4200, register 105 = 0x0000.

  3. Loe tagasi ja kontrolli, seejärel jälgi paigaldist. Ainult kirjutamise vastus ei tõesta, et muudatus jõustus.

Seadistuse muudatused on püsivad ja mõjutavad koormushaldust töö ajal.

Aadressid ja kodeering

Kõik siinsed aadressid on nullist algavad kümnendsüsteemis protokolliaadressid. Kogus tähendab 16-bitiste registrite arvu, mitte väärtuste arvu — iga arvväärtus kasutab kahte järjestikust registrit. Kliendid kasutavad erinevaid tähistusi; L1 voolu lugemiseks sisesta:

Kliendi tähistus

Sisesta

Nullist algav aadress / nihe

600

Ühest algav registri number (register 1 = aadress 0)

601

Holding-registri viide (40001 = aadress 0)

40601

Ära saada 40601 protokolliaadressina.

  • Mõõtmised ja seaded on inseneriühikutes, ilma skaleerimiseta.

  • Lülitid: float32 0.0 = väljas, 1.0 = sees (iga nullist erinevat väärtust käsitletakse kui „sees“).

  • Režiimid: dokumenteeritud täisarvuline valik float32-na kodeeritud, nt 1.0.

  • Levinud väärtused: 0.0 = 0x0000 0x0000; 1.0 = 0x3F80 0x0000; 20.5 = 0x41A4 0x0000; 32.0 = 0x4200 0x0000.

  • Loendikäsud kasutavad töötlemata täisarve — vaata allpool.

Päringu reeglid

Funktsioon

Kasutus

03 — Read Holding Registers

Iga loetav piirkond

04 — Read Input Registers

Ainult mõõtmised (600–625)

16 (0x10) — Write Multiple Registers

Kirjutatavad väärtused ja käsuplokid

FC06 (Write Single Register) ei ole toetatud ja tagastab erandi 02 — kasuta FC16 ka ühe väärtuse jaoks. Coil-registreid ei kasutata.

Loetav piirkond (kaasa arvatud)

Sisu

Funktsioonid

104–111

Võrgupiirang, töörežiimid, antenni seade

FC03

240–283

Koormushalduse häälestus

FC03

600–625

Mõõtmised ja reserveeritud nullid

FC03, FC04

  • Iga lugemine peab jääma ühe piirkonna sisse. Lugemised väljaspool neid — sealhulgas käsuregistrid — tagastavad erandi 02.

  • Kirjuta arvväärtused nende esimesest registrist alates ja kirjuta mõlemad registrid. Järjestikused kirjutatavad väärtused võib ühendada ühte päringusse, kuid mitte üle kaardistamata vahe.

  • Kirjuta käsuplokid täpselt nende algusaadressile ja täpse kogusega.

  • Liides ei kontrolli selles artiklis toodud kasutuselevõtu vahemikke — valideeri väärtused oma kliendis ja kasuta lõplikke arve.

  • Tavaline kirjutamise vastus ainult kinnitab päringu vastuvõtmist. Loe seaded tagasi ja kontrolli enne kordamist, et käsud lõpetati.

Tõrkeotsing

Sümptom

Mida kontrollida

Ühendus keelatakse või aegub

Kontrolli toega, et Modbus on sisse lülitatud; kontrolli LMC kohalikku IPv4-aadressi ja porti, ligipääsetavust ja tulemüüri reegleid. Kui nii Ethernet kui Wi-Fi on ühendatud, kontrolli, milline aadress kuulab. Modbus ei ületa alamvõrke ega VLAN-e.

Lugemine tagastab erandi 02

Kontrolli aadresside tähistust, kogust ja piirkondade piire. FC04 loeb ainult 600–625. Käsuregistreid ei saa lugeda.

Kirjutamine tagastab erandi 02

Kontrolli toega kirjutamisõigust. Kasuta FC16, kirjutatavat aadressi ja täielikku väärtust või plokki. FC06 lükatakse tagasi.

Ebausutavalt suured või väikesed arvud

Dekodeeri kui float32 ABCD, kaks registrit väärtuse kohta, ilma skaleerimiseta. Kontrolli, ega aadress pole ühe võrra nihkes.

Null- või muutumatud mõõtmised

Kontrolli vastuse asukohti ja reserveeritud vahemikku. Palu toel kontrollida arvestit ja mõõtmise seadistust.

Kirjutamine õnnestub, kuid väärtus ei muutu

Loe tagasi, kontrolli kodeeringut ja lubatud väärtusi. Ainult kinnitus ei taga, et muudatus rakendati.

Integratsioon töötas, siis lakkas

LMC kohalik IP võis pärast ruuteri vahetust või uuendust muutuda — määra ruuteris LMC-le (ja laadijatele) staatiline IP või DHCP-reserveering. Ka tarkvarauuendus või teenuse taaskäivitus katkestab seansi; ära korda uuenduskäsku pärast aegumist automaatselt.

Erandid: 01 Illegal Function — tundmatu funktsioon. 02 Illegal Data Address — registrikaardi valideerimise vead ja keelatud kirjutamine. 03 Illegal Data Value — vigane protokolli kogus (nt FC16 kirjutamine väljaspool 1–123 registrit); see ei tähenda, et seade vahemikku kontrolliti.

Täpsemad seaded (kirjutamisõigus — lepi väärtused kokku VOOL-i toega)

Need muudavad koormushalduse käitumist või riistvara seadistust. Kõik on lugemis-kirjutamis float32-väärtused. Vahemikud on kasutuselevõtu piirid, mitte soovitatud seaded — loe enne muutmist paigaldatud väärtused.

Töörežiimid ja antenn

Registrid

Seade

Väärtused

106–107

Peaühenduse mõõtmise režiim

0 = arvesti peaühenduses, sh laadijad; 1 = arvesti mõõdab hoone muid koormusi, LMC liidab laadijate voolud

108–109

Koormushalduse režiim

0 = prioriteedipõhine jagamine; 1 = võrdne võimsuse jagamine

110–111

Kasuta välist Wi-Fi antenni

0 = väljas; 1 = sees. Vajab ühilduvat riistvara ja antenni; jõustub pärast LMC taaskäivitust

Koormushalduse häälestus

Registrid

Seade

Ühik

Vahemik / väärtused

240–241

Referentsi muutumiskiiruse piirang sees (voolu tõstmine)

—

0 = väljas; 1 = sees

242–243

Referentsi muutumiskiiruse piirang

A/s

0–32

244–245

Voolulävi käivitusaegse tõstmise lõpetamiseks

A

0–32

246–247

Võrdne võimsuse jagamine: algne vooluaste

A

0,01–32

248–249

Võrdne võimsuse jagamine: vaikimisi vooluaste

A

0,01–32

250–251

Võrdne võimsuse jagamine: minimaalne võrdse voolu lävi

A

0–32

252–253

Võrdne võimsuse jagamine: viivitus enne laadija laadimise keelamist

s

0–86400

254–255

Võrdne võimsuse jagamine: viivitus enne laadija laadimise lubamist

s

0–86400

256–257

Faasipõhine koormushaldus sees

—

0 = väljas; 1 = sees

258–259

Faasivahetuse viivitus

s

0–30

260–261

Faasivahetuse voolulävi

A

0–1000

262–263

Faasivahetuse ebasümmeetria lävi

%

0–100

264–265

Faasi ülekoormuse peatamine sees

—

0 = väljas; 1 = sees

266–267

Sunnitud ühefaasiline laadimine faasi ülekoormuse käsitlemisel

—

0 = väljas; 1 = sees

268–269

Faasi ülekoormuse väljaoleku aeg

s

0–86400

270–271

Peatamise vältimine sees

—

0 = väljas; 1 = sees

272–273

Peatamise 1. astme voolulävi

A

0–32

274–275

Peatamise 1. astme hoideaeg

s

0–600

276–277

Peatamise 2. astme voolulävi

A

0–32

278–279

Peatamise 2. astme hoideaeg

s

0–600

280–281

Peatamise 3. astme voolulävi

A

0–32

282–283

Peatamise 3. astme hoideaeg

s

0–600

Seadme- ja loendikäsud (ainult kirjutamiseks)

Käsud vajavad kirjutamisõigust, neid ei saa lugeda (erand 02) ning need võivad katkestada töö või muuta paigaldise seadistust — kasuta neid ainult kokkulepitud hooldus- või kasutuselevõtu protseduuri osana.

Seadmekäsud

FC16, täpselt kaks registrit algusaadressil. Float32 väärtuse 1.0 (0x3F80 0x0000) — või mis tahes nullist erineva väärtuse — kirjutamine käivitab käsu; 0.0 ei tee midagi.

Registrid

Käsk

Toime

4–5

Uuenda LMC tarkvara

Käivitab vaikimisi tarkvarauuenduse. Lõpetamisest Modbusi kaudu ei teatata.

12–13

Taaskäivita LMC teenus

Taaskäivitab kontrolleri rakenduse ja katkestab Modbusi ühenduse.

Laadijate loend

Kirjuta täpselt 7 registrit alates aadressist 8900 ühes FC16 päringus. Töötlemata märgita täisarvud, mitte float32. Loendit ei saa Modbusi kaudu tagasi lugeda.

Register

Väli

Kodeering / kasutus

8900

Alamkäsk

1 = lisa; 2 = eemalda; 3 = uuenda; 4 = tühjenda

8901–8903

Laadija seerianumber

6 baiti, iga registri kõrgem bait ees. Seerianumber 112233445566 → 0x1122, 0x3344, 0x5566

8904

Multipoint ID

0–255, ainult madalam bait — punkt, millele laadija on määratud

8905

Lipud

Bitt 0 lülitab laadijale sisse OCPP 1.6 (kasuta 1); muud bitid jäta nulliks

8906

Reserveeritud

Kirjuta 0

Eemaldamine kasutab ainult seerianumbrit (kirjuta teistesse väljadesse null). Tühjendamine lähtestab loendi vaikeväärtustele ja eirab sisu. Tundmatu alamkäsk kinnitatakse, kuid jäetakse tähelepanuta.

Multipointide loend

Multipoint on oma voolupiiranguga ühenduspunkt. Kirjuta täpselt 4 registrit alates aadressist 8920 ühes FC16 päringus, töötlemata märgita täisarvud. Loendit ei saa Modbusi kaudu tagasi lugeda.

Register

Väli

Kodeering / kasutus

8920

Alamkäsk

1 = lisa; 2 = eemalda; 3 = uuenda; 4 = tühjenda

8921

Multipoint ID

1–255. Punkt 0 on võrguühendus ja seda ei saa nende käskudega muuta

8922

Voolupiirang

Täisamprites, uint16 (0–65535), paigaldise kokkulepitud võimsuse piires

8923

Ülemmultipointi ID

Kirjuta 0 (ülemat pole) — nullist erinevaid ülemaid see käsk ei toeta

Eemaldamine kasutab ainult multipointi ID-d. Enne punkti eemaldamist eemalda sellele määratud laadijad ja alampunktid. Tühjendamine taastab vaikeväärtused. Kontrolli tulemuseks olevat seadistust toega.

Võta ühendust toega

Aktiveerimiseks, kirjutamisõiguse saamiseks või integratsiooniga abi saamiseks kirjuta aadressile [email protected] ja lisa LMC seerianumber. Probleemist teatades lisa ka kliendi tarkvara, LMC kohalik IP ja port, funktsiooni kood, algusaadress, kogus, vastus või erand, toimumise aeg ning võimalusel LMC tarkvara versioon.

See artikkel käsitleb LMC tarkvaras v6.4.0 lisandunud LMC Modbusi liidest. Enne keerukama integratsiooni kasutuselevõttu palu toel kinnitada, millised funktsioonid sinu paigaldatud tarkvaras saadaval on.

Kas see vastas teie küsimusele?