Protokol MODBUS Server

Podporované typy a verzie zariadení 
Konfigurácia komunikačnej linky
Konfigurácia komunikačnej stanice
Parametre protokolu linky
Konfigurácia meraných bodov
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol realizuje serverovskú (slave) komunikáciu s ľubovoľnými zariadeniami podporujúcimi štandard MODBUS RTU vo verziách sériovej komunikácie a MODBUS TCP.

Konfigurácia komunikačnej linky


  • Kategória linky Serial (sériová komunikácia).
  • Kategória linky SerialOverUDP Device Redundant(sériová komunikácia).
  • Kategória linky TCP/IP-TCP (MODBUS TCP). Použite symbolickú adresu ALL, KOM proces počúva na zvolenom TCP porte na všetkých existujúcich sieťových rozhraniach. Bežne sa používa rezervovaný TCP port číslo 502, ale je možné použiť akýkoľvek iný. Číslo linky je nepoužité, nastavte napríklad hodnotu 1. KOM proces funguje ako multitaskový TCP server a preto vie obsluhovať naraz viacero klientov.

Parametre protokolu linky


Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu stanice:

Tab. č. 1

ParameterPopisJednotkaNáhradná hodnota
Silent Interval
Oneskorenie vkladané pred začiatkom vysielania každého dátového paketu.ms50
No Request Timeout
Ak po uplynutí tohto timeoutu nepríde žiadna platná výzva, prejdú všetky stanice na linke do stavu komunikačnej chyby. Hodnoty výstupných meraných bodov sa však nikdy nestanú neplatnými (serverovský protokol).mi:ss1:00
Single Server
Ak je hodnota parametra nastavená na YES, KOM proces odpovie chybou SLAVE_DEVICE_FAILURE na každú dátovú výzvu na stanicu, ktorú nemá nakonfigurovanú. Ak je hodnota parametra nastavená na NO, KOM proces takúto výzvu ignoruje a nijako na ňu neodpovedá.YES/NOYES
Moxa Timeout
Perióda prepínania redundantných zariadení Moxa v prípade komunikačnej chyby alebo problémov. Keďže toto je serverovský protokol, kde sú očakávané žiadosti z externých zariadení, za chybu je považovaný aj výpadok komunikačných žiadostí na dobu dlhšiu ako je hodnota tohto parametra. Aplikuje sa iba v prípade použitia linky kategórie SerialOverUDP Device Redundant.sec10 sec

Konfigurácia stanice


  • Komunikačný protokol "Modbus Server".
  • Adresa stanice je dekadické číslo v rozsahu 1 až 247. Adresa 0 je rezervovaná ako broadcast.

Je možné nakonfigurovať viacero staníc s rôznymi adresami na jednej linke, KOM proces bude odpovedať príslušnej stanici. Viď tiež parameter protokolu linky Single Server.

Parametre protokolu stanice

Dialóg konfigurácia stanice - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu stanice:

Tab. č. 2

ParameterPopisJednotkaNáhradná hodnota
Addressing model
Nastavenie adresného modelu protokolu MODBUS:
"MODBUS PDU"
dáta sú adresované od 0 do 65535.
"MODBUS data Model"
dáta sú adresované od 1 do 65536.

Poznámka: Implicitná hodnota je MODBUS PDU, v prípade nastavenia MODBUS data Model je objekt s adresou X adresovaný v MODBUS PDU ako X-1.
Po zmene nastavenia tohto parametra reštartujte príslušný komunikačný proces.

"MODBUS PDU"
"MODBUS data Model"
"MODBUS PDU"

Konfigurácia meraných bodov


Možné typy hodnôt bodov: Ai, Ao, Di, Do, Ci, Co.

Adresa meraného bodu:

V protokole MODBUS je základný adresný priestor rozdelený na registre typov Coils (čítanie/zápis), Discrete Inputs (čítanie), Holding Registers (čítanie/zápis) a Input Registers (čítanie).

V každom adresnom priestore daného typu registra je nezávislá adresácia s veľkosťou adresy 2 bajty, to znamená fyzicky adresy od 0 do 65535.

Tvar adresy meraného bodu:
Tvar adresy je [I|U|L|Ll|S|Sl|f|F|C|D]Fn.Address[.BitNr] kde:

  • Prvé nepovinné písmeno/písmená udáva typ meraného bodu:
    • I - Integer 16 bit
    • U - Unsigned 16 bit (default)
    • L - Unsigned long (4 byty = 2 registre) - čítajú sa 2 registre s adresou Address a Address+1, neznamienkovo, prenášané v big-endian poradí (viď Poznámku).
    • Ll - Unsigned long (4 byty = 2 registre) -čítajú sa 2 registre s adresou Address a Address+1, neznamienkovo, prenášané v little-endian poradí (viď Poznámku).
    • S - Signed long (4 byty = 2 registre) - čítajú sa 2 registre s adresou Address a Address+1, znamienkovo, prenášané v big-endian poradí (viď Poznámku).
    • Sl - Signed long (4 byty = 2 registre) - čítajú sa 2 registre s adresou Address a Address+1, znamienkovo, prenášané v little-endian poradí (viď Poznámku).
    • f - Float 32 bit (dva registre) vo formáte big endian (budú poslané bajty B4, B3, B2, B1, kde B4 je najvyšší a B1 najnižší bajt floatu)
    • F - Float 32 bit (dva registre) vo formáte little endian (budú poslané bajty B2, B1, B4, B3, kde B4 je najvyšší a B1 najnižší bajt floatu)
    • C - Request counter up (16 bit unsigned, ktorý sa pri každom dotaze inkrementuje). Funguje iba pre Fn=3 a Fn=4
    • D - Request counter down (16 bit unsigned, ktorý sa pri každom dotaze dekrementuje). Funguje iba pre Fn=3 a Fn=4
      Pozn: Request counter up/down sú použiteľné na nakonfigurovanie "watchdogových" meraných bodov na sledovanie funkčnosti a rýchlosti Modbus komunikácie.
  • Parameter Fn je funkcia Modbus protokolu pre čítanie údaja, ktorá zaradí meraný bod do príslušného adresného priestoru:
    • 1 - Coils: binárne stavy
    • 2 - Discrete Inputs: binárne vstupy
    • 3 - Holding Registers: stavové registre
    • 4 - Input Registers: vstupné registre
  • Parameter Address je dvojbajtová adresa registra v rozsahu 0 až 65535.
  • Parameter BitNr voliteľne špecifikuje konkrétny bit v rámci registra a je v rozsahu 0 až 15.

Implementácia protokolu podporuje nasledovné funkcie (príkazy MODBUS klienta voči D2000 KOM procesu):

  • 1 - Read Coils: čítanie binárnych stavov - KOM proces odosiela hodnoty mer. bodov typu Do.
  • 2 - Read Discrete Inputs: čítanie binárnych vstupov - KOM proces odosiela hodnoty mer. bodov typu Do.
  • 3 - Read Holding Registers: čítanie stavových registrov - KOM proces odosiela hodnoty mer. bodov typu Co, Ao (signed/unsigned).
  • 4 - Read Input Registers: čítanie vstupných registrov - KOM proces odosiela hodnoty mer. bodov typu Co, Ao (signed/unsigned).
  • 5 - Write Single Coil: zápis binárnych stavov - KOM proces zapíše do systému prijatú binárnu hodnotu do mer. bodu typu Di, Do.
  • 15 - Write Multiple Coils - KOM proces zapíše do systému všetky prijaté binárne hodnoty mer. bodov typu Di, Do.
  • 6 - Write Single Register: zápis stavových registrov - KOM proces zapíše do systému prijatú hodnotu do mer. bodu typu Ai, Ao, Ci, Co.
  • 16 - Write Multiple registers: zápis viacerých registrov - KOM proces zapíše do systému všetky prijaté hodnoty do mer. bodov typu Ai, Ao, Ci, Co.

Poznámka: Je treba si uvedomiť že toto je serverovský typ protokolu, primárne určený na odosielanie hodnôt mimo systém D2000. Preto by mali byť merané body konfigurované ako výstupné (Ao,Co,Do) tak, aby sa im dali, buď priamo alebo prostredníctvom riadiacich objektov, ovládať hodnoty. Ak je meraný bod nakonfigurovaný ako vstupný (Ai,Ci,Di), nevie KOM proces odoslať platnú hodnotu pri čítaní funkciami 1 až 4 až do okamihu, kým nie je zapísaná zvonka funkciami 5, 15, 6 alebo 16.

Ak KOM proces nemá platnú hodnotu meraného bodu alebo je prijatá žiadosť na čítanie neexistujúceho meraného bodu, je pri výzve na čítanie odoslaná implicitná hodnota False alebo 0 (protokol MODBUS nepodporuje prenos kvality hodnoty).

Literatúra



Blog

O protokole Modbus si môžete prečítať aj blogy


Zmeny a úpravy


-

Revízie dokumentu


  • Ver. 1.0 - 24. apríl 2009 - Vytvorenie dokumentu.
  • Ver. 1.1 - 21. november 2010 - Aktualizácia dokumentu.
  • Ver. 1.2 - 11. november 2011 - Aktualizácia dokumentu.
  • Ver. 1.3 - 22. júl 2019 - Implementácia signed/unsigned long hodnôt (L, Ll, S, Sl)

Súvisiace stránky:

Napíšte komentár