SIMULÁTOR A KLIENT PRO MODBUS ZAŘÍZENÍ SIMULATOR AND CLIENT FOR MODBUS DEVICES
|
|
- Miloslava Žáková
- před 9 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF CONTROL AND INSTRUMENTATION SIMULÁTOR A KLIENT PRO MODBUS ZAŘÍZENÍ SIMULATOR AND CLIENT FOR MODBUS DEVICES BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR MICHAEL ONDRÁŠEK doc. Ing. PETR FIEDLER, Ph.D. BRNO 2013
2 2
3 Abstrakt Tato bakalářská práce se zabývá komunikačním protokolem MODBUS. Úvodem jsou popsány vlastnosti protokolu a jeho funkce. Na základě zjištěných vlastností protokolu jsou v další části navrženy dvě aplikace, které simulují jak část serverovou, tak část klientskou. Serverová část má naimplementovány vybrané funkce protokolu a simuluje zařízení pro sběr dat. Následuje detailní návrh aplikací a popis jejich realizací. Poslední část je věnována testování vytvořených aplikací s dostupnými SW emulátory. Práce obsahuje i uživatelský manuál pro ovládání vytvořených aplikací. Klíčová slova Modbus, ModbusRTU, ModbusASCII, ModbusTCP, RS-232, TCP/IP, C#, klientserver, simulátor Abstract This bachelor s thesis deals with communication protocol MODBUS. The properties of the protocol and its function are described at the beginning of a thesis. There are designed two applications on the basis of identified properties in the other part of thesis, they represent the server part and the client s part. The server part is implemented by selected functions of protocol and it represents devices for data collection. The next part is the detailed design of applications and the description of their realization. The last part deals with testing of designed applications with available SW simulators. The thesis deals also with user manual for control of created applications. Keywords Modbus, ModbusRTU, ModbusASCII, ModbusTCP, RS-232, TCP/IP, C#, clientserver, simulator 3
4 Bibliografická citace: ONDRÁŠEK, M. Simulátor a klient pro MODBUS zařízení. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, s. Vedoucí bakalářské práce doc. Ing. Petr Fiedler, Ph.D. 4
5 Prohlášení Prohlašuji, že svou bakalářskou práci na téma Simulátor a klient pro MODBUS zařízení jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. V Brně dne: 24. května 2013 podpis autora 5
6 Poděkování Děkuji vedoucím bakalářské práce doc. Ing. Petru Fiedlerovi, Ph.D. a Ing Michalovi Kupčíkovi za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce. V Brně dne: 24. května 2013 podpis autora 6
7 Obsah 1 Úvod Historie Budoucnost Porovnání s jinými protokoly CAN (Controller Area Network) HART Popis protokolu Typy média Rozlehlé sítě převod mezi různými typy médií Obecné vlastnosti protokolu Schéma komunikace klient/server Popis protokolu Interní datový model Adresovací model Zpracování transakce Funkce Popis funkce Kódy chybových odpovědí Návrh řešení Simulátor (server) Struktura aplikace Klient Struktura aplikace Realizace Objektový návrh aplikace Ukázky částí zdrojového kódu GUI Simulátor (server) Klient Testování Způsoby testování SW použitý pro testování Virtual Serial Ports Emulator
8 5.2.2 ComTestPro MODBUS RTU Communication Tester Wellamod Com Port Monitor Výsledky testů Závěr
9 Seznam obrázků Obrázek č. 1 Schéma komunikace v rozlehlých sítích [1] Obrázek č. 2 Komunikační schéma podle typu média [1] Obrázek č. 3 Schéma transakce v případě bezchybné komunikace [1] Obrázek č. 4 Schéma transakce v případě detekované chyb na straně serveru [1] Obrázek č. 5 Sekvenční diagram komunikace master/slave [3] Obrázek č. 6 Schéma ADU a PDU Obrázek č. 7 Schéma zpracování odpovědi na straně serveru [1] Obrázek č. 8 Struktura aplikace Obrázek č. 9 Diagram načítání dotazu RTU Obrázek č. 10 Objektový model serveru Obrázek č. 11 Třída Frame Obrázek č. 12 Design vytvořené aplikace serveru Obrázek č. 13 Zobrazení IP adresy a portu vzdáleného klienta v režimu TCP Obrázek č. 14 Design vytvořená aplikace klienta Obrázek č. 15 Ukázka prostředí testovacího SW ComTestPro Obrázek č. 16 Ukázka prostředí testovacího SW Com Port Monitor Seznam tabulek Tabulka č. 1 Rozsah adres režimu RTU Tabulka č. 2 Struktura ADU režimu RTU Tabulka č. 3 Struktura jednoho bajtu režimu RTU Tabulka č. 4 Struktura ADU režimu ASCII Tabulka č. 5 Struktura jednoho bajtu režimu ASCII Tabulka č. 6 Struktura ADU režimu TCP/IP Tabulka č. 7 Interní datový model Tabulka č. 8 Rozsah adres datového modelu Tabulka č. 9 Struktura dotazu funkce 0x Tabulka č. 10 Struktura odpovědi funkce 0x Tabulka č. 11 Struktura dotazu funkce 0x Tabulka č. 12 Struktura odpovědi funkce 0x
10 Tabulka č. 13 Struktura dotazu funkce 0x Tabulka č. 14 Struktura odpovědi funkce 0x Tabulka č. 15 Struktura dotazu 0x Tabulka č. 16 Struktura odpovědi funkce 0x Tabulka č. 17 Struktura dotazu funkce 0x Tabulka č. 18 Struktura odpovědi funkce 0x Tabulka č. 19 Struktura dotazu funkce 0x Tabulka č. 20 Struktura odpovědi funkce 0x Tabulka č. 21 Struktura dotazu funkce 0x Tabulka č. 22 Struktura odpovědi funkce 0x Tabulka č. 23 Struktura dotazu 0x Tabulka č. 24 Struktura odpovědi funkce 0x Tabulka č. 25 Struktura dotazu funkce 0x0B Tabulka č. 26 Struktura odpovědi funkce 0x0B Tabulka č. 27 Struktura dotazu 0x0C Tabulka č. 28 Struktura odpovědi funkce 0x0C Tabulka č. 29 Struktura dotazu funkce 0x0F Tabulka č. 30 Struktura odpovědi funkce 0x0F Tabulka č. 31 Struktura dotazu funkce 0x Tabulka č. 32 Struktura odpovědi funkce 0x Tabulka č. 33 Struktura dotazu funkce 0x Tabulka č. 34 Struktura odpovědi funkce 0x Tabulka č. 35 Struktura dotazu funkce 0x Tabulka č. 36 Struktura odpovědi funkce 0x Tabulka č. 37 Struktura dotazu funkce 0x Tabulka č. 38 Struktura odpovědi funkce 0x Tabulka č. 39 Struktura dotazu funkce 0x Tabulka č. 40 Struktura odpovědi funkce 0x Tabulka č. 41 Struktura dotazu funkce 0x Tabulka č. 42 Struktura odpovědi funkce 0x Tabulka č. 43 Struktura dotazu funkce 0x Tabulka č. 44 Struktura odpovědi funkce 0x Tabulka č. 45 Seznam identifikátorů zařízení Tabulka č. 46 Struktura dotazu funkce 0x2B Tabulka č. 47 Struktura odpovědi funkce 0x2B
11 Tabulka č. 48 Kódy chybových odpovědí Tabulka č. 49 Výsledek testů serveru
12 1 ÚVOD Protokol MODBUS patří mezi sériové komunikační protokoly využívané v automatizační praxi. Navržený simulátor (server) a klient umožní testování SW a HW zařízení, které tímto protokolem komunikují. Podporovány budou režimy RTU a ASCII na sériové lince a MODBUS TCP/IP. Aplikace budou navrženy objektově s využitím návrhových vzorů. Realizace bude obsahovat serverovou i klientskou část. Po kapitole věnované popisu protokolu jsou obsaženy kapitoly vlastního návrhu aplikace, její realizace a výsledky testování s dostupnými SW emulátory. 1.1 Historie Komunikační protokol MODBUS byl od svého vzniku otevřený a jednoduše realizovatelný. Díky těmto vlastnostem byl přijat velkým množstvím výrobců a tímto byl v podstatě definován jako standard pro fieldbus komunikaci. Modbus pochází z pozdních sedmdesátých let minulého století. Bylo to v roce 1979, kdy výrobce PLC firma Modicon nyní značka Schneider Electric Telemecanique publikoval dokument Modbus - komunikační rozhraní pro vícečetné sítě založené na architektuře klient/server. Komunikace mezi uzly, pomocí protokolu Modbus, bylo dosaženo jednotlivými zprávami. Byla to otevřená norma, která popisovala strukturu zprávy. Fyzická vrstva Modbusového rozhraní byla volně k výběru. Originální Modbusové rozhraní běželo na RS-232. Později došlo k implementaci na rozhraní RS- 485, protože umožňovalo komunikovat na delší vzdálenosti, využívat vyšší rychlost a budovat opravdové víceprvkové sítě. V krátké době stovky prodejců implementovalo Modbusový systém zpráv v jejich zařízení a Modbus se de facto stal normou pro průmyslovou komunikační síť. Dobrá věc na Modbusu je jeho flexibilita, ale také jednoduchost jeho implementace. Nejen inteligentní zařízení jako třeba mikropočítače nebo PLC jsou schopny komunikovat s Modbusem, ale také velká řada inteligentních senzorů je vybavena Modbusovým rozhraním, aby vysílala svá data do hostitelských systémů. Zatímco Modbus byl primárně používán hlavně pro sériové komunikační linky, existuje také jeho varianta pro použití v TCP/IP sítích Budoucnost V současné době sdružení uživatelů a dodavatelů automatizační techniky pod hlavičkou spolupracuje na rozšíření použití komunikačního protokolu MODBUS do dalších odvětví průmyslu mezi distribuované řídící systémy. Sdružení se zabývá evangelizací protokolu MODBUS mezi uživateli, testování SW pro certifikaci, a dalšími činnostmi směrujícími k rozšiřování protokolu mezi další uživatele a výrobce. 12
13 Všechny aktivity se konají pod hlavičkou organizace IEC (International Electrotechnical Commission) která sdružuje členy z celého světa. V [10] se uvádí, že v současné době se k IEC hlásí více jak 97% populace. 1.2 Porovnání s jinými protokoly MODBUS je jedním z řady mnoha protokolů, které se v dnešní době v automatizační technice používají. Své místo na trhu má pro svoji jednoduchost, otevřenost a v poslední řade i pro svoji TCP/IP variantu, kdy přechod na tento rychlejší a všesměrový způsob komunikace je pro uživatele pracujícími s verzí RTU nebo ASCII díky znalosti problematiky obsahu zpráv nenáročný a tudíž levný. V následujících kapitolách se objeví několik jeho konkurentů. Každý z uvedených protokolů má své specifické vlastnosti a důvody, proč a pro jaké prostředí byl vytvořen CAN (Controller Area Network) CAN je protokol pro sériovou sběrnici primárně vyvinutou pro použití v automobilovém průmyslu. CAN protokol je mezinárodně standardizovaný v ISO a tvoří ji datový spoj 7. vrstvy ISO /OSI referenčního modelu. CAN obsahuje dvě komunikační služby: Odeslání zprávy a požadavek na zprávu. Obsahuje i další podpůrné služby, jako jsou přenos chybové signalizace a automatický re-přenos chybných rámců. Vyslanou zprávu přijímají všechny uzly, a je na jejich rozhodnutí, zda zprávu zpracují. V případě problémů při přenosu u zařízení s implementovaným CAN protokolem dojde k automatickému přeposlání zprávy, a je tedy zaručen jeho přenos na všechna místa, aniž by uživatel musel vykonávat nějakou akci. Tímto je zaručena konzistentnost dat v celém systému. Pokud mají dvě zařízení potřebu vysílat ve stejný čas, protokol zajistí zaslání zpráv v pořadí podle jejich priority. Výrobci a uživatelé protokolu CAN jsou sdružení ve sdružení HART HART protokol je využíván primárně pro získávání dat ze vzdálených systémů. Jako vedení je použita proudová smyčka 4-20 ma. Protokol umí přenášet jak procesní hodnoty a signály, tak i diagnostické informace o snímačích nebo výstupech. Komunikace protokolem HART je v dnešní době možná již přímo z PLC. S protokolem HART jsem se setkal v praxi u inteligentních snímačů hmotnostního průtoku Micromotion, kdy tyto snímače komunikovali s hlavním technologickým PC právě protokolem HART. 13
14 2 POPIS PROTOKOLU MODBUS je protokol pro komunikaci typu klient/server. Jeho původní použití bylo možné na sériové lince typu RS-232. Později se přidaly i další jako RS-422, RS-485 a v poslední době i sítě Ethernet. Vlastní protokol se u sériových linek dělí podle kódování přenášených dat na přenos RTU (každé zařízení musí mít implementováno) a ASCII (volitelné). V následujících kapitolách se blíže seznámíme se společnými vlastnosti a odlišnostmi jednotlivých variant. 2.1 Typy média MODBUS lze provozovat na následujících typech fyzických rozhraní RS-232 RS-485 dvouvodičové provedení RS-485 čtyřvodičové provedení Ethernet TCP/IP, UDP (koaxiální kabel, kroucený pár, optická vlákna, ) Rozlehlé sítě převod mezi různými typy médií Pro převody mezi různými typy fyzických rozhraní lze využít převodníky a budovat rozlehlé heterogenní sítě. Podmínkou realizace ale je, že všechny zařízení na sériových linkách musí být používat stejný režim (RTU, ASCII). Příklad takové rozlehlé heterogenní sítě je na následujícím obrázku. 14
15 Obrázek č. 1 Schéma komunikace v rozlehlých sítích [1] 2.2 Obecné vlastnosti protokolu Komunikace mezi zařízeními je prováděna na fyzické vrstvě ISO/OSI modelu, nad kterým je vystavěna aplikační vrstva. Struktura je uvedena na následujícím obrázku: Obrázek č. 2 Komunikační schéma podle typu média [1] Lze použít HW/SW převodníky mezi médii a pak lze provozovat komunikaci i v rámci rozlehlých sítí Schéma komunikace klient/server Komunikaci vždy inicializuje klient. V případě že se nejedná o volání typu broadcast, odpovídá volaný server a tím je transakce ukončena. V případě volání typu broadcast, žádná jednotka neodpovídá. 15
16 Obrázek č. 3 Schéma transakce v případě bezchybné komunikace [1] V případě, že dojde na serveru při zpracování k detekci chyby (např. chybná adresa interní proměnné), obsahuje odpověď informaci o tom, že došlo k chybě a jakého druhu tato chyba je. Toto chování je blíže popsané v kapitole věnované chybným voláním. Obrázek č. 4 Schéma transakce v případě detekované chyb na straně serveru [1] Sekvenční diagram popisuje průběh dat na fyzické lince během komunikace mezi klientem a serverem. 16
17 2.2.2 Popis protokolu Obrázek č. 5 Sekvenční diagram komunikace master/slave [3] Hlavní součástí protokolu je PDU (Protocol Data Unit), který je u všech typů médií i režimů stejný. Obsahuje Kód funkce a datovou zprávu. Kódy funkcí jsou stanoveny normou a jsou popsány dále v textu. Vlastní PDU je součástí ADU (Application Data Unit) obsahující další údaje, které se ale již mění v závislosti na typu média a režimu. V případě komunikace protokolem TCP/IP se využívá vlastností uvedeného protokolu a kontrolní součet není třeba. Naopak zpráva obsahuje hlavičku MBAP (MODBUS Application Protocol header), která obsahuje informace k identifikaci dvojice otázka odpověď. Struktura PDU a ADU je uvedena na následujícím obrázku. Obrázek č. 6 Schéma ADU a PDU 17
18 Kontrolní součet CRC/LRC Pro ověření neporušenosti zprávy při komunikaci na sériových linkách se využívá způsob, kdy se na pro zprávu PDU vypočte kontrolní součet a ten, jakožto součást ADU, se posílá s každou zprávou. Obě strany komunikace (master, slave) provádí u každé zprávy výpočet kontrolního součtu a v případě, že vypočtený kontrolní součet z přijatých dat neodpovídá kontrolnímu součtu ve zprávě, není dle definice vracena žádná odpověď. Na straně klienta následně dojde k timeoutu. V případě použití režimu RTU je použit výpočet kontrolního součtu metodou CRC (Cyclical Redundancy Check). V případě protokolu MODBUS se jedná o CRC-16, jež má polynomický zápis x 16 + x 15 + x Způsobů výpočtu je vícero. V realizovaném projektu je použit výpočet [8], kdy jsou předpřipravené dvoubajtové řetězce a jeho výběr na základě vlastních dat ve zprávě. Důvod tohoto výběru je snadná realizovatelnost. Režim ASCII využívá pro výpočet kontrolního součtu metodou LRC (Longitudinal Redundancy Check) [8]. Režim TCP/IP kontrolní součet ve zprávě neobsahuje. Využívá se vlastností TCP/IP protokolu, která správný přenos zpráv zaručuje Sériový režim RTU (Remote Terminal Unit) Jedná se o režim pro sériovou komunikaci master/slave, kdy na jedné lince smí být pouze jedno zařízení typu master a až 247 zařízení typu slave. Komunikaci smí začínat pouze zařízení typu master. Na jedné lince musí všechna zařízení používat stejný režim. Pro identifikaci konce zprávy slouží prodleva ve vysílání delší než 3,5 délky jednoho odesílaného bitu. Tabulka č. 1 Rozsah adres režimu RTU Adresa 0 broadcast všechny zařízení zpracují dotaz, ale neodpovídají příslušné zařízení typu slave zpracuje dotaz a vrátí odpověď rezervované adresy Tabulka č. 2 Struktura ADU režimu RTU 8 bitů Adresa zařízení 8 bitů Číslo funkce N*8 bitů Data 16 bitů Kontrolní součet CRC Tabulka č. 3 Struktura jednoho bajtu režimu RTU 1 start bit 8 datových bitů 1 paritní bit 1 stop bit 18
19 Sériový režim ASCII Režim ASCII je stejně jako režim RTU určen pro komunikaci na sériových linkách. Liší se způsobem formátování dat celého ADU. Každých 8 bitů je převedeno na dvojici znaků ASCII. Délka zprávy je dvojnásobná oproti režimu RTU. Tabulka č. 4 Struktura ADU režimu ASCII Znak ; Znak pro identifikaci začátku zprávy 2 znaky Adresa zařízení 2 znaky Číslo funkce N*2 znaky Data 2 znaky Kontrolní součet LRC Znaky CR LF Identifikátor konce zprávy Tabulka č. 5 Struktura jednoho bajtu režimu ASCII 1 start bit 7 datových bitů 1 paritní bit 1 stop bit Ethernet TCP/IP Modifikace pro TCP/IP je v poslední době masivně podporovaná. Důvodem je především snadná implementace a zpětná kompatibilita se staršími zařízeními s použitím media konvertorů např. TCP/IP RS-485. Naslouchání zařízení je vyhrazen port 502. Komunikace může probíhat v jeden okamžiky mezi různými zařízeními, protože se volá z klienta právě jeden konkrétní server. Situace se může i obrátit. Výsledkem jsou zařízení, která se umí chovat jako klient i jako server. Při využití běžných rychlostí 100MB/s nebo 1GB/s se jedná o velice rychlý způsob výměny informací. Vzhledem k tomu, že se jedná o spojovaný protokol, kde po navázání spojení probíhá posílání a potvrzování příjmu dat definovaně, není nutno k PDU přidávat kontrolní součet. Protokol jako takový zaručí správné pořadí zasílaných paketů Tabulka č. 6 Struktura ADU režimu TCP/IP 16 bitů Identifikátor transakce 16 bitů Identifikace protokolu (00 00) 16 bitů Délka zprávy 8 bitů Adresa zařízení 8 bitů Číslo funkce N*8 bitů Data 19
20 Ethernet UDP Vzhledem k tomu, že se jedná o protokol, kdy jsou zasílány nezávislé zprávy, je nutno v tomto případě zprávu doplnit kontrolním součtem. Na rozdíl od TCP k zaslání zprávy stačí menší množství paketů Interní datový model Interní tabulky jsou rozděleny podle druhu vstupu/výstupu na následující oblasti: Tabulka č. 7 Interní datový model Typ oblasti Velikost položky Přístup Popis Diskrétní vstupy 1 bit Pouze pro čtení Vstupní binární data (0/1) Diskrétní výstupy 1 bit Čtení-zápis Výstupní binární data (0/1) Vstupní registry 16 bitů Pouze pro čtení Vstupní analogová data ( ) Paměťové registry 16 bitů Čtení-zápis Výstupní (paměťová) analogová data ( ) Interní tabulky jsou členěny do skupin po položkách, kde jednotlivým typům oblastí jsou přiděleny následující adresové prostory: Tabulka č. 8 Rozsah adres datového modelu Typ oblasti Adresy Diskrétní vstupy Diskrétní výstupy Vstupní registry Paměťové registry Adresovací model Adresy z klientské aplikace se při zpracování na straně serveru přepočítávají na adresy interní. Platí, že na dotaz na diskrétní vstup s číslem 1 server zpracovává interně čtení z diskrétního vstupu s adresou 0. Toto vychází z adresování interního datového modelu, kde vždy první položka je na adrese 0. 20
21 2.2.5 Zpracování transakce Při příjmu dotazu na straně serveru dochází ke zpracování dle následujícího vývojového diagramu. V případě, že dojde k vyhodnocení chyby, je tato zaslána klientovi tak, že kód zprávy je zvýšen o hodnotu 0x80 a v odpovědi následuje kód chyby. Podrobnější popis chování v chybovém stavu je uveden v další části dokumentu Funkce Obrázek č. 7 Schéma zpracování odpovědi na straně serveru [1] V definici protokolu MODBUS [1] jsou definovány funkce, které lze rozdělit do následujících kategorií, a které jsou dále podrobně popsány: Veřejné kódy funkcí 21
22 jsou jednoznačně definované jsou unikátní validovány sdružením MODBUS.org veřejně dokumentované jsou testy shody obsahují veřejné kódy přiřazené k funkcím i kódy dosud nepřiřazené (rezervované pro budoucí použití) Uživatelsky definované kódy funkcí mohou obsahovat kódy v rozsahu: a uživatel si může implementovat funkci, která není definována jako veřejná unikátnost kódů není garantována po schválení sdružením MODBUS.org lze uživatelskou funkci přesunout do veřejných Rezervované kódy funkcí tyto kódy v současné době používají některé společnosti pro starší produkty a nejsou k dispozici pro veřejné použití Popis funkce x01 Čtení výstupů (Read Coils) Tento kód funkce se používá pro čtení hodnot 1 až 2000 diskrétních výstupů na straně serveru. Dotaz obsahuje počáteční adresu, tj. adresu prvního výstupu, a jejich počet. Interně se data adresují od hodnoty 0, proto požadavek na adresy 1-16 je interně vyhodnocen pro data z adresy Jednotlivé výstupy jsou v odpovědi uspořádány po 8, kdy každý bit odpovídá jednomu výstupu. Bity jsou v jednotlivých bajtech obsazovány od nejnižšího k nejvyššímu. V případě, že počet není dělitelný osmi, jsou bity do plné hodnoty bajtu doplněny nulami. Počet bajtů pak označuje počet osmic bitů v odpovědi jako počet bajtů. Tabulka č. 9 Struktura dotazu funkce 0x01 Kód funkce 1 bajt 0x01 Počáteční adresa 2 bajty 0x0000-0xFFFF Množství vstupů 2 bajty (0x7D0) 22
23 Tabulka č. 10 Struktura odpovědi funkce 0x01 Kód funkce 1 bajt 0x01 Počet bajtů 1 bajt N* Stavy vstupů n bajtů n = N or N+1 *N = Počet výstupů / 8, pokud je zbytek po dělení potom N = N x02 Čti diskrétní vstupy (Read Discrete Inputs) Tento kód funkce se používá pro čtení hodnot 1 až 2000 diskrétních vstupů na straně serveru. Dotaz obsahuje počáteční adresu, tj. adresu prvního vstupu, a jejich počet. Interně se data adresují od hodnoty 0, proto požadavek na adresy 1-16 je interně vyhodnocen pro data z adresy Jednotlivé výstupy jsou v odpovědi uspořádány po 8, kdy každý bit odpovídá jednomu výstupu. Bity jsou v jednotlivých bajtech obsazovány od nejnižšího k nejvyššímu. V případě, že počet není dělitelný osmi, jsou bity do plné hodnoty bajtu doplněny nulami. Počet bajtů pak označuje počet osmic bitů v odpovědi jako počet bajtů. Tabulka č. 11 Struktura dotazu funkce 0x02 Kód funkce 1 bajt 0x02 Počáteční adresa 2 bajty 0x0000-0xFFFF Množství vstupů 2 bajty (0x7D0) Tabulka č. 12 Struktura odpovědi funkce 0x02 Kód funkce 1 bajt 0x02 Počet bajtů 1 bajt N* Stavy vstupů n bajtů n = N or N+1 *N = Počet výstupů / 8, pokud je zbytek po dělení potom N = N x03 Čti paměťové registry (Read Holding Registers) Tento kód funkce se používá pro čtení hodnot 1 až 125 paměťových registrů na straně serveru. Dotaz obsahuje počáteční adresu, tj. adresu prvního registru, a jejich počet. Interně se data adresují od hodnoty 0, proto požadavek na adresy 1-16 je interně vyhodnocen pro data z adresy Každá hodnota registru je vracena ve dvou bajtech. První bajt obsahuje horních 8 bitů a druhý bajt dolních 8 bitů. Tabulka č. 13 Struktura dotazu funkce 0x03 Kód funkce 1 bajt 0x03 Počáteční adresa 2 bajty 0x0000-0xFFFF Množství registrů 2 bajty (0x7D) 23
24 Tabulka č. 14 Struktura odpovědi funkce 0x03 Kód funkce 1 bajt 0x03 Počet bajtů 1 bajt 2 x N* Hodnoty registrů N* x 2 bajtů *N = Množství registrů x04 Čti vstupní registry (Read Input Registers) Tento kód funkce se používá pro čtení hodnot 1 až 125 vstupních registrů na straně serveru. Dotaz obsahuje počáteční adresu, tj. adresu prvního registru, a jejich počet. Interně se data adresují od hodnoty 0, proto požadavek na adresy 1-16 je interně vyhodnocen pro data z adresy Každá hodnoty registru je vracena ve dvou bajtech. První bajt obsahuje horních 8 bitů a druhý bajt dolních 8 bitů. Tabulka č. 15 Struktura dotazu 0x04 Kód funkce 1 bajt 0x04 Počáteční adresa 2 bajty 0x0000-0xFFFF Množství registrů 2 bajty (0x7D) Tabulka č. 16 Struktura odpovědi funkce 0x04 Kód funkce 1 bajt 0x04 Počet bajtů 1 bajt 2 x N* Hodnoty registrů N* x 2 bajtů *N = Množství registrů x05 Zapiš jeden výstup (Write Single Coil) Tento kód funkce se používá pro změnu jednoho diskrétního výstupu do stavu 0 nebo 1. Požadovaná hodnota 0/1 je dána konstantou v dotazu. Hodnota 0xFF00 znamená, že výstup přejde do stavu 1 a hodnota 0x0000 způsobí přepnutí výstupu do stavu 0. Všechny ostatní hodnoty jsou nepovolené a nebudou mít vliv na změnu výstupu. Dotaz obsahuje adresu konkrétního výstupu, pro který je změna výstupu požadována. Normální odpověď je vrácení dotazu po provedení požadované změny. Tabulka č. 17 Struktura dotazu funkce 0x05 Kód funkce 1 bajt 0x05 Adresa výstupu 2 bajty 0x0000-0xFFFF Zapisovaná hodnota 2 bajty 0x0000 nebo 0xFF00 24
25 Tabulka č. 18 Struktura odpovědi funkce 0x05 Kód funkce 1 bajt 0x05 Adresa výstupu 2 bajty 0x0000-0xFFFF Zapisovaná hodnota 2 bajty 0x0000 nebo 0xFF x06 Zapiš jeden registr (Write Single Register) Tento kód funkce se používá pro změnu hodnoty jednoho paměťového registru Dotaz obsahuje adresu konkrétního registru, pro který je změna hodnoty požadována. Normální odpověď je vrácení dotazu po provedení požadované změny. Tabulka č. 19 Struktura dotazu funkce 0x06 Kód funkce 1 bajt 0x06 Adresa registru 2 bajty 0x0000-0xFFFF Zapisovaná hodnota 2 bajty 0x0000-0xFFFF Tabulka č. 20 Struktura odpovědi funkce 0x06 Kód funkce 1 bajt 0x06 Adresa registru 2 bajty 0x0000-0xFFFF Zapisovaná hodnota 2 bajty 0x0000-0xFFFF x07 Čti stav vyjímek (Read Exception Status) pouze pro sériovou linku Tento kód funkce se používá pro čtení informací o výjimkách v koncovém zařízení. Normální odpověď obsahuje stav osmi interních proměnných, Jednotlivé výjimky uspořádány do jednoho bajtu. Nejnižší proměnná v nejnižším bitu. Tabulka č. 21 Struktura dotazu funkce 0x07 Kód funkce 1 bajt 0x07 Tabulka č. 22 Struktura odpovědi funkce 0x07 Kód funkce 1 bajt 0x07 Výstupní data 1 bajt 0x00-0xFF x08 Diagnostika (Diagnostics) pouze pro sériovou linku Kód funkce 08 poskytuje celou řadu možností pro kontrolu komunikace mezi klientem a serverem, nebo pro kontrolu různých vnitřních chybových stavů serveru. Funkce využívá dvoubajtový kód subfunkce pro definování požadované informace. Odpověď obsahuje data z dotazu nebo specifická požadovaná data. 25
26 Obecně platí, že volání diagnostických funkcí na serveru nesmí mít vliv na vykonávání uživatelského programu na serveru. Tyto diagnostické funkce jsou určeny pouze pro sériové linky. Normální odpověď pro subfunkci 0x01 je pouze vrácení dotazu. Tabulka č. 23 Struktura dotazu 0x08 Kód funkce 1 bajt 0x08 Kód subfunkce 2 bajty Data N * 2 bajty Tabulka č. 24 Struktura odpovědi funkce 0x08 Kód funkce 1 bajt 0x08 Kód subfunkce 2 bajty Data N * 2 bajty Seznam subfunkcí: 0x0000 Vrať dotaz 0x0001 Restartuj komunikaci 0x0002 Vrať diagnostický registr 0x0003 Změň ASCII oddělovač 0x0004 Přejdi do režimu pouze příjem 0x0005-0x09 Rezervováno 0x000A Vynuluj čítače a diagnostický registr 0x000B Vrať počet zpráv 0x000C Vrať počet chyb při komunikaci 0x000D Vrať počet chybných odpovědí 0x000E Vrať počet zpracovaných dotazů 0x000F Vrať počet nezpracovaných dotazů 0x0010 Vrať počet dotazů s negativním potvrzením 0x0011 Vrať počet odpovědí Zaneprázdněn 0x0012 Vrať počet neplatných délek dotazů 0x0013 Rezervováno 0x0014 Vynuluj počet odpovědí neplatných délek dotazů 0x0015 0xFFFF Rezervováno 26
27 x0B Čti čítače událostí (Get Comm Event Counter) - pouze pro sériovou linku Tento kód funkce se používá k získání stavů čítačů událostí. Použitím této funkce si může klient ověřit, zda došlo k úspěšnému zpracování zaslané dávky dotazů. Počet přijatých a úspěšně zpracovaných zpráv by měl odpovídat počtu zaslaných dotazů. Čítače mohou být vynulovány pomocí diagnostické funkce (kód 0x08), se subfunkcí pro restart komunikace (kód 0x0001) nebo subfunkcí pro vynulování čítače a diagnostického registru (kód 0x000A). Normální odpověď obsahuje dvoubajtové stavové slovo a dvoubajtovou hodnotu čítače. Tabulka č. 25 Struktura dotazu funkce 0x0B Kód funkce 1 bajt 0x0B Tabulka č. 26 Struktura odpovědi funkce 0x0B Kód funkce 1 bajt 0x0B Status 2 bajty 0x0000-0xFFFF Hodnota čítače 2 bajty 0x0000-0xFFFF x0C Čti logy událostí (Get Comm Event Log) pouze pro sériovou linku Tento kód funkce se používá k získání stavů, počtu událostí, počtu zpráv a pole událostí ze serveru. Počet událostí obsahuje množství zpráv zpracovaných na serveru od jeho posledního restartu, vymazání čítačů provozu, nebo uvedení do provozu. Tento počet je stejný jako vrátí diagnostická funkce (kód 0x08). Normální odpověď obsahuje dvoubajtový stav, dvoubajtový počet událostí, dvoubajtový počet zpráv a pole obsahující 0-64 bajtů událostí. Tabulka č. 27 Struktura dotazu 0x0C Kód funkce 1 bajt 0x0C Tabulka č. 28 Struktura odpovědi funkce 0x0C Kód funkce 1 bajt 0x0C Počet bajtů 1 bajt N* Status 2 bajty 0x0000-0xFFFF Počet událostí 2 bajty 0x0000-0xFFFF Počet zpráv 2 bajty 0x0000-0xFFFF Události (N-6) x 1 bajt * N = množství událostí + 3 x 2 bajty, (Status, Počet událostí a Počet zpráv) 27
28 x0F Zapiš více výstupů (Write Multiple Coils) Tento kód funkce se používá k nastavení více diskrétních výstupů na požadované hodnoty na serveru. Požadované hodnoty jsou uvedeny jako hodnoty jednotlivých bitů v zaslaných bajtech hodnot. V případě, že počet není dělitelný 8, je doplněn nulami. Normální odpověď vrátí kód funkce, počáteční adresu a množství výstupů. Tabulka č. 29 Struktura dotazu funkce 0x0F Kód funkce 1 bajt 0x0F Počáteční adresa 2 bajty 0x0000-0xFFFF Množství výstupů 2 bajty 0x0001-0x07B0 Počet bajtů 1 bajt N* Hodnoty N* x 1 bajt Tabulka č. 30 Struktura odpovědi funkce 0x0F Kód funkce 1 bajt 0x0F Počáteční adresa 2 bajty 0x0000-0xFFFF Množství výstupů 2 bajty 0x0001-0x07B x10 Zapiš více registrů (Write Multiple Registers) Tento kód funkce se používá k zápisu bloku sousedících paměťových registrů (1-123 registrů) na serveru. Požadované hodnoty jsou uvedeny v poli hodnot registrů (vždy po dvou bajtech na registr). Normální odpověď vrátí kód funkce, počáteční adresu a množství registrů. Tabulka č. 31 Struktura dotazu funkce 0x10 Kód funkce 1 bajt 0x10 Počáteční adresa 2 bajty 0x0000-0xFFFF Množství registrů 2 bajty 0x0001-0x07B0 Počet bajtů 1 bajt N* Hodnoty registrů N* x 2 bajty Tabulka č. 32 Struktura odpovědi funkce 0x10 Kód funkce 1 bajt 0x10 Počáteční adresa 2 bajty 0x0000-0xFFFF Množství registrů 2 bajty 0x0001-0x07B0 28
29 x11 Sděl identifikaci (Report Slave ID) pouze pro sériovou linku Tento kód funkce se používá k přečtení identifikátoru serveru, jeho stavu a dalších specifických informací serveru. Tabulka č. 33 Struktura dotazu funkce 0x11 Kód funkce 1 bajt 0x11 Tabulka č. 34 Struktura odpovědi funkce 0x11 Kód funkce 1 bajt 0x11 Počet bajtů 1 bajt 0x00-0xFF Identifikátor serveru Definováno zařízením Status serveru 1 bajt 0x00 = OFF, 0xFF = ON Další data x14 / 0x06 Čti ze souboru (Read File Record) Tento kód funkce se používá ke čtení obsahu souboru. Soubor je organizace záznamů. Každý soubor obsahuje záznamů, určeno desítkově nebo 0x0000 až 0X270F. Funkce může číst více souvislých částí souboru. Čtení záznamů v souboru je vždy sekvenční. Každá skupina je definována v samostatném "subdotazu" následujícími údaji: Referenční typ: 1 byte (musí být specifikován jako 0x06) Číslo souboru: 2 bajty Počáteční číslo záznamu v rámci souboru: 2 bajty Délka záznamu ke čtení: 2 bajty. Množství záznamů ke čtení, v kombinaci se všemi ostatními poli v očekávané odpovědi, nesmí překročit přípustnou délku pro MODBUS PDU: 253 bajtů. Normální reakce je série "sub-odpovědí", jedna pro každý "sub-dotaz". Počet bajtů je celkový počet bajtů ve všech "sub-odpovědích". Kromě toho každá "suodpověď" obsahuje informaci o délce v bajtech. Tabulka č. 35 Struktura dotazu funkce 0x14 Kód funkce 1 bajt 0x14 Počet bajtů 1 bajt 0x07-0xF5 Subdotaz typ reference 1 bajt 0x06 Subdotaz číslo souboru 2 bajty 0x0000-0xFFFF Subdotaz číslo záznamu 2 bajty 0x0000-0x270F Subdotaz délka záznamu 2 bajty N Další subdotaz 29
30 Tabulka č. 36 Struktura odpovědi funkce 0x14 Kód funkce 1 bajt 0x14 Počet bajtů 1 bajt 0x07-0xF5 Subdotaz délka záznamu 1 bajt 0x07-0xF5 Subdotaz typ reference 2 bajty 0x06 Subdotaz data záznamu N x 2 bajty Další subdotaz x15 / 0x06 Zapiš do souboru (Write File Record) Tento kód funkce se používá k zápisu do souboru. Soubor je organizace záznamů. Každý soubor obsahuje záznamů, určeno desítkově nebo 0x0000 až 0X270F. Funkce může zapisovat do více souvislých částí souboru. Zápis záznamů v souboru je vždy sekvenční. Každá skupina je definována v samostatném "subdotazu", který obsahuje následující údaje: Referenční typ: 1 byte (musí být specifikováno jako 0x06) Číslo souboru: 2 bytů Počáteční záznam číslo v rámci souboru: 2 bytů Délka záznamu má být zapsán: 2 bajty Údaje, které mají být písemná: 2 bytů na registru. Velikost dotazu nesmí překročit přípustnou délku pro MODBUS PDU: 253 bajtů. Normální odpověď je kopie dotazu. Tabulka č. 37 Struktura dotazu funkce 0x15 Kód funkce 1 bajt 0x15 Počet bajtů 1 bajt 0x09-0xFB Subdotaz typ reference 1 bajt 0x06 Subdotaz číslo souboru 2 bajty 0x0000-0xFFFF Subdotaz číslo záznamu 2 bajty 0x0000-0x270F Subdotaz délka záznamu 2 bajty N Subdotaz data N x 2 bajty Další subdotaz Tabulka č. 38 Struktura odpovědi funkce 0x15 Kód funkce 1 bajt 0x15 Počet bajtů 1 bajt 0x09-0xFB Subdotaz typ reference 1 bajt 0x06 Subdotaz číslo souboru 2 bajty 0x0000-0xFFFF Subdotaz číslo záznamu 2 bajty 0x0000-0x270F 30
31 Subdotaz délka záznamu 2 bajty N Subdotaz data N x 2 bajty Další subdotaz x16 Zapiš registr s maskováním (Mask Write Register) Tento kód funkce se používá k úpravě obsahu určeného paměťového registru pomocí AND-masky a OR-masky. Masky mohou být použity k nastavení nebo vynulování jednotlivých bitů v registru. Tato funkce je zpracovávána následujícím algoritmem: Výsledek = (aktuální obsah AND AND-maska) OR (OR-maska AND (NOT ANDmaska)) Například: Aktuální obsah = AND-maska = F OR-maska = (NOT AND-maska) = 0D Výsledek = Normální odpověď je vrácení dotazu. Tabulka č. 39 Struktura dotazu funkce 0x16 Kód funkce 1 bajt 0x16 Adresa registru 2 bajty 0x0000-0xFFFF AND maska 2 bajty 0x0000-0xFFFF OR maska 2 bajty 0x0000-0xFFFF Tabulka č. 40 Struktura odpovědi funkce 0x16 Kód funkce 1 bajt 0x16 Adresa registru 2 bajty 0x0000-0xFFFF AND maska 2 bajty 0x0000-0xFFFF OR maska 2 bajty 0x0000-0xFFFF x17 Čti/Zapiš více registrů (Read/Write Multiple Registers) Tento kód funkce provádí kombinaci operace čtení a operace zápisu do paměťového registru v jedné transakci. Operace zápisu se provádí před čtením. Interně se data adresují od hodnoty 0, proto požadavek na adresy 1-16 je interně vyhodnocen pro data z adresy Dotaz obsahuje počáteční adresu a počet registrů pro čtení. Dále obsahuje i počáteční adresu pro zápis a počet registrů. 31
32 Normální odpověď obsahuje data ze skupiny registrů, které byly požadovány pro čtení. Počet bajtů určuje množství bajtů s obsahem čtených registrů. Tabulka č. 41 Struktura dotazu funkce 0x17 Kód funkce 1 bajt 0x17 Počáteční adresa pro čtení 2 bajty 0x0000-0xFFFF Množství registrů pro čtení 2 bajty 0x0000-0xFFFF Počáteční adresa pro zápis 2 bajty 0x0000-0xFFFF Množství registrů pro zápis 2 bajty 0x0000-0xFFFF Množství bajtů pro zápis 1 bajt 2 x N* Hodnoty registrů pro zápis N* x 2 bajty *N = Množství pro zápis Tabulka č. 42 Struktura odpovědi funkce 0x17 Kód funkce 1 bajt 0x17 Počet bajtů 1 bajt 2 x N'* Hodnoty registrů N'* x 2 bajty *N' = Množství pro čtení x18 Čti FIFO frontu (Read FIFO Queue) Tento kód funkce umožňuje číst obsah First-In-First-Out (FIFO) fronty registru na serveru. Odpověď vrací počet položek ve frontě a následuje výčet těchto položek. Lze přečíst až 32 registrů (ukazatel + 31). V normální odpovědi počet bajtů obsahuje celkovou délku všech vracených položek fronty. Pokud fronta obsahuje více než 31 položek, je vracena chyba s kódem 0x03. Tabulka č. 43 Struktura dotazu funkce 0x18 Kód funkce 1 bajt 0x18 Ukazatel FIFO 2 bajty 0x0000-0xFFFF Tabulka č. 44 Struktura odpovědi funkce 0x18 Kód funkce 1 bajt 0x18 Počet bajtů 2 bajty 0x0000-0xFFFF Délka fronty 2 bajty <= 31 Hodnota fronty FIFO N* x 2 bajty *N = Délka fronty 32
33 x2B Zapouzdřený přenos (Encapsulated Interface Transport) Kód funkce 0x2B je jedním ze dvou dostupných metod pro zapouzdření požadavku. MODBUS Encapsulated Interface (MEI) je mechanismus pro tunelování dotazů v rámci PDU. Primární rys MEI služby je zapouzdření a vyvolání metody nebo požadované služby, které jsou součástí definovaného rozhraní x2B / 0x0D CANOpen obecný odkaz (CANOpen General Reference) CANopen obecný odkaz slouží k zapouzdření služeb, které budou používat pro přístup k (čtení nebo zápisu) záznamům CAN-Open slovníku zařízení. Stejně tak pro řízení a monitorování CANopen systému, a zařízení x2B / 0x0E Čti identifikaci zařízení (Read Device Identification) Tento kód funkce umožňuje čtení identifikace a dalších informací vztažených k fyzickému a funkčnímu popisu serveru. Identifikace rozhraní je vytvořena jako adresní prostor složený ze sady adresovatelných datových prvků. Datové prvky se nazývají objekty a identifikuje je objekt ID. Rozhraní se skládá z 3 kategorií objektů: Základní identifikace zařízení. Všechny objekty v této kategorii jsou povinné: Název výrobce, Kód zboží, číslo verze a revize. Obvyklá identifikace zařízení. Obsahuje doplňkové a volitelné identifikace a popisy datových objektů. Všechny objekty této kategorie jsou definovány v normě, ale jejich realizace je volitelná. Rozšířená identifikace zařízení. Obsahuje doplňkové a volitelné identifikace a soukromé popisy zařízení. Všechny tyto údaje jsou závislé na zařízení. Tabulka č. 45 Seznam identifikátorů zařízení Objekt ID Název Typ Povinnost Kategorie 0x00 Název výrobce ASCII řetezec Povinný Základní 0x01 Kód zboží ASCII řetezec Povinný Základní 0x02 Číslo verze a ASCII řetezec Povinný Základní revize 0x03 URL výrobce ASCII řetezec Nepovinný Obvyklá 0x04 Název zboží ASCII řetezec Nepovinný Obvyklá 0x05 Název typu ASCII řetezec Nepovinný Obvyklá 0x06 Název aplikace ASCII řetezec Nepovinný Obvyklá 0x07 0x7F Rezervováno Nepovinný Obvyklá 0x80 0xFF Soukromé Nepovinný Rozšířená 33
34 popisy zařízení Tabulka č. 46 Struktura dotazu funkce 0x2B Kód funkce 1 bajt 0x2B MEI typ 1 bajt 0x0E ID kód zařízení 1 bajt 01/02/03/04 ID objektu 1 bajt 0x00 0xFF * MEI = MODBUS Encapsulated Interface Tabulka č. 47 Struktura odpovědi funkce 0x2B Kód funkce 1 bajt 0x2B MEI typ 1 bajt 0x0E ID kód zařízení 1 bajt 01/02/03/04 Úroveň shody 1 bajt 0x01/ 0x02/ 0x03/ 0x81/ 0x82/ 0x83 Další pokračování 1 bajt 0x00/ 0xFF Další ID objektu 1 bajt ID objektu Počet objektů 1 bajt Seznam - ID objektu 1 bajt - Délka objektu 1 bajt - Hodnota objektu Délka objektu Kódy chybových odpovědí V případě chyby při zpracování dotazu je kód funkce zvýšen o hodnotu 0x80 a dále se vrací kód chyby z uvedeného výčtu Tabulka č. 48 Kódy chybových odpovědí Kód Název Popis chyby 0x01 Neplatná funkce Kód funkce v dotazu není přípustný pro server. Důvodem může být nerealizace z důvodu implementace starší verze protokolu, nebo není realizován. 0x02 Neplatná adresa Adresa dat přijatých v dotazu není přípustná jako adresa serveru. Může být i v případě, že počet údajů je větší než počet interních proměnných. 0x03 Neplatná hodnota Hodnota obsažená v datovém poli dotazu není povolená pro server. 34
35 0x04 Nedefinovaná chyba Došlo k nedefinované chybě na serveru při pokusu o provedení požadovaná funkce. 0x05 Potvrzení Určeno pro použití při programování. Při přijetí je vrácen uvedený kód, ale zpracování dotazu ještě probíhá na pozadí. 0x06 Server je zaneprázdněn Určeno pro použití při programování. Server se zabývá zpracováním a neodpovídá (je přetížen). Je potřeba požadavek odeslat později. 0x08 Neplatná parita Určeno pro použití ve spojení s funkcemi s kódy 0x14 a 0x15 referenční typ 6, což znamená, že došlo k porušení konzistentnosti souboru. Server se pokusil číst záznam souboru, ale zjistil chybu parity v paměti. 0x0A Neplatná cesta k bráně Určeno pro použití ve spojení s branami. Význam znamená, že brána není schopna provést interní komunikaci cestou od vstupního k výstupnímu portu pro zpracování požadavku. Obvykle toto znamená, že brána je nefunkční nebo je přetížena. 0x0B Cílová brána neodpovídá Určeno pro použití ve spojení s branami. Ukazuje, že žádná odpověď nebyla získána z cílového zařízení. Obvykle znamená, že zařízení se nenachází na síti. 35
36 3 NÁVRH ŘEŠENÍ V první řadě bylo přistoupeno k návrhu simulátoru podle informací z popisu protokolu. Aplikace musí umožňovat komunikovat po sériové lince RS-232 i po TCP/IP. Byl proveden návrh struktury aplikace (obrázek č. 8) tak, aby jednotlivé části bylo možné použít i v jiných aplikacích komunikujících jak protokolem MODBUS, tak i jinými typy protokolů. V dalším kroku bylo přistoupeno k výběru vhodné platformy pro vlastní aplikaci. Jelikož provozování jak serverové, tak klientské části aplikace se bude provádět na PC, kde běží operační systém Microsoft Windows, byla zvolena technologie Microsoft, a to konkrétně použití Frameworku.NET, který je součástí standardní instalace Microsoft Windows. Typ aplikace byl vybrán Windows form z důvodu možnosti běhu vícero instancí jedné aplikace v prostředí operačního systému a tím možnosti simulování vícero připojených zařízení. Vývojové prostředí bylo využito Visual Studio 2008, a vlastní aplikace je naprogramovaná v jazyce C#. Jazyk C# byl vybrán pro svoji podobnost s jazykem Java a jazykem C++. Pro vývoj aplikace byly využity pouze standardní knihovny prostředí, které není nutno licencovat či platit. 3.1 Simulátor (server) Jedním z hlavních požadavků na práci serverové části je možnost běhu více instancí na jednom PC. Tento požadavek je zdůvodněn možností virtuálního testování více připojených serverů k jednomu klientovi. Dalším požadavkem byla vizualizace stavu, že daný server právě komunikuje (zpracovává zprávu), aby bylo vizuálně na první pohled vidět, že zprávu zpracovává server, který má id zařízení definované dotazem od klienta. Pro účely vyhodnocení průběhu komunikace lze veškerou komunikaci (RS- 232 i TCP/IP) ukládat do souboru. Zprávy se ukládají ve dvojicích vždy dotaz + odpověď, kdy je u každé zprávy vyznačen směr, typ komunikace, datum a čas. U komunikace po RS-232 navíc i režim. Ukázka zápisu komunikace do souboru (dvojice dotaz a odpověď): :20: TCP/IP --> :20: TCP/IP < B AE Struktura aplikace 36
37 Obrázek č. 8 Struktura aplikace GUI GUI neboli uživatelské rozhraní slouží ke komunikaci mezi uživatelskou obsluhou a vlastní aplikací. Obsahuje část věnovanou nastavení parametrů simulátoru. Jedná se především o typ komunikace (RTU, ASCII, TCP/IP), výběr sériového portu, IP adresu zařízení a port. Obsahuje také ovládací prvky pro spuštění a zastavení běhu vlastního simulátoru. Největší část formuláře je vyhrazena vizualizaci definovaného počtu vnitřních proměnných. Jedná se o 16 digitálních vstupů a výstupů a 4 vstupní a paměťové registry. Vstupní proměnné lze editovat, výstupní a paměťové pouze prohlížet. Při spuštění aplikace je prováděno zjišťování, které sériové porty jsou v systému dostupné a pouze tyto se nabízí k výběru. U IP adresy simulátoru se provádí také načtení všech v systému dostupných IP adres. v GUI jsou zobrazovány pouze IP adresy verze 4. 37
38 Nastavení Slouží k uložení nastavení aplikace a je provedenou statickou třídou Settings RS-232 RTU Tato komponenta zpracovává komunikace po sériové lince RS-232, dle definice MODBUS RTU. Zajišťuje čtení asynchronních dotazů a odesílání odpovědí. Způsob načítání zpráv ze sériové linky je uveden v následujícím diagramu. Událost příjem dat Obsahuje port data? Načti bajt z portu do pole Je v poli více než 2 bajty? x = délka dotazu podle kódy funkce Je v poli více než x bajtů? Předání pole bajtů do dispečera Konec Obrázek č. 9 Diagram načítání dotazu RTU 38
39 RS-232 ASCII Vzhledem k tomu, že použitá komponenta.net Frameworku má již implementovanou metodu ReadLine, která umí načítat zprávu po definovaný řetězec znaků, který režim ASCII má, lze načítání oproti režimu RTU výrazně zjednodušit. Událost je vyvolána právě v okamžiku, kdy má ve vstupním bufferu načtený dotaz. Celý dotaz neboli ADU je zkontrolován, zda obsahuje úvodní znak :, a zda je v pořádku kontrolní součet LRC. Pro jeho kontrolu se volá objekt Util. Z celého načteného dotazu je odděleno PDU a je pomocí objektu Frame předáno do řídícího objektu k dalšímu zpracování. PDU odpovědi od řídícího objektu je opět doplněno na ADU a metodou WriteLine je odeslána na sériový port odpověď TCP/IP Komponenta komunikuje v synchronním režimu. Po aktivaci posluchače (Listener) se vyčkává na navázání spojení. Po navázání spojení ze strany klienta se zasílaná data načítají do datového proudu (Stream). Po načtení zprávy se provádí její zpracování (uložení identifikátorů nutných pro odpověď, kontrola délky) a separovaná část obsahující PDU je předána do dispečera k dalšímu zpracování Dispečer Zde se řídí předávání PDU dle přijatého kódu funkce k dalšímu zpracování v příslušné komponentě. Před zpracováním je provedena kontrola , 02, 03, 04,.. Obsahuje část kontroly zprávy a vlastního zpracování zprávy. Část kontroly na základě adresy první proměnné a jejich počtu kontroluje, zda je dotaz veden na proměnné, které jsou v úložišti deklarovány. V případě, že by došlo k požadavku na proměnnou, která není deklarována, zpráva není dále zpracovávána a je zpět zasílána definovaná chyba. V případě, že kontrola proběhne v pořádku, je zpráva zpracována. To znamená, že data jsou nastavena nebo přečtena dle konkrétního typu funkce. Simulátor má vytvořeny následující funkce: 01, 02, 03, 04, 05, 06 a Uložiště Má za úkol uchovávat a spravovat data na úrovni jednotlivých diskrétních a analogových vstupů a výstupů. Při spuštění inicializuje dle adresného modelu pro každý typ proměnné prvků, v kterých jsou uchované vlastní hodnoty. Tyto prvky jsou v této komponentě ve formě kolekcí, které umožňují nejsnadnější manipulaci s daty tohoto typu Digitální I/O Tento prvek obsahuje vždy jeden konkrétní digitální vstup nebo výstup. Obsahuje vždy adresu a hodnotu. Zobrazí se IP adresa a port vzdáleného klineta. 39
40 Registr V tomto případě se jedná o jeden konkrétní vstupní nebo paměťový registr. Obsahuje vždy adresu a hodnotu Util Obsahuje metody, které lze použít kdekoli v aplikaci. Například konverze pole bajtů do řetězce a naopak, nebo konverzi dvou bajtů na číslo typu UInt16, což je nezáporné celé číslo definované 16 bity ve správném pořadí vstupních bajtů Zpráva PDU Komponenta, která zastřešuje vlastní data PDU a základní operace pro usnadnění práce s PDU. Jedná se například o metody pro vrácení kódu funkce, vložení bajtu nebo pole bajtů a další. 3.2 Klient Požadavky na funkčnost klienta v komunikaci vychází z implementovaných funkcí na straně serveru. Klient obsahuje možnost výběru média (sériová linka, TCP/IP), dále pak u sériové linky ještě možnost volby režimu. Podle vybraného média a režimu se uživateli nabídnou takové funkčnosti a ovládací prvky, které s výběrem mají souvislost Struktura aplikace GUI Obsahuje část věnovanou nastavení parametrů simulátoru. Jedná se především o typ komunikace (RTU, ASCII, TCP/IP), výběr sériového portu, IP adresu zařízení a port. Obsahuje také ovládací prvky pro spuštění a zastavení běhu klienta. Další část obsahuje pole pro vkládání dotazu a zobrazení odpovědi, včetně historie. Při spuštění aplikace je prováděno zjišťování, které sériové porty jsou v systému dostupné a pouze tyto se nabízí k výběru. Podle vybraného typu komunikace se použije pro další práci jedna z následujících komponent RS-232 RTU V režimu RTU je umožněno zapisovat odesílanou zprávu ve formě řetězce dvoubajtových slov např.: 06 8A s možností dopočítat kontrolní součet CRC. Komunikace na sériové lince probíhá zasíláním pole bajtů. 40
41 RS-232 ASCII Zprávy jsou zapisované jako řetězec ASCII znaků bez mezer, např.: s možností dopočítat kontrolní součet LRC. Komunikace probíhá zasíláním zpráv s definovaným koncem zprávy znaky CR a LF TCP/IP Aktivací komunikace po TCP/IP se provede navázání spojen se serverem, po kterém se posílají jednotlivé zprávy jako pole bajtů. 41
42 4 REALIZACE Zrealizovaný simulátor běží jako Windows aplikace. Pro běh vyžaduje pouze nainstalovaný.net Framework 3.5. Vlastní zkompilovaný spustitelný program je menší než 50kB a nevyžaduje instalaci. Je tedy snadno přenositelný na libovolné PC, které splňuje požadavky na nainstalovaný.net Framework, což by při spuštěných Windows update aktualizacích měl být každý počítač s Windows XP, Windows Vista nebo Windows Objektový návrh aplikace Pro realizaci vnitřní struktury aplikace budou využity některé z návrhových vzorů (Design patterns). Například třída Storage.cs bude definována podle návrhového vzoru jedináček (Singleton), kdy v celé aplikaci bude běžet pouze jedna instance této třídy. Správná implementace návrhového vzoru nám zajistí, že v celé aplikaci je pouze jedno datové úložiště, a nemůže dojít k nějakému problému při správě dat v různých instancích. Objektový model navržené aplikace je zobrazen na následujícím obrázku. 42
43 Obrázek č. 10 Objektový model serveru Ukázky částí zdrojového kódu Použití návrhového vzoru Singleton Třídy Storage, která obsahuje data, musí být v celé aplikaci použita právě jednou. Tohoto je dosaženo implementací návrhového vzoru Singleton. Stejná implementace je i v třídě Logger, která provádí zápis komunikace z více komunikačních tříd do textového souboru sloužícímu jako log komunikace. Ukázka zdrojového kódu ze souboru Storage.cs: namespace MODBUS.Data { public class Storage { private static Storage instance; public static Storage Instance 43
44 { } get { if (instance == null) { instance = new Storage(); } return instance; } Třída Storage v provedení Singleton se v např. v třídě Func05 používá následovně: Ukázka zdrojového kódu ze souboru Func05.cs: namespace MODBUS.Data.Func { /// <summary> /// 05 (0x05) Write Single Coil /// </summary> class Func05 : Func00 { Storage data = Storage.Instance; Vizuální podoba objektu a jeho zdrojový kód Jako ukázka je zde uvedena třída Frame, která slouží k předávání a manipulaci s PDU v aplikaci. Následující obrázek zobrazuje vizuální podobu z diagramu tříd. Dále je pak ukázka části zdrojového kódu, která je touto vizuální metodou níže zobrazeného 44
45 Obrázek č. 11 Třída Frame Ukázka zdrojového kódu ze souboru Frame.cs: namespace MODBUS.Data { class Frame { private List<byte> _characters = new List<byte>(); public Frame() { _characters = new List<byte>(); } public Frame(byte[] characters) { _characters.addrange(characters); } /// <summary> /// počet bajtů ve zprávě /// </summary> /// <returns>počet</returns> public int length() { return _characters.count; } /// <summary> /// přidá slovo do věty /// </summary> /// <param name="character">bajt</param> public void addcharacter(byte character) { _characters.add(character); } /// <summary> /// přidá více slov do věty /// </summary> /// <param name="characters">pole bajtů</param> public void addcharacters(byte[] characters) { _characters.addrange(characters); } /// <summary> /// vloží hodnotu typu UInt16 jako dva bajty /// </summary> /// <param name="data"></param> public void adduint16(uint16 data) { byte[] ret = BitConverter.GetBytes(data); Array.Reverse(ret); addcharacters(ret); } /// <summary> 45
46 /// vrací celou větu /// </summary> /// <returns></returns> public byte[] getcharacters() { return _characters.toarray(); } OOP - Dědění využité v třídě Controllera a třídách funkcí Hlavním úkolem třídy Controller je na základě kódu funkce předávat PDU ke zpracování do jednotlivých tříd. Díky tomu, že všechny třídy funkcí dědí ze společného předka Func00, lze využít níže uvedenou konstrukci, kdy vytvářím instanci objektu předka z třídy, která z tohoto předka dědí. Ukázka zdrojového kódu ze souboru Controller.cs: namespace MODBUS.Data { /// <summary> /// řídí volání metod /// </summary> class Controller { public byte[] Process(byte[] min) { Func00 f = new Func00(); switch (min[1]) { case 01: f = new Func01(); break; case 02: f = new Func02(); break; case 03: f = new Func03(); break; case 04: f = new Func04(); break; case 05: f = new Func05(); break; case 06: f = new Func06(); break; case 16: f = new Func16(); break; default: //nepodporovaný typ zprávy f = new FuncXX(); break; 46
47 } Dědění třídy Func05 z třídy Func00 a přetížení její metody Process. Ukázka zdrojového kódu ze souboru Func05.cs: namespace MODBUS.Data.Func { /// <summary> /// 05 (0x05) Write Single Coil /// </summary> class Func05 : Func00 { Storage data = Storage.Instance; override public Frame Process(Frame framein) { Načtení systémových hodnot do seznamů portů a IP adres Při spuštění aplikace je volána metoda init, která pro část nastavení provede načtení sériových portů a přiřazených IP adres v počítači. Využívá se integrovaných funkcí.net Frameworku úzce svázaných s operačním systémem Windows. Jsou nabízeny všechny nalezené sériové porty a IP dresy pouze verze 4 a adresa localhost neboli Ukázka zdrojového kódu ze souboru Func05.cs: private void init() { //počáteční nastavení portů string[] ports = System.IO.Ports.SerialPort.GetPortNames(); Array.Sort<string>(ports); comboboxportname.items.addrange(ports); if (ports.length!= 0) { comboboxportname.sorted = true; comboboxportname.selecteditem = ports[0]; } //počáteční nastavení IP adres IPHostEntry host; string localip = ""; host = Dns.GetHostEntry(Dns.GetHostName()); List<string> adr = new List<string>(); foreach (IPAddress ip in host.addresslist) { 47
48 if (ip.addressfamily == AddressFamily.InterNetwork) { localip = ip.tostring(); adr.add(localip); } } adr.add(" "); adr.sort(); string[] _adr = adr.toarray(); comboboxtcpadress.items.addrange(_adr); comboboxtcpadress.selecteditem = _adr[0]; } 4.2 GUI Simulátor (server) Uživatelské rozhraní neboli GUI (Graphical User Interface) bylo vytvořeno tak, aby práce se simulátorem serveru byla jednoduchá a přehledná. V levé části se nachází oblasti s prvky identifikující jak diskrétní, tak analogové proměnné. Proměnné, které lze nastavovat (vstupní digitální vstupy, hodnoty vstupních a paměťových registrů) může uživatel změnit. Proměnné výstupní (diskrétní cívky neboli výstupy) editovat nelze. V pravé části je umístěno nastavení aplikace a spouštění/zastavení činnosti vlastního simulátoru. V případě režimu TCP/IP je nad tlačítkem STOP uvedena IP adresa vzdáleného klienta včetně čísla portu. Pod částí s nastavením je navíc přidáno zobrazení vstupní a výstupní zprávy tak, jak byla přijata a jak na ni bylo odpovězeno. 48
49 Obrázek č. 12 Design vytvořené aplikace serveru Klient Obrázek č. 13 Zobrazení IP adresy a portu vzdáleného klienta v režimu TCP Uživatelské rozhraní klienta obsahuje stejné nastavení aplikace jako u serveru. Zprávy se zasílají zadáním řetězce bajtů oddělených mezerou např.: A2 02 Podle zvoleného režimu u komunikace po sériové lince se zobrazí tlačítko pro přidání kontrolního součtu (CRC nebo LRC) na konec řetězce s dotazem. Správný výpočet kontrolního součtu lze ověřit dalším přidáním kontrolního součtu, který např. u režimu RTU vloží bajty s vypočteným CRC: Dotaz lze zaslat pouze jednou nebo opakovaně. Odpověď se zobrazí v dalším řádku. Všechny zaslané dotazy a přijaté odpovědi se přidávají do seznamu historie komunikace, odkud lze poklepáním dotaz vybrat a vložit do pole pro odeslání. 49
50 Obrázek č. 14 Design vytvořená aplikace klienta 50
51 5 TESTOVÁNÍ Testování aplikací pro server a klient bylo prováděno v několika etapách. Jednotlivé funkčnosti byly testovány již během vývoje pomocí různých SW testerů např. generování CRC [4], reakce na volání funkcí pro práci s registry [6]. Testy funkcí byly prováděny přímým voláním metod vyvíjených tříd. Testovány byly jak třídy pro zpracování jednotlivých funkcí (zpracování PDU), tak i třídy, které zpracovávají komunikaci s externím rozhraním. Následně byly prováděny testy již hotových aplikací. Kromě úspěšných volání probíhalo i testování chybových hlášení. Byly testovány tyto chybové stavy: 0x01 Neplatná funkce 0x02 Neplatná adresa 0x03 Neplatná hodnota 5.1 Způsoby testování Serverová i klientská část aplikace byly testovány pro režim všechny typy a režimy komunikace. Vzhledem k postupu vývoje (jako první byla realizována komponenta serveru pro TCP/IP) se jako první testovalo rozhraní TCP/IP. Pro testování byl použit jak vlastní klient, tak i klienti třetích stran. Klienti třetích stran jsou podrobně popsáni v další kapitole. Testování probíhalo v následujících krocích: - Testování na jednom PC. - Testování mezi dvěma PC. Komunikace probíhala po síti Ethernet 100Base-TX. V další fázi bylo prováděno testování komunikace pro RS-232. Jelikož jsou zde dva režimy komunikace, byly prováděny vždy testy obou režimů v dané HW konfiguraci. HW konfigurace testů komunikace po RS-232: - Testování na jednom PC s využitím SW emulace sériových portů. - Testování na jednom PC mezi dvěma HW sériovými porty. - Testování mezi dvěma PC. 5.2 SW použitý pro testování Pro testování byly využity tyto SW následující emulátory a testery Virtual Serial Ports Emulator SW pro emulaci sériových portů od firmy Eterlogic. Použitá 32 bitová verze Emulátor, krom jiného, umožňuje vytvořit dvojici virtuálních sériových portů a tyto logicky propojit režim Pair. 51
52 5.2.2 ComTestPro Jedná se o testovací SW firmy Baseblock Software LLC ve verzi Tento SW umí komunikovat jak po rozhraní RS-232, tak i po TCP/IP. Pro rozhraní RS-232 má implementován pouze režim RTU. SW umožňuje i dávkové testování serveru s vyhodnocením počtu zpracovaných a chybných volání. Diagnostické režimy umožňují i sledování komunikace na úrovni přenášených bajtů, včetně časů kdy byl odeslán dotaz, a kdy přišla odpověď. Obrázek č. 15 Ukázka prostředí testovacího SW ComTestPro MODBUS RTU Communication Tester Další testovací SW od firmy Baseblock Software LLC. Použita verze 1.10 z roku Tento SW umí pouze volání v režimu RTU po sériových linkách Wellamod Jednoduchá aplikace pro testování serverů na rozhraní TCP/IP. Použitá 64 bitová verze z roku Com Port Monitor Aplikace určená pro komunikaci po sériové lince od firmy Awavo Software ve verzi 2.1 z roku Kromě standardních funkčností jako posílání a příjem dat jako pole bajtů, 52
53 nebo řetězec ASCII, umí navíc i počítat kontrolní součty CRC a LRC pro MODBUS protokol. Lze spouštět i dávkové zasílání předdefinovaných zpráv. Obrázek č. 16 Ukázka prostředí testovacího SW Com Port Monitor 5.3 Výsledky testů Testování probíhalo způsoby popsanými v tabulce s výsledky. Měřil se čas, za který server odeslal odpověď a správnost odpovědi. Výsledky jsou aritmetický průměr za 10 zaslaných dotazů a zpracovaných odpovědí. Testování TCP/IP probíhalo na síti Ethernet s rychlostí 100 Mb/s a RS-232 s rychlostí 9600bitů/s. Pro testování byl použit SW nástroj ComTestPro pro svoji vlastnost zaznamenávat počet chybných odpovědí a čas odeslání a přijetí zprávy. Tabulka č. 49 Výsledek testů serveru Způsob komunikace Průměrná odezva Počet chybných odpovědí serveru [ms] TCP/IP na PC TCP/IP mezi PC2 a PC Virtuální RS-232 RTU na PC RS-232 RTU mezi PC2 a PC Virtuální RS-232 ASCII na PC RS-232 ASCII mezi PC2 a PC
54 [ms] TCP/IP na PC1 TCP/IP mezi PC2 a PC1 Virtuální RS- 232 RTU na PC1 RS-232 RTU mezi PC2 a PC1 Virtuální RS- 232 ASCII na PC1 RS-232 ASCII mezi PC2 a PC1 Graf 1 - Průměrná odezva serveru podle druhu spojení Následně byly prováděny zátěžové testy opakovaným voláním testerem [6] vždy po 1000 dotazech. Během zátěžových testů zrealizovaný simulátor nevykazoval problémy s rychlostí, ani se správností odpovědí. Testy byly prováděny na počítačích s touto konfigurací: PC1 PC2 HP ProBook 4320s Windows 7 Professional SP1 64bitový operační systém Intel Core i5 CPU M 480 2,67GHz 4 GB RAM RS-232 v provedení USB adaptéru Compaq 500B MT Windows 7 Home Premium 32bitový operační systém Pentium Dual-Core CPU E6300 2,80GHz 4 GB RAM 2x RS
55 6 ZÁVĚR Teoretická část práce popisující protokol MODBUS vychází ze specifikace protokolu verze V1.1b3 definovaného organizací Modbus Organization, Inc.. Následný návrh aplikace vychází z definice PDU, jako datové zprávy, která je ve všech typech komunikace a režimech stejná. Rozdílné ADU na vstupech a výstupech jsou v aplikaci obslouženy samostatnými specializovanými třídami, které poté komunikují s dispečerem pomocí unifikované PDU zprávy. Objektový návrh byl zrealizovaných s využitím návrhových vzorů a využití standardních knihoven běhového prostředí.net Framework. Díky tomu jsou zdrojové kódy vytvořených aplikací přehledné a snadno rozšiřitelné. Navržené a zrealizované řešení ukládání dat v třídě Storrage lze využít i v jiných aplikacích s požadavkem na ukládání a správu dat definovaných formátů. Z výsledků testování vyplývá, že nejrychlejší komunikace mezi serverem a klientem probíhá v režimu MODBUS TCP/IP. Při komunikaci po sériové lince se projevuje množství zasílaných bajtů v jedné transakci v rozdílu odezvy. V případě režimu RTU, obsahují přenášené zprávy menší množství bajtů a komunikace je tedy rychlejší. Nejpomalejší odezvy byly naměřeny při komunikace po virtuálním sériovém portu. Rozdíl v odezvách, který je patrný v porovnání s komunikací po fyzických portech, je způsoben aplikací, která emuluje dvojici propojených virtuálních portů. Vytvořené aplikace simulátor (server) a klient mohou pracovat jak se SW, tak i s HW zařízeními komunikujících rámci MODBUS RTU, ASCII a TCP. Aplikace je možné využít ve výuce. V případě využití i v reálném provozu při potřebě simulování strany serveru by bylo vhodné do simulátoru naimplementovat větší množství funkcí definovaných v protokolu MODBUS. 55
56 Literatura [1] Modbus Organization, MODBUS APPLICATION PROTOCOL SPECIFICATION [online] April 26, 2012 [cit ] Dostupné z: [2] Modbus Organization, Modicon Modbus Protocol Reference Guide, rev. J [online] June 1996 [cit ] Dostupné z: [3] Modbus Organization, MODBUS over Serial Line, Specification and Implementation Guide V1.02 [online] Dec 20, 2006 [cit ] Dostupné z: [4] On-line CRC calculation and free library [online] Aug [cit ] Dostupné z: [5] CAN protocol [online] [cit ] Dostupné z: [6] ComTest Pro Communication Test Software for MODBUS RTU Devices via Serial and Ethernet [online] [cit ] Dostupné z: [7] MODBUS RTU Test Software [online] [cit ] Dostupné z: [8] nmodbus, C# implementation of the Modbus protocol. [online] [cit ] Dostupné z: [9] Doc. Ing. František ZEZULKA CSc., Prostředky průmyslové automatizace, Brno 2004 VUTIUM Brno [10] Siemens, Modbus [online] [cit ] Dostupné z: cts/modbusinformation.pdf [11] Peter DRAYTON, Ben ALBAHARI, Ted NEWARD, C# v kostce: Pohotová referenční příručka, Přeložil Karel VORÁČEK, Grada 2003, ISBN [12] Rudolf PECINOVSKÝ, Návrhové vzory: 33 vzorových postupů pro objektové programování, Computer Press 2007, ISBN [13] JohnSHARP, Microsoft Visual C# 2005: Krok za krokem, Computer Press 2006, ISBN [14] Modbus Organization, MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE, [online] October 24, 2016 [cit ] [15] Acromag, Inc, INTRODUCTION TO MODBUS TCP/IP, USA 2005, [online] [cit ] Dostupné z: TCP.pdf 56
57 Seznam zkratek RTU Remote Terminal Unit Vzdálená koncová jendotka ASCII American Standard Code for Information Interchange Americký standardní kódování pro výměnu informací PDU Protocol Data Unit Datový blok protokolu ADU Advanced Data Unit Rozšířená datový blok master Nadřízená jednotka slave Podřízená jednotka TCP/IP Transmission Control Protocol/Internet Protocol - Protokol kontroly přenosu/ Internetový protokol PLC Programmable Logic Controller - Logický programovatelný automat RS-232 EIA 232 Standard RS-485 EIA 485 Standard MBAP Modbus Application Protocol header Aplikační protokol Modbus hlavičky CRC Cyclical Redundancy Check Cyklický kontrolní součet LRC Longitudinal Redundancy Check Podélný kontrolní součet GUI Graphical User Interface Grafické uživateslké rozhraní SW Software HW Hardware C# Programovací jazyk.net Softwarový framework výrobce Microsoft CPU Central processing unit Centrální procesorová jednotka USB Universal Serial Bus Universální sériové rozhraní CAN Controller Area Network Komunikační síť řadičů HART Highway Addressable Remote Transducer Dálnice adresovatelných vzdálených snímačů 57
58 Seznam příloh Příloha 1. Příloha 2. Uživatelský manuál CD obsahující: elektronickou verzi bakalářské práce uživatelský manuál zdrojové kódy aplikace zkompilované kódy aplikace aplikace použité pro testování 58
59 Příloha 1. Uživatelský manuál Verze 1.0 Datum vydání: 11. května 2013 Autor: Michael Ondrášek Simulátor (server) a klient protokolu MODBUS jsou aplikace určené pro operační systém Windows s nainstalovaným.net Frameworkem 3.5. Aplikace jsou spouštěny z adresáře, kde jsou umístěny. Instalace do operačního systému není vyžadovaná. Simulátor (server) Simulátor se spouští spuštěním aplikace s názvem MODBUS.exe. Po spuštění je provedena načtení informací z operačním systému o konfiguraci síťových karet a nainstalovaných HW nebo SW sériových portů. Rozložení ovládacích prvků je uvedeno na obrázku č. 1. Pracovní oblast je rozdělena na více panelů, které budou popsány v dalších částech. obrázek č. 1: Rozložení ovládacích prvků serverové aplikace Panel s nastavením aplikace Settings obsahuje pole Device ID pro identifikaci identifikátoru zařízení. Výběr hodnoty se provádí buď zapsáním hodnoty do editační části pole, nebo pomocí šipek v pravé části. Tyto šipky inkrementují nebo dekrementují adresu v definovaném rozsahu. Dále je zde umístěn prvek, který obsahuje dvě záložky, podle typu média, po kterém se bude komunikovat. 59
60 obrázek č. 2: Rozložení ovládacích prvků nastavení pro sériovou linku První záložka obsahuje nastavení pro sériovou linku RS-232 (obrázek č. 2). Rozevírací seznam obsahuje výčet těch sériových portů, které byly aplikací při spuštění v systému identifikovány. Aplikace najde jak HW tak SW řešení sériové porty. Jako výchozí se nabízí port s nejnižším číslem. Pole Mode umožnuje uživateli výběr z režimů, kterými server komunikuje. Jedná se o režim RTU a ASCII. Jelikož režim ASCII je pro MODBUS nepovinný je jako výchozí hodnota uvedena RTU. obrázek č. 3: Rozložení ovládacích prvků nastavení pro TCP/IP V případě výběru záložky TCP (obrázek č. 3) se uživateli zobrazí nastavení pro komunikaci po TCP/IP. Do editačního rozevíracího seznamu IP Adress se načtou při spuštění všechny IP adresy verze 4 které jsou v operačním systému přiřazené počítači na kterém byla aplikace spuštěna. Uživatel může vybrat z přednačtených, nebo zeditovat na jinou hodnotu. Editační pole Port je přednastaveno na číslo 502, což je výchozí port pro komunikaci MODBUS po TCP/IP. V případě potřeby uživatel může provést změnu. Další část je věnována nastavení logování komunikace do textového souboru. Zaškrtávací pole Log to file slouží k nastavení, že chceme, aby komunikace byla do tohoto souboru ukládána. V případě zaškrtnutí je potřeba ještě vybrat složku do které se zápis do souboru bude provádět. 60
61 Výběr složky se provede kliknutím na tlačítko vedle pole pod tímto zaškrtávacím polem se symbolem... Po kliknutí se zobrazí v dialogovém okně seznam složek dostupných v operačním systému. Je zde umožněno v případě potřeby i vytvořit novou složku. Po vybrání cílové složky se do pole pod zaškrtávacím tlačítkem vypíše cesta k souboru včetně názvu souboru. Název souboru je odvozen od aktuálního data ve formátu RRRRMMDD.txt. Do tohoto souboru se bude provádět zápis komunikace ve formátu obsahujícím rok, měsíc, den, hodinu. minutu, sekundu a tick. Následuje typ média nebo formát, potom směr komunikace a vlastní data. Ukázka: :20: TCP/IP --> :20: TCP/IP < B AE obrázek č. 4: Výběr složky pro umístění souboru s logem komunikace Pod panelem s nastavením je umístěno tlačítko na spuštění a zastavení naslouchání serveru. Podmínkou pro spuštění nastavení je korektní vyplnění hodnot v oblasti nastavení. Po spuštění naslouchání je oblast nastavení pouze pro čtení. Nelze za běhu měnit parametry komunikace. V případě komunikace TCP/IP je nad tlačítkem STOP zobrazena IP adresa vzdáleného klienta. 61
62 obrázek č. 5: IP adresa vzdáleného klienta V levé části jsou umístěny panely se vstupy a výstupy simulovaného systému. Panel Coils obsahuje 16 needitovatelných výstupních digitálních vstupů. Panel Discrete inputs obsahuje 16 digitálních vstupů. Hodnoty těchto vstupů lze nastavit zaškrtnutím jednotlivých zaškrtávacích polí. Další panel Input registers obsahuje 4 vstupní registry. Tyto je umožněno editovat zadáním hodnot v rozsahu což odpovídá při komunikaci hodnotám FF FF hexa. Panel Holdnig registers obsahuje 4 paměťové registry se stejným rozsahem hodnot jako registry vstupní. Editace polí v těchto čtyřech panelech je možná i během běhu simulátoru, a má okamžitý vliv na interní hodnoty, které se využívají pro komunikaci. Panel I/O Data obsahuje informaci o posledním přijatém dotazu a poslední odeslané odpovědi. Klient Klientská část se spouští souborem MKLIENT.exe. Po spuštění je provedena načtení informací z operačním systému o nainstalovaných HW nebo SW sériových portech. Rozložení ovládacích prvků je uvedeno na obrázku č. 6. obrázek č. 6: Rozložení ovládacích prvků klientské aplikace 62
63 Panel Settings obsahuje prvky pro nastavení podobně jako serverová aplikace. Liší se tím, že na záložce TCP se nenabízí žádné IP adresy a IP adresu serveru s kterým chceme komunikovat je nutno zapsat ručně. Podle zvoleného režimu pro sériovou linku se v pravé horní části zobrazí tlačítko, které slouží k dopočítání kontrolního součtu. Ukázka pro režim RTU je na obrázku 7. obrázek č. 7: Detail formuláře v případě volby režim RTU Do pole Request se zadává dotaz, který chceme odeslat na server. Tlačítko pro kontrolní součet po stisknutí tento součet dopočte a přidá na konec zprávy. Zpráva se v režimu RTU a pro komunikaci po TCP/IP zobrazuje po jednotlivých bajtech v hexadecimálním kódu, které jsou odděleny mezerou (viz obrázek č. 5). V režimu ASCII je to řetězec bez oddělovačů, jelikož se jedná o ASCII znaky a ne interpretaci bajtů. Talčitko Send slouží k zaslání dotazu na server. V případě zaškrtnutí pole repeat je zasílání děláno opakovaně s prodlevou 50 ms. Ukončení se děje zrušením zaškrtnutí. V levé dolní části se zobrazuje historie zaslaných dotazů a přijatých odpovědí. Dvojitým kliknutím na zprávu v tomto seznamu lze zprávu vložit do pole Request k odeslání. 63
SRF08 ultrazvukový dálkoměr
SRF08 ultrazvukový dálkoměr Technické údaje Ultrazvukový dálkoměr SRF08 komunikuje pomocí sběrnice I2C, která je dostupná na řadě oblíbených kontrolérů jako OOPic, Stamp BS2p, Atom či Picaxe. Z hlediska
Inovace výuky prostřednictvím šablon pro SŠ
Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748
-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy
-1- I I. N á v r h VYHLÁŠKY ze dne 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních informací státu a o požadavcích na technické
účetních informací státu při přenosu účetního záznamu,
Strana 6230 Sbírka zákonů č. 383 / 2009 Částka 124 383 VYHLÁŠKA ze dne 27. října 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních
Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů
Datový typ soubor Soubory a databáze Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů Záznam soubor se skládá ze záznamů, které popisují
Počítačové sítě 1 Přednáška č.4 Síťová vrstva
Počítačové sítě 1 Přednáška č.4 Síťová vrstva Osnova = Síťová vrstva = Funkce síťové vrstvy = Protokoly síťové vrstvy = Protokol IPv4 = Servisní protokol ICMP ISO/OSI 7.Aplikační 6.Prezentační 5.Relační
Server. Software serveru. Služby serveru
Server Server je v informatice obecné označení pro počítač či skupinu počítačů, kteří poskytují nějaké služby. Rovněž pojmem server můžeme označit počítačový program, který tyto služby realizuje. Služby
Budování aplikačních rozhraní pro obousměrnou komunikaci mezi ERMS a jejich vztah k Národnímu standardu pro komunikaci mezi ERMS.
Budování aplikačních rozhraní pro obousměrnou komunikaci mezi ERMS a jejich vztah k Národnímu standardu pro komunikaci mezi ERMS. Použité zkratky ERMS ESS i AIS ESS elektronická spisová služba AIS agendový
funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné
Analyzujte, navrhněte a implementujte aplikaci pro sledování spánku dětí Chůvička pro telefony na platformě Android. Od existujících aplikací se bude aplikace odlišovat tímto: funkční na dual-sim telefonech
Algoritmizace a programování
Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů. Naučí nás rozdělit
Quido USB 0/1 230. Spínač síťového napětí 230 V ovládaný z PC přes USB rozhraní. 28. února 2011 w w w. p a p o u c h. c o m
Quido USB 0/1 230 Spínač síťového napětí 230 V ovládaný z PC přes USB rozhraní 28. února 2011 w w w. p a p o u c h. c o m Quido USB 0/1 230 Q uido USB 0/1 230 Katalogový list Vytvořen: 9.12.2010 Poslední
Metodika testování navazujících evidencí
Metodika testování navazujících evidencí Základní metodický dokument k testování navazujících evidencí Centrálního depozitáře cenných papírů Verze: 3.0 Datum: 13.5.2010 Strana 1 (celkem 10) Úvod 1.1. Cíl
Program rovného zacházení provozovatele distribuční soustavy Pražská plynárenská Distribuce, a.s., člen koncernu Pražská plynárenská, a.s.
Program rovného zacházení provozovatele distribuční soustavy Pražská plynárenská Distribuce, a.s., člen koncernu Pražská plynárenská, a.s. Obsah 1. Úvod... 2 1.1. Účel Programu rovného zacházení... 2 1.2.
Tekla Structures Multi-user Mode
Tekla Structures Multi-user Mode Úvod V programu Tekla Structures můžete pracovat buď v režimu jednoho uživatele (single-user) nebo v režimu sdílení modelu (multi-user mode). Sdílení modelu umožňuje současný
4. Počítačová síť. Co je to počítačová síť
4. Počítačová síť Co je to počítačová síť Pojmem počítačová síť se rozumí zejména spojení dvou a více počítačů tak, aby mohly navzájem komunikovat a sdílet své prostředky. Přitom je jedno zda se jedná
ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ
ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ Pozemkem se podle 2 písm. a) katastrálního zákona rozumí část zemského povrchu, a to část taková, která je od sousedních částí zemského povrchu (sousedních pozemků)
I/O modul univerzální rozhraní
9 780 DESIGO I/O-OPEN I/O modul univerzální rozhraní Pro integraci cizích zařízení do systému řízení budov DESIGO V2.2. PTM1.RS232 PTM1.RS485 Pro implementaci zákaznických řešení integrací. Aplikace může
Systém MCS II. Systém MCS II < 29 >
< 29 > MCS II je distribuovaný, multiprocesorový, parametrizovatelný systém pro řízení a sběr dat v reálném čase s rozlišením na jednu milisekundu, využívající nejmodernější technologie a trendy. Jeden
S_5_Spisový a skartační řád
Základní škola a mateřská škola Staré Město, okres Frýdek-Místek, příspěvková organizace S_5_Spisový a skartační řád Č.j.:ZS6/2006-3 Účinnost od: 1. 5. 2011 Spisový znak: C19 Skartační znak: S10 Změny:
VYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6
VYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6 Platnost od 1.1.2004 VÝROBA PLYNŮ PRO MEDICINÁLNÍ ÚČELY VYDÁNÍ PROSINEC 2003 1. Zásady Tento doplněk se zabývá průmyslovou výrobou medicinálních plynů,
2015 Evidenční číslo:
2015 Evidenční číslo: 1. Huygensův princip z hlediska šíření rádiových vln znamená: a) Každá plocha se stává sekundárním zdroje šíření rádiové vlny b) Vznikne interference rádiových vln c) V okolí spojnice
Pokyny k vyplnění Průběžné zprávy
Pokyny k vyplnění Průběžné zprávy Verze: 2 Platná od: 15. 1. 2013 Doplnění nebo úpravy v pokynech jsou odlišeny červenou barvou písma. Termín pro podání elektronické verze průběžné zprávy obou částí je
Celková částka pro tuto výzvu: 127 000 000 Kč v rozdělení dle tabulky č.1
Ministerstvo práce a sociálních věcí ČR, odbor řízení pomoci z Evropského sociálního fondu, vyhlašuje výzvu k předkládání žádostí o finanční podporu v rámci Programu Iniciativy Společenství EQUAL. Identifikace
EXTRAKT z české technické normy
EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. ICS 03.220.20, 35.240.60 Elektronický výběr mýtného Výměna ČSN EN informací mezi
ZPRÁVA O PRŮBĚHU ŘEŠENÍ PROJEKTU
Page 1/1 ZPRÁVA O PRŮBĚHU ŘEŠENÍ PROJEKTU Cíle projektu Uveďte předem stanovené cíle a u každého z nich uveďte, do jaké míry byl splněn, případně důvod, proč splněn nebyl. Cílem projektu bylo skokové zvýšení
POPIS VÝROBKU A ZAMÝŠLENÉ POUŽITÍ
Návod ON POPIS VÝROBKU A ZAMÝŠLENÉ POUŽITÍ Tento vysílač patří do řady výrobků NiceOne, vyráběných firmou Nice. Vysílače v této řadě jsou určeny pro řízení automatických otvíračů dveří, otvíračů bran a
GIGAmatic. Tenzometrický přetěžovací převodník. 1. Popis 2. 2. Použití 2. 3. Technické informace 2. 4. Nastavení 3. 5. Popis funkce 6. 6.
GIGAmatic Tenzometrický přetěžovací převodník OBSAH 1. Popis 2 2. Použití 2 3. Technické informace 2 4. Nastavení 3 5. Popis funkce 6 6. Zapojení 8 7. Údržba 9 Strana # 1 z 8 Revize: 1.8 Květen 2007 1.
Co najdete v ASPI? (pro uživatele SVI FSE UJEP)
Co najdete v ASPI? (pro uživatele SVI FSE UJEP) ASPI = komplexní pokrytí všech předpisů publikovaných na území ČR včetně předpisů měst a obcí a předpisů ES / EU Manuál ASPI: http://www.systemaspi.cz/co_je_system_aspi/co_je_system_aspi.html
PŘÍLOHA 10 SMLOUVY O PŘÍSTUPU KE KONCOVÝM ÚSEKŮM. Pravidla a postupy
PŘÍLOHA 10 SMLOUVY O PŘÍSTUPU KE KONCOVÝM ÚSEKŮM Pravidla a postupy OBSAH Rozsah dokumentu... 3 1 Implementace Smlouvy... 3 2 Popisy metod komunikace... 4 2.1 B2B GW (SI)... 4 2.2 WEB Interface (WI)...
Protokol o atestačním řízení
Atestační středisko (AS): ADA, s.r.o. pověření k výkonu atestací ÚVIS, reg.č. 3 rozhodnutím č.j. 3/2001 A ze dne 11.10. 2001, sídlo 625 00 Brno, Čermákova 28, ČR pobočka (poštovní styk) 664 42 Brno Modřice,
Protokol Drak4. Dokumentace protokolu Drak4 měřicího přístroje Drak 4. 31. května 2010 w w w. p a p o u c h. c o m
Dokumentace protokolu Drak4 měřicího přístroje Drak 4 31. května 2010 w w w. p a p o u c h. c o m Protokol Drak4 Katalogový list Vytvořen: 17.12.2003 Poslední aktualizace: 31.5 2010 15:47 Počet stran:
Metodika pro nákup kancelářské výpočetní techniky
Příloha č. 2 Metodika pro nákup kancelářské výpočetní techniky 1. Vymezení skupin výrobků Kancelářská výpočetní technika, jak o ni pojednává tento dokument, zahrnuje tři skupiny výrobků: počítače osobní
Obnova zámeckých alejí ve městě Vimperk
Oznámení o zahájení zadávacího řízení pro zakázku malého rozsahu Obnova zámeckých alejí ve městě Vimperk CZ.1.02/6.5.00/15.29670 Tato zakázka je zakázkou malého rozsahu ve smyslu ust. 12 odst. 3 Zákona
Koncepce rozvoje Polytematického strukturovaného hesláře (PSH) 2012 2014
Koncepce rozvoje Polytematického strukturovaného hesláře (PSH) 2012 2014 Schváleno Radou pro koordinaci Polytematického strukturovaného hesláře (PSH) dne: 12. 12. 2011 ÚVOD V době svého vzniku (90. léta
Pravidla pro využívání lokální počítačové sítě Slovanského gymnázia v Olomouci. Preambule
Pravidla pro využívání lokální počítačové sítě Slovanského gymnázia v Olomouci Preambule Tento dokument je základním a závazným dokumentem upravujícím způsob využívání lokální počítačové sítě Slovanského
Město Mariánské Lázně
Město Mariánské Lázně Městský úřad, odbor investic a dotací adresa: Městský úřad Mariánské Lázně, Ruská 155, 353 01 Mariánské Lázně telefon 354 922 111, fax 354 623 186, e-mail muml@marianskelazne.cz,
Online manuál pro řadu AR-M230/M270 Tisková sít'ová řešení
Online manuál pro řadu AR-M230/M270 Tisková sít'ová řešení Průvodce administrátora Start Klepněte na tlačítko "Start". Ochranná známka Zaregistrována v roce 2003 společností Sharp Corporation. Všechna
Napájení požárně bezpečnostních zařízení a vypínání elektrické energie při požárech a mimořádných událostech. Ing. Karel Zajíček
Napájení požárně bezpečnostních zařízení a vypínání elektrické energie při požárech a mimořádných událostech Ing. Karel Zajíček Vyhláška č. 23/ 2008 Sb. o technických podmínkách požární ochrany staveb.
Inovované řešení VDT/VT
Inovované řešení VDT/VT Spojujeme trhy a příležitosti Inovované řešení pro obchodování na vnitrodenním a vyrovnávacím trhu v ČR, vyvinuté společností OTE, a.s., umožní uživatelům rychlou reakci na aktuální
Architektury počítačů na bázi sběrnice PCI. Cíl přednášky: Obsah přednášky:
Architektury počítačů na bázi sběrnice PCI Cíl přednášky: Vysvětlit principy architektur PC na bázi sběrnice PCI. Obsah přednášky: Základní architektury PC na bázi PCI. Funkce northbridge a southbridge.
OBEC HORNÍ MĚSTO Spisový řád
OBEC HORNÍ MĚSTO Spisový řád Obsah: 1. Úvodní ustanovení 2. Příjem dokumentů 3. Evidence dokumentů 4. Vyřizování dokumentů 5. Podepisování dokumentů a užití razítek 6. Odesílání dokumentů 7. Ukládání dokumentů
Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS
Název projektu: Redesign Statistického informačního systému v návaznosti na zavádění egovernmentu v ČR Příjemce: Česká republika Český statistický úřad Registrační číslo projektu: CZ.1.06/1.1.00/07.06396
VÝZVA K PODÁNÍ NABÍDKY VE VEŘEJNÉ ZAKÁZCE MALÉHO ROZSAHU
VÝZVA K PODÁNÍ NABÍDKY VE VEŘEJNÉ ZAKÁZCE MALÉHO ROZSAHU Z 356 - Zajištění přímých přenosů a záznamů z jednání ZMČ preambule Tato veřejná zakázka malého rozsahu není v souladu s ust. 18 odst. 5 zákona
Shrnutí. Funkce. Pro komunikaci s ostatními zařízeními lze využít 1x port Ethernet, 1x sériové rozhraní RS485.
µplc100 DDC regulátor Shrnutí DDC (Direct digital control) regulátor µplc100 je volně programovatelná podstanice s ARM Cortex M4 procesorem a OS FreeRTOS. Je vhodná pro řízení menších aplikací (cca 30
Co poskytuje Czech POINT
Co poskytuje Czech POINT Výpis z Katastru nemovitostí O výpis z Katastru nemovitostí České republiky může požádat anonymní žadatel. Výpis lze požadovat na základě listu vlastnictví nebo podle seznamu nemovitostí.
ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU
ČÁST 2. ELEKTRONIZACE PROCESŮ A DIGITALIZACE DAT ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU Přehled kam směřují peníze z městského rozpočtu. Přehled jaký je aktuální stav čerpání
VERZE: 01 DATUM: 05/2014
OBSAH PROJEKTOVÉ DOKUMENTACE NÁZEV AKCE: PŘÍSTAVEK DATACENTRUM ROUDNICE NAD LABEM ČÍSLO PROJEKTU: 14Z030 VERZE: 01 DATUM: 05/2014 Textová část: Pol. Název dokumentu Formát P. stran Č. dokumentu 1 TECHNICKÁ
VŠEOBECNÉ OBCHODNÍ PODMÍNKY E-SHOP (Doplňující podmínky k Všeobecným smluvním podmínkám užívání služeb Národního geoportálu INSPIRE)
VŠEOBECNÉ OBCHODNÍ PODMÍNKY E-SHOP (Doplňující podmínky k Všeobecným smluvním podmínkám užívání služeb Národního geoportálu INSPIRE) Všeobecné obchodní podmínky E-SHOPu Národního geoportálu INSPIRE (dále
ISA 402 ZVAŽOVANÉ SKUTEČNOSTI TÝKAJÍCÍ SE SUBJEKTŮ VYUŽÍVAJÍCÍCH SLUŽEB SERVISNÍCH ORGANIZACÍ
ZVAŽOVANÉ SKUTEČNOSTI TÝKAJÍCÍ SE SUBJEKTŮ VYUŽÍVAJÍCÍCH SLUŽEB SERVISNÍCH ORGANIZACÍ (Platí pro audity účetních závěrek sestavených za období počínající 15. prosince 2004 nebo po tomto datu.)* O B S A
MiiNePort E1 POPIS NASTAVENÍ. SofCon spol. s r.o. Křenova 11 162 00 Praha 6 tel: +420 235 090 888 E-mail: sofcon@sofcon.cz www: http://www.sofcon.
Term06e - MOXA MiiNePort E1 POPIS NASTAVENÍ Příručka uživatele a programátora SofCon spol. s r.o. Křenova 11 162 00 Praha 6 tel: +420 235 090 888 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz Verze
Software IS Řízení stavebních zakázek
Software IS Řízení stavebních zakázek Stručný popis Informačního systému řízení zakázek Hlavní cíl - sledování zakázky od jejího mapování, získání, realizaci, dokončení a běhu záručních lhůt. Obsah a rozsah
Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ
Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ Obsah 1. Úvod 2. Kontaktní logické řízení 3. Logické řízení bezkontaktní Leden 2006 Ing.
Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:
Programovatelný výpočtový měřič fyzikálních veličin Stručná charakteristika: je určen pro měření libovolné fyzikální veličiny, která je reprezentována napětím nebo ji lze na napětí převést. Zpětný převod
Zadávací dokumentace
Zjednodušené výběrové řízení s uveřejněním dle Příručky pro příjemce finanční podpory projektů Operačního programu Rozvoj lidských zdrojů v platném znění Název zakázky: Identifikace: Název projektu: VZDĚLÁVACÍ
DODATEK Č. 2 KE SMLOUVĚ O DÍLO MKDS STŘÍBRO Č. 20/HIO/2011
DODATEK Č. 2 KE SMLOUVĚ O DÍLO MKDS STŘÍBRO Č. 20/HIO/2011 uzavřený na základě vzájemné dohody smluvních stran, jehož předmětem je rozšiřování Městského kamerového dohlížecího systému pro město Stříbro,
DTX700 Konfigurační a programovací interface k regulátorům řady DTCxxx
DTX700 Konfigurační a programovací interface k regulátorům řady DTCxxx Konfigurační a programovací interface Obsah Obsah... Úvod... Popis DTX700... Instalace a spuštění... Základní ovládání... 4 Popis
UŽIVATELSKÁ PŘÍRUČKA K INFORMAČNÍMU SYSTÉMU O STÁTNÍ PODPOŘE STAVEBNÍHO SPOŘENÍ
UŽIVATELSKÁ PŘÍRUČKA K INFORMAČNÍMU SYSTÉMU O STÁTNÍ PODPOŘE STAVEBNÍHO SPOŘENÍ Uživatelská příručka, v. 1.07 ze dne 30.04.2015, účinná od 1.kola žádosti za rok 2015 str. 1 z 68 1 Seznam zkratek V textech
Modulárně orientovaná struktura systému s distribuovanou inteligencí
PMA a Company of WEST Control Solutions rail line Systémové komponenty Komunikační moduly pro CI45, SG45, KS45 a TB45 PROFIBUS-DP Ethernet MODBUS/TCP Kompaktní konstrukce Centralizované napájení Napájecí
Úklidové služby v objektu polikliniky
Městská poliklinika Praha příspěvková organizace Hlavního města Prahy se sídlem Spálená 78/12, Praha 1, 110 00 Česká republika dále jen zadavatel vyhlašuje dle ustanovení 12 odst. 3 Zákona o veřejných
MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o.
Tel : 553 607 521 MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o. Obchodní evidenci, tj. Nabídky, Objednávky. Skladovou evidenci, nákup materiálu. Technologickou přípravu výroby. Řízení a plánování
PŘÍRUČKA K PŘEDKLÁDÁNÍ PRŮBĚŽNÝCH ZPRÁV, ZPRÁV O ČERPÁNÍ ROZPOČTU A ZÁVĚREČNÝCH ZPRÁV PROJEKTŮ PODPOŘENÝCH Z PROGRAMU BETA
č. j.: TACR/14666/2014 PŘÍRUČKA K PŘEDKLÁDÁNÍ PRŮBĚŽNÝCH ZPRÁV, ZPRÁV O ČERPÁNÍ ROZPOČTU A ZÁVĚREČNÝCH ZPRÁV PROJEKTŮ PODPOŘENÝCH Z PROGRAMU BETA Schválil/a: Lenka Pilátová, vedoucí oddělení realizace
170/2010 Sb. VYHLÁŠKA. ze dne 21. května 2010
170/2010 Sb. VYHLÁŠKA ze dne 21. května 2010 o bateriích a akumulátorech a o změně vyhlášky č. 383/2001 Sb., o podrobnostech nakládání s odpady, ve znění pozdějších předpisů Ministerstvo životního prostředí
VNITŘNÍ NORMA (Směrnice) č. 4/2010
Město Štramberk Náměstí 9, 742 66 VNITŘNÍ NORMA (Směrnice) č. 4/2010 Oběh účetních dokladů Platnost: od roku 2010 Pro účetní případy roku 2010, použití od zahájení účtování účetních případů roku 2010.
19 Jednočipové mikropočítače
19 Jednočipové mikropočítače Brzy po vyzkoušení mikroprocesorů ve výpočetních aplikacích se ukázalo, že se jedná o součástku mnohem universálnější, která se uplatní nejen ve výpočetních, ale i v řídicích
Podmínky užití webového rozhraní
Podmínky užití webového rozhraní Nacházíte se na webovém rozhraní www.playmosvet.cz (dále jen webové rozhraní ) provozovaném podnikatelkou Zdeňkou Doležalovou, se sídlem Růženy Svobodové 1232/1, 415 01
MĚSTSKÁ ČÁST PRAHA 3 Rada městské části U S N E S E N Í
č.j.: 939/2015 MĚSTSKÁ ČÁST PRAHA 3 Rada městské části U S N E S E N Í č. 972 ze dne 14.12.2015 Směrnice rady městské části k provádění pokladních operací s penězi v hotovosti a ceninami, jejich dokumentaci
Praktické úlohy- zaměření specializace
Praktické úlohy- zaměření specializace Realizace praktických úloh zaměřených na dovednosti v oblastech specializace POS: Síťový OS, instalace, konfigurace a optimalizace podle zamýšleného použití; Inicializace
NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================
NÁVOD K OBSLUZE MODULU VIDEO 64 =============================== Modul VIDEO 64 nahrazuje v počítači IQ 151 modul VIDEO 32 s tím, že umožňuje na obrazovce připojeného TV monitoru nebo TV přijímače větší
Příloha č. 3 VÝKONOVÉ UKAZATELE
Příloha č. 3 VÝKONOVÉ UKAZATELE OBSAH 0. ÚVODNÍ USTANOVENÍ... 3 0.1. Vymezení obsahu přílohy... 3 0.2. Způsob vedení evidencí... 3 0.3. Hodnocené období... 4 1. VÝKONOVÉ UKAZATELE ODPADNÍ VODA... 5 1.1.
PŘÍLOHA 1.6 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI LOGISTIKA KONCOVÝCH ZAŘÍZENÍ
PŘÍLOHA 1.6 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI LOGISTIKA KONCOVÝCH ZAŘÍZENÍ Obsah 1 Koncová zařízení... 3 2 Charakteristika typů služeb logistika KZ Dodání KZ, Instalace KZ... 3 3 Další
Návrh individuálního národního projektu. Podpora procesů uznávání UNIV 2 systém
Návrh individuálního národního projektu Podpora procesů uznávání UNIV 2 systém 1. Název projektu Podpora procesů uznávání UNIV 2 systém Anotace projektu Předkládaný projekt navazuje na výsledky systémového
Západní město Stodůlky, Administrativní dům A2 plynovod 1.etapa
Dalkia Česká republika, a.s. Sídlo : Ostrava, 28. října 3337/7, PSČ 709 74 (dále jen zadavatel) vyzývá dodavatele (dále jen uchazeče) k podání nabídek na realizaci díla Západní město Stodůlky, Administrativní
RADA EVROPSKÉ UNIE. Brusel 12. července 2013 (16.07) (OR. en) 12263/13. Interinstitucionální spis: 2013/0235 (NLE) ENV 700 ENT 221
RADA EVROPSKÉ UNIE Brusel 12. července 2013 (16.07) (OR. en) Interinstitucionální spis: 2013/0235 (NLE) 12263/13 ENV 700 ENT 221 NÁVRH Odesílatel: Evropská komise Ze dne: 9. července 2013 Č. dok. Komise:
MĚSTO BENEŠOV. Rada města Benešov. Vnitřní předpis č. 16/2016. Směrnice k zadávání veřejných zakázek malého rozsahu. Čl. 1. Předmět úpravy a působnost
MĚSTO BENEŠOV Rada města Benešov Vnitřní předpis č. 16/2016 Směrnice k zadávání veřejných zakázek malého rozsahu I. Obecná ustanovení Čl. 1 Předmět úpravy a působnost 1) Tato směrnice upravuje závazná
Integrovaný Ekonomický Systém Zakázkový list - IES WIN 2006
Úvod...2 1. Zakázkový list...2 1.1. Identifikační údaje...2 1.2. Položková část...2 1.3. Rezervace (materiálu, resp. zboží)...3 1.4. Materiálové náklady (resp. Výdej nebo Prodej ze skladu)...3 1.5. Běžné
Pravidla o poskytování a rozúčtování plnění nezbytných při užívání bytových a nebytových jednotek v domech s byty.
Pravidla o poskytování a rozúčtování plnění nezbytných při užívání bytových a nebytových jednotek v domech s byty. Preambule Rada města Slavičín se usnesla podle 102 odst.3 zákona č. 128/2000Sb., vydat
5.6.6.3. Metody hodnocení rizik
5.6.6.3. Metody hodnocení rizik http://www.guard7.cz/lexikon/lexikon-bozp/identifikace-nebezpeci-ahodnoceni-rizik/metody-hodnoceni-rizik Pro hodnocení a analýzu rizik se používají různé metody. Výběr metody
Inteligentní zastávky Ústí nad Labem
Příloha č. 7 Technická specifikace pro veřejnou zakázku Inteligentní zastávky Ústí nad Labem nadlimitní veřejná zakázka na realizaci inteligentních zastávek zadávaná v otevřeném řízení, dle zákona o veřejných
Generátor sítového provozu
Generátor sítového provozu Přemysl Hrubý, HRU221 Abstrakt: Nalezení nebo naprogramování (v přenositelném jazyce) konfigurovatelného generátoru provozu simulátoru zátěže charakteristické pro různé typy
ZADÁVACÍ DOKUMENTACE
ZADÁVACÍ DOKUMENTACE veřejné zakázky malého rozsahu DODÁVKA TRANSPORTNÍCH VENTILÁTORŮ zadávané mimo režim zákona č. 137/2006 Sb., o veřejných zakázkách, ve znění pozdějších předpisů (dále jen ZVZ ) Zadavatel:
Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B
PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Oborové číslo Hodnocení - část
Čl. 3 Poskytnutí finančních prostředků vyčleněných na rozvojový program Čl. 4 Předkládání žádostí, poskytování dotací, časové určení programu
Vyhlášení rozvojového programu na podporu navýšení kapacit ve školských poradenských zařízeních v roce 2016 čj.: MSMT-10938/2016 ze dne 29. března 2016 Ministerstvo školství, mládeže a tělovýchovy (dále
Věc: Výzva pro předložení nabídek k veřejné zakázce s názvem: VÚ a ŠJ PŠOV, Nákup nového osmimístného vozidla
VÝCHOVNÝ ÚSTAV A ŠKOLNÍ JÍDELNA PŠOV PŠOV 1 Podbořany 441 01 Tel. ředit: 415 211 297, Mobil ředit.: 736 633 595, Tel. ústředna: 415 214 615, e - mail: a.sava@seznam.cz, Fax: 415 211529, www.vupsov.cz Věc:
PŘÍLOHA 1.3 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI PŘÍSTUP K ŠIROKOPÁSMOVÝM SLUŽBÁM
PŘÍLOHA 1.3 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI PŘÍSTUP K ŠIROKOPÁSMOVÝM SLUŽBÁM Obsah 1 Přehled Služeb...3 2 Služba Internet CA...5 3 Upgrade Služby Internet CA...8 4 Služba Multimedia
Komunikační protokol MODBUS RTU v měřicích převodnících AD4xxx a Drak 4
Komunikační protokol MODBUS RTU v měřicích převodnících AD4xxx a Drak 4 kompletní popis protokolu 4. ledna 2012 w w w. p a p o u c h. c o m MODBUS RTU M O DBUS RTU Katalogový list Vytvořen: 7.9.2007 Poslední
Pokyn D - 293. Sdělení Ministerstva financí k rozsahu dokumentace způsobu tvorby cen mezi spojenými osobami
PŘEVZATO Z MINISTERSTVA FINANCÍ ČESKÉ REPUBLIKY Ministerstvo financí Odbor 39 Č.j.: 39/116 682/2005-393 Referent: Mgr. Lucie Vojáčková, tel. 257 044 157 Ing. Michal Roháček, tel. 257 044 162 Pokyn D -
INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka
INTERNETOVÝ TRH S POHLEDÁVKAMI Uživatelská příručka 1. března 2013 Obsah Registrace... 3 Registrace fyzické osoby... 3 Registrace právnické osoby... 6 Uživatelské role v systému... 8 Přihlášení do systému...
Technologie VoIP. Od historie po současnost
Technologie VoIP VoIP je zkratka z Voice over Internet Protocol. Označují se tak technologie přenosu hlasu prostřednictvím protokolu IP primárně užívaného v Internetu a v lokálních počítačových sítích.
Studie proveditelnosti. Marketingová analýza trhu
Studie proveditelnosti Marketingová analýza trhu Cíl semináře Seznámení se strukturou marketingové analýzy trhu jakou součástí studie proveditelnosti Obsah 1. Analýza makroprostředí 2. Definování cílové
EXTRAKT z mezinárodní normy
EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. ICS 35.240.60; 55.180.01 Inteligentní dopravní systémy Identifikace obsahu nákladních
NAŘÍZENÍ KOMISE (ES) Č. 1828/2006
NAŘÍZENÍ KOMISE (ES) Č. 1828/2006 ZE DNE 8. PROSINCE 2006, kterým se stanoví prováděcí pravidla k nařízení Rady (ES) č. 1083/2006 o obecných ustanoveních týkajících se Evropského fondu pro regionální rozvoj,
METODICKÝ POKYN NÁRODNÍHO ORGÁNU
Ministerstvo pro místní rozvoj METODICKÝ POKYN NÁRODNÍHO ORGÁNU Program přeshraniční spolupráce Cíl 3 Česká republika Svobodný stát Bavorsko 2007-2013 MP číslo: 2/Příručka pro české žadatele, 5. vydání
INFORMAČNÍ SYSTÉM O AREÁLU
CHEMOPETROL, a.s. Strana 1/7 INFORMAČNÍ SYSTÉM O AREÁLU Schválil: Ing. Petr Cingr, generální ředitel a.s. Platnost od: 25.10.2004 Správce dokumentu: Zpracovatel: Odbor integrovaných systémů řízení Odbor
ORGANIZAČNÍ ŘÁD ŠKOLY
Základní škola Hošťálková, okres Vsetín ORGANIZAČNÍ ŘÁD ŠKOLY část: SM - KAMEROVÝ SYSTÉM - PROVOZOVÁNÍ Č.j.: 1-20/2016 Vypracoval: Schválil: Mgr. Miloš Sobotka, ředitel školy Mgr. Miloš Sobotka, ředitel
CENÍK SLUŽBA ETHERNET. Účinnost od 1. 1. 2012 Ceny uvedeny bez i s 20% DPH 1. PODMÍNKY
CENÍK SLUŽBA ETHERNET Účinnost od 1. 1. 2012 Ceny uvedeny bez i s 20% DPH 1. PODMÍNKY 1. Poskytování služby Ethernet se řídí Provozními podmínkami pro poskytování Veřejně dostupné služby Přenosu dat a
I. Základní pojmy a zkratky. - provedení koordinační funkční zkoušky EPS a navazujících zařízení,
TECHNICKÉ A ORGANIZAČNÍ PODMÍNKY pro připojení elektrické požární signalizace prostřednictvím zařízení dálkového přenosu na pult centralizované ochrany operačního střediska Hasičského záchranného sboru
Konzistence databáze v nekonzistentním světě
Konzistence databáze v nekonzistentním světě Radim Bača Katedra informatiky Fakulta elektrotechniky a informatiky VŠB Technická univerzita Ostrava ŠKOMAM 2012-1- 2/2/2012 Obsah Vysvětĺıme si, co je transakce
Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50
Informační systémy 2 Data v počítači EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50 18.3.2014
Platné znění části zákona s vyznačením navrhovaných změn a doplnění. Zákon č. 239/2013 Sb. ČÁST PRVNÍ
Platné znění části zákona s vyznačením navrhovaných změn a doplnění V. Zákon č. 239/2013 Sb. ČÁST PRVNÍ Změna zákona o podmínkách provozu vozidel na pozemních komunikacích Čl. I Zákon č. 56/2001 Sb., o
Pokyny České pošty pro označování Doporučených zásilek čárovými kódy
Pokyny České pošty pro označování Doporučených zásilek čárovými kódy Zpracoval Česká pošta, s.p. Datum vytvoření 14.04.2010 Datum aktualizace 17.04.2014 Počet stran 20 Počet příloh 0 Obsah dokumentu 1.