...
- 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é.
Pozn: tento mód umožňuje prácu zo zariadeniami implementujúcimi tzv. Enron Modbus alebo Daniel Modbus. - 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.
...
Parameter | Popis | Jednotka | Náhradná hodnota | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |||||||||
| Timeout pred opakovaním výzvy, pokiaľ neprišla odpoveď. | s | 0.1 | |||||||||
| Timeout medzi poslaním výzvy a prvým čítaním odpovede. | s | 0.1 | |||||||||
| Timeout medzi čítaniami odpovede. | s | 0.1 | |||||||||
| Maximálny počet opakovaní čítania odpovede. | - | 20 | |||||||||
| "Start silent interval" pred štartom vysielania v RTU móde. | ms | 50 | |||||||||
| "Stop silent interval" po ukončení vysielania v RTU móde. | ms | 50 | |||||||||
| 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/NO | YES | |||||||||
| 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 | |||||||||
| Š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 | |||||||||
| Š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 | |||||||||
| Výpis dodatočných ladiacich informácií o komunikácii na linke. | YES/NO | NO | |||||||||
| Mód protokolu: RTU alebo ASCII. Nastavenie sa aplikuje iba v prípade sériovej komunikácie. | "RTU " "ASCII" | "RTU" | |||||||||
| 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. | "MODBUS PDU" "MODBUS data Model" | "MODBUS PDU" | |||||||||
| 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" | |||||||||
| Maximálny počet registrov žiadaný v jednej výzve. | - | 100 | |||||||||
| Maximálny počet bytov žiadaný v jednej výzve (iba v "Byte mode"). | - | 100 | |||||||||
| 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 | |||||||||
| Nikdy nežiadaj hodnoty z adries, ktoré nie sú nakonfigurované. | YES/NO | NO | |||||||||
| 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:
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 | Viď príklad takejto komunikácie: 14:55:31.532 20-06-2024|D|MDB_IDAC> REQ St: 1, Fnc: 3, Addr: 1179, Len: 17 | YES/NO | NO | ||||||
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). | YES/NO | NO | ||||||
| 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. | - | ||||||||||
| 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 | |||||||||
| 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 16 | 6 |
...
Info | ||||||
---|---|---|---|---|---|---|
| ||||||
Priložený ZIP obsahuje konfiguráciu dvoch liniek a dvoch staníc s MODBUS Client/MODBUS Server protokolom, ktoré komunikujú cez TCP (MODBUS Server počúva na TCP porte 9999). Dáta zapísané cez jednu linku sú prijaté cez druhú linku. Na každej linke sú nakonfigurované 4 merané body (Float, s adresou 3.0, Signed s adresami 4.0 a 4.1 a Bool s adresou 1.0). Hodnoty meraných bodov MODBUS Servera sú ovládané systémovou sekundou (Sec) a používajú lineárnu konverziu (Float delenie 1000, Signed s adresou 4.0 násobenie 10). Hodnota meraného bodu Bool je ovládaná počítaným bodom P.TrueFalse, ktorý mení hodnotu True/False každú sekundu.
|
Info | ||||||
---|---|---|---|---|---|---|
| ||||||
Priložený ZIP obsahuje konfiguráciu linky, stanice a meraných bodov na komunikáciu s chromatografom Emerson, ktorý implementuje MODBUS DANIEL®.
|
Info | ||
---|---|---|
| ||
O protokole Modbus si môžete prečítať aj blogy |
...