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