KOMUNIKAČNÍ PROTOKOL DEGA Anotace: Dokumentace binárního digitálního protokolu DEGA.
Platnost od:
10. 05. 2012
Datum vydání:
10. 05. 2012
Obsah: 1
Účel ..................................................................................................................... 3
2
Rozsah platnosti ................................................................................................ 3
3
Licenční podmínky a autorská práva............................................................... 3
4
Termíny a definice ............................................................................................. 3
5
Odpovědnost a pravomoci ............................................................................... 4
6
Protokol DEGA .................................................................................................. 5 6.1 6.2 6.3
7
Obecný popis ............................................................................................... 5 Formát protokolu DEGA ............................................................................... 5 Tabulka instrukcí .......................................................................................... 7
Dokumentace jednotlivých instrukcí protokolu DEGA .................................. 8 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15
DEGA CZ s.r.o. List 2 z 12
ID snímače ................................................................................................... 8 Hodnoty alarmů ............................................................................................ 8 Rozsah detekce snímače ............................................................................. 8 Čtení stavu výstupů ...................................................................................... 9 Čtení stavu vstupů........................................................................................ 9 Koncentrace snímačů................................................................................... 9 Hodnoty PEL ................................................................................................ 9 Hodnoty měřích proudů .............................................................................. 10 Hodnoty napájecích proudů ....................................................................... 10 Hodnota teploměru ..................................................................................... 10 Stav zařízení (UPA II)................................................................................. 10 Hodntoy PEL (n) ......................................................................................... 11 Reset .......................................................................................................... 11 Změna adresy ............................................................................................ 11 Čtení popisky zařízení ................................................................................ 12
Dokumentace komunikačního protokolu DEGA
1 Účel Dokumentace ke komunikačnímu protokolu DEGA, který je základem pro nové digitální detektory a ústředny DEGA. Popis struktury, odpověďí, kódů a principů komunikace. Dokumentace slouží též i jako vzdělávací materiál nebo příručka programátora. Druhá část dokumentace je věnována jednotlivým příkazům v binární podobě a jejich syntaxi. Druhá kapitola je hlavně určena pro programátory a kalibračního technika.
2 Rozsah platnosti Předpis platí pro vývojové pracovníky střediska Elektronika a pro programátory aplikací. Vybrané kapitoly platí pro všechny pracovníky střediska Elektronika. Protokol DEGA se dotýká všech digitálních zařízení DEGA s komunikační linkou, které byly vyvinuty od 4 / 2012. Mezi první implementaci patří ústředna DEGA UPA II.
3 Licenční podmínky a autorská práva Protokol DEGA je principem podobný většině protokolů průmyslových zařízení master-slave. Jádro a princip vychází z protokolu Spinel , volně dostupný protokol fy. Papouch s.r.o. ( http://www.papouch.com ). Protokol byl dále modifikován a výsledná modifikace vytvořila nový protokol s podobnými principy, vhodný pro aplikace DEGA CZ a digitální systémy ústředen.
4 Termíny a definice Komunikační protokol – známý způsob komunikace mezi 2 a více zařízeními. Komunikační protokol je určitý rámec, neboli tvar dat, společného jazyka kterým zařízení „hovoří“ a je pro ně srozumitelný. Binární protokol – binární protokol vychází ze znakové sady PC ASCII, používají se všechny binární znaky 0 až 255. Binární protokol není snadno čitelný. ASCII protokol – ASCII protokol vychází ze znakové sady PC ASCII, používají se jen viditelné znaky pro obsluhu – tedy abeceda A-Z , číslice 0-9 a pár pomocných znaků. ASCII protokol je čitelný jako jakýkoliv psaný text. Master – nadřízené zařízení. Zařízení master je takové zařízení, které má právo se dotazovat, přijímat odpovědi a řídit stav podřízených zařízení (slave). Obvykle v systému je jen 1 zařízení Master, avšak existují zařízení kde jich je více (tzv. multimaster).
DEGA CZ s.r.o. List 3 z 12
Dokumentace komunikačního protokolu DEGA
Slave – podřízené zařízení. Zařízení slave je takové zařízení, které má právo pouze odpovídat na dotazy od zařízení typu Master. Zařízení typu Slave může být v systému více. Fyzická vrstva – fyzickou vrstvou se rozumí „to po čem“ signál (data) putují. Nejčastěji je to kabel nebo optické vlákno. V případě kabelu jsou zde nějaké napětí, nějaké rychlosti signálů a dané směry komunikace. Tyto parametry fyzické vrstvy jsou definovány normami např. RS-232 , RS-485, USB, Ethernet apod. Kontrolní součet (CRC) – kontrolní součet je metoda, jak kontrolovat správnost dat. Při komunikaci se občas stane že se data naruší a mohlo by dojít k špatné reakci zařízení Master nebo Slave. Kontrolní součet zaručuje správnost dat tím, že umožní rozpoznat narušení struktury i hodnoty dat. Zařízení v takovém případě reaguje opravným mechanismem, nebo ignorováním takové komunikace. Převodník – převodník je součástka nebo složitější modul, který má za úkol změnu fyzické vrstvy. Například změnu z jednoho napětí na jiné. Sám o sobě ale není schopen zajistit strukturu dat. Instrukce – instrukcí se rozumí „příkaz“ od zařízení typu Master. Každý příkaz má svůj kód a bývá mnohdy doprovázen nějakými parametry ve formě dalších dat. Instrukce má charakter číselného kódu. Instrukce posílá Master. Odpověď – odpověď je reakce na instrukci. Bývá často doprovázena nějakými parametry ve formě dalších dat. Odpověďi posílá zařízení Slave. Formát – formátem se rozumí tvar a struktura dat v komunikačním protokolu. Protokol DEGA má jen jeden formát. Node – větvící uzel. Větvící uzel umožňuje rozdělit signál na více větví. Každý uzel má svoji identickou adresu (číslo). Na základě této adresy se komunikace větví a směruje správným směrem. Adresování po uzlech také odlehčuje komunikaci ve velkých systémech a nezatěžuje další uzly. Syntax – syntax znamená pravidlo. Obdobně jako v českém jazyce mluvíme o pravidlech českého pravopisu, stejně tak syntax znamená v jazyce programátorů určitý řád, kde se jaký výraz smí/nesmí vyskytovat.
5 Odpovědnost a pravomoci Za činnosti předepsané tímto předpisem mají odpovědnost vývojoví pracovníci.
DEGA CZ s.r.o. List 4 z 12
Dokumentace komunikačního protokolu DEGA
6 Protokol DEGA 6.1 Obecný popis Protokol DEGA je standardizovaným protokolem firmy DEGA CZ s.r.o. a byl navržen tak, aby bylo možné jej dále rozšiřovat nebo modifikovat a aby bylo možné různá zařízení s různými modifikacemi protokolu DEGA propojovat bez kolizí. Protokol je určen pro systémy typu Master-Slave, respektive všude tam kde se komunikuje principem dotaz-odpověď. Formát přenášených dat je binární, což umožňuje maximálně využít přenosové schopnosti. Protokol DEGA byl optimalizován pro malé a střední sítě snímačů, ústředen a jiných zařízení. Současně umožňuje provádět systémové zásahy a konfiguraci jednotlivých zařízení. Díky tomu je protokol DEGA použitelný i ve výrobě a kalibraci. Komunikovat může 1 Master s 1 zařízením Slave, nebo 1 zařízení Master a více zařízení Slave. Protokol DEGA je optimalizován na malou redundanci (nadbytečnost dat), avšak je dostatečně robustní aby pokryl požadavky na bezpečnost, rozšiřování funkcí, struktury a složitosti systému. Ochrana dat a celého přenosu je zajištěna kontrolním součtem, který zajišťuje jednak rozeznání správné komunikace a jednak sníží možnost chybné reakce na rušení, nebo na zkreslený dotaz. 6.2 Formát protokolu DEGA Formát protokolu udává, jaká data se kde vyskytují a k čemu slouží. Formát musí být striktně dodržen u všech zařízení, kde je protokol DEGA implementován. Nedodržení formátu komunikace způsobí nefunkčnost nebo problémy vzniklé špatnou interpretací. Protokol je binární s osmibitovou adresou, podpisem (popsáno dále) a kontrolním součtem. Instrukce jsou rozděleny na dotaz a odpověď. Data jsou přenášena v rámcích (paketech) s definovaným začátkem a koncem. Zřízení UPAII momentálně podporuje přenosovou rychlost 9600Bd. Dotaz : Formát dat , zobrazený po 8-bitech : PRE
FRM
LEN
LEN
ADR
SIG
INST DATA(…)
SUMA CR
LEN
LEN
ADR
SIG
ACK
SUMA CR
Odpověď : PRE
FRM
DATA(…)
V nejjednodušším provedení je odesíláno 9 bytů dat. U některých instrukcí se nepřikládají žádná doprovodná DATA(…) a samotné jádro tvoří jen samotný kód instrukce. V ostatních případech je odesíláno 10 a více bytů dat.
DEGA CZ s.r.o. List 5 z 12
Dokumentace komunikačního protokolu DEGA
PRE – úvodní znak packetu. Vždy znak „*“ – 0x2A FRM – kód používaného formátu. Vždy znak – 0x61 LEN – šestnáctibitová hodnota určující počet bytů do konce instrukce. Nabývá hodnot 5 až 65535 podle délky packetu. Jeli menší než 5, považuje se taková instrukce za chybnou a odpovídá se na ní (jeli určen danému zařízení) instrukcí s ACK „neplatná data“. První byte je horní byte počtu, druhý byte LEN je dolní byte počtu. ADR – adresa je jeden byte, který jednoznačně určuje konkrétní zařízení mezi ostatními na jedné komunikační lince. Zařízení toto číslo vždy používá pro svou identifikaci v odpovědích na dotazy z nadřazeného systému. Adresa 0xFF je „broadcast“. Instrukce s touto adresou jsou určeny pro všechna zařízení. Na tuto instrukci se neodpovídá. Adresa FEH je univerzální adresou pro všechna zařízení. Na tuto adresu zařízení odpovídá jako na svou vlastní adresu. V odpovědi použije svou adresu, nikoli adresu FEH. Tato adresa je určena pro případ, že na komunikační lince je pouze jedno zařízení. SIG - číslo, jednoznačně odlišující konkrétní dotaz. Stejné číslo je použito v odpovědi. Lze tak jednoduše odlišit, na který dotaz přišla odpověď. INST – kód instrukce. Kody instrukce daného zařízení. Jsou v intervalu 10H aby se odlišily od ACK.
FFH,
ACK - potvrzení dotazu (acknowledge), potrvzení dotazu, zda byl provede/neproveden apod. Potvrzení dotazu (ACK) informuje nadřazené zařízení o způsobu zpracování přijaté instrukce. Kódy potvrzení: 00H .......VŠE V POŘÁDKU Instrukce byla v pořádku přijata a kompletně provedena. 01H .......JINÁ CHYBA Blíže nespecifikovaná chyba zařízení. 02H .......NEPLATNÝ KÓD INSTRUKCE Přijatý kód instrukce není známý. 03H .......NEPLATNÁ DATA Data nemají platnou délku nebo obsahují neplatnou hodnotu. 04H .......NEPOVOLEN ZÁPIS/PŘÍSTUP ODMÍTNUT - Dotaz nebyl proveden, protože nebyly splněny určité podmínky. - Pokus o zápis dat do nepřístupné paměti. - Snaha o aktivování funkce zařízení, která vyžaduje jiné nastavení (např. vyšší komunikační rychlost). - Snaha o změnu konfigurace, bez bezprostředně předcházejícího povolení nastavení.
DEGA CZ s.r.o. List 6 z 12
Dokumentace komunikačního protokolu DEGA
- Přístup do paměti chráněné heslem. 05H .......PORUCHA ZAŘÍZENÍ - Porucha zařízení, vyžadující servisní zásah. - Chyba vnitřní paměti zařízení nebo paměti nastavení. - Chyba některé vnitřní periferie zařízení (běhová chyba nebo chyba při inicializaci). - Jakákoli jiná chyba ovlivňující správnou funkci zařízení. 0CH.......AUTOMATICKY VYSLANÁ INSTRUKCE – PŘENOS DAT - Odeslání naměřených hodnot při dosažení kritické hranice sledované veličiny. 0DH.......AUTOMATICKY VYSLANÁ INSTRUKCE – ZMĚNA LOG. HODNOTY NA UNIVERZÁLNÍM VSTUPU - Hlídání stavů koncových spínačů. 0EH.......AUTOMATICKY VYSLANÁ INSTRUKCE – KONTINUÁLNÍ MĚŘENÍ - Periodické odesílání naměřených hodnot. 0FH.......AUTOMATICKY VYSLANÁ INSTRUKCE – OSTATNÍ DATA(…) – data instrukce. Neodpovídá-li délka, zařízení tuto instrukci nezpracovává a odpoví ACK „neplatná data“. SUMA - součet všech bytů instrukce (sčítají se úplně všechna odesílaná data kromě CR) odečtený od 255. Výpočet: 255 – (PRE + FRM + NUM + SDATA) Na zprávu s chybným kontrolním součtem se neodpovídá. Na příjem CR se čeká i pokud přijde nesprávný kontrolní součet. CR – ukončovací znak. Nabývá hodnoty 0x0D. 6.3
Tabulka instrukcí Zde je souhrn a popis všech instrukcí, která momentálně protokol podporuje. Další rozšíření nejsou vyloučena. Kód (hex) 0x10 0x11 0x12 0x30 0x31 0x51 0x52 0x53 0x54 0x58 0x60 0x59 0xE3 0xF3
DEGA CZ s.r.o. List 7 z 12
popis instrukce ID snímače hodnoty alarmů rozsah detekce snímače čtení stavu výstupů čtení stavu vstupů koncentrace snímače hodnoty PEL hodnoty měřících proudů hodnoty napájecích proudů hodnota teploměru hodnoty PEL (n) stavová informace (Status) reset zařízení čtení popisky zařízení
Dokumentace komunikačního protokolu DEGA
7 Dokumentace jednotlivých instrukcí protokolu DEGA Každá instrukce má svojí vlastní syntaxi. Podle toho co je obsahem instrukce, je můžeme rozdělit na : • Instrukce bez dalšího parametru (dat) • Instrukce s parametrem (s daty) Všechny 2 bytové hodnoty vracené instrukcemi jsou ve formátu HIGH-LOW (první je vyšší byte následován nižším).
7.1 ID snímače Instrukce : 0x10 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte ID jednotlivých snímačů. Pokud je vráceno ID=0, snímač není nakonfigurován. Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. První byte je číslo snímače, druhý jeho ID. Celková délka dat = x * (1byte číslo snímače + 1 byte id). 7.2 Hodnoty alarmů Instrukce : 0x11 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte nastavené hodnoty alarmů (alarm1-4 = 4 hodnoty na snímač). Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a 4 * dva byte pro každou úroveň alarmu. Celková délka dat = x * (1B číslo snímače + 4 * 2B 16 bit hodnota). Hodnoty jsou v desetinách jednotek.
7.3 Rozsah detekce snímače Instrukce : 0x12 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte nastavené rozsahy detekce jednotlivých snímačů (hodnota MIN a hodnota MAX). Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a dva byte pro hodnotu MIN a dva byte pro hodnotu MAX.
DEGA CZ s.r.o. List 8 z 12
Dokumentace komunikačního protokolu DEGA
Celková délka dat = x * (1B číslo snímače + 2B 16 bit MIN + 2B 16bit MAX). Hodnoty jsou v desetinách jednotek. 7.4 Čtení stavu výstupů Instrukce : 0x30 Data : nic Odpověď : stav výstupů Instrukce umožňuje nadřazenému systému číst dvoustavové výstupy a zjistit jejich aktuální stav. Instrukce neobsahuje vstupní data. Počet výstupních dat závisí na počtu výstupů, zaokrouhleno na celé byte. Jednotlivé bity znázorňují stav jednotlivých výstupů. 7.5 Čtení stavu vstupů Instrukce : 0x31 Data : nic Odpověď : stav vstupů Instrukce umožňuje nadřazenému systému číst dvoustavové vstupy a zjistit jejich aktuální stav. Instrukce neobsahuje vstupní data. Počet výstupních dat závisí na počtu vstupů, zaokrouhleno na celé byte. Jednotlivé bity znázorňují stav jednotlivých vstupů. 7.6 Koncentrace snímačů Instrukce : 0x51 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte aktuální hodnoty koncentrací snímačů (16 bitová hodnota). Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a dva byte hodnoty koncentrace. Celková délka dat = x * (1B číslo snímače + 2B 16 bit hodnota). Hodnoty jsou v desetinách jednotek. 7.7 Hodnoty PEL Instrukce : 0x52 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte aktuální hodnoty PEL (přípustný expoziční limit) snímačů (16 bitová hodnota). Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a dva byte hodnoty PEL. Celková délka dat = x * (1B číslo snímače + 2B 16 bit hodnota). Hodnoty jsou v desetinách jednotek.
DEGA CZ s.r.o. List 9 z 12
Dokumentace komunikačního protokolu DEGA
7.8 Hodnoty měřích proudů Instrukce : 0x53 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte aktuální hodnoty měřích proudů snímačů (16 bitová hodnota). Tato hodnota je v desetinnách mA. Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a dva byte hodnoty. Celková délka dat = x * (1B číslo snímače + 2B 16 bit hodnota). Hodnoty jsou v desetinách jednotek.
7.9 Hodnoty napájecích proudů Instrukce : 0x54 Data : 1 byte (požadované snímače) Odpověď : data s hodnotami Instrukce načte aktuální hodnoty napájecíhc proudů snímačů (16 bitová hodnota). Tato hodnota je v desetinnách mA. Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo snímače (00004321). Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a dva byte hodnoty. Celková délka dat = x * (1B číslo snímače + 2B 16 bit hodnota). 7.10 Hodnota teploměru Instrukce : 0x58 Data : 1 byte (požadované teploměry) Odpověď : data s hodnotami Instrukce načte hodnoty osazených teploměrů zařízení (16 bitová hodnota). Tato hodnota je signed a je v desetinnách stpňů Celsia. Vstupní data obsahují 1 byte, jehož jednotlivé bity značí číslo teploměru (00000001). Počet bytu v odpovědi závisí na počtu požadovaných teploměrů. Každý teploměr vrátí 1byte číslo teploměru a dva byte hodnoty. Celková délka dat = x * (1B číslo teploměru + 2B 16 bit hodnota). 7.11 Stav zařízení Instrukce : 0x59 Data : nic Odpověď : data s hodnotami Instrukce načte status zařízení. Vráceno je 5 byte. První byte přenáší informaci o globálním stavu zařízení (status bity), které následují čtyři byte jednotlivých snímačů (UPAII) nebo dva byty na snímač (UPAIIL).
DEGA CZ s.r.o. List 10 z 12
Dokumentace komunikačního protokolu DEGA
globální status bity: bit0 - překročen limit teploty1 bit1 - překročen limit teploty2 bit2 - chyba teploměru bit3 - aktivní čidlo zaplavení bit4 – chyba čidla zaplavení status bity snímače (UPAII – 1 byte na snímač): bit0-2 aktivovaný alarm bit3 pel bit4 kalibrace 12 měsíců bit5 kalibrace 18 měsíců bit6-7 chyba snímače status bity snímače (UPAIIL – 2 byty na snímač): bit0-2 aktivovaný alarm bit3 pel0 bit4 pel1 bit5 kalibrace 12 měsíců bit6 kalibrace 18 měsíců bit7-8 chyba snímače
7.12 Hodnoty PEL (n) Instrukce : 0x60 (jen UPAIIL) Data : 1 byte (požadované snímače) + 1 byte pel index (0 nebo 1) Odpověď : data s hodnotami UPAIIL má možnost zpracovávat dvě PEL hodnoty. Zvolená PEL hodnota je ‚pel index‘. Počet bytu v odpovědi závisí na počtu požadovaných snímačů. Každý snímač vrátí 1byte číslo snímače a dva byte hodnoty PEL. Celková délka dat = x * (1B číslo snímače + 2B 16 bit hodnota). Hodnoty jsou v desetinách jednotek. 7.13 Reset Instrukce : 0xE3 Data : nic Odpověď : nic (ACK) Instrukce pro vykonání resetu zařízení. Zařízení na instrukci odpoví (ACK) a pak vstoupí do resetu. 7.14 Změna adresy Instrukce : 0xE5 Data : 1 byte nová adresa Odpověď : nic (ACK)
DEGA CZ s.r.o. List 11 z 12
Dokumentace komunikačního protokolu DEGA
Instrukce se používá pro změnu adresy zařízení. 7.15 Čtení popisky zařízení Instrukce : 0xF3 Data : nic Odpověď : popisky jako ASCII texty oddělené středníkem Instrukce vrátí jméno zařízení, verzi firmwaru a seriové číslo (SN) zařízení. Jednotlivé řetezce jsou odděleny středníkem (jméno;firmware;sn).
DEGA CZ s.r.o. List 12 z 12
Dokumentace komunikačního protokolu DEGA