---
title: 'Protocoale de comunicație compatibile'
section: 'Reference'
weight: 1
description: Prezentare generală a protocoalelor de comunicație industriale și IoT compatibile cu platforma – Modbus, OPC UA, MQTT și DLMS/COSEM.
related:
  - architecture/data-collection-layer
  - integration
  - equipment
  - rest-api
---

import Alert from '@/components/docs/Alert.astro';

## Modbus (RTU / TCP)

### Scop și descriere

Un protocol industrial simplu și larg răspândit pentru schimbul de date de proces între controlere, senzori și actuatoare. Dezvoltat în 1979 de Modicon (în prezent Schneider Electric), a devenit standardul de facto în automatizarea industrială. Se folosește în sistemele SCADA, în automatele programabile (PLC), în convertizoarele de frecvență, în instrumentele de măsurare și în senzori. Datorită simplității implementării și cerințelor minime privind resursele de calcul, protocolul este ideal pentru sistemele încorporate și pentru dispozitivele cu memorie limitată.

### Arhitectură și model de date

Modelul de date bazat pe registre cuprinde patru tipuri de spațiu de adrese:

- **Coils (0x)** – ieșiri discrete (valori de un bit, citire/scriere)
- **Discrete Inputs (1x)** – intrări discrete (numai pentru citire)
- **Input Registers (3x)** – registre de intrare pe 16 biți (numai pentru citire)
- **Holding Registers (4x)** – registre de menținere pe 16 biți (citire/scriere)

Arhitectură client-server (master-slave): dispozitivul master inițiază cererile, iar dispozitivele slave răspund. Fiecare dispozitiv slave are o adresă unică (1–247). Protocolul nu are o semantică încorporată a datelor – interpretarea valorilor din registre se definește la nivelul aplicației și în documentația dispozitivului. Sunt acceptate operații de citire și de scriere atât pentru un singur registru, cât și pentru mai multe registre.

### Transport

**Modbus RTU:**

- Linii seriale RS-485 (până la 32 de dispozitive pe magistrală, la o distanță de până la 1.200 m) sau RS-232 (punct la punct)
- Reprezentare binară a datelor
- Verificarea integrității prin CRC-16
- Viteză de transmisie: de la 1200 la 115200 de bauzi
- Transmisie semiduplex

**Modbus TCP:**

- Încapsularea cadrelor Modbus în TCP/IP (portul 502)
- Antetul MBAP (Modbus Application Protocol) pentru identificarea tranzacțiilor
- Transmisie duplex integral
- Posibilitatea de a lucra simultan cu mai multe dispozitive
- Suma de control nu este necesară (fiabilitatea o asigură TCP)

### Capabilități-cheie

- Citirea și scrierea semnalelor discrete (Coils) și a registrelor
- Compatibilitate cu codurile de funcție standard (FC 01–06, 15–16, 23)
- Funcții de diagnosticare (FC 08)
- Citirea datelor de identificare a dispozitivului (FC 17, 43)
- Cerințe minime privind resursele de calcul ale dispozitivelor
- Implementare și depanare simple
- Cost redus de implementare
- Tratarea excepțiilor și coduri de eroare
- Compatibilitate cu mesajele de difuzare (adresa 0) în RTU
- Scalabilitate de până la 247 de dispozitive pe o linie (RTU) sau fără limită prin TCP

<Alert type="note">**Compatibilitate completă**</Alert>

## OPC UA

### Scop și descriere

Un standard universal și multiplatformă (OPC Unified Architecture, IEC 62541) pentru schimbul securizat și structurat de date industriale, metadate și informații semantice. Dezvoltat de OPC Foundation ca succesor al specificațiilor clasice OPC DA/AE/HDA, elimină dependența de tehnologiile Microsoft DCOM. Permite integrarea verticală și orizontală în sistemele industriale – de la nivelul de câmp până la sistemele informatice ale întreprinderii (ERP, MES). Datorită capabilităților extinse de modelare a informațiilor, sprijină conceptele de Industrie 4.0 și de geamăn digital.

### Arhitectură și model de date

Model de date orientat pe obiecte, care reprezintă informațiile ca un spațiu de noduri adresabile (Address Space):

- **Noduri** de diferite tipuri: Variable, Object, Method, View, DataType, ReferenceType
- **Atributele nodurilor**: Value, DataType, AccessLevel, Timestamp, Quality, DisplayName etc.
- **Referințe** între noduri: ierarhice, asociative, de compunere
- **Tipuri de date**: tipuri primitive, structuri, tablouri, enumerări

Servicii acceptate:

- **Abonare (Subscription)** – monitorizarea modificărilor datelor, cu intervale de eșantionare și filtre configurabile
- **Evenimente și alarme (Events & Alarms)** – notificări asincrone despre evenimente, alarme și stări
- **Acces la istoric (Historical Access)** – acces la datele și evenimentele arhivate
- **Metode (Methods)** – apelarea de la distanță a procedurilor pe dispozitive

Modele informaționale specifice industriilor (Companion Specifications): construcții de mașini, energie, petrol și gaze, industrie farmaceutică.

### Transport

**Protocolul binar UA (UA Binary) prin TCP/IP:**

- Protocol binar cu serializare optimizată (portul 4840)
- Performanță ridicată și încărcare suplimentară minimă

**HTTPS / SOAP:**

- Profilul Web Services pentru integrarea cu sistemele de întreprindere
- Codificare JSON pentru aplicațiile în cloud

**OPC UA PubSub:**

- Model publicator-abonat pentru sistemele distribuite
- Transport: UDP Multicast, MQTT, AMQP, Ethernet TSN
- Transmisie deterministă pentru aplicațiile cu cerințe stricte de timp

**Securitate:**

- Moduri de securitate pe mai multe niveluri (None, Sign, SignAndEncrypt)
- Certificate X.509 pentru autentificare
- Criptare AES, RSA

### Capabilități-cheie

- **Modelarea informațiilor**: transmiterea nu doar a valorilor „brute”, ci și a datelor structurate complexe, cu semantică, tipizare și metadate
- **Abonamente** cu intervale de interogare configurabile, filtre de bandă moartă (deadband) și stocare tampon
- **Evenimente** și sistem de alarme cu filtrare condiționată
- **Apelarea metodelor** pentru comanda dispozitivelor și executarea operațiilor
- **Acces la datele istorice**, cu agregare
- **Descoperirea serviciilor** în rețelele locale
- **Securitate încorporată**: criptarea canalului, autentificarea pe bază de certificat sau de nume de utilizator și parolă, controlul accesului la nivelul nodurilor
- **Redundanța serverelor și toleranța la defecte**
- **Multiplatformă**: Windows, Linux, VxWorks, QNX și alte sisteme de operare
- **Scalabilitate**: de la microcontrolere la sisteme distribuite

<Alert type="note">**Compatibilitate completă**</Alert>

## MQTT

### Scop și descriere

Un protocol de mesagerie ușor (Message Queuing Telemetry Transport) pentru telemetrie, monitorizare de la distanță și gestionarea dispozitivelor IoT, optimizat pentru rețele nefiabile, lățime de bandă limitată și latență ridicată. A fost dezvoltat în 1999 de IBM pentru monitorizarea conductelor petroliere și standardizat de OASIS și ISO/IEC (20922:2016). Este larg utilizat în IoT industrial, în casele inteligente, în telematica vehiculelor și în aplicațiile mobile. Protocolul urmărește să reducă la minimum traficul de rețea și consumul de energie al dispozitivelor.

### Arhitectură și model de date

Model asincron **publicare/abonare (Publish/Subscribe)** cu broker centralizat:

- **Publicator (Publisher)** – dispozitiv sau aplicație care publică mesaje în topicuri
- **Abonat (Subscriber)** – dispozitiv sau aplicație care primește mesajele din topicurile la care s-a abonat
- **Broker** – server central de rutare a mesajelor (Mosquitto, HiveMQ, EMQ X etc.)

**Topicuri (Topics)** – structură ierarhică de căi pentru clasificarea mesajelor:

- Separatori de niveluri: `/` (de exemplu `factory/building1/temperature`)
- Metacaractere: `+` (un singur nivel), `#` (mai multe niveluri)
- Exemplu de abonare: `sensors/+/temperature` sau `factory/#`

**Formatul datelor** îl definește aplicația: JSON, Protocol Buffers, XML, date binare, text.  
**Mesaje reținute (Retained messages)**: brokerul stochează ultimul mesaj al unui topic și îl livrează abonaților noi.  
**Sesiuni persistente (Persistent sessions)**: brokerul păstrează abonamentele clientului după deconectare.

### Transport

- Nivelul de transport: TCP/IP (portul 1883 pentru conexiunile nesecurizate)
- TLS/SSL (portul 8883) pentru criptare și autentificare
- WebSockets pentru integrarea cu browserele și cu aplicațiile web
- Versiunile protocolului: MQTT 3.1.1 (cea mai răspândită), MQTT 5.0 (funcții extinse)
- Dimensiunea antetului: minimum 2 octeți (antet fix)
- Mecanismul keep-alive: mesaje PINGREQ/PINGRESP periodice pentru monitorizarea conexiunii
- Funcționarea prin broker asigură decuplarea publicatorilor de abonați, scalarea orizontală și gestionarea centralizată

### Capabilități-cheie

- **QoS (Quality of Service)** – trei niveluri de garantare a livrării:
  - QoS 0: cel mult o dată (fără confirmare)
  - QoS 1: cel puțin o dată (cu confirmare)
  - QoS 2: exact o dată (schimb de confirmări în patru pași)
- **Încărcare minimă a rețelei**: antet fix de 2 octeți, codificare binară eficientă
- **LWT (Last Will and Testament)**: mecanism de notificare automată la deconectarea neașteptată a dispozitivului – brokerul publică un mesaj predefinit dacă clientul încheie sesiunea în mod anormal
- **Clean Session / Persistent Session**: posibilitatea de a restaura abonamentele și mesajele după reconectare
- **Mesaje reținute (Retained Messages)**: ultima valoare rămâne disponibilă pentru abonații noi
- **Consum redus de energie**: ideal pentru dispozitivele alimentate de la baterie
- **Scalabilitate**: clusterele de brokere acceptă milioane de conexiuni simultane
- **Abonări cu metacaractere (wildcard)** pentru filtrarea flexibilă a topicurilor

<Alert type="note">**Compatibilitate completă**</Alert>

## DLMS / COSEM (IEC 62056)

### Scop și descriere

Un standard internațional (Device Language Message Specification / Companion Specification for Energy Metering) pentru schimbul de date cu contoarele de utilități: energie electrică, gaze naturale, apă și energie termică. A fost dezvoltat de DLMS User Association împreună cu IEC pentru a asigura interoperabilitatea contoarelor inteligente în sistemele automatizate de măsurare și facturare (AMBS). Permite citirea de la distanță a contoarelor, monitorizarea calității energiei electrice, gestionarea tarifelor și detectarea accesului neautorizat. Este larg utilizat de operatorii rețelelor electrice, de companiile de utilități și de integratorii de sisteme pentru rețele inteligente (Smart Grid).

### Arhitectură și model de date

**Modelul de obiecte COSEM (Companion Specification for Energy Metering):**

- Datele contorului sunt reprezentate ca **obiecte logice (obiecte COSEM)** cu clase de interfață
- **Codurile OBIS (Object Identification System)** – identificator de șase octeți pentru adresarea universală a parametrilor: `A-B:C.D.E*F`
  - A – tipul de energie (1=energie electrică, 6=energie termică, 7=gaze, 8=apă)
  - B – canalul de măsurare
  - C – mărimea fizică (de exemplu 1=energie activă)
  - D – tipul măsurării (8=timp de integrare)
  - E – zona tarifară
  - F – adâncimea istoricului

**Protocolul DLMS:**

- Nivelul aplicație din modelul OSI
- **Asocieri** cu drepturi de acces diferite: Public, Reader, Manager
- **Autentificare**: Low Level Security (LLS), High Level Security (HLS) cu mecanism provocare-răspuns (challenge-response)
- **Criptare**: compatibilitate cu DLMS Security Suite, cu algoritmi AES-GCM-128
- **Profiluri de sarcină (Load Profiles)**: obiecte tampon pentru stocarea seriilor temporale
- **Sistem de scripturi**: executarea unor secvențe de acțiuni pe contor

### Transport

Nivelul fizic și nivelul legăturii de date:

- **Port optic (IEC 62056-21, flag)** – conectare directă printr-un cap optic cu infraroșu, pentru citirea locală
- **RS-485 / RS-232** cu protocolul HDLC (High-Level Data Link Control) pentru rețelele multipunct
- **TCP/IP** (portul 4059) – DLMS prin TCP sau încapsulare IP pentru accesul de la distanță
- **GSM/GPRS/LTE** – transmisia datelor prin rețelele mobile (protocoale de încapsulare)
- **PLC (Power Line Communication)** – transmisie prin liniile electrice (PRIME, G3-PLC)
- **M-Bus** – pentru integrarea cu sistemele de contorizare a apei și a energiei termice

Profiluri de transmisie, în funcție de implementarea contorului:

- IEC 62056-46: COSEM prin HDLC
- IEC 62056-47: transportul COSEM prin TCP-UDP/IP

### Capabilități-cheie

- **Citirea contoarelor** – valorile curente ale consumului de energie, puterii, tensiunii, curentului și factorului de putere
- **Profiluri de sarcină (Load Profiles)** – date detaliate cu marcă temporală (intervale de 15 min, orare, zilnice)
- **Jurnale de evenimente** – înregistrarea deschiderii neautorizate a capacului, a întreruperilor alimentării, a supratensiunilor și a modificărilor de parametri
- **Autentificare și autorizare pe mai multe niveluri**: controlul accesului pe bază de roluri (acces public, citire, configurare)
- **Gestionarea tarifelor** – modificarea de la distanță a programelor tarifare și a tarifelor
- **Sincronizarea orei**, pentru mărci temporale exacte
- **Comanda releului** (conectarea/deconectarea sarcinii)
- **Monitorizarea calității energiei electrice** (goluri de tensiune, supratensiuni tranzitorii, armonici)
- **Compatibilitate cu operațiile de grup** pe mai multe contoare
- **Protecția criptografică a datelor** și integritatea mesajelor

<Alert type="note">**Compatibilitate în curs de implementare**</Alert>
