Siirry pääsisältöön

Modbus TCP VOOL LMC:ssä

LMC:n pääliittymän virtojen ja jännitteiden lukeminen Modbus TCP:llä: käyttöönotto tuen kautta, yhteysasetukset, rekisterikartta, virtarajan kirjoitus ja vianmääritys.

J
Tekijä: Juhan Harm

VOOL LMC:ssä on Modbus TCP -palvelin paikallisia integraatioita varten. Kiinteistöautomaatiojärjestelmä (BMS), energianhallintajärjestelmä (EMS), Home Assistant tai mikä tahansa muu Modbus-asiakas voi lukea kohteen pääliittymän virrat ja jännitteet vaiheittain sekä – kirjoitusoikeudella – asettaa kuormanhallinnan käyttämän liittymän virtarajan. Käytettävissä LMC-ohjelmiston versiosta v6.4.0 alkaen.

Tämä on erillinen laturin omasta Modbus-liitännästä (katso Laturin Modbus-käsikirja). LMC:n rekisterikartta ei sisällä yksittäisten latureiden mittauksia, energialaskureita tai laturin käynnistys-/pysäytysrekistereitä – käytä niihin laturin liitäntää.

Aloittaminen

Modbus TCP on LMC:ssä oletuksena pois käytöstä, ja VOOLin tuki ottaa sen käyttöön. Pyydä VOOLin tukea chatissa, kerro LMC:n sarjanumero ja kerro, tarvitsetko vain lukuoikeuden (seuranta) vai myös kirjoitusoikeuden. Myös kirjoitusoikeus on oletuksena pois käytöstä, ja tuki ottaa sen käyttöön. Käyttöönottoa ja porttiasetuksia ei voi muuttaa Modbusin kautta.

  1. Sovi käyttöönotosta tuen kanssa – LMC:n sarjanumero, vain luku vai luku/kirjoitus.

  2. Varmista paikalliset yhteystiedot. Selvitä LMC:n paikallinen IPv4-osoite asentajalta tai verkon ylläpitäjältä (tai reitittimen yhdistettyjen laitteiden luettelosta). Käytä sen Ethernet- tai Wi-Fi-yhteyttä; jos molemmat on kytketty, varmista, kumpi osoite palvelee Modbusia – palvelin kuuntelee yhtä osoitetta kerrallaan.

  3. Määritä Modbus-asiakas alla olevilla asetuksilla ja lue ensimmäinen mittauksesi.

Asetus

Arvo

Protokolla

Modbus TCP – LMC on palvelin, järjestelmäsi on asiakas

Palvelimen osoite

LMC:n paikallinen IPv4-osoite

TCP-portti

Oletuksena 502 (käytä tuen vahvistamaa porttia)

Unit ID / laitetunnus

Käytä arvoa 1, jos asiakas vaatii arvon. LMC ei huomioi sitä – sillä ei valita alavirran laturia.

Lukumuoto

Float32, kaksi rekisteriä arvoa kohden, ylempi sana ensin ja ylempi tavu ensin (ABCD, ”big-endian, ei sanojen vaihtoa”)

Osoitekäytäntö

Nollapohjaiset desimaaliosoitteet (katso ”Osoitteet ja koodaus”)

Modbus TCP:ssä ei ole todennusta eikä salausta. Mikä tahansa porttiin pääsevä voi lukea liitäntää. Rajoita pääsy luotettuihin järjestelmiin äläkä koskaan avaa porttia internetiin. Kirjoitusoikeus koskee kaikkia kirjoitettavia rekistereitä – myös laite- ja luettelokomentoja – eikä sitä voi rajata pelkkään virtaraja-asetukseen.

Ensimmäinen mittaus

Lue vaiheen L1 virta: funktio 03 (Read Holding Registers), aloitusosoite 600 (desimaali, nollapohjainen), määrä 2 rekisteriä, tulkitse muodossa float32 ABCD. Yksikkö: ampeeri.

Esimerkki: jos rekisterit palauttavat 0x41A4 ja 0x0000, arvo on 20,5 A. Yhdistä molemmat rekisterit yhdeksi 32-bittiseksi liukuluvuksi – älä käsittele kumpaakaan rekisteriä erillisenä arvona äläkä käytä skaalauskerrointa.

Mittausrekisterit (vain luku)

Lue funktiolla FC03 (holding registers) tai FC04 (input registers) samoista nollapohjaisista osoitteista.

Rekisterit

Mittaus

Yksikkö

Sijainti 26 rekisterin luvussa

600–601

Pääliittymän virta L1

A

0–1

602–603

Pääliittymän virta L2

A

2–3

604–605

Pääliittymän virta L3

A

4–5

606–619

Varattu – luku palauttaa nollan

—

6–19 (ohita)

620–621

Pääliittymän jännite L1

V

20–21

622–623

Pääliittymän jännite L2

V

22–23

624–625

Pääliittymän jännite L3

V

24–25

Lue kaikki kerralla: aloitus 600, määrä 26. Tai lue vain virrat (aloitus 600, määrä 6) tai vain jännitteet (aloitus 620, määrä 6). Sarake ”sijainti” lasketaan nollasta palautetun taulukon sisällä – se ei ole rekisterin osoite.

Mitä ”pääliittymän virta” tarkoittaa: se on LMC:n laskema kokonaisvirta vaihetta kohden. Kun mittari (virtamuuntajat) on pääliittymässä, arvo tulee mittarilta. Jos mittari mittaa vain muita rakennuksen kuormia, LMC lisää latureiden virrat. Asentajan mittauskokoonpanolla on siksi merkitystä, kun lukemia verrataan toiseen järjestelmään. Nolla tai muuttumaton lukema ei yksinään todista, että mittari toimii.

Liittymän virtarajan asettaminen (kirjoitusoikeus)

Edellyttää VOOLin tuen käyttöön ottamaa kirjoitusoikeutta. Väärä virtaraja voi sallia asennuksen kapasiteetin ylittävät kuormat ja laukaista suojalaitteet. Käytä vain asentajan vahvistamia rajoja äläkä koskaan ylitä asennuksen nimelliskapasiteettia.

Liittymän virtaraja on vaihekohtainen virtabudjetti, jonka puitteissa kuormanhallinta toimii. Se koskee koko liittymää, myös rakennuksen muita kuormia – se ei ole yksittäisen laturin virta.

Rekisterit

Asetus

Yksikkö

Muoto / käyttö

104–105

Liittymän virtaraja

A

Float32 / luku-kirjoitus

  1. Lue nykyinen arvo – FC03, aloitus 104, määrä 2. Säilytä se siltä varalta, että sinun täytyy palauttaa se.

  2. Kirjoita sovittu raja yhtenä float32-arvona funktiolla FC16 (Write Multiple Registers), kaksi rekisteriä yhdessä pyynnössä. Esimerkki 32 A:lle: rekisteri 104 = 0x4200, rekisteri 105 = 0x0000.

  3. Lue arvo takaisin ja varmista, ja seuraa sitten asennusta. Pelkkä kirjoitusvastaus ei todista, että muutos tuli voimaan.

Kokoonpanomuutokset ovat pysyviä ja vaikuttavat kuormanhallintaan käytön aikana.

Osoitteet ja koodaus

Kaikki tässä mainitut osoitteet ovat nollapohjaisia desimaalisia protokollaosoitteita. Määrä tarkoittaa 16-bittisten rekisterien määrää, ei arvojen määrää – jokainen numeerinen arvo käyttää kahta peräkkäistä rekisteriä. Asiakasohjelmat käyttävät eri käytäntöjä; L1-virran luvussa anna:

Asiakkaan käytäntö

Anna

Nollapohjainen osoite / siirtymä

600

Ykköspohjainen rekisterinumero (rekisteri 1 = osoite 0)

601

Holding register -viittaus (40001 = osoite 0)

40601

Älä lähetä arvoa 40601 protokollaosoitteena.

  • Mittaukset ja asetukset ovat fysikaalisissa yksiköissä, ei skaalausta.

  • Kytkimet: float32 0.0 = pois, 1.0 = päällä (mikä tahansa nollasta poikkeava arvo tulkitaan päälle).

  • Tilat: dokumentoitu kokonaislukuvalinta float32-muodossa, esim. 1.0.

  • Yleisiä arvoja: 0.0 = 0x0000 0x0000; 1.0 = 0x3F80 0x0000; 20.5 = 0x41A4 0x0000; 32.0 = 0x4200 0x0000.

  • Luettelokomennot käyttävät raakoja kokonaislukuja – katso alla.

Pyyntöjen säännöt

Funktio

Käyttö

03 — Read Holding Registers

Mikä tahansa luettava alue

04 — Read Input Registers

Vain mittaukset (600–625)

16 (0x10) — Write Multiple Registers

Kirjoitettavat arvot ja komentolohkot

FC06 (Write Single Register) ei ole tuettu ja palauttaa poikkeuksen 02 – käytä FC16:ta myös yksittäiselle arvolle. Kelloja (coils) ei käytetä.

Luettava alue (päätepisteet mukaan lukien)

Sisältö

Funktiot

104–111

Liittymän raja, toimintatilat, antenniasetus

FC03

240–283

Kuormanhallinnan hienosäätö

FC03

600–625

Mittaukset ja varatut nollat

FC03, FC04

  • Jokaisen luvun on pysyttävä yhden alueen sisällä. Alueiden ulkopuoliset luvut – myös komentorekisterit – palauttavat poikkeuksen 02.

  • Kirjoita numeeriset arvot niiden ensimmäisestä rekisteristä alkaen ja kirjoita molemmat rekisterit. Peräkkäiset kirjoitettavat arvot voi yhdistää yhteen pyyntöön, mutta ei kartoittamattoman välin yli.

  • Kirjoita komentolohkot täsmälleen niiden aloitusosoitteeseen ja määrällä.

  • Liitäntä ei valvo tämän artikkelin käyttöönottoalueita – tarkista arvot asiakasohjelmassa ja käytä äärellisiä lukuja.

  • Normaali kirjoitusvastaus vain kuittaa pyynnön. Lue asetukset takaisin ja varmista, että komennot on suoritettu, ennen kuin yrität uudelleen.

Vianmääritys

Oire

Mitä tarkistaa

Yhteys hylätty tai aikakatkaistu

Varmista tuelta, että Modbus on käytössä; tarkista LMC:n paikallinen IPv4-osoite ja portti, tavoitettavuus ja palomuurisäännöt. Jos sekä Ethernet että Wi-Fi on kytketty, varmista, mikä osoite kuuntelee. Modbus ei ylitä aliverkkoja tai VLANeja.

Luku palauttaa poikkeuksen 02

Tarkista osoitekäytäntö, määrä ja alueiden rajat. FC04 lukee vain 600–625. Komentorekisterejä ei voi lukea.

Kirjoitus palauttaa poikkeuksen 02

Varmista kirjoitusoikeus tuelta. Käytä FC16:ta, kirjoitettavaa osoitetta ja kokonaista arvoa tai lohkoa. FC06 hylätään.

Epäuskottavan suuria tai pieniä lukuja

Tulkitse muodossa float32 ABCD, kaksi rekisteriä arvoa kohden, ei skaalausta. Tarkista, onko osoite yhden verran pielessä.

Nolla- tai muuttumattomat mittaukset

Tarkista vastauksen sijainnit ja varattu alue. Pyydä tukea tarkistamaan mittari ja mittauskokoonpano.

Kirjoitus onnistuu, mutta arvo ei muutu

Lue takaisin, tarkista koodaus ja sallitut arvot. Pelkkä kuittaus ei takaa, että muutos otettiin käyttöön.

Integraatio toimi ja lakkasi sitten toimimasta

LMC:n paikallinen IP-osoite on voinut vaihtua reititinmuutoksen tai päivityksen jälkeen – aseta LMC:lle (ja latureille) kiinteä IP-osoite tai DHCP-varaus. Myös ohjelmistopäivitys tai palvelun uudelleenkäynnistys katkaisee istunnon; älä toista päivityskomentoa automaattisesti aikakatkaisun jälkeen.

Poikkeukset: 01 Illegal Function – tunnistamaton funktio. 02 Illegal Data Address – rekisterikartan tarkistusvirheet ja estetyt kirjoitukset. 03 Illegal Data Value – virheellinen protokollan määrä (esim. FC16-kirjoitus 1–123 rekisterin ulkopuolella); se ei tarkoita, että asetuksen arvoalue olisi tarkistettu.

Lisäasetukset (kirjoitusoikeus – sovi arvoista VOOLin tuen kanssa)

Nämä muuttavat kuormanhallinnan toimintaa tai laitteiston kokoonpanoa. Kaikki ovat luku-kirjoitus-float32-arvoja. Arvoalueet ovat käyttöönoton rajoja, eivät suositeltuja asetuksia – lue asennetut arvot ennen kuin muutat mitään.

Toimintatilat ja antenni

Rekisterit

Asetus

Arvot

106–107

Pääliittymän mittaustila

0 = mittari pääliittymässä, laturit mukaan lukien; 1 = mittari mittaa muita rakennuksen kuormia, LMC lisää latureiden virrat

108–109

Kuormanhallintatila

0 = priorisoitu jako; 1 = tasainen tehonjako

110–111

Käytä ulkoista Wi-Fi-antennia

0 = pois; 1 = päällä. Vaatii yhteensopivan laitteiston ja antennin; tulee voimaan LMC:n uudelleenkäynnistyksen jälkeen

Kuormanhallinnan hienosäätö

Rekisterit

Asetus

Yksikkö

Arvoalue / arvot

240–241

Viitearvon muutosnopeuden rajoitus käytössä (virran nosto)

—

0 = pois; 1 = päällä

242–243

Viitearvon muutosnopeuden raja

A/s

0–32

244–245

Virtakynnys käynnistysnoston päättämiselle

A

0–32

246–247

Tasainen tehonjako: alkuvirran askel

A

0.01–32

248–249

Tasainen tehonjako: oletusvirran askel

A

0.01–32

250–251

Tasainen tehonjako: tasavirran vähimmäiskynnys

A

0–32

252–253

Tasainen tehonjako: viive ennen laturin latauksen estämistä

s

0–86400

254–255

Tasainen tehonjako: viive ennen laturin latauksen sallimista

s

0–86400

256–257

Vaihekohtainen kuormanhallinta käytössä

—

0 = pois; 1 = päällä

258–259

Vaiheenvaihdon viive

s

0–30

260–261

Vaiheenvaihdon virtakynnys

A

0–1000

262–263

Vaiheenvaihdon epäsymmetriakynnys

%

0–100

264–265

Vaiheen ylikuorman keskeytys käytössä

—

0 = pois; 1 = päällä

266–267

Pakota yksivaiheinen lataus vaiheen ylikuorman käsittelyn aikana

—

0 = pois; 1 = päällä

268–269

Vaiheen ylikuorman taukoaika

s

0–86400

270–271

Keskeytyksen välttäminen käytössä

—

0 = pois; 1 = päällä

272–273

Keskeytysvaiheen 1 virtakynnys

A

0–32

274–275

Keskeytysvaiheen 1 pitoaika

s

0–600

276–277

Keskeytysvaiheen 2 virtakynnys

A

0–32

278–279

Keskeytysvaiheen 2 pitoaika

s

0–600

280–281

Keskeytysvaiheen 3 virtakynnys

A

0–32

282–283

Keskeytysvaiheen 3 pitoaika

s

0–600

Laite- ja luettelokomennot (vain kirjoitus)

Komennot vaativat kirjoitusoikeuden, niitä ei voi lukea (poikkeus 02) ja ne voivat keskeyttää toiminnan tai muuttaa asennuksen kokoonpanoa – käytä niitä vain osana sovittua huolto- tai käyttöönottomenettelyä.

Laitekomennot

FC16, täsmälleen kaksi rekisteriä aloitusosoitteesta. Float32-arvon 1.0 (0x3F80 0x0000) – tai minkä tahansa nollasta poikkeavan arvon – kirjoittaminen käynnistää komennon; 0.0 ei tee mitään.

Rekisterit

Komento

Vaikutus

4–5

Päivitä LMC:n ohjelmisto

Käynnistää oletusohjelmistopäivityksen. Valmistumisesta ei ilmoiteta Modbusin kautta.

12–13

Käynnistä LMC-palvelu uudelleen

Käynnistää ohjainsovelluksen uudelleen ja katkaisee Modbus-yhteyden.

Laturiluettelo

Kirjoita täsmälleen 7 rekisteriä alkaen osoitteesta 8900 yhdessä FC16-pyynnössä. Raakoja etumerkittömiä kokonaislukuja, ei float32. Luetteloa ei voi lukea takaisin Modbusin kautta.

Rekisteri

Kenttä

Koodaus / käyttö

8900

Alikomento

1 = lisää; 2 = poista; 3 = päivitä; 4 = tyhjennä

8901–8903

Laturin sarjanumero

6 tavua, ylempi tavu ensin rekisteriä kohden. Sarjanumero 112233445566 → 0x1122, 0x3344, 0x5566

8904

Multipoint-tunnus

0–255, vain alempi tavu – piste, johon laturi on määritetty

8905

Liput

Bitti 0 ottaa laturille käyttöön OCPP 1.6:n (käytä arvoa 1); pidä muut bitit nollina

8906

Varattu

Kirjoita 0

Poisto käyttää vain sarjanumeroa (kirjoita muihin kenttiin nolla). Tyhjennys palauttaa luettelon oletuksiin eikä huomioi sisältöä. Tuntematon alikomento kuitataan mutta jätetään huomiotta.

Multipoint-luettelo

Multipoint on liitäntäpiste, jolla on oma virtaraja. Kirjoita täsmälleen 4 rekisteriä alkaen osoitteesta 8920 yhdessä FC16-pyynnössä, raakoja etumerkittömiä kokonaislukuja. Luetteloa ei voi lukea takaisin Modbusin kautta.

Rekisteri

Kenttä

Koodaus / käyttö

8920

Alikomento

1 = lisää; 2 = poista; 3 = päivitä; 4 = tyhjennä

8921

Multipoint-tunnus

1–255. Piste 0 on liittymä, eikä sitä voi muuttaa näillä komennoilla

8922

Virtaraja

Kokonaisia ampeereja, uint16 (0–65535), asennuksen sovitun kapasiteetin rajoissa

8923

Ylemmän multipointin tunnus

Kirjoita 0 (ei ylempää) – tämä komento ei tue nollasta poikkeavia ylempiä pisteitä

Poisto käyttää vain multipoint-tunnusta. Poista määritetyt laturit ja alipisteet ennen pisteen poistamista. Tyhjennys palauttaa oletukset. Vahvista lopputuloksena syntyvä kokoonpano tuen kanssa.

Ota yhteyttä tukeen

Käyttöönottoa, kirjoitusoikeutta tai integraatioapua varten pyydä VOOLin tukea chatissa ja kerro LMC:n sarjanumero. Kun ilmoitat ongelmasta, kerro myös asiakasohjelmisto, LMC:n paikallinen IP-osoite ja portti, funktiokoodi, aloitusosoite, määrä, vastaus tai poikkeus, tapahtuma-aika sekä LMC:n ohjelmistoversio, jos tiedät sen.

Tämä artikkeli koskee LMC-ohjelmiston versiossa v6.4.0 käyttöön otettua LMC:n Modbus-liitäntää. Pyydä tukea vahvistamaan asennetun ohjelmistosi käytettävissä olevat toiminnot ennen kuin otat käyttöön edistyneen integraation.

Vastasiko tämä kysymykseesi?