Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

  • Bytový mód umožňujúci pracovať so zariadeniami, ktoré vracajú hodnoty registrov ako 1 bajt (na rozdiel od MODBUS štandardu, v ktorom je hodnota registra 2-bajtová).
  • Variabilný mód umožňujúci pracovať so zariadeniami, ktoré vracajú hodnoty registrov s inou veľkosťou ako sú štandardné 2 bajty. Implementovaný bol kvôli podpore prietokomera FloBoss 103 od firmy Fisher Controls International (v súčasnosti súčasť Emerson Process Management): 1-bajtové premenné, 4-bajtové unsigned/signed integery, textové reťazce dĺžky 10,12,20,40 znakov, 6-bajtová časová značka a iné.
  • Pasívny mód umožňujúci prácu v režime odposluchu. Toto sa týka najmä sériovej komunikácie, keď je už komunikačný port zariadenia použitý na komunikáciu s iným Master zariadením. Vzhľadom k povahe Modbus protokolu je v tomto režime nutné odpočúvať výzvy aj odpovede.

Kotva
komunikacna_linka
komunikacna_linka
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 RFC2217 Client (sériová komunikácia).
  • Kategória linky TCP/IP-TCP a TCP/IP-TCP Redundant (MODBUS TCP, MODBUS over TCP). Bežne sa používa rezervovaný TCP port číslo 502, ale je možné použiť akýkoľvek iný podľa nastavenia komunikujúceho zariadenia. Číslo linky je nepoužité, nastavte napr. hodnotu 1.

...

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

...

  • Pozn: V prípade redundantných systémov je možné zadávať aj viacero mien/adries oddelených čiarkami.
    Pozn: V prípade PLC typu WAGO 750-8100 a komunikácie cez MODBUS TCP bolo nutné nastaviť v časových parametroch stanice malú periódu dotazovania (napr. 1 sekunda). V prípade väčšej periódy (5 sekúnd) dochádzalo pomerne často k zatváraniu spojenia zo strany PLC.

Vynútené prerušenie spojenia: Keď sa všetky stanice na linke typu TCP/IP-TCP alebo TCP/IP-TCP Redundant dostanú do simulácie alebo majú zastavenú komunikáciu, linka sa odpojí (dôjde ku zavretiu komunikačného socketu). Keď aspoň jedna stanica bude mať vypnutú simuláciu a nebude mať zastavenú komunikáciu (záložka Parametre objektu Stanica), linka sa znovu pripojí.

Kotva
linka_parametre
linka_parametre
Parametre protokolu linky

...

Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné

...

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

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

Tab. č. 1

rcrcRetry CountRetry TimeoutWait First TimeoutWait TimeoutMax. Wait RetryStart Silent IntervalStop Silent IntervalByte modeVariable mode
ParameterPopisJednotka / rozmerNáhradná hodnota

Kotva

id

id

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.s2
Kotva
rtrtTimeout pred opakovaním výzvy, pokiaľ neprišla odpoveď.s0.1
Kotva
wftwftTimeout medzi poslaním výzvy a prvým čítaním odpovede.s0.1
Kotva
wtwtTimeout medzi čítaniami odpovede.s0.1
Kotva
mwrmwrMaximálny počet opakovaní čítania odpovede.-20
Kotva
stasistasi"Start silent interval" pred štartom vysielania v RTU móde.ms50
Kotva
stosistosi"Stop silent interval" po ukončení vysielania v RTU móde.ms50
Kotva
bmbmŠ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/NONO
Kotva
vmvm

Immediate Disconnect

Parameter je implementovaný iba pre kategórie linky TCP/IP-TCP a TCP/IP-TCP Redundant. Parameter aktivuje rozpájanie sa TCP spojenia po vykonaní každého čítacieho cyklu, prípadne po zápise hodnoty. Parameter bol implementovaný kvôli problémom so stabilitou spojenia na mobilných GPRS sieťach.

YES/NONO

Kotva
psm
psm
Passive Mode

Parameter aktivuje režim odposluchu. V tomto režime sa nevysielajú výzvy a nefunguje zapisovanie. Sú iba analyzované prijímané pakety. Z povahy Modbus protokolu vyplýva, že je nutné odposluchávať výzvy aj odpovede existujúcej komunikácie.YES/NONO

Kotva
tnd
tnd
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/NONO

Kotva
komunikacna_stanica
komunikacna_stanica
Konfigurácia stanice

...

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


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

Full debugProtocol modeAddressing modelTCP/IP protocol variantMax. RegistersMax. BytesSkip UnconfiguredNikdy 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.Check Receive Length

ParameterPopisJednotkaNáhradná hodnota
Kotva
rc
rc
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.-2
Kotva
rt
rt
Retry Timeout
Timeout pred opakovaním výzvy, pokiaľ neprišla odpoveď.s0.1
Kotva
wft
wft
Wait First Timeout
Timeout medzi poslaním výzvy a prvým čítaním odpovede.s0.1
Kotva
wt
wt
Wait Timeout
Timeout medzi čítaniami odpovede.s0.1
Kotva
mwr
mwr
Max. Wait Retry
Maximálny počet opakovaní čítania odpovede.-20
Kotva
stasi
stasi
Start Silent Interval
"Start silent interval" pred štartom vysielania v RTU móde.ms50

Kotva
stosi
stosi
Stop Silent Interval

"Stop silent interval" po ukončení vysielania v RTU móde.ms50

Kotva
raw
raw
Read After Write

Po zápise meraného bodu nasleduje ihneď spätné čítanie. Nastavením parametra na hodnotu NO je možné znížiť záťaž na komunikáciách (najmä sériových) s veľkým množstvom zápisov.YES/NOYES

Kotva
lem
lem
Little Endian Mode

Poradie bajtov v Little-endian móde pre 4-bajtové premenné. Jednotlivé možnosti udávajú, do ktorých bajtov (1-najnižší, 4-najvyšší) pôjdu jednotlivé bajty z komunikácie:

  • 2143 - najskôr je prijaté nižšie slovo, potom vyššie slovo  (vyšší bajt v rámci slova vždy ako prvý)
  • 3412 - najskôr je prijaté vyššie slovo, potom nižšie slovo  (nižšší bajt v rámci slova vždy ako prvý)
  • 1234 - bajty sú prijaté od najnižšieho po najvyšší (opak Big-endianu)
-2143
Kotva
bm
bm
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/NONO
Kotva
vm
vm
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
Kotva
fd
fd
Full debug
Výpis dodatočných ladiacich informácií o komunikácii na linke.YES/NONO
Kotva
pm
pm
Protocol mode
Mód protokolu: RTU alebo ASCII. Nastavenie sa aplikuje iba v prípade sériovej komunikácie.

"RTU "

"ASCII"

"RTU"
Kotva
am
am
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 bolo v minulosti (binárky staršie ako 27.5.2021) nutné reštartovať príslušný komunikačný proces.

"MODBUS PDU"
"MODBUS data Model"
"MODBUS PDU"
Kotva
mtcpv
mtcpv
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"
Kotva
mxr
mxr
Max. Registers
Maximálny počet registrov žiadaný v jednej výzve.-100

Kotva
mxb
mxb
Max. Bytes

Maximálny počet bytov žiadaný v jednej výzve (iba v "Byte mode").-100

Kotva
blm
blm
Bool Mask

Ak je hodnota typu integer (Holding Registers, Input Registers) priraďovaná do meraného bodu typu Di alebo Dout, robí sa tak na základe porovnania načítanej hodnoty s nulou. Ak je hodnota nulová, hodnota meraného bodu je False, inak True. Parameter Bool Mask umožňuje pred porovnaním vyfiltrovať ešte konkrétne bity na základe bitovej masky zadávanej ako hexadecimálne číslo (najvyšší bajt je vľavo). Bitová maska FF FF FF FF znamená, že sa berú do úvahy všetky bity (pre 1 a 2-registrové celočíselné adresy).
Bitová maska 01 znamená, že sa do úvahy berie iba najnižší bit. Ak adresa meraného bodu udáva použitie iba dolného/horného bajtu registra, aplikuje sa na ňu najnižší/druhý najnižší bajt masky.
-FF FF FF FF
Kotva
sku
sku
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.
Niektoré Modbus servery reagujú vrátením chybového kódu (exception) na čítanie rozsahu registrov, ktoré obsahujú „neznáme“ registre (ktoré napríklad nemajú namapované vo vnútornej pamäti).

YES/NONO

Kotva
mxr
mxr
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/NONO

Kotva
drm
drm
Dummy Request Mode

Ak je parameter nastavený na YES, tak sa použije jediná výzva (v ktorej je celkový počet registrov). Je nutné, aby boli definované merané body pre všetky adresy 0..N.
Tento mód je použiteľný pre špeciálne zariadenia, ktoré všetky dáta (s variabilnou veľkosťou registrov - 2, 4, 8 bajtov - posielajú v jedinej odpovedi)
Š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
Kotva
fdfdVýpis dodatočných ladiacich informácií o komunikácii na linke.YES/NONO
Kotva
pmpmMód protokolu: RTU alebo ASCII. Nastavenie sa aplikuje iba v prípade sériovej komunikácie.

"RTU "

"ASCII"

"RTU"
Kotva
amamNastavenie 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"
Kotva
mtcpvmtcpvVý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"
Kotva
mxrmxrMaximálny počet registrov žiadaný v jednej výzve.-100
Kotva
mxbmxbMaximálny počet bytov žiadaný v jednej výzve (iba v "Byte mode").-100
Kotva
skuskuYES/NONO

Kotva

mxr

wp

mxr
wp
TCP Write Password

Na linke TCP/IP-TCP je možné hneď po nadviazaní spojenia zapísať konkrétnu hodnotu na zvolenú adresu (TCP Password Address) s použitím zvolenej funkcie (TCP Password Function). Riadiace jednotky ComAp týmto spôsobom umožňujú autentifikovať oprávneného Modbus klienta. Hodnota sa zadáva hexadecimálne v poradí bajtov, ako budú vysielané (napr. "01 0A BC D0". V prípade, že nie je zadaný párny počet bajtov, bude na koniec doplnený bajt s hodnotou 0.

Nastavenie parametra na prázdnu hodnotu spôsobí, že zápis sa po nadviazaní spojenia nevykonáva.

-

Kotva
pa
pa
TCP Password Address

Adresa pre zápis hesla (TCP Write Password) na linke TCP/IP-TCP. Ak je heslo dlhšie ako 2 bajty, je to adresa prvého registra. Ak má heslo napr. 6 bajtov, zapisuje sa ako 3 registre od zadanej adresy.-0

Kotva
pf
pf
TCP Password Function

Zápisová funkcia pre zápis hesla (TCP Write Password) na linke TCP/IP-TCP.
Ak je počet bajtov hesla väčší ako 2, použije sa funkcia 16 (Write Multiple Registers) aj keď je nakonfigurovaná funkcia 6 (Write Single Register).6
166Ak 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/NONO

Kotva
merany_bod
merany_bod
Konfigurácia meraných bodov

...

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.

Meraný bod s adresou, ktorá sa začína %IGNORE, bude ignorovaný.

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

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

  • Prvé písmeno (písmená) udáva typ meraného bodu:
    • I - Integer16 (implicitná hodnota, keď nie je uvedené inak) - jeden register znamienkovo.
    • U - Unsigned16 - jeden register neznamienkovo.
    • Uu - Unsigned16 - jeden register neznamienkovo, pričom sa z neho berie do úvahy iba vyšší bajt (1. v poradí)
    • Ul - Unsigned16 - jeden register neznamienkovo, pričom sa z neho berie do úvahy iba nižší bajt (2. v poradí)
    • f - Float (4 byty = 2 registre) - čítajú sa 2 registre s adresou Address a Address+1, prenášané v big-endian poradí (viď Poznámku).
    • F - Float (4 byty = 2 registre) - čítajú sa 2 registre s adresou Address a Address+1, prenášané v little-endian poradí (tzv. Modicon formát) (viď Poznámku).
    • 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).
    • B - Byte neznamienkovo, iba horných 8 bitov hodnoty registra.
    • X - Byte neznamienkovo, iba dolných 8 bitov hodnoty registra.
    • sn. - Textový string s dĺžkou n znakov, jeden register je jeden znak, číta sa n registrov s adresou AddressAddress+n-1.
    • an. - Textový string s dĺžkou 2*n znakov, jeden register sú dva ASCII znaky, znaky sú prenášané v poradí v akom sú v reťazciakom sú v reťazci, číta sa n registrov s adresou AddressAddress+n-1.
    • An. - Textový string s dĺžkou 2*n znakov, jeden register sú dva ASCII znaky, znaky sú prenášané v big-endian poradí (tj. "1234" sa prenáša ako "2143"), číta sa n registrov s adresou AddressAddress+n-1.
    • An. - Textový string s dĺžkou 2*n znakov, jeden register sú dva ASCII znaky, znaky sú prenášané v big-endian poradí (tj. "1234" sa prenáša ako "2143"), číta sa n registrov s adresou AddressAddress+n-1.
  • Modifikátor d Modifikátor d hovorí, že číslo je 8-bajtové číslo (4 za sebou idúce registre). Je použiteľný pri typoch L, Ll, S, Sl, F,f a pomocou neho je možné zadefinovať 8 bajtový integer bez znamienka/so znamienkom ako aj 8-bajtový float (varianty big endian <B8>..<B1> a little endian <B1>..<B8>).
    Modifikátor D hovorí, že číslo je 8-bajtové číslo (4 za sebou idúce registre). Je použiteľný pri typoch L, Ll, S, Sl, F,f a  a pomocou neho je možné zadefinovať 8 bajtový integer bez znamienka/so znamienkom ako aj 8-bajtový float (varianty big endian a little endianvo formáte little endian <B2><B1><B4><B3><B6><B5><B8><B7>).
    Poznámka: pri použití modifikátora modifikátorov dD, musí byť meraný bod Analógového typu (Ai), pretože celočíselný typ (Ci) v D2000 je implementovaný ako 4-bajtová premenná a mohlo by dôjsť k pretečeniupretečeniu. Zápis celočíselnej hodnoty (Co) ako 8-bajtového typu je podporený.
  • Modifikátor b hovorí, že číslo je BCD kódované. Je použiteľný pri meraných bodoch typu IUB, L, Ll.
  • Modifikátor s hovorí, že sa číta register so stavom premennej (Unsigned16) na adrese Address a za ním Float hodnota v big endian formáte na adrese Address+1 .. Address+2. Je použiteľný pri meraných bodoch typu f a implementovaný kvôli kalorimetru Endress+Hauser RMS621. Tabuľka uvádza hodnoty Status a prevod na D2000 príznaky.

    Status registerD2000 príznaky
    0 : Invalid valueWeak
    1 : Measured value validValid
    2 : Overflow warning
    3 : Overflow error
    4 : Underflow warning
    5 : Underflow error
    6 : Saturated steam alarm
    7 : Error in differential pressure calculation
    8 : Wrong medium for DP calculation
    9 : Wrong value range - DP calculation inaccurate
    10 : Differential pressure - general error
    11 : Range overshoot (Tsat > 350 etc.) on
    12 : Change in state of aggregation
    26 : Differential pressure --> general error
    99 : No measured value is assigned to the register in the setup of the ModBus
    Weak


  • Parameter RdFn je funkcia Modbus protokolu pre čítanie údajov. Implementované sú nasledovné funkcie:
    • 1 - Read Coils: čítanie binárnych stavov.
    • 2 - Read Discrete Inputs: čítanie binárnych vstupov.
    • 3 - Read Holding Registers: čítanie stavových registrov (Integer16/Unsigned16 a Float32 - číta 2 za sebou nasledujúce registre).
    • 4 - Read Input Registers: čítanie vstupných registrov (Integer16/Unsigned16 a Float32 - číta 2 za sebou nasledujúce registre).
    • 0 - V tomto prípade nebude vykonávané čítanie hodnoty ale iba zápis, je nutné aby bola nastavená funkcia pre zápis WrFn.
  • Parameter WrFn je funkcia Modbus protokolu pre zápis údajov. Implementované sú nasledovné funkcie:
    • 5 - Write Single Coil: zápis binárnych stavov (implicitne pre Read Coils).
    • 6 - Write Single Register: zápis stavových registrov (implicitne pre Read Holding Registers).
    • 16 - Write Multiple Registers: zápis viacerých stavových registrov, táto funkcia musí byť použitá pri zápise dvojregistrových typov (ako Float, Unsigned long atď.).
      Pozn: funkciu je možné použiť aj na zápis viac ako dvoch registrov naraz, pokiaľ sa použije textový string. Príklad:
      ak do textového meraného bodu s adresou a3.0-16.#8A00 (t.j. textový reťazec pokrývajúci 3 registre, t.j. majúci dĺžku 6 znakov) zapíšeme reťazec '123456', tak sa zapíšu do registrov 0x8A00 až 0x8A02 hexadecimálne hodnoty 0x3132, 0x3334 a 0x3536 (ASCII kód '1' je 0x31, '2' je 0x32 atď).
    • 22 - Mask Write Register: zápis ovplyvňujúci iba hodnotu konkrétneho bitu BitNr stavového registra. Možné použiť iba pre hodnoty typu Do s nastaveným parametrom adresy BitNr.
  • Parameter d aktivuje funkciu "delayed write". Odoslanie hodnoty sa oneskorí až do príchodu požiadavky na zápis hodnoty objektu bez tohto parametra d. Všetky naakumulované požiadavky na zápis sa následne odošlú a ak je nastavená funkcia na zápis WrFn na "Write Multiple Registers" tak sa snaží odoslať hodnoty v jednom pakete.
  • Parameter Address je dvojbajtová adresa registra (0-65536), viď tiež parameter protokolu Addressing model.
    Pozn: adresu je možné zadávať aj v hexadecimálnom tvare za použitia mriežky (#), napr. #50CE
  • Parameter BitNr je číslo bitu v slove. Pre binárne stavy a vstupy sú prípustné hodnoty 0-7, pre vyčítanie bitu zo 16-bitových stavových alebo vstupných registrov sú prípustné hodnoty sú 0-15.
    • .j. majúci dĺžku 6 znakov) zapíšeme reťazec '123456', tak sa zapíšu do registrov 0x8A00 až 0x8A02 hexadecimálne hodnoty 0x3132, 0x3334 a 0x3536 (ASCII kód '1' je 0x31, '2' je 0x32 atď).
    • 22 - Mask Write Register: zápis ovplyvňujúci iba hodnotu konkrétneho bitu BitNr stavového registra. Možné použiť iba pre hodnoty typu Do s nastaveným parametrom adresy BitNr.
  • Parameter d aktivuje funkciu "delayed write". Odoslanie hodnoty sa oneskorí až do príchodu požiadavky na zápis hodnoty objektu bez tohto parametra d. Všetky naakumulované požiadavky na zápis sa následne odošlú a ak je nastavená funkcia na zápis WrFn na "Write Multiple Registers" tak sa snaží odoslať hodnoty v jednom pakete.
  • Parameter Address je dvojbajtová adresa registra (0-65536), viď tiež parameter protokolu Addressing model.
    Pozn: adresu je možné zadávať aj v hexadecimálnom tvare za použitia mriežky (#), napr. #50CE
  • Parameter BitNr je číslo bitu v slove. Pre binárne stavy a vstupy sú prípustné hodnoty 0-7, pre vyčítanie bitu zo 16-bitových stavových alebo vstupných registrov sú prípustné hodnoty sú 0-15.
    Pozn: je možná koexistencia meraného bodu bez parametra BitNr a viacero meraných bodov s parametrom BitNr na tej istej adrese Address.


Poznámka k zápisom: ak je zapisovaná iba časť registra (nižší/vyšší bajt alebo vybraný bit) a meraný bod má nakonfigurovanú aj RdFn (funkciu pre čítanie údajov), tak pri zápise sa najskôr vyčíta hodnota celého registra a následne sa upraví príslušná časť registra a celý register je zapísaný.

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

...

Príklady pre dvojregistrové hodnoty v little-endian poradí, ak Little Endian Mode=2143

:

Prijaté byty registra (MSB-LSB)Prijaté byty registra + 1 (MSB-LSB)Typ meraného boduHodnota
0x00 0x010x00 0x00Ll, Sl1
0xFF 0xFE0xFF 0xFFSl-2
0x00 0x020x00 0x01Ll, Sl65538
0x00 0x000x3F 0x80F1.0
0x00 0x000xC0 0x00F-2.0

...

  • 1.10 - čítanie hodnoty binárneho stavu s adresou 10 funkciou Read Coils.
  • 3.1 - 16-bitové číslo znamienkové vyčítavané funkciou Read Holding Registers z adresy 1 (tiež ako I3.1).
  • U3.1 - 16-bitové číslo bez znamienka vyčítavané funkciou Read Holding Registers z adresy 1.
  • I3-6.1000 - 16-bitové číslo so znamienkom vyčítavané funkciou Read Holding Registers z adresy 1000 a zapisované funkciou Write Single Register (keďže táto funkcia je implicitná, adresa mohla byť aj I3.1000 alebo 3.1000).
  • S3.321 - 32-bitové znamienkové číslo čítané funkciou Read Holding Registers z registrov 321 a 322.
  • B1.20.0 - bit vyčítavaný funkciou Read Coils z adresy 20 ako nultý bit v bajte.
  • s10.3.123 - textový string o dĺžke 10 znakov znakov (2 bajty na znak) od adresy 123 čítaný funkciou Read Holding Registers.
  • a5.3.123 - textový string o dĺžke 10 znakov (1 bajt na znak) od adresy 123 čítaný funkciou Read Holding Registers.
  • U0-6.456 - iba zápis 16-bitového neznamienkovej hodnoty do registra 456, zápis realizovaný funkciou Write Single Register, čítanie hodnoty registra sa nerealizuje.

...

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

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

  • xN hovorí o počte bajtov, ktoré sa čítajú, resp. zapisujú. Platné hodnoty N sú 1,2,4,8 (v kombinácii s typmi I,U,F), 6 pre typ T a ľubovoľné číslo pre typ C).
  • Písmeno udáva typ meraného bodu. Oproti štandardným I,U,F,B pribudli ďalšie dva:
    • C - textový reťazec pevnej dĺžky (napr. x10.C3.1001 je 10-znakový reťazec na adrese 1001)
    • T - časová značka s dĺžkou 6 bajtov (ss:mi:hh dd:mm:yy)
  • Význam ostatných parametrov je zhodný s nevariabilným módom.

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

Kotva
floboss103
floboss103
Poznámka k zariadeniu FloBoss 103

...

Kotva
honeywell
honeywell
Poznámka k regulátorom Honeywell

...

Regulátory Honeywell UDC1700 (a pravdepodobne obecne UDC1xxx):

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.

...

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

Poznámka: Zariadenia Honeywell typových radov UDC 2xxx/3xxx, HC900, DPR, Trendview používajú bežné kódy funkcií Modbus 1-4 napriek tomu, že manuály UDC odkazujú len na tabuľky registrov funkcií 0x14/0x15 Read/write configuration reference data. Podrobnejšie informácie nájdete v tomto príspevku.

Kotva
literatura
literatura
Literatúra

...

Info
titleBlog

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


Kotva
zmeny_upravy
zmeny_upravy
Zmeny a úpravy

...

  • Ver. 1.0 - 27. november 2006 - Vytvorenie dokumentu.
  • Ver. 1.1 - 21. november 2007 - Aktualizácia dokumentu.
  • Ver. 1.2 - 24. apríl 2009 - Aktualizácia dokumentu.
  • Ver. 1.3 - 19. november 2010 - Aktualizácia dokumentu.
  • Ver. 1.4 - 6. december 2010 - Aktualizácia dokumentu.
  • Ver. 1.5 - 5. september 2022 - Aktualizácia dokumentu (rozšírenie o 8-bajtové hodnoty pre variabilný mód).
  • Ver. 1.6 - 7. septembra 2022 - Aktualizácia dokumentu (pridaný parameter "Dummy Request Mode").
Info
titleSúvisiace stránky:

Komunikačné protokoly

...