Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Child pages (Children Display)

Table of Contents

doc_tap_modbusintrotext;

doc_tap_modbusintroheading;

doc_tap_modbusmasterslave;

doc_tap_modbuslayers;

doc_tap_modbusregister;

doc_tap_modbusregster1;doc_tap_modbusskratka;doc_tap_modbuspristup;doc_tap_modbussize;
CoilCRead-write1-bit
Discrete inputDRead-only1-bit
Input registerARead-only16-bits
Holding registerHRead-write16-bits

doc_tap_modbusregister16;

Note

doc_tap_modbusnote1;

doc_tap_modbusregister1;

doc_tap_modbusregisterC;

doc_tap_modbusfaster;

doc_tap_modbusimplement;

Info
titledoc_tap_modbuspriklad1;

doc_tap_modbusexpample;

doc_tap_modbusdevices12;

doc_tap_modbusscripts;

Info

Viac informácii o skriptovacom jazyku, predovšetkým sekcia doc_tap_BitOp;

doc_tap_modbuscommunication1;

Code Block
MODBUSR(register_type, register_address, data_type, [OPTIONAL: number_of_characters if data_type=String])
Example: MODBUSR(H, 20, Int16)/100

doc_tap_modbusread;

Info

doc_tap_modbusadress;

doc_tap_modbussw;

Code Block
MODBUSW(register_type, register_address, data_type, value_to_write)
Example: MODBUSW(H, 20, Int16, Te * 100)

doc_tap_modbusintoreg1; 

Note

doc_tap_modbusnote11;

doc_tap_modbustype;

doc_tap_modbuspoll;

Note

doc_tap_modebusnote2;

ADDERROR(), ADDWARING(), ADDINFO()

Code Block
ADDERROR([Optional: custom_code], text)

 doc_tap_modbusexample2;

Code Block
ADDERROR("Error without code");
ADDWARNING("Warning without code");
ADDINFO("Info without code");

ADDERROR(1, "Error with code");
ADDWARNING(1, "Warning with code");
ADDINFO(1,"Info with code");

doc_tap_modbusresult;

doc_tap_modbusservise;

doc_tap_homebusscriptsmodules1;

doc_tap_homebusscriptsglobal1;

doc_tap_homebuswritevalue;

doc_tap_homebuswriteplus;

doc_tap_homebusrest;


doc_tap_modbusutility;

doc_tap_modbusmanualop; Manual Operations

Praktický nástroj na rýchle prvotné overenie Modbusovej tabuľky. Umožňuje

  • z konkrétneho registra načítať nasledujúcich X registrov do tabuľky, a následne si dynamicky prepínať načítané hodnoty do rôznych datových typov
  • zapísať hodnotu na daný register

Scan Slave IDs

Bežná prax pri spojazdňovaní komunikácie s Modbus zariadením je, že od výroby je prednastavené Slave ID iné ako hodnota 1, a nie je jednoduché sa dopracovať k správnemu číslu. Na to práve slúži táto utilita. Dokáže skenovať zadaný rozsah Slave ID tak, že sa pokúša čítať z vybaného registra vždy s testovaným Slave ID.

Registers Info (Informácie o registroch)

Nachádza sa v dolnej časti Modbus modulu. Pre každý použitý register vypíše informáciu o:

  • Názve TapHome zariadenia, ktoré ho číta alebo doňho zapisuje
  • Dátum a čas posledného úspešného čítania z registra
  • Posledná načítaná hodnota z registra
  • Dátum a čas posledného úspešného zápisu do registra
  • Posledná zapísaná hodnota do registra

Rozširené nastavenia

Prefetch (prednačítanie)

TapHome si vytvára zoznam registrov, ktoré ide čítať z, a zapisovať do Modbus zariadení, v závislosti od nastaveného Poll intervalu. Prefetch je proces, vďaka ktorému si riadiaca jednotka prednačíta do vyrovnávacej pamäte hodnoty, ktoré bude potrebovať počas updatovania. Cieľom je minimalizácia počtu požiadaviek a round tripov.

Prefetch ovplyvňujú 2 nastavenia:

  • Max prefetch register group size (nachádza sa v servisných nastaveniach modulu): určuje maximálny počet registrov, ktoré sa môžu jednou požiadavkou prečítať alebo zapísať cez Modbus komunikáciu.
  • Prefetch režim (nastaviteľný pre každé zariadenie):
    • No prefetch. Pre toto zariadenie sa nebude vykonávať prednačítanie. To znamená že hodnoty sa budú čítať jednotlivo a presne vtedy, keď sa vykonáva skript. Príklad použitia: pri komunikácii s DALI prevodníkom sa nedá vyčítať priamo hodnota konkrétneho svetla, ale treba najskor o ňu požiadať, on prevodník si ju pripraví, a až potom ju vráti. Akékoľvek prednačítanie v tomto prípade nemá zmysel.
    • Isolated prefetch. Prednačítava síce viaceré registre naraz, ale iba tie, ktoré sú definované v tomto zariadení. Napr. keď v zariadení termostat potrebujem registre 3 a 4, v ostatných zariadeniach sa využívajú registre 1, 2, 5, 6, tak požiadavka pre registre 3 a 4 bude vykonaná samostatne iba pre tieto 2 registre. Niektoré Modbus zariadenia toto vyžadujú.
    • Normal prefetch. Všetky žiadané registre zo zariadení ktoré majú byť obnovené, sa snaží prečítať s minimálnym počtom požiadaviek. V prípade nesúvislého sledu registrov prečíta aj registre ktoré sa nevyužívajú, ak boli niekedy v minulosti úspešne vyčítané. Príklad: Žiadaný je register 99 a 101. Pokiaľ register 100 bol v minulosti úspešne prečítaný, a Max prefetch register group size je 3 alebo viac, tak prečíta jednou požiadavkou od registra 99 3 registre. Ak register 100 nie je nikde použitý, a nikdy nebol úspešne prečítaný, je riziko, že čítanie cez takýto register by mohlo vrátiť Modbus exception, napr. "Illegal data address" ako odpoveď na celú požiadavku.

Prefetch sa dá ovplyvňovať aj priamo zo skriptu: Ak pri čítaní použijeme ako register SC alebo SH (namiesto C alebo H), tak hodnota je prečítaná po jednom registri v čase vykonávania skriptu, a neťahá sa z cache pamäte. Podobne pri zápise, ak použijeme ako register SC alebo SH (namiesto C alebo H), tak hodnota sa zapisuje po jednom registri a inou modbusovou funkciou. Modbus protokol podporuje 4 funkcie na zápis: zápis viacerých H, viacerých C, zápis jedného H, alebo jedného C registra naraz. Pozor: nie všetky zariadenia musia podporovať všetky tieto funkcie. Takýmto spôsobom sa dá v prípade potreby kombinovať čítanie a zápis združene a "po jednom".

TCP Port (Modbus TCP)

Vo väčšine prípadov je default hodnota 502, je vľak možné, že niektoré zariadenia počúvajú na inom porte.

Read / Write Timeout

Čas, po uplynutí ktorého TapHome vzdá čakanie na odpoveď, a ohlási chybu "Timeout", ktorá znamená že zariadenie neodpovedalo v danom časovom intervale na požiadavku. Pomalé Modbus zariadenia nemusia stihnúť odpovedať promptne, a je potrebné tento interval predĺžiť na rádovo 1 alebo niekoľko sekúnd. Pozor ale na zbytočne vysoké hodnoty, pretože keď z nejakého dôvodu vypadne komunikácia s Modbus zariadením, tak zbytočne zdržuje ostatné Modbus zariadenia čakaním na odpoveď.

Delay Between Requests

Oneskorenie, ktoré TapHome vkladá medzi jednotlivé požiadavky na Modbus zariadenie. Pre Modbus TCP je to štandardne 0ms, pre Modbus RTU toto oneskorenie podľa špecifikácie vychádza z rýchlosti komunikácie (baud rate) na minimálne 3,5 znaku. Existujú však Modbus TCP zariadenia, ktoré vyžadujú až 5000ms medzi požiadavkami, alebo naopak, niektoré Modbus RTU zariadenia zvládajú aj kratšie oneskorenia, a týmpádom sú schopné komunikovať rýchlejšie.

Use ASCII communication

Modbus ASCII je menej používaný štandard, kde komunikácia neprebieha binárne, ale pomocou ASCII znakov. Väčšinou tieto zariadenia využívajú aj nastavenie "7 data bit".