Răspunsul rapid
Orice dispozitiv GX Victron, deci și Cerbo GX, are un server Modbus TCP pe portul 502, oprit din fabrică. Îl pornești din Settings → Integrations → Modbus TCP Server; în versiunile vechi de Venus OS (sistemul de operare al GX-ului), opțiunea stătea sub Settings → Services.
Unit ID-ul alege aparatul, registrul alege mărimea. Bilanțul instalației e pe Unit ID 100: tensiunea bateriei în 840, curentul în 841 (cu semn), ambele împărțite la 10, puterea în 842 și procentul de încărcare în 843.
Unit ID-ul fiecărui aparat îl citești în lista Available services. Din Venus OS v2.60 se alocă dinamic, iar un număr copiat dintr-un exemplu (246 e portul VE.Bus al vechiului Color Control GX) dă erori pe un Cerbo.
Prin Modbus comanzi mai ales funcționarea: pornirea și oprirea, limita de curent la intrare, setpoint-urile ESS (sistemul Victron de autoconsum legat la rețea) și releele. Tensiunile de absorbție și de float nu se schimbă pe această cale.
Modbus TCP nu are parolă și nici criptare și permite din fabrică scrierea. Îl ții într-o rețea separată, cu acces pe citire dacă doar monitorizezi, și nu deschizi niciodată portul 502 spre internet.
Modbus TCP, MQTT sau API-ul VRM: ce interfață alegi
Pentru un automat programabil (PLC), un sistem SCADA sau automatizarea unei clădiri din aceeași rețea locală, Modbus TCP e interfața potrivită, iar Victron o recomandă pentru integrarea unui sistem întreg. SCADA (Supervisory Control and Data Acquisition) e sistemul care interoghează ciclic echipamentele și afișează tablouri și alarme.
Interfața | Cine o folosește | Când o alegi | La ce fii atent |
|---|
Modbus TCP | PLC, SCADA, automatizarea clădirii | Citire ciclică și comenzi simple, local | Fără parolă; Unit ID-uri și registre de întreținut |
MQTT pe rețeaua locală | Home Assistant, servere IT | Date publicate, fără hartă de registre | Portul 1883 e necriptat, 8883 folosește SSL |
API-ul VRM | Aplicații pe internet, flote de instalații | Monitorizare de la distanță | Internetul și intervalul de înregistrare (implicit 15 minute) |
Node-RED pe GX | Logică rulată pe Cerbo | Automatizări cu relee și surplus | Cere imaginea Venus OS Large |
Regula de decizie: automat sau SCADA local, Modbus TCP; server IT sau casă inteligentă, MQTT; client din afara clădirii, API-ul VRM. Releele, SG-Ready și Node-RED sunt în ghidul despre surplusul solar prin Cerbo GX, iar montajul și VRM-ul, în ghidul de configurare Cerbo GX și VRM.
Cum lucrează Cerbo GX ca gateway Modbus
Cerbo GX e o poartă (gateway): adună datele aparatelor legate la el și le servește clienților Modbus pe portul TCP 502. Aparatele vin pe VE.Direct (legătură serială, un aparat pe port), pe VE.Bus (magistrala invertoarelor-încărcătoare) și pe VE.Can (magistrala CAN Victron, cu aparatele în lanț). Modbus TCP e protocolul Modbus transportat prin Ethernet sau Wi-Fi (TCP/IP), în locul liniei seriale RS485 din Modbus RTU.
Fiecare cerere are două adrese: Unit ID-ul (în unele programe slave address) alege aparatul, iar registrul alege mărimea. GX-ul acceptă funcțiile 3 și 4 (citire, identice la Victron), 6 și 16 (scriere).
Pentru un PLC, GX-ul e calea firească: VE.Bus e un protocol proprietar, la care Victron nu permite conexiuni directe ale altor producători, iar dintre interfețele permise recomandă Modbus TCP. Ekrano GX și aparatele cu GX integrat, ca MultiPlus-II GX, au același server; Cerbo GX și Ekrano GX sunt în categoria de accesorii pentru energie solară.
Pornirea serviciului: IP fix, permisiuni și lista Available services
Modbus TCP se pornește din meniul GX-ului în cinci pași, iar primul ține de rețea: PLC-ul adresează Cerbo după IP, deci adresa nu trebuie să se schimbe.
Adresa IP fixă, rezervată în serverul DHCP sau setată manual în Settings → Connectivity → Ethernet → IP configuration (din fabrică, DHCP).
Pornirea. Settings → Integrations → Modbus TCP Server → Enable Modbus TCP Server, oprit din fabrică.
Permisiunile. Access permissions stă din fabrică pe Write allowed; dacă SCADA doar citește, treci pe citire.
Lista de servicii. Available services afișează fiecare serviciu cu Unit ID-ul lui; le treci în documentația proiectului.
Citirea de probă: Unit ID 100, funcția 3, adresa 840, patru registre, care îți dau tensiunea, curentul, puterea și starea de încărcare a bateriei.
Când mai multe dispozitive GX stau pe aceeași rețea VE.Can, Victron cere ca Modbus TCP să fie pornit pe unul singur.
Unit ID: de ce îl citești din aparat, nu dintr-un tutorial
Unit ID-ul nu e o constantă Victron: din Venus OS v2.60 se alocă dinamic și e, în general, egal cu instanța aparatului. Excepție fac instanțele peste 247, cum sunt cele ale aparatelor de pe porturile VE.Bus și VE.Direct, așa că sursa sigură e lista Available services. Tabelul Unit ID mapping din lista oficială păstrează valorile preferate:
Unde e legat aparatul | Unit ID preferat | Observații |
|---|
Datele de sistem (com.victronenergy.system) | 100 | Tot pe 100 răspund aparatele VE.Can cu instanța 0 |
Portul VE.Bus al lui Cerbo GX | 227 | 246 e portul VE.Bus al vechiului Color Control GX (CCGX) |
Porturile VE.Direct 1, 2 și 3 ale lui Cerbo GX | 226, 224, 223 | Orice aparat VE.Direct |
Baterie cu BMS pe CAN | 225 | Instanța 512 |
MultiPlus-II GX și EasySolar-II GX | 228, VE.Bus intern | Porturile VE.Direct ale GX-ului integrat: 229 și 230 |
Aparate VE.Direct legate prin USB | 231-239 | 239 e primul adaptor (ttyUSB0) |
Patru reguli utile:
Unit ID 0 și 100 sunt aceeași adresă. Folosești 100, pentru că multe programe de PLC nu acceptă 0.
Unit ID-urile nu se schimbă la repornire sau la o pană de curent. Se pot schimba dacă muți aparatul pe alt port sau îi modifici instanța din Settings → VRM → VRM device instances, iar atunci recitești lista.
Un sistem VE.Bus în paralel sau trifazat nu se adresează pe unități: primești totaluri și valori pe fază (cablarea, în ghidul despre MultiPlus-II în paralel și trifazat).
Nu toate registrele există pe toate aparatele: o baterie cu BMS pe CAN nu are istoricul de descărcări al unui monitor de baterie.
Când ai mai multe aparate VE.Direct decât porturi, pe cele în plus le legi prin interfața VE.Direct la USB.
Registrele de sistem pe Unit ID 100
Pentru un tablou SCADA, serviciul com.victronenergy.system de pe Unit ID 100 dă bilanțul instalației deja calculat de GX. În tabele, int16 e un întreg pe 16 biți cu semn, iar uint16 unul fără semn.
Registru | Mărime | Tip și scalare | Semn și observații |
|---|
840 | Tensiunea bateriei | uint16, împarți la 10, V | Sursa preferată: monitor de baterie, apoi invertor, apoi regulator |
841 | Curentul bateriei | int16, împarți la 10, A | Pozitiv la încărcare, negativ la descărcare |
842 | Puterea bateriei | int16, W | Același semn ca la curent |
843 | Starea de încărcare (SoC) | uint16, % | Cea mai bună sursă disponibilă |
844 | Starea bateriei | cod | 0 repaus, 1 încărcare, 2 descărcare |
850 | Puterea solară cuplată DC | uint16, W | Suma regulatoarelor solare |
817, 818, 819 | Consumul AC pe L1, L2, L3 | uint16, W | Puterea dată consumatorilor |
820, 821, 822 | Rețeaua pe L1, L2, L3 | int16, W | Pozitiv la import, negativ la injecție |
826 | Intrarea activă | cod | 1 rețea, 2 generator, 3 priză de mal, 240 deconectat |
Trei capcane frecvente. 850 nu e toată producția solară: invertoarele fotovoltaice de rețea, cuplate pe AC, sunt în 808-813. Valorile pe 16 biți se opresc la 32.767 W pe fază (65.535 W fără semn), de aceea listele recente au și variante pe 32 de biți: 902-907 pentru consum, 908-913 pentru rețea. SoC-ul din 843 e doar atât de bun cât sursa lui: un șunt sau BMS-ul bateriei îl măsoară, iar sursele sunt comparate în ghidul despre monitorul de baterie cu șunt.
Registrele pe aparat: invertor-încărcător, regulator, baterie și contor
Pe Unit ID-ul fiecărui aparat citești valorile lui: VE.Bus de la registrul 3, regulatoarele solare de la 771, bateria de la 256, contorul de branșament de la 2600.
Registru | Mărime | Tip și scalare | Observații |
|---|
3, 4, 5 | Tensiunea la intrare, L1-L3 | uint16, împarți la 10, V | La ieșire: 15, 16, 17 |
12 | Puterea la intrare, L1 | int16, factor 0,1 | W = valoarea x 10 |
22 | Limita de curent la intrare | int16, împarți la 10, A | Se poate scrie |
31 | Starea VE.Bus | cod | 3 bulk, 4 absorbție, 5 float, 8 trecere directă, 9 invertor, 10 PowerAssist |
33 | Poziția comutatorului | cod | Se poate scrie: 1 doar încărcător, 2 doar invertor, 3 pornit, 4 oprit |
34, 35, 36 | Alarme: temperatură, baterie descărcată, suprasarcină | cod | 0 OK, 1 avertizare, 2 alarmă |
Contoarele de energie ale invertorului-încărcător (74-92) sunt volatile: se pun pe zero la oprirea aparatului și la repornirea GX-ului, deci rapoartele lunare le faci din contorul de branșament.
Aparat | Registru | Mărime | Tip și scalare |
|---|
Regulator solar | 775 | Faza de încărcare | cod: 0 oprit, 2 defect, 3 bulk, 4 absorbție, 5 float |
Regulator solar | 776 și 777 | Tensiunea și curentul panourilor | împarți la 100 (V), respectiv la 10 (A) |
Regulator solar | 784 | Producția de azi | uint16, împarți la 10, kWh |
Regulator solar | 789 sau 792 | Puterea panourilor | uint16 împărțit la 10, până la 6.553,5 W; uint32 în W |
Monitor de baterie, BMS | 259 și 261 | Tensiunea și curentul | împarți la 100 (V), respectiv la 10 (A, cu semn) |
Monitor de baterie, BMS | 266 | Starea de încărcare | uint16, împarți la 10, % |
Contor de rețea | 2600, 2601, 2602 | Puterea pe L1, L2, L3 | int16, W |
Contor de rețea | 2616, 2618, 2620 | Tensiunea pe L1, L2, L3 | uint16, împarți la 10, V |
Contor de rețea | 2634 și 2636 | Energia totală din și spre rețea | uint32, împarți la 100, kWh |
Tensiunea panourilor (776) lipsește când mai multe regulatoare VE.Can sunt combinate, iar curentul panourilor (777) nu e măsurat, ci calculat din putere și tensiune. Regulatoarele MPPT Victron din categoria de regulatoare solare, pe VE.Direct sau pe VE.Can, apar toate în com.victronenergy.solarcharger. La contor, curenții stau în 2617, 2619 și 2621, intercalați cu tensiunile.
Cu rolul de contor de branșament, VM-3P75CT apare în serviciul de rețea; se leagă la GX prin VE.Can sau prin Ethernet și măsoară până la 80 A pe fază (75 A nominal).
Decodarea valorilor: factorul de scalare, semnul și adresa
Valoarea reală e numărul primit împărțit la factorul de scalare din listă, cu semn la tipurile int16 și int32; valorile absurde dintr-o integrare nouă vin de obicei din semn, din factor sau din adresă.
Exemplu: citești blocul 840-843 de pe Unit ID 100 și primești 524, 65.386, 64.746 și 87.
840: 524 / 10 = 52,4 V.
841: fără semn, 65.386 e absurd. Ca int16 e 65.386 - 65.536 = -150, iar -150 / 10 = -15,0 A: bateria se descarcă.
842: 64.746 - 65.536 = -790 W, iar 52,4 V x 15,0 A = 786 W confirmă citirea.
843: 87%.
Restul regulilor:
Factorul e un împărțitor. 10 înseamnă zecimi, 100 sutimi, iar un factor sub 1 înmulțește: puterile VE.Bus (0,1) se înmulțesc cu 10, iar timpul rămas al bateriei (303, factor 0,01) dă secunde = valoarea x 100. Amperorele consumate (265) au factorul -10, deci ies negative.
32 de biți. Registrele int32 și uint32 ocupă două adrese consecutive, iar lista nu precizează ordinea cuvintelor: o confirmi comparând, de exemplu, puterea rețelei citită pe 16 și pe 32 de biți.
Decalajul de adresă. Adresele din listă sunt cele din cerere: exemplul oficial Victron citește adresa 3 și primește 2302, adică 230,2 V. Programele care numerotează de la 1 sau de la 40001 cer pentru 840 valoarea 841 sau 40841.
Blocurile. O cerere citește cel mult 125 de registre (limita specificației Modbus) și nu poate cuprinde adrese inexistente: o citire 1-100 eșuează, pentru că 1 și 2 nu există.
Scrierea din PLC: ce poți comanda și ce rămâne în configurare
Prin Modbus TCP schimbi mai ales starea de funcționare: tensiunile de absorbție și de float nu se pot modifica și rămân în VEConfigure și VictronConnect. Listele recente au și câteva setări care se pot scrie (ESS, limita de curent de încărcare a sistemului, PowerAssist, tensiunea de ieșire), marcate în coloana writable; orice scriere cere Access permissions pe scriere.
Comanda | Registrul | Condiția ca să aibă efect |
|---|
Pornit, oprit, doar încărcător, doar invertor | 33, pe Unit ID-ul VE.Bus | Blocată cu VE.Bus BMS sau cu panoul Digital Multi Control; GX-ul îi ține minte și după scoatere, până la Redetect system |
Limita de curent la intrare | 22, pe Unit ID-ul VE.Bus | Overruled by remote activ în VEConfigure pe acea intrare; Digital Multi Control are prioritate |
Setpoint-ul de rețea ESS | 2700, sau 2716 pentru actualizări dese | 2716 e ținut doar în memorie și nu merge cu Dynamic ESS |
Releele lui Cerbo | 806 și 807, pe Unit ID 100 | 0 deschis, 1 închis |
Pornirea generatorului | 3500: 0 oprește, 1 pornește | Releul 1 trecut pe pornirea generatorului |
La limita de curent, valoarea scrisă nu are efect fără Overruled by remote, opțiunea din VEConfigure care lasă limita să fie schimbată din afară, setată de regulă cu interfața MK3-USB. Cu PowerAssist activ (invertorul completează din baterie peste limita intrării), o valoare sub minimul modelului e ridicată automat, deci PLC-ul citește registrul înapoi după scriere. În paralel sau trifazat, valoarea e limita totală pe fază.
Peak shaving-ul (tăierea vârfurilor de consum) are la Victron două mecanisme, cu registre diferite. Registrul 22 schimbă limita intrării invertorului-încărcător: cu PowerAssist activ sau cu ESS, bateria completează ce trece de ea, dar numai pentru consumatorii de pe AC-out. Fără ele, o limită mai mică reduce doar încărcarea bateriei, iar vârful trece întreg prin intrare. Al doilea mecanism ține de ESS: limitele de curent de import și export pe fază, adăugate de Venus OS v3.30, cer un contor de energie la branșament și se aplică întregului sistem, deci și consumatorilor din tablou. În lista de registre sunt 2714 (import) și 2713 (export), iar -1 le dezactivează; condițiile lor sunt în ghidul despre ESS, injecție zero și peak shaving.
Pentru o buclă de reglaj proprie există modul ESS External control (2902 = 3), în care algoritmul ESS se oprește. Setpoint-urile de putere pe fază merg atunci pe Unit ID-ul VE.Bus, în 37, 40 și 41, negative la descărcare.
O scriere greșită are efecte fizice: valoarea 4 în registrul 33 oprește invertorul și ieșirea de 230 V, iar registrul 62 resetează VE.Bus la orice scriere, deci nu intră în blocuri. Pui interblocări în PLC și testezi comenzile cu instalatorul de față; circuitele de 230 V rămân la un electrician autorizat.
Securitate: Modbus TCP nu are parolă, deci stă într-o rețea separată
Modbus TCP nu are autentificare și nici criptare: orice aparat care ajunge la portul 502 al lui Cerbo poate citi tot sistemul, iar cu scrierea permisă poate opri invertorul sau schimba limitele. Meniul serverului nu are câmp de parolă, iar profilul de securitate al rețelei locale (Secured, Weak, Unsecured) privește, în tabelul din manual, Remote Console și transmisia spre VRM; Modbus TCP nu apare acolo. Singura barieră din aparat rămâne Access permissions, pe care o lași pe citire când nu comanzi nimic.
Portul 502 nu se deschide niciodată spre internet prin redirecționare de porturi (port forwarding). Din afară intri în rețeaua de automatizare printr-un VPN (tunel criptat), iar monitorizarea o faci prin VRM, cu profilul de rețea și contul VRM setate ca în ghidul de configurare Cerbo GX și VRM.
Rețea separată. PLC-ul, SCADA și Cerbo stau într-o subrețea sau într-un VLAN (rețea virtuală, separată logic pe același switch) dedicat automatizării, iar un firewall lasă spre portul 502 doar adresa clientului Modbus. Un switch gestionabil cu VLAN-uri, din categoria de switch-uri, face separarea fără cabluri noi.
Cerbo pe două rețele, fără să le unești. Ethernetul stă în rețeaua de automatizare, cu Allow using Ethernet for internet access oprit: fără gateway, interfața comunică doar în subrețeaua ei, unde e și clientul Modbus. Internetul pentru VRM vine pe Wi-Fi, cu Allow using WiFi for internet access pornit. Meniul serverului nu are o opțiune de legare la o singură interfață, deci tratezi ca expusă orice rețea la care e legat Cerbo.
Punctul de acces Wi-Fi al lui Cerbo, pornit din fabrică, îl oprești după punerea în funcțiune, ca să nu rămână o cale ocolitoare.
Cablu UTP neecranat. Portul Ethernet al lui Cerbo e izolat, cu excepția ecranului, iar manualul cere cablu neecranat ca să eviți buclele de masă.
Depanare: codurile de excepție și greșelile tipice
Codul de excepție întors de GX, afișat de majoritatea programelor de PLC, îți spune de obicei dacă greșeala e în Unit ID sau în registru.
Cod | Ce înseamnă pe GX | Ce verifici |
|---|
0x01 | Funcție nesuportată | Folosești 3, 4, 6 sau 16 |
0x02 | Unit ID-ul există, registrul nu | Serviciul potrivit Unit ID-ului, blocul, versiunea de Venus OS |
0x03 | Număr de registre invalid | Cel mult 125 la o citire |
0x0A | Unit ID în tabel, fără aparat pe port | Cablul, alimentarea, lista de dispozitive a GX-ului |
0x0B | Unit ID necunoscut | Lista Available services |
Greșelile fără cod de eroare:
Numere în jur de 65.000 la descărcare: registrul e citit fără semn; îl declari întreg cu semn pe 16 biți.
Valori mutate cu un registru: decalajul de adresă al programului de PLC.
Un registru care stă mereu pe zero: verifici în coloana Remarks a listei dacă e scos din uz (unele registre vechi dau mereu 0) și compari cu ecranul GX-ului; Victron nu publică ce date are fiecare tip de aparat.
Checklist înainte de punerea în funcțiune
O integrare Modbus cu Cerbo GX e gata de predare când trece aceste șase verificări:
IP fix în subrețeaua clientului Modbus, serviciul pornit pe un singur GX.
Access permissions pe citire, dacă SCADA doar monitorizează.
Unit ID-urile din Available services, recitite după orice schimbare de port sau de instanță.
Lista de registre în versiunea curentă de pe site-ul Victron (în octombrie 2026, fișierul 3.81); registrele noi pot lipsi pe un Venus OS vechi.
Valorile comparate cu ecranul GX-ului, inclusiv semnul curentului la încărcare și la descărcare.
Comenzile testate cu instalatorul de față, cu interblocări în PLC.
Pe scurt
Cerbo GX e gateway Modbus TCP pe portul 502, oprit din fabrică: Unit ID-ul alege aparatul, registrul alege mărimea.
Bilanțul e pe Unit ID 100 (840 tensiunea și 841 curentul, împărțite la 10, 842 puterea, 843 SoC-ul); Unit ID-urile aparatelor le iei din Available services.
Valoarea reală e numărul primit împărțit la factorul de scalare, cu semn la int16 și int32.
Prin Modbus comanzi pornirea și oprirea, limita de curent (doar cu Overruled by remote), setpoint-urile ESS și releele, nu tensiunile de absorbție și de float.
Fără parolă și fără criptare: rețea separată, acces pe citire unde se poate, VPN de la distanță, niciodată port forwarding la 502.