Modbus Relay. stručný manuál Sepsal: František Ryšánek <rysanek@fccps.cz> Modbus Relay...1



Podobné dokumenty
Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Základní příkazy OS UNIX

Popis programu EnicomD

Úvod, jednoduché příkazy

Linux-příkazový řádek

SEMESTRÁLNÍ PROJEKT Y38PRO

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

TCP-Wedge ZDARMA. Přidává podporu TCP/IP: Sběr dat z adres portu IP na libovolné síti TCP/IP - ethernet / internet.

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Převodník Ethernet RS232 s Modbus RTU / TCP routerem

Tomáš Borland Valenta

1 Uživatelská dokumentace

Operační systémy. Cvičení 1: Seznámení s prostředím

Správa souborů soubor, stromová struktura. Mgr. Jan Veverka Střední odborná škola sociální obor ošetřovatel

PRACUJEME S SHELLEM Ať žije BASH.

Návod k instalaci, provozu a údržbě brány MODBUS. Návod k instalaci, provozu a údržbě. Brána Modbus

TGMmini. začínáme. komplexní dodávky a zprovoznění servopohonů dodávky řídicích systémů

2N Access Commander. Základy použití Verze

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.

TFTP Trivial File Transfer Protocol

Část první: Tipy a triky pro práci se systémem 17

VComNet uživatelská příručka. VComNet. Uživatelská příručka Úvod. Vlastnosti aplikace. Blokové schéma. «library» MetelCom LAN

Nastavení programu pro práci v síti

Komunikační protokol MODBUS RTU v displejích TDS

Návod pro připojení k síti VŠPJ prostřednictvím VPN Vysoká škola polytechnická Jihlava

Novinky u zařízení pro sériovou komunikaci. Michal Kahánek

TC-502L TC-60xL. Tenký klient

BM Software, Databáze Docházky 3000 na NAS serveru (pro MySQL) Němčičky 84, Němčičky u Břeclavi. Úvodní informace:

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Služba ve Windows. Služba (service) je program

Patrol Management System 2.0

Registr 200x. Registr smluv 200x. Příručka uživatele. Stanislav Matz Tel w-stránky:

Komunikační protokol MODBUS RTU v displejích TDS

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

PSK3-11. Instalace software a nastavení sítě. Instalace software

Další nástroje pro testování

OBSAH IMPLICITNÍ NASTAVENÍ OS WINDOWS VÝCHOZÍ TISKÁRNA. »ProServis Strana: 1

Program Computer Setup

Uživatelský manuál. KNXgw232

Systém elektronické evidence návštěvnosti TDL500

TC-502L. Tenký klient

Paralelní výpočty na clusteru KMD

SADA VY_32_INOVACE_PP1

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

MyIO - webový komunikátor

udev a kamarádi... Středisko UN*Xových technologií

Převodník WiFi RS232

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

CA21 PŘÍRUČKA UŽIVATELE

Programové vybavení počítačů operační systémy

Seznámení s Quidy. vstupní a výstupní moduly řízené z PC. 2. srpna 2007 w w w. p a p o u c h. c o m

Základní příkazy UNIXu (Linuxu)

Záznamník teploty ZT, ZT1ext Návod k použití

Úvod do Linuxu SŠSI Tábor 1

Manuál k editoru TinyMCE

Návod k obsluze. Platforma RouterBoard s přeinstalovaným RouterOS Mikrotik. i4wifi a.s.

Převodník Ethernet RS485 s Modbus RTU / TCP routerem

V okně Network nastavte požadované parametry IP. IP adresa musí být z rozsahu sítě, kde GNOME485 budete provozovat. Totéž se týká masky a brány.

HP-2000E UŽIVATELSKÝ MANUÁL

Pokročilé architektury počítačů

CMS. Centrální monitorovací systém. Manuál

TCP2RTU. Transparentní převodník protokolu MODBUS TCP na MODBUS RTU/ASCII. Tři varianty: pro RS422, RS485 a RS232

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

Komunikační protokol

Nastavení tiskárny pro tisk štítků Geis Str. 1/16

Zpravodaj. Uživatelská příručka. Verze

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Uživatelský manuál Mini přepínač počítačů (Klávesnice, VGA, Myš, Audio) 4:1 USB, integrované kabely Katalogové číslo:

Nastavení přístupových práv terminálů BM-Finger na čipování docházky a otevírání dveří

TCP2DMX. Řízení osvětlení přes Modbus TCP. Převodník Ethernetu na sběrnici DMX března 2018 w w w. p a p o u c h.

Value - Powerline ethernet adaptér, 85Mbps Katalogové číslo:

Pravým tlačítkem na počítač /tento počítač/ a vybrat Spravovat

Úvod do Operačních Systémů

Super Hot Multiplayer vzdálené sledování finančních dat. Konfigurace sítě. Strana: 1 / 8

ČÁST 1. Základy 32bitového programování ve Windows

MAGic Základní funkce a klávesové zkratky. Jako výchozí je MAGic klávesa (MAGicKey) nastavena na klávesu CAPSLOCK.

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Supernova 16 Ovládací zkratky. Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů LEVÝ CONTROL + PRAVÁ HRANATÁ

USB485EG. Převodník USB/RS485,422 s galvanickým oddělením. Popis

LINUX přesměrování a roury

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP

MS Word. verze Přehled programů pro úpravu textu

Unix je víceuživatelský a víceúlohový OS

SNÍMAČOVÝ EXPANDÉR TB8.1x2 RS232 - ASCII

PROGRAMOVATELNÉ AUTOMATY FATEK

Převodník Ethernet RS485

SKYLA Pro II. Popis instalace programu

Sentech AL 7000 C. Instalace a ovládání programu BREATH

2) Nový druh připojení Ethernet-CA5 umožňující připojit nové zařízení CA5 a to přes Ethernet nebo přes GPRS

Použití bankovních terminálů s programem TRIFID

1. Jak pracuje počítač 3. Už víme, jak pracuje počítač, ale jak se pracuje s počítačem? 9

Přijímací modul ECA-16

Transkript:

Modbus Relay stručný manuál Sepsal: František Ryšánek <rysanek@fccps.cz> Obsah Modbus Relay...1 Součásti zařízení...1 HW...1 SW...2 Základy ovládání...2 Úvodem...2 Administrátorské heslo...2 Obecné příkazy a klávesové zkratky...2 Konfigurace...3 Přepnutí disku z režimu RO do režimu RW a naopak...3 Konfigurace IP adresy a DNS...4 Konfigurace démona Relay...4 Aktualizace softwaru...4 Formát souboru relay.conf...5 Základy ovládání textového editoru vi...9 Součásti zařízení HW Průmyslové PC s potřebnými porty: Ethernet, RS-232 (dle potřeby i RS-422/RS-485) podle požadovaného výkonu, počtu portů a dalších omezení lze vybrat vhodný typ počítače a rozšiřujících desek. Read-only diskové médium na bázi flash (DiskOnChip nebo CompactFlash), lze použít i točivý harddisk. Napájecí zdroj 230V st. nebo 24V ss., popř. bez zdroje (vstup pro stabilizované napájení +5 a +12 V).

SW - operační systém Linux: minidistribuce založená na stolním Linuxu, s plnohodnotnou GNU libc a základní sadou běžných systémových utilit. - user-space knihovna Linux Modbus (interní produkt FCC PS s.r.o.) - aplikační démon relay - konfigurace všech softwarových částí se provádí editací textových konfiguračních souborů v operačním systému zařízení. Základy ovládání Úvodem Pro potřeby konfigurace, kontroly a případného ladění je třeba přihlásit se do operačního systému zařízení. Ovládání zařízení je dáno použitým operačním systémem, kterým je Linux volně šiřitelný OS UNIXového typu. Zařízení neobsahuje Xwindows, pouze příkazový řádek a obslužné aplikace, které běží v tomto prostředí. K zařízení lze připojit VGA monitor a PS/2 klávesnici (pokud použitý PC hardware obsahuje příslušné porty). Dále je standardně možný přístup po síti přes telnet, na přání také přes sériovou konzolu nebo po síti přes SSH. Jako telnetový klient v nouzi stačí standardní Telnet dodávaný jako součást Windows (emulace ANSI, ale ve VIčku nefungují kurzorové šipky). Pro přesnější emulaci Linuxové lokální konzole lze doporučit terminálový emulátor CRT nebo SecureCRT. CRT umí telnet, SecureCRT umí i RS-232 a SSH. Dalším vhodným terminálem je Putty. Doporučeným typem emulace je Linux, lze ale použít i ANSI nebo VT100 a příbuzné. Pro samotný běh zařízení není zapotřebí monitor ani klávesnice (ani vzdálený přístup). Stačí zapnout síťový vypínač. Administrátorské heslo Administrátorský účet má z výroby nastaveny tyto parametry: Login: root Heslo: abcd1234 Obecné příkazy a klávesové zkratky V případě místního přihlášení přes konvenční monitor a klávesnici je k dispozici šest virtuálních konzol, mezi kterými lze přepínat klávesovými kombinacemi Alt+F1 až Alt+F6. Konzola má scrollback buffer, kterým lze rolovat - s použitím klávesových kombinací Shift+PgUp a Shift+PgDown. Buffer má omezenou velikost a vyprázdní se přepnutím na jinou konzolu.

Výše popsané klávesové zkratky nefungují při přihlášení přes Telnet (nebo SSH nebo sériovou konzolu). Při vzdáleném přístupu však lze použít několik paralelních relací, odrolovaný text lze nalézt ve scrollback bufferu použitého telnetového klienta (resp. terminálového emulátoru). Nezávisle na způsobu přihlášení lze vracet již použité příkazy šipkami nahoru a dolů, při jejich editaci lze používat CTRL+A a CTRL+E (začátek a konec řádku), na lokální konzoli a v některých terminálových emulátorech fungují i klávesy Home a End. CTRL+C ukončí aktuální program. V příkazovém řádku funguje velké množství standardních unixových a Linuxových příkazů, např.: ls výpis souborů v daném adresáři (DOS: dir). Modifikace: ls l, ls al pwd aktuální cesta cd přechod do jiného adresáře (pozor na mezeru před argumentem, tj. např. cd.. cp mv rm kopírovat soubor (DOS: copy). Modifikace: cp R (recursive) přesunout nebo přejmenovat soubor (DOS: move, rename) smazat soubor (DOS: del). Modifikace: rm f, rm Rf (forced, recursive & forced) cat výpis obsahu souboru (DOS: type) less výpis obsahu souboru, stránkovaný, umí listovat i zpátky ps jednorázový seznam běžících procesů. Doporučená modifikace: ps -auxww top trvale běžící seznam procesů, periodicky se aktualizuje, třídí se podle zátěže (q = quit) kill šetrně ukonči proces (argumentem je PID). Modifikace: kill -9 (zabij natvrdo) mc Midnight Commander souborový manažer (DOS: nc, vc, m602), má i editor Rozdíly oproti DOSu: disky nemají písmenka, v systému je jediný společný kořenový adresář: /. Disky se montují na prázdné adresáře. Adresáře v cestě jsou odděleny obyčejným lomítkem, tj. nikoli zpětným lomítkem. Zpětné lomítko znamená escape sekvenci pro tvrdé vložení následujícího znaku. Konfigurace Přepnutí disku z režimu RO do režimu RW a naopak Výhodou flashdisků je odolnost vůči vybracím. Nevýhodou je omezený počet zápisových cyklů, který lze velmi snadno vyčerpat přímým ukládáním logů nebo swapováním. Proto je flashdisk za běhu systému standardně v režimu read-only, a je v tomto režimu připojen automaticky již při startu. Pokud potřebujeme upravit konfiguraci zařízení, nezbývá než přepnout disk po dobu změn do režimu pro plný přístup (read-write). A následně ho přepnout zpátky do režimu read-only, přinejmenším proto, aby byl svazek opět plně odolný vůči výpadkům napájení. K přepínání se používají dva jednoduché příkazy:

rw = povol zápis (nyní lze provádět změny konfigurace) ro = synchronizuj buffery na disk a zakaž zápis Konfigurace IP adresy a DNS IP adresa, maska, broadcast a gateway jsou uloženy pohromadě v souboru /etc/network, ze kterého si data vezme startovní skript /etc/init.d/network. Vlastní jméno počítače je uloženo v souboru /etc/hostname. Adresy nameserverů a doména jsou uloženy v tradičním souboru /etc/resolv.conf. V systému samozřejmě funguje tradiční příkaz ifconfig, kterým lze IP adresu přímo změnit. S ohledem na případný restart je ale vhodnější provést úpravu v konfiguračních souborech. Změnu nastavení sítě lze uplatnit i bez rebootu, pouze zavoláním příslušného init skriptu: /etc/init.d/network restart Změny v /etc/resolv.conf (nastavení DNS) se projeví i bez restartu. Po změně konfigurace IP adresy je vhodné restartovat Relay démona (v jednodušších případech to není nutné, chytí se sám). Konfigurace démona Relay Démon relay si bere konfiguraci ze souboru /etc/relay.conf. Po změně konfigurace je třeba zavolat doprovodný inicializační skript, který provede restart vlastního démona. Protože se jedná o klíčovou součást zařízení, je tento skript zahrnut symbolickým odkazem ve standardní cestě shellu, takže není třeba volat ho plným jménem z /etc/init.d/ : relay restart Aktualizace softwaru Samotný démon relay je tvořen jediným binárním spustitelným souborem /bin/relay.bin. Pokud půjde o aktualizaci pouze tohoto démona, lze ji provést prostou kopií souboru příkazy operačního systému. Jako médium pro přenos aktualizovaného souboru do cílového zařízení lze použít FTP (na zařízení běží FTP server), nebo lze připojit CD-ROM či floppy mechaniku. Případně, pokud to hardware podporuje, USB disk. Aktualizovat lze také celý operační systém, kompletním přepsáním obsahu flashdisku (tj. přepíše se např. i obsah konfiguračních souborů). V případě CompactFlash paměti lze toto provést v libovolném PC s USB čtečkou a bootovatelnou jednotkou CD-ROM, v případě DiskOnChipu je třeba připojit k cílovému zařízení jednotku CD-ROM, z ní nastartovat instalátor a flashdisk přepsat. Případně se lze dohodnout na zaslání flashdisku s aktualizovaným softwarem ovšem pozor v případě DiskOnChipu, jeho výměna představuje poměrně choulostivou operaci, která si může vyžádat vymontování motherboardu (připojit CD-ROM je méně práce). Potřebné kabely pro připojení disketové a CD-ROM mechaniky mohou být součástí standardní dodávky hadrwaru (záleží na zvoleném modelu motherboardu), u miniaturních průmyslových PC může být potřeba ještě standardní PC/AT zdroj.

Formát souboru relay.conf Příklad # Tato radka znamena komentar. ; Tohle je taky komentar. source port ttys0,9600,8n1,rtu,noflow id 6 => host 192.168.2.120 frame_t 500ms pend_t 2s tx_t 3s id 0 id 4 => host 192.168.2.120 id 1 id 5 => host 192.168.2.121 id 2 id 7 => host senzor22.in.firma.cz:540 id 0 id 8 => host senzor22.in.firma.cz:540 id 1 # Prazdne radky jsou ignorovany. source port ttys1,9600,8n1,ascii,flow frame_t 5ch pend_t 500ms tx_t 200000 id 6 => host 192.168.2.120 id 1 id 4 => host 192.168.2.120 id 3 id * => port ttys2,19200,8n1,rtu,flow gw_timeout source host any:503 gw_nopath id 0xE => host nekdo.nekde.cz id 50 id 0x0F => port ttys2 Formálnější definice syntaxe Na samostatném řádku je určen zdroj dat (Modbus port typu slave). Na následujících řádcích jsou určena pravidla pro mapování Modbus Device ID s, tj. mj. cílové porty. Jeden řádek = jedno pravidlo = jeden cíl (Modbus port typu master). Pravidla přísluší k naposledy definovanému zdroji. Definice cíle se mohou opakovat (duplicita je detekována a ošetřena). Z logiky věci vyplývá, že prvním výkonným řádkem v konfiguračním souboru musí být definice zdroje dat. Duplicitní zdroje nejsou povoleny. Duplicitní cíle jsou povoleny, interně jsou všechny duplicitní cíle redukovány na jediný cíl, který si podrží vedlejší atributy z prvotní definice (vedlejší atributy udané v dalších definicích jsou potichu ignorovány). Není povoleno definovat cíl, který byl již definován jako zdroj jeden port nemůže být zároveň master a slave, ani zároveň lokální Modbus/TCP server a cílový port (vznikla by smyčka). Jak zdroj tak cíl může být typu TCP, RTU nebo ASCII. Formát zdroje: source <TCP host serial port> [options]

Formát pravidla a cíle: id <src id *> => <TCP host serial port> [options] [id <dst id>] Pomocí zástupného znaku * (hvězdička) lze zadat obecné či nespecifické pravidlo, které se uplatní na všechna ID v příchozích rámcích relay bude propouštět všechny dotazy. Uplatňují se přednostně specifická pravidla - teprve pokud není nalezeno žádné specifické pravidlo, uplatní se pravidlo obecné. Pokud nezadáme cílové ID pravidla (prostě vynecháme celý člen včetně klíčového slova id ), zůstaně ID nezměněno nebude se překládat. Formát definice sériového portu: port <device node>[,option[,option[,option]]] options: - baud rate (default: 9600) - Databits Parity Stopbits (default: 8N1) - FLOW NOFLOW (default: NOFLOW) - RTU ASCII (default: RTU) Device node je jméno speciálního souboru, pod kterým se v Unixu skrývá systémové zařízení. Nejlépe včetně cesty, jména v adresáři /dev i bez cesty. Například /dev/ttys0 je totéž jako COM1, /dev/ttys1 je totéž jako COM2 apod. (sériová konzolová zařízení v Unixu jsou číslována od nuly). Jako rychlost portu je možno vybrat z obecně známých typizovaných rychlostí, které jsou charakteristické pro UART 16550A, přesněji které jsou vyjmenovány v hlavičkových souborech systémové knihovny v Linuxu od 50 bd po 230400 bd. Datových bitů může být 5-8, parita O E N, stop bity 1 nebo 2. Flow control je buď hardwarová (RTS+CTS) nebo žádná. Formát definice TCP hostitele: host <DNS name IP Address>[:TCP_port] Nepovinné volby, společné pro sériové i TCP porty: 1) timeouty frame_t <timeout> = frame break timeout pend_t <timeout> = pending queue timeout (master ports only) tx_t <timeout> = transmit queue timeout 2) volby povolující hlášení gatewayových chyb směrem k masteru gw_nopath = Modbus gateway reports no path defined for this ID gw_timeout = Modbus gateway reports no response from the slave

Všechny druhy timeoutů se udávají ve formátu <číslo>[jednotka] bez mezery, např. 10000, 10ms nebo 9ch. Pokud chybí jednotka, použijí se implicitní mikrosekundy alternativně lze specifikovat jednotku ms, s nebo ch. Posledně jmenovaná znamená characters, tj. násobek ekvivalentu doby odeslání jednoho znaku na dané jmenovité rychlosti sériového portu (počítáno jako 10 bitů). Tato jednotka se hodí především u sběrnic typu Modbus/RTU tento standard specifikuje konec rámce jako pauzu v délce nejméně 3.5 znaku. Volba frame_t (frame break timeout) znamená maximální povolenou mezeru mezi dvěma znaky, které mají ještě patřit do jednoho rámce. Default pro tento timeout je závislý na typu sběrnice: RTU = 4 * ekvivalent 1 znaku (tj. na rychlosti 9600 bps cca 4-5 ms), norma říká 3.5ch ASCII = 30 sekund (norma říká, že rámce se rozhodně nemají ukončovat podle timeoutu) TCP = 100 ms (norma nestanoví konec rámce na základě timeoutu, ale v praxi běžně přijde jeden Modbus rámec zabalený v jediném TCP rámci, takže nízký timeout dává smysl) Volba pend_t (pending queue timeout) znamená, jak dlouho se má čekat na odpověď po odeslání transakce (resp. po vstupu do syscallu write()) na master portu. Na slave portech pending fronta vůbec není, takže u nich tento timeout nedává smysl. Default je 2 s takto dlouhý timeout se uplatní na pomalých linkách při TCP komunikaci, takto dlouhá odezva od koncového zařízení je méně pravděpodobná. Volba tx_t (transmit queue timeout) znamená, po jaké době se mají neodeslané transakce čistit z odesílací fronty konkrétního portu (master nebo slave). Z fronty odebírá transakce přirozeným způsobem odesílající thread, který volá write() a na master portech přeřazuje transakce do fronty právě zpracovávaných transakcí (pending queue). Jinak řečeno, pokud je vysílání z nějakého důvodu pomalejší než zařazování dalších transakcí, třeba proto, že se nevracejí odpovědi na odeslané transakce, může se stát, že transakce již zařazené k odeslání vytimeoutují dříve, než se jich ujme odesílací vlákno knihovny. Default je 500 ms pro všechny druhy portů. Pokud se týče signalizace chyb vzniklých na vzdálených sběrnicích, démon relay standardně žádné chybové odpovědi sám negeneruje pouze transparentně předává standardní chybové odpovědi koncových zařízení, neboť se jedná o standardní Modbusové rámce. Standard Modbus nicméně specifikuje dva druhy chybových odpovědí, které zde připadají v úvahu: 1) Gateway path unavailable Gateway neví, kam má dále poslat přijatý dotaz. V našem případě relay nemá definováno pravidlo, které by mohl uplatnit na zdrojové Modbus Unit ID. Pokud se tento problém vyskytne, jedná se patrně o chybu v konfiguraci celého systému (master, relay, slave). 2) Gateway target device failed to respond Od koncového zařízení nepřišla odpověď (relay zaznamenal timeout transakce). Koncové zařízení (slave) je patrně mrtvé, nebo neexistuje (chyba konfigurace). Konfigurační soubor relay.conf umožňuje povolit hlášení těchto chybových stavů. První hlášku povoluje volba gw_nopath. Tato chybová hláška pomůže odhalit případnou chybu v konfiguraci relaye (pokud nepoužíváme obecná pravidla). Druhou hlášku povoluje volba gw_timeout. Tato chybová hláška pomůže rozlišit chyby před relayem a za relayem. Také může částečně zrychlit provoz v rozsáhlejším Modbusovém systému

s nestejně rychlými linkami a cyklickým pollingem, pokud se v něm občas vyskytují mrtvá koncová zařízení. Stačí na nejnižších relayích nastavit rozumně krátký pend_t plus ještě gw_timeout. Díky tomu se master dozví v nejkratší možné době, že vzdálený slave je nedostupný, a nemusí čekat na svůj dlouhý timeout, do kterého se musí vejít všechna koncová zařízení. Poznámka ohledně časové přesnosti Všechny timeouty jsou typicky lehce překračovány směrem nahoru, nikdy dolů. To vyplývá z chování použitých časovacích funkcí operačního systému. Kvůli způsobu implementace použité modbusové knihovny (non-realtime user-space knihovna, nikoli např. kernel-space ovladač) jsou pro časování použity obyčejné user-space časovače. Proto přesnost frame break timeoutu je v řádu cca jednotek ms (bez velké zátěže), pod větší zátěží se timeout protahuje až na cca 10 ms, což je perioda preemptivního systémového plánovače. Aplikace i knihovna jsou napsány pokud možno důsledně tak, aby se vlákna navzájem zbytečně neblokovala a především aby zbytečně nespotřebovávala procesorový čas v nekonečných smyčkách. Bez výraznější zátěže CPU plánovač přepíná úlohy prakticky při každém blokujícím systémovém volání a při každém použití meziprocesové synchronizace. Proto má Relay za normálních okolností přijatelné průchozí zpoždění u korektních transakcí může zvyšovat latenci snad jen frame break timeout v RTU, který ale pod přiměřenou zátěží není významně překračován. Frontové timeouty jsou o něco méně přesné mazání z fronty není zařízeno pomocí řetězených časovačů, ale pomocí časových značek na transakcích a periodicky spouštěného garbage collectoru (samostatný thread na každém portu, který se pravidelně probouzí součást knihovny). Perioda garbage collectoru je standardně 200 ms na master portech a 500 ms na slave portech jedná se o hodnotu, která se zadává při kompilaci knihovny. Doporučujeme vyvarovat se dotazů na slave zařízení, o kterých předem víme, že jsou mrtvá. Mrtvý slave brzdí svou sběrnici. Toto je zřejmě problém hlavně u master portů na sériových sběrnicích s více slave zařízeními. Typický Modbus/TCP slave je na své TCP sběrnici jediným koncovým zařízením, takže zablokuje pouze svůj vlastní port v aplikaci Relay a pak ještě dotazujícího se mastera dotazy od jiných masterů na ostatní zařízení běží bez problémů dál.

Základy ovládání textového editoru vi Úvod Konfigurace systému a démona Relay se nastavuje editací textových konfiguračních souborů. Vedle jednoduchého vestavěného editoru v souborovém manažeru mc obsahuje operační systém zařízení také tradiční unixový editor vi, přesněji jeho klon VIM minimal. Editor se spouští příkazem vi <jméno souboru> Dva režimy prohlížení a vkládání VIčko se od jiných editorů liší tím, že má dva základní režimy: prohlížecí a editační. V prohlížecím režimu se lze po textu pohybovat šipkami, ale písmenka napsaná na klávesnici se do textu nedoplňují. Háček je v tom, že v prohlížecím režimu má spousta písmenek speciální funkce pohyb, skok na začátek a konec řádku, mazání písmen/slov/řádků apod. Takže není problém i v prohlížecím režimu otevřený soubor nějak nabourat. V editačním=vkládacím režimu se editor chová podobně, jako kterýkoli příbuzný. Po startu je editor automaticky v prohlížecím režimu. Do vkládacího režimu se lze dostat příkazem i nebo na lokální konzoli klávesou Ins. Zpátky z vkládacího režimu do prohlížecího se lze dostat klávesou Esc. Jak z toho ven? Pokud se dostanete do problémů, např. pokud se Vám podařilo v prohlížecím režimu něco smazat, nebo si prostě nejste jisti, co se právě děje, nejjednodušší bude vystoupit a nastoupit. Vystoupit lze takto: - stiskněte jednou či vícekrát Esc, a počkejte asi 2 s editor vyskočí z vkládacího režimu (pokud v něm zrovna je), pokud je v prohlížecím režimu tak zruší případné rozepsané vícepísmenné kombo příkazy. Nespárovaný Escape vyvolá pouze varovné pípnutí (pokud je v terminálu povoleno). - pokud máte pocit, že by stačilo Undo, zkuste zmačknout u jste v prohlížecím režimu, takže písmenko u znamená Undo. Tato funkce umí vrátit i více kroků. - pokud byste raději vystoupili a nastoupili, zadejte sekvenci :q a Enter (= Quit), tj. dvojtečka kvé Enter

- pokud se editor brání, že byly v souboru provedeny změny, a že tyto nejsou uloženy, zadejte :q! a Enter (= konec, bez připomínek!) Vaše úpravy se neuloží a editor vyskočí zpátky do příkazového řádku. - pokud nicméně chcete změny uložit, máte možnost: příslušná sekvence je :w Enter (=Write) a pak teprve :q Enter, případně rovnou kombo :wq Enter Co to umí užitečného Na lokální konzoli fungují klávesy Home, End, PageUp a PageDown. Pohybové příkazy (v prohlížecím režimu) jsou: 0, $ = začátek a konec řádku b, e = začátek a konec slova w = konec slova, jako oddělovače fungují mezery, tečky, pomlčky W = konec slova, jako oddělovače se uvažují výhradně mezery G = jdi na konec souboru 1G = jdi na první řádek souboru <číslo>g = jdi na uvedený řádek v souboru Příkazy, spouštějící vkládací režim: (ukončuje ho vždy Esc) i = začít vkládat zde (insert) I = začít vkládat od začátku řádku (Insert) a = začít vkládat za tímto znakem (append) A = začít vkládat na konci řádku (Append) o = začít nový řádek za aktuálním řádkem O = začít nový řádek před aktuálním řádkem cw = změnit do konce slova cw = změnit do konce slova (oddělovače pouze mezery) c$ = změnit do konce řádku r<nový> = změň znak pod kursorem na <nový> (nevstupuje do vkládacího režimu) Mazací příkazy (v prohlížecím režimu): x, Del = smaž aktuální znak (pod kurzorem) dw = smaž do konce slova dw = smaž do konce slova (oddělovače pouze mezery) dd = smaž aktuální řádek d$ = smaž do konce aktuálního řádku Příkazy pro blokovou manipulaci yy = zkopíruj aktuální řádek do clipboardu yw = zkopíruj aktuální slovo do clipboardu y$ = zkopíruj vše do konce řádku do clipboardu y<pohyb dolů> = zkopíruj do clipboardu dva řádky p = vlož na aktuální pozici

Hledací příkazy /<výraz> = hledej <výraz> dolů?<výraz> = hledej <výraz> nahoru n = hledej další stejným směrem N = hledej další opačným směrem % = skoč na odpovídající párovou závorku Undo, redo. = znovu poslední vkládací/změnovou operaci u = zpět (undo) - pamatuje si více kroků. U = zpět (undo) pro všechny změny na lokálním řádku. Další příkazy J = připoj následující řádek za aktuální řádek Uložení dat a ukončení :w = uložit :w <soubor> = uložit pod jménem <soubor> (pozor, aktuální buffer si podrží staré jméno!) :w! = uložit, přestože je soubor read-only :q = konec :q! = konec, přestože má aktuální soubor neuložené změny :wq = uložit a konec Úvod do ovládání editoru VIM http://www.kit.vslib.cz/~satrapa/docs/vim/index.htm