December 12, 2007. Martin Bereznanin Daniel Piši Jan Kubizňák login xberez01 xpisid00 xkubiz01 ID 74888 78335 78550



Podobné dokumenty
SPÍNACÍ HODINY. Nastavení hodin a předvolby. Obr. 1

Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný

Robot BBC Micro:bit kódovaní v PXT Editoru

DUM 12 téma: PLC řízení sekvenční pracovní listy

do předmětu Programovatelné automaty

DUM 16 téma: Pracovní listy obvod RS

NÁVOD K POUŽÍVÁNÍ Řídící jednotka bazénového zakrytí

WMS-21. Stanice pro měření rychlosti větru. Uživatelská příručka

Logické řízení výšky hladiny v nádržích

STRUčNÝ NÁVOD PRO KONFIGURACI FREKVENčNÍCH MĚNIčŮ

ZÁSKOKOVÝ AUTOMAT MODI ZB pro jističe Modeion POPIS K790

NÁVOD K POUŽÍVÁNÍ. Řídící jednotka bazénového zakrytí LUMA

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část Program pro regulaci kaskády čerpadel v závislosti na tlaku SGC3

Rozvaděč na ochranu čerpadla RED JACKET

BASPELIN CPL. Popis obsluhy ekvitermního regulátoru CPL EQ23/EQ24

ZAŘÍZENÍ PRO MĚŘENÍ DÉLKY

TIO. výkonový člen systému TQS. 1x přepínací kontakt relé. 1x vstupní kontakt. komunikace RS září 2004 w w w. p a p o u c h.

New Energy EVI. Ovládací panel pro CGK/C -12IID, CGK/C -19IID: tlačítko nahoru

ESII Roletová jednotka

Praktické úlohy- programování PLC

Digitální indikátor přeřazení

Systém řízení Autoklávu s PLC AMIT

Uvedení do provozu: Pointek CLS 500

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část Regulátor předehřevu teplé vody VKK

OVLÁDÁNÍ FAN COIL JEDNOTKY 02

BASPELIN CPM. Popis obsluhy čtyřkanálového prostorového termostatu CPM CCU02

Vstupy a výstupy základní sady modulů

ZAŘÍZENÍ PRO MĚŘENÍ DÉLKY

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ v Praze Ú12110 Ústav přístrojové a řídící techniky

Systém řízení Autoklávu

Vyhodnocovací ústředna detekčního systému ADS ASIN ACU

OVLÁDACÍ OBVODY ELEKTRICKÝCH ZAŘÍZENÍ

Praktický návod. Inteligentní elektroinstalace obytného domu Ego-n

UNIVERZÁLNÍ PID REGULÁTORY

SAUNOVÝ REGULÁTOR S 500

CZ.1.07/1.1.14/ Inovace výuky v Písku a okolí Pracovní list. Automatizační cvičení. Konfigurace inteligentní instalace Ego-n

DUM 14 téma: SLO vnitřní signál pracovní listy

Ganitor. Monitorovací a řídicí I/O moduly pro systém C dubna 2011 w w w. p a p o u c h. c o m v.1.2

q POZORNĚ SI PŘEČTĚTE TENTO NÁVOD! Obsahuje důležité bezpečnostní informace. Zobrazovací jednotka (typ LED) ORIGINÁLNÍ NÁVOD K OBSLUZE

ADEX SL3.3 REGULÁTOR KOTLE VARIMATIK

Vyhodnocovací ústředna detekčního systému ADS ASIN ACU

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část. Řídící jednotka tepelného čerpadla KTC

Logické řízení s logickým modulem LOGO!

Katalogový list WIA101

ŘÍZENÍ MODELU NEKÝVAVÉHO JEŘÁBU. Autor.: Lukáš Řápek Vedoucí.: Ing. Jan Zavřel, Ph.D.

SE125 Monitor s HUD projekčním displejem 2,5" Uživatelská příručka

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část. Řídící jednotka výroby pečiva ERP2

Digitální sekvenční indikátor přeřazení (Shift Light)

CZ E. Návod k použití Ovládací panel PU-27. Ver

TPMS kontrola tlaku v pneumatice s výstupem na monitor. tpms-k6

Instrukce pro montáž, obsluhu a údržbu

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část. Řídící jednotka skleníku VS9

Typové příklady zapojení frekvenčních měničů TECO INVERTER 7300 CV. Verze: duben 2006

Řada 14 - Automat schodišťovy, 16 A

BASPELIN MRP Popis obsluhy indikační a řídicí jednotky MRP T2

Inovace výuky předmětu Robotika v lékařství

Návod k obsluze terminálu MST 730

Návrh ovládání zdroje ATX

Digitální RPM switch. se třemi nezávisle ovládanými výstupy. RS-01 (fw 1.1)

OVLÁDÁNÍ PÁSOVÉ DOPRAVY

Laboratorní zdroj HANTEK PPS2116A

Průvodce programováním AMiNi-E jazykem STL Dipl. Ing. Pavel Votrubec

3 Automatický spouštěč motoru hvězda trojúhelník

ixport RS I16O8 Inteligentní modul

BASPELIN RPL. Popis obsluhy regulátoru RPL FIN1

2 Ovládání osvětlení pomocí impulzního a časového relé

Výukové texty. pro předmět. Automatické řízení výrobní techniky (KKS/ARVT) na téma

Řídící jednotka AirBasic 2

Přijímací modul ECA-16

DIGITÁLNÍ REGULÁTOR DR2013

OVLÁDACÍ PANEL HÁZENÁ

STŘEDNÍ PRŮMYSLOVÁ ŠKOLA STROJNICKÁ A STŘEDNÍ ODBORNÁ ŠKOLA PROFESORA ŠVEJCARA, PLZEŇ, KLATOVSKÁ 109. Miroslav Hůrka MECHATRONIKA

Uživatelský návod. MaRweb.sk PRESET - COUNTER 301 Elektronický čítač s jednou předvolbou A. Označení pro objednávku

Regulátor prostorové teploty s LCD displejem

Spínací hodiny SHT15. Návod k použití AUDIC

REG10 návod k instalaci a použití 2.část Univerzální časovač a čítač AVC/ 02

Konvertibilní Tablet STRUČNÁ PŘÍRUČKA 8085 LKB001X CJB1FH002ASA

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

Modelová úloha Zabezpečení a správa budovy

A/C DÁLKOVÝ OVLÁDAČ NÁVOD K OBSLUZE

CZ_manual_ETC. manuál diagnostického programu TATRAdiagnoser

11. Odporový snímač teploty, měřicí systém a bezkontaktní teploměr

Sekvenční shift light SL-06. verze fw 1.1

Úniverzální ústředna detekčního systému ADS ASIN ACU

Výukový materiál KA č.4 Spolupráce se ZŠ

RYCHLÝ NÁVOD PRO MĚNIČE VACON NX

NASTAVENÍ PROPORCIONÁLNÍO REGULÁTORU

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Univerzální prohlížeč naměřených hodnot

Programovatelná řídící jednotka REG10. návod k instalaci a použití 2.část. Měřící jednotka výkonu EME

TR T0 T1 T0 T1 REŽIM SP1 A B REGULÁTOR TEPLOTY REGULÁTOR TEPLOTY DRT23. verze 12. 3sSTISK

Černá skříňka DVR23. Kamera s automatickým záznamem videa s možností připojení na externí monitor

VRX-VSX ELEKTROPOHONY

Bezdrátový pokojový termostat. Flame RF

Časová a prostorová složitost algoritmů

Černá skříňka DVR23. Kamera s automatickým záznamem videa s možností připojení na externí monitor

Elektřina a magnetismus úlohy na porozumění

Připojení JM.CB karty (volitelné příslušenství) - Záložní zdroj

Spartan Sport Rotoped Výr. Číslo Návod

Návod k obsluze Ovládací jednotka WTC3

Transkript:

Projekt BBPA - Portálový jeřáb December 12, 2007 Martin Bereznanin Daniel Piši Jan Kubizňák login xberez01 xpisid00 xkubiz01 ID 74888 78335 78550 1

1 Zadání Na modelu portálového jeřábu vytvořte aplikaci, která řeší problém hanojských věží. Jeřáb musí umět pracovat v automatickém i manuálním režimu. 2 Technologický popis úlohy 2.1 Pohyb po ose X Pojezd jeřábu v ose X je zajištěn stejnosměrným motorem M1. Odměřování polohy pro osu X zajišťuje analogový potenciometrem Pot, jehož výstupní hodnota je v rozsahu max. 0 V 10 V. Odměřování polohy v ose X zajišťují diskrétní snímače umístěny v pěti polohách. Jsou označeny jako K1 až K5. Jsou-li logické výstupy rovny 1, tak je vozík jeřábu přítomen. 2.2 Pohyb po ose Y Odvíjení lana (pro osu Y) je zajištěno krokovým motorem M2. Pro tento nelze zjistit v jakém smyslu je navinuto lano na bubnu navijáku. 2.3 Indikace pohybu a polohy magnetu Magnet slouží pro přesouvání břemen. Je upevněn na konci lana. Nejvyšší horní poloha magnetu je snímána čidlem K Up umístěným na vozíku jeřábu. Indikace dosednutí 2

magnetu na podložku nebo břemeno je zajištěno faktem, že kladka, přes kterou vede lano k magnetu, je po obvodu ozubená. Při pohybu kladky (pohybuje li se magnet v ose Y) zuby střídavě spínají a rozpínají spínač K Down. Pro zjištění, zda magnet dosedl na podložku, nebo břemeno, lze využít toho, že při dosednutí se v laně sníží napětí, ozubená kladka se tím přestane otáčet a snímač K Down nebude vydávat pulzy. 2.4 Bezpečnostní tlačítka Pomocí tlačítka START (zelené tlačítko na panelu jeřábu) se zapíná jeřáb. Je přivedeno napětí na snímače, motory a řídící desku. Naopak tlačítko STOP (červené tlačítko na panelu jeřábu) způsobí zastavení motorů a řídící deska a snímače se odpojí od napájení. 3 Řešení 3.1 Hlavní smyčka programu Hlavní smyčka slouží především k zabezpečení krajních poloh a regulaci navíjení lanka v závislosti na horizontálním pohybu magnetu. Tato smyčka je volána 100x za sekundu. 3.1.1 Přepínání režimů Přepínání mezi jednotlivými režimy je zajišťeno dle proměnné SysState, která může nabývat hodnot 0, 1, 2. switch SysState of case 0; InitControl(DCSpd_loc, DCDir_loc, StepperSpd_loc, StepperDir_loc, StepperEn_loc); StateText= Inicializace ; case 1; ManualControl(DCSpd_loc, DCDir_loc, StepperSpd_loc, StepperDir_loc, StepperEn_loc); StateText= Manualni rezim ; case 2; AutomaticControl(DCSpd_loc, DCDir_loc, StepperSpd_loc, StepperDir_loc, StepperEn_loc, MagOn_loc); HanoiTowerAlgorithm(); StateText= Automaticky rezim ; 3.1.2 Zjištění pohybu magnetu Zjištění, zda se magnet pohybuje, je nutné při překládání jednotlivých plechovek. Proměnná MagnetStopTime je po každém průchodu smyčkou v případě, že se hodnota čidla 3

K Down nezměnila, inkrementována. Pokud se hodnota změnila, tak je MagnetStop- Time vynulováno. Pokud hodnota MagnetStopTime dosáhne hodnoty 100 (= 1 sekunda), tak je zřejmé, že se magnet nehýbe. if (K_Down_prev = K_Down) if (MagnetStopTime < 65535) MagnetStopTime = MagnetStopTime + 1; end MagnetStopTime = 0; ImpCnt = ImpCnt + 1; if (not Model_On) switch SysState of case 0; InitControl(DCSpd_loc, DCDir_loc, StepperSpd_loc, StepperDir_loc, StepperEn_loc); StateText= Inicializace ; case 1; ManualControl(DCSpd_loc, DCDir_loc, StepperSpd_loc, StepperDir_loc, StepperEn_loc); StateText= Manualni rezim ; case 2; AutomaticControl(DCSpd_loc, DCDir_loc, StepperSpd_loc, StepperDir_loc, StepperEn_loc, MagOn_loc); HanoiTowerAlgorithm(); StateText= Automaticky rezim ; MagnetStopTime = 0; if (MagnetStopTime < 100) MagnetMove = true; MagnetMove = false; 3.1.3 Ošetření krajních poloh Následující kód zajišťuje zastavení motorů při dosažení horizontálních krajních poloh. if ((DCDir_loc and (POT>MaxRight)) or (not DCDir_loc and (POT<MaxLeft))) DCSpd_loc=0; StepperSpd_loc=0; 4

Při sepnutí čidla K Up se za předpokladu, že se magnet stále pohybuje nahoru, se motor navíjející lanko zastaví. if (K_Up and (StepperDir_loc = StepperUp) ) StepperSpd_loc = 0; Zároveň dochází ke sjetí magnetu o 4 pulzy níž v případě, že je sepnuto čidlo K Up. if (HeightCor) if (DCDir_loc xor StepperUp) StepperSpd_loc = StepperSpd_loc + 800; StepperSpd_loc = StepperSpd_loc - 800; if (ImpCnt > 4) HeightCor = false; 3.1.4 Regulace výšky magnetu Rychlost motoru, který navíjí lanko, je přepočítávána na základě rychlosti motoru zajišťujícího horizontální pohyb. Experimentálně jsme zjistili necitlivosti obou motorů a konstantu poměru jejich rychlostí. if (DCSpd_loc > 650) if(dcspd_loc > DCLimitSpd) DCSpd_loc = DCLimitSpd; StepperEn_loc=true; StepperDir_loc = (not DCDir_loc) xor StepperUp; StepperSpd_loc = (DCSpd_loc-650)*1.07 + 300; 3.2 Inicializace Inicializace je výchozí režim po spuštění programu. 3.2.1 Zjištění směru navíjení Zjištění směru je prvním krokem inicializace. Po spuštění se magnet začne pohybovat (zatím nevíme jakým směrem) a narazí buď na horní čidlo (K Up), nebo na podložku. 5

Po nárazu na podložku je proměnná MagnetMove v hlavní smyčce změněna na nulu. Změní se směr pohybu navíjení magnetu. switch state of case 0; (* Magnet nahoru *) if (K_Up or (not MagnetMove)) StepperUp = K_Up; stp_en = false; state=1; stp_spd = StepperInitSpd; stp_dir = true; stp_en = true; 3.2.2 Nastavení bezpečné výšky magnetu Z předchozího kroku je znám směr navíjení lanka, proto můžeme nastavit bezpečnou výšku magnetu. Pokud je magnet momentálně na podložce, tak vyjede na zarážku K Up. Z ní dojde k poklesu o 6 pulzů (= bezpečná poloha) nezávisle na počátečním stavu (zda byl dole nebo nahoře). 3.2.3 Sejmutí analogových hodnot snímačů polohy a dorazů Následně magnet najede na levou krajní polohu a uloží si analogovou hodnotu. Poté jede zpět ke svému pravému dorazu a při sepnutí čidel K2, K3 a K4 opět uloží jejich hodnotu. Ty jsou poté využity při řešení úlohy hanojských věží. Nakonec dojede na pravý doraz, kde uloží analogový údaj o poloze čidla K5. Toto je jeho inicializační poloha. Tímto proces inicializace končí a je možné pokračovat v manuálním nebo automatickém režimu. 3.3 Manuální režim 3.3.1 Grafické rozhraní a zobrazení na internetu přes http server Kontrolka v levém horním rohu indikuje chod, zda program běží (zelenou barvou). Textový popisek vedle ní zobrazuje současný režim - inicializace, manuální a automatický režim. Pod ním jsou zobrazeny kontrolky indikující sepnutí snímačů K1 - K5, snímač analogové horizontální polohy a snímač pohybu magnetu. Posuvníky úplně napravo lze měnit počáteční a cílovou polohu pro úlohu Hanojských věží. V manuálním režimu lze používat tlačítka se šipkami k pohybu magnetu a tlačítko v pravém horním rohu k jeho spínání. Grafické rozhraní je možné zobrazit také prostřednictvím webové stránky. Má však jistá omezení. Slouží pouze k zobrazovaní aktuální pozice magnetu. Řídící úkony jako je pohyb či spínání magnetu v manuálním režimu, či přepínání režimů nebo počáteční 6

a cílové polohy umožněno z důvodu bezpečnosti není. Zároveň je stránka obnovována každou 1 s, což se projeví nesouvislými změnami na indikátoru analogové horizontální polohy. 3.3.2 Zdrojový kód Manuální režim zajišťuje přiřazení odpovídajících rychlostí a směrů po stisknutí jednotlivých tlačítek. procedure ManualControl( var dc_spd : real; var dc_dir : boolean; var stp_spd : real; var stp_dir : boolean; var stp_en : boolean ); begin if (ButtonLeft or ButtonRight) dc_spd=dcspd; dc_spd=0; dc_dir = ButtonRight; if (ButtonDown or ButtonUp) stp_spd=stepperspd; stp_en=true; 7

stp_spd=0; stp_dir = ButtonUp; end_procedure; 3.4 Automatický režim 3.4.1 Přesun plechovek Po dosažení žádané pozice se magnet zastaví a dle proměnné CanAction dojde k nabrání nebo položení plechovky. if ((dc_dir and (POT >= xthd[xposw])) or (not dc_dir and (POT <= xthd[xposw]))) xposu = xposw; dc_spd = 0; if (xposu = xposw) switch CanAction of case 1; CanGrab(stp_spd, stp_dir, stp_en, mag_on); case 2; CanPut(stp_spd, stp_dir, stp_en, mag_on); 3.4.2 Nabrání a položení plechovky Po dosažení polohy plechovky je magnet spuštěn dolů. Když je detekováno, že se magnet již nehýbe, tak dojde k sepnutí magnetu a k nabrání plechovky. Následně je plechovka opět vytažena do horní polohy. Obdobně funguje i pokládání plechovky. 3.4.3 Dynamická změna rychlosti Při rozjezdu dochází k postupnému navyšování rychlosti. Při najíždění do polohy finální se tato rychlost naopak snižuje. Maximálně jde dosáhnout rychlosti 2200. if (xposw > xposu) dc_dir = true; dc_spd = 1.5*abs(POT-xThd[xPosW])+1000; a = 2*abs(POT-xThd[xPosU])+1000; 8

if (a < dc_spd) dc_spd = a; if (2200 < dc_spd) dc_spd = 2200; 3.4.4 Algoritmus Hanojských věží Použitý algoritmus je založen na efektivním binárním TH algoritmu. Kromě rychlosti výpočtu nabízí i nízkou paměťová náročnost. Prováděnou akci umožňuje vypočítat pouze na základě čísla kroku. Kromě zmíněných výhod má původní algoritmus i svá úskalí. Nepříjemným faktem je nemožnost volby výchozí pozice a závislost cílové pozice na počtu disků. Tento nedostatek lze řešit vhodnou modifikací vypočtené akce. Tu lze realizovat využitím vypočtených pozic jako indexů vhodně předpřipraveného pole. Tento přístup nám umožnil elegantně rozšířit původní algoritmus o volbu výchozí a cílové polohy nezávisle na počtu disků. (* Po vykonani vsech potrebnych kroku system prechazi do manualniho rezimu *) if (MoveNum >= bitshl(1, DiscCnt)) AutoRgmOn = false; ManualRgmOn = true; SysState = 1; return; (* Naplneni transformacniho pole *) if (bitand(disccnt, 1) = 1) Pegs[0] = SrcPeg; (* Vychozi pozice *) Pegs[1] = 3 - SrcPeg - DstPeg; (* Odkladaci pozice *) Pegs[2] = DstPeg; (* Cilova pozice *) Pegs[0] = SrcPeg; Pegs[1] = DstPeg; Pegs[2] = 3 - SrcPeg - DstPeg; (* Binarni TH algoritmus *) f = bitand(movenum, MoveNum-1) % 3; t = (bitor(movenum, MoveNum-1) + 1) % 3; 9

(* Transformace vystupu *) f = Pegs[f]; t = Pegs[t]; 4 Závěr Díky tomuto projektu jsme měli možnost se seznámit s programovým prostředím ControlWeb a problematikou Hanojských věží. Výsledkem naší usilovné práce je program, který je schopen řešit tuto úlohu automaticky. Stejně tak má uživatel možnost ovládat jeřáb manuálně. Vše je zabezpečeno tak, aby nedošlo k žádnému rizikovému stavu. 10