Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmNET0 - Ovladač pro komunikaci PROMOTIC protokolem NET0

Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné přečíst kapitolu: Komunikace pomocí PROMOTIC ovladačů.
 
Základní vlastnosti ovladače:
- Komunikace je přes standardní sériovou linku (COM1, COM2 ...).
- Ovladač je začleněn do systému PROMOTIC pomocí objektu PmComm.

Ovladač podporuje použití objektu PmCommMsg. Objekt PmCommData nelze používat.

Pro snadné přidání tohoto ovladače do aplikace je vhodné použít: Předkonfigurace ve skupině "NET0 protokol"

- Je k dispozici jako obchodní položka PmNET0, která je zdarma.
 
Protokol NET0 může sloužit jako levné propojení dvou aplikací PROMOTIC přes sériovou linku. Někteří výrobci HW tento protokol implementovali do svých zařízení a v tom případě lze s těmito zařízeními komunikovat velmi snadno a levně (viz například převodník LonWorks-NET0 firmy SAMO).
 
Protokol NET0 je síťový protokol typu 1Master x nSlave, max. počet Slave stanic je 253.

Protokol NET0 může sloužit například k následujícím účelům:

- pro komunikaci přes sériovou linku mezi počítači PC, na kterých jsou provozovány aplikace PROMOTIC. Tento způsob není zcela běžný, neboť je jednodušší a obecnější spojit jednotlivé počítače sítí LAN.
- pro komunikaci mezi PC stanicí, na které běží PROMOTIC, a jiným HW zařízením, na kterém byl implementován protokol NET0. Tento způsob je asi nejčastější a právě pro ty, kdo chtějí tento protokol implementovat, je určen Popis protokolu NET0.
 

Doporučené hodnoty parametrů:

Popis a doporučené hodnoty pro Parametry protokolu:
Číslo tohoto počítače (ncp)Číslo tohoto počítače
0 - znamená že se nejedná o síťovou komunikaci, je pouze komunikace bod-bod.
1 .. 253 - identifikuje tento počítač v komunikační síti.
Typ zprávMohou být tyto typy:
Master Only - Ovladač bude typu Master, tzn. tato PROMOTIC aplikace bude vysílat požadavky a protější počítače budou jen odpovídat.
Slave Only - Ovladač bude typy Slave, tzn. jeden z protějších počítačů bude vysílat požadavky, a pokud požadavek bude určen tomuto počítači, tak jen odpoví.
Max.délka přijímaných dat v bajtechDélka nejdelší možné přijímané zprávy.
Timeout potvrzení příjmu Čas (v milisekundách) po který bude ovladač čekat na potvrzení zprávy (u zpráv na které se nemá datově odpovídat ale jen potvrdit)
Timeout příjmu odpovědiČas (v milisekundách) po který bude ovladač čekat na odpověď při vyslání zprávy. Pokud do této doby nepřijde vyžádaná odpověď, přenos zprávy se ukončí (vyvolá se událost onEndOfTransfer s chybou 24 nebo 66).
Popis konfigurátoru PmCommMsg > Parametry > Parametry zprávy:
Číslo protějšího počítače (ncp)Číslo protějšího počítače
0 - znamená že se nejedná o síťovou komunikaci, je pouze komunikace bod-bod.
1 .. 253 - identifikuje protější počítač v komunikační síti.
254 - (broadcast) znamená že zpráva je určena všem počítačům v síti.
Číslo spoje zprávy (nco)Identifikátor zprávy. Hodnota v rozsahu od 0 do 255.
Potvrzovat zprávuPouze pro Master zprávy. Pro zprávy které data zasílají ale nepožadují datovou odpověď. Určuje že protější strana má potvrdit příjem dat.

Popis protokolu NET0

 
Tvar zprávy protokolu NET0:
STX: (=02H) kód začátku zprávy
DST: číslo cílového počítače
SRC: číslo zdrojového počítače
CMD: vlastnosti zprávy v podobě bitové masky hodnot:
08H: je použita síťová komunikace
20H: odpověď na požadavek na zaslání dat
40H: požadavek na zaslání dat
80H: zpráva vyžadující potvrzení (ACK)
NCO: číslo spoje (pro rozlišení jednotlivých druhů zpráv)
data: vlastní přenášené hodnoty
ETX: (=03H) kód konce zprávy
SUM: kontrolní suma, tzn. matematické xor bytů od DST (včetně) po poslední byte "data" (včetně). Xor se dělá nad hodnotama která ještě nejsou zakódovaná pomocí znaku DLE (viz Poznámka 1)
 
Poznámka 1:

Hodnoty DST, SRC, CMD, NCO, data a SUM mohou být jakékoli hodnoty kromě hodnot:

STX = 02H: kód začátku zprávy
ETX = 03H: kód konce zprávy
ACK = 06H: kladné potvrzení
DLE = 10H: změnový prefix
NAK = 15H: záporné potvrzení

Pokud by hodnota X těchto hodnot nabývala, pak se tato hodnota X do protokolu zakóduje do dvou znaků:

(DLE) a (X+80H)

Tzn.že protokol má proměnnou celkovou délku zprávy závislou na hodnotách zprávy!

Příklad:

V datech chceme přenést 1 byte hodnoty 02H. Místo toho pošleme v datech 2 byty: DLE a pak 82H. Tímto kódováním pomocí znaku DLE dosáhneme, že hodnoty STX, ETX, ACK, DLE a NAK se vyskytují jen na těch místech zprávy, kde je jejich pravá funkce.

 
Poznámka 2:

Protokol je obecně síťový, tzn. že ve zprávě je číslo počítače, který má zprávu přijmout (DST=destination) a počítače, který zprávu vyslal (SRC=source). Hodnoty DST a SRC mohou nabývat hodnot od 1 do 253. Pokud DST a SRC je 0, pak se jedná o nesíťový protokol, který se liší od síťového pouze tím, že byty DST a SRC se vůbec v protokolu nevyskytují. Pokud DST má hodnotu 254, pak je to zpráva typu "broadcast", tzn. že je zaslána všem počítačům v síti.

 
Poznámka 3:

Formát oblasti "data" je totožný s formátem datových typů na PC počítači. Tzn. že například Integer se přenáší na 2 bytech (nejdřív LOW a pak HIGH). Boolean se přenáší na 1 bytu (hodnota 0 a 1). Hodnoty jsou v oblasti "data" v takovém pořadí, v jakém byli specifikovány proměnné zprávy v systému PROMOTIC.

 
Poznámka 4:

Po příjmu dat má přijímající stanice za povinnost udělat následující:

- pokud zpráva byla přijata špatně (např. špatný kontrolní součet nebo špatný obsah dat) a vyžaduje se potvrzení (v CMD nahozen bit 80H), vyslat jeden znak NAK (=15H) jako záporné potvrzení.
- pokud zpráva byla přijata dobře a:
- a) je typu "odpověď na zaslání dat" (v CMD nahozen bit 20H), pak neodpovídat
- b) není typu "požadavek na zaslání dat" (v CMD nenahozen bit 40H) a vyžaduje se potvrzení (v CMD nahozen bit 80H), vyslat jeden znak ACK (=06H).
- c) je typu "požadavek na zaslání dat" (v CMD nahozen bit 40H), pak vyslat odpověď ve stejném (výše popsaném) formátu.

V jiných situacích se na příjem neodpovídá.

 
Příklad:

Vysíláme dvě hodnoty: Integer s hodnotou 258 (=0102H) a byte s hodnotou 3 (=03H). Zpráva má být potvrzována, číslo spoje NCO = 0 a je nesíťový protokol (tzn. budou chybět znaky DST a SRC).

Přijímající stanice přijme bajty v následující posloupnosti:

02H: znak STX = začátek zprávy
80H: znak CMD = požadavek potvrzování zprávy
00H: číslo spoje NCO
10H: znak DLE = spodní bajt 1.hodnoty je stejný jako STX
82H: spodní bajt 1.hodnoty + 80H
01H: horní bajt 1.hodnoty
10H: znak DLE = 2.hodnota je stejná jako ETX
83H: 2.hodnota + 80H
03H: znak ETX = konec zprávy
80H: SUM = kontrolní součet (80H = 80H xor 00H xor 02H xor 01H xor 03H)
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice