Protokol MODBUS Client

Podporované typy a verzie zariadení 
Konfigurácia komunikačnej linky
Parametre protokolu linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Poznámka k zariadeniu FloBoss 103
Poznámka k regulátorom Honeywell
Literatúra
Zmeny a úpravy
Revízie dokumentu

Podporované typy a verzie zariadení


Protokol realizuje klientsku (master) komunikáciu s ľubovoľnými zariadeniami podporujúcimi štandard MODBUS RTU a MODBUS ASCII vo verziách sériovej komunikácie a štandard MODBUS TCP alebo variantu MODBUS over TCP v prípade TCP/IP komunikácie. Navyše podporuje rozšírenia:

Konfigurácia komunikačnej linky


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 linky:

Tab. č. 1

Parameter Popis Jednotka / rozmer Náhradná hodnota
Tcp No Delay Nastavenie "Tcp No Delay"=True parametra spôsobí nastavenie nízkoúrovňového parametra socketov TCP_NODELAY, čím sa vypne prednastavené spájanie paketov.
Parameter je implementovaný iba pre kategórie linky TCP/IP-TCP a TCP/IP-TCP Redundant.
YES/NO NO

Konfigurácia stanice



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. č. 1

Parameter Popis Jednotka Náhradná hodnota
Retry Count Maximálny počet opakovaní výzvy. Ak po poslaní tohto počtu výziev nedôjde odpoveď, stanica prechádza do stavu komunikačnej chyby. s 2
Retry Timeout Timeout pred opakovaním výzvy, pokiaľ neprišla odpoveď. s 0.1
Wait First Timeout Timeout medzi poslaním výzvy a prvým čítaním odpovede. s 0.1
Wait Timeout Timeout medzi čítaniami odpovede. s 0.1
Max. Wait Retry Maximálny počet opakovaní čítania odpovede. - 20
Start Silent Interval "Start silent interval" pred štartom vysielania v RTU móde. ms 50
Stop Silent Interval "Stop silent interval" po ukončení vysielania v RTU móde. ms 50
Byte mode Špeciálny bajtový mód prenosu, v ktorom majú hodnoty registrov dĺžku 1 bajt a nie 2 byty ako je definované v špecifikácii protokolu MODBUS. YES/NO NO
Variable mode Špeciálny variabilný mód prenosu, v ktorom majú hodnoty registrov variabilnú dĺžku. Podľa toho, či je Variable mode nastavený na hodnotu little-endian alebo big-endian sa aplikuje príslušné dátové kódovanie t.j. tzv. endianness (little-endian=prvý je odosielaný menej významný byte, big endian=prvý je odosielaný významnejší byte). Hodnota OFF vypína variabilný mód.
Poznámka 1: Variabilný a bajtový mód sú nezlučiteľné a je dovolené zapnutie iba jedného z nich.
Poznámka 2: Zariadenie Emerson FloBoss 103: textové reťazce a 6-bajtová časová značka sa posielajú vždy od najnižšieho bajtu.
Poznámka 3: Variabilný mód je implementovaný iba pre Protocol Mode=RTU.
Poznámka 4
: Štandardne podľa implicitných hodnôt parametrov Byte mod=NO a Variable mode=OFF, teda podľa špecifikácie protokolu MODBUS, sa automaticky uplatňuje kódovanie dát big-endian.
OFF
little-endian
big-endian
OFF
Full debug Výpis dodatočných ladiacich informácií o komunikácii na linke. YES/NO NO
Protocol mode Mód protokolu: RTU alebo ASCII. Nastavenie sa aplikuje iba v prípade sériovej komunikácie.

"RTU "

"ASCII"

"RTU"
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"
TCP/IP protocol variant Výber varianty protokolu v prípade TCP/IP komunikácie:
"MODBUS TCP" je variant komunikácie bez zabezpečenia kontrolnou sumou. Zabezpečenie prenosu vykonávajú spodné vrstvy TCP protokolu.
"MODBUS over TCP"
je variant, v ktorej je ako payload prenosu použitý mód protokolu MODBUS RTU aj s kontrolnou sumou.
"MODBUS TCP"
"MODBUS over TCP"
"MODBUS TCP"
Max. Registers Maximálny počet registrov žiadaný v jednej výzve. - 100
Max. Bytes Maximálny počet bytov žiadaný v jednej výzve (iba v "Byte mode"). - 100
Skip Unconfigured Nikdy nežiadaj hodnoty z adries, ktoré nie sú nakonfigurované.
Popis a príklad:
Štandardne sa posielajú výzvy na dáta, ktoré sa obmedzujú parametrom protokolu "Max. Registers" alebo "Max. Bytes". Ak sú nakonfigurované napr. merané body s adresami "Holding Registers" 1, 2 a 5, odosiela sa jedna výzva požadujúca 5 registrov od adresy 1 aj, keď merané body s adresami 3 a 4 nie sú nakonfigurované - pretože je efektívnejšie a rýchlejšie získať požadované údaje jednou výzvou ako dvomi aj za cenu čítania nepotrebných dát. V prípade nastavenia parametra "Skip Unconfigured" na YES sa odošlú dve výzvy, prvá žiadajúca dva registre od adresy 1 a druhá žiadajúca jeden register na adrese 5.
YES/NO NO
Check Receive Length Ak je parameter nastavený na YES, tak pri prijatí odpovede na čítanie dát sa kontroluje, či dĺžka dát v odpovedi zodpovedá množstvu registrov v požiadavke na čítanie:
  • ak je zapnutý bajtový mód (Byte mode=YES), tak dĺžka prijatých dát sa musí rovnať množstvu registrov
  • ak nie je zapnutý bajtový ani variabilný mód, tak dĺžka prijatých dát sa musí rovnať dvojnásobku množstva registrov
  • ak je zapnutý variabilný mód (Variable mode=little-endian alebo big-endian), kontrola zatiaľ nie je implementovaná
Kontrola má zmysel na linkách s vysokými (a variabilnými) latenciami - napr. GPRS siete - na detekciu a vyhnutie sa situácii, keď dôjde k opakovaniu výzvy (#1) v dôsledku timeoutu a následne k príjmu odpovede na opakovanú výzvu, pričom táto je už považovaná za odpoveď na ďalšiu výzvu (#2). To spôsobí, že merané body adresované výzvou #2 získajú chybné hodnoty.
YES/NO NO

Konfigurácia meraných bodov


Možné typy hodnôt bodov pre nevariabilný mód: Ai, Ao, Di, Do, Ci, Co, TxtI.

Možné typy hodnôt bodov pre variabilný mód: Ai,Ao,Di,Do,Ci,Cout,TxtI,TxtO,TiA.


Adresa meraného bodu:

V protokole MODBUS je základný adresný priestor rozdelený na objekty typov:

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 (tzv. MODBUS PDU addressing model). Niektoré zariadenia pracujú s adresáciou od 1 (tzv. MODBUS data Model), v takom prípade treba pri konfigurácii meraných bodov v systéme D2000 odčítať v adrese -1 alebo zmeniť nastavenie parametra protokolu Addressing model na MODBUS data Model.

Adresa meraného bodu môže mať základný alebo rozšírený tvar (pre variabilný mód).

Základný tvar adresy meraného bodu:
Tvar adresy je [I|U|Uu|Ul|f|F|L|Ll|S|Sl|B|X|sn.|an.][d][b][s]RdFn[-WrFn[d]].Address[.BitNr] kde:


Poznámka ku poradiu prenášaných bytov a registrov

1. Protokol MODBUS používa štandardne tzv. big-endian, čiže významnejší byte registra (MSB) je prenášaný ako prvý. Príklady:

Prijaté byty registra MSB-LSB Typ meraného bodu Hodnota
0x00 0x01 I, U 1
0xFF 0xFE I -2
0xFF 0xFE U 65534
0x01 0x02 B 1
0x01 0x02 X 2

2. V prípade čítania hodnôt z dvoch registrov v poradí big-endian sú prijaté byty analyzované takto:

Most significant register (Adresa ADR) Least significant register (Adresa ADR+1)
MSB LSB MSB LSB

Príklady pre dvojregistrové hodnoty v big-endian poradí:

Prijaté byty registra (MSB-LSB) Prijaté byty registra + 1 (MSB-LSB) Typ meraného bodu Hodnota
0x00 0x00 0x00 0x01 L, S 1
0xFF 0xFF 0xFF 0xFE S -2
0x00 0x01 0x00 0x02 L, S 65538
0x3F 0x80 0x00 0x00 f 1.0
0xC0 0x00 0x00 0x00 f -2.0

3. V prípade čítania hodnôt z dvoch registrov v poradí little-endian sú prijaté byty analyzované takto:

Least significant register (Adresa ADR) Most significant register (Adresa ADR+1)
MSB LSB MSB LSB

Príklady pre dvojregistrové hodnoty v little-endian poradí:

Prijaté byty registra (MSB-LSB) Prijaté byty registra + 1 (MSB-LSB) Typ meraného bodu Hodnota
0x00 0x01 0x00 0x00 Ll, Sl 1
0xFF 0xFE 0xFF 0xFF Sl -2
0x00 0x02 0x00 0x01 Ll, Sl 65538
0x00 0x00 0x3F 0x80 F 1.0
0x00 0x00 0xC0 0x00 F -2.0


Príklady konfigurácie:


Rozšírený tvar adresy meraného bodu:

Tvar adresy je [xN][I|U|F|B|C|T][b]RdFn[-WrFn].Address[.BitNr] kde:

Príklady konfigurácie sú uvedené ďalej v Poznámke k zariadeniu FloBoss 103.

Poznámka k zariadeniu FloBoss 103


Poznámka k regulátorom Honeywell


Základné parametre a aktuálne dáta týchto regulátorov nie sú štandardne čítané prostredníctvom funkcií 0x01 až 0x04. Na ich čítanie a zápis je potrebné použiť funkcie 0x14/0x15 Read / write configuration reference data. Tieto zariadenia štandardne používajú "big endian" poradie bytov. Preto pre správnu funkčnosť nie je potrebné meniť parametre, ktoré menia bytový režim a endianitu.

Príklady konfigurácie meraného bodu:

20.039 - 16-bitové číslo z adresy 39(0x27)
f20.040 - 32-bitové reálne číslo z adresy 40(0x28)

Literatúra


Zmeny a úpravy


-

Revízie dokumentu


Komunikačné protokoly