MODBUS 657

https//www.racom.eu/cz/support/protocols_docum/bc261__modbus.html
1. ÚVOD

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). Master 
cyklicky obvolává jednotlivé Slave a čte z nich data. Do toho Master podle potřeby 
vkládá povely pro Slave. Každý povel od Mastera je povinně potvrzen nebo obsahuje 
odpověď s daty odpovídajícími funkci rámce. Master nemá svoji vlastní adresu. 

           Síť Modbus se sběrnicí RS485:

    master PLC  slave 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:

   master  Radioslave   Radiomaster   slave 
     PLC         CU             CU            PLC
    ______       \|/........... \|/
   |      |RS232 _|_     :      _|_           ___   slave
   | PLC  |-----|   |    :     |   |  RS485  |   |  addresses:
   |______|     |___|    :     |___|-----+---|___|   (0):01
       (m)ode:Radioslave :(m):Radiomaster|    ___  
       (f)irst: 691122FF :   69112201    |   |   |
     Modbus (a)ddress:FF :               +---|___|   (1):02
                         :
                         :..... \|/
                         :      _|_           ___
                         :     |   |  RS485  |   |   (0):03
                         :     |___|----+----|___|
                         :   69112203   |     ___  
                         :              |    |   |
                         :              +----|___|   (1):04 
                         :..... \|/
                                _|_           ___
                               |   |  RS232  |   |
                               |___|---------|___|   (0):05
                             69112205
                
        period        net (t)x TO     (p)eriod
                      mirror          (t)imeout

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. Radioslave (RS) a Radiomaster (RM) jsou CU s 
protokolem Modbus.

Radioslave má adresu Modbus shodnou s dolním byte svojí MORSE adresy. Dolní byte 
adresy CU Radiomaster je shodný s jednou z adres připojených slave PLC, pro 
směrování ostatních PLC se použije funkce "multiaddressing" v menu (N)odes (e)dit. 
Znaky v závorkách jako (p)eriod se označují parametry protokolu, uveden je také 
příklad adres. 



Protokol MODBUS pro MORSE může pracovat ve třech režimech 
- transparent, cache a packet:

   Transparentní režim.
Všechny pakety, které přijdou z připojeného Master PLC do CU Radioslave jsou ihned 
vysílány sítí MORSE k příslušné vzdálené CU Radiomaster a předány do Slave PLC. 
Paket musí obsahovat v prvním byte adresu Slave, ve druhém číslo funkce Modbus, pak 
data a nakonec kontrolní součet. Paket projde protokolem i sítí MORSE beze změny. 
Zpráva od Slave PLC je akceptována pouze jako odpověď na dotaz a je odeslána na 
adresu tazatele. Režim je vhodný jen pro malé sítě s delším intervalem dotazů 
Master - Slave.

   Cache režim.
CU Radiomaster dotazuje připojené PLC Slave v krátkém intervalu "(p)eriod" a 
získaná data ukládá do své paměti cache. Teprve když dojde ke změně dat v této 
paměti, je odeslán paket sítí MORSE do CU Radioslave. Ta udržuje ve své paměti data 
od všech PLC Slave připojených přes MORSE síť. Na dotaz, který je prováděn s 
krátkou periodou, pak předá data do PLC Master. Přenos povelů od Mastera do Slave, 
který je méně častý, probíhá v transparentním režimu.
 Režim cache přenáší sítí MORSE pouze změny dat (+ refresh v delším časovém 
intervalu), proto je vhodný pro větší sítě. Slave může vysílat pouze jako odpověď 
na přijatý povel, přímá vzájemná komunikace Slave - Slave není možná.

   Packet režim.
V paketovém režimu je zachována periodická komunikace master  slave na drátových 
linkách RS485 nebo RS232, to je Master PLC  Radioslave, Radiomaster  Slave 
PLC. Při této komunikaci je přenášen pouze krátký descriptor a teprve při nové 
informaci se přenáší celý datový buffer. Na základě informací z datového bufferu 
pak CU vygeneruje paket MORSE, který je odeslán sítí MORSE k cílové CU. 
 Takto se stírá rozdíl master - slave. PLC Slave může odeslat zprávu bez výzvy a to 
i pro jiného PLC Slave.

   Režimy Transparent a Cache nebo také Transparent a Packet mohou pracovat 
současně. Režim Transparent bývá v těchto případech využíván pro servisní zásahy do 
PLC. Všechny režimy vyžadují, aby Master dovedl počkat na odezvu povelu od Slave 
delší čas (sekundy). 



2. Formát dat

Přehled funkcí Modbusu pro čtení a zápis z různých částí paměti PLC.
Podrobnější popis v článku "Formát rámce MODBUS pro MORSE".
            
function/8      jednotka      PLC 
    (hex)       number/16         
                                 
     čtení             |           |
                          |   Bin     | 
        02     1bit    |   Bin     |-> fyzický výstup
        0F   -->   bits   |   OUT     |->
                          |___________|->
                          |  Analog   |
        04     1word   |           |
        03      words  | Registers |
        17     words  |           |
                          |___________|         

Přehled formátů funkcí Modbus (č.funkce, směr přenosu informace, název funkce, 
velikost jednotky num je 1 nebo 16 bit):

Master-Slave        DOTAZ od Mastera       | ODPOVĚĎ od Slave
                                       |
01   B_out
|adr/8| fce/8| start/16| 0xFF00| crc/16| =set 1 bit ON     
                                           |adr/8| fce/8| start/16| 0xFF00 |crc/16|
|adr/8| fce/8| start/16| 0x0000| crc/16| =set 1 bit OFF    
                                           |adr/8| fce/8| start/16| 0x0000 |crc/16|

06 -->  H_Reg 
|adr/8| fce/8| start/16| data/16| crc/16| =write 1 word     
                                           |adr/8| fce/8| start/16| data/16|crc/16| 

0F -->  B_out            01
|adr/8| fce/8| start/16| num/16| cnt/8| data/8*cnt| crc/16|  
                                           |adr/8| fce/8| start/16| num/16 |crc/16|

10 -->  H_Reg            16          
|adr/8| fce/8| start/16| num/16| cnt/8| data/16*num|crc/16|  
                                           |adr/8| fce/8| start/16| num/16 |crc/16|

17 H_Reg        16              16
|a/8 | f/8| rst/16| rno/16| wst/16| wno/16| wcnt/8| wdata/8*cnt |crc/16| 
                                           |adr/8| fce/8|cnt/8| data/cnt*8 |crc/16|

odpověď na chybný povel                            Err
                                           |adr/8| 0x80+fce /8| excode/8| crc/16|


adr,a  - adresa automatu na sběrnici Modbus
fce,f  - funkce, kterou automat vykoná po přijetí rámce
start  - počáteční adresa dat (výstupu), která budou zpracována
num    - počet wordů(f03,04,10,17) nebo bitů(f01,02,0F) pro čtení nebo zápis
cnt    - počet byte nutných pro přenos požadovaných dat
data   - stavy čtených nebo zapisovaných registrů
crc    - zabezpečovací slovo
rst    - počátek čteného úseku
rno    - délka čteného úseku
wst    - počátek zapisovaného úseku
wno    - délka zapisovaného úseku
wcnt   - počet byte nutných pro přenos zapisovaných dat
wdata  - zapisovaná data
excode - číslo výjimky, specifikuje chybu
         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


Příklad komunikace:
15:28:06.780 tx      8 | S00
0403 1000 0001 809F
15:28:06.784 rx;i    7 | S00
0403 0200 0074 44

04   - dotazovaná adres
03   - čtení z Holding registru
1000 - od adresy 1000
0001 - číst 1 word
809F - crc
04   - odpovídající adresa
03   - čtení z Holding registru
02   - přečteny 2 byte
0000 - obsah čtených byte
7444 - crc


3. Implementace v MORSE

Režim modemu se nastavuje v menu SPe0t:

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

(M)aster (S)lave
(A)utomaster
(C)ache
(P)acket
(T)rans

(s)ervices    (O)ld menu (sw ver =< 5.74)
(q)uit
>>


Modem jako RADIOSLAVE:

slave parameters:
Modbus (a)ddress:FFh
(r)epeat discard:0
d(e)vice type:PLC
(q)uit
>>

Radioslave vystupuje v síti MORSE pod adresou, která má poslední byte shodný s 
položkou "Modbus (a)ddress:", například 691122FF.
Komunikace na lince s PLC Master je řízena z Mastera. V případě, že PLC Master 
nedovede čekat na odpověď od Slave přes MORSE síť a vysílá stále opakované povely, 
je možno parametrem "(r)epeat discard:" nastavit počet opakovaných dotazů, které 
budou zahozeny, než bude Radislave reagovat na další z nich. Toto je opatření proti 
zahlcení rádiové sítě.


Modem jako RADIOMASTER:

master parameters:
(f)irst:691122FFh  (s)econd:00000000h  destination
d(e)vice type:PLC
Modbus slave addr: (0):3h (1):4h (2):0h (3):0h
(a)ddress mask:FFh
(p)eriod:20*10 ms
(t)imeout:10*100 ms
(q)uit
>>

Radiomaster vystupuje v síti MORSE pod adresou, jejíž poslední byte je shodný s 
jednou z "Modbus slave addr:", například 69112203. Zprávy pro další z nich přijímá 
pomocí funkce Multiaddressing (v menu Ne). Adresa příslušného Radioslave je uvedena 
v položce "(f)irst:". Pokud je v položce "(s)econd:" zapsána nenulová adresa, jsou 
na ni odesílány kopie zpráv od Slave, ne však hlášení vysílaná s periodou "mirror".

Komunikace na lince RS485 (nebo na RS232 pro jediného Slave) probíhá s periodou 
"(p)eriod:" (zde 200 ms), na odpověď se čeká max. po dobu "(t)imeout:". Převod 
adres MORSE  Modbus se provádí pomocí masky "(a)ddress mask:", která má nejvíce 
8 bitů.


3.1 TRANSPARENTNÍ REŽIM

transparent parameters:
CRC (a)uto:OFF
check (f)unction:ON
check a(d)dress:ON
check (C)RC:ON
(q)uit
>>

V transparentním režimu jsou sítí přenášena všechna data z Mastera do Slave. 
Používá se pro přenos výkonných povelů od Mastera v režimu Cache. Pro obousměrný 
přenos je transparentní režim vhodný pouze pro velmi malé sítě s pomalým cyklem 
obvolávání. Pro zamezení přenosu rušivých paketů používáme v RM kontroly:
check (f)unction:ON - funkce musí být jedou z řady 1,2,3,4,5,6,F,10,17,1E
check a(d)dress:ON  - adresa musí být jednou z adres v menu SPe0tM0,1,2,3,
                      tedy jednou z adres připojených Slave PLC
check (C)RC:ON      - správnost crc pro směr MORSE -> Modbus

V CU Radioslave používáme kontroly (f)untion a (C)RC. Kontrola adresy se nepoužívá. 
Je ji možno použít jen v případě, že stanic Slave není víc než 4. Pak tyto adresy 
můžeme zapsat v Radioslave do menu SPe0tM0,1,2,3 a funkce "check a(d)dress:" je 
použije pro kontrolu adres.

Funkce "CRC (a)uto:" použitá v CU Radiomaster doplní crc k paketům procházejícím z 
MORSE do Modbusu. Používá se jen pro testovací účely.

Radiomaster po odeslání paketu do Slave očekává max. po dobu SPe0tMt (=timeout) 
odpověď od Slave, kterou pak pošle sítí MORSE do Radioslave.


3.2 PAKETOVÝ REŽIM

V paketovém režimu jsou v každém PLC i v modemech vytvořeny dva paměťové buffery 
pro přenos dat Slave->Radiomaster (host to net, H2N) a opačně (net to host, N2H). 
Délka bufferů je min. 250 byte (max. délka rámce Modbusu), max. 1600 byte (max. 
délka paketu MORSE).

Radiomaster se periodicky ptá každého Slave na obsah prvního wordu bufferu H2N 
zvaného deskriptor. Pokud je nenulový, je z něj zjištěna délka pseudorámce 
připraveného v H2N a ten je v další komunikaci přenesen do Radiomastera. Pak je 
deskriptor smazán, což indikuje pro Slave možnost přenosu dalšího rámce.

Přenos z Radiomastera(RM) do Slave probíhá tak, že RM přečte deskriptor N2Hdesc v 
PLC Slave a je-li nulový, zapíše do N2H svůj pseudorámec. Slave po jeho zpracování 
zapíše do N2Hdesc nulový word na znamení, že buffer N2H je opět k dispozici.

Pseudorámce H2Nfr a N2Hfr mají hlavičku délky 6 byte, data a crc. Hlavička obsahuje 
potřebné údaje pro vytvoření MORSE paketu a jeho odeslání do Radioslave nebo jiného 
Radiomastera.
Struktura bufferů:

H2N:
| H2Ndesc/16 | H2Nfr/modbusMRU |

N2H:
| N2Hdesc/16 | N2Hfr/modbusMTU |

popis položek:

H2Ndesc -
znamená "host to net descriptor", a obsahuje potřebné informace pro přesun paketu 
přes Modbus. Shodný formát má i N2Hdesc (net to host descriptor):

H2Ndesc:   |ret/1|rep/1|No/2|res/1|rxsize/11|
N2Hdesc:   |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    - rezerva, musí být nula
rxsize,txsize - velikost  pseudorámce včetne adresy a typu v bajtech 

H2Nfr  - user pseudorámec 
N2Hfr  - user pseudorámec 
modbusMRU - Maximum Receive Unit
modbusMTU - Maximum Transmit Unit

Adresy jednotlivých bloků paměti (H2N, N2H), jsou v modemu volně konfigurovatelné 
podle potřeb připojeného zařízení. Pseudorámec obsahuje vlastní paket, určený pro 
transfer do/ze sítě. Uvnitř pseudorámce je ukryta hlavička obsahující síťové 
informace. Hlavička je v bufferu umístěna na následující pozici za descriptorem. 
Struktura hlavičky a dat:

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

Radiomaster, který obsluhuje několik (max.4) Slave, používá Multiaddressing. Tím je 
stanoveno, že pakety ze sítě MORSE, určené pro některého z jeho Slave, jsou 
Radiomasterem akceptovány a z jeho user portu odcházejí do SCC s Modbusem.

Modbus adresy Slave jsou vytvořeny z MORSE adres maskováním, použije se poslední 
byte adresy. V parametrech zapíšeme masku FF do položky "SPe0tMa".

Paketový režim dovoluje také překlad adres mezi MORSE a Modbusem pomocí Art tabulky 
určené parametrem "SPe0tPA". Art tabulka musí obsahovat adresy všech Slave 
připojených k Radiomasterovi. Například RM 69112205 má připojeny Slave 01 a 02: 
dest:    gw:
69112205 00000001
69112206 00000002
Převod tabulkou Art zapneme v Radiomasterovi parametrem "SPe0tA1". 
Multiaddressing zapneme: "Ne1MLn", "Ne1l1", "Tl1p6 n5".



3.3 CACHE REŽIM

Režim CACHE [keš, kešovací] se používá pro sběr dat z většího počtu PLC Slave. 
Doplňuje se Transparentním režimem pro přenos (méně častých) povelů ve směru  
Master -> Slave.
V režimu cachejsou podobně jako v paketovém vytvořeny v PLC a v modemech shodné 
paměťové prostory - cache. Přenos dat Slave -> RM probíhá na linkovém vedení s 
krátkou periodou "SPe0tMp" volenou v oblasti 50 až 100ms. Tím se udržuje v RM 
aktuální obraz stavu připojených Slave. Pokud v tomto obrazu nejsou změny, je 
odesílán rádiem do RS v intervalech "SPe0tCt". Nastane-li v cache RM změna, je 
zpráva pro RS odeslána okamžitě. Takto se v cache RS udržují aktuální obrazy cache 
všech připojených Slave s minimálním zatížením rádiové sítě. PLC Master pak čte 
tuto cache v RS stejně, jako by četl stavy všech Slave přes síť Modbus.

Při sledování stavu cache pamětí je přenášen po lince celý obsah cache (v paketovém 
režimu se přenáší jen deskriptor). Obvolávání je řízeno Radiomasterem nebo PLC 
Masterem (stejně jako v paketovém režimu). Přenos informací probíhá jen směrem 
Slave -> Master (v paketovém režimu oběma směry i mezi Slave navzájem).

Paměťové bloky pro funkci cache definujeme shodně v RS a RM pomocí tabulky Art 
"SPe0tCc". Definovat lze max. 4 cache. Položky dest a gw obsahují pořadové číslo 
cache, číslo funkce Modbus, horní a dolní okraj paměťového bloku. Příklad:
>>
ART No 1: 
items: 2
default gw: 00000000 (0.0.0.0        )
dest:    gw:
00000003 00150010 (0.0.0.3         0.21.0.16      )
00010004 00210020 (0.1.0.4         0.33.0.32      )
>>
cache číslo 0000 pro funkci 0003 od adresy 0010 do adresy 0015 (5 wordů),
cache číslo 0001 pro funkci 0004 od adresy 0020 do adresy 0021 (1 word).

Radiomaster vysílá pravidelná hlášení pro RS v intervalu Net timeout "SPe0tCt", 
kromě toho vysílá také aktuální zprávy o změnách. Radioslave sleduje, jestli se 
každý RM ozval alespoň jednou za čas "SPe0tCr". Pokud ne, je tento RM vyřazen z 
obvolávacího cyklu Mastera do té doby, než se RM opět ozve (po odstranění závady).

Cache v RS jsou uspořádány podle adres Modbusu. Pokud adresy nezačínají od jedné, 
lze nevyužitou oblast paměti pro Slave (0 až N-1) vynechat pomocí adres offsetu, 
parametr "SPe0tCf". Počet bloků cache pak lze přizpůsobit celkovému počtu Slave v 
síti parametrem "SPe0tCu".

RS rozpoznává jednotlivá Slave PLC pro jejich zařazení do cache podle MORSE adres, 
ze kterých přišla zpráva. Pokud je potřebné rozlišovat PLC podle adres Modbus, je 
to možno nastavit typem adresy v parametru "SPe0tCy".

Pro ladění je užitečná funkce Modbus monitor. Je přístupná z menu "mp0M" a podává 
informace o cache v RS nebo RM.
  Modbus monitor:
  St(a)tion  cache (d)ump
  (q)uit
  >>
Volbou "a" dostaneme výpis definovaných cache. V příkladu je vyhrazeno 10 bloků, z 
nich pouze adresa 05 je aktivní a zbývá jí 37 sec platného času.
>>
Station activity in Modbus cache:
    /1  /2  /3  /4  /5  /6  /7  /8  /9  /A  /B  /C  /D  /E  /F  /10
 0   0   0   0   0  37   0   0   0   0   0                  
>>
Volbou "d5" získáme výpis cache 05 (délka cache podle definice v tabulce Art):
>>
cache data at position 5:
         /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /B /C /D /E /F  ASCII:
00000000 10 0A 09 06 69 11 22 FF BB BB                    ....i."...


3.4 SYNCHRONIZACE ČASU

Synchronizace mezi modemy sítě MORSE se ovládá z menu "Ue" a lze na ni navázat 
přenosem času přes protokol Modbus. Synchronizace může být nastavena mezi PLC 
Master a RS nebo RM a Slave PLC. Platí pouze pro prvního Slave, který je připojen k 
RM parametrem "SPe0tM0". Přenos časové informace může probíhat směrem  Master -> 
RS, RM -> Slave nebo opačně. Čas je s nastavenou periodou zapisován na vybranou 
adresu v RS nebo v PLC Slave nebo je z ní čten.

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)

Z výše uvedených položek jsou generovány další, které 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



3.5 FUNKCE WATCHDOG

PLC Slave nemá možnost zjistit, jestli nebyla přerušena komunikace s Radiomasterem. 
Proto je zde možnost nastavit v Radiomasterovi funkci Watchdog, která zapisuje v 
pravidelných intervalech určené slovo na vybranou adresu do PLC Slave. Vše se 
nastavuje v menu "SPe0ts". PLC pak může pravidelně číst a mazat tento záznam a 
udržovat tak informaci o existenci spojení.



3.6 TYPY PAKETU

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


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

U    - link security bit         - 1 označuje 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.7 PŘÍKLADY

Příklady pro transparentní, paketový a cache režim jsou uvedeny v samostatném 
článku "MODBUS příklady".
Příklady paketového režimu jsou obsaženy také ve starším popisu "MODBUS 574".




4. PARAMETRY PROTOKOLU MODBUS

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

(M)aster (S)lave
(A)utomaster
(C)ache
(P)acket
(T)rans

(s)ervices    (O)ld menu (sw ver =< 5.74)
(q)uit
>>


(m)ode:RADIOMASTER/RADIOSLAVE           - pozice modemu v síti
(a)utomaster:OFF  - Radioslave může mít zapnutou funkci automaster, pak
                    přebírá funkci Radiomaster při přerušení komunikace na RS458
(c)ache:ON  (p)acket:OFF  (t)rans:OFF   - volba režimů

Další parametry jsou rozděleny do podmenu:

Parametry pro stanici Radiomaster:
>>(M)aster

master parameters:
(f)irst:691122FFh  (s)econd:00000000h  destination
d(e)vice type:PLC
Modbus slave addr: (0):5h (1):0h (2):0h (3):0h
(a)ddress mask:FFh
(p)eriod:10*10 ms
(t)imeout:20*100 ms
(q)uit
>>

(f)irst:691122FFh  - adresa Radioslave v MORSE síti,
                     00000000 = zprávy jsou posílány zpět
(s)econd:00000000h - je-li adresa nenulová, pak jsou na ni posílány kopie
                     spontánních zpráv, ne však zprávy od "SPe0tCt"
d(e)vice type:PLC  - volba mezi připojeným obecným PLC nebo technologickou
                     jednotkou SEP                   
Modbus slave addr: (0):5h  (1):0h  (2):0h  (3):0h
                   - seznam stanic Slave zahrnutých do obvolávacího cyklu
(a)ddress mask:FFh - maskovaná část adresy MORSE se použije jako adresa
                     Modbus
(p)eriod:100ms     - perioda pro obvolávání stanic Slave 
(t)imeout:2000ms   - max. doba čekání na odpověď


Parametry pro stanici Radioslave:
>>(S)lave

slave parameters:
Modbus (a)ddress:FFh
(r)epeat discard:0
d(e)vice type:PLC
(q)uit
>>

Modbus (a)ddress:FFh - adresa stanice Radioslave v síti Modbus, 01 až FF
(r)epeat discard:0   - počet repeatů od master PLC, které se zahodí, než se další
                       odešle do rádiové sítě. Používá se pro Master PLC, které
                       neumí počkat na odpověď.
d(e)vice type:PLC    - volba mezi připojeným obecným PLC nebo technologickou
                       jednotkou SEP                   
 

Parametry pro režim Automaster:
>>(A)utomaster

Modbus automaster:
t(i)meout:0s
master mode after switching:
(c)ache:ON  (p)acket:OFF  (t)rans:OFF
(q)uit
>>

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 
  následujícími parametry  (c)ache:ON  (p)acket:OFF  (t)rans:OFF.
  Po obnovení aktivity původního Mastera se vrátí do úlohy Slave.


Parametry pro režim Cache:
>>(C)ache

    cache parameters:
(c)ache table No:1
# ART dest:       gw:
#     nnnnffff    hhhhllll
#     No  Fce     high low addr
# BEWARE! IF YOU CHANGE CONTENT OF THE TABLE,
# YOU SHOULD RESTART (INIT) THIS PROTOCOL!

    radioslave only:
net (r)x TO - Mirror:30s
adr o(f)fset:0  n(u)mber:0  net addresses
address. t(y)pe: MORSE
(s)imulator:OFF

    radiomaster only:
net (t)x TO - mirror:30s
(e)rr. report:NONE  err. (a)dr:0h  err. (m)ask:0000h
          (o)ld cache menu (since sw.630)
(q)uit
>>

(c)ache table No:1       - číslo tabulky Art, která definuje prostor pro cache
    radioslave only:
net (r)x TO - Mirror:70s - timeout, po který RS čeká na zprávu od RM. Pokud
                           nepřijde, vyřadí jej Master PLC z obvolávacího cyklu.  
adr o(f)fset:0           - adresový posun v cache (pokud adresy nezačínají od 1)
n(u)mber:0               - max. početSlave PLC
address. t(y)pe: MORSE   - určuje, zda pozice v cache se určuje podle adresy MORSE
                           nebo Modbus
(s)imulator:OFF          - pro servisní účely
    radiomaster only:
net (t)x TO - mirror:30s - perioda hlášení do RS, pokud nenastala změna v cache
(e)rr. report:           - zpráva pro RS o ztrátě komunikace na lince RS485
         NONE     - zpráva není podávána, pokračují hlášení v intervalu "SPe0tCt"
         SILENT   - při ztrátě komunikace na RS485 skončí i pravidelné hlášení v
                    intervalu "SPe0tCt"
         DATMOLUX - speciální zákaznický režim
         MASK     - při ztrátě komunikace na RS485 je vysílána k Masterovi
                    dosavadní zpráva upravená tak, že na vybraný word (a) zprávy
                    jsou operací OR přidány stanovené bity (m)
err. (a)dr:0h     -adresa wordu od počátku bloku cash paměti
err. (m)ask:0000h - word, který je přidán (OR) k vybranému wordu paměti cash


Parametry pro paketový režim:
>>(P)acket

packet parameters:
(A)RT table No.:0
(N)2H buffer:2000  (H)2N buffer:1000
Warning: Both addresses should be nonzero.
(q)uit
>>

(A)RT table No.:4 - volba Art tabulky pro převod adres MORSE na adr. Modbus
(N)2H buffer:2000 - Net to Host, to je MORSE Net do Modbusu  
(H)2N buffer:1000 - 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 představovanou Radiomasterem, Host 
je připojené PLC Slave.


Parametry pro transparentní režim:
>>T

transparent parameters:
CRC (a)uto:OFF
check (f)unction:ON
check a(d)dress:ON
check (C)RC:ON
(q)uit
>>

CRC (a)uto:OFF      - pouze pro testování, RM doplní CRC k paketu přijatému od RS
check (f)unction:ON - kontrola, zda číslo funkce je jednou z funkcí Modbus
check a(d)dress:ON  - pro RM, kontrola, zda adresa je obsažena v "SPe0tM0,1,2,3"
check (C)RC:ON      - kontrola správnosti CRC v paketu Modbus


Parametry v servisním menu:
>>(s)ervices

Modbus services:
(t)ime sync:ON  (m)ode:SENDER  (p)eriod:10s
time (a)ddr:3000h  time sync (b)it:0000h
(d)ebug addr:69000011h
radiomaster only:
(w)dog bit:0000h  wd(o)g addr:0000h  wdog p(e)riod:0s
(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   - Radiomaster nebo Radioslave může být zvolen jako SENDER 
                  (vysílá čas) nebo RECEIVER (přijímá)  
(p)eriod:10s    - perioda předávání časového údaje se definuje 
                  pouze v Radiomasterovi
time (a)ddress :3000h - adresa pro ukládání času, Master i Slave
time sync (b)it:0000h - zákaznická funkce

(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, vložení nenulové hodnoty změní chování CU 
    z DTE na DCE (v režimu Packet začne zapisovat do (N)2H bufferu) 

(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 Radiomastera, poskytují pro 
    PLC Slave možnost kontroly, zda trvá spojení s Radiomasterem.



5. HISTORIE

Tento popis platí pro verzi sw 657 ze 4.3.2004.
Cache menu pro verze do sw 630 je obsaženo v "SPe0tCo".
Menu pro verze do sw 574 je v "SPe0tO".
Popis pro sw 574 (20.5.2002) s podrobnějším výkladem a s příklady paketového režimu 
je v článku "MODBUS 574". 

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