Robotika Kybernetika, automatizace a měření FEKT VUT v Brně

Podobné dokumenty
Popis programu EnicomD

Komunikační protokol EX Bus. Komunikační protokol EX Bus. Topologie. Fyzická vrstva. Přístup ke sdílenému přenosovému mediu (sběrnici)

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

SEMESTRÁLNÍ PROJEKT Y38PRO

Uživatelský manuál. KNXgw232

Telemetrický komunikační protokol JETI

Kódování signálu. Problémy při návrhu linkové úrovně. Úvod do počítačových sítí. Linková úroveň

Komunikační protokol snímače rel. vlhkosti SV-xxx-x

Praktické úlohy- 2.oblast zaměření

CNC Technologie a obráběcí stroje

Komunikační protokol MODBUS RTU v displejích TDS

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

TQS3. popis modifikace s protokolem MODBUS RTU. 29. února 2008 w w w. p a p o u c h. c o m 0199

Ústav automobilního a dopravního inženýrství. Datové sběrnice CAN. Brno, Česká republika

Převodník Ethernet ARINC 429

Převodník sériového rozhraní RS-485 na mnohavidové optické vlákno ELO E171 Uživatelský manuál

Použití UART a radia na platformě micro:bit

Komunikační protokol MODBUS RTU v displejích TDS

Vestavné systémy BI-VES Přednáška 5

4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

Systém sběru dat z RS232 do MS Excel

Tematický celek 03 - Cvičné příklady

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

KTE / ZPE Informační technologie

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

MRBT. Stacionární průmyslový robot EPSON C3 aplikace pro prezentaci

Návrh konstrukce odchovny 3. dil

ROUTPRO FX Programovatelný převodník RS485 na RS232. Katalogový list. prosinec Komunikační převodníky

TW15 KONCOVÝ PRVEK MSKP. Popis výrobku Technická data Návod k obsluze. Technologie 2000 s.r.o., Jablonec nad Nisou

QTREE-DUMX4 Vícekanálový multiplexer pro připojení měřidel Mitutoyo na USB port PC Uživatelská příručka. Řízení jakosti podle norem ISO 9000

Modbus RTU v DA2RS. kompletní popis protokolu. 13. března 2018 w w w. p a p o u c h. c o m

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Obslužný software. PAP ISO 9001

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

1 Nejkratší cesta grafem

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Komunikační protokol

Datalogger Teploty a Vlhkosti

Komunikační protokol

FOTOMETER 2008 software pro měření optické hustoty (uživatelský manuál)

Středoškolská technika SCI-Lab

TMU. USB teploměr. teploměr s rozhraním USB. měření teplot od -55 C do +125 C. 26. května 2006 w w w. p a p o u c h. c o m

Technický popis ReGaPS v1 Poruchová a stavová signalizace

Komunikace MODBUS pro převodníky AIM600, AIM615. UINT16 Bezznaménkový celočíselný datový typ o velikosti 16bitů rozsah 0 až 65535

MBus Explorer MULTI. Uživatelský manuál V. 1.1

Záznam dat Úvod Záznam dat zahrnuje tři základní funkce: Záznam dat v prostředí třídy Záznam dat s MINDSTORMS NXT

SB485. Převodník rozhraní USB na linku RS485 nebo RS422. s galvanickým oddělením. Převodník SB485. RS485 nebo RS422 USB. přepínače PWR TXD RXD

Komunikační protokol MODBUS RTU v přípojné desce EPD.

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Knihovna DMX512lib Komunikace protokolem DMX512. TXV prvé vydání srpen 2010 změny vyhrazeny

AD4USB. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace i napájení přes USB

Připojení přístroje A4101 k aplikaci DDS2000

MANUÁL SMART-MQU. 1. Úvod. 2. Fyzické provedení přenosové sítě.

Vypracoval: Ing. Antonín POPELKA. Datum: 30. června Revize 01

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

EC Motor. IO Modul EC200. EC200 Int. EC200 Ext. Verze 1.20, revize PMControl s.r.o.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Tester chybovosti 4xSTM-1

GREE Text Parser. GREE Diagnostický program - manuál

Analyzátor sériového rozhraní RSA1B

Uživatelský manuál verze BP

Uživatelský manuál. KNX232e / KNX232e1k

Komunikační protokol MODBUS RTU v senzoru vlhkosti a teploty THT

Uživatelský manuál. Připojení přístroje SDT170 k aplikaci DDS2000

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

Novější verze Linuxu již ovladače pro obvody FTDI v sobě obsahují. Ovladač je potřeba nainstalovat pro každý používaný USB port

Uživatelská příručka

Analyzátor sítě ADR. Návod na použití

Změna USB driveru. Návod, jak změnit typ nainstalovaného USB driveru. 21. března 2006 w w w. p a p o u c h. c o m

MONTÁŽNÍ NÁVOD RSLAN. Komunikační převodník RS485-TCP/IP

15. Projekt Kalkulačka

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

AD4RS. měřící převodník. 4x vstup pro měření unifikovaného signálu 0 10 V, 0 20 ma, 4 20 ma. komunikace linkami RS232 nebo RS485

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

Albatros MultiV ALBATROS MultiV ALBATROS MultiV-R Datový převodník LG PI485 / MODBUS TCP LG PI485 / MODBUS RTU s možností rozpočítávání spotřeby elekt

MONTÁŽNÍ NÁVOD RSLAN. Komunikační převodník RS485-TCP/IP

Canon Controller. Komunikační protokol. Řídicí jednotka k objektivům Canon EF/EF-S

HART RS/ETH. Převodníky rozhraní HART na Modbus TCP (Ethernet) resp. na Modbus RTU (RS485) 30. září 2013 w w w. p a p o u c h.

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

Počítačové sítě Datový spoj

SML 33 / SMM 33 / SMN 33

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

POLE. - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

Komunikační protokol pro Fotometr 2008

Uživatelský modul. DF1 Ethernet

Cvičné příklady Hodina 2

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

MIKROTHERM 825. Monitorovací program MT825C1

MEK1 - Modul externí komunikace RS-232 / MODBUS_RTU.

Universal Serial Bus (USB)

Bakalářská práce Realizace jednoduchého uzlu RS485 s protokolem MODBUS

Komunikace modulu s procesorem SPI protokol

Buffer 16kB pro sériovou linku RS232 s konverzí rychlosti, parity, počtu datových bitů a stopbitů

Řízení experimentu počítačem

Protokol S-BUS pro MORSE Popis protokolu

Modemy rozhraní RS-485/422 na optický kabel ELO E243, ELO E244, ELO E245. Uživatelský manuál

Transkript:

Robotika Kybernetika, automatizace a měření FEKT VUT v Brně Jméno Michal Paták Ročník 1. Obor UAMT ID 106241 Skupina Název Vizualizace údajů z nabíječe baterií Zadání Vytvořte aplikaci, která bude přehledným a intuitivním způsobem vizualizovat data z nabíječe baterií, realizovaném v Semestrálním projektu 1. Pokuste se zobrazit následující parametry: napětí a nabíjecí proud nabíječe, napětí na jednotlivých článcích, kritický stav jednotlivých článků, přehřátí / podchlazení baterie, případně energii uloženou v baterii. Komunikace s počítačem Pro komunikaci nabíječky s počítačem je v nabíječce implementovaná sériová sběrnice RS-485. RS-485 je tvořena jedním párem vodičů, které se obvykle značí A a B nebo alternativně + a -. Maximální délka vodičů této sběrnice by neměla přesáhnout 1200m. V klidovém stavu by na vodiči B mělo být větší napětí než na vodiči A. U spojů řádově do 10m lze dosáhnout přenosové rychlosti až 10Mbs. Přijímač rozlišuje logický stav 0 a 1 při rozdílu napětí A - B +200 mv je stav vyhodnocen jako 0 a při rozdílu napětí A - B -200 mv je vyhodnocen stav 1. Vysílač by měl v klidu (log. 1) generovat na vodiči A -2V a na vodiči B +2V. Při logické 0 by měl generovat na vodiči A +2V a na vodiči B -2V. Jeden rámec pro přenos dat je stejně jako u RS-232 7 nebo 8 bitový se startbitem jedním nebo více stopbity a možností přenášet i paritní bit. Startbit je logická nula, stopbit je logická jednička. Na obrázku 1 je ukázka přenosu jednoho rámce. Obrázek 1: Jeden rámec přenosu RS-485 V MCU je hardwarově implementovaná sériová linka UART a následně je tento signál pomocí převodníku MAX481CSA převeden na signál sériové sběrnice RS-485. 1

Upravený komunikační protokol Při vytváření komunikačního protokolu jsem vycházel z protokolu MODBUS. Na obrázku [2] je zobrazen základní rámec komunikace. Komunikace je založena na tom, že nabíječka Obrázek 2: Rámec komunikace je master a počítač je slave. Slave pošle požadavek na adresu mastera v jakém režimu a jaká data chce, aby mu master poslal. Ověření správnosti přenesených dat - kontrolní součet Pro ověření správnosti přenesených dat slouží kontrolní součet, který se může provést jako součet všech jedniček nebo nul v přenesených datech 1. Vysílací strana si spočítá jedničky, respektive nuly, na všech poslaných datech jednoho rámce a uloží si je do jedné proměnné, přijímač spočítá jedničky, respektive nuly, ze všech přijatých dat v jednom rámci a pošle je zpět vysílači. Ten poté obě čísla porovná a rozhodne tak o správnosti přenosu. Pro kontrolu správnosti přenesených dat jsou používané i lepší algoritmy jako je CRC. V této aplikaci je zvolen kvůli rychlosti výpočtu jako kontrolní součet XOR adresy, funkce a dat. Jelikož jsou přenášena data pouze pro zobrazování a nikoliv pro řízení, není správnost přenesených dat nijak kritická a není tedy potřeba zatěžovat MCU opravnými kódy či časově náročným CRC součtem. Program pro komunikaci v počítači V počítači je program psán v jazyce C#. Pro komunikaci s nabíječkou je použitý převodník z RS485 na USB. S tímto převodníkem se v počítači pracuje jako se sériovým portem 2. Nejprve je potřeba nastavit parametry komunikace sériového portu. Tento kód bude vypadat následovně: myserialport = new SerialPort ( ) ; //Metoda pro n a s t a v e n í COM portu private void InitSerialPort ( string PortSet ) try myserialport. PortName=PortSet ; myserialport. BaudRate =38400; myserialport. Parity=Parity. None ; myserialport. StopBits=StopBits. One ; myserialport. DataBits =8; myserialport. Handshake=Handshake. None ; myserialport. DataReceived+=new SerialDataReceivedEventHandler ( DataReceviedHandler ) ; myserialport. ReadTimeout =1000; myserialport. WriteTimeout =1000; 1 adresa, funkce a data 2 v převodníku je použit obvod FTDI 2

myserialport. Open ( ) ; i f ( myserialport. IsOpen ) this. stav_label. ForeColor=Color. LimeGreen ; stav_label. Text= Otevřeno ; else stav_label. Text= Nepovedlo se o t e v ř í t ; catch return ; Přijetí paketu sériové linky Je potřeba zajistit, aby při přijetí dat byla sériová linka obsloužena. To zajišt uje event metoda 3. private void DataReceviedHandler ( object sender, SerialDataReceivedEventArgs e ) ; Jelikož tato metoda běží ve zvláštním vláknu, je zapotřebí se vrátit k vláknu původnímu, a to se dělá vytvořením metody. this. Invoke (new EventHandler ( DoUpdate ) ) ; V metodě private void DoUpdate ( object sender, EventArgs e ) se po té provede zpracování přijatých dat. Podrobněji bude popsáno v kapitole Při přijetí dat je nejprve zapotřebí v event metodě počkat 20ms 4, to se provede uspáním vlákna Thread.Sleep(20). Poté se vyčtou data myserialport.read(dataserialstr, 0, DataSerialStr.Length) 5. Následně je ověřeno, jestli jako poslední dva přijaté znaky jsou 0xFF a pokud ano, tak se uloží přijatá adresa, funkce, dva byty dat a kontrolní součet. Následně se smaže celé pole DataSerialStr a z přijatých dat se udělá kontrolní součet. Ten se provede jako XOR přijaté adresy, funkce a dat. Následně se otestuje jestli souhlasí přijatý kontrolní součet s vypočítaným a jestli je přijatá adresa adresou počítače. Pokud tyto parametry souhlasí, proměnná SerialPaket- Check se nastaví na jedničku, aby bylo dále v programu možné zjistit jestli přišel rámec v pořádku a jestli tento rámec je určený pro počítač. Poslání paketu sériové linky Paket je posílán pomocí metody: private void SendFrameUart ( ) 3 metoda, která reaguje na požadovanou událost 4čas potřebný pro přijetí celého rámce 5 proměnná DataSerialStr je bytové pole 3

SerialSum = CheckSumSerial ( ) ; byte [ ] byteserialframe=serialadresacharger, SerialFunkceTransmit, SerialDataTransmit, SerialSum, 0 xff, 0 xff ; myserialport. Write ( byteserialframe, 0, byteserialframe. Length ) ; Metoda pro spočítání kontrolního součtu: private byte CheckSumSerial ( ) byte temp = 0 ; temp ^= SerialAdresaCharger ; temp ^= SerialFunkceTransmit ; temp ^= SerialDataTransmit ; return temp ; Aplikace pro komunikaci z počítačem Jak už bylo uvedeno v kapitole Komunikace s počítačem, je aplikace pro počítač napsána v jazyku C#, což je vysokoúrovňový objektově orientovaný programovací jazyk, který je založen na.net Framework 6. Jeho hlavní výhoda je snadný vývoj formulářových aplikací pro Windows platformu. Funkce aplikace pro počítač Nejprve bylo potřeba vyřešit komunikaci s nabíječkou. Popis komunikace je uveden výše v kapitole Upravený Komunikační Protokol, kde je popsáno nastavení sériového portu, příjem a vysílání paketu. Adresa Funkce Data 1 Kanál 1 2 Kanál 2 1 Balancer 3 Kanál 3 4 Kanál 4 1 Nabíječ 5 Kanál 5 6 Kanál 6 1 Výstupní napětí 2 Měření výstupů 2 Výstupní proud 3 Teplota baterie 2 PC 1 - - Data Tabulka 1: Hodnoty parametrů komunikačního protokolu 6 prostředí potřebné pro běh aplikací v C#, které nabízí spouštěcí rozhraní a potřebné knihovny 4

Měření výstupů Zpracování přijatého paketu Nastavení sériové linky a přijetí paketu je podrobně popsané v kapitole Přijetí Paketu Sériové Linky. Po zavolání metody Invoke se program vrátí zpět do původního vlákna do metody private void DoUpdate(object sender, EventArgs e). V této metodě se řeší funkcionalita programu jak je nakreslená na vývojovém diagramu 3. Funkcionalita této metody vychází z tabulky 1. Nejprve se otestuje jestli přišel paket v pořádku if(serialpaketcheck=1) a po té se pomocí switch(serialfunkcetransmit) vybere funkce a pomocí switch(serialdatatransmit) jsou vybrána data. Objekt graf Pro graf jsou vytvořené dvě třídy, jedna pro ukládání naměřených dat public class Data a druhá pro zobrazování těchto dat public class Graf:PictureBox. Třída pro ukládání dat Tato třída je jednoduchá, má pouze jednu metodu a to metodu pridej, která přidá nový prvek do třídy. namespace mereni public class Vzorek public int hodnota ; public int cas ; public int pocet ; public Vzorek ( int Value, int Count ) this. hodnota = Value ; this. pocet=count ; public class Data Stopwatch stopky = new Stopwatch ( ) ; int pocet = 0 ; public List<Vzorek> data ; public Data ( ) data = new List<Vzorek >() ; DateTime start = DateTime. Now ; public void pridej ( int hodnota ) this. data. Add (new Vzorek ( hodnota, pocet++)) ; 5

Obrázek 3: Vývojový diagram metody DoUpdate 6

Každý prvek v této třídě má svou hodnotu a svůj index. Instanci této třídy můžeme vytvořit a vložit do ní jeden prvek: Data DataOutputVoltage ; DataOutputVoltage = new Data ( ) ; DataOutputVoltage. pridej ( OutVoltage ) ; Třída pro zobrazování dat Jak je vidět již z definice třídy, tato třída je potomek třídy PictureBox, protože tento objekt je určen ke kreslení hodí se pro zobrazování grafů. Třída Graf obsahuje více metod než třída Data. Před použitím je nejprve nutné nastavit parametry zobrazovaného grafu. GraphOutputVoltage. NastaveniMinMax ( 0, 5000) ; GraphOutputVoltage. NastaveniRezimuOsyX = f a l s e ; GraphOutputVoltage. NadpisString = Graf výstupního napetí n a b í j e c k y ; GraphOutputVoltage. PopisY = Napetí [ V] ; GraphOutputVoltage. PopisX = GraphBalancer. PopisX ; Metodou NastaveniMinMax(int YminScale,int YmaxScale) nastavíme rozsah zobrazovaných hodnot na ose y. Logickou proměnnou NastaveniRezimuOsyX nastavíme režim zobrazovaní dat a to bud všechna data false a nebo zobrazení jen posledních 5s true. Proměnnou NadpisString nastavíme nadpis grafu. Proměnnýma PopisX a PopisY nastavíme popisky os x a y. Instanci této třídy můžeme vytvořit a vložit do ní jeden prvek: Graf GraphOutputVoltage ; GraphOutputVoltage = new Graf ( ) ; Další metody této třídy jsou PridejTrend(Data data,color Barva), která přidá trend do grafu. Metoda SmazGraf(), která smaže celý graf. To jsou všechny veřejné metody, které je možné z programu volat. Ostatní metody jsou už pouze privátní pro zajištění funkce třídy. Jako metoda kresli_primku(point a, Point b,color Barva), která vykreslí jednu přímku do grafu. Metoda mrizka(), která vykreslí osy popisky a mřížku do grafu. Uživatelské prostředí aplikace Na obrázku 4 je zobrazeno uživatelské prostředí aplikace pro sběr dat z nabíječky. Nejprve je zapotřebí zvolit COM port a poté už jen začít měření tlačítkem Start měření. 7

Obrázek 4: Uživatelské prostředí aplikace Závěr Cílem tohoto projektu bylo vytvořit aplikaci, která bude komunikovat s nabíječkou a vizuálně zobrazovat data, která nabíječka naměří. Vytvořil jsem aplikaci v programovacím jazyku C#, která zajišt uje komunikaci a zobrazení dat. Data jsou zobrazována číselně a graficky. Pro grafické zobrazení jsem si napsal vlastní třídu, která zobrazí data do grafu. Program data přijímá i zobrazuje správně. 8