ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA ELEKTROTECHNICKÁ KATEDRA ŘÍDICÍ TECHNIKY
BAKALÁŘSKÁ PRÁCE
Vážící systém s identifikací
Miroslav Macháček
Praha 2006
vedoucí : ing. Ondřej Dolejš
Prohlášení Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady ( literaturu, projekty, SW atd.) uvedené v přiloženém seznamu.
V Praze dne 28.6.2006
……………………………………. podpis
Poděkování Rád bych poděkoval ing. Ondřeji Dolejšovi za odborné vedení bakalářské práce, za poskytnutí technických prostředků i potřebných materiálů a hlavně za užitečné rady, bez kterých by byla tato práce sotva dokončena. Dále bych také rád poděkoval celé své rodině za podporu a za vytvoření klidného zázemí během celé doby studia.
Anotace Cílem bakalářské práce je vytvořit systém, založený na průmyslovém počítači WAGO, pro změření výšky a váhy uživatele, který každému uživateli umožní uložení těchto naměřených dat do paměti a zároveň jejich zobrazení. Identifikace jednotlivých uživatelů je prováděna pomocí čtečky čipových karet. Zároveň je také umožněna registrace nového uživatele pomocí čipové karty, která ještě není v databázi. Je možné použít čipovou kartu ČVUT, kterou mají jak studenti tak i profesoři. Samotné měření váhy a výšky se provádí pomocí osobní váhy Tonava TH 200.
Annotation The aim of this bachelor thesis is to build a system based on WAGO Industrial PC (IPC) for measuring weight and height of a person. Another task of the system is to save measured data of registered users into memory and to allow the user to see his own history of measurement. Identification of users is provided by RFID card reader and registration of new users is also supported. Common RFID card that owns every student or professor at Czech Technical University can be used. Weight and height of a person is measured by a personal balance Tonava TH 200.
Obsah
1
Úvod ........................................................................................................... 3
2
Složení systému ......................................................................................... 4
3
Popis komponent systému ....................................................................... 4 3.1 Průmyslový počítač WAGO-I/O-IPC 758-870.................................................. 4 3.1.1 Napájení......................................................................................................... 5 3.1.2 Zabudovaná sériová linka.............................................................................. 6 3.1.3 Přídavná sériová linka ................................................................................... 6 3.1.4 Vizualizace na monitoru................................................................................ 7 3.1.5 Vývojové prostředí CodeSys ......................................................................... 7 3.1.6 Zápis projektu do IPC.................................................................................... 9 3.2 Osobní váha Tonava TH 200 .............................................................................. 9 3.2.1 Rozsahy měření ............................................................................................. 9 3.2.2 Zapojení ....................................................................................................... 10 3.2.3 Kalibrace...................................................................................................... 10 3.2.4 Ovládání ...................................................................................................... 11 3.3 Čtečka čipových karet IMA PCE-05 ............................................................... 12
4
Komunikace po RS232........................................................................... 13 4.1 Čtečka čipových karet ....................................................................................... 13 4.2 Osobní váha........................................................................................................ 13 4.2.1 Textový protokol ......................................................................................... 13 4.2.2 Protokol EBUS ............................................................................................ 14 4.2.2.1 Prvky přenosu .......................................................................................... 15 4.2.2.2 Použití protokolu ..................................................................................... 17
5
Programové řešení.................................................................................. 19 5.1 Operační režim IPC .......................................................................................... 19 5.2 Struktury a ukládání dat .................................................................................. 20 5.2.1 Použité struktury.......................................................................................... 20 5.2.2 Administrátorský účet ................................................................................. 21 5.2.3 Uchování proměnných................................................................................. 22 5.3 Obsluha čtečky čipových karet......................................................................... 22 5.4 Obsluha váhy ..................................................................................................... 23 5.4.1 Průběh komunikace ..................................................................................... 23 5.4.2 Integrita hodnot ........................................................................................... 24 5.4.3 Zpracování hodnot....................................................................................... 25 5.5 Vizualizace.......................................................................................................... 25 5.5.1 Přepínání mezi okny .................................................................................... 26 5.5.2 Detaily účtu ................................................................................................. 27 5.5.3 Administrační rozhraní ................................................................................ 27 5.5.3.1 Generování tabulky uživatelů .................................................................. 27 5.5.3.2 Smazání uživatele .................................................................................... 28 5.5.4 Zobrazení chyb ............................................................................................ 28
5.6
Výpočet BMI a optimální váhy ........................................................................ 29
6
Závěr........................................................................................................ 30
7
Seznam použité literatury...................................................................... 31
8
Seznam příloh ......................................................................................... 31 Příloha 1 - Obsah přiloženého CD ............................................................................. 32 Příloha 2 - Přídavný modul RS232 ............................................................................ 33 Příloha 3 - Návod k použití ......................................................................................... 34
Miroslav Macháček
Vážící systém s identifikací
1 Úvod Systém umožňuje změření váhy a výšky uživatele a výpočet jeho indexu tělesné hmotnosti (BMI – kapitola 5.6). Pro nepřihlášeného uživatele jsou tyto data pouze zobrazena na monitoru. Pokud má uživatel zájem o uchování jeho naměřených dat v paměti průmyslového počítače, musí se se svou čipovou kartou zaregistrovat. Poté, pokud je při měření uživatel přihlášen, jsou všechny jeho naměřené vzorky ukládány spolu s datem a časem pořízení do paměti. Každý přihlášený uživatel si může svoje uložená data prohlížet i mazat. Pro správu systému slouží administrační účet, který může být jen jeden a který se váže na ID čipové karty. Administrátor může předat správcovství na jinou kartu a tento nový administrátor získá jeho účet. Hlavní funkce administrátora je mazat uživatele, pokud je již dosažen maximální počet registrací. Má tedy možnost si zobrazit seznam všech registrovaných uživatelů seřazených od nejstaršího data přihlášení a mazat kteréhokoli z nich. Jako jádro systému je použit průmyslový počítač (Industrial PC, zkratka IPC) WAGO, který zprostředkovává komunikaci s osobní váhou, čtečkou RFID karet a pomocí monitoru, myši a klávesnice i se samotným uživatelem. Uživatelé a jejich naměřené hodnoty se ukládají do paměti IPC a jsou uchovány i po odpojení napájení. Počet uživatelů je omezen na 280, každý může mít maximálně 30 naměřených hodnot. Uživatel má možnost mazat své naměřené údaje od nejstarších. Ve třetí kapitole jsou popsány komponenty, které byly v této práci využity. Mezi ně patří průmyslový počítač WAGO, osobní váha Tonava TH 200 a čtečka čipových karet IMA PCE-05. Ve čtvrté kapitole se zabývám komunikací po sériových linkách s váhou a čtečkou čipových karet. U váhy popisuji dva možné protokoly komunikace, z toho pouze jeden se dá použít (EBUS – kap. 4.2.2). Pátá kapitola obsahuje řešení jednotlivých části programu a prvky vizualizace. Popisuji zde, jak jsem řešil ukládání dat, administraci účtů, obsluhu sériových linek a vizualizaci na monitor.
ČVUT Fakulta elektrotechnická
Strana 3
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
2 Složení systému Na obrázku 2.1 je vyznačeno blokové schéma systému. Jádrem je průmyslový počítač firmy WAGO (kap. 3.1), ke kterému jsou připojeny všechny ostatní komponenty. Jednostranná šipka mezi průmyslovým počítačem (IPC) a čtečkou čipových karet (kap. 3.3) znamená, že komunikace mezi nimi probíhá pouze jednosměrně a to z čtečky do IPC (popis v kap.4.1). Naopak mezi IPC a váhou (kap. 3.2) je komunikace obousměrná podle protokolu EBUS popsaném v kapitole 4.2.2.
čtečka čipových karet
RS232
IPC VGA
RS232 váha
USB
USB
Obrázek 2.1 – blokové schéma systému
3 Popis komponent systému 3.1 Průmyslový počítač WAGO-I/O-IPC 758-870 Průmyslový počítač používá operační systém Linux na procesoru Pentium MMX. Funkcí tohoto průmyslového počítače (IPC) je komunikovat s váhou Tonava TH 200 (kapitola 3.2), zpracovat ID čipové karty ze čtečky IMA PCE-05 (kapitola 3.3) a zároveň uživateli umožnit registraci, zobrazovat pomocí monitoru naměřená data, události a chyby a ukládat hodnoty do své paměti. Na obrázku 3.1 jsou označeny hlavní konektory IPC. Přepínač RUN / STOP by měl být vždy v poloze RUN, aby byl po připojení napájení automaticky spuštěn program. USB konektory slouží k připojení myši a klávesnice.
ČVUT Fakulta elektrotechnická
Strana 4
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Průmyslový počítač byl na veletrhu Ampér 2005 oceněn cenou Zlatý Ampér 2005.
Obrázek 3.1. – průmyslový počítač WAGO-I/O-IPC 758-870
3.1.1 Napájení Průmyslový počítač se napájí stejnosměrnými 24V. Toto napětí musí být přivedeno na svorkovnici umístěnou nalevo od IPC (zobrazeno na obr. 3.2).
24V
GND
IPC
čtečka čipových karet
Obrázek 3.2 – svorkovnice napájení IPC
ČVUT Fakulta elektrotechnická
Strana 5
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
3.1.2 Zabudovaná sériová linka Konektor sériové linky se nachází na IPC pod výstupem na monitor a je k němu připojena váha Tonava TH 200. Zapojení jednotlivých pinů konektorů je na obrázku 3.3.
Obrázek 3.3 – 9-pin konektor sériové linky
3.1.3 Přídavná sériová linka Jak vyplývá z blokového schématu na obrázku 2.1, pro tento systém jsou potřeba dvě sériové linky (pro váhu a čtečku). Protože IPC obsahuje pouze jednu zabudovanou sériovou linku (kap. 3.1.2), je druhá sériová linka přidána k IPC jako modul (viz obrázek 3.4), který má označení 750-650/003-000. Programová konfigurace této linky je uvedena v Příloze 2.
Obrázek 3.4 – přídavný modul sériové linky (750-650/003-000) k IPC s označenými piny
ČVUT Fakulta elektrotechnická
Strana 6
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
3.1.4 Vizualizace na monitoru Průmyslový počítač umožňuje vizualizovat procesní data na monitor. Vizualizace je rozdělena do oken, ve kterých mohou být obrázky, tlačítka, texty, tabulky. Mezi okny se dá přepínat a pomocí myši a klávesnice se dá vizualizace ovládat. Monitor je k IPC připojen přes DVI výstup (na obr. 3.1). Vytváření vizualizace je popsáno v kapitole 5.5. Okna vizualizace se vytvářejí spolu s programem ve vývojovém prostředí CoDeSys popsaném v následující podkapitole (3.1.5).
3.1.5 Vývojové prostředí CodeSys Průmyslový počítač WAGO-I/O-IPC je možné programovat stejně jako ostatní programovatelné stanice firmy WAGO ve vývojovém prostředí CoDeSys. Toto prostředí splňuje programovací normu IEC 61131-3, která specifikuje jazyky pro programovatelné automaty (PLC), ve kterých je možno psát kódy programu. Jsou to : •
IL - Instruction List (obr. 3.5(a) ) Textový jazyk označovaný jako jazyk povelů, je velmi podobný assembleru.
•
ST - Structured Text (obr. 3.5(b) ) Textový jazyk vyšší úrovně, vychází z jazyka PASCAL a obsahuje řídící struktury jako IF, CASE, FOR, WHILE a REPEAT-UNTIL
•
FBD - Function Block Diagram (obr. 3.5(c) ) Grafický jazyk, který vyjadřuje chování funkcí, funkčních bloků a programů jako soubor vzájemně provázaných grafických bloků
•
LD - Ladder Diagram (obr. 3.5(d) ) Grafický jazyk kontaktních (reléových) schémat, je založen na grafické representaci releové logiky
•
SFC - Sequential Function Chart (obr. 3.5(e) ) Grafický jazyk, umožňuje popsání chronologického pořadí jednotlivých částí programu.
•
CFC - Continuous Function Chart (obr. 3.5(f) ) Stejný jako FBD, nepracuje se sítěmi, ale s volně umístitelnými elementy a je více flexibilní.
ČVUT Fakulta elektrotechnická
Strana 7
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
(a) - IL
(b) - ST
(c) - FBD
(d) - LD
(f) - SFC
(e) - CFC Obrázek 3.5 – jednotlivé programovací jazyky v prostředí CoDeSys
ČVUT Fakulta elektrotechnická
Strana 8
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
3.1.6 Zápis projektu do IPC Do průmyslového počítače je možné z vývojového prostředí CoDeSys zapisovat projekty přes zabudovanou sériovou linku nebo přes ethernetové rozhraní. Na IPC jsou sice dvě ethernet rozhraní, ale programovaní je možné pouze přes konektor označený jako X9, který je primární. Tento konektor je na obrázku 3.1 označen jako LAN. Vzhledem pohodlnosti a hlavně rychlosti síťového rozhraní jsem raději volil tento způsob programování. Aby bylo možné připojit IPC do sítě průmyslových automatů ČVUT FEL na Karlově náměstí, je port X9 nastaven následovně: • • •
IP : 192.168.137.2 Maska podsítě : 255.255.255.0 Výchozí brána : 192.168.137.1 (spojuje síť 137 a síť počítačů (136))
Pro jednoduchou administraci běží v průmyslovém počítači HTTP a FTP server oba dostupné na IP adrese IPC na defaultních portech. Pro přístup jsou potřeba tyto údaje: • •
uživatelské jméno : user heslo : user00
3.2 Osobní váha Tonava TH 200 Osobní váha Tonava TH 200 (na obr. 3.5) umožňuje měření hmotnosti i výšky člověka v mezích a přesnostech uvedených v následující podkapitole.
3.2.1 Rozsahy měření Hmotnost : horní mez váživosti (max.) : 200kg dolní mez váživosti (min.) : 2kg (možno i méně, ale s větší chybou měření) přesnost : 0,1kg Výška : rozsah měření : 1,1m až 2,1m přesnost : 0,5cm Obrázek 3.5 – osobní váha Tonava TH 200
ČVUT Fakulta elektrotechnická
Strana 9
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
3.2.2 Zapojení Napájení váhy zajišťuje externí zdroj s výstupním stejnosměrným napětím 7V. Váha musí být napojena na zabudovaný sériový port průmyslového počítače WAGO (kap. 3.1.2) pomocí sériového kabelu s prohozenými piny RxD a TxD (stejně jako při propojení PC-PC) – viz obr. 3.6.
Obrázek 3.6 – propojení konektorů mezi IPC a váhou
3.2.3 Kalibrace Váha musí být na rovném povrchu a srovnána pomocí libely do vodorovné polohy. Po zapnutí váhy dochází k její kalibraci, která je signalizována změnou číslic na jejím displeji. Během této kalibrace nesmí být váha nijak zatížena a výsuvné rameno pro měření výšky musí být ve výchozí poloze (tj. úplně dole). Pokud se po kalibraci zobrazí na jejím displeji nápis "E-xx", došlo k chybě s číslem „xx“. Význam chybových kódů je v tabulce 2.1, závažné chybové kódy jsou vysvětleny v tabulce 2.2. V případě správné kalibrace je na displeji zobrazena hodnota „0.0“. kód chyby E-01 E-02 E-03 E-04 E-05 E-06 E-07 E-08
popis můstek vah je pri zapnutí zatížen neobsazeno neobsazeno fatální chyba výpočtu neobsazeno neobsazeno není uklidněná hodnota hmotnosti (nelze tisknout) chyba tiskárny (nezapojena apod.) Tabulka 2.1 – Chybové kódy váhy Tonava TH 200
ČVUT Fakulta elektrotechnická
Strana 10
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
kód chyby
popis
E-90 E-93 E-94 E-98 E-99
chyba při kontrole dvojího uložení dat chyba při průběžné / počáteční kontrole činnosti A/D převodníku chyba při počáteční kontrole paměti EEPROM chyba průběžné kontroly registru A/D převodníku dosažení krajních bodu převodníku (po odstranění se zruší sama) Tabulka 2.2 – závažné chybové kódy váhy Tonava TH 200
Pokud se při vypnutí a následném zapnutí váhy závažná chyba neodstraní, je nutné uvědomit servisní oddělení výrobce nebo organizace jím pověřené.
3.2.4 Ovládání Váhu je možno ovládat čtyřmi tlačítky umístěnými pod jejím displejem – viz obrázek 3.7.
Obrázek 3.7 – pohled na displej váhy s tlačítky
Led signalizace : >0< : svítí, pokud je váha v nulové poloze hmotnosti i výšky cm : svítí, pokud je na displeji váhy zobrazena výška kg : svítí, pokud je na displeji váhy zobrazena hmotnost
ČVUT Fakulta elektrotechnická
Strana 11
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Tlačítka : NUL : pokud je váha ustálena, vynuluje se a případné zatížení váhy se vezme za nulovou hodnotu, po zmáčknutí se rozsvítí >0< TEST : po stisknutí proběhne na dobu cca 5s nebo do dalšího stisku tohoto tlačítka test displeje váhy – rozsvítí se všechny jeho segmenty TISK : je-li povolen tisk, vyšlou se po sériové lince údaje o změřené hmotnosti a výšce. Toto tlačítko nepoužívat, neboť se z váhy čtou hodnoty hmotnosti a výšky jiným způsobem! F : na displeji přepíná zobrazení hmotnosti nebo váhy – stejný údaj je zobrazen na monitoru, čili se toto tlačítko nemusí používat
3.3 Čtečka čipových karet IMA PCE-05 Čtečka (obrázek 3.8) má napájení 12V z externího zdroje. Při přiložení karty vyšle po sériové lince ID této karty, slouží pro identifikaci uživatele. S průmyslovým počítačem WAGO je spojena přes jeho druhý sériový port, který je k IPC přidán jako rozšiřovací modul (kap. 3.1.3).
Obrázek 3.8 – čtečka čipových (RFID) karet IMA PCE-05
ČVUT Fakulta elektrotechnická
Strana 12
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
4 Komunikace po RS232 Tato kapitola popisuje nastavení parametrů obou sériových portů IPC, popis komunikace čtečky čipových karet a protokoly osobní váhy Tonava TH 200.
4.1 Čtečka čipových karet Čtečka komunikuje podle parametrů uvedených v tabulce 4.1. Po přiložení čipové karty ke čtečce dojde k vyslání 10 bajtů dlouhého ID této karty po sériové lince. Komunikace se čtečkou probíhá tedy pouze jednosměrně. přenosová rychlost 9600Bd 8 počet bitů parita žádná 1 počet stop bitů řízení toku žádné Tabulka 4.1 – parametry komunikace čtečky čipových karet
4.2 Osobní váha S osobní váhou je možné komunikovat dvěma různými protokoly – textovým a servisním (označení EBUS). Z následujících dvou podkapitol vyplyne, že textový protokol se pro můj účel nedá použít kvůli nevýhodám popsaným v podkapitole 4.2.1. Po zapnutí váhy je komunikace implicitně nastavena na textový protokol. K přepnutí na protokol EBUS slouží příkaz KRES popsaný v kapitole 4.2.2.1. Konfigurace sériové linky pro osobní váhu je uvedena v tabulce 4.2. přenosová rychlost 1200Bd 8 počet bitů parita žádná 1 počet stop bitů řízení toku žádné Tabulka 4.2 – parametry komunikace osobní váhy
4.2.1 Textový protokol Jedná se o jednoduchý protokol, který pouze vyšle řetězec dat (formát dle 4.1 na straně 14, v posledním odstavci této podkapitoly) po sériové lince. K vyslání dat ale
ČVUT Fakulta elektrotechnická
Strana 13
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
dojde pouze tehdy, je-li na váze zmáčknuto tlačítko TISK (popis v kap. 3.2.4) a zároveň jsou splněny následující podmínky : •
hodnota hmotnosti i výšky je ustálena (signalizuje pípnutí váhy)
•
na displeji váhy je zobrazena hmotnost
Z toho vyplývá problém, že pokud po pípnutí váhy nedojde k okamžitému zmáčknutí tlačítka TISK může se stát, že dojde k pohnutí hodnot a následně nedojde k poslání řetězce, protože hodnoty již nejsou ustáleny a musí se čekat na další pípnutí. Tento protokol má bohužel ještě komplikaci, že jako výška je zaslána poslední hodnota výšky, která byla zobrazena na displeji váhy. Pokud nebyla ještě od zapnutí váhy zobrazena na jejím displeji výška, bude na jako hodnota výšky posláno „0.0“. Čili pro správné poslání hodnot se musí postupovat takto : •
stoupnout si na váhu, výsuvné rameno pro měření výšky položit na hlavu
•
přepnout na zobrazení výšky na displeje váhy (tlačítko F)
•
přepnout na zobrazení hmotnosti (tlačítko F)
•
ihned po pípnutí váhy stisknout tlačítko TISK
Vyslaný řetězec dat má vždy délku 20 bajtů a následující formát : Bmmm.mKg_H_hhh.hcm
(4.1)
•
„_“ značí mezeru (v ASCII odpovídá hexadecimální hodnota 20h)
•
„“ znamená carriage return (v jazyce C odpovídá „\r“, v ASCII 13h)
•
„“ znamená linefeed (v jazyce C odpovídá „\n“, v ASCII 10h)
příklad řetězce : B 72.3Kg H 174.2cm
4.2.2 Protokol EBUS Jedná se o servisní protokol firmy Tonava a.s., který je implementován ve všech jejích produktech v oblasti vážení. Komunikace mezi zařízeními je typu MASTERSLAVE, kdy jako podřízené zařízení je vždy váha Tonava. Nadřazené zařízení je v mém případě IPC, ale může se také jednat o PC apod. Tento protokol se používá hlavně pro diagnostiku a seřizování vah Tonava.
ČVUT Fakulta elektrotechnická
Strana 14
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Po zapnutí váhy je vždy nastaven textový protokol (kap. 4.2.1), pro přepnutí na protokol EBUS slouží příkaz KRES popsaný v kapitole 4.2.2.1. Protokol umožňuje číst z váhy data a je možno zapisovat uživatelsky ovlivnitelná data. Pokus o změnění dat (parametrů), které mají vliv na metrologické vlastnosti váhy, je zamezen zablokováním váhy a zobrazením chybové hlášky „E-90“. Protokol probíhá v poloduplexním režimu, kdy jedno zařízení vysílá a druhé přijímá. Komunikace nemůže probíhat oběma směry současně. Čtení a zápis dat probíhá jako čtení a zápis proměnných, které jsou na určitých adresách v paměti váhy. Tyto adresy je nutno nejprve nastavit a až potom nad nimi provádět operace čtení nebo zápisu. Data v paměti mohou být uložena nejen jako jednoduché proměnné, ale i jako bloky dat složených z řetězců ASCII znaků. Takový blok dat se v paměti adresuje pouze jako jedna adresa. Maximální délka bloku je 11 znaků. Operacemi s bloky dat se zde nebudu zabývat, protože je v této bakalářské práci nebylo třeba použít. Pro více informací o operacích s bloky viz [8]. Protokol EBUS má oproti textovému (kap. 4.2.1) tu výhodu, že umožňuje čtení hodnot z váhy, aniž by se muselo na jejím displeji mačkat jakékoli tlačítko. Tím je vyřazena interakce uživatele a je možnost si kdykoli z váhy načíst aktuální hodnoty.
4.2.2.1 Prvky přenosu Přenos může obsahovat následující prvky : •
příkazy
•
texty, ukončovací znak
•
status komunikace
Text se skládá vždy z hodnot 20h-7Fh, ukončovací znak má vždy hodnotu 03h, povely a status komunikace jsou vždy v rozmezí 80h-FFh (tj. vyšší znaková sada). 1. Příkazy (CMD) Slouží k nastavení adresy, k zápisu hodnoty na tuto adresu či čtení z ní. Jednotlivé příkazy s hexadecimálními hodnoty jsou uvedeny v tabulce 4.3. Po všech příkazech váha odpovídá. Po KRES, WRA, WRD pouze statusem komunikace, po RDA a RDD textovým řetězcem.
ČVUT Fakulta elektrotechnická
Strana 15
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
příkaz
kód
hodnota
reset komunikace
KRES
C0h
zápis adresy zápis dat na nastavenou adresu čtení nastavené adresy čtení dat z nastavené adresy
WRA
D0h
význam přepne na protokol EBUS, vyresetuje komunikaci, nastaví adresu 0, slouží také ke kontrole spojení nastaví adresu podle hodnoty
WRD
D1h
zápis dat do nastavené adresy
RDA
E0h
čtení hodnoty určující adresu
RDD
E1h
čtení dat uložených na nastavené adrese
Tabulka 4.3 – příkazy protokolu EBUS
2. Texty (TXT) a ukončovací znak (ETX) Všechny adresy a hodnoty přenášené přes protokol EBUS musejí být zadány v textové formě. Hodnota je přenášena v ASCII znacích jednotlivých cifer bez úvodních nul a desetinných teček a na konci je vždy ukončovací znak 03h. Pokud například chceme nastavit adresu na 106 (tj. 6Ah), bude příkaz vypadat následovně: 0D 31 30 36 03
znak číslice mezera minus konec textu
•
0D – příkaz zápisu adresy (WRA) dle tabulky 4.3
•
31 30 36 – textový formát hodnoty 106
•
03 – ukončovací znak (ETX) dle tabulky 4.4
kód TXT TXT TXT ETX
hodnota význam 30H-39H jednotlivé číselné hodnoty dat 0 - 9 20H znak mezera, úvodní mezery se nevysílají 2DH 03H konec textu
Tabulka 4.4 – texty a jejich ukončení v protokolu EBUS
ČVUT Fakulta elektrotechnická
Strana 16
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
3. Status komunikace (STA) Slouží k potvrzení komunikace a hlásí o jejím průběhu. Jedná se o 1 bajt s následující strukturou: bit 0 1 2 3 4 5 6 7
význam uklidněno úzká nula (+/- ¼ dílku) pásmo nulování vytárováno A/D převodník v pořádku hmotnost platná chyba komunikace vždy 1 (odlišení od textu – vyšší znaková sada) Tabulka 4.5 – struktura statusu komunikace
Po příkazu resetu komunikace KRES dojde k nastavení komunikace na EBUS protokol a jako odpověď je vždy váhou vyslána hodnota statusu komunikace 80h. Význam statusu komunikace bohužel nebyl během programování systému znám (více viz kap. 6), a proto nebyl význam jednotlivých bitů v této práci nijak využit. Pouze bylo rozlišeno, zda je status komunikace větší než hodnota 80h. Pokud ne, jednalo se o chybnou komunikaci.
4.2.2.2 Použití protokolu V tabulce 4.6 jsou uvedeny typy možných přenosů, jak je složena zpráva nadřazené stanice a jakým způsobem na ni odpovídá váha.
Typ přenosu Zápis adresy Čtení adresy Zápis dat Čtení dat Prostý povel
Nadřazená stanice CMD TXT ETX CMD CMD TXT ETX CMD CMD
Odpověď váhy STA TXT ETX STA STA TXT ETX STA STA
Tabulka 4.6 – možné přenosy protokolu EBUS
Pro účel mé bakalářské práce je potřeba zjišťovat pouze aktuální hmotnost a výšku. K tomu jsou potřeba jen 3 povely – RESET komunikace, nastavení adresy a ČVUT Fakulta elektrotechnická
Strana 17
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
čtení z adresy. Také je nutné vědět, že u váhy Tonava TH 200 je hmotnost uchována na adrese 6 a výška na adrese 8. Jak již bylo řečeno v odstavci o TXT a ETX blocích, hodnoty hmotnosti a výšky jsou v ASCII formátu bez úvodních nul a desetinných teček. Hodnota výšky je ještě specifická tím, že pro získání správné výšky se musí hodnota přečtená z váhy vydělit celočíselně 2, poté vynásobit 5, výsledek dostaneme v milimetrech s rozlišením po 5mm. Průběh komunikace pro získání aktuálních hodnot z váhy je vyznačen v tabulce 4.7. Nadřazená stanice posílá váze povely, která na ně odpovídá. Význam povelů je popsán v kapitole 4.2.2.1. Hodnoty statusu komunikace nemusí být stále stejná, záleží na stavu váhy. Pouze po resetu komunikace (KRES) je hodnota STA rovna 80h. nadřazená stanice příkaz řetězec v hex KRES C0
váha (odpověď) příkaz řetězec v hex STA
WRA 6 ETX
0D 36 03
RDD
E1
WRA 8 ETX RDD
80
význam reset komunikace potvrzení resetu nastavení adresy (adresa v ASCII)
STA
80
TXT ETX STA
36 35 37 03 A8
0D 38 03 80
TXT ETX STA
37 30 37 03 AF
E1
hmotnost
potvrzení správnosti nastavení adresy čtení hmotnosti jednotlivé cifry v ASCII – 36h je číslice 6 =>aktuální hmotnost = 65,7kg nastavení adresy (adresa v ASCII)
STA
na
na
výšku
potvrzení správnosti nastavení adresy čtení výšky jednotlivé cifry opět v ASCII => 707 707 mod 2 = 353 353 * 5 = 1765 mm aktuální hodnota výšky je 176,5cm
Tabulka 4.7 – průběh komunikace pro načtení aktuálních hodnot hmotnosti a výšky z váhy
ČVUT Fakulta elektrotechnická
Strana 18
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
5 Programové řešení V této kapitole za zabývám tím, jak jsem řešil softwarovou část systému. Nejprve popíší běh průmyslového počítače WAGO (5.1), dále ukládání a representaci dat v paměti IPC (5.2), následně obsluhu sériových linek od čtečky (5.3) a váhy (5.4). V kapitole 5.5 rozebírám možnosti vizualizace na monitor a jak jsem řešil jednotlivé její části. V poslední kapitole (5.6) popisuji výpočet BMI (Body Mass Index).
5.1 Operační režim IPC Průmyslový
počítač
funguje
ve
SCAN
režimu
stejně
jako
všechny
programovatelné automaty. Po zapnutí napájení proběhne inicializace IPC, jeho vnitřní sběrnice a všech připojených modulů. Poté se zavede program do paměti RAM a následující začne fungovat v cyklu : Nejdříve se načtou všechny vstupy (včetně časovačů a dat z připojených modulů), poté se tyto hodnoty zpracují programem a následně dojde k zápisu dat na výstupy. Zjednodušené schéma SCAN režimu IPC je na obrázku 5.1, detailní popis lze nalézt v [5, strana 24].
Inicializace IPC, vnitřní sběrnice, přídavných modulů
čtení vstupů zpracování programu
zápis výstupů
Obrázek 5.1 – Zjednodušené schéma chodu IPC
ČVUT Fakulta elektrotechnická
Strana 19
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
5.2 Struktury a ukládání dat IPC nepodporuje dynamickou alokaci paměti, proto bylo nutné použít pro uchování uživatelů a jejich naměřených dat statické proměnné. Zabývám se zde pouze hlavními strukturami, popis pomocných struktur (například pro zobrazení v tabulkách) vynechám.
5.2.1 Použité struktury Nejdříve jsem vytvořil strukturu vzorku sample, což je struktura obsahující jedno měření, která obsahuje datum a čas pořízení a hodnotu váhy a výšky. Poté strukturu jednoho uživatele person, která obsahuje jeho jméno, ID čipové karty, datum a čas registrace a posledního přihlášení, pohlaví a pole jeho vzorků (tj pole ze struktury „sample“). POCET_VZORKU je globální konstanta určující maximální počet uložených vzorků. Skutečný počet vzorků je ale POCET_VZORKU+1, protože pole samples začíná od 0. TYPE sample : STRUCT Weight:REAL; (* vaha v kg *) Height:REAL; (* vyska v cm *) DateTime : DT; (* datum a cas *) END_STRUCT END_TYPE
TYPE person : STRUCT CardID:ARRAY [0..9] OF BYTE;(*ID cipove karty*) created : DT;(*datum a cas vytvoreni uctu*) lastLogged : DT; (* datum a cas posledniho prihlaseni *) Name : STRING(30); (*jmeno uzivatele*) isMale : BOOL; (*TRUE, pokud je tento uzivatel muz*) samples:ARRAY [0..POCET_VZORKU] OF sample; (*jednotlive vzorky mereni*) sampleCount : BYTE ; (*pocet ulozenych vzorku mereni*) END_STRUCT END_TYPE
Jako poslední krok bylo vytvoření dvou globálních proměnných. První je pole všech uživatelů
users a druhá je počet uživatelů usersCount. Proměnná
POCET_UZIV je globální konstanta, která určuje maximální počet uživatelů. I zde pole users začíná od nuly, a proto je skutečný maximální počet uživatelů POCET_UZIV+1. Administrátorský účet (kap. 5.2.2) je v poli users uložen na nulté pozici. Význam klíčových slov RETAIN a PERSISTENT je vysvětlen v kapitole 5.2.3. VAR_GLOBAL RETAIN PERSISTENT users: ARRAY [0..POCET_UZIV] OF person; usersCount: UINT; END_VAR
ČVUT Fakulta elektrotechnická
Strana 20
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
5.2.2 Administrátorský účet Administrátorský účet je v poli users (popis v 5.2.1) uložen na nulté pozici, proto je vstup do administrace dovolen pouze tomu uživateli, který se přihlásí a ID jeho karty je nalezeno hned při prvním průchodu FOR cyklu prohledávání pole users. Po úplném (Original) resetu IPC (kap. 5.2.3) jsou smazány všechny hodnoty včetně administrátorského účtu. Jako přednastavený administrátorský účet je po úplném resetu zaveden na nultou pozici v poli users účet, který je v programu definován jako konstanta: VAR_GLOBAL CONSTANT AdminCardID : ARRAY[0..9] OF BYTE :=48,55,56,51,57,50,54,52,52,57; (* ID karty administratora *) AdminName: STRING(30) := 'Miroslav Machacek'; (* jmeno administratora *) END_VAR
Administrátor s kartou, která má ID odpovídající poli AdminCardID, je tudíž přednastaveným administrátorem po úplném resetu IPC a po svém přihlášení může předat správcovství na jinou kartu. Pokud je požadována změna ID karty přednastaveného administrátora, musí se ID nové karty nejprve zjistit a následně přepsat do definice pole AdminCardID. ID čipové karty se zjistí z globální proměnné rs232modulrecbuf. Jedná se o přijímací buffer sériové linky, na kterou je připojena čtečka karet a jehož obsah je samotné ID poslední přiložené čipové karty (dle popisu v 4.1 se jedná o 10 bajtů). Příklad zobrazení obsah proměnné rs232modulrecbuf je na obrázku 5.2.
Obrázek 5.2 – proměnná rs232modulrecbuf obsahující ID přiložené čipové karty
Pro zobrazení aktuálního stavu proměnných IPC je nutné se v prostředí CoDeSys k IPC nejprve přihlásit. Poté se obsah globálních proměnných nalezne v záložce Resources ve skupině Global Variables. IPC musí být v režimu RUN (kap. 3.1).
ČVUT Fakulta elektrotechnická
Strana 21
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Postup změny přednastaveného administrátorského účtu: •
přihlaste se z prostředí CoDeSys k IPC (kap. 3.1.5)
•
zobrazte obsah globální proměnné rs232modulrecbuf (obr. 5.2)
•
přiložte kartu nového administrátora ke čtečce
•
přepište prvních 10 bajtů rs232modulrecbuf do definice AdminCardID
•
zkompilujte projekt a nahrajte do IPC Boot Project – více viz [2]
5.2.3 Uchování proměnných Obyčejná proměnná se při odpojení napájení nebo resetu IPC smaže. Proměnná s příznakem RETAIN se uchovává v SRAM paměti s velikostí 120kB, která se zachovává i při odpojení napájení. Proměnná s příznakem PERSISTENT se nevymaže při Cold resetu ani při nahrání nového programu, ale bohužel dojde k jejímu smazání při odpojení napájení. Porovnání uchování proměnných s různými příznaky je v tabulce 5.1. Pro můj účel je potřeba uchovávat proměnné počtu uživatelů a pole uživatelů (ve kterém jsou i uložené hodnoty) v každém případě. Proto byly globální proměnné users a usersCount (popsány v 5.2.1) nastaveny jako RETAIN PERSISTENT. Nevýhoda je, že použitím RETAIN paměti jsem omezen její velikostí (120kB), protože se do ní ukládá celé pole users, které obsahuje i uložené změřené hodnoty všech uživatelů. Jako optimální hodnota byl zvolen limit 280 uživatelů, každý se 30 uloženými vzorky.
Typ proměnné
Typ události Reset Reset (Cold) Reset (Original) Download
obyčejná RETAIN PERSISTENT RETAIN PERSISTENT
+
+
+
+
+
+
Tabulka 5.1 – proměnné a jejich uchování v paměti po událostech (+ značí, že je proměnná uchována)
5.3 Obsluha čtečky čipových karet Po spuštění je nejdříve inicializován přídavný modul sériové linky, ke kterému je čtečka zapojena. V případě chyby je zobrazeno chybové okno vizualizace (kap. 5.5.4).
ČVUT Fakulta elektrotechnická
Strana 22
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Schéma obsluhy čtečky je na obrázku 5.3. Při přiložení karty je nejdříve zjištěno, jestli již není někdo přihlášen. Pokud je, zobrazí se okno s potvrzením odhlášení. Poté dojde k prohledání pole users, jestli je přiložená karta již v systému. Pokud je již karta registrovaná, provede se přihlášení, jinak se zobrazí okno registrace nového uživatele. Po přihlášení bude uživatel automaticky odhlášen za 300 sekund. Pokud je index v poli users (popis v kap. 5.2.1) roven 0, znamená to, že se přihlásil administrátor (jeho účet je vždy na nulté pozici) a je mu dovolen vstup do administrace (kapitola 5.5.3). přiložena karta někdo již přihlášen
ano okno s potvrzením odhlášení ano
odhlásit se
prohledání pole users
je nalezeno ID karty
ano přihlášení uživatele
registrace uživatele
hotovo
Obrázek 5.3 – Schéma obsluhy čtečky
5.4 Obsluha váhy 5.4.1 Průběh komunikace Po spuštění je nejprve inicializována sériová linka. V případě, že nenastala žádná chyba, začne komunikace s váhou podle protokolu EBUS popsaném v kapitole 4.2.2 a hodnoty z váhy se načítají každou sekundu. Cyklické spouštění komunikace obstarává program zobrazený na obrázku 5.4. Schématický průběh komunikace s váhou je zobrazen na obrázku 5.5. V případě chyby při inicializaci nebo pokud nebude
ČVUT Fakulta elektrotechnická
Strana 23
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
komunikace podle protokolu EBUS, je zobrazeno chybové okno vizualizace (kap. 5.5.4). V každém kroku protokolu EBUS (čekání na potvrzení či na hodnoty) se může čekat maximálně 5s. Pokud dojde k přerušení komunikace v jakémkoliv kroku, vyprší tento limit a bude zobrazeno chybové okno. To bude zobrazeno i v případě, že váha neodpovídá podle protokolu EBUS – například status komunikace není větší než 80h apod.
Obrázek 5.4 - náběžná hrana proměnné secondTicker každou vteřinu
Obrázek 5.5 – Průběh komunikace protokolem EBUS s váhou
5.4.2 Integrita hodnot Data se z váhy načítají každou vteřinu. Protože v době programování komunikace s váhou mi nebyl znám význam statusu komunikace(STA v kap. 4.2.2.1) protokolu EBUS, jehož pátý bit vypovídá o ustálení hmotnosti, musel jsem nějakým způsobem implementovat rozpoznání ustálení hodnot na váze. ČVUT Fakulta elektrotechnická
Strana 24
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Nejdříve jsem vytvořil jednoduchý čítač, který se inkrementoval každou vteřinu o 1. Pokud se hmotnost a výška za tuto dobu nezměnila a za 3 vteřiny došlo k prohlášení hodnot za platné a s daty se provedly operace jako výpočet BMI či uložení do paměti. Pokud nastala během čítaní změna výšky nebo váhy, čítač se vynuloval. Tento způsob bohužel nefungoval, protože hmotnost se měří s přesností na desetiny kilogramů a prakticky ke změně desetinné hodnoty docházelo stále. Samozřejmě není možné stát naprosto v klidu, a proto jsem do tohoto čítače přidal tolerance změny hmotnosti 0,1kg/vteřinu i toleranci změny výšky 0,5cm/vteřinu. Aby byly hodnoty prohlášeny za platné, musí být uživatel v těchto tolerancích po dobu 3 vteřin. Trochu matoucí je pípnutí váhy, které signalizuje ustálení hmotnosti a po kterém je nastaven 5. bit statusu komunikace. Na začátku této podkapitoly jsem zmínil, že ustálení hodnot je počítáno podle mého algoritmu, a proto pípnutí váhy o ničem nevypovídá. Z toho důvodu je nutné, aby se uživatel řídil pouze pokyny na monitoru.
5.4.3 Zpracování hodnot Poté, co jsou hodnoty z váhy prohlášeny za validní (kap. 5.4.2), je zastaveno jejich obnovování na monitoru. V případě, že uživatel využil výsuvné rameno pro měření výšky (programově kontrolováno, zda je výška větší než 110cm, což je dolní zarážka výsuvného ramene), dojde dle kapitoly 5.6 k výpočtu BMI a optimální váhy pro změřenou výšku a na monitoru budou tyto hodnoty zobrazeny. Zároveň pokud je uživatel přihlášen, uloží se aktuální naměřené hodnoty do paměti. Po každém změření je nutné odlehčit váhu na nulové hodnoty (signalizováno na monitoru hlášením „Odlehčete váhu“). Pokud nedojde do 30s od změření k uvolnění váhy tak, aby hmotnost byla nulová (tolerance 0-0.3kg), bude zobrazena chybová hláška „Váha není odlehčena“ (na obrázku 5.9).
5.5 Vizualizace Jak již bylo řečeno v kapitole 3.1.4, průmyslový počítač WAGO umožňuje vizualizaci na monitor. Vizualizace se skládá z oken, mezi kterými se dá přepínat a do kterých se dají vkládat elementy typu obrázek, textové pole, tlačítko, tabulka. V ČVUT Fakulta elektrotechnická
Strana 25
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
elementech je možné zobrazovat proměnné programu (čísla, řetězce) a zároveň mají nastavitelné písmo, jeho barvu i barvu pozadí, což velmi zvyšuje přehlednost vizualizace. Element je také možné nastavit tak, aby se schovával podle hodnoty logické proměnné, či obsloužit kliknutí myši nastavením nějaké logické proměnné v programu. Kompletní vizualizace je popsána v [3]. Výhodou je, že z vizualizace je přístup nejen do globálních proměnných, ale i do proměnných jednotlivých programů a funkčních bloků.
5.5.1 Přepínání mezi okny Jsou dvě možnosti jak přepínat mezi okny vizualizace (oboje se nastavují v prostředí CoDeSys). Jedna možnost je nastavit v příslušném elementu vlastnost Zoom to vis. na nějaké okno vizualizace (obrázek 5.6). K přepnutí pak dojde, když se na tento element klikne myší, je zde tedy závislost na uživateli. Druhá
možnost
je
přepínání
v programu
pomocí
globální
proměnné
CurrentVisu. Tento způsob má uplatnění tam, kde o přepnutí okna nerozhoduje uživatel, ale program. Například při chybné komunikaci s váhou se přepne na okno zobrazující chybové hlášky nebo při přiložení neznámé karty se zobrazí okno registrace. Proměnná CurrentVisu ale vyžaduje, aby název okna vizualizace, na kterou se přepíná, neobsahoval malá písmena. Pokud obsahuje, nedojde k přepnutí okna. Příklad použití v jazyce ST : IF(prom=1)THEN CurrentVisu:=’INFORMACE’; END_IF;
Obrázek 5.6 – Prostředí CoDeSys, nastavení přepnutí okna vizualizace
ČVUT Fakulta elektrotechnická
Strana 26
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
5.5.2 Detaily účtu Každý registrovaný uživatel má možnost zobrazit okno o svém účtu (obrázek 4.5 v kap 4.2.3 přílohy 3), kde nalezne datum vytvoření jeho účtu, jeho poslední přihlášení (kromě současného), tabulku svých uložených hodnot měření a jejich počet, pomocí formuláře může také měnit své jméno. Důležitá funkce je možnost mazat nejstarší uložené hodnoty, která se využije hlavně v případě, že uživatel dosáhl maximální počet uložených hodnot. Tabulka vzorků je generována ihned po přihlášení uživatele a v případě uložení vzorků je aktualizována. Pokud je přihlášen administrátor, je mu umožněn z detailů svého účtu vstup do administrace (návod v kap. 4.3.3 přílohy 3).
5.5.3 Administrační rozhraní Do okna administrace má přístup z detailů svého účtu pouze správce systému (kap. 5.2.2). Použití administrace je popsáno v kapitole 4.3.3 přílohy 3, kde lze nalézt i obrázek okna administrace. Zde popíší pouze generování tabulky uživatelů, vymazání uživatele a předání administrátorského účtu na jinou čipovou kartu.
5.5.3.1 Generování tabulky uživatelů Tabulka se skládá z pěti sloupců – ID uživatele, jméno, počet uložených vzorků, datum a čas registrace a posledního přihlášení. Vyplnění tabulky nastává při kliknutí myší na tlačítko administrace v okně o detailech účtu (příloha 3, kap. 4.2.3, obr. 4.5). Toto tlačítko je zobrazeno pouze pokud je přihlášen správce systému. Tabulka je plněna hodnotami řazenými podle nejstaršího data přihlášení. Je to z toho důvodu, aby na prvních místech byli ti uživatelé, kteří se přihlásili před dlouhou dobou. Tím je administrátorovi ulehčeno hledání účtů, které se mohou vymazat, neboť nebyly dlouho použity. Schéma řazení je na obrázku 5.6.
ČVUT Fakulta elektrotechnická
Strana 27
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Obrázek 5.6 – průběh řazení uživatelů podle nejstaršího data přihlášení v administraci
5.5.3.2 Smazání uživatele Grafické
rozhraní
bylo
vytvořeno
tak,
aby
k vymazání uživatele postačovala pouze USB myš a nebylo potřeba USB klávesnice, protože USB klávesnice se shání obtížněji než USB myš. Pomocí myši se na tlačítkách (obr. 5.7) vybere ID uživatele, který se má smazat, a klikne se na tlačítko „Smazat“.
Obrázek 5.7 – smazání uživatele (výřez z okna administrace)
5.5.4 Zobrazení chyb Během chodu programu mohou nastat chyby při inicializaci sériových linek a při komunikaci s váhou. V případě, že nastane nějaká z chyb, je na monitoru zobrazeno informační okno s popisem chyby (na obrázku 5.8 uvedeny všechny možné chyby).
ČVUT Fakulta elektrotechnická
Strana 28
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
chyba zabudované sér. linky
chyba modulu sér. linky
chybná komunikace s váhou
váha neodpovídá
po změření nebyla váha odlehčena na nulové hodnoty
Obrázek 5.8 – zobrazení chyb na monitoru
5.6 Výpočet BMI a optimální váhy Body Mass Index, v češtině index tělesné hmotnosti, se používá jako měřítko obezity člověka. Jeho popisem se zabývám v kapitole 4.3.4 přílohy 3, a proto se zde budu zabývat pouze jeho výpočtem, který je jednoduchý a v jazyce C je popsán následující funkcí (vstup váha je v kg, vyska v cm): float returnBMI(float vaha, float vyska) { float prom=vyska/100.0; prom=vaha/(prom*prom); return prom; } Optimální váha se počítá pouze ze změřené výšky a výpočet pro muže a ženu se liší pouze v konstantě BMI. Pro muže je optimální hodnota BMI rovna 22,5, pro ženy 21,5. Výpočet je opět velmi jednoduchý a je popsán následující funkcí (vstup jeMuz je TRUE, pokud se počítá pro muže, vyska opět v cm) : float returnOptimalWeight(int jeMuz, float vyska) { float prom=vyska/100.0; prom= prom*prom; if(isMale) { return 22.5*prom; } else { return 21.5*prom; } }
ČVUT Fakulta elektrotechnická
Strana 29
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
6 Závěr Výsledkem bakalářské práce je funkční systém pro měření hmotnosti a výšky člověka s identifikací uživatelů pomocí čipových karet a s ukládáním naměřených dat do paměti průmyslového počítače WAGO. Na začátku vývoje systému jsem měl k osobní váze TH 200 pouze popis textového protokolu, se kterým bylo však velmi obtížné získávat z váhy data právě kvůli nevýhodám popsaným v kapitole 4.2.1. Proto jsem zkusil kontaktovat firmu Tonava, a.s. a zeptat se, zda neexistuje ještě nějaký jiný způsob jak načítat z váhy hodnoty. Odpověď byla kladná, týkala se protokolu EBUS (kap. 4.2.2) a obsahovala také jeho dokumentaci. V té bohužel chyběl popis struktury statusu komunikace (STA - strana 17) a z toho důvodu jsem se domníval, že tento bajt nemá v odpovědi váhy žádnou informační hodnotu. Později jsem ale během vytváření podprogramu pro čtení dat z váhy zjistil, že jeho hodnota vypovídá o ustálení váhy. Napsal jsem tedy znovu do firmy Tonava a požádal o popis onoho bajtu. Ten mi byl obratem zaslán a bajt STA opravdu obsahoval informaci o ustálení hmotnosti. Bohužel jsem již měl v tuto dobu napsaný celý podprogram pro komunikaci s váhou i vlastní algoritmus na rozpoznání ustálení (kap. 5.4.2), a proto již nebylo možné využít strukturu statusu komunikace. Splnil jsem všechny body zadání kromě části bodu 3 o zobrazení naměřených údajů v čase pomocí grafu. Během vytváření vizualizace jsem zjistil, že průmyslový počítač WAGO neumožňuje statické kreslení grafu z proměnné, ale pouze grafickou vizualizaci průběhu hodnoty stále sledovaných proměnných (například vizualizace analogového vstupu). Tento problém jsem vyřešil zobrazením naměřených hodnot ve formě tabulky (obrázek 4.5 v kap 4.2.3 přílohy 3), která se zobrazuje v jednotné vizualizaci a obsahuje datum a čas měření i změřenou hmotnost a výšku. Během vývoje systému jsem si rozšířil znalosti v oblasti programování průmyslových počítačů, které je odlišné od programování na běžných platformách jako je například Win32. Během programování se stále musí brát v úvahu SCAN cyklus automatu (kap. 5.1) – v tom je podstatný rozdíl od běžného událostního programování například Windows aplikací. Vývojové prostředí CoDeSys nabízí tvorbu programů v mnoha textových i grafických jazycích (3.1.5). Protože jsem byl zvyklý na psaní programů pro PC, až na pár vyjímek jsem používal jazyk strukturovaných textů (ST v kap. 3.1.5), i když jsem
ČVUT Fakulta elektrotechnická
Strana 30
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
si vědom toho, že na nějaké části programu by bylo vhodnější místo textového jazyka volit grafický. Protože IPC podporuje TCP i UDP komunikaci po síťovém rozhraní pomocí socketů, jako možné rozšíření této práce by připadalo v úvahu napojení na databázový server (například MySQL či PostgreSQL). Tím by se odstranilo omezení počtu uživatelů i vzorků (kap. 5.2.3) a zároveň by bylo umožněno zobrazení dat přes webové rozhraní a tím i již zmíněné vykreslování grafů.
7 Seznam použité literatury [1] ing. Ondřej Dolejš : Programovatelné komunikační moduly WAGO I/O PRO CAA [2] 3S – Smart Software Solutions GmbH : User Manual For PLC programming with CoDeSys
[3] 3S – Smart Software Solutions GmbH : CoDeSys Visualization [4] WAGO Kontakttechnik GmbH : Serial Interface RS232C 750-650 Datasheet [5] WAGO Kontakttechnik GmbH : WAGO-I/O-IPC 758-870 Datasheet [6] WAGO Kontakttechnik GmbH : WAGO-I/O-IPC 758-870 Quick Start [7] Tonava a.s. : Návod k obsluze osobní váhy TH 200 [8] Tonava a.s. : Specifikace protokolu EBUS [9] http://www.3s-software.com : popis programovacích jazyků prostředí CoDeSys [10] http://www.boubelka.cz/bmi.htm : výpočet a popis BMI
8 Seznam příloh Příloha 1 – Obsah přiloženého CD Příloha 2 – Přídavný modul RS232 Příloha 3 – Návod k použití
ČVUT Fakulta elektrotechnická
Strana 31
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Příloha 1 – Obsah přiloženého CD
Přiložené CD má následující strukturu a obsah adresářů : •
/BP/
tato práce ve formátu DOC a PDF
•
/CoDeSys 2.3.6.1/
instalace vývojového prostředí CoDeSys
•
/dokumentace /
použité manuály a datasheety
•
•
o CoDeSys_V23_E.pdf
[2]
o CoDeSys_Visu_V23_E.pdf
[3]
o EBUSn.doc
[8]
o IPC_758-870_datasheet.pdf
[5]
o IPC_758-870_quickstart.pdf
[6]
o m065000e.pdf
[4]
o TH200_navod.pdf
[7]
o wago_io_pro_cz.pdf
[1]
/IPC/ o /firmware/
image firmwaru pro IPC WAGO
o /fonty/
TrueType fonty pro IPC s návodem k nahrání
/source/
projekt z vývojového prostředí CoDeSys se zdrojovými kódy programu i vizualizacemi
•
/source/libraries/
ČVUT Fakulta elektrotechnická
potřebné knihovny do projektu v CoDeSys
Strana 32
Katedra řídící techniky
Miroslav Macháček
Vážící systém s identifikací
Přídavný modul sériové linky se v prostředí CoDeSys nastavuje složitěji než zabudovaná sériová linka
Příloha 2 – Přídavný modul RS232
ČVUT Fakulta elektrotechnická
Strana 33
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
Vážící systém s identifikací Příloha 3 NÁVOD K POUŽITÍ
Obsah: 1
Úvod ......................................................................................................... 35
2
Zapojení systému .................................................................................... 35 2.1 2.2 2.3 2.4
3
Osobní váha Tonava TH 200 ................................................................. 38 3.1 3.2
4
Napájení .............................................................................................................. 35 Schéma zapojení................................................................................................. 36 Konektory průmyslového PC WAGO ............................................................. 37 Modul přídavné sériové linky k IPC ................................................................ 37 Kalibrace............................................................................................................. 38 Ovládání váhy .................................................................................................... 39
Používání systému................................................................................... 40 4.1 Inicializace a případné chyby ........................................................................... 40 4.2 Registrovaní uživatelé........................................................................................ 40 4.2.1 Registrace nového uživatele ........................................................................ 41 4.2.2 Přihlášení uživatele ...................................................................................... 41 4.2.3 Detaily účtu.................................................................................................. 42 4.3 Měření ................................................................................................................. 43 4.3.1 Měření bez přihlášení................................................................................... 43 4.3.2 Měření po přihlášení .................................................................................... 44 4.3.3 Administrační rozhraní ................................................................................ 45 4.3.4 Popis BMI .................................................................................................... 46
ČVUT Fakulta elektrotechnická
Strana 34
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
1 Úvod Systém umožňuje změření váhy a výšky uživatele a výpočet jeho BMI (Body Mass Index). Pro nepřihlášeného uživatele jsou tyto data pouze zobrazena na monitoru. Pokud má uživatel zájem o uchování jeho naměřených dat v paměti průmyslového počítače, musí se se svou čipovou kartou zaregistrovat. Poté, pokud je při měření uživatel přihlášen, jsou všechny jeho naměřené vzorky ukládány spolu s datem a časem pořízení do paměti. Každý přihlášený uživatel si může svoje naměřené vzorky prohlížet a od nejstarších mazat. Jako jádro systému je použit průmyslový počítač (IPC – Industrial PC) WAGO, který zprostředkovává komunikaci s osobní váhou, čtečkou RFID karet a pomocí monitoru, myši a klávesnice i se samotným uživatelem. Všechny odkazy v této příloze na kapitoly, tabulky a obrázky jsou pouze v rámci této přílohy. Například „viz kap 2.1“ značí kapitolu 2.1 této přílohy, ne kapitolu bakalářské práce.
2 Zapojení systému Systém se skládá ze 3 hlavních komponent : •
průmyslový počítač WAGO-I/O-IPC 758-870
•
osobní váha Tonava TH 200
•
čtečka čipových karet IMA PCE-05
Ostatní komponenty : •
USB myš
•
USB klávesnice
•
VGA monitor + redukce DVI<>D-SUB
2.1 Napájení Osobní váha Tonava TH 200 se napájí externím zdrojem na 230V s výstupním stejnosměrným napětím 7V. Čtečka čipových karet IMA PCE-05 je nutno napájet externím zdrojem na 230V s výstupním stejnosměrným napětím 12V. IPC se napájí 24V přivedenými na svorkovnici nalevo od IPC (zobrazeno na obr. 2.1).
ČVUT Fakulta elektrotechnická
Strana 35
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
Obrázek 2.1 – svorkovnice napájení IPC
2.2 Schéma zapojení Osobní váha musí být napojena na konektor sériové linky průmyslového počítače WAGO pomocí sériového kabelu s prohozenými piny RxD a TxD (stejně jako při propojení PC-PC). Tento konektor se nachází pod výstupem na monitor. Detail umístění konektoru je na obr. 2.3. Čtečka čipových karet je zapojena do konektoru sériové linky na modulu (viz kapitola 2.4).
Obrázek 2.2 – schéma zapojení systému
ČVUT Fakulta elektrotechnická
Strana 36
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
2.3 Konektory průmyslového PC WAGO
Obrázek 2.3 – konektory na IPC Přepínač RUN/STOP, uvedený na obr. 2.3, musí být vždy nastaven na pozici RUN.
2.4 Modul přídavné sériové linky k IPC Pro tento systém jsou potřeba dvě sériové linky (váha a čtečka) IPC obsahuje pouze jednu interní sériovou linku, proto je druhá přidána k IPC jako modul (označení 750-650/003-000), ke kterému je připojena čtečka čipových karet.
Obrázek 2.4 – modul sériové linky k IPC (označení 750-650/003-000) ČVUT Fakulta elektrotechnická
Strana 37
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
3 Osobní váha Tonava TH 200 3.1 Kalibrace Váha musí být na rovném povrchu a srovnána pomocí libely do vodorovné polohy. Po zapnutí váhy dochází k její kalibraci, která je signalizována změnou číslic na jejím displeji. Během této kalibrace nesmí být váha nijak zatížena a výsuvné rameno pro měření výšky musí být ve výchozí poloze (tj. úplně dole). Pokud se po kalibraci zobrazí na jejím displeji nápis "E-xx", došlo k chybě s číslem „xx“. Význam chybových kódů je v tabulce 3.1, závažné chybové kódy jsou vysvětleny v tabulce 3.2. V případě správné kalibrace je na displeji zobrazeno „0.0“. kód chyby E-01 E-02 E-03 E-04 E-05 E-06 E-07 E-08
popis můstek vah je při zapnutí zatížen neobsazeno neobsazeno fatální chyba výpočtu neobsazeno neobsazeno není uklidněna hodnota hmotnosti (nelze tisknout) chyba tiskárny (nezapojena apod.) Tabulka 3.1 – Chybové kódy váhy Tonava TH 200
kód chyby
popis
E-90 E-93 E-94 E-98 E-99
chyba při kontrole dvojího uložení dat chyba při průběžné / počáteční kontrole činnosti A/D převodníku chyba při počáteční kontrole paměti EEPROM chyba průběžné kontroly registru A/D převodníku dosažení krajních bodu převodníku (po odstranění se zruší sama) Tabulka 3.2 – závažné chybové kódy váhy Tonava TH 200
Pokud se při vypnutí a následném zapnutí váhy závažná chyba neodstraní, je nutné uvědomit servisní oddělení výrobce.
ČVUT Fakulta elektrotechnická
Strana 38
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
3.2 Ovládání váhy Váhu je možno ovládat čtyřmi tlačítky umístěnými pod jejím displejem – viz obrázek 3.1.
Obrázek 3.1 – pohled na displej váhy s tlačítky
Led signalizace : >0< : svítí, pokud je váha vynulována cm : svítí, pokud je na displeji váhy zobrazena výška kg : svítí, pokud je na displeji váhy zobrazena hmotnost Tlačítka : NUL : pokud je váha ustálena, vynuluje se váha a případné zatížení váhy se veme za nulovou hodnotu, po zmáčknutí se rozsvítí signalizace >0< TEST : po stisknutí proběhne na dobu cca 5s nebo do dalšího stisku tohoto tlačítka test displeje váhy – rozsvítí se všechny jeho segmenty TISK : je-li povolen tisk, vyšlou se po sériové lince údaje o změřené hmotnosti a výšce. Toto tlačítko nepoužívat, neboť se z váhy čtou hodnoty hmotnosti a výšky jiným způsobem! F : na displeji přepíná zobrazení hmotnosti nebo váhy – stejný údaj je zobrazen na monitoru, čili je zbytečné toto tlačítko používat
ČVUT Fakulta elektrotechnická
Strana 39
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
4 Používání systému 4.1 Inicializace a případné chyby Po zapnutí je během několika sekund systém inicializován, v případě jakékoli chyby je zobrazeno upozornění o jakou chybu se jedná a jak je možno ji řešit. Po zapnutí váhy Tonava TH 200(kap. 0) dochází ke kalibraci jejích měřících můstků, proto nesmí být nijak zatížena (více k její kalibraci v kap. 3.2.3). Pokud došlo k správné kalibraci váhy, je na jejím displeji zobrazeno „0.0“. Pokud při inicializaci IPC nastane nějaká HW chyba (inicializace modulů a portů) nebo chybná komunikace s váhou Tonava, je na monitoru zobrazeno chybové okno (obr. 4.1). V případě žádné chyby je zobrazena úvodní obrazovka (obr. 4.2) a dále je již možno provádět měření. Při chybě sériového portu zkontrolujte konektory, popřípadě zkuste zapnout a vypnou všechny komponenty.
Obrázek 4.1 – okno s chybovým hlášením
Obrázek 4.2 – úvodní obrazovka
4.2 Registrovaní uživatelé Registrovaní uživatelé mají možnost si své naměřené hodnoty hmotnosti a výšky ukládat do paměti IPC. Uložené hodnoty si mohou pak v detailech svého účtu (kap. 4.2.3) prohlížet a od nejstarších mazat.
ČVUT Fakulta elektrotechnická
Strana 40
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
4.2.1 Registrace nového uživatele •
pokud je zobrazena úvodní obrazovka (obr. 4.2), přiložte kartu ke čtečce
•
pokud není karta v databázi a není dosažen maximální počet registrovaných uživatelů, zobrazí se registrační okno (obr. 4.3) v případě, že je již karta registrovaná, dojde k přihlášení (kap. 4.2.2)
•
klikněte myší na pole jména (v obr. 4.3 označeno 1.)
•
pomocí myši zvolte Vaše pohlaví (v obr. 4.3 označeno 2.)
•
klikněte myší na uložit (v obr. 4.3 označeno 3.)
Obrázek 4.3 – registrace nového uživatele
4.2.2 Přihlášení uživatele •
pokud je zobrazena úvodní obrazovka (obr. 4.2), přiložte kartu ke čtečce
•
pokud je již Vaše karta v databázi, dojde k přihlášení (obr. 4.4) pokud není, zobrazí se registrační okno (kap. 4.2.1)
•
pro zobrazení detailů Vašeho účtu (kap. 4.2.3) klikněte na „moje info“ (obr. 4.4)
•
po dokončení práce klikněte na tlačítko „odhlášení“ (obr. 4.4)
•
k automatickému odhlášení dojde za 300 sekund od přihlášení
ČVUT Fakulta elektrotechnická
Strana 41
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
Obrázek 4.4 – uživatel je přihlášen
4.2.3 Detaily účtu Každý registrovaný uživatel má po přihlášení možnost si prohlížet detaily svého účtu. Je zde možnost měnit svoje jméno a mazat uložené vzorky od nejstarších. Pokud je přihlášen administrátor, je možno vstoupit do administrace (popis v kap. 4.3.3). Uživatel zde nalezne následující informace : •
datum a čas vytvoření účtu
•
datum a čas minulého přihlášení
•
počet jím uložených vzorků a maximální počet
•
tabulku s uloženými vzorky seřazenými od nejstarších
ČVUT Fakulta elektrotechnická
Strana 42
Katedra řídící techniky
Miroslav Macháček
Příloha 3
uložené vzorky měření
Vážící systém s identifikací
smazaní nejstarších vzorků
pokud je přihlášen administrátor
Obrázek 4.5 – detaily účtu uživatele
4.3 Měření Vážení a měření výšky je možno provádět pouze v případě, kdy na displeji váhy není zobrazen žádný chybový kód a na monitoru je zobrazena úvodní obrazovka (obr. 4.2). Při problémech s váhou se řiďte podle kapitoly 3. Pokud chcete měřené hodnoty uložit, musíte se před měřením přihlásit (kap. 4.2.2). V případě, že nemáte ještě v systému účet, budete se muset nejprve zaregistrovat (kap. 4.2.1). Po přihlášení jsou všechny naměřené hodnoty ukládány do paměti.
4.3.1 Měření bez přihlášení Používá se pro jednorázové měření a pokud nechcete naměřené hodnoty uložit. •
pokud váha není zatížena, ale ukazuje nenulovou hodnotu, stiskněte u jejího displeje tlačítko NUL (popis v kap. 3.2) nebo ji vypněte a zapněte
•
stoupněte si na váhu a výsuvné rameno si položte ze shora na hlavu
•
Obr. 4.6 : buďte v klidu a čekejte, až zmizí nápisu „Nehýbejte se“ (zbývající počet vteřin je zobrazen pod nápisem). Nevšímejte si pípnutí váhy!
•
Obr. 4.7 : uvolněte váhu, aby nebyla nijak zatížena
ČVUT Fakulta elektrotechnická
Strana 43
Katedra řídící techniky
Miroslav Macháček •
Příloha 3
Vážící systém s identifikací
pokud bylo použito výsuvné rameno k měření výšky, bude zobrazeno Vaše BMI (kap. 4.3.4) a optimální váha vzhledem k Vaší výšce
•
po zhlednutí naměřených hodnot klikněte myší na „vyčistit hodnoty pro další měření, poté je možné provádět další měření
Obrázek 4.6 – čekání na ustálení
Obrázek 4.7 – měření dokončeno
4.3.2 Měření po přihlášení Používá se, pokud chcete uchovat naměřené hodnoty v paměti. •
přihlaste se podle kapitoly 4.2.2
•
proveďte měření jako při měření bez přihlášení (kap. 4.3.1)
•
pokud ještě nebyl dosažen maximální počet uložených vzorků, budou hodnoty tohoto měření ihned uloženy do paměti, pokud chcete tento vzorek vymazat, klikněte myší na tlačítko „smazat tento vzorek“
•
v případě, že již nelze vzorek uložit, je zobrazeno varovné okno
•
nejstarší uložené vzorky je možno mazat v detailech účtu (kap. 4.2.3)
Obrázek 4.8 – čekání na ustálení
ČVUT Fakulta elektrotechnická
Obrázek 4.9 – měření dokončeno
Strana 44
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
4.3.3 Administrační rozhraní Správce systému má po přihlášení možnost ve svých detailech (kap. 4.2.3) vstoupit do administrace, kde má možnost mazat uživatelské účty. Toto se využije například v případě, že je dosažen maximální počet registrovaných uživatelů a již není možná registrace nových karet. V tabulce je seznam jednotlivých uživatelů řazený podle nejstaršího data jejich přihlášení. První ze shora je ten uživatel, který se přihlásil před nejdelší dobou. Smazání uživatele se dělá pomocí myši. Tlačítky (+,-) vyberte ID uživatele, který se má smazat a klikněte na tlačítko „Smazat“. Administrátor může být pouze jeden. Pokud se má jím stát někdo jiný, je možné předat správcovský účet jiné kartě. Po kliknutí na tlačítko „predat spravcovstvi“ se čeká na přiložení čipové karty nového správce, který získá účet současného správce i s jeho uloženými daty. Čili pokud se správcovství předává již registrovanému uživateli, musí se pak smazat jeho starý účet.
Obrázek 4.10 – administrační rozhraní
ČVUT Fakulta elektrotechnická
Strana 45
Katedra řídící techniky
Miroslav Macháček
Příloha 3
Vážící systém s identifikací
4.3.4 Popis BMI Body Mass Index (BMI) znamená v češtině index tělesné hmotnosti a používá se jako měřítko obezity člověka. Umožňuje statické porovnání lidí s různou výškou. Význam hodnot BMI je v tabulce 4.1. BMI méně než 18,5 18,5 - 24,9 25 - 29,9 30 - 34,9 35 - 39,9 40 a více
Popis Podváha, riskujete zdravotní problémy Normální váha, minimální zdravotní riziko Nadváha, lehce zvýšené zdravotní riziko Obezita I. stupně, středně zvýšené zdravotní riziko Obezita II. stupně, vysoké zdravotní riziko Obezita III. stupně, velmi vysoké zdravotní riziko Tabulka 4.1 – hodnoty BMI
BMI je přibližný ukazatel, při porovnávání výsledků je nutné přihlédnout k dané tělesné stavbě. Například kulturista může mít BMI nad 30 a nebude obézní, protože má vysoký podíl svalové hmoty na celkovou hmotnost. Naopak starší lidé s menším množstvím svalstva mohou být obézní, i když tomu BMI nenasvědčuje.
ČVUT Fakulta elektrotechnická
Strana 46
Katedra řídící techniky