MiniNET

Verze pro tisk

Protokol MiniNET pro MORSE

verze 9.0.17.0

7. srpna 2007

1. Úvod

Protokol MiniNet je používán v zařízeních rakouské firmy Bernecker & Rainer. Komunikace v sítích s těmito zařízeními je vždy typu Master – Slave.

[Důležité]Důležité

Od verze Setru 9.0.17.0 je názvosloví sjednoceno podle schématu:

PLC Master - CU RADIOSLAVE ... CU RADIOMASTER - Slave PLC

CU (radiomodem) připojený přes SCC k PLC Master je nazýván RADIOSLAVE (RS),
CU připojený k PLC Slave je nazýván RADIOMASTER (RM).
Změna se projeví při použití nové verze Setru, verze firmware v CU nemá vliv.

Starší Setr používá opačné označení, tedy:

( PLC Master - CU RADIOMASTER ... CU RADIOSLAVE - Slave PLC )

2. Formát dat

Většina zpráv protokolu MiniNet se dá charakterizovat touto strukturou:

| STX/8 | LEN/8 | NODE/8 | INDEX/8 | DATA/8*N | CHK/8 |

kde:

STX

začátek rámce 02h. Vyskytne-li se 02h v datech, musí následovat 00h. Tzn. 02h je vysíláno jako 0200h

LEN

délka (od STX do CHK včetně), doplněné 00h v datech (za 02h) se nezapočítávají. LEN může nabývat hodnot od 05h do FFh.

NODE

adresa, viz také parametr (s)lave adr

INDEX

identifikace rámce pro soulad dotazů a odpovědí u mastera (číslování, opakování, chyby apod.)

DATA

řada bytů vlastních dat

CHK

kontrolní byte (výpočet uveden dále)

Výjimku z výše uvedené struktury tvoří jednobytová zpráva ACK (06h), kterou vysílá pouze slave jako odpověď na některé požadavky mastera.

Protokol MININET-MORSE vybírá výše uvedenou strukturu dat z jakéhokoliv došlého rámce. V praxi většina PLC vysílá před STX a za CHK různý počet synchronizačních bytů FFh.

3. Implementace protokolu v síti Morse

Adresace:

CU (MR400) RS odesílá data vždy na adresu, která se vytvoří tak, že nejnižší byte vlastní adresy (na příslušném Node) se přepíše bytem NODE, viz Formát dat. V případě, že NODE je 10h (broadcast) paket je zahozen. MR400 RM odesílá data vždy na adresu, ze které přišel dotaz.

a) PLC -> MR400

  1. V případě stanice RM kontrola, zda jsou očekávána data. RM smí vyslat data jen jako odpověď na žádost – neočekávaná data jsou zahozena.

  2. Kontrola, zda přijatý rámec má velikost min. 5 byte (výjimka pouze u stanice RM na ACK). Kratší rámce zahozeny.

  3. V přijatém rámci vyhledáno STX, tzn. rámec nemusí začínat STX. Není-li v rámci STX (nenásledováno 00h) je rámec zahozen.

  4. Kontrola délky LEN. Je-li větší než velikost přijatého rámce, je rámec zahozen.

  5. Dle udané délky LEN vyhledáno CHK, tzn. rámec nemusí končit CHK.

  6. Kontrola CHK.

MORSE kanálem se přenáší jen INDEX a DATA (viz. Formát dat). (STX, LEN, NODE, CHK se nepřenáší) Zprávy jsou v kanálu MORSE přenášeny typem paketu USER DATA. V případě ACK se přenáší paket USER DATA s nulovou délkou dat.

b) MR400 -> PLC

  1. K přijatým datům z MORSE kanálu doplněno na příslušné pozice STX, LEN, NODE, CHK (dopočítáno).

  2. Jen RS smí přijmout paket s nulovou délkou. V tomto případě vytvořen jednobytový paket 06h.

  3. Rámec odeslán do SC kanálu.

Z uvedeného je zřejmé, že MORSE kanálem jsou přenášena pouze užitečná data a Index zabezpečená algoritmy systému Morse. Na drátové lince (SC kanálu) jsou data zabezpečena algoritmy protokolu MiniNet.

Na lince CU-PLC není používán žádný handshake – ani sw (pomocí ACK či jiných znaků v linkové vrstvě protokolu) ani hw (je používáno pouze 3 vodičové propojení – RXD, TXD, GND). V případě přeplnění fronty paketů na odeslání do MORSE kanálu (4 pakety) není jak informovat PLC, a proto jsou případné další přicházející pakety zahozeny.

3.1. Příklad komunikace

PLC Master - RADIOSLAVE ...... RADIOMASTER - PLC Slave
 MiniNet      690F0011          690F0022      MiniNet


        PLC Master ----> RS 11 (RADIOSLAVE 690F0011)
FFFFFF 02 07 22 40 1B52 4B FFFF  dotaz

        RS 11 ----> RM 22
40 1B52                          adresa source 11 se uloží v CU RM 22

        RM 22 ----> PLC Slave
02 07 22 40 1B52 4B


        PLC Slave ----> RM 22
FF 02 06 22 C080 DA FFFFFF       odpověď

        RM 22 ----> RS 11
C0 80                            RM 22 odešle paket na adresu 11

        RS 11 ----> PLC Master
02 06 22 C0 80 DA

4. Nastavení parametrů protokolu v MR400

MININET parameters:
PLC Master - CU RADIOSLAVE ... CU RADIOMASTER - Slave PLC
(m)ode :RADIOSLAVE (wired to master)  (s)lave adr :FFFF
(q)uit
(m)
  • RADIOSLAVE – připojen sériovým portem k PLC Master – vysílá data na MORSE kanál okamžitě po příjmu na SC kanálu. Neumí přijmout ACK (ze strany SCC).

  • RADIOMASTER – připojen sériovým portem k PLC Slave – data přijatá na SCC vyšle do MORSE kanálu jen v případě, že je CU RS očekává (musel jim předcházet dotaz od PLC Master), tzn. není možná spontánní komunikace jednotky Slave. Došlá data z MORSE kanálu jsou vysílána okamžitě na SCC, tzn. nečeká se na odpověď z PLC na předcházející dotaz. Umí přijmout ACK (ze strany SCC) a odesílá ho MORSE kanálem na adresu, z které přišel dotaz.

POZOR – Setr starší než 9.0.17.0 používá opačné označení !

(s)

Pouze pro CU RADIOSLAVE:

  • FFFF – byte NODE v odpovědi doručené z RS do PLC Master obsahuje spodní byte MORSE adresy RM, který zprávu odeslal

  • jiný obsah – do byte NODE je vložen spodní byte parametru (s)lave adr

5. Příklad výpočtu CHK

Byte Minet::calc_chk(Byte *pb, Word size)
{
   Word    chk,
           i;

   chk = 0;
   i = 0;
   while (i < size) {
           if ((*(pb - 1) == (Byte)STX) && (*pb == 0) && (i>4)) {

   //4=STX|LEN|NODE|INDEX
           i++;  //supplementary 00 after STX in data area is not included
           pb++;
           }
           else {
                   chk <<= 1;
                   if ((chk & 0x100) == 0x100) {
                           chk += 1;
                           chk &= 0xFF;
                   }
                   chk += *pb++;
                   if ((chk & 0x100) == 0x100) {
                           chk += 1;
                           chk &= 0xFF;
                   }
                   i++;
           }
   }
   if ((Byte)chk == (Byte)STX) chk = ~chk;
   return((Byte)chk);
}//Minet::calc_chk

6. Historie

9.0.17.0 – 06/2007 – sjednocení názvů RS/RM v Setru