MODBUS 574

https//www.racom.eu/cz/support/protocols_docum/bc260__modbus574.html
Protokol MODBUS ve standardní podobě obsahuje jednoho Mastera a skupinu 
Slave spojených sítí RS485. Slave může být max. 255 - jednobajtová adresa). 
Standardní Modbus má navíc omezení na max. adresu 247. Master cyklicky 
obvolává jednotlivé Slave a čte z nich data. Do toho se mísí povely, které 
Master podle potřeby vkládá mezi dotazy. Každý rámec od Mastera je buď 
povinně potvrzen nebo obsahuje data odpovídající funkci rámce. Na základě 
tohoto jednoduchého principu Master určuje životnost, potažmo nefunkčnost 
jednotlivých Slave. Pořadí obvolávání Slave není definováno. Master si může 
volací seznam sestavit jak je mu libo. Master nemá svoji vlastní adresu. 

Síť Modbus se sběrnicí RS485:

master   slave 
  PLC                                      PLC
 ______                           
|      |              |                    ___
| PLC  |--------------+                   |   | addresses:
|______|              +-------------------|___|       01
                      |                    ___  
                      |RS485              |   |
                      +-------------------|___|       02
                      |                    ___
                      |                   |   |       03
                      +-------------------|___|
                      | 
Na dalším schematu je síť Modbus propojená rádiovou sítí MORSE. Slave PLC 
jsou připojeny jednotlivě nebo po skupinách k MORSE CU (communication unit, 
modem, rádio), které místně zastupují funkci Master PLC:

[A]         [B]            [C]           [D]

 master  slave          master    slave 
  PLC         CU             CU            PLC
 ______       \|/........... \|/
|      |RS232 _|_     :      _|_           ___   slave
| PLC  |-----|   |    :     |   |  RS485  |   |  addresses:
|______|     |___|    :     |___|----+----|___|   (0):01
        (m)ode:SLAVE  : (m)ode:MASTER|     ___  
   FF      691122FF   :   69112201   |    |   |
                      :              +----|___|   (1):02
            address   :
           (d)est:FF  :..... \|/
                      :      _|_           ___
                      :     |   |  RS485  |   |   (0):03
                      :     |___|----+----|___|
                      :   69112203   |     ___  
                      :              |    |   |
                      :              +----|___|   (1):04 
                      :..... \|/
                             _|_           ___
                            |   |  RS232  |   |
                            |___|---------|___|   (0):05
                          69112205
             
     period        m(i)rror       (p)eriod

Sběrnice Modbusu je přerušena vloženou rádiovou sítí, která zprostředkovává 
spojení ve třech dále popsaných režimech.

Schema ilustruje použití pojmů Master a Slave v dalším výkladu. Značky 
[A],[B],[C],[D] jsou použity pro rozlišení stupňů v komunikační hierarchii. 
I když se CU [B] chová v rádiové síti současně jako Master vzhledem k CU 
[C], pro přehlednost se tomuto označení vyhneme. Znaky v závorkách jako 
m(i)rror se označují parametry protokolu, uveden je i příklad adres. 

Adresa master PLC [A] je shodná s dolním byte MORSE adresy CU slave [B]. 
Dolní byte adresy CU master[C] je shodná s jednou z adres připojených slave 
PLC [D], pro směrování ostatních PLC se použije funkce "zmnožení adres" v 
menu (N)odes (e)dit.


0.1 Popis protokolu Modbus

Modbus je typický představitel rodiny protokolů určených pro sběrnici 
realizovanou na RS485. Používá 256bajtové rámce opatřené 16bitovým CRC. 
Protože Modbus rozlišuje typy přenášených dat (bitové, bajtové, wordové), 
jsou zavedny typy rámců pro odlišení těchto variant. Modbus typ rámce 
popisuje číslem funkce, kterou rámec realizuje.

0.1.1 Přehled nejčastějších funkcí protokolu Modbus

Přehled povelů Modbusu pro čtení a zápis z různých částí paměti PLC.

function/8    start/16
    (hex)    number/16  ___________
                       |           | 
        02  1bit    |   OUT     |->
        0F -->  bits   |           |->
                       |___________|->
                       |  Analog   |
        04  1words  |           |
        03   words  | Registers |
        17  words  |           |
                       |___________|         

Popis jednotlivých funkcí:

   - 01 (Read Output Status)

čte z automatu Slave stavy vystupů (relé, tranistorové spínače, apod.). 
Zakladním jednotkou čtenou pomocí této funkce je jeden výstup - v našich 
poměrech je to jeden bit. Protože ovšem protokol umí přenést jako nejmenší 
element jeden bajt, jsou bity výstupů sdružovány do bajtů. Master může 
adresovat více bitů naráz, pak je obdrží naskládané do několika bajtů 
odpovědi. 

Typické tvary rámců pak vypadají takto:

výzva
| adr/8 | fce/8 | start/16 | number/16 | crc/16 |

odpověď
| adr/8 | fce/8 | cnt/8 | data/8 * cnt | crc/16 |

adr  - adresa automatu na sběrnici Modbus, tato adresa musí být jedinečná 
       v rámci celé sběrnice. Adresa je stejná jak u dotazu tak i odpovědi.
fce    - funkce, kterou automat vykoná po přijetí rámce.
start  - počáteční adresa dat (výstupu), která budou zpracována.
number - počet položek (bitů), které budou zpracovány.
cnt    - počet datových bajtů rámce.
data   - vlastní data dotazu zarovnaná na osm bitů.
crc    - zabezpečovací slovo 

Příklad:

Mějme stav výstupů v našem automatu od nulté adresy 0x1480. Automat má 
adresu na Modbusu 0x10. Pomocí funkce 01 nejprve přečteme všechny naráz a 
pak postupně. 
Dotaz pro první případ:
1001 0000 0010 crc - chceme 16 výstupů od nulté pozice
odpověď:
1001 0214 80 crc - vráceno všech 16 výstupů. Je potřeba upozornit, že data 
nejsou zarovnávána na sudý počet bajtů, jak je obvyklé v MORSE sítích.

Dotaz pro druhý případ:
1001 0008 0008 crc - chceme 8 výstupů od osmé pozice
odpověď:
1001 0180 crc - vráceno 8 výstupů. Jak je vidno, výstupy jsou organizovány 
ve formátu Intel (malý endian).


   - 02 (Read Input Status)

je naprosto totožná s předcházející funkcí, ale čte ze Slave automatu 
vstupy. Tvary rámců jsou rovněž shodné.


   - 03 (Read Holding Registers) 
vrací z automatu 16bitové paměťové registry. Tyto registry jsou obecně 
použitelné (General purpose). V našem případě jsou použité pro cache a 
paketový režim. Rámce pak vypadají takto:

výzva
| adr/8 | fce/8 | start/16 | number/16 | crc/16 |

odpověď
| adr/8 | fce/8 | cnt/8 | data/8 * cnt | crc/16 |

adr    - adresa automatu na sběrnici Modbus
fce    - funkce, kterou automat vykoná po přijetí rámce.
start  - počáteční adresa dat (výstupu), která budou zpracována.
number - počet položek (wordy), které budou zpracovány.
cnt    - počet datových bajtů rámce.
data   - obsah požadovaných registrů zarovnaný na 16 bitů.
crc    - zabezpečovací slovo .

Příklad:

V našem automatu z přecházejícího příkladu jsou obsahy tří registů od nulté 
adresy
0x1480, 0x3450 a 0x4054. 

Dotaz:
1003 0000 0003 crc
odpověď:
1003 0614 8034 5040 54 crc - opět rámec není zarovnán na sudý počet bajtů.


   - 04 (Read Input Registers) 

je v principu shodná s funkcí pro čtení
registrů. Na rozdíl od ní ovšem vrací stavy analogových vstupů.


   - 05 (Force Single Output) 

nastavuje jeden výstup, t.j. jeden bit. Protože binární výstup lze jen 
nastavit nebo smazat, jsou tvary povely velmi jednoduché.

výzva
| adr/8 | fce/8 | start/16 | 0xFF00 | crc/16 |  pro nastavení 1 výstupu
| adr/8 | fce/8 | start/16 | 0x0000 | crc/16 |  pro smazání 1 výstupu

odpověď
| adr/8 | fce/8 | start/16 | 0xFF00 | crc/16 |  nebo
| adr/8 | fce/8 | start/16 | 0x0000 | crc/16 |  je prostou kopií dotazu.

adr   - adresa automatu na sběrnici Modbus
fce   - funkce, kterou automat vykoná po přijetí rámce.
start - počáteční adresa dat (výstupu), která budou zpracována.
crc   - zabezpečovací slovo.


   - 06 (Preset Single Register) 
nastaví obsah jednoho registru = 1 word. Je podobná funkci předcházející, 
jen místo stavu bitu se objevuje stav registru.

výzva
| adr/8 | fce/8 | start/16 | data/16 | crc/16 | 

odpověď
| adr/8 | fce/8 | start/16 | data/16 | crc/16 |  je opět prostou kopií 
dotazu.

adr   - adresa automatu na sběrnici Modbus
fce   - funkce, kterou automat vykoná po přijetí rámce.
start - počáteční adresa dat, která budou zpracována.
data  - obsah zapisovaného registru.
crc   - zabezpečovací slovo.


   - 0F hex (Force Multiple Outputs) 

současné nastavení více výstupů.

výzva
| adr/8 | fce/8 | start/16 | number/16 | cnt/8 | data/8 * cnt | crc/16 | 

odpověď
| adr/8 | fce/8 | start/16 | number/16 | crc/16 |

adr    - adresa automatu na sběrnici Modbus
fce    - funkce, kterou automat vykoná po přijetí rámce.
start  - počáteční adresa dat (výstupu), která budou zpracována.
number - počet bitů pro zápis
cnt    - počet byte nutných pro přenos adresované skupiny bitů
data   - stavy zapisovaných výstupů, 
         wordy obsahují prohozené bajty ve tvaru L,H, L,H, L,H, ...
crc    - zabezpečovací slovo.


   - 10 hex (Preset Multiple Regs) 

podobně jako předcházející funkce nastavuje více registrů naráz.

výzva
| adr/8 | fce/8 | start/16 | number/16 | cnt/8 | data/16 * numb | crc/16 | 

odpověď
| adr/8 | fce/8 | start/16 | number/16 | crc/16 |

adr    - adresa automatu na sběrnici Modbus
fce    - funkce, kterou automat vykoná po přijetí rámce.
start  - počáteční adresa dat (výstupu), která budou zpracována.
number - počet wordů pro zápis
cnt    - počet byte nutných pro přenos požadované skupiny wordů
data   - stavy zapisovaných registrů.
crc    - zabezpečovací slovo.


   - 17 hex (READ/WRITE HOLDING REGISTERS) 

spojuje funkci 03 čtení a 06.zápis.

výzva
| a/8 | f/8 | rst/16 | rno/16 | wst/16 | wno/16 | wcnt/8 | wdata/cnt*8 |
|crc/16 |

odpověď
| a/8 | f/8 | cnt/8 | data/cnt*8 | crc/16 |

a     - adresa slave 
f     - funkce READ/WRITE HOLDING REGISTERS
rst   - start čtené oblasti 
rno   - počet registrů čtené oblasti 
wst   - start zapisované oblasti 
wno   - počet registrů zapisované oblasti 
wcnt  - počet byte dat v rámci 
wdata - data, která mají být zapsána


Pokud Slave automat čemukoliv v dotazu/povelu nerozumí je povinnen vrátit 
výjimku (exception). Výjimka by měla informovat Mastera o situaci, ve které 
se pokusil pracovat buď nedovolenou fukncí pro daný Slave nebo s daty mimo 
platný rozsah pro daný Slave automat.


    - odpověď na dotaz nebo na povel s chybným zadáním

| adr/8 | 0x80+fce /8 | excode/8 | crc/16 |

adr    - adresa automatu na sběrnici Modbus
fce    - funkce, která výjimku vyvolala.
excode - číslo výjimky, specifikuje kde přesně a jaká se stala chyba
         1 - chybné číslo funkce
         2 - chybná adresa dat
         3 - chybný obsah dat
         5 - potvrzené přijetí povelu, jehož provedení je pomalé
         6 - odmítnutí, Slave je zaměstnán výkonem pomalého povelu
crc    - zabezpečovací slovo.



1. Funkce modemu v protokolu MODBUS.

Modem připojený k Modbusu má několik možností funkce (podrobné popisy 
níže):

- transparentní režim
V tomto módu jsou data přenášena tak, jak byl generována u Mastera (nebo 
Slave v případě odpovědi). Jsou pouze zkontrolována na validní CRC a 
následně poslána na patřičnou MORSE adresu. Ta se zjistí prostým přímým 
mapováním Modbus adresy přes masku na adresu MORSE. Tento režim nikterak 
nekontroluje obsah přenášených dat. Tzn. lze přenášet prakticky cokoliv co 
vyhoví podmínce správného CRC a adresy. Tento režim lze doporučit pouze pro 
aplikace, u kterých není dopředu známo, kolik a jakých dat bude přenášeno. 
Další podstatnou nevýhodou je rychlost odezev Master  Slave, které jsou 
přímo úměrné transportu paketu přes síť tam a zpátky.

- režim cache
Tento mód vychází z předpokladu, ze většina technologií potřebuje data 
shromažďovat v jednom místě (centrála / dispečink) a pouze čas od času 
poslat z centrály nějaký příkaz. Všechna data směrem na centrálu jsou 
zapamatována v cache centralního modemu a odtud na přání Mastera okamžitě 
vracena. Tj. centralní modem se pro Mastera jeví jako celá sít Slave. Přes 
síť se přenášejí pouze povely pro Slave, změny a čas od času aktualizace, 
aby se zajistila synchronost dat v cache a dat v odpovídajicím Slave. Takto 
se ušetří až 90% kapacity sítě, neboť se odbourají přenosy, které přenášejí 
data už v cache obsažená. Nespornou výhodou je fakt, že rychlost odezvy na 
dotaz do cache je řádově v jednotkách ms. Tudíž cyklus obvoláváni Slave je 
velmi rychlý.
  V tomto okamžiku se ovšem vynořuje drobná vada na kráse - některé 
automaty neumějí čekat na odpověď dostatečně dlouho - při jejich návrhu 
nebylo kalkulováno se sítěmi s velmi dlouhou (v porovnání s klasickým 
metalickým vedením) odezvou. Jedná se o případ, kdy Master právě posílá 
povel směrem ke Slave. Tehdy je odezva delší - kompletní transport přes síť 
tam a zpět. V okamžiku, kdy takovémuto automatu vyprší jeho čas, začne 
opakovat, přičemž povel se ani ještě nestihl doručit ke Slave. Po několika 
opakováních se sice dočká odpovědi, ale je to odpověď na první vyslání 
povelu. Automat sice přestane opakovat, nicméně sítí se hrnou teď uz 
zbytečná opakování povelů a zbytečné odpovědi na ně. Pro takovéto neštastné 
automaty existuje táhlo, jehož pomocí lze takovým situacím zamezit. Pomocí 
parametru "(r)epeat discard" lze nastavit, kolik opakovaní se má zahodit, 
než se znovu vpustí do sítě.
  Centralní modem umí rozpoznat uhynulého Slave. Udržuje si v paměti časy 
mezi jednotlivými aktualizacemi nebo změnovými pakety a pokud takovýto čas 
přeteče přes nastavenou hodnotu, je odpovidající Slave prohlášen za mrtvého 
a modem přestane na výzvy k tomuto Slave odpovídat.
  Režim cache lze doporučit pro většinu aplikací, kde objem přenášených dat 
nepřesáhne cca 50 bajtů a počet stanic Slave rovněž bude pod 100. (pomůcka: 
objem dat může být i větší, ale součin (objem_dat * pocet_stanic) by neměl 
přesáhnout cca 5000, což je maximální velikost cache).
  Z předcházejích řádků je zřejmé, že cacheovaný režim odstranil zbytečnou 
zátěž sítě při přenosu výzev od Mastera k Slave automatům, protože polling 
(obvolávání) automatů se děje lokálně mezi modemem a automatem. Přes síť se 
pak transferují jen povely a změny.

- paketový režim. Tento režim využívá Modbus jen jako linkovou vrstvu. Mezi 
jednotlivými účastníky tohoto typu komunikace jsou přenášeny datové pakety 
(prakticky stejně jako v MORSE sítích), které obsahují v hlavičce informace 
pro korektní doručování v rámci MORSE sítě. V tomto režimu přestává 
existovat rozdíl mezi Masterem a Slave. Tudíž je jedno, zda je v rámci této 
komunikace Master modem nebo připojené zařízení. Všichni učastníci si mohou 
předávat pakety bez omezení. Pro Master vystupuje modem jako Slave a pro 
Slave modem naopak dělá Master. Lze naprosto bez problemů zrealizovat 
spojení mezi dvěma Master (Slave) automaty, což by v rámci běžného Modbusu 
nebylo možné. Adresace přechází z Modbus adres na MORSE adresy. Původní 
adresy jsou využívány pouze jako linkové a mohou se v rámci MORSE sítě i 
opakovat (dokonce to zjednoduší konfiguraci). Tento režim je silně 
doporučován do heterogeních sítí, kde je velké množství automatů různých 
druhů a kde jsou kladeny vysoké nároky na variabilitu (velikost a rychlost) 
přenášených dat. Při provozu v tomto režimu také dochází k mimovolné 
transformaci protokolů. Toho lze poměrně s výhodou využít při propojování 
různých technologií osazených automaty s odlišnými komunikačními protokoly. 
- Režim paket rovněž umožňuje např. v centru použít komunikaci s aplikací 
přes UDP/IP a Morse Aplikační Server a na podřízených stanicích kromě 
protokolu Modbus použít i jiné protokoly.Použití paketového režimu a 
Aplikačního serveru výrazně ušetří na investovaných prostředcích, protože 
odpadá potřeba osazení ve většině případů drahého Master automatu, který 
navíc obvykle funguje jen jako datový koncentrátor pro následně připojený 
SCADA systém.

- časová synchronizace
Tato záležitost sice není komunikací po síti, ale umožňuje sjednotit čas 
mezi jednotlivými automaty a sítí. Zde modem může být zdrojem časového 
údaje nebo naopak jeho příjemcem. Asi nejběžnější varianta bude tato: 
centrální modem bude zavěšen na čas Master systému. Pro ostatní modemy v 
síti bude zdrojem času a ostatní modemy budou pak zdrojem času pro Slave 
automaty.

- watchdog 
Tento prvek vychází z faktu, že program v Slave automatu nemá možnost se 
dovědět zdali komunikace probíhá či nikoliv. Je to zapříčiněno stavbou 
automatu a jeho firmware (pozor! nezaměnovat s uživatelským software). 
Naparametrovaním tohoto režimu bude modem v režimu Master periodicky 
zapisovat na určenou adresu v automatu dohodnutou hodnotu (opět parametr).

- fantom (phantom access) 
Fantomový přístup lze používat jen v režimu, kdy modem je Slave a pracuje 
se zapnutou cache. Za pomoci fantomového principu lze přistupovat do cache 
bez adres jednotlivých Slave. Celá cache se pro Master systém jeví jako 
jeden jediný Slave s velmi velkým balíkem dat. Tento princip je velmi 
výhodný pro konfiguraci s mnoha Slave automaty v síti, Odpadnou tak na 
straně Master systému zbytečné dotazy na malé balíčky dat z jednotlivých 
Slave. Celou cache může Master vyčíst za pomoci několika málo dotazů. 
Master ovšem při tomto principu činnosti musí znát organizaci v cache. Ta 
je dána strukturou dat přicházejcích od Slave automatů.

- virtual (virtual station) 
Podobně jako fantom, i tento prvek je funkční jen pro cache a Slave režim 
modemu. Tato pomůcka poskytuje nadřízenému Master systému infomaci o právě 
došlých zprávách ze sítě. Na základě této informace může Master modifikovat 
posloupnost obvolávání tak aby vyčítal data z cache jen z adres stanic u 
nichž došlo ke změně (byl doručen změnový/aktualizační paket). Takto lze 
zminimalizovat obvolávku ze strany master systému a podstatně tak ušetřit 
režii sběrnice.

Jako optimální se jeví kombinace cache, fantomu a virtuální stanice. Master 
na základě informace z virtuální stanice sestaví seznam Slave, u nichž 
došlo ke změnám a vypočítá potřebné adresy pro fantom. Pak za pomoci 
fantomu naráz vyčte potřebná data. Na místo mnoha postupných dotazů mu nyní 
budou stačit dotazy dva. Prvním vyčte obsah virtuální stanice a druhým už 
potřebná data z fantomu.



1.1 Modem jako MASTER

Modem emuluje Master na straně Slave automatu (PLC). Zde je možno připojit 
max. 4 Slave. Jejich adresy na RS485 by měly být jedinečné v rámci celé 
MORSE-Modbus sítě, nebot je použité přímé mapování maskou MORSE -> Modbus a 
naopak (toto pravidlo neplatí pro paketový režim).Pro některé režimy je 
možné také použít Art tabulky, ale ty jsou primárně určeny pro retranslační 
provoz. 
Podle zvolených variant provozu může modem periodicky "olizovat" Slave 
automaty a číst z nich data v cache a paketovém režimu. Speciálním případem 
je transparentní režim, kdy výzvy ke Slave automatům jsou přijímány od 
cetrálního Master automatu beze změny přes síť a odpovědi na ně jsou rovněž 
beze změny transferovány přes síť zpět k centrálnímu automatu. Všechny 
zmíněné režimy lze zapnout naráz. 


1.1.1 Modem MASTER v režimu cache

Je-li modem zparametrován do tohoto režimu, tvoří pro několik připojených 
slave automatů Mastera. Režim cache je postaven na předpokladu, že běžné 
technologie data spíše koncentrují do jednoho místa (SCADA, Master 
automat), přičemž povely do technologie jsou spíše sporadické. Pro správnou 
činnost je nutná programová podpora i v připojených Slave automatech. 
Program v automatu vytvoří tzv. "komunikační zónu", do které vkládá údaje z 
technologie potřebné pro nadřízený řídící proces (SCADA, Master automat). 
Pořadí a typy dat nejsou rozhodující. Komunikační zóna je souvislá část 
paměti automatu pro tzv. Holding Registers (Modicon).Tyto registry jsou 
obecně použitelné buňky paměti, které jsou přístupné přes funkce protokolu 
Modbus (různí výrobci mají pro tuto část paměti různé pojmenování, nicméně 
asi nejběžnější název je právě Holding Registers). Tato zóna se cyklicky 
vyčítá modemem (perioda vyčítání je parametrizovatelná). Modem [C] (viz 
schema sítě) si vytváří kopii dat z této zóny a porovnává ji s aktuálně 
přijatými daty (data přijatá z dotazu na tuto "komunikační zónu"). Zjistí-
li modem jakoukoliv diferenci mezi kopií a aktuálně přijatými daty, odesílá 
okamžitě tato data na centrální modem [B], kde jsou uložena do cache. Data 
jsou rovněž přenášena po uplynutí určité předem nastavené periody nucené 
aktualizace. Tento princip zajišťuje, že i když dojde k náhodné ztrátě 
paketu se změnovými daty, jsou všechna data po určitém čase stejně 
přenesena bez ohledu na jejich stav. Tudíž data v centrálním modemu jsou 
stará maximálně právě onu periodu nucené aktualizace. 
  Pro optimální činnost cacheovaného režimu je nutné zajistit uživatelským 
programem v automatu to, aby změny v replikované (cacheované) oblasti 
paměti byly opodstatněné. Je tím hlavně míněno dobré ošetření např. 
analogových veličin. Mnohdy se stává, díky nejrůznějšímu rušení, že signál 
z čidla je plný indukovaných zákmitů a praskotů. Pokud by se tyto tyto 
rušivé elementy projevovaly i v komunikační zóně, modem by každou takovouto 
změnu - poruchu považoval za signál k odeslání na centrální stanici. Což o 
to, to by samo o sobě až tak moc nevadilo, ale fakt že takovýto přenos 
nenese žádná užitečná data je z hlediska zátěže sítě jistě nezanedbatelný. 
Programová podpora v automatu vyžaduje znalost struktury přenášených dat, 
neboť z hlediska modemu jsou všechna považována za binární. Protože Master 
[A] v protokolu Modbus nemá adresu, je nutné mu přidělit alespoň MORSE 
adresu. To se provádí parametrem v modemu. Jako další doplňky lze zapnout 
časovu synchronizaci a watchdog. Modem lze provozovat i se zapnutým 
paketovým režimem.

1.1.2 Modem MASTER v transparentním režimu

Při nastevení modemu do tohoto módu, je modem pro připojenou sběrnici 
Master a určuje kdo bude mít na sběrnici prostor. Všechna ostatní zařízení 
musí být povinně Slave. Jinak by docházelo k nedefinovatelným stavům a 
kolizím. Protokol Modbus neumí multimaster režim.
  V transparentním režimu jsou pakety přenášeny přes síť ve tvaru stejném v 
jakém byla přijata od Slave automatu. Samozřejmě je kontrolováno CRC. Pokud 
kontrola CRC selže, je rámec bez náhrady zahozen.  Je zde jen podmínka, že 
rámec přijatý ze sběrnice 485 (na ni jsou připojeny Slave automaty) musí 
být vyprovokován rámcem do sběrnice vyslaným. V praxi to znamená pouze 
tolik, že když modem nevyšle povel nebo dotaz a přesto něco přijme ze 
sběrnice i když kontrola CRC vyjde dobře, považuje to za náhodné rušení a 
přijatý rámec zlikviduje. Protože modem v transparentním režimu kromě 
kontroly CRC neprovádí s daty žádnou jinou akci, je možné posílat přes síť 
naprosto obskurní funkce a data. Typická záležitost je přeprogramovaní 
Slave automatu na dálku.
  Aby transparentní režim fungoval správně je potřeba zajistit shodu adres 
připojených Slave automatů a MORSE adres v modemu. Pochopitelně to vyžaduje 
mít zapnutý u modemu síťový multiaddressing a správně nastavené lokální 
retranslační tabulky. Mapování adres MORSE -> Modbus je provedeno 
osmibitovou maskou, která ořízne horní část MORSE adresy a zbude adresa 
Modbus, která se použije pro vyslání do sběrnice 485. Stejným způsobem je 
prováděno zpětné mapování z adres Modbus na MORSE. Podle masky se určí 
horní část MORSE adresy a prostou funkcí OR se spojí s adresou Modbus. 
Takto vzniklá kompletní MORSE adresa se použije pro odeslání do sítě (v 
názvosloví MORSE je to source address). Protože protokol Modbus nepoužívá 
adresu Master systému, je nutné ji modemu nějak sdělit. Jinak se nedá 
zajistit korektní doručování dat směrem na Master systém, MORSE síť bez 
adres obou směrů nemůže fungovat. To se zajišťuje nastavitelným parametrem, 
který tuto adresu určuje. Modem pak všechny oprávněné odpovědi od Slave 
automatů směřuje na tuto adresu. Je vhodné ji volit mimo projektovaný 
rozsah, aby nemohlo dojít k záměně. Např. projektovaná sít bude mít 34 
účastníků situovaných od jedné, takže MORSE adresy budou v rozsahu např. 
45230001 až 45230022 (34 je hexadecimálně 22). Tudíž adresa Master systému 
může ležet v rozsahu 45230023 až 452300FF. Je dobré s ohledem na případné 
budoucí rozšiřování volit adresu z druhého konce rozsahu - pokud to 
rozdělení síťových adres vůbec umožňuje. Tzn. Master systém by mohl v 
takovéto aplikaci mít MORSE adresu 452300FF.
  Zřejmě nejčastější případ aplikace bude záležitost modem + jeden Slave 
automat. Tato situace je pro konfiguraci velmi prostá, protože stačí jen 
zajistit aby se adresa automatu shodovala s posledním bajtem MORSE adresy, 
nastavit správný režim v modemu, adresu Master systému a je hotovo.


1.1.3 Modem MASTER v paketovém režimu

Paketový režim předpokládá v Slave zařízení existenci dvou bufferů pro 
dočasné uložení paketů určených pro transport přes síť. Tyto buffery jsou 
zrealizovány jako oblasti obecné paměti, které jsou přímo přístupné přes 
Modbus. Funkce, které umožnují čtení a zápis paměťových oblastí, nazývají 
tuto oblast jako Holding Ragisters (Modicon). Jeden z těchto bufferů je 
určen pro vysílání do sítě, a druhý pro příjem ze sítě. Buffer, určený pro 
vysílání z Modbusu do MORSE sítě, se nazývá H2Nbuf (host to network 
buffer). Podobně buffer pro příjem z MORSE sítě do Modbusu je pojmenován 
N2Hbuf (network to host buffer). Oba směry jsou zcela nezávislé a mohou být 
provozovány asynchronně. Protože v popisované variantě je modem jako 
Master, určuje podle nastavených parametrů průběh komunikace na sběrnici 
RS485 právě on. 
  Než se pustíme do podrobného popisu komunikace, je potřeba objasnit 
sturktury bufferů. Oba mají shodnou strukturu, ale nemusí mít shodnou 
délku. Minimální délka bufferu odpovídá maximální délce rámce Modbusu, tj. 
250 bajtů (jsou odečteny délky hlaviček a CRC). Maximální délka není 
omezena, ale při použití MORSE systému stačí velikost 1600 bajtů, což je 
právě maximální přípustná délka paketu v MORSE sítích.

Struktura bufferů:

H2Nbuf:
| H2Ndesc/16 | H2Nfr/modbusMRU |

N2Hbuf:
| N2Hdesc/16 | N2Hfr/modbusMTU |

popis jednotlivých položek

H2Ndesc znamená "host to net descriptor", a obsahuje potřebné informace 
pro přesun paketu přes Modbus:

|ret/1|rep/1|No/2|res/1|rxsize/11|

N2Hdesc (net to host descriptor) je shodný s H2Ndesc:

|ret/1|rep/1|No/2|res/1|txsize/11|

ret    - 0 - user pseudorámec,
         1 - retranslačni pseudorámec (vyhrazeno pro potřeby Racomu)
rep    - repeat bit
No     - číslo paketu
res    - reserved
rxsize - velikost  pseudorámce včetne adresy a typu v bajtech 
txsize - velikost  pseudorámce včetne adresy a typu v bajtech 
N2Hfr  - user pseudorámec 
H2Nfr  - user pseudorámec 
modbusMRU - Maximum Receive Unit
modbusMTU - Maximum Transmit Unit

Pamětové adresy jednotlivých bloků (H2Nbuf, N2Hbuf), jsou v modemu volně 
konfigurovatelné podle potřeb připojeného zařízení. Pseudorámec obsahuje 
vlastní paket, určený pro tranfer z/do sítě. Uvnitř pseudorámce je ukryta 
hlavička obsahující síťové informace. Ty se skládají z adresy, délky a 
pořadového čísla. Hlavička je v bufferu umístěna hned na následující pozici 
za descriptorem. Struktura dat a hlavičky pseudorámce je následující:

User pseudorámec:

      | T/8 | D/1 | R/4 | N/3 | A/32 | data |

T    - typ paketu
D    - bit DTE, je-li 0, je vysílající DCE, A je adresa source.
         naopak je-li 1, je vysílající DTE, A je adresa destination.
R    - rezervováno, musí být nula
N    - síťové číslo (přenáší se po síti).
A    - adresa v síti
data - vlastní data pseudorámce

Číslování paketů není povinné. Číslo je dodáno na cílovou adresu a může 
sloužit ke kontrole pořadí dodaných paketů (síť MORSE nezaručuje přesné 
dodržení pořadí).Adresa je buď adresou source (DTE přijímá paket) nebo 
adresou destination (DTE vysílá paket). Paket přichází do protokolu přes 
CNI (Channel to Node Interface), které může převádět uživatelský adresový 
prostor na adresový prostor MORSE, např. pomocí masky. Max. dovolená délka 
dat v síťové vrstvě MORSE je 1626 byte. Delší pakety nejsou v systému 
definovány. Optimální velikost paketu pro systém MORSE je 200-400byte. Typ 
paketu je shodný s pakety v MORSE systému. Jejich podrobný popis je možné 
nalézt v ostatních dokumentech (např. Mars-A).
  Nyní se můžeme podívat, jak bude probíhat komunikace. V případě, že Slave 
chce poslat paket, tak otestuje descriptor (H2Ndesc) v H2Nbuf. Je-li 
nulový, naplní H2Nbuf podle popisu. V prvním wordu je descriptor s délkou, 
od druhého wordu následuje vlastní předávaný paket (user pseudorámec) s 
hlavičkou následovanou vlastními daty. Master (modem) neustále (po 
nastavené periodě vyčítání) kontroluje descriptor v H2Nbuf a je-li 
nenulový, tak z H2Nbuf vyčte paket a následně nastaví descriptor v H2Nbuf 
na nulu. Tím sdělí zařízení Slave, že paket převzal a zařadil jej do Morse 
sítě k odeslání. Tehdy může Slave naplnit H2Nbuf dalším paketem atd. Opačný 
směr - příjem ze sítě - probíhá analogicky, pouze ten kdo kontroluje 
descriptor před zápisem je modem. Pokud modem zjistí, že descriptor je 
nenulový, tzn. Slave ještě nepřevzal předcházející doručený pseudorámec, 
zkouší to znovu a znovu po dobu než uplyne doba života tohoto rámce. Pak je 
tento rámec zahozen. Jestliže ale v průběhu pokusů o doručení je zjištěn 
nulový descriptor (Slave zpracoval rámec), rozběhne se normální 
procestransferu. Protože maximální velikost dat přenositelná v jednom rámci 
protokolu Modbus je 256 bajtů, je v případě potřeby přenosu delšího paketu 
přes buffery třeba tento paket vyčíst (zapsat) pomoci několika rámců 
(fragmentů).


1.1.4 Modem MASTER a časová synchronizace

Mnohé technologie postavené na Modbusu vyžadují, aby Slave automaty byly 
časově synchronní (reálný čas). Modbus samotný nemá prostředky pro 
synchronizaci času a tak to obvykle bývá řešeno na programové úrovni. Tyto 
přenosy časových informací jsou z hlediska MORSE sítě zbytečné, protože 
sama MORSE síť umožňuje poměrně s nepatrnými nároky na kapacitu zajistit 
reálný čas v kterémkoliv svém bodě. Pro ušetření jednak práce programmátora 
aplikace Modbus a také kapacity sítě, byl zaveden režim synchronizace času 
mezi zařízením Slave a modem. Modem jako Master Modbus může pracovat ve 
dvou režimech: je schopen poskytovat reálný čas, nebo čas naopak přejímat a 
synchronizovat se na něj. V prvním případě, kdy je modem zdrojem času, v 
nastaveném intervalu zapisuje čas do určené oblasti paměti v Slave 
automatu. Používají se k tomu steně jako v případě cache a paketového 
režimu funkce pro práci s Holding registers.
  Program v Slave automatu testuje tuto oblast a v případě, kdy zjistí že 
obsahuje nějaká data, převezme je a použije pro synchronizaci času. Po 
úspěšném zpracovaní oblast smaže. Opačně, pokud je modem synchronizován 
časem ze Slave automatu, je tato oblast vyčítána a data v ní obsažená jsou 
použita pro synchronizaci modemu. Pro tento případ je vhodné, aby program v 
Slave automatu čas v této oblasti upravoval co nejčasteji. Jen tak se 
zamezí diferencím při synchronizaci.
  Pokud je modem synchronizován, stačí vyplnit v zóně jen údaj o GMT, 
letním/zimním čase a milisekundy.  Ostatní položky jsou ignorovány. 
  Struktura časového údaje poskytovaného modemem je poměrně obsáhlá a Slave 
automat si může vybrat z údajů, ty které mu vyhovují nejvíce.

Formát časového údaje:

| gmtsec/32 | R/1 | ts/1 | R/4 | msec/10 | sec/8 | min/8 | hour/8 | day/8 |
| month/8 | year/8 |

gmtsec - aktuální čas, je použit GMT udávaný v sekundách od 1.1.1970 
         (Unix time)
msec   - milisekundy v právě probíhající sekundě.
ts     - timesavings, přepínač letní/zimní čas (1 - letní, 0 - zimní čas)

  Další položky obsahují lokální čas včetně korekce časové zóny.
sec    - aktuální sekunda
min    - minuty
hour   - hodiny (0 - 23)
mday   - den v měsíci (1 - 31)
mon    - měsíc (0 - 11)
year   - rok (údaj je ve tvaru letopočet - 1900)
R      - rezerved


1.1.5 Modem MASTER a Watchdog

Některé kritické řídící procesy potřebují informaci o korektní činnosti 
modemu. Protože většina automatů díky vnitřnímu firmware odstiňuje 
komunikaci na seriovém portu od uživatelského programu, nemá uživatel jak 
zjistit, že modem pracuje správně. Z tohoto důvodu byl zaveden režim, kdy 
modem pravidelně zapisuje do předem určené lokace definovaný údaj. Program 
v Slave automatu testuje tuto oblast a vyhodnocuje její stav. Pokud program 
zjistí, že do oblasti nebylo zapsáno déle než nastavenou dobu, může se 
přepnout do stavu nevyžadujícího komunikaci, popřípadě bezpečně odstavit 
technologii.
  Modem umí zapisovat do oblasti volné paměti (Holding Registers) 
nastavenou bitovou masku. Rovněž čas je nastavitelný v širokých mezích. 
Typicky probíhá režim watchdog následovně: modem např. jednou za pět sekund 
zapíše do Slave automatu např. na adresu 0x1000 hodnotu 0x8000 (tj. nahodí 
nejvyšší bit v daném slově). Tuto adresu rovněž testuje program v automatu. 
Zjisti-li zápis na správný bit, smaže tento bit a spustí časovač, který 
nastaví na dobu o něco málo větší než pět sekund. Při příštím zápisu se 
cyklus opakuje. Pokud časovač přeteče, je to neklamná známka toho, že 
nedošlo k zápisu správného bitu a lze to prohlásit za výpadek modemu. 



1.2 Modem jako SLAVE

Slave režim je nutný pro připojení k Master systému. Podle zvolených 
variant provozu se modem jeví jako celá 485 síť nebo komunikuje v paketovém 
režimu, kdy provoz typický pro 485 sítě mizí. Typické aplikace využívají 
Master jako datový koncentrátor a tudíž připojený modem je cesta k 
vzdáleným Slave automatům. Je nutné poznamenat, že v tomto režimu bude 
modem zatěžován několikanásobně více než kterýkoliv vzdálený modem u Slave 
automatu. Všechna data z/do sítě musí projít právě skrz něj.


1.2.1 Modem SLAVE v režimu cache

Slave modem [B] je připojen k Master automatu [A]. Na jeho dotazy, které 
musí být v souladu s replikovanými oblastmi (jsou podporovány prakticky 
všechny čtecí funkce), modem vrací odpovědi stejně, jako kdyby byly Slave 
automaty přímo na stejném segmentu sběrnice. Jestliže není dotaz korektní, 
je vrácena výjimka. Protože modem neví, jaká data jsou v cache obsažena, 
vrací na různé typy (funkce) dotazů se shodnou adresou stejná data. Tzn. 
pokud program v Slave automatu umístil na určitou pozici v cache bitová 
data (vstupy/výstupy) a na tuto pozici se Master dotáže jako na registry, 
jsou tato data vrácena jako obsah registrů. Podobně je tomu i v případě 
bitového dotazu na pozici registru. 
  Povely a ostatní zápisové funkce jdou mimo cache a jsou přímo 
transferovány přes síť k Slave automatu [D]. Odpověď na tyto povely je 
rovněž přenášena přímo. Z toho vyplývá požadavek na Master systém: musí 
umět čekat na odpověď delší dobu než na odpovědi z cache.
  Protože pamět pro cache v modemu [B] je limitovaná, je nutné předem vědět 
množství dat z jednoho Slave automatu a jejich počet. (Viz pomůcka výše). 
Je potřeba upozornit na fakt, že při startu modemu, at již z důvodu výpadku 
napájení nebo resetu software, dojde k inicializaci celé cache. Tím pádem 
se ztratí všechny údaje a musí se znovu aktualizovat z podřízených stanic 
Slave. Rovněž budou všechny stanice prohlášeny za mrtvé. Je to z důvodu 
potřeby jasně definovaných počátečních podmínek. S touto nevýhodou je 
potřeba počítat už při návrhu řešení.
  V režimu cache jsou k dispozici podpůrné prostředky pro ušetření režie na 
sběrnici. Jak bylo již zmíněno výše jedná se o fantomový přístup a 
virtuální stanici. Jsou rovněž k dispozici služby spojené s reálným časem a 
paketový režim.

1.2.1.1 Phantom Access
Zapnutím fantomového přístupu se lze pohybovat po prostoru cache bez 
použití adres Slave automatů, které za běžných podmínek nutné. Princip 
vychází z faktu, že data v cache jsou uspořádána za sebou postupně podle 
adres jednotlivých Slave. Pokud není některý Slave osazen, je na jeho místě 
v cache mezera s nulovým obsahem o velikosti, kterou by tento Slave 
obsadil. Zrušením pravidla, že do oblasti v cache vyhrazené pro určitého 
Slave lze přistupovat jen přes jeho adresu a zavedením lineárního adresního 
prostoru přes celou cache docílíme téměř požadovaného efektu. Ještě je 
potřeba odlišit běžné dotazy od dotazů na fantom. Toho můžeme docílit dvěma 
způsoby. Prvním zavedeme novou adresu v rámci sítě, na které bude fantom 
poslouchat. Je zřejmé, že tato adresa nesmí nikde jinde v síti existovat. 
Druhým způsobem je odlišit dotazy na fantom pomocí start adresy dotazu (viz 
popis rámců Modbus). Tento princip je trošku složitější, protože Master 
systém musí počítat ofsety v rámci cache od počáteční adresy fantomu. Při 
použití prvního principu počítání ofsetu odpadá, protože cache je pak 
situována od nulté adresy. Master systém při použití fantomového přístupu 
může číst data bez ohledu na to, kterému Slave náležejí. Jejich třídění je 
pak již jen záležitostí chytrosti programu v Master systému.
  Za největší přínos tohoto přístupu do cache je markantní úspora režie 
sběrnice. Také se tím také podstatně zvýší rychlosti odezev celého systému. 
V současné době je podporován pouze princip jedinečné adresy fantomu, 
ostatní je ještě ve vývoji.

1.2.1.2 Virtual station
Povolením této vlastnosti získá Master možnost mít neustalý přehled o nově 
příchozích zprávách ze sítě. Pochopitelně je tato možnost podporována pouze 
v režimu cache. Data virtualní stanice jsou vlastně bitové pole, jehož 
jednotlivé položky (bity) odpovídají vzdáleným stanicím. Tj. první bit 
odpovídá stanici číslo jedna, druhý bit číslu dvě, atd. Modem po příchodu 
paketu ze vzdálené stanice zjistí odesílatelovu adresu a v bitovém poli 
virtuální stanice nahodí příslušný bit do log. 1. Pokud Master vyčte 
cokoliv z cache z adresy stanice, která poslala data, je příslušný bit zase 
shozen zpět do log. 0. Například dorazily datové pakety ze stanic 5, 28 a 
49. Data z paketů se uložila do cache a byly nahozeny bity odpovídající 
číslům stanic (5, 28, 49). Master v jednom z přístích dotazů zjistí stav 
virtualní stanice a může modifikovat obvolávací seznam tak, že zařadí čísla 
stanic 5, 28 a 49 na začátek celého cyklu. Tudíž data z těchto stanic jsou 
vyčtena nejdříve, bez zbytečného čekaní až ně na dojde řada v obvolávacím 
cyklu. Modem následně odpovídající bity poshazuje a celý děj se může 
opakovat. 
  Virtuální stanice se pro Master systém jeví jako další člen sítě, tzn. má 
vlastní adresu v rámci Modbusu. Má rovněž specifickou strukturu dat (viz 
výše). 
  Je zřejmé, že tímto způsobem lze ušetřit spoustu času, po který by data 
čekala v cache, než by Master je vyčetl a zpracoval. Opět se to kladně 
projeví na rychlejších odezvách systému. 

1.2.2 Modem SLAVE v transparentním režimu

Transparentní režim u SLAVE modemu se příliš neliší od MASTER modemu. Data 
jsou podrobována stejné kontrole na CRC. Rovněž adresa vzdáleného Slave 
automatu je zjištována stejným mechanismem. Protože modem nemůže předvídat 
stavy jednotlivých vzdálených systému, jsou pakety propoušteny ze sítě bez 
ohledu na to, zda byly vyvolány Master systémem nebo ne.Master systém by 
měl být proti takovýmto případům, kdy se ze sítě vynoří nevyžadaný paket, 
odolný. Příčinou takovýchto stavů může být ztráta potvrzení a následné 
zdvojení paketů. Tato skutečnost by se v dobře vyladěné síti neměla 
vyskytovat. 


1.2.3 Modem SLAVE v paketovém režimu

Paketový přenos v režimu SLAVE je založen na stejném principu jako v 
případě MASTER. Rozdíl je v tom, že modem nyní neurčuje běh na sběrnici, 
ale musí vyčkávat až jej Master osloví. Takže příchozí paket ze sítě si 
uloží do fronty a nastaví mu dobu předepsanou života. Master je povinen 
modem volat s takovou frakvencí, aby zvládl přijmout všechny příchozí 
pakety, jinak modem začne pakety zahazovat. 
  Master vyčte N2Hdesc a zjištuje jeho stav. Pokud zjistí, že descriptor je 
nenulový, spočítá na kolikrát vyčte příchozí paket. Pak spustí vlastní 
mechanismus vyčtení paketu. Pokud je paket vyčten, potvrdí jeho korektní 
vyčtení zapisem nuly do descriptoru. Modem může nachystat další paket. 
Podobně postupuje Master, pokud potřebuje paket odeslat. Prvně přečte 
descriptor H2Ndesc a ujistí se, že nulový. Pak započne přesun paketu. Na 
závěr zapíše descriptor jako signál, že paket je celý a je nachystán k 
vyslání přes sít. Modem paket zpracuje a odešle do sítě. Poté smaže 
descriptor jako potvrzení pro Master, že je vše již hotovo. 


1.2.4 Modem SLAVE a časová synchronizace

V tomto režimu je modem opět schopen dvou variant provozu. Může fungovat 
jako zdroj reálného času, nebo může být synchronizován z Master systému. V 
prvním případě, kdy je modem zdrojem času, Master v nastaveném intervalu 
vyčítá informaci o času z určené oblasti paměti modemu. Opačně, pokud je 
modem synchronizován časem z Master systému, je tato oblast zapisována a 
data v ní obsažená jsou použita pro synchronizaci modemu. Stejně jako 
modemu MASTER stačí vyplnit jen údaje o GMT, letním čase a milisekundy. 
Pokud je zajištěno, že údaj bude zapsán právě na začátku nové sekundy, 
nemusí být milisekundy použity a mohou obsahovat nuly.
  Struktura časového údaje je shodná s případem modem MASTER.




2. Parametry protokolu Modbus


MODBUS parameters:
(m)ode:MASTER  (c)ache:OFF  (p)acket:ON  (t)rans:ON
(a)utomaster:OFF

(s)ervices

(C)ache params
(M)aster params
(S)lave params
(P)acket params
(A)utomaster params
(q)uit
>>

(m)ode:MASTER  (c)ache:OFF  (p)acket:ON  (t)rans:ON - volba režimů
(a)utomaster:OFF  - Slave může mít zapnutou funkci automaster, pak
                    přebírá funkci Master při přerušení komunikace na RS458

>>C
cache parameters:

(v)irtual:0000  (p)hantom:0000
(l)ower address:0000h
(h)igher address:0000h
(q)uit
>>

Parametry pro režim cash:
(v)irtual:0000  - adresa umístění paměťového bloku pro evidenci aktuálních 
                  hlášení od slave, 0000 = funkce vypnuta
(p)hantom:0000  - adresa umístění paměťového bloku pro jednorázové čtení 
                  obrazu všech slave, 0000 = funkce vypnuta
(l)ower address:0000h  - začátek přenášeného úseku paměti v PLC
(h)igher address:0000h - konec přenášeného úseku paměti v PLC


>>M
master parameters:

(d)estination:69000031h
m(i)rror:0s
d(e)vice type:PLC
slave addresses:  (0):4h  (1):5h  (2):0h  (3):0h
(a)ddress mask:Fh
(p)eriod:200ms
(t)imeout:3000ms
(q)uit
>>

Parametry pro stanici Master:
(d)estination:69000031h - adresa centrály v MORSE síti, pro režimy cash a 
                     transparentní, 00000000 = zprávy jsou posílány zpět
m(i)rror:60s       - po této době Master CU pravidelně podává zprávu sítí 
                     MORSE do Slave CU
d(e)vice type:PLC  - volba mezi připojenou technologickou jednotkou SEP a 
                     obecným PLC
slave addresses:  (0):4h  (1):5h  (2):0h  (3):0h
                   - seznam stanic Slave zahrnutých do obvolávacího cyklu
(a)ddress mask:Fh  - maskovaná část adresy MORSE se použije jako adresa
                     Modbus
(p)eriod:200ms     - perioda pro obvolávání stanis Slave 
(t)imeout:1000ms   - max. doba čekání na odpověď


>>S
slave parameters:

RS485 (a)ddress:0h
m(i)rror:0s
(r)epeat discard:0
d(e)vice type:PLC
(q)uit
>>

Parametry pro stanici Slave:
RS485 (a)ddress:0h - adresa stanice Slave v síti Modbus, 01 až FF
m(i)rror:120s      - do této doby čeká Slave CU hlášení od každé z 
                     Master CU, jinak ji vyřadí z obvolávacího seznamu
(r)epeat discard:0 - počet repeatů od master PLC, které se zahodí, než se 
                     jeden odešle do rádiové sítě
d(e)vice type:PLC  - volba mezi připojenou technologickou jednotkou SEP a 
                     obecným PLC


>>P
packet parameters:

(A)RT table No.:4
(N)2H buffer:1000  (H)2N buffer:2000

Warning! Both addresses should be nonzero.

(q)uit
>>

Parametry pro paketový režim:
(A)RT table No.:4 - volba Art tabulky pro převod adres MORSE na adr. Modbus
(N)2H buffer:1000 - Net to Host, to je MORSE Net do Modbusu  
(H)2N buffer:2000 - Host to Net, to je Modbus do MORSE Net
                  - adresy v paměti, na kterých začíná příslušný buffer pro 
ukládání dat posílaných Modbusem v paketovém režimu. Tyto adresy musí být 
zvoleny shodně u všech účastníků sítě Modbus. 
Pojem Net zde představuje navazující síť MORSE nebo také jedinou CU 
připojenou k RS485.


>>A
Modbus automaster:

t(i)meout:0s

master mode after switching:

  (c)ache:OFF  (p)acket:OFF  (t)rans:OFF
(q)uit
>>

Parametry pro režim Automaster:
t(i)meout:0s  - po této době klidu na RS485 převezme Slave ze zapnutým  
  parametrem (a)utomaster úlohu Mastera a pokračuje v režimu určeném třemi
  následujícími parametry.  
  Po obnovení aktivity původního Mastera se vrátí do úlohy Slave.


>>s
Modbus services:

(t)ime sync:ON  (m)ode:SENDER  (p)eriod:10s  time (a)ddress :3000h
time sync (b)it:0000h

(w)dog bit:0000h  wd(o)g address:0000h  wdog p(e)riod:0s

(d)ebug address:69000011h
(q)uit
>>

(t)ime sync:ON  - zapnutí funkce přenosu časového údaje mezi Masterem
                  a Slavem definovaným ve "slave addresses (0)"
(m)ode:SENDER   - Master nebo Slave může být zvolen jako SENDER (vysílá 
                  čas), druhý z nich jako RECEIVER (přijímá)  
(p)eriod:10s    - perioda předávání časového údaje se definuje 
                  pouze v Masterovi
time (a)ddress :3000h - adresa pro ukládání času, Master i Slave
time sync (b)it:0000h - speciální funkce (Toth)

(w)dog bit:0000h      - periodicky zapisované slovo do 
                        "slave addresses (0)"
wd(o)g address:0000h  - adresa zápisu do Holding Registers ve Slave (0)
wdog p(e)riod:0s      - perioda zápisu
                      - parametry pro watchdog se vkládají pouze do Mastera 

(d)ebug address:69000011h - adresa pro ladicí účely; všechny user pakety, 
    které přišly do CU se odesílají na tuto adresu, ke které je připojen 
    např. Setr nebo async.linka





3. Příklady a vysvětlivky


3.1 Typy paketů

Krátký popis typů paketů na uživatelském rozhraní.


  |U/1|B/1|R/1|subt/5|

U    - link security bit         - 1 znamená zabezpečený přenos
B    - broadcast (multicast) bit - 1 označuje broadcastový paket 
R    - rezerva 
subt - subtype - nabývá těchto základních hodnot: 

       subt=0x09 - USER DATA - uživatelská data

Základní typ paketu pro přenos dat od zdroje (source) do cíle destination). 
V kombinaci s nastaveným bitem U=1 vznikne nejčastější typ paketu 0x89, to 
je zabezpečený uživatelský paket.

       subt=0x0A - PROT DATA 

Tento typ dat je určen pro řízení toku dat v uživatelském protokolu. 
Zpracování obou uvedených typů paketů v síti MORSE je stejné. Pakety jsou 
odesílány na adresu destination podle routingu a priorit nastavených na 
zúčastněných adresách.V případě ztráty paketu je chybové hlášení doručeno k 
původnímu odesílateli. Paket, který nese toto chybové hlášení, se však také 
může ztratit, tentokrát již bez další zprávy.

       subt=0x0C - PACK ERROR REPORT - paket s chybovou zprávou

Zpráva o chybách v sítí MORSE. První word je Error Number (číslo chyby), 
další část zprávy obsahuje podrobnější informace o chybě v síti. Generování 
těchto zpráv je možno zapnout nebo vypnout pro celou síť.

  Dále jsou uvedena některá čísla chyb:
1 - PACKET_NOT_CONFIRMED - paket není potvrzen
2 - STORE_TIMEOUT        - vyčerpán store timeout
3 - NO_CHANNEL_ASSIGNED  - není přiřazen kanál
4 - ACCESS_TIMEOUT_ERROR - vyčerpán access timeout
6 - WRONG_PACKET_FORMAT  - špatný formát paketu
7 - DEST_PROT_MISSING    - chybí protokol na adrese destination
8 - WRONG_PATH           - špatná cesta
9 - WIRE_LINK_FAIL       - chyba na drátové lince

        subt=0x10 - SERVICE REQUEST - servisní požadavek

Požadavek o službu MORSE.

        subt=0x12 - SERVICE REPORT - servisní zpráva

Zpráva služby MORSE.




3.2 Příklad čtení dat v režimu cache.

MASTER PLC vysílá dotazy do připojené CU MR25 a dostává odpovědi s daty 
(levý sloupek). CU poskytuje údaje ze své paměti cache (pravý sloupek).

     [A]                                        [B]
  MASTER PLC           interpreter     CU (MR25)
                                cache          cache
01 02 00 08 00 08 CRC -->                     79h
01 02 01 01 CRC                   |   +-- 78h 2.word
01 03 02 56 78 CRC                 +------ 01h
01 01 01 0F CRC       >O.K.
>>
15:28:10.018|                 |69000014 69000021|S00I    IN    409 6serv 
AAAA AAAA                      = protokol Modbus Master dostal data 
                                 k odeslání pro Slave 4
15:28:10.784 tx      8 | S00
0403 2000 0001 8F9F            = Slave 4, máš volný buffer H2N ?
15:28:10.788 rx;i    7 | S00
0403 0200 0074 44              = ano
15:28:10.789 tx     21 | S00
0410 2000 0006 0C30 0A09 0669 0000 14AA AAAA AA4C A0  = zapiš si zprávu
15:28:10.794 rx;i    8 | S00
0410 2000 0006 4B9E            = zapsal jsem
15:28:11.785 tx      8 | S00
0503 1000 0001 814E            = Slave 5, máš pro mne data ? 
                                                   ... pokračuje obvolávání 
15:28:11.788 rx;i    7 | S00
0503 0200 0049 84              = nemám
15:28:12.786 tx      8 | S00
0403 1000 0001 809F            = 4, máš ?
15:28:12.790 rx;i    7 | S00  
0403 0200 0074 44              = nemám

Příklady formátu paketů viz článek Odesláni krátkého user paketu z Mastera 
do Modbusu.



3.5 Odesláni krátkého user paketu z Mastera do Modbusu.

Zpráva AAAAAAAA je odesílána z Morse adresy 69000011 na adresu 69000014.
V síti Modbus je jediný Slave s adresou 04.

17:51:31.528 tx      8 | S00
0403 1000 0001 809F             = paket 1    
17:51:31.532 rx;i    7 | S00
0403 0200 0074 44               = paket 2
17:51:32.529 tx      8 | S00
0403 1000 0001 809F
17:51:32.533 rx;i    7 | S00
0403 0200 0074 44O.K.
>>
17:51:32.640|                 |69000014 69000011|S00I    IN    409 0serv 
AAAA AAAA
17:51:33.530 tx      8 | S00
0403 2000 0001 8F9F
17:51:33.533 rx;i    7 | S00
0403 0200 0074 44
17:51:33.534 tx     21 | S00
0410 2000 0006 0C30 0A09 8069 0000 14AA AAAA AA06 C6   = paket 3
17:51:33.540 rx;i    8 | S00
0410 2000 0006 4B9E             = paket 4
17:51:34.531 tx      8 | S00
0403 1000 0001 809F
17:51:34.534 rx;i    7 | S00
0403 0200 0074 44


paket 1 - čtení registru   

| 04 | 03  |   1000     |    0001       | 809F |
| adr| fce | start adr  | počet čtených | CRC  |
             v registru   wordů

paket 2 - odpověď na čtení

| 04 | 03  |  02     |  00 00  | 7444 |
| adr| fce | počet   | obsah   | CRC  |
             čtených   čtených
             bajtů     bajtů

paket 3 - zápis do registru ve Slave 04

| 04 | 10 | 2000  | 0006  | 0C    | 300A  | 098069000014 | AAAAAAAA | 06C6|
| adr| fce| start | počet | počet |H2Ndesc|  hlavička    |   data   | CRC |
          | adresa| zapis.| zapis.|       |   user pseudorámec      |
          | v reg.| wordů | bajtů |  obsah zapisovaného bufferu     |


H2Ndesc - descriptor bufferu Host to Net

300A = 0011 0000 0000 1010
0  - user pseudorámec
0  - repeat bit
11 - číslo paketu
0  - rezerva
000 0000 1010 - velikost user pseudorámce (10 bajtů)


hlavička user pseudorámce

098069000014 = 09hex 1000 0000 69000014hex
09hex - typ paketu
1 - bit DTE > adresa je destination
0000  - rezerva
000   - síťové číslo
69000014hex - adresa, zde destination


paket 4 - odpověď na zápis

| 04 | 10 | 2000  |  0006    | 4B9E |
| adr| fce| start | počet    | CRC  |
          | adresa| zapsaných|
          | v reg.| wordů    |





3.6 Odeslání krátkého user paketu ze Slave do Modbusu.

Zpráva BBBBBBBB je odesílána z Morse adresy 69000014 na adresu 69000004.
V síti Modbus je jediný Slave s adresou 04.

18:07:33.650 rx;i    8 | S00
0403 1000 0001 809F
18:07:33.651 tx      7 | S00
0403 0200 0074 44
18:07:34.651 rx;i    8 | S00
0403 1000 0001 809F
18:07:34.652 tx      7 | S00
0403 0200 0074 44s

>>O.K.
>>
18:07:35.652 rx;i    8 | S00
0403 1000 0001 809F
18:07:35.653 tx      7 | S00
0403 0200 0074 44
18:07:35.739|                 |69000004 69000014|S01I   OUT    489 0serv 
BBBB BBBB
18:07:35.740|                 |69000004 69000014|S00I    IN    489 7serv 
BBBB BBBB
18:07:36.653 rx;i    8 | S00
0403 1000 0001 809F             = máš data v N2Hbuf ?
18:07:36.654 tx      7 | S00
0403 0220 0AED 83               = ano, mám 10 bajtů
18:07:36.657 rx;i    8 | S00
0403 1000 0006 C15D             = pošli 2+10=12 bajtů (včetně N2Hdesc)
18:07:36.658 tx     17 | S00
0403 0C20 0A09 8769 0000 04BB BBBB BB30 0D   = posílám 12 bajtů
18:07:36.665 rx;i   11 | S00
0410 1000 0001 0200 0088 C1     = smaž N2Hdesc
18:07:36.667 tx      8 | S00
0410 1000 0001 055C             = smazáno
18:07:37.654 rx;i    8 | S00
0403 1000 0001 809F             = máš data v N2Hbuf ?
18:07:37.655 tx      7 | S00
0403 0200 0074 44               = nemám
18:07:38.655 rx;i    8 | S00
0403 1000 0001 809F
18:07:38.656 tx      7 | S00
0403 0200 0074 44




3.7 Odeslání dlouhého user paketu z Mastera do Modbusu.

Zpráva dlouhá 404 bajtů je odesílána z Morse adresy 69000011 na adresu 
69000014.
V síti Modbus je jediný Slave s adresou 04.


17:50:19.456 tx      8 | S00
0403 1000 0001 809F
17:50:19.459 rx;i    7 | S00
0403 0200 0074 44s
17:50:20.457 tx      8 | S00
0403 1000 0001 809F
17:50:20.460 rx;i    7 | S00
0403 0200 0074 44

>>
17:50:20.834|                 |69000014 69000011|S00I    IN  40409 0serv 
AAAA AAAA CFAC F1C2 1471 E0B5 EB8D 420F 0A6C 3CAB 5EC2 D591 6F5C 8501 7478 
BF1A 2973 3B6F BC35 529F 3F99 9AD6 D4C8 73B7 0C3C 6020 F9F0 4FD2 D0DC 44D5 
C0CE 8039 F652 877E 2F0C 4FC9 05E3 9DBA 18CB A06F 2708 EC21 714E AC63 ADFB 
1FDC FA68 9F24 0701 8601 7EA5 C236 0A7B 7CAF 823B B99E 85AA D9EE 16AF 0C1A 
8445 E443 3D47 F320 A6BC 3916 0433 2E9D 914A BCC5 4A7A 586A 3FBD 7084 D6A6 
F38E CA05 C9FB 2C2E 3336 E57E E89D 4BA8 3575 2EFD C4C9 49AB 2DBB 099C 34A3 
6885 BB17 9E46 62B1 20A2 662D 4801 1235 43B7 02F5 78FE CD4C 26B1 7238 E462 
D8CB 7E61 FECB 78D2 89D5 5AE4 528A 77C1 593C 6DD3 BF14 B579 D09D 8730 5648 
CDEA 2D3A F50B 0E82 DA36 5495 31F7 EE96 F2F8 76D2 0E30 FD88 8B58 7ACA 3F89 
7211 70D0 0FEE 0418 5DD3 FBBB 01E2 43A0 D057 BCA2 29D5 5BC1 2DCA B246 19A2 
82E1 357C D46D 5CA8 6DD9 F414 7F6D EA6A A460 9D94 0C79 26E5 B038 0B10 A2AF 
8CB5 131A 582D 0CDD DCE6 AF62 DC5C 2017 709B 0F7A 7BD4 FEF9 0861 B808 0C51 
45BC 3551 70D7 498E EAFB 37E7 3086 9583 6143 F0A5 16F3 805F 455D 3E67 A265 
D444 A55A E685 0B7B A0C4 AC63 E2ABO.K.
>>                          = odesílaná data vstupují do S00, kde je Modbus
17:50:21.458 tx      8 | S00
0403 2000 0001 8F9F         = máš volný H2Nbuf ?  
17:50:21.461 rx;i    7 | S00
0403 0200 0074 44           = mám
17:50:21.464 tx    255 | S00
0410 2053 007B F633 36E5 7EE8 9D4B A835 752E FDC4 C949 AB2D BB09 9C34 A368 
85BB 179E 4662 B120 A266 2D48 0112 3543 B702 F578 FECD 4C26 B172 38E4 62D8 
CB7E 61FE CB78 D289 D55A E452 8A77 C159 3C6D D3BF 14B5 79D0 9D87 3056 48CD 
EA2D 3AF5 0B0E 82DA 3654 9531 F7EE 96F2 F876 D20E 30FD 888B 587A CA3F 8972 
1170 D00F EE04 185D D3FB BB01 E243 A0D0 57BC A229 D55B C12D CAB2 4619 A282 
E135 7CD4 6D5C A86D D9F4 147F 6DEA 6AA4 609D 940C 7926 E5B0 380B 10A2 AF8C 
B513 1A58 2D0C DDDC E6AF 62DC 5C20 1770 9B0F 7A7B D4FE F908 61B8 080C 5145 
BC35 5170 D749 8EEA FB37 E730 8695 8361 43F0 A516 F380 5F45 5D3E 67A2 65D4 
44A5 5AE6 850B 7BA0 C4AC 63E2 ABA5 7A
                            = zapiš do H2Nbuf poslední díl dat
17:50:21.492 rx;i    8 | S00
0410 2053 007B 7BAE         = zapsal jsem
17:50:21.494 tx    175 | S00
0410 2000 0053 A611 9A09 8069 0000 14AA AAAA AACF ACF1 C214 71E0 B5EB 8D42 
0F0A 6C3C AB5E C2D5 916F 5C85 0174 78BF 1A29 733B 6FBC 3552 9F3F 999A D6D4 
C873 B70C 3C60 20F9 F04F D2D0 DC44 D5C0 CE80 39F6 5287 7E2F 0C4F C905 E39D 
BA18 CBA0 6F27 08EC 2171 4EAC 63AD FB1F DCFA 689F 2407 0186 017E A5C2 360A 
7B7C AF82 3BB9 9E85 AAD9 EE16 AF0C 1A84 45E4 433D 47F3 20A6 BC39 1604 332E 
9D91 4ABC C54A 7A58 6A3F BD70 84D6 A6F3 8ECA 05C9 FB2C 2EAD 9A
                             = zapiš další díl dat od konce (zde začátek 
                               dat včetně hlavičky user pseudorámce) 
17:50:21.514 rx;i    8 | S00
0410 2000 0053 8BA1          = zapsal jsem
17:50:22.459 tx      8 | S00
0403 1000 0001 809F
17:50:22.462 rx;i    7 | S00
0403 0200 0074 44



3.8 Odeslání dlouhého user paketu ze Slave do Modbusu.

Zpráva je odesílána z Morse adresy 69000014 na adresu 69000004.
V síti Modbus je jediný Slave s adresou 04.


18:17:30.241 rx;i    8 | S00
0403 1000 0001 809F
18:17:30.242 tx      7 | S00
0403 0200 0074 44s
18:17:31.243 rx;i    8 | S00
0403 1000 0001 809F
18:17:31.243 tx      7 | S00
0403 0200 0074 44

18:17:32.097|                 |69000004 69000014|S00I    IN  40489 2serv 
AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA ABBB BBBB BBBB 
BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB 
BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB 
BBBB BCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC 
CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC 
CCCC CCCC CCCC CCDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 
DDEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE 
EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE 
EEEE EEEE EEEE EEEE EEEE EEEE EEEE FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 
FFFF FFFF FFFF FFFF FFFF FFFF FFFF
                                = data vstupují do portu S00, kde je Modbus
18:17:32.243 rx;i    8 | S00
0403 1000 0001 809F             = máš v N2Hbuf data pro Mastera ?   
18:17:32.244 tx      7 | S00
0403 0211 9AF8 7F               = ano, mám 0x19A bajtů
18:17:32.248 rx;i    8 | S00
0403 1051 007D D0AF             = pošli 0x7D bajtů
18:17:32.250 tx    255 | S00
0403 FACC CCCC DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD 
EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE 
EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE 
EEEE EEEE EEEE EEEE EEEE EEEE EEFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 
FFFF FFFF FFFF FFFF FFFF FFFF FFE6 63
                                = odeslána první část dat (od konce)
18:17:32.278 rx;i    8 | S00
0403 1000 0051 80A3             = pošli 0x51 bajtů
18:17:32.280 tx    167 | S00
0403 A211 9A09 8269 0000 04AA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA 
AAAA AAAA AAAB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB 
BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB 
BBBB BBBB BBBB BBBB BBBB BBBB BBBC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC 
CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC 
CCCC CCCC CCCC CCCC CCCC CCCC CCCC CC59 3D
                                = odeslána další část dat
18:17:32.303 rx;i   11 | S00
0410 1000 0001 0200 0088 C1     = smaž N2Hdesc
18:17:32.305 tx      8 | S00
0410 1000 0001 055C             = N2Hdesc smazán
18:17:33.245 rx;i    8 | S00
0403 1000 0001 809F
18:17:33.245 tx      7 | S00
0403 0200 0074 44
18:17:34.245 rx;i    8 | S00
0403 1000 0001 809F
18:17:34.246 tx      7 | S00
0403 0200 0074 44


3.9 Automaster vysílá hermanův paket.

Slave přepnutý do režimu automaster vysílá imitovaný "hermanův" paket 
generovaný z MORSE main menu povelem  mth. V síti je jediný další Slave s 
adresou 04. 


0403 1000 0001 809F
06:52:00.388 rx;i    7 | S00
0403 0200 0074 44h
06:52:01.373 tx      8 | S00
0403 1000 0001 809F
06:52:01.389 rx;i    7 | S00
0403 0200 0074 44

Send type :09
69000005h>
06:52:01.784|                 |69000005 69000025|S00I    IN  25589 6serv 
0410 2092 007B F600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0022 93
                                = paket vstupuje do SCC0 kde je Modbus
06:52:02.374 tx    255 | S00
0410 2092 007B F600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0022 93
                                = zapiš do paměti Slave 0xF6 bajtů dat
06:52:02.527 rx;i    8 | S00
0410 2092 007B 2A52             = zapsáno
06:52:02.528|                 |69000025 69000005|S00I   OUT    8 89 0serv 
0410 2092 007B 2A52             = potvrzení o předání paketu je odesláno na 
                                  src adresu 69000025 
06:52:03.375 tx      8 | S00
0403 1000 0001 809F
06:52:03.390 rx;i    7 | S00
0403 0200 0074 44


3.10 Automaster vysílá Hermanův broadcast.

Slave přepnutý do režimu Automaster vysílá imitovaný "Hermanův" broadcast 
paket generovaný z MORSE main menu povelem  mtH. Paket se šíří sítí MORSE 
jako broadcast, v Modbusu již jako adresný paket. Po potvrzení v Modbusu 
není generováno zpětné hlášení do sítě MORSE.V příkladu je jediný další 
Slave s adresou 04. 


07:05:53.204 tx      8 | S00
0403 1000 0001 809F
07:05:53.220 rx;i    7 | S00
0403 0200 0074 44H
07:05:54.205 tx      8 | S00
0403 1000 0001 809F
07:05:54.221 rx;i    7 | S00
0403 0200 0074 44

Send type :49
69000005h>
07:05:55.206 tx      8 | S00
0403 1000 0001 809F
07:05:55.214|               |F31E4335 69000025|S00I    IN  25589 1serv brc
0410 2092 007B F600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0022 93
                               = brc paket vložen do SCC0
07:05:55.222 rx;i    7 | S00
0403 0200 0074 44
07:05:56.207 tx    255 | S00
0410 2092 007B F600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0022 93
                               = zapiš do paměti Slave, 
                                 paket je vyslán do sítě Modbus 
07:05:56.361 rx;i    8 | S00
0410 2092 007B 2A52            = zapsáno
                               = není generováno potvrzovací hlášení pro
                                 src adresu 69000025
07:05:57.208 tx      8 | S00
0403 1000 0001 809F
07:05:57.224 rx;i    7 | S00
0403 0200 0074 44

©  2024 RACOM s.r.o. All Rights Reserved.